diff options
author | Alyssa Ross <hi@alyssa.is> | 2022-05-31 09:59:33 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2022-05-31 09:59:57 +0000 |
commit | 9ff36293d1e428cd7bf03e8d4b03611b6d361c28 (patch) | |
tree | 1ab51a42b868c55b83f6ccdb80371b9888739dd9 /pkgs/os-specific/linux/lvm2 | |
parent | 1c4fcd0d4b0541e674ee56ace1053e23e562cc80 (diff) | |
parent | ddc3c396a51918043bb0faa6f676abd9562be62c (diff) | |
download | nixpkgs-archive.tar nixpkgs-archive.tar.gz nixpkgs-archive.tar.bz2 nixpkgs-archive.tar.lz nixpkgs-archive.tar.xz nixpkgs-archive.tar.zst nixpkgs-archive.zip |
Last good Nixpkgs for Weston+nouveau? archive
I came this commit hash to terwiz[m] on IRC, who is trying to figure out what the last version of Spectrum that worked on their NUC with Nvidia graphics is.
Diffstat (limited to 'pkgs/os-specific/linux/lvm2')
-rw-r--r-- | pkgs/os-specific/linux/lvm2/2_02.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/2_03.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/common.nix | 146 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch | 53 | ||||
-rw-r--r-- | pkgs/os-specific/linux/lvm2/no-shared.diff | 25 |
5 files changed, 232 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/lvm2/2_02.nix b/pkgs/os-specific/linux/lvm2/2_02.nix new file mode 100644 index 00000000000..56ab613afd2 --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/2_02.nix @@ -0,0 +1,4 @@ +import ./common.nix { + version = "2.02.187"; + sha256 = "sha256-Dg1SGoY6XbJEDy4edie6grcCc65KsLvhMIUdsNWOWvE="; +} diff --git a/pkgs/os-specific/linux/lvm2/2_03.nix b/pkgs/os-specific/linux/lvm2/2_03.nix new file mode 100644 index 00000000000..73f1e9fbdee --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/2_03.nix @@ -0,0 +1,4 @@ +import ./common.nix { + version = "2.03.15"; + sha256 = "17n9xl01by7dcbjwjnr6b4rrkp2frz8hwnjl59svsyp13sjq6llk"; +} diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix new file mode 100644 index 00000000000..07e8c9cb02d --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/common.nix @@ -0,0 +1,146 @@ +{ version, sha256 }: + +{ lib, stdenv +, fetchpatch +, fetchurl +, pkg-config +, util-linux +, libuuid +, libaio +, enableCmdlib ? false +, enableDmeventd ? false +, udevSupport ? !stdenv.hostPlatform.isStatic, udev ? null +, onlyLib ? stdenv.hostPlatform.isStatic +, 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"; + inherit version; + + src = fetchurl { + url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz"; + inherit sha256; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libaio + ] ++ lib.optionals udevSupport [ + udev + ] ++ lib.optionals (!onlyLib) [ + libuuid + ]; + + 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 udevSupport [ + "--enable-udev_rules" + "--enable-udev_sync" + ] ++ lib.optionals stdenv.hostPlatform.isStatic [ + "--enable-static_link" + ]; + + preConfigure = '' + sed -i /DEFAULT_SYS_DIR/d Makefile.in + sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in + '' + lib.optionalString (lib.versionOlder version "2.03.15") '' + 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" + ''; + + postConfigure = '' + sed -i 's|^#define LVM_CONFIGURE_LINE.*$|#define LVM_CONFIGURE_LINE "<removed>"|g' ./include/configure.h + ''; + + patches = lib.optionals (lib.versionOlder version "2.03.15") [ + # Musl fixes from Alpine. + ./fix-stdio-usage.patch + (fetchpatch { + name = "mallinfo.patch"; + url = "https://git.alpinelinux.org/aports/plain/main/lvm2/mallinfo.patch?h=3.7-stable&id=31bd4a8c2dc00ae79a821f6fe0ad2f23e1534f50"; + sha256 = "0g6wlqi215i5s30bnbkn8w7axrs27y3bnygbpbnf64wwx7rxxlj0"; + }) + ] ++ lib.optionals stdenv.hostPlatform.isStatic [ + ./no-shared.diff + ]; + + doCheck = false; # requires root + + 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 udevSupport [ + "install_systemd_generators" + "install_systemd_units" + "install_tmpfiles_configuration" + ]; + + installPhase = lib.optionalString onlyLib '' + install -D -t $out/lib libdm/ioctl/libdevmapper.${if stdenv.hostPlatform.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 (!onlyLib && !enableCmdlib) [ + "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 ]; + }; +} diff --git a/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch b/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch new file mode 100644 index 00000000000..59666ffbad5 --- /dev/null +++ b/pkgs/os-specific/linux/lvm2/fix-stdio-usage.patch @@ -0,0 +1,53 @@ +diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c +index 296618686..96343eeb7 100644 +--- a/lib/commands/toolcontext.c ++++ b/lib/commands/toolcontext.c +@@ -1619,7 +1619,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd, + /* FIXME Make this configurable? */ + reset_lvm_errno(1); + +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + /* Set in/out stream buffering before glibc */ + if (set_buffering + #ifdef SYS_gettid +@@ -2006,7 +2006,7 @@ void destroy_toolcontext(struct cmd_context *cmd) + + if (cmd->pending_delete_mem) + dm_pool_destroy(cmd->pending_delete_mem); +-#ifndef VALGRIND_POOL ++#if !defined(VALGRIND_POOL) && defined(__GLIBC__) + if (cmd->linebuffer) { + /* Reset stream buffering to defaults */ + if (is_valid_fd(STDIN_FILENO) && +diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c +index d97ff5720..bbbda82bd 100644 +--- a/tools/lvmcmdline.c ++++ b/tools/lvmcmdline.c +@@ -3342,7 +3342,7 @@ static int _check_standard_fds(void) + int err = is_valid_fd(STDERR_FILENO); + + if (!is_valid_fd(STDIN_FILENO) && +- !(stdin = fopen(_PATH_DEVNULL, "r"))) { ++ !freopen(_PATH_DEVNULL, "r", stdin)) { + if (err) + perror("stdin stream open"); + else +@@ -3352,7 +3352,7 @@ static int _check_standard_fds(void) + } + + if (!is_valid_fd(STDOUT_FILENO) && +- !(stdout = fopen(_PATH_DEVNULL, "w"))) { ++ !freopen(_PATH_DEVNULL, "w", stdout)) { + if (err) + perror("stdout stream open"); + /* else no stdout */ +@@ -3360,7 +3360,7 @@ static int _check_standard_fds(void) + } + + if (!is_valid_fd(STDERR_FILENO) && +- !(stderr = fopen(_PATH_DEVNULL, "w"))) { ++ !freopen(_PATH_DEVNULL, "w", stderr)) { + printf("stderr stream open: %s\n", + strerror(errno)); + return 0; 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 00000000000..d40dd85dfc6 --- /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) + |