From b7487c64d2918a981fb4638e3186311e13cb7a45 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 25 Feb 2018 14:12:21 +0100 Subject: [PATCH 1/5] libbytesize: init at 1.12 --- .../libraries/libbytesize/default.nix | 30 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 32 insertions(+) create mode 100644 pkgs/development/libraries/libbytesize/default.nix diff --git a/pkgs/development/libraries/libbytesize/default.nix b/pkgs/development/libraries/libbytesize/default.nix new file mode 100644 index 0000000000000..f13522f4017e0 --- /dev/null +++ b/pkgs/development/libraries/libbytesize/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gettext, gtk-doc, libxslt, docbook_xsl +, python3, pcre, gmp, mpfr +}: + +let + version = "1.2"; +in stdenv.mkDerivation rec { + name = "libbytesize-${version}"; + + src = fetchFromGitHub { + owner = "storaged-project"; + repo = "libbytesize"; + rev = version; + sha256 = "0r71ml7qjfai08rr1hk61lmf5h3niwy9f1x5xq9k76ccls6gixmc"; + }; + + outputs = [ "out" "dev" "devdoc" ]; + + nativeBuildInputs = [ autoreconfHook pkgconfig gettext gtk-doc libxslt docbook_xsl python3 ]; + + buildInputs = [ pcre gmp mpfr ]; + + meta = with stdenv.lib; { + description = "A tiny library providing a C “class” for working with arbitrary big sizes in bytes"; + homepage = src.meta.homepage; + license = licenses.lgpl2Plus; + maintainers = with maintainers; []; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8a9b609ddccb2..2c02e0ab935fb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9445,6 +9445,8 @@ with pkgs; libburn = callPackage ../development/libraries/libburn { }; + libbytesize= callPackage ../development/libraries/libbytesize{ }; + libcaca = callPackage ../development/libraries/libcaca { inherit (xlibs) libX11 libXext; }; From ed660e3a75145363d7d1332350bf8a887f79f84d Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 25 Feb 2018 14:51:00 +0100 Subject: [PATCH 2/5] volume_key: init at 0.3.9 --- .../libraries/volume-key/default.nix | 49 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 51 insertions(+) create mode 100644 pkgs/development/libraries/volume-key/default.nix diff --git a/pkgs/development/libraries/volume-key/default.nix b/pkgs/development/libraries/volume-key/default.nix new file mode 100644 index 0000000000000..f267232150de2 --- /dev/null +++ b/pkgs/development/libraries/volume-key/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchgit, fetchpatch, autoreconfHook, pkgconfig, gettext, python2 +, swig, glib, utillinux, cryptsetup, nss, gpgme +}: + +let + version = "0.3.9"; +in stdenv.mkDerivation rec { + name = "volume_key-${version}"; + + src = fetchgit { + url = https://pagure.io/volume_key.git; + rev = name; + sha256 = "1773432gd9vhwj7lfmk6bwybm7lkc3rmblp865gm0flkqlkhr537"; + }; + + outputs = [ "out" "man" "dev" ]; + outputBin = "dev"; + + nativeBuildInputs = [ autoreconfHook pkgconfig gettext python2 swig ]; + + buildInputs = [ glib cryptsetup nss utillinux gpgme ]; + + patches = [ + # Do not include config.h in libvolume_key.h + (fetchpatch { + url = https://pagure.io/volume_key/c/8f8698aba19b501f01285e9eec5c18231fc6bcea.patch; + sha256 = "0jcrakjgzjb8zmzlyv40fiwkzr2j0ni8ksgg6633x9zkf4q5ay9n"; + }) + # Fix compatibility with cryptsetup 2.0 + (fetchpatch { + url = https://pagure.io/volume_key/c/ecef526a51c5a276681472fd6df239570c9ce518.patch; + sha256 = "1cadn7hd2q05yjlvvnnwy6vdwxs8wvm48ab7jqrpby7l7jz4zmx2"; + }) + # Use pkg-config for locating Python.h + # https://pagure.io/volume_key/pull-request/12 + (fetchpatch { + url = https://pagure.io/fork/cathay4t/volume_key/c/028106f408206dcabece6ee7cbe09ef3bb327988.patch; + sha256 = "1c82wilr5kxjq04740xcd9pmxzrk82g7mn2sicbz0g7x5c1qgs0b"; + }) + ]; + + meta = with stdenv.lib; { + description = "A library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool"; + homepage = https://pagure.io/volume_key/; + license = licenses.gpl2; + maintainers = with maintainers; []; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2c02e0ab935fb..d2d0c3618e62b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5189,6 +5189,8 @@ with pkgs; vobsub2srt = callPackage ../tools/cd-dvd/vobsub2srt { }; + volume_key = callPackage ../development/libraries/volume-key { }; + vorbisgain = callPackage ../tools/misc/vorbisgain { }; vpnc = callPackage ../tools/networking/vpnc { }; From edc1825e4129715a439ff4c050c1b26e09e48cd3 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 25 Feb 2018 13:52:38 +0100 Subject: [PATCH 3/5] libblockdev: init at 2.16 --- .../libraries/libblockdev/default.nix | 40 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 42 insertions(+) create mode 100644 pkgs/development/libraries/libblockdev/default.nix diff --git a/pkgs/development/libraries/libblockdev/default.nix b/pkgs/development/libraries/libblockdev/default.nix new file mode 100644 index 0000000000000..2293f216e387f --- /dev/null +++ b/pkgs/development/libraries/libblockdev/default.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk-doc, libxslt, docbook_xsl +, python3, gobjectIntrospection, glib, libudev, kmod, parted, cryptsetup +, devicemapper, dmraid, utillinux, libbytesize, nss, volume_key +}: + +let + version = "2.16"; +in stdenv.mkDerivation rec { + name = "libblockdev-${version}"; + + src = fetchFromGitHub { + owner = "storaged-project"; + repo = "libblockdev"; + rev = "${version}-1"; + sha256 = "02jdvafjbd280vz2mg5488xwdl595yyajaffrpfmfzbva513sxxc"; + }; + + outputs = [ "out" "dev" "devdoc" ]; + outputBin = "dev"; + + postPatch = '' + patchShebangs scripts + ''; + + nativeBuildInputs = [ + autoreconfHook pkgconfig gtk-doc libxslt docbook_xsl python3 gobjectIntrospection + ]; + + buildInputs = [ + glib libudev kmod parted cryptsetup devicemapper dmraid utillinux libbytesize nss volume_key + ]; + + meta = with stdenv.lib; { + description = "A library for manipulating block devices"; + homepage = http://storaged.org/libblockdev/; + license = licenses.lgpl2Plus; # lgpl2Plus for the library, gpl2Plus for the utils + maintainers = with maintainers; []; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d2d0c3618e62b..583f8d6357a60 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9437,6 +9437,8 @@ with pkgs; libbdplus = callPackage ../development/libraries/libbdplus { }; + libblockdev = callPackage ../development/libraries/libblockdev { }; + libblocksruntime = callPackage ../development/libraries/libblocksruntime { }; libbluray = callPackage ../development/libraries/libbluray { }; From 738eabde5f77cf86c8effda0de2c16625c023e33 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sun, 25 Feb 2018 13:25:07 +0100 Subject: [PATCH 4/5] =?UTF-8?q?udisks2:=202.1.6=20=E2=86=92=202.7.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/os-specific/linux/udisks/2-default.nix | 72 +++++---- pkgs/os-specific/linux/udisks/fix-paths.patch | 151 ++++++++++++++++++ .../os-specific/linux/udisks/force-path.patch | 13 -- 3 files changed, 194 insertions(+), 42 deletions(-) create mode 100644 pkgs/os-specific/linux/udisks/fix-paths.patch delete mode 100644 pkgs/os-specific/linux/udisks/force-path.patch diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix index 725b1cd256434..def74ba4c8302 100644 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ b/pkgs/os-specific/linux/udisks/2-default.nix @@ -1,39 +1,51 @@ -{ stdenv, fetchurl, pkgconfig, intltool, gnused -, expat, acl, systemd, glib, libatasmart, polkit -, libxslt, docbook_xsl, utillinux, mdadm, libgudev -, gobjectIntrospection +{ stdenv, fetchFromGitHub, substituteAll, libtool, pkgconfig, intltool, gnused +, gnome3, gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash +, expat, libxslt, docbook_xsl, utillinux, mdadm, libgudev, libblockdev, parted +, gobjectIntrospection, docbook_xml_dtd_43 }: -stdenv.mkDerivation rec { - name = "udisks-2.1.6"; +let + version = "2.7.6"; +in stdenv.mkDerivation rec { + name = "udisks-${version}"; - src = fetchurl { - url = "http://udisks.freedesktop.org/releases/${name}.tar.bz2"; - sha256 = "0spl155k0g2l2hvqf8xyjv08i68gfyhzpjva6cwlzxx0bz4gbify"; + src = fetchFromGitHub { + owner = "storaged-project"; + repo = "udisks"; + rev = name; + sha256 = "16kf104vv2xbk8cdgaqygszcl69d7lz9gf3vmi7ggywn7nfbp2ks"; }; - outputs = [ "out" "man" "dev" ]; + outputs = [ "out" "man" "dev" "devdoc" ]; - patches = [ ./force-path.patch ]; + patches = [ + (substituteAll { + src = ./fix-paths.patch; + parted = "${parted}/bin/parted"; + mdadm = "${mdadm}/bin/mdadm"; + blkid = "${utillinux}/bin/blkid"; + sh = "${bash}/bin/sh"; + bash = "${bash}/bin/bash"; + sed = "${gnused}/bin/sed"; + true = "${coreutils}/bin/true"; + sleep = "${coreutils}/bin/sleep"; + false = "${coreutils}/bin/false"; + }) + ]; - # FIXME remove /var/run/current-system/sw/* references - # FIXME add references to parted, cryptsetup, etc (see the sources) - postPatch = - '' - substituteInPlace src/main.c --replace \ - "@path@" \ - "${utillinux}/bin:${mdadm}/bin:/run/current-system/sw/bin" - substituteInPlace data/80-udisks2.rules \ - --replace "/bin/sh" "${stdenv.shell}" \ - --replace "/sbin/mdadm" "${mdadm}/bin/mdadm" \ - --replace " sed " " ${gnused}/bin/sed " - ''; + nativeBuildInputs = [ + pkgconfig gnome3.gnome-common libtool intltool gobjectIntrospection + gtk-doc libxslt docbook_xml_dtd_43 docbook_xsl + ]; - nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection ]; + buildInputs = [ + expat libgudev libblockdev acl systemd glib libatasmart polkit + ]; - buildInputs = [ libxslt docbook_xsl libgudev expat acl systemd glib libatasmart polkit ]; + preConfigure = "./autogen.sh"; configureFlags = [ + "--enable-gtk-doc" "--localstatedir=/var" "--with-systemdsystemunitdir=$(out)/etc/systemd/system" "--with-udevdir=$(out)/lib/udev" @@ -44,9 +56,11 @@ stdenv.mkDerivation rec { "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0" ]; - meta = { - homepage = http://www.freedesktop.org/wiki/Software/udisks; - description = "A daemon and command-line utility for querying and manipulating storage devices"; - platforms = stdenv.lib.platforms.linux; + meta = with stdenv.lib; { + description = "A daemon, tools and libraries to access and manipulate disks, storage devices and technologies"; + homepage = https://www.freedesktop.org/wiki/Software/udisks/; + license = licenses.gpl2Plus; # lgpl2Plus for the library, gpl2Plus for the tools & daemon + maintainers = with maintainers; []; + platforms = platforms.linux; }; } diff --git a/pkgs/os-specific/linux/udisks/fix-paths.patch b/pkgs/os-specific/linux/udisks/fix-paths.patch new file mode 100644 index 0000000000000..125fcf83a6861 --- /dev/null +++ b/pkgs/os-specific/linux/udisks/fix-paths.patch @@ -0,0 +1,151 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,6 +1,6 @@ + ## Process this file with automake to produce Makefile.in + +-SHELL = /bin/bash ++SHELL = @bash@ + .SHELLFLAGS = -o pipefail -c + + PYTHON ?= python3 +--- a/data/80-udisks2.rules ++++ b/data/80-udisks2.rules +@@ -17,9 +17,9 @@ + # + # TODO: file bug against mdadm(8) to have --export-prefix option that can be used with e.g. UDISKS_MD_MEMBER + # +-SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="raid", ENV{ID_FS_TYPE}=="linux_raid_member", ENV{UDISKS_MD_MEMBER_LEVEL}=="", IMPORT{program}="/bin/sh -c '/sbin/mdadm --examine --export $tempnode | /bin/sed s/^MD_/UDISKS_MD_MEMBER_/g'" ++SUBSYSTEM=="block", ENV{ID_FS_USAGE}=="raid", ENV{ID_FS_TYPE}=="linux_raid_member", ENV{UDISKS_MD_MEMBER_LEVEL}=="", IMPORT{program}="@sh@ -c '@mdadm@ --examine --export $tempnode | @sed@ s/^MD_/UDISKS_MD_MEMBER_/g'" + +-SUBSYSTEM=="block", KERNEL=="md*", ENV{DEVTYPE}!="partition", IMPORT{program}="/bin/sh -c '/sbin/mdadm --detail --export $tempnode | /bin/sed s/^MD_/UDISKS_MD_/g'" ++SUBSYSTEM=="block", KERNEL=="md*", ENV{DEVTYPE}!="partition", IMPORT{program}="@sh@ -c '@mdadm@ --detail --export $tempnode | @sed@ s/^MD_/UDISKS_MD_/g'" + + LABEL="udisks_probe_end" + +--- a/modules/zram/udiskslinuxmanagerzram.c ++++ b/modules/zram/udiskslinuxmanagerzram.c +@@ -250,7 +250,7 @@ + + g_snprintf (tmp, 255, "zram%" G_GUINT64_FORMAT, i); + filename = g_build_filename (PACKAGE_ZRAMCONF_DIR, tmp, NULL); +- contents = g_strdup_printf ("#!/bin/bash\n\n" ++ contents = g_strdup_printf ("#!@bash@\n\n" + "ZRAM_NUM_STR=%" G_GUINT64_FORMAT "\n" + "ZRAM_DEV_SIZE=%" G_GUINT64_FORMAT "\n" + "SWAP=n\n", +--- a/src/tests/install-udisks/runtest.sh ++++ b/src/tests/install-udisks/runtest.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!@bash@ + # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # +--- a/src/tests/integration-test ++++ b/src/tests/integration-test +@@ -414,7 +414,7 @@ + f.write('KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ' + 'ATTRS{model}=="scsi_debug*", ' + 'ENV{ID_CDROM_MEDIA}=="?*", ' +- 'IMPORT{program}="/sbin/blkid -o udev -p -u noraid $tempnode"\n') ++ 'IMPORT{program}="@blkid@ -o udev -p -u noraid $tempnode"\n') + # reload udev + subprocess.call('sync; pkill --signal HUP udevd || ' + 'pkill --signal HUP systemd-udevd', +@@ -1079,7 +1079,7 @@ + self.assertFalse(os.access(f, os.X_OK)) + + f = os.path.join(mount_point, 'simple.exe') +- shutil.copy('/bin/bash', f) ++ shutil.copy('@bash@', f) + self.assertTrue(os.access(f, os.R_OK)) + self.assertTrue(os.access(f, os.W_OK)) + self.assertTrue(os.access(f, os.X_OK)) +@@ -1092,7 +1092,7 @@ + self.assertFalse(os.access(f, os.X_OK)) + + f = os.path.join(mount_point, 'subdir', 'subdir.exe') +- shutil.copy('/bin/bash', f) ++ shutil.copy('@bash@', f) + self.assertTrue(os.access(f, os.R_OK)) + self.assertTrue(os.access(f, os.W_OK)) + self.assertTrue(os.access(f, os.X_OK)) +--- a/src/tests/storadectl/runtest.sh ++++ b/src/tests/storadectl/runtest.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!@bash@ + # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # +--- a/src/tests/test.c ++++ b/src/tests/test.c +@@ -71,7 +71,7 @@ + { + UDisksSpawnedJob *job; + +- job = udisks_spawned_job_new ("/bin/true", NULL, getuid (), geteuid (), NULL, NULL); ++ job = udisks_spawned_job_new ("@true@", NULL, getuid (), geteuid (), NULL, NULL); + udisks_spawned_job_start (job); + _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_success), NULL); + g_object_unref (job); +@@ -84,10 +84,10 @@ + { + UDisksSpawnedJob *job; + +- job = udisks_spawned_job_new ("/bin/false", NULL, getuid (), geteuid (), NULL, NULL); ++ job = udisks_spawned_job_new ("@false@", NULL, getuid (), geteuid (), NULL, NULL); + udisks_spawned_job_start (job); + _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure), +- (gpointer) "Command-line `/bin/false' exited with non-zero exit status 1: "); ++ (gpointer) "Command-line `@false@' exited with non-zero exit status 1: "); + g_object_unref (job); + } + +@@ -119,7 +119,7 @@ + + cancellable = g_cancellable_new (); + g_cancellable_cancel (cancellable); +- job = udisks_spawned_job_new ("/bin/true", NULL, getuid (), geteuid (), NULL, cancellable); ++ job = udisks_spawned_job_new ("@true@", NULL, getuid (), geteuid (), NULL, cancellable); + udisks_spawned_job_start (job); + _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure), + (gpointer) "Operation was cancelled (g-io-error-quark, 19)"); +@@ -145,7 +145,7 @@ + GCancellable *cancellable; + + cancellable = g_cancellable_new (); +- job = udisks_spawned_job_new ("/bin/sleep 0.5", NULL, getuid (), geteuid (), NULL, cancellable); ++ job = udisks_spawned_job_new ("@sleep@ 0.5", NULL, getuid (), geteuid (), NULL, cancellable); + udisks_spawned_job_start (job); + g_timeout_add (10, on_timeout, cancellable); /* 10 msec */ + g_main_loop_run (loop); +@@ -199,7 +199,7 @@ + { + UDisksSpawnedJob *job; + +- job = udisks_spawned_job_new ("/bin/sleep 1000", NULL, getuid (), geteuid (), NULL, NULL /* GCancellable */); ++ job = udisks_spawned_job_new ("@sleep@ 1000", NULL, getuid (), geteuid (), NULL, NULL /* GCancellable */); + udisks_spawned_job_start (job); + g_object_unref (job); + } +--- a/src/udiskslinuxfsinfo.c ++++ b/src/udiskslinuxfsinfo.c +@@ -211,7 +211,7 @@ + NULL, + FALSE, /* supports_online_label_rename */ + FALSE, /* supports_owners */ +- "parted --script $DEVICE mktable msdos", ++ "@parted@ --script $DEVICE mktable msdos", + NULL, + }, + { +@@ -220,7 +220,7 @@ + NULL, + FALSE, /* supports_online_label_rename */ + FALSE, /* supports_owners */ +- "parted --script $DEVICE mktable gpt", ++ "@parted@ --script $DEVICE mktable gpt", + NULL, + }, + /* empty */ diff --git a/pkgs/os-specific/linux/udisks/force-path.patch b/pkgs/os-specific/linux/udisks/force-path.patch deleted file mode 100644 index 16c7ea5322fa5..0000000000000 --- a/pkgs/os-specific/linux/udisks/force-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -ruN udisks-2.1.0.orig/src/main.c udisks-2.1.0/src/main.c ---- udisks-2.1.0.orig/src/main.c 2013-04-02 10:43:41.629332135 +0000 -+++ udisks-2.1.0/src/main.c 2013-04-02 11:04:55.635342823 +0000 -@@ -140,8 +140,7 @@ - } - } - -- if (g_getenv ("PATH") == NULL) -- g_setenv ("PATH", "/usr/bin:/bin:/usr/sbin:/sbin", TRUE); -+ g_setenv ("PATH", "@path@", TRUE); - - udisks_notice ("udisks daemon version %s starting", PACKAGE_VERSION); - From c33abb3c63f8dc571a3843b71b2e7bf44f8bbb86 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sun, 25 Feb 2018 23:27:38 +0100 Subject: [PATCH 5/5] udisks-2: make bin path for parted, also fix mkfs.* and *label programs --- pkgs/os-specific/linux/udisks/2-default.nix | 16 +++++++++------ pkgs/os-specific/linux/udisks/fix-paths.patch | 20 ------------------- .../os-specific/linux/udisks/force-path.patch | 13 ++++++++++++ 3 files changed, 23 insertions(+), 26 deletions(-) create mode 100644 pkgs/os-specific/linux/udisks/force-path.patch diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix index def74ba4c8302..179054450fbb2 100644 --- a/pkgs/os-specific/linux/udisks/2-default.nix +++ b/pkgs/os-specific/linux/udisks/2-default.nix @@ -2,6 +2,7 @@ , gnome3, gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash , expat, libxslt, docbook_xsl, utillinux, mdadm, libgudev, libblockdev, parted , gobjectIntrospection, docbook_xml_dtd_43 +, libxfs, f2fs-tools, dosfstools, e2fsprogs, btrfs-progs, exfat, nilfs-utils, udftools, ntfs3g }: let @@ -21,15 +22,18 @@ in stdenv.mkDerivation rec { patches = [ (substituteAll { src = ./fix-paths.patch; - parted = "${parted}/bin/parted"; - mdadm = "${mdadm}/bin/mdadm"; - blkid = "${utillinux}/bin/blkid"; - sh = "${bash}/bin/sh"; bash = "${bash}/bin/bash"; + blkid = "${utillinux}/bin/blkid"; + false = "${coreutils}/bin/false"; + mdadm = "${mdadm}/bin/mdadm"; sed = "${gnused}/bin/sed"; - true = "${coreutils}/bin/true"; + sh = "${bash}/bin/sh"; sleep = "${coreutils}/bin/sleep"; - false = "${coreutils}/bin/false"; + true = "${coreutils}/bin/true"; + }) + (substituteAll { + src = ./force-path.patch; + path = stdenv.lib.makeBinPath [ btrfs-progs coreutils dosfstools e2fsprogs exfat f2fs-tools nilfs-utils libxfs ntfs3g parted utillinux ]; }) ]; diff --git a/pkgs/os-specific/linux/udisks/fix-paths.patch b/pkgs/os-specific/linux/udisks/fix-paths.patch index 125fcf83a6861..c2744c3b42e14 100644 --- a/pkgs/os-specific/linux/udisks/fix-paths.patch +++ b/pkgs/os-specific/linux/udisks/fix-paths.patch @@ -129,23 +129,3 @@ udisks_spawned_job_start (job); g_object_unref (job); } ---- a/src/udiskslinuxfsinfo.c -+++ b/src/udiskslinuxfsinfo.c -@@ -211,7 +211,7 @@ - NULL, - FALSE, /* supports_online_label_rename */ - FALSE, /* supports_owners */ -- "parted --script $DEVICE mktable msdos", -+ "@parted@ --script $DEVICE mktable msdos", - NULL, - }, - { -@@ -220,7 +220,7 @@ - NULL, - FALSE, /* supports_online_label_rename */ - FALSE, /* supports_owners */ -- "parted --script $DEVICE mktable gpt", -+ "@parted@ --script $DEVICE mktable gpt", - NULL, - }, - /* empty */ diff --git a/pkgs/os-specific/linux/udisks/force-path.patch b/pkgs/os-specific/linux/udisks/force-path.patch new file mode 100644 index 0000000000000..16c7ea5322fa5 --- /dev/null +++ b/pkgs/os-specific/linux/udisks/force-path.patch @@ -0,0 +1,13 @@ +diff -ruN udisks-2.1.0.orig/src/main.c udisks-2.1.0/src/main.c +--- udisks-2.1.0.orig/src/main.c 2013-04-02 10:43:41.629332135 +0000 ++++ udisks-2.1.0/src/main.c 2013-04-02 11:04:55.635342823 +0000 +@@ -140,8 +140,7 @@ + } + } + +- if (g_getenv ("PATH") == NULL) +- g_setenv ("PATH", "/usr/bin:/bin:/usr/sbin:/sbin", TRUE); ++ g_setenv ("PATH", "@path@", TRUE); + + udisks_notice ("udisks daemon version %s starting", PACKAGE_VERSION); +