summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2017-09-23 09:55:42 +0200
committerVladimír Čunát <vcunat@gmail.com>2017-09-23 09:57:23 +0200
commit73282c8cc2cdc866c26fd280d6ba061e6a2870f5 (patch)
treea6ffcd329ea1d21e509c4432f48c9ab6ffdac0d8 /pkgs/os-specific
parent1dd63de9a00c049c04ad0ead557520d84afba3df (diff)
parent18ebc8dba96fdfc51165ff4c92aee381388d3578 (diff)
downloadnixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.tar
nixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.tar.gz
nixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.tar.bz2
nixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.tar.lz
nixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.tar.xz
nixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.tar.zst
nixpkgs-73282c8cc2cdc866c26fd280d6ba061e6a2870f5.zip
Merge branch 'master' into staging
Thousands of rebuilds from master :-/
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/linux/fuse/common.nix72
-rw-r--r--pkgs/os-specific/linux/fuse/default.nix57
-rw-r--r--pkgs/os-specific/linux/nfs-utils/default.nix2
3 files changed, 88 insertions, 43 deletions
diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
new file mode 100644
index 00000000000..8938eaae818
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -0,0 +1,72 @@
+{ version, sha256Hash, maintainers }:
+
+{ stdenv, fetchFromGitHub, fetchpatch
+, utillinux, autoconf, automake, libtool, gettext
+, fusePackages }:
+
+let
+  isFuse3 = stdenv.lib.hasPrefix "3" version;
+in stdenv.mkDerivation rec {
+  name = "fuse-${version}";
+
+  src = fetchFromGitHub {
+    owner = "libfuse";
+    repo = "libfuse";
+    rev = name;
+    sha256 = sha256Hash;
+  };
+
+  patches = stdenv.lib.optional
+    (!isFuse3 && stdenv.isAarch64)
+    (fetchpatch {
+      url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
+      sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
+  });
+
+  nativeBuildInputs = [ libtool autoconf automake ];
+  buildInputs = [ gettext utillinux ];
+
+  outputs = [ "out" ] ++ stdenv.lib.optional isFuse3 "common";
+
+  preConfigure = ''
+    export MOUNT_FUSE_PATH=$out/sbin
+    export INIT_D_PATH=$TMPDIR/etc/init.d
+    export UDEV_RULES_PATH=$out/etc/udev/rules.d
+
+    # Ensure that FUSE calls the setuid wrapper, not
+    # $out/bin/fusermount. It falls back to calling fusermount in
+    # $PATH, so it should also work on non-NixOS systems.
+    export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
+
+    sed -e 's@/bin/@${utillinux}/bin/@g' -i lib/mount_util.c
+    sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
+
+    ./makeconf.sh
+  '';
+
+  postFixup = if isFuse3 then ''
+    cd $out
+
+    mv bin/mount.fuse3 bin/mount.fuse
+    mv etc/udev/rules.d/99-fuse3.rules etc/udev/rules.d/99-fuse.rules
+
+    install -D -m555 bin/mount.fuse $common/bin/mount.fuse
+    install -D -m444 etc/udev/rules.d/99-fuse.rules $common/etc/udev/rules.d/99-fuse.rules
+    install -D -m444 share/man/man8/mount.fuse.8.gz $common/share/man/man8/mount.fuse.8.gz
+  '' else ''
+    cd $out
+
+    cp ${fusePackages.fuse_3.common}/bin/mount.fuse bin/mount.fuse
+    cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules
+    cp ${fusePackages.fuse_3.common}/share/man/man8/mount.fuse.8.gz share/man/man8/mount.fuse.8.gz
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    inherit (src.meta) homepage;
+    description = "Kernel module and library that allows filesystems to be implemented in user space";
+    platforms = stdenv.lib.platforms.linux;
+    inherit maintainers;
+  };
+}
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index b36d13a0b1d..1a6c45c7cee 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -1,47 +1,20 @@
-{ stdenv, fetchFromGitHub, fetchpatch, utillinux
-, autoconf, automake, libtool, gettext }:
+{ stdenv, callPackage, utillinux }:
 
-stdenv.mkDerivation rec {
-  name = "fuse-${version}";
-  version = "2.9.7";
-
-  src = fetchFromGitHub {
-    owner = "libfuse";
-    repo = "libfuse";
-    rev = name;
-    sha256 = "1wyjjfb7p4jrkk15zryzv33096a5fmsdyr2p4b00dd819wnly2n2";
+let
+  mkFuse = args: callPackage (import ./common.nix args) {
+    inherit utillinux;
   };
-
-  buildInputs = [ utillinux autoconf automake libtool gettext ];
-
-  patches = stdenv.lib.optional stdenv.isAarch64 (fetchpatch {
-    url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
-    sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
-  });
-
-  preConfigure =
-    ''
-      export MOUNT_FUSE_PATH=$out/sbin
-      export INIT_D_PATH=$TMPDIR/etc/init.d
-      export UDEV_RULES_PATH=$out/etc/udev/rules.d
-
-      # Ensure that FUSE calls the setuid wrapper, not
-      # $out/bin/fusermount. It falls back to calling fusermount in
-      # $PATH, so it should also work on non-NixOS systems.
-      export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
-
-      sed -e 's@/bin/@${utillinux}/bin/@g' -i lib/mount_util.c
-      sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
-
-      ./makeconf.sh
-    '';
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = https://github.com/libfuse/libfuse;
-    description = "Kernel module and library that allows filesystems to be implemented in user space";
-    platforms = platforms.linux;
+  maintainers = stdenv.lib.maintainers;
+in {
+  fuse_2 = mkFuse {
+    version = "2.9.7";
+    sha256Hash = "1wyjjfb7p4jrkk15zryzv33096a5fmsdyr2p4b00dd819wnly2n2";
     maintainers = [ maintainers.mornfall ];
   };
+
+  fuse_3 = mkFuse {
+    version = "3.1.1";
+    sha256Hash = "14mazl2i55fp4vjphwgcmk3mp2x3mhqwh9nci0rd0jl5lhpdmpq6";
+    maintainers = [ maintainers.primeos ];
+  };
 }
diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix
index d28cf44bd67..294dde2a0a6 100644
--- a/pkgs/os-specific/linux/nfs-utils/default.nix
+++ b/pkgs/os-specific/linux/nfs-utils/default.nix
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
       sed -i "s,^PATH=.*,PATH=$out/bin:${statdPath}," utils/statd/start-statd
 
       configureFlags="--with-start-statd=$out/bin/start-statd $configureFlags"
-      
+
       substituteInPlace systemd/nfs-utils.service \
         --replace "/bin/true" "${coreutils}/bin/true"