diff options
Diffstat (limited to 'pkgs/os-specific/linux/lvm2')
-rw-r--r-- | pkgs/os-specific/linux/lvm2/2_02.nix | 2 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/2_03.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/common.nix | 43 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/no-shared.diff | 25 |
4 files changed, 61 insertions, 13 deletions
diff --git a/pkgs/os-specific/linux/lvm2/2_02.nix b/pkgs/os-specific/linux/lvm2/2_02.nix index 3566a01178b2a..56ab613afd24d 100644 --- a/pkgs/os-specific/linux/lvm2/2_02.nix +++ b/pkgs/os-specific/linux/lvm2/2_02.nix @@ -1,4 +1,4 @@ import ./common.nix { version = "2.02.187"; - sha256Hash = "sha256-Dg1SGoY6XbJEDy4edie6grcCc65KsLvhMIUdsNWOWvE="; + sha256 = "sha256-Dg1SGoY6XbJEDy4edie6grcCc65KsLvhMIUdsNWOWvE="; } diff --git a/pkgs/os-specific/linux/lvm2/2_03.nix b/pkgs/os-specific/linux/lvm2/2_03.nix index d6456b46e5184..555ff6b0dc148 100644 --- a/pkgs/os-specific/linux/lvm2/2_03.nix +++ b/pkgs/os-specific/linux/lvm2/2_03.nix @@ -1,4 +1,4 @@ import ./common.nix { - version = "2.03.12"; - sha256Hash = "1shczwfd0888dchjiaqzd48ampm6f8y0ngsqd99fy4nxlbr5q1vn"; + version = "2.03.14"; + sha256 = "0p5077h3z7mrr0b49ikmhlhrs4v4qb530raypk3y72ja125bqqsa"; } diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix index 2d09c48073d18..0749292531bb9 100644 --- a/pkgs/os-specific/linux/lvm2/common.nix +++ b/pkgs/os-specific/linux/lvm2/common.nix @@ -1,4 +1,4 @@ -{ version, sha256Hash }: +{ version, sha256 }: { lib, stdenv , fetchpatch @@ -9,7 +9,8 @@ , libaio , enableCmdlib ? false , enableDmeventd ? false -, udev ? null +, udevSupport ? !stdenv.targetPlatform.isStatic, udev ? null +, onlyLib ? stdenv.targetPlatform.isStatic , nixosTests }: @@ -22,11 +23,17 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz"; - sha256 = sha256Hash; + inherit sha256; }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ udev libuuid libaio ]; + buildInputs = [ + libaio + ] ++ lib.optionals udevSupport [ + udev + ] ++ lib.optionals (!onlyLib) [ + libuuid + ]; configureFlags = [ "--disable-readline" @@ -46,10 +53,11 @@ stdenv.mkDerivation rec { ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "ac_cv_func_malloc_0_nonnull=yes" "ac_cv_func_realloc_0_nonnull=yes" - ] ++ - lib.optionals (udev != null) [ + ] ++ lib.optionals udevSupport [ "--enable-udev_rules" "--enable-udev_sync" + ] ++ lib.optionals stdenv.targetPlatform.isStatic [ + "--enable-static_link" ]; preConfigure = '' @@ -58,9 +66,13 @@ stdenv.mkDerivation rec { substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \ --replace /usr/bin/udevadm /run/current-system/systemd/bin/udevadm # https://github.com/lvmteam/lvm2/issues/36 + '' + lib.optionalString (lib.versionOlder version "2.03.14") '' substituteInPlace udev/69-dm-lvm-metad.rules.in \ --replace "(BINDIR)/systemd-run" /run/current-system/systemd/bin/systemd-run - + '' + lib.optionalString (lib.versionAtLeast version "2.03.14") '' + substituteInPlace udev/69-dm-lvm.rules.in \ + --replace "/usr/bin/systemd-run" /run/current-system/systemd/bin/systemd-run + '' + '' substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system" '' + lib.optionalString (lib.versionAtLeast version "2.03") '' substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system" @@ -78,30 +90,41 @@ stdenv.mkDerivation rec { url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mallinfo.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50"; sha256 = "0g6wlqi215i5s30bnbkn8w7axrs27y3bnygbpbnf64wwx7rxxlj0"; }) + ] ++ lib.optionals stdenv.targetPlatform.isStatic [ + ./no-shared.diff ]; doCheck = false; # requires root - makeFlags = lib.optionals (udev != null) [ + makeFlags = lib.optionals udevSupport [ "SYSTEMD_GENERATOR_DIR=$(out)/lib/systemd/system-generators" + ] ++ lib.optionals onlyLib [ + "libdm.device-mapper" ]; # To prevent make install from failing. installFlags = [ "OWNER=" "GROUP=" "confdir=$(out)/etc" ]; # Install systemd stuff. - installTargets = [ "install" ] ++ lib.optionals (udev != null) [ + installTargets = [ "install" ] ++ lib.optionals udevSupport [ "install_systemd_generators" "install_systemd_units" "install_tmpfiles_configuration" ]; + installPhase = lib.optionalString onlyLib '' + install -D -t $out/lib libdm/ioctl/libdevmapper.${if stdenv.targetPlatform.isStatic then "a" else "so"} + make -C libdm install_include + make -C libdm install_pkgconfig + ''; + # only split bin and lib out from out if cmdlib isn't enabled outputs = [ "out" + ] ++ lib.optionals (!onlyLib) [ "dev" "man" - ] ++ lib.optionals (enableCmdlib != true) [ + ] ++ lib.optionals (!onlyLib && !enableCmdlib) [ "bin" "lib" ]; diff --git a/pkgs/os-specific/linux/lvm2/no-shared.diff b/pkgs/os-specific/linux/lvm2/no-shared.diff new file mode 100644 index 0000000000000..d40dd85dfc626 --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/no-shared.diff @@ -0,0 +1,25 @@ +diff --git a/libdm/Makefile.in b/libdm/Makefile.in +index 66ec39513..ab7123dae 100644 +--- a/libdm/Makefile.in ++++ b/libdm/Makefile.in +@@ -44,7 +44,6 @@ endif + + LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX) + LIB_VERSION = $(LIB_VERSION_DM) +-TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION) + + CFLOW_LIST = $(SOURCES) + CFLOW_LIST_TARGET = libdevmapper.cflow +diff --git a/make.tmpl.in b/make.tmpl.in +index e7780e8d4..ca4aa9fdd 100644 +--- a/make.tmpl.in ++++ b/make.tmpl.in +@@ -346,7 +346,7 @@ SUBDIRS.cflow := $(SUBDIRS:=.cflow) + SUBDIRS.clean := $(SUBDIRS:=.clean) + SUBDIRS.distclean := $(SUBDIRS:=.distclean) + +-TARGETS += $(LIB_SHARED) $(LIB_STATIC) ++TARGETS += $(LIB_STATIC) + + all: $(SUBDIRS) $(TARGETS) + |