9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
128 lines
4.2 KiB
Nix
128 lines
4.2 KiB
Nix
{ lib, stdenv
|
|
, fetchpatch
|
|
, fetchurl
|
|
, pkg-config
|
|
, util-linux
|
|
, 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" + lib.optionalString enableDmeventd "with-dmeventd";
|
|
version = "2.03.10";
|
|
|
|
src = fetchurl {
|
|
url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz";
|
|
sha256 = "1l0fkn9abrgk5mfn6jfh9qhdr86b59l1c5pk6lp8jh0491d69las";
|
|
};
|
|
|
|
nativeBuildInputs = [ pkg-config ];
|
|
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"
|
|
] ++ lib.optionals (!enableCmdlib) [
|
|
"--bindir=${placeholder "bin"}/bin"
|
|
"--sbindir=${placeholder "bin"}/bin"
|
|
"--libdir=${placeholder "lib"}/lib"
|
|
] ++ lib.optional enableCmdlib "--enable-cmdlib"
|
|
++ lib.optionals enableDmeventd [
|
|
"--enable-dmeventd"
|
|
"--with-dmeventd-pidfile=/run/dmeventd/pid"
|
|
"--with-default-dm-run-dir=/run/dmeventd"
|
|
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
|
|
"ac_cv_func_malloc_0_nonnull=yes"
|
|
"ac_cv_func_realloc_0_nonnull=yes"
|
|
] ++
|
|
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 = 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 = 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" ] ++ 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"
|
|
] ++ lib.optionals (enableCmdlib != true) [
|
|
"bin"
|
|
"lib"
|
|
];
|
|
|
|
postInstall = lib.optionalString (enableCmdlib != true) ''
|
|
moveToOutput lib/libdevmapper.so $lib
|
|
'';
|
|
|
|
passthru.tests.installer = nixosTests.installer.lvm;
|
|
|
|
meta = with 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 ];
|
|
};
|
|
}
|