diff options
-rw-r--r-- | pkgs/os-specific/linux/lvm2/default.nix | 13 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/purity.patch | 55 |
2 files changed, 63 insertions, 5 deletions
diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix index ae4b962715c97..037a3d227c461 100644 --- a/pkgs/os-specific/linux/lvm2/default.nix +++ b/pkgs/os-specific/linux/lvm2/default.nix @@ -1,27 +1,30 @@ { stdenv, fetchurl, pkgconfig, udev }: let - v = "2.02.86"; + v = "2.02.87"; in stdenv.mkDerivation { name = "lvm2-${v}"; - + src = fetchurl { url = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${v}.tgz"; - sha256 = "0bam8ampdqn4xx2agrvh5vn4xdi0gb9lmfsm31fm302y52jsyz2m"; + sha256 = "04d605dac9r0yz9khx9pq6a8jdsf9arda2rz1a2d1qr3jhlw4kvg"; }; - + configureFlags = "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib"; buildInputs = [ pkgconfig udev ]; - + + patches = [ ./purity.patch ]; + # To prevent make install from failing. preInstall = "installFlags=\"OWNER= GROUP= confdir=$out/etc\""; meta = { homepage = http://sourceware.org/lvm2/; descriptions = "Tools to support Logical Volume Management (LVM) on Linux"; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/os-specific/linux/lvm2/purity.patch b/pkgs/os-specific/linux/lvm2/purity.patch new file mode 100644 index 0000000000000..8446e8e9ee9d6 --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/purity.patch @@ -0,0 +1,55 @@ +TODO: fix path to blkid as well. + +Currently we set it to /sbin/blkid because in nixos we fix a lot of references +to /sbin/blkid anyway. + +diff --git a/udev/10-dm.rules.in b/udev/10-dm.rules.in +index 605e088..8865d54 100644 +--- a/udev/10-dm.rules.in ++++ b/udev/10-dm.rules.in +@@ -19,9 +19,8 @@ KERNEL=="device-mapper", NAME="(DM_DIR)/control" + SUBSYSTEM!="block", GOTO="dm_end" + KERNEL!="dm-[0-9]*", GOTO="dm_end" + +-# Set proper sbin path, /sbin has higher priority than /usr/sbin. +-ENV{DM_SBIN_PATH}="/sbin" +-TEST!="$env{DM_SBIN_PATH}/dmsetup", ENV{DM_SBIN_PATH}="/usr/sbin" ++# Set proper sbin path. Exit if dmsetup is not present. ++ENV{DM_SBIN_PATH}="(sbindir)" + TEST!="$env{DM_SBIN_PATH}/dmsetup", GOTO="dm_end" + + # Device created, major and minor number assigned - "add" event generated. +diff --git a/udev/13-dm-disk.rules b/udev/13-dm-disk.rules +index 271ca22..cdc583f 100644 +--- a/udev/13-dm-disk.rules ++++ b/udev/13-dm-disk.rules +@@ -19,7 +19,7 @@ ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}" + + ENV{DM_SUSPENDED}=="1", GOTO="dm_end" + +-IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode" ++IMPORT{program}="/sbin/blkid -o udev -p $tempnode" + ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100" + ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" + ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" +diff --git a/udev/Makefile.in b/udev/Makefile.in +index 11635bb..49cf732 100644 +--- a/udev/Makefile.in ++++ b/udev/Makefile.in +@@ -12,6 +12,7 @@ + # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + srcdir = @srcdir@ ++sbindir = @sbindir@ + top_srcdir = @top_srcdir@ + top_builddir = @top_builddir@ + +@@ -26,7 +27,7 @@ include $(top_builddir)/make.tmpl + vpath %.rules $(srcdir) + + %.rules: %.rules.in +- $(SED) -e "s/(DM_DIR)/$(DM_DIR)/" $< >$@ ++ $(SED) -e "s/(DM_DIR)/$(DM_DIR)/" -e "s|(sbindir)|$(sbindir)|" $< >$@ + + %_install: %.rules + $(INSTALL_DATA) -D $< $(udevdir)/$(<F) |