diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/os-specific/linux/udisks | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/udisks')
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/1-default.nix | 44 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/2-default.nix | 78 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/fix-paths.patch | 131 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/force-path.patch | 13 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/glibc.patch | 25 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/no-pci-db.patch | 13 | ||||
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/udisks/purity.patch | 57 |
7 files changed, 361 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/udisks/1-default.nix b/nixpkgs/pkgs/os-specific/linux/udisks/1-default.nix new file mode 100644 index 000000000000..d48c21f6b52a --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/udisks/1-default.nix @@ -0,0 +1,44 @@ +{ stdenv, fetchurl, pkgconfig, sg3_utils, udev, glib, dbus, dbus-glib +, polkit, parted, lvm2, libatasmart, intltool, libuuid, mdadm +, libxslt, docbook_xsl, utillinux, libgudev }: + +stdenv.mkDerivation rec { + name = "udisks-1.0.5"; + + src = fetchurl { + url = "https://hal.freedesktop.org/releases/${name}.tar.gz"; + sha256 = "0wbg3jrv8limdgvcygf4dqin3y6d30y9pcmmk711vq571vmq5v7j"; + }; + + patches = [ ./purity.patch ./no-pci-db.patch ./glibc.patch ]; + + preConfigure = + '' + configureFlagsArray+=(--with-systemdsystemunitdir=$out/lib/systemd/system) + ''; + + postPatch = + '' + sed -e 's,/sbin/mdadm,${mdadm}&,g' -e "s,@slashlibdir@,$out/lib,g" -i data/80-udisks.rules + + substituteInPlace src/main.c --replace \ + "/sbin:/bin:/usr/sbin:/usr/bin" \ + "${utillinux}/bin:${mdadm}/sbin:/var/run/current-system/sw/bin:/var/run/current-system/sw/bin" + ''; + + buildInputs = + [ sg3_utils udev glib dbus dbus-glib polkit parted libgudev + lvm2 libatasmart intltool libuuid libxslt docbook_xsl + ]; + + nativeBuildInputs = [ pkgconfig ]; + + configureFlags = [ "--localstatedir=/var" "--enable-lvm2" ]; + + meta = with stdenv.lib; { + homepage = http://www.freedesktop.org/wiki/Software/udisks; + description = "A daemon and command-line utility for querying and manipulating storage devices"; + platforms = platforms.linux; + license = with licenses; [ gpl2 lgpl2Plus ]; + }; +} diff --git a/nixpkgs/pkgs/os-specific/linux/udisks/2-default.nix b/nixpkgs/pkgs/os-specific/linux/udisks/2-default.nix new file mode 100644 index 000000000000..e0340a0b7849 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/udisks/2-default.nix @@ -0,0 +1,78 @@ +{ 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 +, gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43 +, xfsprogs, f2fs-tools, dosfstools, e2fsprogs, btrfs-progs, exfat, nilfs-utils, ntfs3g +}: + +let + version = "2.8.1"; +in stdenv.mkDerivation rec { + name = "udisks-${version}"; + + src = fetchFromGitHub { + owner = "storaged-project"; + repo = "udisks"; + rev = name; + sha256 = "073iqa0pwa7ab0qw33h3ic89508a78incmg6rq914d6br7s030zy"; + }; + + outputs = [ "out" "man" "dev" "devdoc" ]; + + patches = [ + (substituteAll { + src = ./fix-paths.patch; + bash = "${bash}/bin/bash"; + blkid = "${utillinux}/bin/blkid"; + false = "${coreutils}/bin/false"; + mdadm = "${mdadm}/bin/mdadm"; + sed = "${gnused}/bin/sed"; + sh = "${bash}/bin/sh"; + sleep = "${coreutils}/bin/sleep"; + true = "${coreutils}/bin/true"; + }) + (substituteAll { + src = ./force-path.patch; + path = stdenv.lib.makeBinPath [ btrfs-progs coreutils dosfstools e2fsprogs exfat f2fs-tools nilfs-utils xfsprogs ntfs3g parted utillinux ]; + }) + ]; + + nativeBuildInputs = [ + pkgconfig gnome3.gnome-common libtool intltool gobject-introspection + gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl + ]; + + postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl '' + substituteInPlace udisks/udisksclient.c \ + --replace 'defined( __GNUC_PREREQ)' 1 \ + --replace '__GNUC_PREREQ(4,6)' 1 + ''; + + buildInputs = [ + expat libgudev libblockdev 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" + ]; + + makeFlags = [ + "INTROSPECTION_GIRDIR=$(dev)/share/gir-1.0" + "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0" + ]; + + doCheck = false; # fails + + 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/nixpkgs/pkgs/os-specific/linux/udisks/fix-paths.patch b/nixpkgs/pkgs/os-specific/linux/udisks/fix-paths.patch new file mode 100644 index 000000000000..c2744c3b42e1 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/udisks/fix-paths.patch @@ -0,0 +1,131 @@ +--- 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); + } diff --git a/nixpkgs/pkgs/os-specific/linux/udisks/force-path.patch b/nixpkgs/pkgs/os-specific/linux/udisks/force-path.patch new file mode 100644 index 000000000000..16c7ea5322fa --- /dev/null +++ b/nixpkgs/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); + diff --git a/nixpkgs/pkgs/os-specific/linux/udisks/glibc.patch b/nixpkgs/pkgs/os-specific/linux/udisks/glibc.patch new file mode 100644 index 000000000000..85ef5208049d --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/udisks/glibc.patch @@ -0,0 +1,25 @@ +From 0aa652a7b257f98f9e8e7dc7b0ddc9bc62377d09 Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev <tetromino@gentoo.org> +Date: Fri, 29 May 2015 21:09:39 -0400 +Subject: [PATCH] Bug 90778 - fix build with newer glibc versions + +https://bugs.freedesktop.org/show_bug.cgi?id=90778 +--- + src/helpers/job-drive-detach.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c +index eeafcab..d122a1f 100644 +--- a/src/helpers/job-drive-detach.c ++++ b/src/helpers/job-drive-detach.c +@@ -18,6 +18,7 @@ + * + */ + ++#include <sys/stat.h> + #include <stdio.h> + #include <string.h> + #include <errno.h> +-- +2.4.2 + diff --git a/nixpkgs/pkgs/os-specific/linux/udisks/no-pci-db.patch b/nixpkgs/pkgs/os-specific/linux/udisks/no-pci-db.patch new file mode 100644 index 000000000000..b323b515c40e --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/udisks/no-pci-db.patch @@ -0,0 +1,13 @@ +Systemd no longer has the pci-db program. + +diff -ru -x '*~' udisks-1.0.4-orig/data/80-udisks.rules udisks-1.0.4/data/80-udisks.rules +--- udisks-1.0.4-orig/data/80-udisks.rules 2011-08-25 23:31:20.000000000 +0200 ++++ udisks-1.0.4/data/80-udisks.rules 2012-12-13 13:06:52.189650854 +0100 +@@ -3,7 +3,6 @@ + + # import names for PCI storage controllers + # +-SUBSYSTEM=="pci", ACTION=="add|change", ENV{ID_MODEL_FROM_DATABASE}=="", ATTR{class}=="0x01*", IMPORT{program}="pci-db %p" + + # Set eSATA port type for known eSATA CardBus adapters - first we want to ensure + # the device is on a cardbus controller (upper PCI device) - then we check diff --git a/nixpkgs/pkgs/os-specific/linux/udisks/purity.patch b/nixpkgs/pkgs/os-specific/linux/udisks/purity.patch new file mode 100644 index 000000000000..bf1121ddb659 --- /dev/null +++ b/nixpkgs/pkgs/os-specific/linux/udisks/purity.patch @@ -0,0 +1,57 @@ +diff --git a/data/80-udisks.rules b/data/80-udisks.rules +index 6720394..60b67ed 100644 +--- a/data/80-udisks.rules ++++ b/data/80-udisks.rules +@@ -23,7 +23,7 @@ LABEL="ata_port_cardbus_end" + # this is the case we can trigger a 'change' on the sas_expander device + # when the bsg device appears) + # +-SUBSYSTEM=="sas_expander", ACTION=="add|change", IMPORT{program}="udisks-probe-sas-expander /sys/%p" ++SUBSYSTEM=="sas_expander", ACTION=="add|change", IMPORT{program}="@slashlibdir@/udev/udisks-probe-sas-expander /sys/%p" + + ############################################################################################################## + +@@ -54,7 +54,7 @@ ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="udisks_end" + # import UDISKS_DM_* and UDISKS_LVM2_* properties - the long-term plan is to make the lvm2 and + # device-mapper packages provide this information + # +-KERNEL=="dm-*", IMPORT{program}="udisks-dm-export %M %m" ++KERNEL=="dm-*", IMPORT{program}="@slashlibdir@/udev/udisks-dm-export %M %m" + + # Make udevd synthesize a 'change' uevent when last opener of a rw-fd closes the fd - this + # should be part of the device-mapper rules +@@ -63,7 +63,7 @@ KERNEL=="dm-*", OPTIONS+="watch" + ############################################################################################################## + # Probe LVM2 Physical Volumes - this will eventually be part of the LVM2 package + +-ENV{ID_FS_TYPE}=="LVM2_member", TEST=="/lib/udev/udisks-lvm-pv-export", IMPORT{program}="udisks-lvm-pv-export $env{ID_FS_UUID}" ++ENV{ID_FS_TYPE}=="LVM2_member", TEST=="@slashlibdir@/udev/udisks-lvm-pv-export", IMPORT{program}="@slashlibdir@/udev/udisks-lvm-pv-export $env{ID_FS_UUID}" + + ############################################################################################################## + +@@ -85,7 +85,7 @@ KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="", GOTO="probe_parttable_e + + # scan for partition tables both on whole-disk and partitions + # +-IMPORT{program}="udisks-part-id $tempnode" ++IMPORT{program}="@slashlibdir@/udev/udisks-part-id $tempnode" + + LABEL="probe_parttable_end" + +@@ -109,13 +109,13 @@ LABEL="md_end" + # + + # USB ATA enclosures with a SAT layer +-KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", IMPORT{program}="udisks-probe-ata-smart $tempnode" ++KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", IMPORT{program}="@slashlibdir@/udev/udisks-probe-ata-smart $tempnode" + + # ATA disks driven by libata +-KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", IMPORT{program}="udisks-probe-ata-smart $tempnode" ++KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="ata", ENV{DEVTYPE}=="disk", IMPORT{program}="@slashlibdir@/udev/udisks-probe-ata-smart $tempnode" + + # ATA disks connected via SAS (not driven by libata) +-KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_VENDOR}=="ATA", IMPORT{program}="udisks-probe-ata-smart $tempnode" ++KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_VENDOR}=="ATA", IMPORT{program}="@slashlibdir@/udev/udisks-probe-ata-smart $tempnode" + + + # Example rule for tagging a device with a specific media type. Where and |