aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix128
1 files changed, 128 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
new file mode 100644
index 000000000000..7bbd1768c043
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
@@ -0,0 +1,128 @@
+{ stdenv
+, fetchpatch
+, fetchurl
+, pkgconfig
+, utillinux
+, libuuid
+, thin-provisioning-tools, libaio
+, enableCmdlib ? false
+, enableDmeventd ? false
+, udev ? null
+, nixosTests
+}:
+
+# configure: error: --enable-dmeventd requires --enable-cmdlib to be used as well
+assert enableDmeventd -> enableCmdlib;
+
+stdenv.mkDerivation rec {
+ pname = "lvm2" + stdenv.lib.optionalString enableDmeventd "with-dmeventd";
+ version = "2.03.10";
+
+ src = fetchurl {
+ url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz";
+ sha256 = "1l0fkn9abrgk5mfn6jfh9qhdr86b59l1c5pk6lp8jh0491d69las";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ udev libuuid thin-provisioning-tools libaio ];
+
+ configureFlags = [
+ "--disable-readline"
+ "--enable-pkgconfig"
+ "--with-default-locking-dir=/run/lock/lvm"
+ "--with-default-run-dir=/run/lvm"
+ "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+ ] ++ stdenv.lib.optionals (!enableCmdlib) [
+ "--bindir=${placeholder "bin"}/bin"
+ "--sbindir=${placeholder "bin"}/bin"
+ "--libdir=${placeholder "lib"}/lib"
+ ] ++ stdenv.lib.optional enableCmdlib "--enable-cmdlib"
+ ++ stdenv.lib.optionals enableDmeventd [
+ "--enable-dmeventd"
+ "--with-dmeventd-pidfile=/run/dmeventd/pid"
+ "--with-default-dm-run-dir=/run/dmeventd"
+ ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "ac_cv_func_malloc_0_nonnull=yes"
+ "ac_cv_func_realloc_0_nonnull=yes"
+ ] ++
+ stdenv.lib.optionals (udev != null) [
+ "--enable-udev_rules"
+ "--enable-udev_sync"
+ ];
+
+ preConfigure = ''
+ sed -i /DEFAULT_SYS_DIR/d Makefile.in
+ sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
+ 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
+ substituteInPlace udev/69-dm-lvm-metad.rules.in \
+ --replace "(BINDIR)/systemd-run" /run/current-system/systemd/bin/systemd-run
+
+ substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+ substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+ '';
+
+ postConfigure = ''
+ sed -i 's|^#define LVM_CONFIGURE_LINE.*$|#define LVM_CONFIGURE_LINE "<removed>"|g' ./include/configure.h
+ '';
+
+
+ patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [
+ (fetchpatch {
+ name = "fix-stdio-usage.patch";
+ url = "https://git.alpinelinux.org/aports/plain/main/lvm2/fix-stdio-usage.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
+ sha256 = "0m6wr6qrvxqi2d2h054cnv974jq1v65lqxy05g1znz946ga73k3p";
+ })
+ (fetchpatch {
+ name = "mallinfo.patch";
+ url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mallinfo.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
+ sha256 = "0g6wlqi215i5s30bnbkn8w7axrs27y3bnygbpbnf64wwx7rxxlj0";
+ })
+ (fetchpatch {
+ name = "mlockall-default-config.patch";
+ url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mlockall-default-config.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50";
+ sha256 = "1ivbj3sphgf8n1ykfiv5rbw7s8dgnj5jcr9jl2v8cwf28lkacw5l";
+ })
+ ];
+
+ doCheck = false; # requires root
+
+ makeFlags = stdenv.lib.optionals (udev != null) [
+ "SYSTEMD_GENERATOR_DIR=$(out)/lib/systemd/system-generators"
+ ];
+
+ # To prevent make install from failing.
+ installFlags = [ "OWNER=" "GROUP=" "confdir=$(out)/etc" ];
+
+ # Install systemd stuff.
+ installTargets = [ "install" ] ++ stdenv.lib.optionals (udev != null) [
+ "install_systemd_generators"
+ "install_systemd_units"
+ "install_tmpfiles_configuration"
+ ];
+
+ # only split bin and lib out from out if cmdlib isn't enabled
+ outputs = [
+ "out"
+ "dev"
+ "man"
+ ] ++ stdenv.lib.optionals (enableCmdlib != true) [
+ "bin"
+ "lib"
+ ];
+
+ postInstall = stdenv.lib.optionalString (enableCmdlib != true) ''
+ moveToOutput lib/libdevmapper.so $lib
+ '';
+
+ passthru.tests.installer = nixosTests.installer.lvm;
+
+ meta = with stdenv.lib; {
+ homepage = "http://sourceware.org/lvm2/";
+ description = "Tools to support Logical Volume Management (LVM) on Linux";
+ platforms = platforms.linux;
+ license = with licenses; [ gpl2 bsd2 lgpl21 ];
+ maintainers = with maintainers; [ raskin ajs124 ];
+ };
+}