diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml
index de1b9b80d300..e99e90bac9c5 100644
--- a/doc/cross-compilation.xml
+++ b/doc/cross-compilation.xml
@@ -85,7 +85,8 @@
This field is obsolete and will soon disappear—please do not use it.
- The exact scheme these fields is a bit ill-defined due to a long and convoluted evolution, but this is slowly being cleaned up.
+ The exact schema these fields follow is a bit ill-defined due to a long and convoluted evolution, but this is slowly being cleaned up.
+ You can see examples of ones used in practice in lib.systems.examples; note how they are not all very consistent.
For now, here are few fields can count on them containing:
@@ -118,8 +119,27 @@
This is a nix representation of a parsed LLVM target triple with white-listed components.
This can be specified directly, or actually parsed from the config.
[Technically, only one need be specified and the others can be inferred, though the precision of inference may not be very good.]
- See lib.systems.parse for the exact representation, along with some is*predicates.
- These predicates are superior to the ones in stdenv as they aren't tied to the build platform (host, as previously discussed, would be a saner default).
+ See lib.systems.parse for the exact representation.
+
+
+
+
+ libc
+
+
+ This is a string identifying the standard C library used.
+ Valid identifiers include "glibc" for GNU libc, "libsystem" for Darwin's Libsystem, and "uclibc" for µClibc.
+ It should probably be refactored to use the module system, like parse.
+
+
+
+
+ is*
+
+
+ These predicates are defined in lib.systems.inspect, and slapped on every platform.
+ They are superior to the ones in stdenv as they force the user to be explicit about which platform they are inspecting.
+ Please use these instead of those.
@@ -128,7 +148,7 @@
This is, quite frankly, a dumping ground of ad-hoc settings (it's an attribute set).
- See lib.systems.platforms for examples—there's hopefully one in there that will work verbatim for each platform one is working.
+ See lib.systems.platforms for examples—there's hopefully one in there that will work verbatim for each platform that is working.
Please help us triage these flags and give them better homes!
@@ -184,11 +204,27 @@
More information needs to moved from the old wiki, especially , for this section.
- Many sources (manual, wiki, etc) probably mention passing system, platform, and, optionally, crossSystem to nixpkgs:
- import <nixpkgs> { system = ..; platform = ..; crossSystem = ..; }.
- system and platform together determine the system on which packages are built, and crossSystem specifies the platform on which packages are ultimately intended to run, if it is different.
- This still works, but with more recent changes, one can alternatively pass localSystem, containing system and platform, for symmetry.
+ Nixpkgs can be instantiated with localSystem alone, in which case there is no cross compiling and everything is built by and for that system,
+ or also with crossSystem, in which case packages run on the latter, but all building happens on the former.
+ Both parameters take the same schema as the 3 (build, host, and target) platforms defined in the previous section.
+ As mentioned above, lib.systems.examples has some platforms which are used as arguments for these parameters in practice.
+ You can use them programmatically, or on the command line like nix-build <nixpkgs> --arg crossSystem '(import <nixpkgs/lib>).systems.examples.fooBarBaz'.
+
+ While one is free to pass both parameters in full, there's a lot of logic to fill in missing fields.
+ As discussed in the previous section, only one of system, config, and parsed is needed to infer the other two.
+ Additionally, libc will be inferred from parse.
+ Finally, localSystem.system is also impurely inferred based on the platform evaluation occurs.
+ This means it is often not necessary to pass localSystem at all, as in the command-line example in the previous paragraph.
+
+
+
+ Many sources (manual, wiki, etc) probably mention passing system, platform, along with the optional crossSystem to nixpkgs:
+ import <nixpkgs> { system = ..; platform = ..; crossSystem = ..; }.
+ Passing those two instead of localSystem is still supported for compatibility, but is discouraged.
+ Indeed, much of the inference we do for these parameters is motivated by compatibility as much as convenience.
+
+
One would think that localSystem and crossSystem overlap horribly with the three *Platforms (buildPlatform, hostPlatform, and targetPlatform; see stage.nix or the manual).
Actually, those identifiers are purposefully not used here to draw a subtle but important distinction:
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index ad1ba299a530..db40b36fd6a0 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -132,6 +132,7 @@
deepfire = "Kosyrev Serge <_deepfire@feelingofgreen.ru>";
demin-dmitriy = "Dmitriy Demin ";
DerGuteMoritz = "Moritz Heidkamp ";
+ dermetfan = "Robin Stumm ";
DerTim1 = "Tim Digel ";
desiderius = "Didier J. Devroye ";
devhell = "devhell <\"^\"@regexmail.net>";
diff --git a/lib/strings.nix b/lib/strings.nix
index d48624257cf0..1cc633c729dc 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -438,8 +438,13 @@ rec {
=> true
isStorePath pkgs.python
=> true
+ isStorePath [] || isStorePath 42 || isStorePath {} || …
+ => false
*/
- isStorePath = x: builtins.substring 0 1 (toString x) == "/" && dirOf (builtins.toPath x) == builtins.storeDir;
+ isStorePath = x:
+ builtins.isString x
+ && builtins.substring 0 1 (toString x) == "/"
+ && dirOf (builtins.toPath x) == builtins.storeDir;
/* Convert string to int
Obviously, it is a bit hacky to use fromJSON that way.
diff --git a/lib/systems/default.nix b/lib/systems/default.nix
index c37b6be25232..c22c99561969 100644
--- a/lib/systems/default.nix
+++ b/lib/systems/default.nix
@@ -5,6 +5,7 @@ rec {
parse = import ./parse.nix;
inspect = import ./inspect.nix;
platforms = import ./platforms.nix;
+ examples = import ./examples.nix;
# Elaborate a `localSystem` or `crossSystem` so that it contains everything
# necessary.
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
new file mode 100644
index 000000000000..3ffaf393435e
--- /dev/null
+++ b/lib/systems/examples.nix
@@ -0,0 +1,130 @@
+# These can be passed to nixpkgs as either the `localSystem` or
+# `crossSystem`. They are put here for user convenience, but also used by cross
+# tests and linux cross stdenv building, so handle with care!
+
+let platforms = import ./platforms.nix; in
+
+rec {
+ #
+ # Linux
+ #
+
+ sheevaplug = rec {
+ config = "armv5tel-unknown-linux-gnueabi";
+ bigEndian = false;
+ arch = "armv5tel";
+ float = "soft";
+ withTLS = true;
+ libc = "glibc";
+ platform = platforms.sheevaplug;
+ openssl.system = "linux-generic32";
+ inherit (platform) gcc;
+ };
+
+ raspberryPi = rec {
+ config = "armv6l-unknown-linux-gnueabihf";
+ bigEndian = false;
+ arch = "armv6l";
+ float = "hard";
+ fpu = "vfp";
+ withTLS = true;
+ libc = "glibc";
+ platform = platforms.raspberrypi;
+ openssl.system = "linux-generic32";
+ inherit (platform) gcc;
+ };
+
+ armv7l-hf-multiplatform = rec {
+ config = "arm-unknown-linux-gnueabihf";
+ bigEndian = false;
+ arch = "armv7-a";
+ float = "hard";
+ fpu = "vfpv3-d16";
+ withTLS = true;
+ libc = "glibc";
+ platform = platforms.armv7l-hf-multiplatform;
+ openssl.system = "linux-generic32";
+ inherit (platform) gcc;
+ };
+
+ aarch64-multiplatform = rec {
+ config = "aarch64-unknown-linux-gnu";
+ bigEndian = false;
+ arch = "aarch64";
+ withTLS = true;
+ libc = "glibc";
+ platform = platforms.aarch64-multiplatform;
+ inherit (platform) gcc;
+ };
+
+ scaleway-c1 = armv7l-hf-multiplatform // rec {
+ platform = platforms.scaleway-c1;
+ inherit (platform) gcc;
+ inherit (gcc) fpu;
+ };
+
+ pogoplug4 = rec {
+ arch = "armv5tel";
+ config = "armv5tel-softfloat-linux-gnueabi";
+ float = "soft";
+
+ platform = platforms.pogoplug4;
+
+ inherit (platform) gcc;
+ libc = "glibc";
+
+ withTLS = true;
+ openssl.system = "linux-generic32";
+ };
+
+ fuloongminipc = rec {
+ config = "mips64el-unknown-linux-gnu";
+ bigEndian = false;
+ arch = "mips";
+ float = "hard";
+ withTLS = true;
+ libc = "glibc";
+ platform = platforms.fuloong2f_n32;
+ openssl.system = "linux-generic32";
+ inherit (platform) gcc;
+ };
+
+ #
+ # Darwin
+ #
+
+ iphone64 = {
+ config = "aarch64-apple-darwin14";
+ arch = "arm64";
+ libc = "libsystem";
+ platform = {};
+ };
+
+ iphone32 = {
+ config = "arm-apple-darwin10";
+ arch = "armv7-a";
+ libc = "libsystem";
+ platform = {};
+ };
+
+ #
+ # Windows
+ #
+
+ # 32 bit mingw-w64
+ mingw32 = {
+ config = "i686-pc-mingw32";
+ arch = "x86"; # Irrelevant
+ libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
+ platform = {};
+ };
+
+ # 64 bit mingw-w64
+ mingwW64 = {
+ # That's the triplet they use in the mingw-w64 docs.
+ config = "x86_64-pc-mingw32";
+ arch = "x86_64"; # Irrelevant
+ libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
+ platform = {};
+ };
+}
diff --git a/lib/systems/platforms.nix b/lib/systems/platforms.nix
index 0bea38ab4195..ae4fc355c71d 100644
--- a/lib/systems/platforms.nix
+++ b/lib/systems/platforms.nix
@@ -255,6 +255,10 @@ rec {
arch = "armv6";
fpu = "vfp";
float = "hard";
+ # TODO(@Ericson2314) what is this and is it a good idea? It was
+ # used in some cross compilation examples but not others.
+ #
+ # abi = "aapcs-linux";
};
};
@@ -460,7 +464,10 @@ rec {
'';
kernelTarget = "vmlinux";
uboot = null;
- gcc.arch = "loongson2f";
+ gcc = {
+ arch = "loongson2f";
+ abi = "n32";
+ };
};
beaglebone = armv7l-hf-multiplatform // {
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix
index bf66994b5022..bd80c8113483 100644
--- a/nixos/modules/config/pulseaudio.nix
+++ b/nixos/modules/config/pulseaudio.nix
@@ -240,11 +240,14 @@ in {
};
systemd.user = {
services.pulseaudio = {
+ restartIfChanged = true;
serviceConfig = {
RestartSec = "500ms";
+ PassEnvironment = "DISPLAY";
};
- environment = { DISPLAY = ":${toString config.services.xserver.display}"; };
- restartIfChanged = true;
+ };
+ sockets.pulseaudio = {
+ wantedBy = [ "sockets.target" ];
};
};
})
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 5e1ff91acab4..7afcb9051bd7 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -80,6 +80,7 @@
./programs/environment.nix
./programs/fish.nix
./programs/freetds.nix
+ ./programs/gnupg.nix
./programs/gphoto2.nix
./programs/info.nix
./programs/java.nix
diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix
new file mode 100644
index 000000000000..c5277f40d260
--- /dev/null
+++ b/nixos/modules/programs/gnupg.nix
@@ -0,0 +1,75 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.programs.gnupg;
+
+in
+
+{
+
+ options.programs.gnupg = {
+ agent.enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Enables GnuPG agent with socket-activation for every user session.
+ '';
+ };
+
+ agent.enableSSHSupport = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Enable SSH agent support in GnuPG agent. Also sets SSH_AUTH_SOCK
+ environment variable correctly. This will disable socket-activation
+ and thus always start a GnuPG agent per user session.
+ '';
+ };
+ };
+
+ config = mkIf cfg.agent.enable {
+ systemd.user.services.gpg-agent = {
+ serviceConfig = {
+ ExecStart = [
+ ""
+ ("${pkgs.gnupg}/bin/gpg-agent --supervised "
+ + optionalString cfg.agent.enableSSHSupport "--enable-ssh-support")
+ ];
+ };
+ };
+
+ systemd.user.sockets.gpg-agent = {
+ wantedBy = [ "sockets.target" ];
+ };
+
+ systemd.user.sockets.gpg-agent-ssh = mkIf cfg.agent.enableSSHSupport {
+ wantedBy = [ "sockets.target" ];
+ };
+
+ systemd.packages = [ pkgs.gnupg ];
+
+ environment.extraInit = ''
+ # Bind gpg-agent to this TTY if gpg commands are used.
+ export GPG_TTY=$(tty)
+
+ '' + (optionalString cfg.agent.enableSSHSupport ''
+ # SSH agent protocol doesn't support changing TTYs, so bind the agent
+ # to every new TTY.
+ ${pkgs.gnupg}/bin/gpg-connect-agent --quiet updatestartuptty /bye > /dev/null
+
+ if [ -z "$SSH_AUTH_SOCK" ]; then
+ export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
+ fi
+ '');
+
+ assertions = [
+ { assertion = cfg.agent.enableSSHSupport && !config.programs.ssh.startAgent;
+ message = "You can't use ssh-agent and GnuPG agent with SSH support enabled at the same time!";
+ }
+ ];
+ };
+
+}
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index a00fc0dfd19d..4faef2c609bc 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -199,9 +199,8 @@ in
environment.etc."ssh/ssh_known_hosts".text = knownHostsText;
# FIXME: this should really be socket-activated for über-awesomeness.
- systemd.user.services.ssh-agent =
- { enable = cfg.startAgent;
- description = "SSH Agent";
+ systemd.user.services.ssh-agent = mkIf cfg.startAgent
+ { description = "SSH Agent";
wantedBy = [ "default.target" ];
serviceConfig =
{ ExecStartPre = "${pkgs.coreutils}/bin/rm -f %t/ssh-agent";
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index fcf1f123cfb5..bae6b170c472 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -72,7 +72,7 @@ in
dataDir = mkOption {
type = types.path;
- default = "/var/mysql"; # !!! should be /var/db/mysql
+ example = "/var/lib/mysql";
description = "Location where MySQL stores its table files";
};
@@ -166,6 +166,10 @@ in
config = mkIf config.services.mysql.enable {
+ services.mysql.dataDir =
+ mkDefault (if versionAtLeast config.system.stateVersion "17.09" then "/var/lib/mysql"
+ else "/var/mysql");
+
users.extraUsers.mysql = {
description = "MySQL server user";
group = "mysql";
diff --git a/nixos/modules/services/monitoring/arbtt.nix b/nixos/modules/services/monitoring/arbtt.nix
index a8d5e3b7fa07..b41a3c7b5016 100644
--- a/nixos/modules/services/monitoring/arbtt.nix
+++ b/nixos/modules/services/monitoring/arbtt.nix
@@ -48,7 +48,8 @@ in {
config = mkIf cfg.enable {
systemd.user.services.arbtt = {
description = "arbtt statistics capture service";
- wantedBy = [ "default.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix
index 243cd04c96c2..68a814b23053 100644
--- a/nixos/modules/services/networking/firewall.nix
+++ b/nixos/modules/services/networking/firewall.nix
@@ -114,14 +114,15 @@ let
# The "nixos-fw" chain does the actual work.
ip46tables -N nixos-fw
- # Perform a reverse-path test to refuse spoofers
- # For now, we just drop, as the raw table doesn't have a log-refuse yet
- ${optionalString (kernelHasRPFilter && (cfg.checkReversePath != false)) ''
- # Clean up rpfilter rules
- ip46tables -t raw -D PREROUTING -j nixos-fw-rpfilter 2> /dev/null || true
- ip46tables -t raw -F nixos-fw-rpfilter 2> /dev/null || true
- ip46tables -t raw -N nixos-fw-rpfilter 2> /dev/null || true
+ # Clean up rpfilter rules
+ ip46tables -t raw -D PREROUTING -j nixos-fw-rpfilter 2> /dev/null || true
+ ip46tables -t raw -F nixos-fw-rpfilter 2> /dev/null || true
+ ip46tables -t raw -X nixos-fw-rpfilter 2> /dev/null || true
+ ${optionalString (kernelHasRPFilter && (cfg.checkReversePath != false)) ''
+ # Perform a reverse-path test to refuse spoofers
+ # For now, we just drop, as the raw table doesn't have a log-refuse yet
+ ip46tables -t raw -N nixos-fw-rpfilter 2> /dev/null || true
ip46tables -t raw -A nixos-fw-rpfilter -m rpfilter ${optionalString (cfg.checkReversePath == "loose") "--loose"} -j RETURN
# Allows this host to act as a DHCPv4 server
diff --git a/nixos/modules/services/x11/compton.nix b/nixos/modules/services/x11/compton.nix
index d75d24830f8d..56bc66b71796 100644
--- a/nixos/modules/services/x11/compton.nix
+++ b/nixos/modules/services/x11/compton.nix
@@ -208,13 +208,13 @@ in {
config = mkIf cfg.enable {
systemd.user.services.compton = {
description = "Compton composite manager";
- wantedBy = [ "default.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/compton --config ${configFile}";
RestartSec = 3;
Restart = "always";
};
- environment.DISPLAY = ":0";
};
environment.systemPackages = [ cfg.package ];
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index cf6efb7dae79..58773685ec1f 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -122,6 +122,9 @@ let
source ~/.xprofile
fi
+ # Start systemd user services for graphical sessions
+ ${config.systemd.package}/bin/systemctl --user start graphical-session.target
+
# Allow the user to setup a custom session type.
if test -x ~/.xsession; then
exec ~/.xsession
@@ -164,6 +167,9 @@ let
''}
test -n "$waitPID" && wait "$waitPID"
+
+ ${config.systemd.package}/bin/systemctl --user stop graphical-session.target
+
exit 0
'';
@@ -325,6 +331,13 @@ in
config = {
services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X";
+
+ systemd.user.targets.graphical-session = {
+ unitConfig = {
+ RefuseManualStart = false;
+ StopWhenUnneeded = false;
+ };
+ };
};
imports = [
diff --git a/nixos/modules/services/x11/redshift.nix b/nixos/modules/services/x11/redshift.nix
index eb5dfdf95849..992709ed0000 100644
--- a/nixos/modules/services/x11/redshift.nix
+++ b/nixos/modules/services/x11/redshift.nix
@@ -95,7 +95,8 @@ in {
config = mkIf cfg.enable {
systemd.user.services.redshift = {
description = "Redshift colour temperature adjuster";
- wantedBy = [ "default.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = ''
${cfg.package}/bin/redshift \
@@ -107,12 +108,6 @@ in {
RestartSec = 3;
Restart = "always";
};
- environment = {
- DISPLAY = ":${toString (
- let display = config.services.xserver.display;
- in if display != null then display else 0
- )}";
- };
};
};
diff --git a/nixos/modules/services/x11/unclutter-xfixes.nix b/nixos/modules/services/x11/unclutter-xfixes.nix
index b94dfb1a26a6..71262431b685 100644
--- a/nixos/modules/services/x11/unclutter-xfixes.nix
+++ b/nixos/modules/services/x11/unclutter-xfixes.nix
@@ -43,7 +43,8 @@ in {
config = mkIf cfg.enable {
systemd.user.services.unclutter-xfixes = {
description = "unclutter-xfixes";
- wantedBy = [ "graphical.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
serviceConfig.ExecStart = ''
${cfg.package}/bin/unclutter \
--timeout ${toString cfg.timeout} \
diff --git a/nixos/modules/services/x11/unclutter.nix b/nixos/modules/services/x11/unclutter.nix
index a22e5ac2c95a..5f16a680050d 100644
--- a/nixos/modules/services/x11/unclutter.nix
+++ b/nixos/modules/services/x11/unclutter.nix
@@ -56,19 +56,17 @@ in {
config = mkIf cfg.enable {
systemd.user.services.unclutter = {
description = "unclutter";
- wantedBy = [ "default.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
serviceConfig.ExecStart = ''
${cfg.package}/bin/unclutter \
-idle ${toString cfg.timeout} \
- -display :${toString (
- let display = config.services.xserver.display;
- in if display != null then display else 0
- )} \
-jitter ${toString (cfg.threeshold - 1)} \
${optionalString cfg.keystroke "-keystroke"} \
${concatMapStrings (x: " -"+x) cfg.extraOptions} \
-not ${concatStringsSep " " cfg.excluded} \
'';
+ serviceConfig.PassEnvironment = "DISPLAY";
serviceConfig.RestartSec = 3;
serviceConfig.Restart = "always";
};
diff --git a/nixos/modules/services/x11/urxvtd.nix b/nixos/modules/services/x11/urxvtd.nix
index 57ad93f20174..f2ce089ce19a 100644
--- a/nixos/modules/services/x11/urxvtd.nix
+++ b/nixos/modules/services/x11/urxvtd.nix
@@ -21,9 +21,8 @@ in {
systemd.user = {
sockets.urxvtd = {
description = "socket for urxvtd, the urxvt terminal daemon";
- after = [ "graphical.target" ];
- wants = [ "graphical.target" ];
- wantedBy = [ "sockets.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
socketConfig = {
ListenStream = "%t/urxvtd-socket";
};
diff --git a/nixos/modules/services/x11/xbanish.nix b/nixos/modules/services/x11/xbanish.nix
index e1e3cbc8e441..b95fac68f165 100644
--- a/nixos/modules/services/x11/xbanish.nix
+++ b/nixos/modules/services/x11/xbanish.nix
@@ -20,7 +20,8 @@ in {
config = mkIf cfg.enable {
systemd.user.services.xbanish = {
description = "xbanish hides the mouse pointer";
- wantedBy = [ "default.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
serviceConfig.ExecStart = ''
${pkgs.xbanish}/bin/xbanish ${cfg.arguments}
'';
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 5b977d13796a..42fc1e46e33f 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "gpxsee-${version}";
- version = "4.3";
+ version = "4.8";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
- sha256 = "15f686frxlrmdvh5cc837kx62g0ihqj4vb87i8433g7l5vqkv3lf";
+ sha256 = "17s1v6b1j7pi0yj554bd0cg14bl854gssp5gj2pl51rxji6zr0wp";
};
nativeBuildInputs = [ qmakeHook qttools makeQtWrapper ];
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index dac821a4898f..f36f28ac8801 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -1,4 +1,4 @@
-{ stdenv, ninja, which
+{ stdenv, ninja, which, nodejs
# default dependencies
, bzip2, flac, speex, libopus
@@ -87,7 +87,7 @@ let
nativeBuildInputs = [
ninja which python2Packages.python perl pkgconfig
- python2Packages.ply python2Packages.jinja2
+ python2Packages.ply python2Packages.jinja2 nodejs
];
buildInputs = defaultDependencies ++ [
@@ -105,6 +105,7 @@ let
patches = [
./patches/nix_plugin_paths_52.patch
+ ./patches/fix-bootstrap-gn.patch
] ++ optional (versionOlder version "57.0") ./patches/glibc-2.24.patch
++ optional enableWideVine ./patches/widevine.patch;
@@ -130,6 +131,9 @@ let
}' gpu/config/gpu_control_list.cc
patchShebangs .
+ # use our own nodejs
+ mkdir -p third_party/node/linux/node-linux-x64/bin
+ ln -s $(which node) third_party/node/linux/node-linux-x64/bin/node
'' + optionalString (versionAtLeast version "52.0.0.0") ''
sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \
third_party/pdfium/xfa/fxbarcode/utils.h
diff --git a/pkgs/applications/networking/browsers/chromium/patches/fix-bootstrap-gn.patch b/pkgs/applications/networking/browsers/chromium/patches/fix-bootstrap-gn.patch
new file mode 100644
index 000000000000..34efb4f7a456
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/patches/fix-bootstrap-gn.patch
@@ -0,0 +1,12 @@
+diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
+index 3148ccf..38cfb11 100755
+--- a/tools/gn/bootstrap/bootstrap.py
++++ b/tools/gn/bootstrap/bootstrap.py
+@@ -385,6 +385,7 @@ def write_gn_ninja(path, root_gen_dir, options):
+ 'base/base_switches.cc',
+ 'base/build_time.cc',
+ 'base/callback_internal.cc',
++ 'base/callback_helpers.cc',
+ 'base/command_line.cc',
+ 'base/debug/activity_tracker.cc',
+ 'base/debug/alias.cc',
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 2800a3ed5d21..7ee28c7fc279 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
beta = {
- sha256 = "1q9iqmq5amzfw03jiw18g1w285b6x2qckn8gc60r5m3xx1hbivv2";
- sha256bin64 = "1ddhhcydcwwc2pkwm4c8rlr60968zy5vda410g4bwx0v5q7p22q9";
- version = "58.0.3029.68";
+ sha256 = "1dcad79kfayagqiv85ycla3iv3gc99k0rvnvnpar9hd6x1iv8cfl";
+ sha256bin64 = "0ywf50rfzv1kkfpld62fi5g0kz33an0p03xqf7wkcqi7hild607v";
+ version = "59.0.3071.47";
};
dev = {
- sha256 = "0zvnj9n2p057fxx7n4d1qc0nw34qhlsvrx20fwigq96blamckvd8";
- sha256bin64 = "1s1r3h7x49bp64lzzphm4jcg7g68l0x7mr3airj3hqii58dvndm0";
- version = "59.0.3067.0";
+ sha256 = "05kxl938mh41341lh5xsxcqxv9hhx8yn6nkawgg241sfwdx72db8";
+ sha256bin64 = "1mr2615r30zjxa55mdcbfi0k2grgyykzawslmg41aw0jy5hfamal";
+ version = "60.0.3095.5";
};
stable = {
- sha256 = "1xwchazqqx0cs9rd15r80kw6p918zp9libx34qlcj8p5lxq1f0bh";
- sha256bin64 = "0ggn5rljch36sx0i37qzp6ldcy3ibdj0z9217lqzjq3r7ixsfqja";
- version = "57.0.2987.133";
+ sha256 = "1zvqim75mlqckvf7awrbyggis71dlkz4gjpfrmfdvydcs8yyyk7j";
+ sha256bin64 = "0vfx2m5zqfvfb6sgd3dg1sji72dzjcd1sf4r6qwhnz38wadys7id";
+ version = "58.0.3029.110";
};
}
diff --git a/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
index d9a3dfc690dd..9d2de536dbf6 100644
--- a/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
+++ b/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
@@ -1,14 +1,12 @@
-{ stdenv, fetchgit, python3Packages }:
+{ stdenv, fetchurl, python3Packages }:
-python3Packages.buildPythonPackage {
- name = "scudcloud-1.44";
+let version = "1.58";
+in python3Packages.buildPythonPackage {
+ name = "scudcloud-${version}";
- # Branch 254-port-to-qt5
- # https://github.com/raelgc/scudcloud/commit/65c304416dfdd5f456fa6f7301432a953d5e12d0
- src = fetchgit {
- url = https://github.com/raelgc/scudcloud/;
- rev = "65c304416dfdd5f456fa6f7301432a953d5e12d0";
- sha256 = "0h1055y88kldqw31ayqfx9zsksgxsyqd8h0hwnhj80yn3jcx0rp6";
+ src = fetchurl {
+ url = "https://github.com/raelgc/scudcloud/archive/v${version}.tar.gz";
+ sha256 = "1j84qdc2j3dvl1nhrjqm0blc8ww723p9a6hqprkkp8alw77myq1l";
};
propagatedBuildInputs = with python3Packages; [ pyqt5 dbus-python ];
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index 2daa846990a3..ed48bce7b2e2 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (rec {
description = "Bidirectional file synchronizer";
license = stdenv.lib.licenses.gpl3Plus;
maintainers = with stdenv.lib.maintainers; [viric];
- platforms = with stdenv.lib.platforms; linux;
+ platforms = with stdenv.lib.platforms; unix;
};
})
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index bc766b96bcaa..2712388ffe7a 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "geogebra-${version}";
- version = "5-0-355-0";
+ version = "5-0-361-0";
preferLocalBuild = true;
src = fetchurl {
url = "http://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2";
- sha256 = "0gm6jqlc3kgnbwnqlz6i9rahdy802jq7xc9gw1q5ynk63smm3ngk";
+ sha256 = "14kidnk8bidklv474zqipv3f77qnfmc697pl407v0rja481c649a";
};
srcIcon = fetchurl {
diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix
index 4f7ea37ca18b..121875a69de7 100644
--- a/pkgs/applications/virtualization/OVMF/default.nix
+++ b/pkgs/applications/virtualization/OVMF/default.nix
@@ -23,6 +23,9 @@ stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" {
hardeningDisable = [ "stackprotector" "pic" "fortify" ];
unpackPhase = ''
+ # $fd is overwritten during the build
+ export OUTPUT_FD=$fd
+
for file in \
"${edk2.src}"/{UefiCpuPkg,MdeModulePkg,IntelFrameworkModulePkg,PcAtChipsetPkg,FatBinPkg,EdkShellBinPkg,MdePkg,ShellPkg,OptionRomPkg,IntelFrameworkPkg};
do
@@ -51,8 +54,8 @@ stdenv.mkDerivation (edk2.setup "OvmfPkg/OvmfPkg${targetArch}.dsc" {
'';
postFixup = ''
- mkdir -p $fd/FV
- mv $out/FV/OVMF{,_CODE,_VARS}.fd $fd/FV
+ mkdir -vp $OUTPUT_FD/FV
+ mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $OUTPUT_FD/FV
'';
dontPatchELF = true;
diff --git a/pkgs/development/compilers/colm/default.nix b/pkgs/development/compilers/colm/default.nix
index 767023053c6f..ee9224b380c8 100644
--- a/pkgs/development/compilers/colm/default.nix
+++ b/pkgs/development/compilers/colm/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, makeWrapper, gcc }:
+{ stdenv, fetchurl, makeWrapper, gcc, asciidoc }:
stdenv.mkDerivation rec {
name = "colm-${version}";
- version = "0.13.0.4";
+ version = "0.13.0.5";
src = fetchurl {
url = "http://www.colm.net/files/colm/${name}.tar.gz";
- sha256 = "04xcb7w82x9i4ygxqla9n39y646n3jw626khdp5297z1dkxx1czx";
+ sha256 = "1320bx96ycd1xwww137cixrb983838wnrgkfsym8x5bnf5kj9rik";
};
- buildInputs = [ makeWrapper ];
+ nativeBuildInputs = [ makeWrapper asciidoc ];
doCheck = true;
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix
index 00714875ffc2..51777f748e30 100644
--- a/pkgs/development/compilers/fstar/default.nix
+++ b/pkgs/development/compilers/fstar/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
];
preBuild = ''
- substituteInPlace src/Makefile --replace "\$(RUNTIME) VS/.nuget/NuGet.exe" "true"
+ substituteInPlace src/Makefile --replace "\$(RUNTIME) VS/.nuget/NuGet.exe" "true" \
+ --replace Darwin xyz
substituteInPlace src/VS/.nuget/NuGet.targets --replace "mono" "true"
# Fails with bad interpreter otherwise
diff --git a/pkgs/development/compilers/llvm/4/lldb-libedit.patch b/pkgs/development/compilers/llvm/4/lldb-libedit.patch
new file mode 100644
index 000000000000..73459ce6c864
--- /dev/null
+++ b/pkgs/development/compilers/llvm/4/lldb-libedit.patch
@@ -0,0 +1,30 @@
+From 94764369222a8e6c65420a6981d7f179a18a5417 Mon Sep 17 00:00:00 2001
+From: Will Dietz
+Date: Thu, 25 May 2017 15:03:42 -0500
+Subject: [PATCH] EditLine.h: libedit supports wide chars on NixOS
+
+---
+ include/lldb/Host/Editline.h | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/include/lldb/Host/Editline.h b/include/lldb/Host/Editline.h
+index faed373bc..b248cdee1 100644
+--- a/include/lldb/Host/Editline.h
++++ b/include/lldb/Host/Editline.h
+@@ -43,12 +43,9 @@
+ // will only be
+ // used in cases where this is true. This is a compile time dependecy, for now
+ // selected per target Platform
+-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
++// (libedit on NixOS is always wide-char capable)
+ #define LLDB_EDITLINE_USE_WCHAR 1
+ #include
+-#else
+-#define LLDB_EDITLINE_USE_WCHAR 0
+-#endif
+
+ #include "lldb/Host/ConnectionFileDescriptor.h"
+ #include "lldb/lldb-private.h"
+--
+2.13.0
+
diff --git a/pkgs/development/compilers/llvm/4/lldb.nix b/pkgs/development/compilers/llvm/4/lldb.nix
index a0f0a606ad97..a71c2332dc1c 100644
--- a/pkgs/development/compilers/llvm/4/lldb.nix
+++ b/pkgs/development/compilers/llvm/4/lldb.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation {
src = fetch "lldb" "0g83hbw1r4gd0z8hlph9i34xs6dlcc69vz3h2bqwkhb2qq2qzg9d";
- patchPhase = ''
+ patches = [ ./lldb-libedit.patch ];
+ postPatch = ''
# Fix up various paths that assume llvm and clang are installed in the same place
sed -i 's,".*ClangConfig.cmake","${clang-unwrapped}/lib/cmake/clang/ClangConfig.cmake",' \
cmake/modules/LLDBStandalone.cmake
@@ -36,10 +37,6 @@ stdenv.mkDerivation {
CXXFLAGS = "-fno-rtti";
hardeningDisable = [ "format" ];
- cmakeFlags = [
- "-DLLDB_DISABLE_LIBEDIT=ON"
- ];
-
enableParallelBuilding = true;
meta = with stdenv.lib; {
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 3fe04e6bde2e..e4aa7db3e28d 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -93,23 +93,23 @@ let
passthru.libPrefix = "lib/perl5/site_perl";
- # TODO: it seems like absolute paths to some coreutils is required.
- postInstall =
- ''
- # Remove dependency between "out" and "man" outputs.
- rm "$out"/lib/perl5/*/*/.packlist
+ # TODO: it seems like absolute paths to some coreutils is required.
+ postInstall =
+ ''
+ # Remove dependency between "out" and "man" outputs.
+ rm "$out"/lib/perl5/*/*/.packlist
- # Remove dependencies on glibc and gcc
- sed "/ *libpth =>/c libpth => ' '," \
- -i "$out"/lib/perl5/*/*/Config.pm
- # TODO: removing those paths would be cleaner than overwriting with nonsense.
- substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
- --replace "${libcInc}" /no-such-path \
- --replace "${
- if stdenv.cc.cc or null != null then stdenv.cc.cc else "/no-such-path"
- }" /no-such-path \
- --replace "$man" /no-such-path
- ''; # */
+ # Remove dependencies on glibc and gcc
+ sed "/ *libpth =>/c libpth => ' '," \
+ -i "$out"/lib/perl5/*/*/Config.pm
+ # TODO: removing those paths would be cleaner than overwriting with nonsense.
+ substituteInPlace "$out"/lib/perl5/*/*/Config_heavy.pl \
+ --replace "${libcInc}" /no-such-path \
+ --replace "${
+ if stdenv.cc.cc or null != null then stdenv.cc.cc else "/no-such-path"
+ }" /no-such-path \
+ --replace "$man" /no-such-path
+ ''; # */
meta = {
homepage = https://www.perl.org/;
diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index d6c0c538a8fe..b0f1046aa594 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "libfilezilla-${version}";
- version = "0.9.1";
+ version = "0.9.2";
src = fetchurl {
url = "http://download.filezilla-project.org/libfilezilla/${name}.tar.bz2";
- sha256 = "06ivj40bk5b76a36zwhnwqvg564hgccncnn5nb5cqc7kf4bkkchq";
+ sha256 = "1qrvddjqz5jv6920gcfqsrsjksi2845hn96g0z3vpcsm6nifhqn1";
};
meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
new file mode 100644
index 000000000000..0538e7cf416d
--- /dev/null
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pytest, pytestcov, mock, coverage
+, Mako, sqlalchemy, python-editor, dateutil
+}:
+
+buildPythonPackage rec {
+ name = "${pname}-${version}";
+ pname = "alembic";
+ version = "0.9.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0iw6wysm83hycvrycymf9b4mkji47536kl3x7grynfcbyjcvbdm2";
+ };
+
+ buildInputs = [ pytest pytestcov mock coverage ];
+ propagatedBuildInputs = [ Mako sqlalchemy python-editor dateutil ];
+
+ meta = with stdenv.lib; {
+ homepage = http://bitbucket.org/zzzeek/alembic;
+ description = "A database migration tool for SQLAlchemy";
+ license = licenses.mit;
+ };
+}
diff --git a/pkgs/development/python-modules/argcomplete/default.nix b/pkgs/development/python-modules/argcomplete/default.nix
new file mode 100644
index 000000000000..cd0cc47d9e7b
--- /dev/null
+++ b/pkgs/development/python-modules/argcomplete/default.nix
@@ -0,0 +1,27 @@
+{ buildPythonPackage, fetchPypi, lib,
+ coverage, dicttoxml, flake8, pexpect, prettytable, requests_toolbelt
+}:
+buildPythonPackage rec {
+ name = "${pname}-${version}";
+ pname = "argcomplete";
+ version = "1.8.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0sslhl1klvh92c8hjsz3y3mmnpcqspcgi49g5cik2rpbfkhcsb3s";
+ };
+
+ doCheck = false; # bash-completion test fails with "compgen: command not found".
+
+ # re-enable if we are able to make testing work
+ # buildInputs = [ coverage flake8 ];
+
+ propagatedBuildInputs = [ dicttoxml pexpect prettytable requests_toolbelt ];
+
+ meta = with lib; {
+ description = "Bash tab completion for argparse";
+ homepage = "https://argcomplete.readthedocs.io";
+ maintainers = [ maintainers.womfoo ];
+ license = [ licenses.asl20 ];
+ };
+}
diff --git a/pkgs/development/python-modules/django-compat/default.nix b/pkgs/development/python-modules/django-compat/default.nix
index 22f78533142e..591031912854 100644
--- a/pkgs/development/python-modules/django-compat/default.nix
+++ b/pkgs/development/python-modules/django-compat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchurl,
+{ stdenv, buildPythonPackage, fetchFromGitHub, python,
django, django_nose, six
}:
buildPythonPackage rec {
@@ -6,19 +6,38 @@ buildPythonPackage rec {
name = "${pname}-${version}";
version = "1.0.14";
- src = fetchurl {
- url = "mirror://pypi/d/django-compat/${name}.tar.gz";
- sha256 = "18y5bxxmafcd4np42mzbalva5lpssq0b8ki7zckbzvdv2mnv43xj";
+ # the pypi packages don't include everything required for the tests
+ src = fetchFromGitHub {
+ owner = "arteria";
+ repo = "django-compat";
+ rev = "v${version}";
+ sha256 = "11g6ra6djkchqk44v8k7biaxd1v69qyyyask5l92vmrvb0qiwvm8";
};
- doCheck = false;
+ checkPhase = ''
+ runHook preCheck
- buildInputs = [ django_nose ];
+ # we have to do a little bit of tinkering to convince the tests to run against the installed package, not the
+ # source directory
+ mkdir -p testbase/compat
+ pushd testbase
+ # note we're not copying the direct contents of compat/ (notably __init__.py) so python won't recognize this as a
+ # package, but the tests need to be in a specific path for the test templates to get picked up.
+ cp -r ../compat/tests compat/
+ cp ../runtests.py .
+ ${python.interpreter} runtests.py compat/tests
+ popd
+
+ runHook postCheck
+ '';
+
+ checkInputs = [ django_nose ];
propagatedBuildInputs = [ django six ];
meta = with stdenv.lib; {
description = "Forward and backwards compatibility layer for Django 1.4, 1.7, 1.8, 1.9, 1.10 and 1.11";
homepage = https://github.com/arteria/django-compat;
license = licenses.mit;
+ maintainers = with maintainers; [ ris ];
};
}
diff --git a/pkgs/development/python-modules/django-hijack/default.nix b/pkgs/development/python-modules/django-hijack/default.nix
new file mode 100644
index 000000000000..8eb98924491a
--- /dev/null
+++ b/pkgs/development/python-modules/django-hijack/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, python,
+ django, django_compat, django_nose
+}:
+buildPythonPackage rec {
+ name = "django-hijack-${version}";
+ version = "2.1.4";
+
+ # the pypi packages don't include everything required for the tests
+ src = fetchFromGitHub {
+ owner = "arteria";
+ repo = "django-hijack";
+ rev = "v${version}";
+ sha256 = "1wbm6l8mzpkj4wsj4fyfamzpzi3day2v1cva5j89v4dn4403jq21";
+ };
+
+ checkInputs = [ django_nose ];
+ propagatedBuildInputs = [ django django_compat ];
+
+ checkPhase = ''
+ runHook preCheck
+
+ # we have to do a little bit of tinkering to convince the tests to run against the installed package, not the
+ # source directory
+ mkdir testbase
+ pushd testbase
+ cp ../runtests.py .
+ ${python.interpreter} runtests.py hijack
+ popd
+
+ runHook postCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Allows superusers to hijack (=login as) and work on behalf of another user";
+ homepage = https://github.com/arteria/django-hijack;
+ license = licenses.mit;
+ maintainers = with maintainers; [ ris ];
+ };
+}
\ No newline at end of file
diff --git a/pkgs/development/python-modules/flask-migrate/default.nix b/pkgs/development/python-modules/flask-migrate/default.nix
new file mode 100644
index 000000000000..26fbed4ca5e3
--- /dev/null
+++ b/pkgs/development/python-modules/flask-migrate/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, python, glibcLocales, flask, flask_sqlalchemy, flask_script, alembic
+}:
+
+with stdenv.lib;
+
+buildPythonPackage rec {
+ pname = "Flask-Migrate";
+ version = "2.0.3";
+ name = "${pname}-${version}";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "107x78lkqsnbg92dld3dkagg07jvchp3ib3y0sivc4ipz6n1y7rk";
+ };
+
+ checkInputs = optional isPy3k glibcLocales;
+ propagatedBuildInputs = [ flask flask_sqlalchemy flask_script alembic ];
+
+ # tests invoke the flask cli which uses click and therefore has py3k encoding troubles
+ preCheck = optionalString isPy3k ''
+ export LANG="en_US.UTF-8"
+ '';
+
+ meta = {
+ description = "SQLAlchemy database migrations for Flask applications using Alembic";
+ license = licenses.mit;
+ homepage = https://github.com/miguelgrinberg/Flask-Migrate;
+ };
+}
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 103907c26d14..0d3a2d2dd5c3 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -19,7 +19,6 @@
, openpyxl
, tables
, xlwt
-, darwin ? {}
, libcxx ? null
}:
@@ -53,7 +52,7 @@ in buildPythonPackage rec {
openpyxl
tables
xlwt
- ] ++ optional isDarwin darwin.locale; # provides the locale command
+ ];
# For OSX, we need to add a dependency on libcxx, which provides
# `complex.h` and other libraries that pandas depends on to build.
@@ -63,16 +62,22 @@ in buildPythonPackage rec {
substituteInPlace setup.py \
--replace "['pandas/src/klib', 'pandas/src']" \
"['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
-
- # disable clipboard tests since pbcopy/pbpaste are not open source
- substituteInPlace pandas/io/tests/test_clipboard.py \
- --replace pandas.util.clipboard no_such_module \
- --replace OSError ImportError
'';
checkPhase = ''
runHook preCheck
- py.test $out/${python.sitePackages}/pandas --skip-slow --skip-network
+ ''
+ # TODO: Get locale and clipboard support working on darwin.
+ # Until then we disable the tests.
+ + optionalString isDarwin ''
+ # Fake the impure dependencies pbpaste and pbcopy
+ echo "#!/bin/sh" > pbcopy
+ echo "#!/bin/sh" > pbpaste
+ chmod a+x pbcopy pbpaste
+ export PATH=$(pwd):$PATH
+ '' + ''
+ py.test $out/${python.sitePackages}/pandas --skip-slow --skip-network \
+ ${if isDarwin then "-k 'not test_locale and not test_clipboard'" else ""}
runHook postCheck
'';
@@ -83,7 +88,7 @@ in buildPythonPackage rec {
homepage = "http://pandas.pydata.org/";
description = "Python Data Analysis Library";
license = stdenv.lib.licenses.bsd3;
- maintainers = with stdenv.lib.maintainers; [ raskin fridh ];
+ maintainers = with stdenv.lib.maintainers; [ raskin fridh knedlsepp ];
platforms = stdenv.lib.platforms.unix;
};
}
diff --git a/pkgs/development/python-modules/pytest-localserver/default.nix b/pkgs/development/python-modules/pytest-localserver/default.nix
new file mode 100644
index 000000000000..fdd1986c04fc
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -0,0 +1,33 @@
+{ buildPythonPackage
+, lib
+, fetchPypi
+, requests
+, pytest
+, six
+, werkzeug
+}:
+
+buildPythonPackage rec {
+ pname = "pytest-localserver";
+ name = "${pname}-${version}";
+ version = "0.3.7";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1c11hn61n06ms0wmw6536vs5k4k9hlndxsb3p170nva56a9dfa6q";
+ };
+
+ propagatedBuildInputs = [ werkzeug ];
+ buildInputs = [ pytest six requests ];
+
+ checkPhase = ''
+ py.test
+ '';
+
+ meta = {
+ description = "Plugin for the pytest testing framework to test server connections locally";
+ homepage = https://pypi.python.org/pypi/pytest-localserver;
+ license = lib.licenses.mit;
+ };
+}
+
diff --git a/pkgs/development/python-modules/scrapy/permissions-fix.patch b/pkgs/development/python-modules/scrapy/permissions-fix.patch
index 5ea5269c799e..53038cf74e5f 100644
--- a/pkgs/development/python-modules/scrapy/permissions-fix.patch
+++ b/pkgs/development/python-modules/scrapy/permissions-fix.patch
@@ -21,8 +21,3 @@ index 5941066..89f8edb 100644
def run(self, args, opts):
if len(args) not in (1, 2):
-@@ -118,4 +117,3 @@ class Command(ScrapyCommand):
- _templates_base_dir = self.settings['TEMPLATES_DIR'] or \
- join(scrapy.__path__[0], 'templates')
- return join(_templates_base_dir, 'project')
--
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 8946877eb142..388d27e06867 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -5,7 +5,6 @@
, cudaSupport ? false
, cudatoolkit ? null
, cudnn ? null
-, gcc49 ? null
, linuxPackages ? null
, numpy
, six
@@ -13,13 +12,11 @@
, swig
, werkzeug
, mock
-, gcc
, zlib
}:
assert cudaSupport -> cudatoolkit != null
&& cudnn != null
- && gcc49 != null
&& linuxPackages != null;
# unsupported combination
@@ -98,7 +95,7 @@ buildPythonPackage rec {
propagatedBuildInputs = with stdenv.lib;
[ numpy six protobuf3_2 swig werkzeug mock ]
- ++ optionals cudaSupport [ cudatoolkit cudnn gcc49 ];
+ ++ optionals cudaSupport [ cudatoolkit cudnn stdenv.cc ];
# Note that we need to run *after* the fixup phase because the
# libraries are loaded at runtime. If we run in preFixup then
@@ -106,10 +103,10 @@ buildPythonPackage rec {
postFixup = let
rpath = stdenv.lib.makeLibraryPath
(if cudaSupport then
- [ gcc49.cc.lib zlib cudatoolkit cudnn
+ [ stdenv.cc.cc.lib zlib cudatoolkit cudnn
linuxPackages.nvidia_x11 ]
else
- [ gcc.cc.lib zlib ]
+ [ stdenv.cc.cc.lib zlib ]
);
in
''
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index 362915186052..68cb28dc8507 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -1,23 +1,27 @@
-{ stdenv, buildPythonPackage, fetchurl,
- pytest, mock, six, twisted
-}:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted }:
+
buildPythonPackage rec {
name = "${pname}-${version}";
pname = "txaio";
version = "2.7.1";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1lmllmjjsqzl3w4faq2qhlgkaqn1yn1m7d99k822ib7qgz18bsly";
+ };
+
buildInputs = [ pytest mock ];
+
propagatedBuildInputs = [ six twisted ];
+ patchPhase = ''
+ sed -i '152d' test/test_logging.py
+ '';
+
checkPhase = ''
py.test -k "not test_sdist"
'';
- src = fetchurl {
- url = "mirror://pypi/t/${pname}/${name}.tar.gz";
- sha256 = "9eea85c27ff8ac28049a29b55383f5c162351f855860e5081ff4632d65a5b4d2";
- };
-
meta = with stdenv.lib; {
description = "Utilities to support code that runs unmodified on Twisted and asyncio.";
homepage = "https://github.com/crossbario/txaio";
diff --git a/pkgs/development/tools/build-managers/ninja/default.nix b/pkgs/development/tools/build-managers/ninja/default.nix
index cadda36a0e60..39d0d4e0e39c 100644
--- a/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/pkgs/development/tools/build-managers/ninja/default.nix
@@ -2,12 +2,12 @@
stdenv.mkDerivation rec {
name = "ninja-${version}";
- version = "1.7.1";
+ version = "1.7.2";
src = fetchurl {
name = "${name}.tar.gz";
url = "https://github.com/ninja-build/ninja/archive/v${version}.tar.gz";
- sha256 = "06dy2dc1aafm61ynw9gzig88la3km9dsh53bxf4mnw7l7kjisn2i";
+ sha256 = "1n8n3g26ppwh7zwrc37n3alkbpbj0wki34ih53s3rkhs8ajs1p9f";
};
buildInputs = [ python asciidoc re2c ];
diff --git a/pkgs/development/tools/misc/global/default.nix b/pkgs/development/tools/misc/global/default.nix
index 62d96b2158f9..f55130ae1048 100644
--- a/pkgs/development/tools/misc/global/default.nix
+++ b/pkgs/development/tools/misc/global/default.nix
@@ -4,11 +4,11 @@
stdenv.mkDerivation rec {
name = "global-${version}";
- version = "6.5.6";
+ version = "6.5.7";
src = fetchurl {
url = "mirror://gnu/global/${name}.tar.gz";
- sha256 = "018m536k5y6lks1a6gqn3bsp7r8zk017znqj9kva1nm8d7x9lbqj";
+ sha256 = "0cnd7a7d1pl46yk15q6mnr9i9w3xi8pxgchw4ia9njgr4jjqzh6r";
};
nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/pkgs/development/tools/parsing/ragel/default.nix b/pkgs/development/tools/parsing/ragel/default.nix
index 0fe243e8aaff..5140719c62b0 100644
--- a/pkgs/development/tools/parsing/ragel/default.nix
+++ b/pkgs/development/tools/parsing/ragel/default.nix
@@ -42,7 +42,7 @@ in
};
ragelDev = generic {
- version = "7.0.0.9";
- sha256 = "1w2jhfg3fxl15gcmm7z3jbi6splgc83mmwcfbp08lfc8sg2wmrmr";
+ version = "7.0.0.10";
+ sha256 = "1v4ddzxal4gf8l8nkn32qabba6nbpd2mg8sphgmdn8kaqv52nmj0";
};
}
diff --git a/pkgs/games/wesnoth/dev.nix b/pkgs/games/wesnoth/dev.nix
index 0b335812ff03..315f9ea7a5ea 100644
--- a/pkgs/games/wesnoth/dev.nix
+++ b/pkgs/games/wesnoth/dev.nix
@@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "wesnoth";
- version = "1.13.6";
+ version = "1.13.8";
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://sourceforge/sourceforge/${pname}/${name}.tar.bz2";
- sha256 = "0z4k2r4ss46ik9fx5clffpd7vfr0l4l6d0j1war676dwz0z1j2m1";
+ sha256 = "0snm4n7l21cr4443rk93wnaqdzr91pihn452w66344zqwf33xgfr";
};
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index f783828f0319..8c8da674f4d5 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
import ./generic.nix (args // rec {
- version = "4.12-rc2";
- modDirVersion = "4.12.0-rc2";
+ version = "4.12-rc3";
+ modDirVersion = "4.12.0-rc3";
extraMeta.branch = "4.12";
src = fetchurl {
url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
- sha256 = "18p68ig9irblbxbg68jz766158bxr81824q91mnf372i5z9irj9w";
+ sha256 = "0jwhsmw4igf5iwf4qndqbjzayag2wj2riypzl0v3yrh5zkhfl4dm";
};
features.iwlwifi = true;
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
index 50fd563e7c2f..0378891b27ab 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools-cross.nix
@@ -6,91 +6,19 @@ let
lib = import ../../../lib;
pkgsFun = import ../../..;
- sheevaplugCrossSystem = {
- crossSystem = rec {
- config = "arm-linux-gnueabi";
- bigEndian = false;
- arch = "armv5te";
- float = "soft";
- withTLS = true;
- libc = "glibc";
- platform = lib.systems.platforms.sheevaplug;
- openssl.system = "linux-generic32";
- inherit (platform) gcc;
- };
- };
-
- raspberrypiCrossSystem = {
- crossSystem = rec {
- config = "arm-linux-gnueabihf";
- bigEndian = false;
- arch = "armv6";
- float = "hard";
- fpu = "vfp";
- withTLS = true;
- libc = "glibc";
- platform = lib.systems.platforms.raspberrypi;
- openssl.system = "linux-generic32";
- inherit (platform) gcc;
- };
- };
-
- armv7l-hf-multiplatform-crossSystem = {
- crossSystem = rec {
- config = "arm-linux-gnueabihf";
- bigEndian = false;
- arch = "armv7-a";
- float = "hard";
- fpu = "vfpv3-d16";
- withTLS = true;
- libc = "glibc";
- platform = lib.systems.platforms.armv7l-hf-multiplatform;
- openssl.system = "linux-generic32";
- inherit (platform) gcc;
- };
- };
-
- aarch64-multiplatform-crossSystem = {
- crossSystem = rec {
- config = "aarch64-linux-gnu";
- bigEndian = false;
- arch = "aarch64";
- withTLS = true;
- libc = "glibc";
- platform = lib.systems.platforms.aarch64-multiplatform;
- inherit (platform) gcc;
- };
- };
-
- scaleway-c1-crossSystem.crossSystem = armv7l-hf-multiplatform-crossSystem.crossSystem // rec {
- platform = lib.systems.platforms.scaleway-c1;
- inherit (platform) gcc;
- inherit (gcc) fpu;
- };
-
- pogoplug4-crossSystem.crossSystem = {
- arch = "armv5tel";
- config = "armv5tel-softfloat-linux-gnueabi";
- float = "soft";
-
- platform = lib.systems.platforms.pogoplug4;
-
- inherit (lib.systems.platforms.pogoplug4) gcc;
- libc = "glibc";
-
- withTLS = true;
- openssl.system = "linux-generic32";
- };
+ inherit (lib.systems.examples)
+ sheevaplug raspberryPi armv7l-hf-multiplatform
+ aarch64-multiplatform scaleway-c1 pogoplug4;
selectedCrossSystem =
- if toolsArch == "armv5tel" then sheevaplugCrossSystem else
- if toolsArch == "scaleway" then scaleway-c1-crossSystem else
- if toolsArch == "pogoplug4" then pogoplug4-crossSystem else
- if toolsArch == "armv6l" then raspberrypiCrossSystem else
- if toolsArch == "armv7l" then armv7l-hf-multiplatform-crossSystem else
- if toolsArch == "aarch64" then aarch64-multiplatform-crossSystem else null;
+ if toolsArch == "armv5tel" then sheevaplug else
+ if toolsArch == "scaleway" then scaleway-c1 else
+ if toolsArch == "pogoplug4" then pogoplug4 else
+ if toolsArch == "armv6l" then raspberryPi else
+ if toolsArch == "armv7l" then armv7l-hf-multiplatform else
+ if toolsArch == "aarch64" then aarch64-multiplatform else null;
- pkgs = pkgsFun ({inherit system;} // selectedCrossSystem);
+ pkgs = pkgsFun ({ inherit system; crossSystem = selectedCrossSystem; });
glibc = pkgs.libcCross;
bash = pkgs.bash;
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index b816aac99a1d..928212906679 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
name = "restic-${version}";
- version = "0.5.0";
+ version = "0.6.0";
goPackagePath = "github.com/restic/restic";
@@ -10,7 +10,7 @@ buildGoPackage rec {
owner = "restic";
repo = "restic";
rev = "v${version}";
- sha256 = "0dj6zg4b00pwgs6nj7w5s0jxm6cfavd9kdcq0z4spypwdf211cgl";
+ sha256 = "0kjk8fyfmbnh2jayfjq4ggkc99rh02jkv8gvqcpyqnw3dxznwrk2";
};
buildPhase = ''
@@ -28,5 +28,6 @@ buildGoPackage rec {
description = "A backup program that is fast, efficient and secure";
platforms = platforms.linux;
license = licenses.bsd2;
+ maintainers = [ maintainers.mbrgm ];
};
}
diff --git a/pkgs/tools/graphics/ditaa/default.nix b/pkgs/tools/graphics/ditaa/default.nix
index 86ff9ec8fae5..56c1c9763621 100644
--- a/pkgs/tools/graphics/ditaa/default.nix
+++ b/pkgs/tools/graphics/ditaa/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
description = "Convert ascii art diagrams into proper bitmap graphics";
homepage = http://ditaa.sourceforge.net/;
license = licenses.gpl2;
- platforms = platforms.linux;
+ platforms = platforms.unix;
maintainers = [ maintainers.bjornfor ];
};
}
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 176f8aa1f510..192da26b452e 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -12,6 +12,9 @@
# (--enable-unsupported could be used to force the build)
assert !cpp || mpi == null;
+# No point splitting version 1.8.18 into multiple outputs.
+# The library /lib/libhdf5.so has a reference to gcc-wrapper
+
let inherit (stdenv.lib) optional optionals; in
stdenv.mkDerivation rec {
diff --git a/pkgs/tools/misc/vimer/default.nix b/pkgs/tools/misc/vimer/default.nix
new file mode 100644
index 000000000000..231ee9ac1576
--- /dev/null
+++ b/pkgs/tools/misc/vimer/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ version = "0.2.0";
+ name = "vimer-${version}";
+
+ src = fetchFromGitHub {
+ owner = "susam";
+ repo = "vimer";
+ rev = version;
+ sha256 = "01qhr3i7wasbaxvms39c81infpry2vk0nzh7r5m5b9p713p0phsi";
+ };
+
+ installPhase = ''
+ mkdir $out/bin/ -p
+ cp vimer $out/bin/
+ chmod +x $out/bin/vimer
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/susam/vimer";
+ description = ''
+ A convenience wrapper for gvim/mvim --remote(-tab)-silent to open files
+ in an existing instance of GVim or MacVim.
+ '';
+ license = licenses.mit;
+ maintainers = [ maintainers.matthiasbeyer ];
+ platforms = platforms.linux;
+ };
+
+}
+
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index 49c88d817a4e..2f32c3b3a2de 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -14,14 +14,14 @@ stdenv.mkDerivation rec {
};
buildInputs = [ boost zlib openssl ];
- makeFlags = "USE_AESNI=no";
+ makeFlags = [ "USE_AESNI=no" "USE_AVX=no" ];
installPhase = ''
install -D i2pd $out/bin/i2pd
'';
meta = with stdenv.lib; {
- homepage = "https://track.privacysolutions.no/projects/i2pd";
+ homepage = "https://i2pd.website";
description = "Minimal I2P router written in C++";
license = licenses.gpl2;
maintainers = with maintainers; [ edwtjo ];
diff --git a/pkgs/tools/networking/imapsync/default.nix b/pkgs/tools/networking/imapsync/default.nix
index d01e0ededb3d..c05928fa34b9 100644
--- a/pkgs/tools/networking/imapsync/default.nix
+++ b/pkgs/tools/networking/imapsync/default.nix
@@ -1,10 +1,10 @@
{stdenv, makeWrapper, fetchurl, perl, openssl, perlPackages }:
stdenv.mkDerivation rec {
- name = "imapsync-1.684";
+ name = "imapsync-1.727";
src = fetchurl {
- url = "https://fedorahosted.org/released/imapsync/${name}.tgz";
- sha256 = "1ilqdaabh6xiwpjfdg2mrhygvjlxj6jdkmqjqadq5z29172hji5b";
+ url = "https://releases.pagure.org/imapsync/${name}.tgz";
+ sha256 = "1axacjw2wyaphczfw3kfmi5cl83fyr8nb207nks40fxkbs8q5dlr";
};
patchPhase = ''
@@ -20,7 +20,8 @@ stdenv.mkDerivation rec {
buildInputs = with perlPackages; [ perl openssl MailIMAPClient TermReadKey
IOSocketSSL DigestHMAC URI FileCopyRecursive IOTee UnicodeString
DataUniqid JSONWebToken TestMockGuard LWP CryptOpenSSLRSA
- LWPProtocolHttps
+ LWPProtocolHttps Readonly TestPod TestMockObject ParseRecDescent
+ IOSocketInet6 NTLM
];
meta = with stdenv.lib; {
diff --git a/pkgs/tools/networking/mcrcon/default.nix b/pkgs/tools/networking/mcrcon/default.nix
new file mode 100644
index 000000000000..eda93c82cce8
--- /dev/null
+++ b/pkgs/tools/networking/mcrcon/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ name = "mcrcon-${version}";
+ version = "0.0.5";
+
+ src = fetchFromGitHub {
+ owner = "Tiiffi";
+ repo = "mcrcon";
+ rev = "v${version}";
+ sha256 = "1pwr1cjldjy8bxqpp7w03nvdpw8l4vqfnk6w6b3mf0qpap1k700z";
+ };
+
+ buildPhase = ''
+ $CC mcrcon.c -o mcrcon
+ '';
+
+ installPhase = ''
+ install -Dm 755 mcrcon $out/bin/mcrcon
+ '';
+
+ meta = {
+ homepage = https://bukkit.org/threads/admin-rcon-mcrcon-remote-connection-client-for-minecraft-servers.70910/;
+ description = "Minecraft console client with Bukkit coloring support.";
+ longDescription = ''
+ Mcrcon is a powerful Minecraft RCON terminal client with Bukkit coloring support.
+ It is well suited for remote administration and to be used as part of automated server maintenance scripts.
+ It does not trigger "IO: Broken pipe" or "IO: Connection reset" spam bugs on the server side.
+ '';
+ maintainers = with stdenv.lib.maintainers; [ dermetfan ];
+ license = with stdenv.lib.licenses; [ zlib libpng ];
+ };
+}
diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index 58e5e9343a76..585ffe1d3b19 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -3,7 +3,7 @@
, libgcrypt, dnsmasq, bluez5, readline
, gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup
, ethtool, iputils, gnused, coreutils, file, inetutils, kmod, jansson, libxslt
-, python3Packages, docbook_xsl, fetchpatch }:
+, python3Packages, docbook_xsl, fetchpatch, openconnect }:
stdenv.mkDerivation rec {
name = "network-manager-${version}";
@@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
--replace /bin/sed ${gnused}/bin/sed
substituteInPlace data/NetworkManager.service.in \
--replace /bin/kill ${coreutils}/bin/kill
+ substituteInPlace clients/common/nm-vpn-helpers.c \
+ --subst-var-by openconnect ${openconnect}
# to enable link-local connections
configureFlags="$configureFlags --with-udev-dir=$out/lib/udev"
'';
@@ -76,6 +78,7 @@ stdenv.mkDerivation rec {
name = "null-dereference.patch";
url = "https://github.com/NetworkManager/NetworkManager/commit/4e8eddd100bbc8429806a70620c90b72cfd29cb1.patch";
})
+ ./openconnect_helper_path.patch
];
buildInputs = [ systemd libgudev libnl libuuid polkit ppp libndp
diff --git a/pkgs/tools/networking/network-manager/openconnect_helper_path.patch b/pkgs/tools/networking/network-manager/openconnect_helper_path.patch
new file mode 100644
index 000000000000..597fb753e268
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/openconnect_helper_path.patch
@@ -0,0 +1,29 @@
+diff --git a/clients/common/nm-vpn-helpers.c b/clients/common/nm-vpn-helpers.c
+index 15611c45c..4a7444d3a 100644
+--- a/clients/common/nm-vpn-helpers.c
++++ b/clients/common/nm-vpn-helpers.c
+@@ -203,23 +203,8 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
+ gboolean ret;
+ char **strv = NULL, **iter;
+ char *argv[4];
+- const char *path;
+- const char *const DEFAULT_PATHS[] = {
+- "/sbin/",
+- "/usr/sbin/",
+- "/usr/local/sbin/",
+- "/bin/",
+- "/usr/bin/",
+- "/usr/local/bin/",
+- NULL,
+- };
+-
+- path = nm_utils_file_search_in_paths ("openconnect", "/usr/sbin/openconnect", DEFAULT_PATHS,
+- G_FILE_TEST_IS_EXECUTABLE, NULL, NULL, error);
+- if (!path)
+- return FALSE;
+
+- argv[0] = (char *) path;
++ argv[0] = "@openconnect@/bin/openconnect";
+ argv[1] = "--authenticate";
+ argv[2] = (char *) host;
+ argv[3] = NULL;
diff --git a/pkgs/tools/typesetting/halibut/default.nix b/pkgs/tools/typesetting/halibut/default.nix
index 487af940077c..84cd2cf921a1 100644
--- a/pkgs/tools/typesetting/halibut/default.nix
+++ b/pkgs/tools/typesetting/halibut/default.nix
@@ -1,11 +1,11 @@
{stdenv, fetchurl, perl}:
stdenv.mkDerivation rec {
- name = "halibut-1.1";
+ name = "halibut-1.2";
src = fetchurl {
- url = "http://www.chiark.greenend.org.uk/~sgtatham/halibut/${name}.tar.gz";
- sha256 = "18409ir55rsa5gkizw2hsr86wgv176jms2dc52px62gd246rar5r";
+ url = "http://www.chiark.greenend.org.uk/~sgtatham/halibut/${name}/${name}.tar.gz";
+ sha256 = "0gqnhfqf555rfpk5xj1imbdxnbkkrv4wl3rrdb1r0wgj81igpv8s";
};
buildInputs = [ perl ];
diff --git a/pkgs/tools/virtualization/cloudmonkey/default.nix b/pkgs/tools/virtualization/cloudmonkey/default.nix
new file mode 100644
index 000000000000..b133bc094f97
--- /dev/null
+++ b/pkgs/tools/virtualization/cloudmonkey/default.nix
@@ -0,0 +1,27 @@
+{ python2Packages, lib }:
+
+with python2Packages;
+
+buildPythonApplication rec {
+
+ name = "${pname}-${version}";
+ pname = "cloudmonkey";
+ version = "5.3.3";
+
+ propagatedBuildInputs = [ argcomplete pygments ];
+
+ doCheck = false; # upstream has no tests defined
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "064yk3lwl272nyn20xxrh0qxzh3r1rl9015qqf2i4snqdzwd5cf7";
+ };
+
+ meta = with lib; {
+ description = "CLI for Apache CloudStack.";
+ homepage = "https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI";
+ license = [ licenses.asl20 ];
+ maintainers = [ maintainers.womfoo ];
+ };
+
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3e59d51ef61b..7a4864faa6d9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -814,6 +814,8 @@ with pkgs;
cloud-init = callPackage ../tools/virtualization/cloud-init { };
+ cloudmonkey = callPackage ../tools/virtualization/cloudmonkey { };
+
clib = callPackage ../tools/package-management/clib { };
colord-kde = libsForQt5.callPackage ../tools/misc/colord-kde {};
@@ -1689,6 +1691,8 @@ with pkgs;
eid-viewer = callPackage ../tools/security/eid-viewer { };
+ mcrcon = callPackage ../tools/networking/mcrcon {};
+
### DEVELOPMENT / EMSCRIPTEN
buildEmscriptenPackage = callPackage ../development/em-modules/generic { };
@@ -4489,6 +4493,8 @@ with pkgs;
vim-vint = callPackage ../development/tools/vim-vint { };
+ vimer = callPackage ../tools/misc/vimer { };
+
vit = callPackage ../applications/misc/vit { };
vnc2flv = callPackage ../tools/video/vnc2flv {};
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 4874d5d01a2d..5bab2ab89274 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -10157,6 +10157,19 @@ let self = _self // overrides; _self = with self; {
};
};
+ NTLM = buildPerlPackage rec {
+ name = "NTLM-1.09";
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/N/NB/NBEBOUT/${name}.tar.gz";
+ sha256 = "c823e30cda76bc15636e584302c960e2b5eeef9517c2448f7454498893151f85";
+ };
+ propagatedBuildInputs = [ DigestHMAC ];
+ meta = {
+ license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+ maintainers = [ maintainers.pSub ];
+ };
+ };
+
ObjectAccessor = buildPerlPackage {
name = "Object-Accessor-0.48";
src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 3f5b20a62d62..1f10fac50410 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -640,23 +640,7 @@ in {
};
- alembic = buildPythonPackage rec {
- name = "alembic-0.8.3";
-
- src = pkgs.fetchurl {
- url = "mirror://pypi/a/alembic/${name}.tar.gz";
- sha256 = "1sgwvwylzd5h14130mwr0cbyy0fil0a1bq0d0ki97wqvkic3db7f";
- };
-
- buildInputs = with self; [ pytest pytestcov mock coverage ];
- propagatedBuildInputs = with self; [ Mako sqlalchemy python-editor ];
-
- meta = {
- homepage = http://bitbucket.org/zzzeek/alembic;
- description = "A database migration tool for SQLAlchemy";
- license = licenses.mit;
- };
- };
+ alembic = callPackage ../development/python-modules/alembic {};
ansicolors = buildPythonPackage rec {
name = "ansicolors-${version}";
@@ -1155,6 +1139,8 @@ in {
};
};
+ argcomplete = callPackage ../development/python-modules/argcomplete { };
+
area53 = buildPythonPackage (rec {
name = "Area53-0.94";
@@ -5295,28 +5281,7 @@ in {
pytest_xdist = callPackage ../development/python-modules/pytest-xdist { };
- pytest-localserver = buildPythonPackage rec {
- name = "pytest-localserver-${version}";
- version = "0.3.5";
-
- src = pkgs.fetchurl {
- url = "mirror://pypi/p/pytest-localserver/${name}.tar.gz";
- sha256 = "0dvqspjr6va55zwmnnc2mmpqc7mm65kxig9ya44x1z8aadzxpa4p";
- };
-
- propagatedBuildInputs = with self; [ werkzeug ];
- buildInputs = with self; [ pytest six requests ];
-
- checkPhase = ''
- py.test
- '';
-
- meta = {
- description = "Plugin for the pytest testing framework to test server connections locally";
- homepage = https://pypi.python.org/pypi/pytest-localserver;
- license = licenses.mit;
- };
- };
+ pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
pytest-subtesthack = buildPythonPackage rec {
name = "pytest-subtesthack-${version}";
@@ -10195,26 +10160,10 @@ in {
};
};
- # This package likely needs an older version of Django.
+ # This package may need an older version of Django.
# Override the package set and set e.g. `django = super.django_1_9`.
# See the Nixpkgs manual for examples on how to override the package set.
- django_hijack = buildPythonPackage rec {
- name = "django-hijack-${version}";
- version = "2.0.7";
-
- src = pkgs.fetchurl {
- url = "mirror://pypi/d/django-hijack/${name}.tar.gz";
- sha256 = "0rpi1bkfx74xfbb2nk874kfdra1jcqp2vzky1r3z7zidlc9kah04";
- };
-
- propagatedBuildInputs = with self; [ django django_compat ];
-
- meta = {
- description = "Allows superusers to hijack (=login as) and work on behalf of another user";
- homepage = https://github.com/arteria/django-hijack;
- license = licenses.mit;
- };
- };
+ django_hijack = callPackage ../development/python-modules/django-hijack { };
django_nose = buildPythonPackage rec {
name = "django-nose-${version}";
@@ -11050,30 +10999,7 @@ in {
flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login.nix { };
- flask_migrate = buildPythonPackage rec {
- name = "Flask-Migrate-${version}";
- version = "1.7.0";
-
- src = pkgs.fetchurl {
- url = "mirror://pypi/F/Flask-Migrate/Flask-Migrate-1.7.0.tar.gz";
- sha256 = "16d7vnaj9xmxvb3qbcmhahm3ldfdhzzi6y221h62x4v1v1jayx7v";
- };
-
- # When tests run with python3*, tests should run commands as "python3 ",
- # not "python "
- patchPhase = ''
- substituteInPlace tests/test_migrate.py --replace "python" "${python.executable}"
- substituteInPlace tests/test_multidb_migrate.py --replace "python" "${python.executable}"
- '';
-
- propagatedBuildInputs = with self ; [ flask flask_sqlalchemy flask_script alembic ];
-
- meta = {
- description = "SQLAlchemy database migrations for Flask applications using Alembic";
- license = licenses.mit;
- homepage = https://github.com/miguelgrinberg/Flask-Migrate;
- };
- };
+ flask_migrate = callPackage ../development/python-modules/flask-migrate { };
flask_oauthlib = callPackage ../development/python-modules/flask-oauthlib.nix { };
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index c81d65ad0e03..94c1e6c7ad2e 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -89,101 +89,26 @@ in
guile = nativePlatforms;
};
- darwinToAarch64 = let
- crossSystem = {
- config = "aarch64-apple-darwin14";
- arch = "arm64";
- libc = "libSystem";
- };
- in mapTestOnCross crossSystem darwinCommon;
+ crossIphone64 = mapTestOnCross lib.systems.examples.iphone64 darwinCommon;
- darwinToArm = let
- crossSystem = {
- config = "arm-apple-darwin10";
- arch = "armv7-a";
- libc = "libSystem";
- };
- in mapTestOnCross crossSystem darwinCommon;
+ crossIphone32 = mapTestOnCross lib.systems.examples.iphone32 darwinCommon;
/* Test some cross builds to the Sheevaplug */
- crossSheevaplugLinux = let
- crossSystem = {
- config = "armv5tel-unknown-linux-gnueabi";
- bigEndian = false;
- arch = "arm";
- float = "soft";
- withTLS = true;
- platform = lib.systems.platforms.sheevaplug;
- libc = "glibc";
- openssl.system = "linux-generic32";
- };
- in mapTestOnCross crossSystem (linuxCommon // {
+ crossSheevaplugLinux = mapTestOnCross lib.systems.examples.sheevaplug (linuxCommon // {
ubootSheevaplug = nativePlatforms;
});
-
/* Test some cross builds on 32 bit mingw-w64 */
- crossMingw32 = let
- crossSystem = {
- config = "i686-pc-mingw32";
- arch = "x86"; # Irrelevant
- libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
- platform = {};
- };
- in mapTestOnCross crossSystem windowsCommon;
-
+ crossMingw32 = mapTestOnCross lib.systems.examples.mingw32 windowsCommon;
/* Test some cross builds on 64 bit mingw-w64 */
- crossMingwW64 = let
- crossSystem = {
- # That's the triplet they use in the mingw-w64 docs.
- config = "x86_64-pc-mingw32";
- arch = "x86_64"; # Irrelevant
- libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
- platform = {};
- };
- in mapTestOnCross crossSystem windowsCommon;
-
+ crossMingwW64 = mapTestOnCross lib.systems.examples.mingwW64 windowsCommon;
/* Linux on the fuloong */
- fuloongminipc = let
- crossSystem = {
- config = "mips64el-unknown-linux-gnu";
- bigEndian = false;
- arch = "mips";
- float = "hard";
- withTLS = true;
- libc = "glibc";
- platform = lib.systems.platforms.fuloong2f_n32;
- openssl.system = "linux-generic32";
- gcc = {
- arch = "loongson2f";
- abi = "n32";
- };
- };
- in mapTestOnCross crossSystem linuxCommon;
-
+ fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
/* Linux on Raspberrypi */
- rpi = let
- crossSystem = {
- config = "armv6l-unknown-linux-gnueabi";
- bigEndian = false;
- arch = "arm";
- float = "hard";
- fpu = "vfp";
- withTLS = true;
- libc = "glibc";
- platform = lib.systems.platforms.raspberrypi;
- openssl.system = "linux-generic32";
- gcc = {
- arch = "armv6";
- fpu = "vfp";
- float = "softfp";
- abi = "aapcs-linux";
- };
- };
- in mapTestOnCross crossSystem (linuxCommon // {
+ rpi = mapTestOnCross lib.systems.examples.raspberryPi (linuxCommon // {
vim = nativePlatforms;
unzip = nativePlatforms;
ddrescue = nativePlatforms;