diff --git a/lib/default.nix b/lib/default.nix index 4ca2e2ea6e3..d608d709447 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -56,10 +56,10 @@ let hasAttr head isAttrs isBool isInt isList isString length lessThan listToAttrs pathExists readFile replaceStrings seq stringLength sub substring tail; - inherit (trivial) id const concat or and boolToString mergeAttrs - flip mapNullable inNixShell min max importJSON warn info - nixpkgsVersion version mod compare splitByAndCompare - functionArgs setFunctionArgs isFunction; + inherit (trivial) id const concat or and bitAnd bitOr bitXor + boolToString mergeAttrs flip mapNullable inNixShell min max + importJSON warn info nixpkgsVersion version mod compare + splitByAndCompare functionArgs setFunctionArgs isFunction; inherit (fixedPoints) fix fix' extends composeExtensions makeExtensible makeExtensibleWithCustomName; diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index c683df7d7ca..eab20d0f14d 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -45,6 +45,21 @@ runTests { expected = true; }; + testBitAnd = { + expr = (bitAnd 3 10); + expected = 2; + }; + + testBitOr = { + expr = (bitOr 3 10); + expected = 11; + }; + + testBitXor = { + expr = (bitXor 3 10); + expected = 9; + }; + # STRINGS testConcatMapStrings = { diff --git a/lib/trivial.nix b/lib/trivial.nix index 251cb796db0..86e3c939dd6 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -1,4 +1,38 @@ { lib }: +let + zipIntBits = f: x: y: + let + # (intToBits 6) -> [ 0 1 1 ] + intToBits = x: + if x==0 then + [] + else + let + headbit = if (x / 2) * 2 != x then 1 else 0; # x & 1 + tailbits = if x < 0 then 9223372036854775807 + ((x+1) / 2) else x / 2; # x >>> 1 + in + [headbit] ++ (intToBits tailbits); + + # (bitsToInt [ 0 1 1 ]) -> 6 + bitsToInt = l: + if l==[] then + 0 + else + (builtins.head l) + (2 * (bitsToInt (builtins.tail l))); + + zipListsWith' = fst: snd: + if fst==[] && snd==[] then + [] + else if fst==[] then + [(f 0 (builtins.head snd))] ++ (zipListsWith' [] (builtins.tail snd)) + else if snd==[] then + [(f (builtins.head fst) 0 )] ++ (zipListsWith' (builtins.tail fst) [] ) + else + [(f (builtins.head fst) (builtins.head snd))] ++ (zipListsWith' (builtins.tail fst) (builtins.tail snd)); + in + assert (builtins.isInt x) && (builtins.isInt y); + bitsToInt (zipListsWith' (intToBits x) (intToBits y)); +in rec { /* The identity function @@ -31,6 +65,15 @@ rec { /* boolean “and” */ and = x: y: x && y; + /* bitwise “and” */ + bitAnd = builtins.bitAnd or zipIntBits (a: b: if a==1 && b==1 then 1 else 0); + + /* bitwise “or” */ + bitOr = builtins.bitOr or zipIntBits (a: b: if a==1 || b==1 then 1 else 0); + + /* bitwise “xor” */ + bitXor = builtins.bitXor or zipIntBits (a: b: if a!=b then 1 else 0); + /* Convert a boolean to a string. Note that toString on a bool returns "1" and "". */ diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 500a9e35a13..94020ed05d6 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -133,7 +133,7 @@ in { defaultText = ''''${dataDir}/tag_cache''; description = '' The path to MPD's database. If set to null the - paramter is omitted from the configuration. + parameter is omitted from the configuration. ''; }; }; diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix index 3e513ab1571..1e1c5bc9f03 100644 --- a/nixos/modules/services/computing/slurm/slurm.nix +++ b/nixos/modules/services/computing/slurm/slurm.nix @@ -6,7 +6,7 @@ let cfg = config.services.slurm; # configuration file can be generated by http://slurm.schedmd.com/configurator.html - configFile = pkgs.writeText "slurm.conf" + configFile = pkgs.writeTextDir "slurm.conf" '' ${optionalString (cfg.controlMachine != null) ''controlMachine=${cfg.controlMachine}''} ${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''} @@ -17,10 +17,25 @@ let ${cfg.extraConfig} ''; - plugStackConfig = pkgs.writeText "plugstack.conf" + plugStackConfig = pkgs.writeTextDir "plugstack.conf" '' ${optionalString cfg.enableSrunX11 ''optional ${pkgs.slurm-spank-x11}/lib/x11.so''} + ${cfg.extraPlugstackConfig} ''; + + + cgroupConfig = pkgs.writeTextDir "cgroup.conf" + '' + ${cfg.extraCgroupConfig} + ''; + + # slurm expects some additional config files to be + # in the same directory as slurm.conf + etcSlurm = pkgs.symlinkJoin { + name = "etc-slurm"; + paths = [ configFile cgroupConfig plugStackConfig ]; + }; + in { @@ -46,7 +61,17 @@ in client = { enable = mkEnableOption "slurm client daemon"; + }; + enableStools = mkOption { + type = types.bool; + default = false; + description = '' + Wether to provide a slurm.conf file. + Enable this option if you do not run a slurm daemon on this host + (i.e. server.enable and client.enable are false) + but you still want to run slurm commands from this host. + ''; }; package = mkOption { @@ -97,7 +122,7 @@ in example = "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP"; description = '' Name by which the partition may be referenced. Note that now you have - to write patrition's parameters after the name. + to write the partition's parameters after the name. ''; }; @@ -107,8 +132,10 @@ in description = '' If enabled srun will accept the option "--x11" to allow for X11 forwarding from within an interactive session or a batch job. This activates the - slurm-spank-x11 module. Note that this requires 'services.openssh.forwardX11' - to be enabled on the compute nodes. + slurm-spank-x11 module. Note that this option also enables + 'services.openssh.forwardX11' on the client. + + This option requires slurm to be compiled without native X11 support. ''; }; @@ -130,6 +157,23 @@ in the end of the slurm configuration file. ''; }; + + extraPlugstackConfig = mkOption { + default = ""; + type = types.lines; + description = '' + Extra configuration that will be added to the end of plugstack.conf. + ''; + }; + + extraCgroupConfig = mkOption { + default = ""; + type = types.lines; + description = '' + Extra configuration for cgroup.conf. This file is + used when procTrackType=proctrack/cgroup. + ''; + }; }; }; @@ -142,8 +186,6 @@ in wrappedSlurm = pkgs.stdenv.mkDerivation { name = "wrappedSlurm"; - propagatedBuildInputs = [ cfg.package configFile ]; - builder = pkgs.writeText "builder.sh" '' source $stdenv/setup mkdir -p $out/bin @@ -155,17 +197,20 @@ in #!/bin/sh if [ -z "$SLURM_CONF" ] then - SLURM_CONF="${configFile}" "$EXE" "\$@" + SLURM_CONF="${etcSlurm}/slurm.conf" "$EXE" "\$@" else "$EXE" "\$0" fi EOT chmod +x "$wrappername" done + + mkdir -p $out/share + ln -s ${getBin cfg.package}/share/man $out/share/man ''; }; - in mkIf (cfg.client.enable || cfg.server.enable) { + in mkIf (cfg.enableStools || cfg.client.enable || cfg.server.enable) { environment.systemPackages = [ wrappedSlurm ]; @@ -190,6 +235,8 @@ in ''; }; + services.openssh.forwardX11 = mkIf cfg.client.enable (mkDefault true); + systemd.services.slurmctld = mkIf (cfg.server.enable) { path = with pkgs; [ wrappedSlurm munge coreutils ] ++ lib.optional cfg.enableSrunX11 slurm-spank-x11; diff --git a/nixos/tests/slurm.nix b/nixos/tests/slurm.nix index dc4f62af564..c23d85e4002 100644 --- a/nixos/tests/slurm.nix +++ b/nixos/tests/slurm.nix @@ -1,7 +1,6 @@ import ./make-test.nix ({ pkgs, ... }: let mungekey = "mungeverryweakkeybuteasytointegratoinatest"; slurmconfig = { - client.enable = true; controlMachine = "control"; nodeName = '' control @@ -20,9 +19,12 @@ in { # TODO slrumd port and slurmctld port should be configurations and # automatically allowed by the firewall. networking.firewall.enable = false; - services.slurm = slurmconfig; + services.slurm = { + client.enable = true; + } // slurmconfig; }; in { + control = { config, pkgs, ...}: { @@ -31,17 +33,28 @@ in { server.enable = true; } // slurmconfig; }; + + submit = + { config, pkgs, ...}: + { + networking.firewall.enable = false; + services.slurm = { + enableStools = true; + } // slurmconfig; + }; + node1 = computeNode; node2 = computeNode; node3 = computeNode; }; + testScript = '' startAll; # Set up authentification across the cluster - foreach my $node (($control,$node1,$node2,$node3)) + foreach my $node (($submit,$control,$node1,$node2,$node3)) { $node->waitForUnit("default.target"); @@ -60,7 +73,7 @@ in { }; subtest "can_start_slurmd", sub { - foreach my $node (($control,$node1,$node2,$node3)) + foreach my $node (($node1,$node2,$node3)) { $node->succeed("systemctl restart slurmd.service"); $node->waitForUnit("slurmd"); @@ -72,7 +85,7 @@ in { subtest "run_distributed_command", sub { # Run `hostname` on 3 nodes of the partition (so on all the 3 nodes). # The output must contain the 3 different names - $control->succeed("srun -N 3 hostname | sort | uniq | wc -l | xargs test 3 -eq"); + $submit->succeed("srun -N 3 hostname | sort | uniq | wc -l | xargs test 3 -eq"); }; ''; }) diff --git a/pkgs/applications/audio/pulseaudio-ctl/default.nix b/pkgs/applications/audio/pulseaudio-ctl/default.nix new file mode 100644 index 00000000000..6e1e576043d --- /dev/null +++ b/pkgs/applications/audio/pulseaudio-ctl/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchFromGitHub, makeWrapper +, bc, dbus, gawk, gnused, libnotify, pulseaudioLight }: + +let + path = stdenv.lib.makeBinPath [ bc dbus gawk gnused libnotify pulseaudioLight ]; + pname = "pulseaudio-ctl"; + +in stdenv.mkDerivation rec { + name = "${pname}-${version}"; + version = "1.66"; + + src = fetchFromGitHub { + owner = "graysky2"; + repo = pname; + rev = "v${version}"; + sha256 = "19a24w7y19551ar41q848w7r1imqkl9cpff4dpb7yry7qp1yjg0y"; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace /usr $out + + substituteInPlace common/${pname}.in \ + --replace '$0' ${pname} + ''; + + nativeBuildInputs = [ makeWrapper ]; + + postFixup = '' + wrapProgram $out/bin/${pname} \ + --prefix PATH : ${path} + ''; + + meta = with stdenv.lib; { + description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils."; + homepage = https://bbs.archlinux.org/viewtopic.php?id=124513; + license = licenses.mit; + maintainers = with maintainers; [ peterhoeg ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 5f6772256ca..b8495465db5 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -7,7 +7,7 @@ let # Latest version number can be found at: # http://repository-origin.spotify.com/pool/non-free/s/spotify-client/ # Be careful not to pick the testing version. - version = "1.0.79.223.g92622cc2-21"; + version = "1.0.80.480.g51b03ac3-13"; deps = [ alsaLib @@ -51,7 +51,7 @@ stdenv.mkDerivation { src = fetchurl { url = "https://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb"; - sha256 = "1x1rpprzin4cmz1spzw036b4phd0yk1v7idlrcy4pkv97b4g5dw6"; + sha256 = "e32f4816ae79dbfa0c14086e76df3bc83d526402aac1dbba534127fc00fe50ea"; }; buildInputs = [ dpkg makeWrapper ]; diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 68f95195b6e..93a5d942853 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -5,12 +5,12 @@ }: stdenv.mkDerivation rec { - version = "3.24.1"; + version = "3.25.0"; name = "calibre-${version}"; src = fetchurl { url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz"; - sha256 = "1hgjnw8ynvpcfry4vanz5f54sjq55pqidvyy47lz59cz0s8lx50b"; + sha256 = "018gxjbj5rak4ys5nyx6749rj9vszlf9k1wdcpl60ap3l83kxdnd"; }; patches = [ diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix index 74364327645..dc983e00336 100644 --- a/pkgs/applications/version-management/gitkraken/default.nix +++ b/pkgs/applications/version-management/gitkraken/default.nix @@ -12,11 +12,11 @@ let in stdenv.mkDerivation rec { name = "gitkraken-${version}"; - version = "3.6.1"; + version = "3.6.3"; src = fetchurl { url = "https://release.gitkraken.com/linux/v${version}.deb"; - sha256 = "1f77y281r3dp35vw3zdai2cgwwy2gpg7px6g66ylfz4gkig26dz8"; + sha256 = "1bl4zz4k9whv5q6bkf6hyki26dkjhm19rzx2800zzadbrdgs7iz4"; }; libPath = makeLibraryPath [ diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix index 55e80d7fb0c..b0dc20128fc 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix @@ -408,8 +408,8 @@ self: super: { # Older versions don't compile. base-compat = self.base-compat_0_10_1; brick = self.brick_0_37_1; - dhall = self.dhall_1_13_0; - dhall_1_13_0 = doJailbreak super.dhall_1_13_0; # support ansi-terminal 0.8.x + dhall = self.dhall_1_14_0; + dhall_1_13_0 = doJailbreak super.dhall_1_14_0; # support ansi-terminal 0.8.x HaTeX = self.HaTeX_3_19_0_0; hpack = self.hpack_0_28_2; hspec = dontCheck super.hspec_2_5_1; diff --git a/pkgs/development/libraries/libbsd/default.nix b/pkgs/development/libraries/libbsd/default.nix new file mode 100644 index 00000000000..114d3209b58 --- /dev/null +++ b/pkgs/development/libraries/libbsd/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "libbsd-${version}"; + version = "0.9.1"; + + src = fetchurl { + url = "http://libbsd.freedesktop.org/releases/${name}.tar.xz"; + sha256 = "1957w2wi7iqar978qlfsm220dwywnrh5m58nrnn9zmi74ds3bn2n"; + }; + + patches = []; + + meta = with stdenv.lib; { + description = "Common functions found on BSD systems, Freedesktop fork"; + homepage = https://libbsd.freedesktop.org/; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = with maintainers; [ raskin ]; + }; +} diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index 960a792822d..bfc94e1fac8 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -3,7 +3,7 @@ , withData ? true, poppler_data , qt5Support ? false, qtbase ? null , introspectionSupport ? false, gobjectIntrospection ? null -, utils ? false +, utils ? false, nss ? null , minimal ? false, suffix ? "glib" }: @@ -28,6 +28,7 @@ stdenv.mkDerivation rec { [ zlib freetype fontconfig libjpeg openjpeg ] ++ optionals (!minimal) [ cairo lcms curl ] ++ optional qt5Support qtbase + ++ optional utils nss ++ optional introspectionSupport gobjectIntrospection; nativeBuildInputs = [ cmake ninja pkgconfig ]; @@ -49,7 +50,9 @@ stdenv.mkDerivation rec { description = "A PDF rendering library"; longDescription = '' - Poppler is a PDF rendering library based on the xpdf-3.0 code base. + Poppler is a PDF rendering library based on the xpdf-3.0 code + base. In addition it provides a number of tools that can be + installed separately. ''; license = licenses.gpl2; diff --git a/pkgs/development/libraries/qt-5/mkDerivation.nix b/pkgs/development/libraries/qt-5/mkDerivation.nix index 53949ddd492..96014cfbc77 100644 --- a/pkgs/development/libraries/qt-5/mkDerivation.nix +++ b/pkgs/development/libraries/qt-5/mkDerivation.nix @@ -16,9 +16,6 @@ let optional (!debug) "-DQT_NO_DEBUG" ++ lib.toList (args.NIX_CFLAGS_COMPILE or []); - configureFlags = [ "-no-framework" ] - ++ (args.configureFlags or []); - cmakeFlags = (args.cmakeFlags or []) ++ [ diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix index 28b250437d0..0c7af9e185d 100644 --- a/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -298,6 +298,7 @@ stdenv.mkDerivation { "-no-fontconfig" "-qt-freetype" "-qt-libpng" + "-no-framework" ] else [ @@ -373,24 +374,6 @@ stdenv.mkDerivation { '' + ( - if stdenv.isDarwin - then - '' - fixDarwinDylibNames_rpath() { - local flags=() - - for fn in "$@"; do - flags+=(-change "@rpath/$fn.framework/Versions/5/$fn" "$out/lib/$fn.framework/Versions/5/$fn") - done - - for fn in "$@"; do - echo "$fn: fixing dylib" - install_name_tool -id "$out/lib/$fn.framework/Versions/5/$fn" "''${flags[@]}" "$out/lib/$fn.framework/Versions/5/$fn" - done - } - fixDarwinDylibNames_rpath "QtConcurrent" "QtPrintSupport" "QtCore" "QtSql" "QtDBus" "QtTest" "QtGui" "QtWidgets" "QtNetwork" "QtXml" "QtOpenGL" - '' - else # fixup .pc file (where to find 'moc' etc.) '' sed -i "$dev/lib/pkgconfig/Qt5Core.pc" \ diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix index 3f9188a6322..cb497742e47 100644 --- a/pkgs/development/python-modules/pandas/default.nix +++ b/pkgs/development/python-modules/pandas/default.nix @@ -55,6 +55,8 @@ in buildPythonPackage rec { xlwt ]; + patches = [ ./pandas-0.22.0-pytest-3.5.1.patch ]; + # For OSX, we need to add a dependency on libcxx, which provides # `complex.h` and other libraries that pandas depends on to build. postPatch = optionalString isDarwin '' diff --git a/pkgs/development/python-modules/pandas/pandas-0.22.0-pytest-3.5.1.patch b/pkgs/development/python-modules/pandas/pandas-0.22.0-pytest-3.5.1.patch new file mode 100644 index 00000000000..cba71b91316 --- /dev/null +++ b/pkgs/development/python-modules/pandas/pandas-0.22.0-pytest-3.5.1.patch @@ -0,0 +1,13 @@ +--- a/pandas/tests/io/test_pytables.py ++++ b/pandas/tests/io/test_pytables.py +@@ -5028,8 +5028,8 @@ class TestHDFStore(Base): + with ensure_clean_path(self.path) as path: + with catch_warnings(record=True): + with pytest.raises( +- ValueError, msg=("cannot have non-object label " +- "DataIndexableCol")): ++ ValueError, message=("cannot have non-object label " ++ "DataIndexableCol")): + df.to_hdf(path, 'df', format='table', + data_columns=True) + diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix index 04102e7e8f8..76d09962562 100644 --- a/pkgs/development/tools/build-managers/sbt/default.nix +++ b/pkgs/development/tools/build-managers/sbt/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { name = "sbt-${version}"; - version = "1.1.4"; + version = "1.1.6"; src = fetchurl { urls = [ @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz" "https://cocl.us/sbt-${version}.tgz" ]; - sha256 = "0hc361gb71psadx9gj78j0j60fw4sljjk8sl45hw6yzx3hmmkg9g"; + sha256 = "1hb8gcf3shcp4a65pnlqdlp8j5as7prqvw3d0b5bnfjfi0qbaigm"; }; patchPhase = '' diff --git a/pkgs/development/tools/godep/default.nix b/pkgs/development/tools/godep/default.nix deleted file mode 100644 index 3503a6c2c62..00000000000 --- a/pkgs/development/tools/godep/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ stdenv, lib, go, fetchurl, fetchgit, fetchhg, fetchbzr, fetchFromGitHub }: - -stdenv.mkDerivation rec { - version = "73"; - name = "godep-${version}"; - - src = import ./deps.nix { - inherit stdenv lib fetchgit; - }; - - buildInputs = [ go ]; - - buildPhase = '' - export GOPATH=$src - go build -v -o godep github.com/tools/godep - ''; - - installPhase = '' - mkdir -p $out/bin - mv godep $out/bin - ''; - - meta = with stdenv.lib; { - description = "Dependency tool for go"; - homepage = https://github.com/tools/godep; - license = licenses.bsd3; - maintainers = with maintainers; [ offline ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/development/tools/godep/deps.nix b/pkgs/development/tools/godep/deps.nix deleted file mode 100644 index 10071fa5195..00000000000 --- a/pkgs/development/tools/godep/deps.nix +++ /dev/null @@ -1,67 +0,0 @@ -# This file was generated by go2nix. -{ stdenv, lib, fetchgit }: - -let - goDeps = [ - { - root = "github.com/kr/fs"; - src = fetchgit { - url = "https://github.com/kr/fs.git"; - rev = "2788f0dbd16903de03cb8186e5c7d97b69ad387b"; - sha256 = "1c0fipl4rsh0v5liq1ska1dl83v3llab4k6lm8mvrx9c4dyp71ly"; - }; - } - { - root = "github.com/tools/godep"; - src = fetchgit { - url = "https://github.com/tools/godep.git"; - rev = "f4edf338389e6e2bde0e8307886718133dc0613e"; - sha256 = "1jdza8kwnzdsh3layqjzy9dnr92xdg3kfhnzvqkq3p50vsdims9w"; - }; - } - { - root = "github.com/kr/pretty"; - src = fetchgit { - url = "https://github.com/kr/pretty"; - rev = "f31442d60e51465c69811e2107ae978868dbea5c"; - sha256 = "12nczwymikxmivb10q5ml5yxrwpz9s8p6k4vqig9g9707yhpxrkh"; - }; - } - { - root = "github.com/kr/text"; - src = fetchgit { - url = "https://github.com/kr/text"; - rev = "6807e777504f54ad073ecef66747de158294b639"; - sha256 = "1wkszsg08zar3wgspl9sc8bdsngiwdqmg3ws4y0bh02sjx5a4698"; - }; - } - { - root = "github.com/pmezard/go-difflib"; - src = fetchgit { - url = "https://github.com/pmezard/go-difflib"; - rev = "f78a839676152fd9f4863704f5d516195c18fc14"; - sha256 = "1bws3qyy572b62i3wkwfr1aw1g2nwcim2sy42jqsvh9pajjsf1vz"; - }; - } - { - root = "golang.org/x/tools"; - src = fetchgit { - url = "https://go.googlesource.com/tools"; - rev = "1f1b3322f67af76803c942fd237291538ec68262"; - sha256 = "0h2yarcvcgg1px20r8n58psra1czv0sgly5gins2q3wp25iql6gj"; - }; - } - ]; - -in - -stdenv.mkDerivation rec { - name = "go-deps"; - - buildCommand = - lib.concatStrings - (map (dep: '' - mkdir -p $out/src/`dirname ${dep.root}` - ln -s ${dep.src} $out/src/${dep.root} - '') goDeps); -} diff --git a/pkgs/games/multimc/default.nix b/pkgs/games/multimc/default.nix index 35444f82f66..c6697f5806d 100644 --- a/pkgs/games/multimc/default.nix +++ b/pkgs/games/multimc/default.nix @@ -4,12 +4,12 @@ let libpath = with xorg; stdenv.lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ]; in stdenv.mkDerivation rec { name = "multimc-${version}"; - version = "0.6.1"; + version = "0.6.2"; src = fetchFromGitHub { owner = "MultiMC"; repo = "MultiMC5"; rev = version; - sha256 = "0glsf4vfir8w24bpinf3cx2ninrcp7hpq9cl463wl78dvqfg47kx"; + sha256 = "07jrr6si8nzfqwf073zhgw47y6snib23ad3imh1ik1nn5r7wqy3c"; fetchSubmodules = true; }; nativeBuildInputs = [ cmake file makeWrapper ]; @@ -18,6 +18,9 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; postInstall = '' + mkdir -p $out/share/{applications,pixmaps} + cp ../application/resources/multimc/scalable/multimc.svg $out/share/pixmaps + cp ../application/package/linux/multimc.desktop $out/share/applications wrapProgram $out/bin/MultiMC --add-flags "-d \$HOME/.multimc/" --set GAME_LIBRARY_PATH /run/opengl-driver/lib:${libpath} --prefix PATH : ${jdk}/bin/ ''; diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix index b0460f21bfa..7a03bf75802 100644 --- a/pkgs/servers/computing/slurm/default.nix +++ b/pkgs/servers/computing/slurm/default.nix @@ -1,5 +1,9 @@ -{ stdenv, fetchurl, pkgconfig, libtool, curl, python, munge, perl, pam, openssl +{ stdenv, fetchurl, pkgconfig, libtool, curl +, python, munge, perl, pam, openssl , ncurses, mysql, gtk2, lua, hwloc, numactl +, readline, freeipmi, libssh2, xorg +# enable internal X11 support via libssh2 +, enableX11 ? true }: stdenv.mkDerivation rec { @@ -13,6 +17,11 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; + prePatch = stdenv.lib.optional enableX11 '' + substituteInPlace src/common/x11_util.c \ + --replace '"/usr/bin/xauth"' '"${xorg.xauth}/bin/xauth"' + ''; + # nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode' # https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es # this doesn't fix tests completely at least makes slurmd to launch @@ -20,14 +29,20 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig libtool ]; buildInputs = [ - curl python munge perl pam openssl mysql.connector-c ncurses gtk2 lua hwloc numactl - ]; + curl python munge perl pam openssl + mysql.connector-c ncurses gtk2 + lua hwloc numactl readline freeipmi + ] ++ stdenv.lib.optionals enableX11 [ libssh2 xorg.xauth ]; - configureFlags = + configureFlags = with stdenv.lib; [ "--with-munge=${munge}" "--with-ssl=${openssl.dev}" + "--with-hwloc=${hwloc.dev}" + "--with-freeipmi=${freeipmi}" "--sysconfdir=/etc/slurm" - ] ++ stdenv.lib.optional (gtk2 == null) "--disable-gtktest"; + ] ++ (optional (gtk2 == null) "--disable-gtktest") + ++ (optional enableX11 "--with-libssh2=${libssh2.dev}"); + preConfigure = '' patchShebangs ./doc/html/shtml2html.py @@ -45,6 +60,6 @@ stdenv.mkDerivation rec { description = "Simple Linux Utility for Resource Management"; platforms = platforms.linux; license = licenses.gpl2; - maintainers = [ maintainers.jagajaga ]; + maintainers = with maintainers; [ jagajaga markuskowa ]; }; } diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix index 6f092dd80cd..40f63099945 100644 --- a/pkgs/servers/xmpp/prosody/default.nix +++ b/pkgs/servers/xmpp/prosody/default.nix @@ -25,12 +25,12 @@ let in stdenv.mkDerivation rec { - version = "0.10.1"; + version = "0.10.2"; name = "prosody-${version}"; src = fetchurl { url = "http://prosody.im/downloads/source/${name}.tar.gz"; - sha256 = "1kmmpkkgymg1r8r0k8j83pgmiskg1phl8hmpzjrnvlvsfnrnjplr"; + sha256 = "13knr7izscw0zx648b9582dx11aap4cq9bzfiqh5ykd7wwsz1dbm"; }; communityModules = fetchhg { diff --git a/pkgs/tools/security/pass/extensions/audit.nix b/pkgs/tools/security/pass/extensions/audit.nix new file mode 100644 index 00000000000..79dd1fadb01 --- /dev/null +++ b/pkgs/tools/security/pass/extensions/audit.nix @@ -0,0 +1,42 @@ +{ stdenv, pass, fetchFromGitHub, pythonPackages, makeWrapper }: + +let + pythonEnv = pythonPackages.python.withPackages (p: [ p.requests ]); + +in stdenv.mkDerivation rec { + name = "pass-audit-${version}"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "roddhjav"; + repo = "pass-audit"; + rev = "v${version}"; + sha256 = "0v0db8bzpcaa7zqz17syn3c78mgvw4mpg8qg1gh5rmbjsjfxw6sm"; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildInputs = [ pythonEnv ]; + + patchPhase = '' + sed -i -e "s|/usr/lib|$out/lib|" audit.bash + sed -i -e 's|$0|${pass}/bin/pass|' audit.bash + ''; + + dontBuild = true; + + installFlags = [ "PREFIX=$(out)" ]; + + postFixup = '' + wrapProgram $out/lib/password-store/extensions/audit.bash \ + --prefix PATH : "${pythonEnv}/bin" \ + --run "export PREFIX" + ''; + + meta = with stdenv.lib; { + description = "Pass extension for auditing your password repository."; + homepage = https://github.com/roddhjav/pass-audit; + license = licenses.gpl3Plus; + platforms = platforms.unix; + }; +} diff --git a/pkgs/tools/security/pass/extensions/default.nix b/pkgs/tools/security/pass/extensions/default.nix index dfb853c0a0b..f69687e512b 100644 --- a/pkgs/tools/security/pass/extensions/default.nix +++ b/pkgs/tools/security/pass/extensions/default.nix @@ -3,6 +3,9 @@ with pkgs; { + pass-audit = callPackage ./audit.nix { + pythonPackages = python3Packages; + }; pass-import = callPackage ./import.nix { pythonPackages = python3Packages; }; diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix index 8ba4abc5e3d..9e69cf37621 100644 --- a/pkgs/tools/security/pass/extensions/import.nix +++ b/pkgs/tools/security/pass/extensions/import.nix @@ -18,13 +18,18 @@ in stdenv.mkDerivation rec { buildInputs = [ pythonEnv ]; + patchPhase = '' + sed -i -e 's|$0|${pass}/bin/pass|' import.bash + ''; + dontBuild = true; installFlags = [ "PREFIX=$(out)" ]; postFixup = '' wrapProgram $out/lib/password-store/extensions/import.bash \ - --prefix PATH : "${pythonEnv}/bin" + --prefix PATH : "${pythonEnv}/bin" \ + --run "export PREFIX" ''; meta = with stdenv.lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5a561d6ff0c..cc8bd077376 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12940,6 +12940,7 @@ with pkgs; samba4 = callPackage ../servers/samba/4.x.nix { python = python2; + libbsd = libbsd-freedesktop; }; sambaMaster = callPackage ../servers/samba/master.nix { }; @@ -13908,8 +13909,6 @@ with pkgs; golint = callPackage ../development/tools/golint { }; - godep = callPackage ../development/tools/godep { }; - godef = callPackage ../development/tools/godef { }; goimports = callPackage ../development/tools/goimports { }; @@ -17499,6 +17498,8 @@ with pkgs; ptask = callPackage ../applications/misc/ptask { }; + pulseaudio-ctl = callPackage ../applications/audio/pulseaudio-ctl { }; + pulseaudio-dlna = callPackage ../applications/audio/pulseaudio-dlna { }; pulseview = libsForQt5.callPackage ../applications/science/electronics/pulseview { }; @@ -21493,6 +21494,8 @@ with pkgs; libbsd = netbsd.compat; + libbsd-freedesktop = callPackage ../development/libraries/libbsd {}; + inherit (recurseIntoAttrs (callPackages ../os-specific/bsd { })) netbsd;