Merge branch 'master' into staging
This commit is contained in:
		
						commit
						f7781f5293
					
				@ -735,6 +735,62 @@ sets at once:
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### How to specify source overrides for your Haskell package
 | 
			
		||||
 | 
			
		||||
When starting a Haskell project you can use `developPackage`
 | 
			
		||||
to define a derivation for your package at the `root` path
 | 
			
		||||
as well as source override versions for Hackage packages, like so:
 | 
			
		||||
 | 
			
		||||
```nix
 | 
			
		||||
# default.nix
 | 
			
		||||
{ compilerVersion ? "ghc842" }:
 | 
			
		||||
let
 | 
			
		||||
  # pinning nixpkgs using new Nix 2.0 builtin `fetchGit`
 | 
			
		||||
  pkgs = import (fetchGit (import ./version.nix)) { };
 | 
			
		||||
  compiler = pkgs.haskell.packages."${compilerVersion}";
 | 
			
		||||
  pkg = compiler.developPackage {
 | 
			
		||||
    root = ./.;
 | 
			
		||||
    source-overrides = {
 | 
			
		||||
      # Let's say the GHC 8.4.2 haskellPackages uses 1.6.0.0 and your test suite is incompatible with >= 1.6.0.0
 | 
			
		||||
      HUnit = "1.5.0.0";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
in pkg
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This could be used in place of a simplified `stack.yaml` defining a Nix
 | 
			
		||||
derivation for your Haskell package.
 | 
			
		||||
 | 
			
		||||
As you can see this allows you to specify only the source version found on
 | 
			
		||||
Hackage and nixpkgs will take care of the rest.
 | 
			
		||||
 | 
			
		||||
You can also specify `buildInputs` for your Haskell derivation for packages
 | 
			
		||||
that directly depend on external libraries like so:
 | 
			
		||||
 | 
			
		||||
```nix
 | 
			
		||||
# default.nix
 | 
			
		||||
{ compilerVersion ? "ghc842" }:
 | 
			
		||||
let
 | 
			
		||||
  # pinning nixpkgs using new Nix 2.0 builtin `fetchGit`
 | 
			
		||||
  pkgs = import (fetchGit (import ./version.nix)) { };
 | 
			
		||||
  compiler = pkgs.haskell.packages."${compilerVersion}";
 | 
			
		||||
  pkg = compiler.developPackage {
 | 
			
		||||
    root = ./.;
 | 
			
		||||
    source-overrides = {
 | 
			
		||||
      HUnit = "1.5.0.0"; # Let's say the GHC 8.4.2 haskellPackages uses 1.6.0.0 and your test suite is incompatible with >= 1.6.0.0
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  # in case your package source depends on any libraries directly, not just transitively.
 | 
			
		||||
  buildInputs = [ zlib ];
 | 
			
		||||
in pkg.overrideAttrs(attrs: {
 | 
			
		||||
  buildInputs = attrs.buildInputs ++ buildInputs;
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Notice that you will need to override (via `overrideAttrs` or similar) the
 | 
			
		||||
derivation returned by the `developPackage` Nix lambda as there is no `buildInputs`
 | 
			
		||||
named argument you can pass directly into the `developPackage` lambda.
 | 
			
		||||
 | 
			
		||||
### How to recover from GHC's infamous non-deterministic library ID bug
 | 
			
		||||
 | 
			
		||||
GHC and distributed build farms don't get along well:
 | 
			
		||||
 | 
			
		||||
@ -200,7 +200,7 @@ building Python libraries is `buildPythonPackage`. Let's see how we can build th
 | 
			
		||||
    doCheck = false;
 | 
			
		||||
 | 
			
		||||
    meta = {
 | 
			
		||||
      homepage = "http://github.com/pytoolz/toolz/";
 | 
			
		||||
      homepage = "https://github.com/pytoolz/toolz/";
 | 
			
		||||
      description = "List processing tools and functional utilities";
 | 
			
		||||
      license = licenses.bsd3;
 | 
			
		||||
      maintainers = with maintainers; [ fridh ];
 | 
			
		||||
@ -245,7 +245,7 @@ with import <nixpkgs> {};
 | 
			
		||||
      doCheck = false;
 | 
			
		||||
 | 
			
		||||
      meta = {
 | 
			
		||||
        homepage = "http://github.com/pytoolz/toolz/";
 | 
			
		||||
        homepage = "https://github.com/pytoolz/toolz/";
 | 
			
		||||
        description = "List processing tools and functional utilities";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
@ -173,6 +173,53 @@ rec {
 | 
			
		||||
                       fna);
 | 
			
		||||
      in if fna == {}    then "<λ>"
 | 
			
		||||
                         else "<λ:{${showFnas}}>"
 | 
			
		||||
    else abort "toPretty: should never happen (v = ${v})";
 | 
			
		||||
    else abort "generators.toPretty: should never happen (v = ${v})";
 | 
			
		||||
 | 
			
		||||
  # PLIST handling
 | 
			
		||||
  toPlist = {}: v: let
 | 
			
		||||
    expr = ind: x: with builtins;
 | 
			
		||||
      if isNull x then "" else
 | 
			
		||||
      if isBool x then bool ind x else
 | 
			
		||||
      if isInt x then int ind x else
 | 
			
		||||
      if isString x then str ind x else
 | 
			
		||||
      if isList x then list ind x else
 | 
			
		||||
      if isAttrs x then attrs ind x else
 | 
			
		||||
      abort "generators.toPlist: should never happen (v = ${v})";
 | 
			
		||||
 | 
			
		||||
    literal = ind: x: ind + x;
 | 
			
		||||
 | 
			
		||||
    bool = ind: x: literal ind  (if x then "<true/>" else "<false/>");
 | 
			
		||||
    int = ind: x: literal ind "<integer>${toString x}</integer>";
 | 
			
		||||
    str = ind: x: literal ind "<string>${x}</string>";
 | 
			
		||||
    key = ind: x: literal ind "<key>${x}</key>";
 | 
			
		||||
 | 
			
		||||
    indent = ind: expr "\t${ind}";
 | 
			
		||||
 | 
			
		||||
    item = ind: libStr.concatMapStringsSep "\n" (indent ind);
 | 
			
		||||
 | 
			
		||||
    list = ind: x: libStr.concatStringsSep "\n" [
 | 
			
		||||
      (literal ind "<array>")
 | 
			
		||||
      (item ind x)
 | 
			
		||||
      (literal ind "</array>")
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    attrs = ind: x: libStr.concatStringsSep "\n" [
 | 
			
		||||
      (literal ind "<dict>")
 | 
			
		||||
      (attr ind x)
 | 
			
		||||
      (literal ind "</dict>")
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    attr = let attrFilter = name: value: name != "_module" && value != null;
 | 
			
		||||
    in ind: x: libStr.concatStringsSep "\n" (lib.flatten (lib.mapAttrsToList
 | 
			
		||||
      (name: value: lib.optional (attrFilter name value) [
 | 
			
		||||
      (key "\t${ind}" name)
 | 
			
		||||
      (expr "\t${ind}" value)
 | 
			
		||||
    ]) x));
 | 
			
		||||
 | 
			
		||||
  in ''<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
${expr "" v}
 | 
			
		||||
</plist>'';
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -493,7 +493,7 @@ rec {
 | 
			
		||||
      inherit priority content;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  mkOptionDefault = mkOverride 1001; # priority of option defaults
 | 
			
		||||
  mkOptionDefault = mkOverride 1500; # priority of option defaults
 | 
			
		||||
  mkDefault = mkOverride 1000; # used in config sections of non-user modules to set a default
 | 
			
		||||
  mkForce = mkOverride 50;
 | 
			
		||||
  mkVMOverride = mkOverride 10; # used by ‘nixos-rebuild build-vm’
 | 
			
		||||
@ -532,9 +532,7 @@ rec {
 | 
			
		||||
  #
 | 
			
		||||
  mkAliasDefinitions = mkAliasAndWrapDefinitions id;
 | 
			
		||||
  mkAliasAndWrapDefinitions = wrap: option:
 | 
			
		||||
    mkMerge
 | 
			
		||||
      (optional (isOption option && option.isDefined)
 | 
			
		||||
        (wrap (mkMerge option.definitions)));
 | 
			
		||||
    mkIf (isOption option && option.isDefined) (wrap (mkMerge option.definitions));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  /* Compatibility. */
 | 
			
		||||
@ -669,22 +667,26 @@ rec {
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  doRename = { from, to, visible, warn, use }:
 | 
			
		||||
    { config, options, ... }:
 | 
			
		||||
    let
 | 
			
		||||
      fromOpt = getAttrFromPath from options;
 | 
			
		||||
      toOpt = getAttrFromPath to options;
 | 
			
		||||
      toOf = attrByPath to
 | 
			
		||||
        (abort "Renaming error: option `${showOption to}' does not exist.");
 | 
			
		||||
    in
 | 
			
		||||
      { config, options, ... }:
 | 
			
		||||
      { options = setAttrByPath from (mkOption {
 | 
			
		||||
          inherit visible;
 | 
			
		||||
          description = "Alias of <option>${showOption to}</option>.";
 | 
			
		||||
          apply = x: use (toOf config);
 | 
			
		||||
        });
 | 
			
		||||
        config = {
 | 
			
		||||
          warnings =
 | 
			
		||||
            let opt = getAttrFromPath from options; in
 | 
			
		||||
            optional (warn && opt.isDefined)
 | 
			
		||||
              "The option `${showOption from}' defined in ${showFiles opt.files} has been renamed to `${showOption to}'.";
 | 
			
		||||
        } // setAttrByPath to (mkAliasDefinitions (getAttrFromPath from options));
 | 
			
		||||
      };
 | 
			
		||||
    {
 | 
			
		||||
      options = setAttrByPath from (mkOption {
 | 
			
		||||
        inherit visible;
 | 
			
		||||
        description = "Alias of <option>${showOption to}</option>.";
 | 
			
		||||
        apply = x: use (toOf config);
 | 
			
		||||
      });
 | 
			
		||||
      config = mkMerge [
 | 
			
		||||
        {
 | 
			
		||||
          warnings = optional (warn && fromOpt.isDefined)
 | 
			
		||||
            "The option `${showOption from}' defined in ${showFiles fromOpt.files} has been renamed to `${showOption to}'.";
 | 
			
		||||
        }
 | 
			
		||||
        (mkAliasAndWrapDefinitions (setAttrByPath to) fromOpt)
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -46,7 +46,6 @@ rec {
 | 
			
		||||
      # Misc boolean options
 | 
			
		||||
      useAndroidPrebuilt = false;
 | 
			
		||||
      useiOSPrebuilt = false;
 | 
			
		||||
      isiPhoneSimulator = false;
 | 
			
		||||
    } // mapAttrs (n: v: v final.parsed) inspect.predicates
 | 
			
		||||
      // args;
 | 
			
		||||
  in assert final.useAndroidPrebuilt -> final.isAndroid;
 | 
			
		||||
 | 
			
		||||
@ -100,6 +100,8 @@ rec {
 | 
			
		||||
    config = "aarch64-apple-ios";
 | 
			
		||||
    # config = "aarch64-apple-darwin14";
 | 
			
		||||
    sdkVer = "10.2";
 | 
			
		||||
    xcodeVer = "8.2";
 | 
			
		||||
    xcodePlatform = "iPhoneOS";
 | 
			
		||||
    useiOSPrebuilt = true;
 | 
			
		||||
    platform = {};
 | 
			
		||||
  };
 | 
			
		||||
@ -108,6 +110,8 @@ rec {
 | 
			
		||||
    config = "armv7a-apple-ios";
 | 
			
		||||
    # config = "arm-apple-darwin10";
 | 
			
		||||
    sdkVer = "10.2";
 | 
			
		||||
    xcodeVer = "8.2";
 | 
			
		||||
    xcodePlatform = "iPhoneOS";
 | 
			
		||||
    useiOSPrebuilt = true;
 | 
			
		||||
    platform = {};
 | 
			
		||||
  };
 | 
			
		||||
@ -116,8 +120,9 @@ rec {
 | 
			
		||||
    config = "x86_64-apple-ios";
 | 
			
		||||
    # config = "x86_64-apple-darwin14";
 | 
			
		||||
    sdkVer = "10.2";
 | 
			
		||||
    xcodeVer = "8.2";
 | 
			
		||||
    xcodePlatform = "iPhoneSimulator";
 | 
			
		||||
    useiOSPrebuilt = true;
 | 
			
		||||
    isiPhoneSimulator = true;
 | 
			
		||||
    platform = {};
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -125,8 +130,9 @@ rec {
 | 
			
		||||
    config = "i686-apple-ios";
 | 
			
		||||
    # config = "i386-apple-darwin11";
 | 
			
		||||
    sdkVer = "10.2";
 | 
			
		||||
    xcodeVer = "8.2";
 | 
			
		||||
    xcodePlatform = "iPhoneSimulator";
 | 
			
		||||
    useiOSPrebuilt = true;
 | 
			
		||||
    isiPhoneSimulator = true;
 | 
			
		||||
    platform = {};
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -581,7 +581,7 @@
 | 
			
		||||
    email = "brandon.barker@gmail.com";
 | 
			
		||||
    github = "bbarker";
 | 
			
		||||
    name = "Brandon Elam Barker";
 | 
			
		||||
  };  
 | 
			
		||||
  };
 | 
			
		||||
  bcarrell = {
 | 
			
		||||
    email = "brandoncarrell@gmail.com";
 | 
			
		||||
    github = "bcarrell";
 | 
			
		||||
@ -1707,6 +1707,11 @@
 | 
			
		||||
    github = "igsha";
 | 
			
		||||
    name = "Igor Sharonov";
 | 
			
		||||
  };
 | 
			
		||||
  iimog = {
 | 
			
		||||
    email = "iimog@iimog.org";
 | 
			
		||||
    github = "iimog";
 | 
			
		||||
    name = "Markus J. Ankenbrand";
 | 
			
		||||
  };
 | 
			
		||||
  ikervagyok = {
 | 
			
		||||
    email = "ikervagyok@gmail.com";
 | 
			
		||||
    github = "ikervagyok";
 | 
			
		||||
@ -1717,6 +1722,16 @@
 | 
			
		||||
    github = "ilya-kolpakov";
 | 
			
		||||
    name = "Ilya Kolpakov";
 | 
			
		||||
  };
 | 
			
		||||
  imalison = {
 | 
			
		||||
    email = "IvanMalison@gmail.com";
 | 
			
		||||
    github = "IvanMalison";
 | 
			
		||||
    name = "Ivan Malison";
 | 
			
		||||
  };
 | 
			
		||||
  imalsogreg = {
 | 
			
		||||
    email = "imalsogreg@gmail.com";
 | 
			
		||||
    github = "imalsogreg";
 | 
			
		||||
    name = "Greg Hale";
 | 
			
		||||
  };
 | 
			
		||||
  infinisil = {
 | 
			
		||||
    email = "infinisil@icloud.com";
 | 
			
		||||
    github = "infinisil";
 | 
			
		||||
@ -3092,6 +3107,11 @@
 | 
			
		||||
    github = "pmiddend";
 | 
			
		||||
    name = "Philipp Middendorf";
 | 
			
		||||
  };
 | 
			
		||||
  pmyjavec = {
 | 
			
		||||
    email = "pauly@myjavec.com";
 | 
			
		||||
    github = "pmyjavec";
 | 
			
		||||
    name = "Pauly Myjavec";
 | 
			
		||||
  };
 | 
			
		||||
  pneumaticat = {
 | 
			
		||||
    email = "kevin@potatofrom.space";
 | 
			
		||||
    github = "pneumaticat";
 | 
			
		||||
@ -3871,6 +3891,11 @@
 | 
			
		||||
    github = "timor";
 | 
			
		||||
    name = "timor";
 | 
			
		||||
  };
 | 
			
		||||
  timput = {
 | 
			
		||||
    email = "tim@timput.com";
 | 
			
		||||
    github = "TimPut";
 | 
			
		||||
    name = "Tim Put";
 | 
			
		||||
  };
 | 
			
		||||
  tiramiseb = {
 | 
			
		||||
    email = "sebastien@maccagnoni.eu";
 | 
			
		||||
    github = "tiramiseb";
 | 
			
		||||
@ -3906,6 +3931,11 @@
 | 
			
		||||
    github = "tokudan";
 | 
			
		||||
    name = "Daniel Frank";
 | 
			
		||||
  };
 | 
			
		||||
  tomahna = {
 | 
			
		||||
    email = "kevin.rauscher@tomahna.fr";
 | 
			
		||||
    github = "Tomahna";
 | 
			
		||||
    name = "Kevin Rauscher";
 | 
			
		||||
  };
 | 
			
		||||
  tomberek = {
 | 
			
		||||
    email = "tomberek@gmail.com";
 | 
			
		||||
    github = "tomberek";
 | 
			
		||||
 | 
			
		||||
@ -68,6 +68,18 @@ ibus.engines = with pkgs.ibus-engines; [ table table-others ];
 | 
			
		||||
<para>To use any input method, the package must be added in the configuration,
 | 
			
		||||
  as shown above, and also (after running <literal>nixos-rebuild</literal>) the
 | 
			
		||||
  input method must be added from IBus' preference dialog.</para>
 | 
			
		||||
 | 
			
		||||
<simplesect>
 | 
			
		||||
  <title>Troubleshooting</title>
 | 
			
		||||
  <para>If IBus works in some applications but not others, a likely cause of
 | 
			
		||||
  this is that IBus is depending on a different version of
 | 
			
		||||
  <literal>glib</literal> to what the applications are depending on. This can
 | 
			
		||||
  be checked by running <literal>nix-store -q --requisites <path> | grep
 | 
			
		||||
  glib</literal>, where <literal><path></literal> is the path of either
 | 
			
		||||
  IBus or an application in the Nix store. The <literal>glib</literal>
 | 
			
		||||
  packages must match exactly. If they do not, uninstalling and reinstalling
 | 
			
		||||
  the application is a likely fix.</para>
 | 
			
		||||
</simplesect>
 | 
			
		||||
</section>
 | 
			
		||||
 | 
			
		||||
<section><title>Fcitx</title>
 | 
			
		||||
 | 
			
		||||
@ -242,6 +242,7 @@
 | 
			
		||||
  ./services/desktops/gnome3/tracker-miners.nix
 | 
			
		||||
  ./services/desktops/profile-sync-daemon.nix
 | 
			
		||||
  ./services/desktops/telepathy.nix
 | 
			
		||||
  ./services/development/bloop.nix
 | 
			
		||||
  ./services/development/hoogle.nix
 | 
			
		||||
  ./services/editors/emacs.nix
 | 
			
		||||
  ./services/editors/infinoted.nix
 | 
			
		||||
@ -486,6 +487,7 @@
 | 
			
		||||
  ./services/networking/flannel.nix
 | 
			
		||||
  ./services/networking/flashpolicyd.nix
 | 
			
		||||
  ./services/networking/freenet.nix
 | 
			
		||||
  ./services/networking/freeradius.nix
 | 
			
		||||
  ./services/networking/gale.nix
 | 
			
		||||
  ./services/networking/gateone.nix
 | 
			
		||||
  ./services/networking/gdomap.nix
 | 
			
		||||
@ -662,6 +664,7 @@
 | 
			
		||||
  ./services/web-apps/tt-rss.nix
 | 
			
		||||
  ./services/web-apps/selfoss.nix
 | 
			
		||||
  ./services/web-apps/quassel-webserver.nix
 | 
			
		||||
  ./services/web-apps/virtlyst.nix
 | 
			
		||||
  ./services/web-apps/youtrack.nix
 | 
			
		||||
  ./services/web-servers/apache-httpd/default.nix
 | 
			
		||||
  ./services/web-servers/caddy.nix
 | 
			
		||||
 | 
			
		||||
@ -14,7 +14,15 @@ with lib;
 | 
			
		||||
            Read the repository password from a file.
 | 
			
		||||
          '';
 | 
			
		||||
          example = "/etc/nixos/restic-password";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        s3CredentialsFile = mkOption {
 | 
			
		||||
          type = with types; nullOr str;
 | 
			
		||||
          description = ''
 | 
			
		||||
            file containing the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
 | 
			
		||||
            for an S3-hosted repository, in the format of an EnvironmentFile
 | 
			
		||||
            as described by systemd.exec(5)
 | 
			
		||||
          '';
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        repository = mkOption {
 | 
			
		||||
@ -134,6 +142,8 @@ with lib;
 | 
			
		||||
            Type = "oneshot";
 | 
			
		||||
            ExecStart = "${resticCmd} backup ${concatStringsSep " " backup.extraBackupArgs} ${concatStringsSep " " backup.paths}";
 | 
			
		||||
            User = backup.user;
 | 
			
		||||
          } // optionalAttrs (backup.s3CredentialsFile != null) {
 | 
			
		||||
            EnvironmentFile = backup.s3CredentialsFile;
 | 
			
		||||
          };
 | 
			
		||||
        } // optionalAttrs backup.initialize {
 | 
			
		||||
          preStart = ''
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										37
									
								
								nixos/modules/services/development/bloop.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								nixos/modules/services/development/bloop.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
{ config, lib, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
with lib;
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
 | 
			
		||||
  cfg = config.services.bloop;
 | 
			
		||||
 | 
			
		||||
in {
 | 
			
		||||
 | 
			
		||||
  options.services.bloop = {
 | 
			
		||||
    install = mkOption {
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      default = false;
 | 
			
		||||
      description = ''
 | 
			
		||||
        Whether to install a user service for the Bloop server.
 | 
			
		||||
 | 
			
		||||
        The service must be manually started for each user with
 | 
			
		||||
        "systemctl --user start bloop".
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkIf (cfg.install) {
 | 
			
		||||
    systemd.user.services.bloop = {
 | 
			
		||||
      description = "Bloop Scala build server";
 | 
			
		||||
 | 
			
		||||
      serviceConfig = {
 | 
			
		||||
        Type      = "simple";
 | 
			
		||||
        ExecStart = ''${pkgs.bloop}/bin/blp-server'';
 | 
			
		||||
        Restart   = "always";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = [ pkgs.bloop ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -9,18 +9,11 @@ let
 | 
			
		||||
  # /var/lib/misc is for dnsmasq.leases.
 | 
			
		||||
  stateDirs = "/var/lib/NetworkManager /var/lib/dhclient /var/lib/misc";
 | 
			
		||||
 | 
			
		||||
  dns =
 | 
			
		||||
    if cfg.dns == "none" then "none"
 | 
			
		||||
    else if cfg.dns == "dnsmasq" then "dnsmasq"
 | 
			
		||||
    else if config.services.resolved.enable then "systemd-resolved"
 | 
			
		||||
    else if config.services.unbound.enable then "unbound"
 | 
			
		||||
    else "default";
 | 
			
		||||
 | 
			
		||||
  configFile = writeText "NetworkManager.conf" ''
 | 
			
		||||
    [main]
 | 
			
		||||
    plugins=keyfile
 | 
			
		||||
    dhcp=${cfg.dhcp}
 | 
			
		||||
    dns=${dns}
 | 
			
		||||
    dns=${cfg.dns}
 | 
			
		||||
 | 
			
		||||
    [keyfile]
 | 
			
		||||
    ${optionalString (cfg.unmanaged != [])
 | 
			
		||||
@ -217,19 +210,73 @@ in {
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      dns = mkOption {
 | 
			
		||||
        type = types.enum [ "auto" "dnsmasq" "none" ];
 | 
			
		||||
        default = "auto";
 | 
			
		||||
        type = types.enum [ "default" "dnsmasq" "unbound" "systemd-resolved" "none" ];
 | 
			
		||||
        default = "default";
 | 
			
		||||
        description = ''
 | 
			
		||||
          Set the DNS (<literal>resolv.conf</literal>) processing mode.
 | 
			
		||||
          </para>
 | 
			
		||||
          <para>
 | 
			
		||||
          Options:
 | 
			
		||||
            - auto: Check for systemd-resolved, unbound, or use default.
 | 
			
		||||
            - dnsmasq:
 | 
			
		||||
              Enable NetworkManager's dnsmasq integration. NetworkManager will run
 | 
			
		||||
              dnsmasq as a local caching nameserver, using a "split DNS"
 | 
			
		||||
              configuration if you are connected to a VPN, and then update
 | 
			
		||||
              resolv.conf to point to the local nameserver.
 | 
			
		||||
            - none:
 | 
			
		||||
              Disable NetworkManager's DNS integration completely.
 | 
			
		||||
              It will not touch your /etc/resolv.conf.
 | 
			
		||||
          <variablelist>
 | 
			
		||||
          <varlistentry>
 | 
			
		||||
            <term><literal>"default"</literal></term>
 | 
			
		||||
            <listitem><para>
 | 
			
		||||
              NetworkManager will update <literal>/etc/resolv.conf</literal> to
 | 
			
		||||
              reflect the nameservers provided by currently active connections.
 | 
			
		||||
            </para></listitem>
 | 
			
		||||
          </varlistentry>
 | 
			
		||||
          <varlistentry>
 | 
			
		||||
            <term><literal>"dnsmasq"</literal></term>
 | 
			
		||||
            <listitem>
 | 
			
		||||
              <para>
 | 
			
		||||
                Enable NetworkManager's dnsmasq integration. NetworkManager will
 | 
			
		||||
                run dnsmasq as a local caching nameserver, using a "split DNS"
 | 
			
		||||
                configuration if you are connected to a VPN, and then update
 | 
			
		||||
                <literal>resolv.conf</literal> to point to the local nameserver.
 | 
			
		||||
              </para>
 | 
			
		||||
              <para>
 | 
			
		||||
                It is possible to pass custom options to the dnsmasq instance by
 | 
			
		||||
                adding them to files in the
 | 
			
		||||
                <literal>/etc/NetworkManager/dnsmasq.d/</literal> directory.
 | 
			
		||||
              </para>
 | 
			
		||||
              <para>
 | 
			
		||||
                When multiple upstream servers are available, dnsmasq will
 | 
			
		||||
                initially contact them in parallel and then use the fastest to
 | 
			
		||||
                respond, probing again other servers after some time.  This
 | 
			
		||||
                behavior can be modified passing the
 | 
			
		||||
                <literal>all-servers</literal> or <literal>strict-order</literal>
 | 
			
		||||
                options to dnsmasq (see the manual page for more details).
 | 
			
		||||
              </para>
 | 
			
		||||
              <para>
 | 
			
		||||
                Note that this option causes NetworkManager to launch and manage
 | 
			
		||||
                its own instance of the dnsmasq daemon, which is
 | 
			
		||||
                <emphasis>not</emphasis> the same as setting
 | 
			
		||||
                <literal>services.dnsmasq.enable = true;</literal>.
 | 
			
		||||
              </para>
 | 
			
		||||
            </listitem>
 | 
			
		||||
          </varlistentry>
 | 
			
		||||
          <varlistentry>
 | 
			
		||||
            <term><literal>"unbound"</literal></term>
 | 
			
		||||
            <listitem><para>
 | 
			
		||||
              NetworkManager will talk to unbound and dnssec-triggerd,
 | 
			
		||||
              providing a "split DNS" configuration with DNSSEC support.
 | 
			
		||||
              <literal>/etc/resolv.conf</literal> will be managed by
 | 
			
		||||
              dnssec-trigger daemon.
 | 
			
		||||
            </para></listitem>
 | 
			
		||||
          </varlistentry>
 | 
			
		||||
          <varlistentry>
 | 
			
		||||
            <term><literal>"systemd-resolved"</literal></term>
 | 
			
		||||
            <listitem><para>
 | 
			
		||||
              NetworkManager will push the DNS configuration to systemd-resolved.
 | 
			
		||||
            </para></listitem>
 | 
			
		||||
          </varlistentry>
 | 
			
		||||
          <varlistentry>
 | 
			
		||||
            <term><literal>"none"</literal></term>
 | 
			
		||||
            <listitem><para>
 | 
			
		||||
              NetworkManager will not modify resolv.conf.
 | 
			
		||||
            </para></listitem>
 | 
			
		||||
          </varlistentry>
 | 
			
		||||
          </variablelist>
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -938,9 +938,12 @@ in {
 | 
			
		||||
        protection.
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      hw_offload = mkYesNoParam no ''
 | 
			
		||||
      hw_offload = mkEnumParam ["yes" "no" "auto"] "no" ''
 | 
			
		||||
        Enable hardware offload for this CHILD_SA, if supported by the IPsec
 | 
			
		||||
        implementation.
 | 
			
		||||
        implementation. The value <literal>yes</literal> enforces offloading
 | 
			
		||||
        and the installation will fail if it's not supported by either kernel or
 | 
			
		||||
        device. The value <literal>auto</literal> enables offloading, if it's
 | 
			
		||||
        supported, but the installation does not fail otherwise.
 | 
			
		||||
      '';
 | 
			
		||||
 | 
			
		||||
      start_action = mkEnumParam ["none" "trap" "start"] "none" ''
 | 
			
		||||
 | 
			
		||||
@ -131,6 +131,9 @@ in
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # If networkmanager is enabled, ask it to interface with unbound.
 | 
			
		||||
    networking.networkmanager.dns = "unbound";
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -47,7 +47,7 @@ in
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # ZeroTier does not issue DHCP leases, but some strangers might...
 | 
			
		||||
    networking.dhcpcd.denyInterfaces = [ "zt0" ];
 | 
			
		||||
    networking.dhcpcd.denyInterfaces = [ "zt*" ];
 | 
			
		||||
 | 
			
		||||
    # ZeroTier receives UDP transmissions on port 9993 by default
 | 
			
		||||
    networking.firewall.allowedUDPPorts = [ 9993 ];
 | 
			
		||||
 | 
			
		||||
@ -100,6 +100,7 @@ in
 | 
			
		||||
      # Don't restart dbus-daemon. Bad things tend to happen if we do.
 | 
			
		||||
      reloadIfChanged = true;
 | 
			
		||||
      restartTriggers = [ configDir ];
 | 
			
		||||
      environment = { LD_LIBRARY_PATH = config.system.nssModules.path; };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    systemd.user = {
 | 
			
		||||
 | 
			
		||||
@ -76,6 +76,8 @@ let
 | 
			
		||||
      define('SMTP_FROM_NAME', '${escape ["'" "\\"] cfg.email.fromName}');
 | 
			
		||||
      define('SMTP_FROM_ADDRESS', '${escape ["'" "\\"] cfg.email.fromAddress}');
 | 
			
		||||
      define('DIGEST_SUBJECT', '${escape ["'" "\\"] cfg.email.digestSubject}');
 | 
			
		||||
 | 
			
		||||
      ${cfg.extraConfig}
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
 in {
 | 
			
		||||
@ -431,6 +433,26 @@ let
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      pluginPackages = mkOption {
 | 
			
		||||
        type = types.listOf types.package;
 | 
			
		||||
        default = [];
 | 
			
		||||
        description = ''
 | 
			
		||||
          List of plugins to install. The list elements are expected to
 | 
			
		||||
          be derivations. All elements in this derivation are automatically
 | 
			
		||||
          copied to the <literal>plugins.local</literal> directory.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      themePackages = mkOption {
 | 
			
		||||
        type = types.listOf types.package;
 | 
			
		||||
        default = [];
 | 
			
		||||
        description = ''
 | 
			
		||||
          List of themes to install. The list elements are expected to
 | 
			
		||||
          be derivations. All elements in this derivation are automatically
 | 
			
		||||
          copied to the <literal>themes.local</literal> directory.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      logDestination = mkOption {
 | 
			
		||||
        type = types.enum ["" "sql" "syslog"];
 | 
			
		||||
        default = "sql";
 | 
			
		||||
@ -441,6 +463,14 @@ let
 | 
			
		||||
          error.log).
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      extraConfig = mkOption {
 | 
			
		||||
        type = types.lines;
 | 
			
		||||
        default = "";
 | 
			
		||||
        description = ''
 | 
			
		||||
          Additional lines to append to <literal>config.php</literal>.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -517,6 +547,16 @@ let
 | 
			
		||||
          rm -rf "${cfg.root}/*"
 | 
			
		||||
          mkdir -m 755 -p "${cfg.root}"
 | 
			
		||||
          cp -r "${pkgs.tt-rss}/"* "${cfg.root}"
 | 
			
		||||
          ${optionalString (cfg.pluginPackages != []) ''
 | 
			
		||||
            for plugin in ${concatStringsSep " " cfg.pluginPackages}; do
 | 
			
		||||
              cp -r "$plugin"/* "${cfg.root}/plugins.local/"
 | 
			
		||||
            done
 | 
			
		||||
          ''}
 | 
			
		||||
          ${optionalString (cfg.themePackages != []) ''
 | 
			
		||||
            for theme in ${concatStringsSep " " cfg.themePackages}; do
 | 
			
		||||
              cp -r "$theme"/* "${cfg.root}/themes.local/"
 | 
			
		||||
            done
 | 
			
		||||
          ''}
 | 
			
		||||
          ln -sf "${tt-rss-config}" "${cfg.root}/config.php"
 | 
			
		||||
          chown -R "${cfg.user}" "${cfg.root}"
 | 
			
		||||
          chmod -R 755 "${cfg.root}"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										72
									
								
								nixos/modules/services/web-apps/virtlyst.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								nixos/modules/services/web-apps/virtlyst.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
			
		||||
{ config, lib, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
with lib;
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
 | 
			
		||||
  cfg = config.services.virtlyst;
 | 
			
		||||
  stateDir = "/var/lib/virtlyst";
 | 
			
		||||
 | 
			
		||||
  ini = pkgs.writeText "virtlyst-config.ini" ''
 | 
			
		||||
    [wsgi]
 | 
			
		||||
    master = true
 | 
			
		||||
    threads = auto
 | 
			
		||||
    http-socket = ${cfg.httpSocket}
 | 
			
		||||
    application = ${pkgs.virtlyst}/lib/libVirtlyst.so
 | 
			
		||||
    chdir2 = ${stateDir}
 | 
			
		||||
    static-map = /static=${pkgs.virtlyst}/root/static
 | 
			
		||||
 | 
			
		||||
    [Cutelyst]
 | 
			
		||||
    production = true
 | 
			
		||||
    DatabasePath = virtlyst.sqlite
 | 
			
		||||
    TemplatePath = ${pkgs.virtlyst}/root/src
 | 
			
		||||
 | 
			
		||||
    [Rules]
 | 
			
		||||
    cutelyst.* = true
 | 
			
		||||
    virtlyst.* = true
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
in
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  options.services.virtlyst = {
 | 
			
		||||
    enable = mkEnableOption "Virtlyst libvirt web interface";
 | 
			
		||||
 | 
			
		||||
    adminPassword = mkOption {
 | 
			
		||||
      type = types.str;
 | 
			
		||||
      description = ''
 | 
			
		||||
        Initial admin password with which the database will be seeded.
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    httpSocket = mkOption {
 | 
			
		||||
      type = types.str;
 | 
			
		||||
      default = "localhost:3000";
 | 
			
		||||
      description = ''
 | 
			
		||||
        IP and/or port to which to bind the http socket.
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    users.extraUsers.virtlyst = {
 | 
			
		||||
      home = stateDir;
 | 
			
		||||
      createHome = true;
 | 
			
		||||
      group = mkIf config.virtualisation.libvirtd.enable "libvirtd";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    systemd.services.virtlyst = {
 | 
			
		||||
      wantedBy = [ "multi-user.target" ];
 | 
			
		||||
      environment = {
 | 
			
		||||
        VIRTLYST_ADMIN_PASSWORD = cfg.adminPassword;
 | 
			
		||||
      };
 | 
			
		||||
      serviceConfig = {
 | 
			
		||||
        ExecStart = "${pkgs.cutelyst}/bin/cutelyst-wsgi2 --ini ${ini}";
 | 
			
		||||
        User = "virtlyst";
 | 
			
		||||
        WorkingDirectory = stateDir;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -4,8 +4,15 @@ with lib;
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  cfg = config.services.lighttpd.cgit;
 | 
			
		||||
  pathPrefix = if stringLength cfg.subdir == 0 then "" else "/" + cfg.subdir;
 | 
			
		||||
  configFile = pkgs.writeText "cgitrc"
 | 
			
		||||
    ''
 | 
			
		||||
      # default paths to static assets
 | 
			
		||||
      css=${pathPrefix}/cgit.css
 | 
			
		||||
      logo=${pathPrefix}/cgit.png
 | 
			
		||||
      favicon=${pathPrefix}/favicon.ico
 | 
			
		||||
 | 
			
		||||
      # user configuration
 | 
			
		||||
      ${cfg.configText}
 | 
			
		||||
    '';
 | 
			
		||||
in
 | 
			
		||||
@ -18,8 +25,17 @@ in
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      description = ''
 | 
			
		||||
        If true, enable cgit (fast web interface for git repositories) as a
 | 
			
		||||
        sub-service in lighttpd. cgit will be accessible at
 | 
			
		||||
        http://yourserver/cgit
 | 
			
		||||
        sub-service in lighttpd.
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    subdir = mkOption {
 | 
			
		||||
      default = "cgit";
 | 
			
		||||
      example = "";
 | 
			
		||||
      type = types.str;
 | 
			
		||||
      description = ''
 | 
			
		||||
        The subdirectory in which to serve cgit. The web application will be
 | 
			
		||||
        accessible at http://yourserver/''${subdir}
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
@ -48,14 +64,14 @@ in
 | 
			
		||||
    services.lighttpd.enableModules = [ "mod_cgi" "mod_alias" "mod_setenv" ];
 | 
			
		||||
 | 
			
		||||
    services.lighttpd.extraConfig = ''
 | 
			
		||||
      $HTTP["url"] =~ "^/cgit" {
 | 
			
		||||
      $HTTP["url"] =~ "^/${cfg.subdir}" {
 | 
			
		||||
          cgi.assign = (
 | 
			
		||||
              "cgit.cgi" => "${pkgs.cgit}/cgit/cgit.cgi"
 | 
			
		||||
          )
 | 
			
		||||
          alias.url = (
 | 
			
		||||
              "/cgit.css" => "${pkgs.cgit}/cgit/cgit.css",
 | 
			
		||||
              "/cgit.png" => "${pkgs.cgit}/cgit/cgit.png",
 | 
			
		||||
              "/cgit"     => "${pkgs.cgit}/cgit/cgit.cgi"
 | 
			
		||||
              "${pathPrefix}/cgit.css" => "${pkgs.cgit}/cgit/cgit.css",
 | 
			
		||||
              "${pathPrefix}/cgit.png" => "${pkgs.cgit}/cgit/cgit.png",
 | 
			
		||||
              "${pathPrefix}"          => "${pkgs.cgit}/cgit/cgit.cgi"
 | 
			
		||||
          )
 | 
			
		||||
          setenv.add-environment = (
 | 
			
		||||
              "CGIT_CONFIG" => "${configFile}"
 | 
			
		||||
 | 
			
		||||
@ -147,6 +147,8 @@ in
 | 
			
		||||
      ${config.services.resolved.extraConfig}
 | 
			
		||||
    '';
 | 
			
		||||
 | 
			
		||||
    # If networkmanager is enabled, ask it to interface with resolved.
 | 
			
		||||
    networking.networkmanager.dns = "systemd-resolved";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -171,8 +171,12 @@ in
 | 
			
		||||
        default = config.boot.zfs.enableUnstable;
 | 
			
		||||
        description = ''
 | 
			
		||||
          Request encryption keys or passwords for all encrypted datasets on import.
 | 
			
		||||
 | 
			
		||||
          Dataset encryption is only supported in zfsUnstable at the moment.
 | 
			
		||||
          For root pools the encryption key can be supplied via both an
 | 
			
		||||
          interactive prompt (keylocation=prompt) and from a file
 | 
			
		||||
          (keylocation=file://). Note that for data pools the encryption key can
 | 
			
		||||
          be only loaded from a file and not via interactive prompt since the
 | 
			
		||||
          import is processed in a background systemd service.
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
@ -394,6 +398,7 @@ in
 | 
			
		||||
            script = ''
 | 
			
		||||
              zpool_cmd="${packages.zfsUser}/sbin/zpool"
 | 
			
		||||
              ("$zpool_cmd" list "${pool}" >/dev/null) || "$zpool_cmd" import -d ${cfgZfs.devNodes} -N ${optionalString cfgZfs.forceImportAll "-f"} "${pool}"
 | 
			
		||||
              ${optionalString cfgZfs.requestEncryptionCredentials "\"${packages.zfsUser}/sbin/zfs\" load-key -r \"${pool}\""}
 | 
			
		||||
            '';
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -364,6 +364,7 @@ in rec {
 | 
			
		||||
  tests.nsd = callTest tests/nsd.nix {};
 | 
			
		||||
  tests.openssh = callTest tests/openssh.nix {};
 | 
			
		||||
  tests.openldap = callTest tests/openldap.nix {};
 | 
			
		||||
  tests.opensmtpd = callTest tests/opensmtpd.nix {};
 | 
			
		||||
  tests.owncloud = callTest tests/owncloud.nix {};
 | 
			
		||||
  tests.pam-oath-login = callTest tests/pam-oath-login.nix {};
 | 
			
		||||
  tests.peerflix = callTest tests/peerflix.nix {};
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										115
									
								
								nixos/tests/opensmtpd.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								nixos/tests/opensmtpd.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,115 @@
 | 
			
		||||
import ./make-test.nix {
 | 
			
		||||
  name = "opensmtpd";
 | 
			
		||||
 | 
			
		||||
  nodes = {
 | 
			
		||||
    smtp1 = { pkgs, ... }: {
 | 
			
		||||
      imports = [ common/user-account.nix ];
 | 
			
		||||
      networking = {
 | 
			
		||||
        firewall.allowedTCPPorts = [ 25 ];
 | 
			
		||||
        useDHCP = false;
 | 
			
		||||
        interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
 | 
			
		||||
          { address = "192.168.1.1"; prefixLength = 24; }
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      environment.systemPackages = [ pkgs.opensmtpd ];
 | 
			
		||||
      services.opensmtpd = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        extraServerArgs = [ "-v" ];
 | 
			
		||||
        serverConfiguration = ''
 | 
			
		||||
          listen on 0.0.0.0
 | 
			
		||||
          # DO NOT DO THIS IN PRODUCTION!
 | 
			
		||||
          # Setting up authentication requires a certificate which is painful in
 | 
			
		||||
          # a test environment, but THIS WOULD BE DANGEROUS OUTSIDE OF A
 | 
			
		||||
          # WELL-CONTROLLED ENVIRONMENT!
 | 
			
		||||
          accept from any for any relay
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    smtp2 = { pkgs, ... }: {
 | 
			
		||||
      imports = [ common/user-account.nix ];
 | 
			
		||||
      networking = {
 | 
			
		||||
        firewall.allowedTCPPorts = [ 25 143 ];
 | 
			
		||||
        useDHCP = false;
 | 
			
		||||
        interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
 | 
			
		||||
          { address = "192.168.1.2"; prefixLength = 24; }
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      environment.systemPackages = [ pkgs.opensmtpd ];
 | 
			
		||||
      services.opensmtpd = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        extraServerArgs = [ "-v" ];
 | 
			
		||||
        serverConfiguration = ''
 | 
			
		||||
          listen on 0.0.0.0
 | 
			
		||||
          accept from any for local deliver to mda \
 | 
			
		||||
            "${pkgs.dovecot}/libexec/dovecot/deliver -d %{user.username}"
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
      services.dovecot2 = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        enableImap = true;
 | 
			
		||||
        mailLocation = "maildir:~/mail";
 | 
			
		||||
        protocols = [ "imap" ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    client = { pkgs, ... }: {
 | 
			
		||||
      networking = {
 | 
			
		||||
        useDHCP = false;
 | 
			
		||||
        interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
 | 
			
		||||
          { address = "192.168.1.3"; prefixLength = 24; }
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
      environment.systemPackages = let
 | 
			
		||||
        sendTestMail = pkgs.writeScriptBin "send-a-test-mail" ''
 | 
			
		||||
          #!${pkgs.python3.interpreter}
 | 
			
		||||
          import smtplib, sys
 | 
			
		||||
 | 
			
		||||
          with smtplib.SMTP('192.168.1.1') as smtp:
 | 
			
		||||
            smtp.sendmail('alice@[192.168.1.1]', 'bob@[192.168.1.2]', """
 | 
			
		||||
              From: alice@smtp1
 | 
			
		||||
              To: bob@smtp2
 | 
			
		||||
              Subject: Test
 | 
			
		||||
 | 
			
		||||
              Hello World
 | 
			
		||||
            """)
 | 
			
		||||
        '';
 | 
			
		||||
 | 
			
		||||
        checkMailLanded = pkgs.writeScriptBin "check-mail-landed" ''
 | 
			
		||||
          #!${pkgs.python3.interpreter}
 | 
			
		||||
          import imaplib
 | 
			
		||||
 | 
			
		||||
          with imaplib.IMAP4('192.168.1.2', 143) as imap:
 | 
			
		||||
            imap.login('bob', 'foobar')
 | 
			
		||||
            imap.select()
 | 
			
		||||
            status, refs = imap.search(None, 'ALL')
 | 
			
		||||
            assert status == 'OK'
 | 
			
		||||
            assert len(refs) == 1
 | 
			
		||||
            status, msg = imap.fetch(refs[0], 'BODY[TEXT]')
 | 
			
		||||
            assert status == 'OK'
 | 
			
		||||
            content = msg[0][1]
 | 
			
		||||
            print("===> content:", content)
 | 
			
		||||
            split = content.split(b'\r\n')
 | 
			
		||||
            print("===> split:", split)
 | 
			
		||||
            lastline = split[-3]
 | 
			
		||||
            print("===> lastline:", lastline)
 | 
			
		||||
            assert lastline.strip() == b'Hello World'
 | 
			
		||||
        '';
 | 
			
		||||
      in [ sendTestMail checkMailLanded ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  testScript = ''
 | 
			
		||||
    startAll;
 | 
			
		||||
 | 
			
		||||
    $client->waitForUnit("network.target");
 | 
			
		||||
    $smtp1->waitForUnit('opensmtpd');
 | 
			
		||||
    $smtp2->waitForUnit('opensmtpd');
 | 
			
		||||
    $smtp2->waitForUnit('dovecot2');
 | 
			
		||||
 | 
			
		||||
    $client->succeed('send-a-test-mail');
 | 
			
		||||
    $smtp1->waitUntilFails('smtpctl show queue | egrep .');
 | 
			
		||||
    $smtp2->waitUntilFails('smtpctl show queue | egrep .');
 | 
			
		||||
    $client->succeed('check-mail-landed >&2');
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								pkgs/applications/altcoins/clightning.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								pkgs/applications/altcoins/clightning.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
{ stdenv, fetchpatch, python3, pkgconfig, which, libtool, autoconf, automake,
 | 
			
		||||
  autogen, git, sqlite, gmp, zlib, fetchFromGitHub }:
 | 
			
		||||
 | 
			
		||||
with stdenv.lib;
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  name = "clightning-${version}";
 | 
			
		||||
  version = "0.6";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    fetchSubmodules = true;
 | 
			
		||||
    owner = "ElementsProject";
 | 
			
		||||
    repo = "lightning";
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    sha256 = "1xbi8c7kn21wj255fxnb9s0sqnzbn3wsz4p96z084k8mw1nc71vn";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  enableParallelBuilding = true;
 | 
			
		||||
 | 
			
		||||
  buildInputs = [ which sqlite gmp zlib autoconf libtool automake autogen python3 pkgconfig ];
 | 
			
		||||
 | 
			
		||||
  makeFlags = [ "prefix=$(out)" ];
 | 
			
		||||
 | 
			
		||||
  configurePhase = ''
 | 
			
		||||
    ./configure --prefix=$out --disable-developer --disable-valgrind
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  postPatch = ''
 | 
			
		||||
    echo "" > tools/refresh-submodules.sh
 | 
			
		||||
    patchShebangs tools/generate-wire.py
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  doCheck = false;
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "A Bitcoin Lightning Network implementation in C";
 | 
			
		||||
    longDescription= ''
 | 
			
		||||
      c-lightning is a standard compliant implementation of the Lightning
 | 
			
		||||
      Network protocol. The Lightning Network is a scalability solution for
 | 
			
		||||
      Bitcoin, enabling secure and instant transfer of funds between any two
 | 
			
		||||
      parties for any amount.
 | 
			
		||||
    '';
 | 
			
		||||
    homepage = https://github.com/ElementsProject/lightning;
 | 
			
		||||
    maintainers = with maintainers; [ jb55 ];
 | 
			
		||||
    license = licenses.mit;
 | 
			
		||||
    platforms = platforms.linux;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -6,6 +6,7 @@ rec {
 | 
			
		||||
 | 
			
		||||
  bitcoin  = libsForQt5.callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
 | 
			
		||||
  bitcoind = callPackage ./bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
 | 
			
		||||
  clightning = callPackage ./clightning.nix { };
 | 
			
		||||
 | 
			
		||||
  bitcoin-abc  = libsForQt5.callPackage ./bitcoin-abc.nix { boost = boost165; withGui = true; };
 | 
			
		||||
  bitcoind-abc = callPackage ./bitcoin-abc.nix { boost = boost165; withGui = false; };
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@
 | 
			
		||||
  name = "mma-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
 | 
			
		||||
    url = "https://www.mellowood.ca/mma/mma-bin-${version}.tar.gz";
 | 
			
		||||
    sha256 = "1g4gvc0nr0qjc0fyqrnx037zpaasgymgmrm5s7cdxqnld9wqw8ww";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ in
 | 
			
		||||
  stdenv.mkDerivation {
 | 
			
		||||
    name = "abcde-${version}";
 | 
			
		||||
    src = fetchurl {
 | 
			
		||||
      url = "http://abcde.einval.com/download/abcde-${version}.tar.gz";
 | 
			
		||||
      url = "https://abcde.einval.com/download/abcde-${version}.tar.gz";
 | 
			
		||||
      sha256 = "0f9bjs0phk23vry7gvh0cll9vl6kmc1y4fwwh762scfdvpbp3774";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "0.9.5";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0wfp8ihldyq2dhdyy7ld7z0zzfvnwam1dvbxnpd9d6xgc4k3j4nv";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										42
									
								
								pkgs/applications/audio/amarok/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								pkgs/applications/audio/amarok/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
			
		||||
{ mkDerivation, fetchgit, lib
 | 
			
		||||
, extra-cmake-modules, kdoctools
 | 
			
		||||
, qca-qt5, qjson, qtquickcontrols2, qtscript, qtwebengine
 | 
			
		||||
, karchive, kcmutils, kconfig, kdnssd, kguiaddons, kinit, kirigami2, knewstuff, knotifyconfig, ktexteditor, kwindowsystem
 | 
			
		||||
, fftw, phonon, plasma-framework, threadweaver
 | 
			
		||||
, curl, ffmpeg, gdk_pixbuf, libaio, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  pname = "amarok";
 | 
			
		||||
  version = "2.9.0-20180618";
 | 
			
		||||
 | 
			
		||||
in mkDerivation {
 | 
			
		||||
  name = "${pname}-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchgit {
 | 
			
		||||
    # master has the Qt5 version as of April 2018 but a formal release has not
 | 
			
		||||
    # yet been made so change this back to the proper upstream when such a
 | 
			
		||||
    # release is out
 | 
			
		||||
    url    = git://anongit.kde.org/amarok.git;
 | 
			
		||||
    # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
 | 
			
		||||
    rev    = "5d43efa454b6a6c9c833a6f3d7f8ff3cae738c96";
 | 
			
		||||
    sha256 = "0fyrbgldg4wbb2darm4aav5fpzbacxzfjrdqwkhv9xr13j7zsvm3";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 | 
			
		||||
 | 
			
		||||
  propagatedBuildInputs = [
 | 
			
		||||
    qca-qt5 qjson qtquickcontrols2 qtscript qtwebengine
 | 
			
		||||
    karchive kcmutils kconfig kdnssd kguiaddons kinit kirigami2 knewstuff knotifyconfig ktexteditor kwindowsystem
 | 
			
		||||
    phonon plasma-framework threadweaver
 | 
			
		||||
    curl fftw ffmpeg gdk_pixbuf libaio libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
 | 
			
		||||
    pcre snappy taglib taglib_extras
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  enableParallelBuilding = true;
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    license = licenses.gpl2;
 | 
			
		||||
    maintainers = with maintainers; [ peterhoeg ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -1,40 +0,0 @@
 | 
			
		||||
{ mkDerivation, fetchgit, lib
 | 
			
		||||
, extra-cmake-modules, kdoctools
 | 
			
		||||
, qca-qt5, qjson, qtscript, qtwebkit
 | 
			
		||||
, kcmutils, kconfig, kdelibs4support, kdnssd, kinit, knewstuff, knotifyconfig, ktexteditor
 | 
			
		||||
, phonon, plasma-framework, threadweaver
 | 
			
		||||
, curl, ffmpeg, gdk_pixbuf, libaio, libmtp, loudmouth, lzo, lz4, mysql57, pcre, snappy, taglib, taglib_extras
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
let
 | 
			
		||||
  pname = "amarok";
 | 
			
		||||
  version = "2.8.91-20170228";
 | 
			
		||||
 | 
			
		||||
in mkDerivation {
 | 
			
		||||
  name = "${pname}-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchgit {
 | 
			
		||||
    url    = git://anongit.kde.org/amarok.git;
 | 
			
		||||
    # go back to the KDE mirror when kf5 is merged into master
 | 
			
		||||
    # url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
 | 
			
		||||
    rev    = "323e2d5b43245c4c06e0b83385d37ef0d32920cb";
 | 
			
		||||
    sha256 = "05w7kl6qfmkjz0y1bhgkkbmsqdll30bkjd6npkzvivrvp7dplmbh";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  patches = [ ./qt5_11.patch ];
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 | 
			
		||||
  propagatedBuildInputs = [
 | 
			
		||||
    qca-qt5 qjson qtscript qtwebkit
 | 
			
		||||
    kcmutils kconfig kdelibs4support kdnssd kinit knewstuff knotifyconfig ktexteditor
 | 
			
		||||
    phonon plasma-framework threadweaver
 | 
			
		||||
    curl ffmpeg gdk_pixbuf libaio libmtp loudmouth lz4 lzo mysql57.server mysql57.server.static
 | 
			
		||||
    pcre snappy taglib taglib_extras
 | 
			
		||||
  ];
 | 
			
		||||
  enableParallelBuilding = true;
 | 
			
		||||
 | 
			
		||||
  meta = with lib; {
 | 
			
		||||
    license = licenses.gpl2;
 | 
			
		||||
    maintainers = with maintainers; [ peterhoeg ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
--- a/src/aboutdialog/ExtendedAboutDialog.cpp
 | 
			
		||||
+++ b/src/aboutdialog/ExtendedAboutDialog.cpp
 | 
			
		||||
@@ -30,6 +30,7 @@
 | 
			
		||||
 #include <QLayout>
 | 
			
		||||
 #include <QPushButton>
 | 
			
		||||
 #include <QScrollBar>
 | 
			
		||||
+#include <QStyle>
 | 
			
		||||
 #include <QTabWidget>
 | 
			
		||||
 
 | 
			
		||||
 #include <qapplication.h>
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "3.9";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://distfiles.audacious-media-player.org/audacious-${version}-gtk3.tar.bz2";
 | 
			
		||||
    url = "https://distfiles.audacious-media-player.org/audacious-${version}-gtk3.tar.bz2";
 | 
			
		||||
    sha256 = "0dc7fg0v2l2j4h9cz1baz7rf4n0a5jgk09qvsj806sh6jp7w6ipm";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.6.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://ftp.gnome.org/pub/GNOME/sources/banshee/2.6/banshee-${version}.tar.xz";
 | 
			
		||||
    url = "https://ftp.gnome.org/pub/GNOME/sources/banshee/2.6/banshee-${version}.tar.xz";
 | 
			
		||||
    sha256 = "1y30p8wxx5li39i5gpq2wib0ympy8llz0gyi6ri9bp730ndhhz7p";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "beast-0.7.1";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://ftp.gtk.org/pub/beast/v0.7/${name}.tar.bz2";
 | 
			
		||||
    url = "https://ftp.gtk.org/pub/beast/v0.7/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0jyl1i1918rsn4296w07fsf6wx3clvad522m3bzgf8ms7gxivg5l";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "1.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://devel.tlrmx.org/audio/source/${name}.tar.gz";
 | 
			
		||||
    url = "https://devel.tlrmx.org/audio/source/${name}.tar.gz";
 | 
			
		||||
    sha256 = "09ck2gxqky701dc1p0ip61rrn16v0pdc7ih2hc2sd63zcw53g2a7";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "0.90.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://calf-studio-gear.org/files/${name}.tar.gz";
 | 
			
		||||
    url = "https://calf-studio-gear.org/files/${name}.tar.gz";
 | 
			
		||||
    sha256 = "0dijv2j7vlp76l10s4v8gbav26ibaqk8s24ci74vrc398xy00cib";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
    homepage = http://xiph.org/paranoia;
 | 
			
		||||
    homepage = https://xiph.org/paranoia;
 | 
			
		||||
    description = "A tool and library for reading digital audio from CDs";
 | 
			
		||||
    platforms = stdenv.lib.platforms.unix;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,11 @@
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  name = "deadbeef-mpris2-plugin-${version}";
 | 
			
		||||
  version = "1.10";
 | 
			
		||||
  version = "1.11";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "https://github.com/Serranya/deadbeef-mpris2-plugin/releases/download/v${version}/${name}.tar.xz";
 | 
			
		||||
    sha256 = "083fbvi06y85khr8hdm4rl5alxdanjbbyphizyr4hi93d7a0jg75";
 | 
			
		||||
    sha256 = "1j631z34rwxf6wdjpsf8c2f1saq6qas1qmkgsg63m6zzpwqyizw0";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ pkgconfig ];
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.2.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
 | 
			
		||||
    url = "https://ftp.gnu.org/gnu/denemo/denemo-${version}.tar.gz";
 | 
			
		||||
    sha256 = "18zcs4xmfj4vpzi15dj7k5bjzzzlr3sjf9xhrrgy4samrrdpqzfh";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "drumgizmo-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.drumgizmo.org/releases/${name}/${name}.tar.gz";
 | 
			
		||||
    url = "https://www.drumgizmo.org/releases/${name}/${name}.tar.gz";
 | 
			
		||||
    sha256 = "1q2jghjz0ygaja8dgvxp914if8yyzpa204amdcwb9yyinpxsahz4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.9.1";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://ecasound.seul.org/download/ecasound-${version}.tar.gz";
 | 
			
		||||
    url = "https://ecasound.seul.org/download/ecasound-${version}.tar.gz";
 | 
			
		||||
    sha256 = "1wyws3xc4f9pglrrqv6k9137sarv4asizqrxz8h0dn44rnzfiz1r";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "1.0.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.drobilla.net/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.drobilla.net/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "1hh2xhknanqn3iwp12ihl6bf8p7bqxryms9qk7mh21lixl42b8k5";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "1.1.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.linuxsampler.org/packages/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.linuxsampler.org/packages/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "087pc919q28r1vw31c7w4m14bqnp4md1i2wbmk8w0vmwv2cbx2ni";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,11 +12,11 @@ in
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  name = "guitarix-${version}";
 | 
			
		||||
  version = "0.37.0";
 | 
			
		||||
  version = "0.37.1";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
 | 
			
		||||
    sha256 = "17dsd32yd92l7xq1x0b8jsws5yif2pk4zbfjbc560hgarym6r8x6";
 | 
			
		||||
    sha256 = "064k0jzxqgx9gwf8za6jziansabzrwzjaim3qx1743ify5g3gaai";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ];
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "0.8.4";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0jyll4rkb6vja2widc340ww078rr24c6nmxbxdqvbxw409nccd01";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "0.9.73";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://archive.notam02.no/arkiv/src/${name}.tar.gz";
 | 
			
		||||
    url = "https://archive.notam02.no/arkiv/src/${name}.tar.gz";
 | 
			
		||||
    sha256 = "1pji0zdwm3kxjrkbzj7fnxhr8ncrc8pyqnwyrh47fhypgqjv1br1";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ stdenv.mkDerivation  rec {
 | 
			
		||||
  version = "1.6.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.drobilla.net/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.drobilla.net/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "1x2wpzzx2cgvz3dgdcgsj8dr0w3zsasy62mvl199bsdj5fbjaili";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "japa-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "1jhj7s4vqk5c4lchdall0kslvj5sh91902hhfjvs6r3a5nrhwcp0";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "ladspa-sdk-${version}";
 | 
			
		||||
  version = "1.13";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
 | 
			
		||||
    url = "https://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
 | 
			
		||||
    sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "ladspa.h-${version}";
 | 
			
		||||
  version = "1.13";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
 | 
			
		||||
    url = "https://www.ladspa.org/download/ladspa_sdk_${version}.tgz";
 | 
			
		||||
    sha256 = "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.1.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.linuxsampler.org/packages/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.linuxsampler.org/packages/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0fdxpw7jjfi058l95131d6d8538h05z7n94l60i6mhp9xbplj2jf";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,18 +3,20 @@
 | 
			
		||||
, python36Packages, gnome3, glib, gst_all_1 }:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec  {  
 | 
			
		||||
  version = "0.9.514";
 | 
			
		||||
  version = "0.9.516";
 | 
			
		||||
  name = "lollypop-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchgit {
 | 
			
		||||
    url = "https://gitlab.gnome.org/World/lollypop";
 | 
			
		||||
    rev = "refs/tags/${version}";
 | 
			
		||||
    fetchSubmodules = true;
 | 
			
		||||
    sha256 = "0ny8c5apldhhrcjl3wz01pbyjvf60b7xy39mpvbshvdpnqlnqsca";
 | 
			
		||||
    sha256 = "0ln77cmcl5wi4xis9kmzg0knbykzwsd1n78rr7ff5y35m9p2zgrf";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = with python36Packages; [
 | 
			
		||||
    appstream-glib
 | 
			
		||||
    desktop-file-utils
 | 
			
		||||
    gobjectIntrospection
 | 
			
		||||
    meson
 | 
			
		||||
    ninja
 | 
			
		||||
    pkgconfig
 | 
			
		||||
@ -22,9 +24,7 @@ stdenv.mkDerivation rec  {
 | 
			
		||||
    wrapPython
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  buildInputs = [
 | 
			
		||||
    appstream-glib glib gobjectIntrospection
 | 
			
		||||
  ] ++ (with gnome3; [
 | 
			
		||||
  buildInputs = [ glib ] ++ (with gnome3; [
 | 
			
		||||
    easytag gsettings_desktop_schemas gtk3 libsecret libsoup totem-pl-parser
 | 
			
		||||
  ]) ++ (with gst_all_1; [
 | 
			
		||||
    gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "1.2.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.drobilla.net/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.drobilla.net/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0hh40c5d2m0k5gb3vw031l6lqn59dg804an3mkmhkc7qv4gc6xm4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.0.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://downloads.mixxx.org/${name}/${name}-src.tar.gz";
 | 
			
		||||
    url = "https://downloads.mixxx.org/${name}/${name}-src.tar.gz";
 | 
			
		||||
    sha256 = "0vb71w1yq0xwwsclrn2jj9bk8w4n14rfv5c0aw46c11mp8xz7f71";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  patches = [ ./buildfix.diff ];
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://deb-multimedia.org/pool/main/m/${pname}/${pname}_${version}.orig.tar.gz";
 | 
			
		||||
    url = "https://deb-multimedia.org/pool/main/m/${pname}/${pname}_${version}.orig.tar.gz";
 | 
			
		||||
    sha256 = "0kjfwzfxfx7f958b2b1kf8yj655lp0ppmn0sh57gbkjvj8lml7nz";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,11 +2,11 @@
 | 
			
		||||
 | 
			
		||||
pythonPackages.buildPythonApplication rec {
 | 
			
		||||
  pname = "Mopidy-Iris";
 | 
			
		||||
  version = "3.21.1";
 | 
			
		||||
  version = "3.21.3";
 | 
			
		||||
 | 
			
		||||
  src = pythonPackages.fetchPypi {
 | 
			
		||||
    inherit pname version;
 | 
			
		||||
    sha256 = "10d97rkqk5qbrninrahn0gr90yd47ivw2zafb24sp7a2g0mm07md";
 | 
			
		||||
    sha256 = "0gp51zz5qr93w0h14m1blmjnlgmilyb15lw2m75varslw1ar7vlg";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  propagatedBuildInputs = [
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "nova-filters-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = http://klingt.org/~tim/nova-filters/nova-filters_0.2-2.tar.gz;
 | 
			
		||||
    url = https://klingt.org/~tim/nova-filters/nova-filters_0.2-2.tar.gz;
 | 
			
		||||
    sha256 = "16064vvl2w5lz4xi3lyjk4xx7fphwsxc14ajykvndiz170q32s6i";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "paprefs-0.9.10";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://freedesktop.org/software/pulseaudio/paprefs/${name}.tar.xz";
 | 
			
		||||
    url = "https://freedesktop.org/software/pulseaudio/paprefs/${name}.tar.xz";
 | 
			
		||||
    sha256 = "1c5b3sb881szavly220q31g7rvpn94wr7ywlk00hqb9zaikml716";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "pavucontrol-3.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://freedesktop.org/software/pulseaudio/pavucontrol/${name}.tar.xz";
 | 
			
		||||
    url = "https://freedesktop.org/software/pulseaudio/pavucontrol/${name}.tar.xz";
 | 
			
		||||
    sha256 = "14486c6lmmirkhscbfygz114f6yzf97h35n3h3pdr27w4mdfmlmk";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "helmholtz";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.katjaas.nl/helmholtz/helmholtz~.zip";
 | 
			
		||||
    url = "https://www.katjaas.nl/helmholtz/helmholtz~.zip";
 | 
			
		||||
    name = "helmholtz.zip";
 | 
			
		||||
    curlOpts = "--user-agent ''";
 | 
			
		||||
    sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "20160130";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.chnry.net/data/puremapping-${version}-generic.zip";
 | 
			
		||||
    url = "https://www.chnry.net/data/puremapping-${version}-generic.zip";
 | 
			
		||||
    name = "puremapping";
 | 
			
		||||
    sha256 = "1h7qgqd8srrxw2y1rkdw5js4k6f5vc8x6nlm2mq9mq9vjck7n1j7";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.2.4";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://puredata.info/downloads/zexy/releases/${version}/${name}.tar.gz";
 | 
			
		||||
    url = "https://puredata.info/downloads/zexy/releases/${version}/${name}.tar.gz";
 | 
			
		||||
    sha256 = "1xpgl82c2lc6zfswjsa7z10yhv5jb7a4znzh3nc7ffrzm1z8vylp";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -27,17 +27,6 @@ python2Packages.buildPythonApplication rec {
 | 
			
		||||
  doCheck = false;   # there are no tests
 | 
			
		||||
  dontStrip = true;  # we are not generating any binaries
 | 
			
		||||
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
    runHook preInstall
 | 
			
		||||
 | 
			
		||||
    siteDir=$(toPythonPath $out)
 | 
			
		||||
    mkdir -p $siteDir
 | 
			
		||||
    PYTHONPATH=$PYTHONPATH:$siteDir
 | 
			
		||||
    ${python2Packages.python.interpreter} setup.py install --prefix $out
 | 
			
		||||
 | 
			
		||||
    runHook postInstall
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  meta = with stdenv.lib; {
 | 
			
		||||
    homepage    = https://puddletag.net;
 | 
			
		||||
    description = "An audio tag editor similar to the Windows program, Mp3tag";
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    if stdenv.system == "x86_64-linux" then
 | 
			
		||||
        if builtins.isNull releasePath then
 | 
			
		||||
        fetchurl {
 | 
			
		||||
          url = "http://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86_64.tar.bz2";
 | 
			
		||||
          url = "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86_64.tar.bz2";
 | 
			
		||||
          sha256 = "0pan68fr22xbj7a930y29527vpry3f07q3i9ya4fp6g7aawffsga";
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
 | 
			
		||||
@ -34,7 +34,7 @@ stdenv.mkDerivation (rec {
 | 
			
		||||
  enableParallelBuilding = true;
 | 
			
		||||
 | 
			
		||||
  meta = with stdenv.lib; {
 | 
			
		||||
    homepage = http://www.rosegardenmusic.com/;
 | 
			
		||||
    homepage = https://www.rosegardenmusic.com/;
 | 
			
		||||
    description = "Music composition and editing environment";
 | 
			
		||||
    longDescription = ''
 | 
			
		||||
      Rosegarden is a music composition and editing environment based around
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "2.4.1";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://code.soundsoftware.ac.uk/attachments/download/1185/${name}.tar.gz";
 | 
			
		||||
    url = "https://code.soundsoftware.ac.uk/attachments/download/1185/${name}.tar.gz";
 | 
			
		||||
    sha256 = "06nlha70kgrby16nyhngrv5q846xagnxdinv608v7ga7vpywwmyb";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "0.8.2";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "17y3vbm5f6h5cmh3yfxjgqz4xhfwpkla3lqfspnbm4ndlzmfpykv";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    homepage = http://tomahawk-player.org/;
 | 
			
		||||
    license = licenses.gpl3Plus;
 | 
			
		||||
    platforms = platforms.all;
 | 
			
		||||
    broken = true; # 2018-06-25
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,7 @@ stdenv.mkDerivation {
 | 
			
		||||
      A set of command-line tools to manipulate Ogg Vorbis audio
 | 
			
		||||
      files, notably the `ogg123' player and the `oggenc' encoder.
 | 
			
		||||
    '';
 | 
			
		||||
    homepage = http://xiph.org/vorbis/;
 | 
			
		||||
    homepage = https://xiph.org/vorbis/;
 | 
			
		||||
    license = licenses.gpl2;
 | 
			
		||||
    platforms = platforms.all;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "x42-plugins-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://gareus.org/misc/x42-plugins/${name}.tar.xz";
 | 
			
		||||
    url = "https://gareus.org/misc/x42-plugins/${name}.tar.xz";
 | 
			
		||||
    sha256 = "167ly9nxqq3g0j35i9jv9rvd8qp4i9ncfcjxmg972cp6q8ak8mdl";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  buildInputs = [ cmake mpd_clientlib openssl ];
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
    homepage = http://www.ympd.org;
 | 
			
		||||
    homepage = https://www.ympd.org;
 | 
			
		||||
    description = "Standalone MPD Web GUI written in C, utilizing Websockets and Bootstrap/JS";
 | 
			
		||||
    maintainers = [ stdenv.lib.maintainers.siddharthist ];
 | 
			
		||||
    platforms = stdenv.lib.platforms.unix;
 | 
			
		||||
 | 
			
		||||
@ -13,9 +13,9 @@ let
 | 
			
		||||
    sha256Hash = "196yaswbxh2nd83gimjxr8ggr5xkdxq7n3xlh6ax73v59pj4hryq";
 | 
			
		||||
  };
 | 
			
		||||
  latestVersion = {
 | 
			
		||||
    version = "3.2.0.18"; # "Android Studio 3.2 Beta 1"
 | 
			
		||||
    build = "181.4847800";
 | 
			
		||||
    sha256Hash = "1ipdvrx3qxwygq72jlf0dl4haxviscl41q18kclg519r1zbzd4cw";
 | 
			
		||||
    version = "3.3.0.0"; # "Android Studio 3.3 Canary 1"
 | 
			
		||||
    build = "181.4861037";
 | 
			
		||||
    sha256Hash = "1abilixr386x65qzgp6pwdn41y1xi9h8yihgxhc1c97n90f5gab8";
 | 
			
		||||
  };
 | 
			
		||||
in rec {
 | 
			
		||||
  # Old alias
 | 
			
		||||
@ -43,6 +43,9 @@ in rec {
 | 
			
		||||
  beta = mkStudio (latestVersion // {
 | 
			
		||||
    pname = "android-studio-preview";
 | 
			
		||||
    #pname = "android-studio-beta"; # TODO: Rename and provide symlink
 | 
			
		||||
    version = "3.2.0.19"; # "Android Studio 3.2 Beta 2"
 | 
			
		||||
    build = "181.4860949";
 | 
			
		||||
    sha256Hash = "1v1h42xp2fxj8366q9l9b0shk0y1vz9kny0rf7y48kyr5h9glnwr";
 | 
			
		||||
 | 
			
		||||
    meta = stable.meta // {
 | 
			
		||||
      description = "The Official IDE for Android (beta channel)";
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,7 @@ let
 | 
			
		||||
        --set-rpath "${atomEnv.libPath}" \
 | 
			
		||||
        $share/resources/app/apm/bin/node
 | 
			
		||||
      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
 | 
			
		||||
        $out/share/atom/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux
 | 
			
		||||
        $share/resources/app.asar.unpacked/node_modules/symbols-view/vendor/ctags-linux
 | 
			
		||||
 | 
			
		||||
      dugite=$share/resources/app.asar.unpacked/node_modules/dugite
 | 
			
		||||
      rm -f $dugite/git/bin/git
 | 
			
		||||
 | 
			
		||||
@ -96,7 +96,7 @@ rec {
 | 
			
		||||
 | 
			
		||||
  ### Eclipse Platform
 | 
			
		||||
 | 
			
		||||
  eclipse-platform = eclipse-platform-47; # always point to latest
 | 
			
		||||
  eclipse-platform = eclipse-platform-48; # always point to latest
 | 
			
		||||
 | 
			
		||||
  eclipse-platform-46 = buildEclipse {
 | 
			
		||||
    name = "eclipse-platform-4.6.2";
 | 
			
		||||
@ -128,6 +128,21 @@ rec {
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  eclipse-platform-48 = buildEclipse {
 | 
			
		||||
    name = "eclipse-platform-4.8";
 | 
			
		||||
    description = "Eclipse Platform Photon";
 | 
			
		||||
    sources = {
 | 
			
		||||
      "x86_64-linux" = fetchurl {
 | 
			
		||||
        url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-platform-4.8-linux-gtk-x86_64.tar.gz;
 | 
			
		||||
          sha512 = "ccce2b954938479e42ef3f9b78f74b24ae4cae7499546fa4f9a55ec1849e1acfd06315d4529b11474a8b3d1142c9409c581edfa571baaf1342ab062f02467af2";
 | 
			
		||||
        };
 | 
			
		||||
      "i686-linux" = fetchurl {
 | 
			
		||||
          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-platform-4.8-linux-gtk.tar.gz;
 | 
			
		||||
          sha512 = "f5f407727e22b848931cf38f71b1a0c30a9778aa227c3df137dcceec2fba2ecc309cbfa8b4a660b814d2edb60f65110381497b4325781cab4d6402784139e32b";
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  ### Eclipse Scala SDK
 | 
			
		||||
 | 
			
		||||
  eclipse-scala-sdk = eclipse-scala-sdk-441; # always point to latest
 | 
			
		||||
@ -150,7 +165,7 @@ rec {
 | 
			
		||||
 | 
			
		||||
  ### Eclipse SDK
 | 
			
		||||
 | 
			
		||||
  eclipse-sdk = eclipse-sdk-47; # always point to latest
 | 
			
		||||
  eclipse-sdk = eclipse-sdk-48; # always point to latest
 | 
			
		||||
 | 
			
		||||
  eclipse-sdk-46 = buildEclipse {
 | 
			
		||||
    name = "eclipse-sdk-4.6.2";
 | 
			
		||||
@ -182,6 +197,21 @@ rec {
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  eclipse-sdk-48 = buildEclipse {
 | 
			
		||||
    name = "eclipse-sdk-4.8";
 | 
			
		||||
    description = "Eclipse Photon Classic";
 | 
			
		||||
    sources = {
 | 
			
		||||
      "x86_64-linux" = fetchurl {
 | 
			
		||||
          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-SDK-4.8-linux-gtk-x86_64.tar.gz;
 | 
			
		||||
          sha512 = "357ea9e7f426c68ced693f1c7b76eae23f9e3c7893de1f12d17994ec17b447896b5daa7292d5fbf6d9c4e5b7fd637ca5b2a6ba8ce40a2a7c2fe06f2124d31b75";
 | 
			
		||||
        };
 | 
			
		||||
      "i686-linux" = fetchurl {
 | 
			
		||||
          url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/eclipse-SDK-4.8-linux-gtk.tar.gz;
 | 
			
		||||
          sha512 = "c7cae7baa3978d48477090bb9941e85b4c7484021ece9c5c77a7e859e57e5c1f13556262f92b561cfb11f828b934bad7a6018be7b8fd9454e3991e8d5cae9917";
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  eclipse-sdk-37 = buildEclipse {
 | 
			
		||||
    name = "eclipse-sdk-3.7";
 | 
			
		||||
    description = "Eclipse Classic";
 | 
			
		||||
 | 
			
		||||
@ -470,12 +470,12 @@ rec {
 | 
			
		||||
 | 
			
		||||
  jdt = buildEclipseUpdateSite rec {
 | 
			
		||||
    name = "jdt-${version}";
 | 
			
		||||
    version = "4.7.3a";
 | 
			
		||||
    version = "4.8";
 | 
			
		||||
 | 
			
		||||
    src = fetchzip {
 | 
			
		||||
      stripRoot = false;
 | 
			
		||||
      url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.7.3a-201803300640/org.eclipse.jdt-4.7.3a.zip;
 | 
			
		||||
      sha256 = "10dndhqz894xf79zz07dlmkn7k33mn42nbmycr78xz6d2jy8cscx";
 | 
			
		||||
      url = https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-4.8-201806110500/org.eclipse.jdt-4.8.zip;
 | 
			
		||||
      sha256 = "1my0d1114mx5gzxmwqlx0rcny39ly97ixlwx53ljk6qcryhdnr88";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    meta = with stdenv.lib; {
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  meta = {
 | 
			
		||||
    description = "An Emacs mode for editing Scala code";
 | 
			
		||||
 | 
			
		||||
    homepage = http://www.scala-lang.org/node/354;
 | 
			
		||||
    homepage = https://www.scala-lang.org/node/354;
 | 
			
		||||
 | 
			
		||||
    # non-copyleft, BSD-style
 | 
			
		||||
    license = "permissive";
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "geany-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.geany.org/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.geany.org/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "66baaff43f12caebcf0efec9a5533044dc52837f799c73a1fd7312caa86099c2";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										47
									
								
								pkgs/applications/editors/gnome-latex/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								pkgs/applications/editors/gnome-latex/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
{ stdenv, fetchurl, wrapGAppsHook
 | 
			
		||||
, tepl, amtk, gnome3, glib, pkgconfig, intltool, itstool, libxml2 }:
 | 
			
		||||
let
 | 
			
		||||
  version = "3.28.1";
 | 
			
		||||
  pname = "gnome-latex";
 | 
			
		||||
in stdenv.mkDerivation {
 | 
			
		||||
  name = "${pname}-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
 | 
			
		||||
    sha256 = "1z481izrx057wraphnr82kxnpmmi8nvl7jswyylzm22kfs0mw402";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 | 
			
		||||
  configureFlags = ["--disable-dconf-migration"];
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [
 | 
			
		||||
    pkgconfig
 | 
			
		||||
    wrapGAppsHook
 | 
			
		||||
    itstool
 | 
			
		||||
    intltool
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  buildInputs = with gnome3; [
 | 
			
		||||
    amtk
 | 
			
		||||
    defaultIconTheme
 | 
			
		||||
    glib
 | 
			
		||||
    gsettings-desktop-schemas
 | 
			
		||||
    gspell
 | 
			
		||||
    gtksourceview4
 | 
			
		||||
    libgee
 | 
			
		||||
    libxml2
 | 
			
		||||
    tepl
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  doCheck = true;
 | 
			
		||||
 | 
			
		||||
  passthru.updateScript = gnome3.updateScript { packageName = pname; };
 | 
			
		||||
 | 
			
		||||
  meta = with stdenv.lib; {
 | 
			
		||||
    homepage = https://wiki.gnome.org/Apps/GNOME-LaTeX;
 | 
			
		||||
    description = "A LaTeX editor for the GNOME desktop";
 | 
			
		||||
    maintainers = [ maintainers.manveru ];
 | 
			
		||||
    license = licenses.gpl3Plus;
 | 
			
		||||
    platforms = platforms.linux;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    urls = [
 | 
			
		||||
      "https://www.mirbsd.org/MirOS/dist/jupp/${srcName}.tgz"
 | 
			
		||||
      "http://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
 | 
			
		||||
      "https://pub.allbsd.org/MirOS/dist/jupp/${srcName}.tgz" ];
 | 
			
		||||
    sha256 = "1fnf9jsd6p4jyybkhjjs328qx38ywy8w029ngc7j7kqp0ixn0l0s";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "monodevelop-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://download.mono-project.com/sources/monodevelop/${name}.tar.bz2";
 | 
			
		||||
    url = "https://download.mono-project.com/sources/monodevelop/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0bim4bfv3zwijafl9g0cx3159zq43dlcv74mnyrda41j4p52w5ji";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -20,11 +20,11 @@ let
 | 
			
		||||
 | 
			
		||||
in stdenv.mkDerivation rec {
 | 
			
		||||
  name = "nano-${version}";
 | 
			
		||||
  version = "2.9.7";
 | 
			
		||||
  version = "2.9.8";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "mirror://gnu/nano/${name}.tar.xz";
 | 
			
		||||
    sha256 = "1ga4sdk3ikx1ilggc6c77vyfpbmq3nrhg6svgglpf5sv60bv0jmn";
 | 
			
		||||
    sha256 = "122lm0z97wk3mgnbn8m4d769d4j9rxyc9z7s89xd4gsdp8qsrpn2";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ in
 | 
			
		||||
stdenv.mkDerivation {
 | 
			
		||||
  name = "netbeans-8.2";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = http://download.netbeans.org/netbeans/8.2/final/zip/netbeans-8.2-201609300101.zip;
 | 
			
		||||
    url = https://download.netbeans.org/netbeans/8.2/final/zip/netbeans-8.2-201609300101.zip;
 | 
			
		||||
    sha256 = "0j092qw7aqfc9vpnvr3ix1ii94p4ik6frcnw708iyv4s9crqi65d";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "4.0.5";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = http://www.scintilla.org/scite405.tgz;
 | 
			
		||||
    url = https://www.scintilla.org/scite405.tgz;
 | 
			
		||||
    sha256 = "0h16wk2986nkkhhdv5g4lxlcn02qwyja24x1r6vf02r1hf46b9q2";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  meta = with stdenv.lib; {
 | 
			
		||||
    homepage = http://www.scintilla.org/SciTE.html;
 | 
			
		||||
    homepage = https://www.scintilla.org/SciTE.html;
 | 
			
		||||
    description = "SCIntilla based Text Editor";
 | 
			
		||||
    license = licenses.mit;
 | 
			
		||||
    platforms = platforms.linux;
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "3.02";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.chiark.greenend.org.uk/~sgtatham/tweak/${name}.tar.gz";
 | 
			
		||||
    url = "https://www.chiark.greenend.org.uk/~sgtatham/tweak/${name}.tar.gz";
 | 
			
		||||
    sha256 = "06js54pr5hwpwyxj77zs5s40n5aqvaw48dkj7rid2d47pyqijk2v";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,18 +3,18 @@
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  name = "typora-${version}";
 | 
			
		||||
  version = "0.9.48";
 | 
			
		||||
  version = "0.9.53";
 | 
			
		||||
 | 
			
		||||
  src =
 | 
			
		||||
    if stdenv.system == "x86_64-linux" then
 | 
			
		||||
      fetchurl {
 | 
			
		||||
        url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
 | 
			
		||||
        sha256 = "36a7c5f855306bcbe3364d12aca94c2f6d013a013e59b46f89df81496ec11800";
 | 
			
		||||
        sha256 = "02k6x30l4mbjragqbq5rn663xbw3h4bxzgppfxqf5lwydswldklb";
 | 
			
		||||
      }
 | 
			
		||||
    else
 | 
			
		||||
      fetchurl {
 | 
			
		||||
        url = "https://www.typora.io/linux/typora_${version}_i386.deb";
 | 
			
		||||
        sha256 = "7197c526918a791b15b701846f9f2f1747a5b8ceac77c4cba691ee6d74d07d1d";
 | 
			
		||||
        sha256 = "1wyq1ri0wwdy7slbd9dwyrdynsaa644x44c815jl787sg4nhas6y";
 | 
			
		||||
      }
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
@ -80,7 +80,6 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    wrapProgram $out/bin/typora \
 | 
			
		||||
      "''${gappsWrapperArgs[@]}" \
 | 
			
		||||
      --suffix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
 | 
			
		||||
      --set XDG_RUNTIME_DIR "XDG-RUNTIME-DIR" \
 | 
			
		||||
      --prefix XDG_DATA_DIRS : "${gnome3.defaultIconTheme}/share"
 | 
			
		||||
 | 
			
		||||
    # Fix the desktop link
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
stdenv.mkDerivation {
 | 
			
		||||
  name = "grass-7.2.2";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = http://grass.osgeo.org/grass72/source/grass-7.2.2.tar.gz;
 | 
			
		||||
    url = https://grass.osgeo.org/grass72/source/grass-7.2.2.tar.gz;
 | 
			
		||||
    sha256 = "0yzljbrxlqp4wbw08n1dvmm4vmwkg8glf1ff4xyh589r5ryb7gxv";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://qgis.org/downloads/${name}.tar.bz2";
 | 
			
		||||
    url = "https://qgis.org/downloads/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "0bm9sv268lc3v48zjypsjjs62xnyb7zabzrms4jsy020waz6sk9g";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@
 | 
			
		||||
, ilmbase, gtk3, intltool, lcms2, lensfun, libX11, libexif, libgphoto2, libjpeg
 | 
			
		||||
, libpng, librsvg, libtiff, openexr, osm-gps-map, pkgconfig, sqlite, libxslt
 | 
			
		||||
, openjpeg, lua, pugixml, colord, colord-gtk, libwebp, libsecret, gnome3
 | 
			
		||||
, ocl-icd
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
@ -21,9 +22,9 @@ stdenv.mkDerivation rec {
 | 
			
		||||
    libgphoto2 libjpeg libpng librsvg libtiff openexr sqlite libxslt
 | 
			
		||||
    libsoup graphicsmagick json-glib openjpeg lua pugixml
 | 
			
		||||
    colord colord-gtk libwebp libsecret gnome3.adwaita-icon-theme
 | 
			
		||||
    osm-gps-map
 | 
			
		||||
    osm-gps-map ocl-icd
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
  cmakeFlags = [
 | 
			
		||||
    "-DBUILD_USERMANUAL=False"
 | 
			
		||||
  ];
 | 
			
		||||
@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  # the wrappers:
 | 
			
		||||
  preFixup = ''
 | 
			
		||||
    gappsWrapperArgs+=(
 | 
			
		||||
      --prefix LD_LIBRARY_PATH ":" "$out/lib/darktable"
 | 
			
		||||
      --prefix LD_LIBRARY_PATH ":" "$out/lib/darktable:${ocl-icd}/lib"
 | 
			
		||||
    )
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -6,11 +6,11 @@ with stdenv.lib;
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  name = "feh-${version}";
 | 
			
		||||
  version = "2.26.3";
 | 
			
		||||
  version = "2.26.4";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "https://feh.finalrewind.org/${name}.tar.bz2";
 | 
			
		||||
    sha256 = "08aagymgajcvciagwy2zdxhicvdfnjmd2xyx9bqjy7l1n16ydwrz";
 | 
			
		||||
    sha256 = "15a7hjg7xwj1hsw3c5k18psvvmbqgn4g79qq03bsvibzl4kqakq7";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = [ "out" "man" "doc" ];
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  version = "3.4.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://ftp.gnome.org/pub/GNOME/sources/glabels/3.4/glabels-3.4.0.tar.xz";
 | 
			
		||||
    url = "https://ftp.gnome.org/pub/GNOME/sources/glabels/3.4/glabels-3.4.0.tar.xz";
 | 
			
		||||
    sha256 = "04345crf5yrhq6rlrymz630rxnm8yw41vx04hb6xn2nkjn9hf3nl";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "gocr-0.51";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www-e.uni-magdeburg.de/jschulen/ocr/${name}.tar.gz";
 | 
			
		||||
    url = "https://www-e.uni-magdeburg.de/jschulen/ocr/${name}.tar.gz";
 | 
			
		||||
    sha256 = "14i6zi6q11h6d0qds2cpvgvhbxk5xaa027h8cd0wy1zblh7sxckf";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@ let
 | 
			
		||||
    version = "150";
 | 
			
		||||
 | 
			
		||||
    src = fetchurl {
 | 
			
		||||
      url = "http://wsr.imagej.net/distros/cross-platform/ij150.zip";
 | 
			
		||||
      url = "https://wsr.imagej.net/distros/cross-platform/ij150.zip";
 | 
			
		||||
      sha256 = "97aba6fc5eb908f5160243aebcdc4965726693cb1353d9c0d71b8f5dd832cb7b";
 | 
			
		||||
    };
 | 
			
		||||
    buildInputs = [ unzip makeWrapper ];
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "imlibsetroot-${version}";
 | 
			
		||||
  version = "1.2";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://robotmonkeys.net/wp-content/uploads/2010/03/imlibsetroot-12.tar.gz";
 | 
			
		||||
    url = "https://robotmonkeys.net/wp-content/uploads/2010/03/imlibsetroot-12.tar.gz";
 | 
			
		||||
    sha256 = "8c1b3b7c861e4d865883ec13a96b8e4ab22464a87d4e6c67255b17a88e3cfd1c";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "jpegoptim-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.kokkonen.net/tjko/src/${name}.tar.gz";
 | 
			
		||||
    url = "https://www.kokkonen.net/tjko/src/${name}.tar.gz";
 | 
			
		||||
    sha256 = "1dss7907fclfl8zsw0bl4qcw0hhz6fqgi3867w0jyfm3q9jfpcc8";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										40
									
								
								pkgs/applications/graphics/krop/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								pkgs/applications/graphics/krop/default.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
{ stdenv, fetchFromGitHub, python3Packages, libsForQt5, ghostscript }:
 | 
			
		||||
 | 
			
		||||
python3Packages.buildPythonApplication rec {
 | 
			
		||||
  pname = "krop";
 | 
			
		||||
  version = "0.5.0";
 | 
			
		||||
 | 
			
		||||
  src = fetchFromGitHub {
 | 
			
		||||
    owner = "arminstraub";
 | 
			
		||||
    repo = pname;
 | 
			
		||||
    rev = "v${version}";
 | 
			
		||||
    sha256 = "0y8z9xr10wbzmi1dg1zpcsf3ihnxrnvlaf72821x3390s3qsnydf";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  propagatedBuildInputs = with python3Packages; [
 | 
			
		||||
    pyqt5
 | 
			
		||||
    pypdf2
 | 
			
		||||
    poppler-qt5
 | 
			
		||||
    libsForQt5.poppler
 | 
			
		||||
    ghostscript
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Disable checks because of interference with older Qt versions // xcb
 | 
			
		||||
  doCheck = false;
 | 
			
		||||
 | 
			
		||||
  meta = {
 | 
			
		||||
    homepage = http://arminstraub.com/software/krop;
 | 
			
		||||
    description = "Graphical tool to crop the pages of PDF files";
 | 
			
		||||
    longDescription = ''
 | 
			
		||||
    Krop is a tool that allows you to optimise your PDF files, and remove
 | 
			
		||||
    sections of the page you do not want.  A unique feature of krop, at least to my
 | 
			
		||||
    knowledge, is its ability to automatically split pages into subpages to fit the
 | 
			
		||||
    limited screensize of devices such as eReaders. This is particularly useful, if
 | 
			
		||||
    your eReader does not support convenient scrolling. Krop also has a command line
 | 
			
		||||
    interface.
 | 
			
		||||
    '';
 | 
			
		||||
    license = stdenv.lib.licenses.gpl3Plus;
 | 
			
		||||
    maintainers = with stdenv.lib.maintainers; [ leenaars ];
 | 
			
		||||
    platforms = stdenv.lib.platforms.linux;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@ -5,7 +5,7 @@ stdenv.mkDerivation (rec {
 | 
			
		||||
  name = "qiv-${version}";
 | 
			
		||||
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://spiegl.de/qiv/download/${name}.tgz";
 | 
			
		||||
    url = "https://spiegl.de/qiv/download/${name}.tgz";
 | 
			
		||||
    sha256 = "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@ in stdenv.mkDerivation rec {
 | 
			
		||||
      }
 | 
			
		||||
    else if stdenv.system == "x86_64-linux" then
 | 
			
		||||
      fetchurl {
 | 
			
		||||
        url = "http://download.brother.com/welcome/dlf006645/${name}.amd64.deb";
 | 
			
		||||
        url = "https://download.brother.com/welcome/dlf006645/${name}.amd64.deb";
 | 
			
		||||
        sha256 = "0xy5px96y1saq9l80vwvfn6anr2q42qlxdhm6ci2a0diwib5q9fd";
 | 
			
		||||
      }
 | 
			
		||||
    else throw "${name} is not supported on ${stdenv.system} (only i686-linux and x86_64 linux are supported)";
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@ assert (stdenv ? glibc);
 | 
			
		||||
stdenv.mkDerivation {
 | 
			
		||||
  name = "seg3d-1.12_20090930";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = http://www.sci.utah.edu/releases/seg3d_v1.12/Seg3D_1.12_20090930_source.tgz;
 | 
			
		||||
    url = https://www.sci.utah.edu/releases/seg3d_v1.12/Seg3D_1.12_20090930_source.tgz;
 | 
			
		||||
    sha256 = "1wr6rc6v5qjjkmws8yrc03z35h3iydxk1z28p06v1wdnca0y71z8";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  name = "zgv-${version}";
 | 
			
		||||
  version = "5.9";
 | 
			
		||||
  src = fetchurl {
 | 
			
		||||
    url = "http://www.svgalib.org/rus/zgv/${name}.tar.gz";
 | 
			
		||||
    url = "https://www.svgalib.org/rus/zgv/${name}.tar.gz";
 | 
			
		||||
    sha256 = "1fk4i9x0cpnpn3llam0zy2pkmhlr2hy3iaxhxg07v9sizd4dircj";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
{ stdenv, fetchzip, makeWrapper }:
 | 
			
		||||
{ stdenv, fetchzip }:
 | 
			
		||||
 | 
			
		||||
stdenv.mkDerivation rec {
 | 
			
		||||
  name = "1password-${version}";
 | 
			
		||||
@ -6,25 +6,24 @@ stdenv.mkDerivation rec {
 | 
			
		||||
  src =
 | 
			
		||||
    if stdenv.system == "i686-linux" then
 | 
			
		||||
      fetchzip {
 | 
			
		||||
        url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_386_v${version}.zip";
 | 
			
		||||
        sha256 = "0mv2m6rm6bdpca8vhyx213bg4kh06jl2sx8q7mnrp22c3f0yzh7f";
 | 
			
		||||
        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
 | 
			
		||||
        sha256 = "1yzzh1f6hx7vwdgzp0znsjarjiw4xqmmrkc5xwywgjpg81qqpl8c";
 | 
			
		||||
        stripRoot = false;
 | 
			
		||||
      }
 | 
			
		||||
    else if stdenv.system == "x86_64-linux" then
 | 
			
		||||
      fetchzip {
 | 
			
		||||
        url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_amd64_v${version}.zip";
 | 
			
		||||
        sha256 = "016h5jcy6jic8j3mvlnpcig9jxs22vj71gh6rrap2q950bzi6fi1";
 | 
			
		||||
        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
 | 
			
		||||
        sha256 = "0dgj1zqmpdbnsz2v2j7nqm232cdgyp9wagc089dxi4hbzkmfcvzx";
 | 
			
		||||
        stripRoot = false;
 | 
			
		||||
      }
 | 
			
		||||
    else if stdenv.system == "x86_64-darwin" then
 | 
			
		||||
      fetchzip {
 | 
			
		||||
        url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v${version}.zip";
 | 
			
		||||
        sha256 = "1l0bi0f6gd4q19wn3v409gj64wp51mr0xpb09da1fl33rl5fpszb";
 | 
			
		||||
        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip";
 | 
			
		||||
        sha256 = "116bvyfg38npdhlzaxan5y47cbw7jvj94q5w6v71kxsjzxk9l44a";
 | 
			
		||||
        stripRoot = false;
 | 
			
		||||
      }
 | 
			
		||||
    else throw "Architecture not supported";
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = [ makeWrapper ];
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
    install -D op $out/bin/op
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user