Date: Friday, May 7, 2021 @ 22:27:45 Author: eworm Revision: 414585 archrelease: copy trunk to testing-x86_64
Added: lvm2/repos/testing-x86_64/ lvm2/repos/testing-x86_64/0001-pvscan-wait-for-udevd.patch (from rev 414584, lvm2/trunk/0001-pvscan-wait-for-udevd.patch) lvm2/repos/testing-x86_64/11-dm-initramfs.rules (from rev 414584, lvm2/trunk/11-dm-initramfs.rules) lvm2/repos/testing-x86_64/PKGBUILD (from rev 414584, lvm2/trunk/PKGBUILD) lvm2/repos/testing-x86_64/lvm2_install (from rev 414584, lvm2/trunk/lvm2_install) ----------------------------------+ 0001-pvscan-wait-for-udevd.patch | 28 +++++++ 11-dm-initramfs.rules | 3 PKGBUILD | 138 +++++++++++++++++++++++++++++++++++++ lvm2_install | 51 +++++++++++++ 4 files changed, 220 insertions(+) Copied: lvm2/repos/testing-x86_64/0001-pvscan-wait-for-udevd.patch (from rev 414584, lvm2/trunk/0001-pvscan-wait-for-udevd.patch) =================================================================== --- testing-x86_64/0001-pvscan-wait-for-udevd.patch (rev 0) +++ testing-x86_64/0001-pvscan-wait-for-udevd.patch 2021-05-07 22:27:45 UTC (rev 414585) @@ -0,0 +1,28 @@ +From 675d59e9e17a55f11699471896fd6f417ea1e07b Mon Sep 17 00:00:00 2001 +From: Christian Hesse <m...@eworm.de> +Date: Thu, 11 Feb 2021 12:01:48 +0100 +Subject: [PATCH 1/1] pvscan: wait for udevd + +Running the scan before udevd finished startup may result in failure. +This has been reported for Arch Linux [0] and proper ordering fixes +the issue. + +[0] https://bugs.archlinux.org/task/69611 + +Signed-off-by: Christian Hesse <m...@eworm.de> +--- + scripts/lvm2-pvscan.service.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/scripts/lvm2-pvscan.service.in b/scripts/lvm2-pvscan.service.in +index 09753e8c9..7b4ace551 100644 +--- a/scripts/lvm2-pvscan.service.in ++++ b/scripts/lvm2-pvscan.service.in +@@ -4,6 +4,7 @@ Documentation=man:pvscan(8) + DefaultDependencies=no + StartLimitIntervalSec=0 + BindsTo=dev-block-%i.device ++After=systemd-udevd.service + Before=shutdown.target + Conflicts=shutdown.target + Copied: lvm2/repos/testing-x86_64/11-dm-initramfs.rules (from rev 414584, lvm2/trunk/11-dm-initramfs.rules) =================================================================== --- testing-x86_64/11-dm-initramfs.rules (rev 0) +++ testing-x86_64/11-dm-initramfs.rules 2021-05-07 22:27:45 UTC (rev 414585) @@ -0,0 +1,3 @@ +# needed with new udev/mkinitcpio and as implemented in dracut: +# <http://git.kernel.org/?p=boot/dracut/dracut.git;a=commitdiff;h=12b9736228f2b34c15a9cb63be79cf7b6e865b54> +SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", ACTION=="add|change", OPTIONS="db_persist" Copied: lvm2/repos/testing-x86_64/PKGBUILD (from rev 414584, lvm2/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2021-05-07 22:27:45 UTC (rev 414585) @@ -0,0 +1,138 @@ +# Maintainer: Eric Bélanger <e...@archlinux.org> +# Maintainer: Thomas Bächler <tho...@archlinux.org> + +pkgbase=lvm2 +pkgname=('lvm2' 'device-mapper') +_tag='e6809e10a27865fbd6d67980a348946a2867182d' # git rev-parse v${pkgver//./_} +pkgver=2.03.12 +pkgrel=1 +arch=('x86_64') +url='https://sourceware.org/lvm2/' +license=('GPL2' 'LGPL2.1') +makedepends=('git' 'systemd' 'thin-provisioning-tools') +validpgpkeys=('88437EF5C077BD113D3B7224228191C1567E2C17' # Alasdair G Kergon <a...@redhat.com> + 'D501A478440AE2FD130A1BE8B9112431E509039F') # Marian Csontos <marian.cson...@gmail.com> +source=("git+https://sourceware.org/git/lvm2.git#tag=${_tag}?signed" + '0001-pvscan-wait-for-udevd.patch' + 'lvm2_install' + '11-dm-initramfs.rules') +sha256sums=('SKIP' + '69976608c4e8217f504c4ce964ab21cea722134cd9b3d0109283b3e2f3a33fbe' + '1c06b4f9ea244b6d0824ab1ad8cc0336047238e33b6d14b61b8447e6f2243615' + 'e10f24b57582d6e2da71f7c80732a62e0ee2e3b867fe84591ccdb53e80fa92e0') + +_backports=( +) + +prepare() { + cd lvm2/ + + patch -Np1 < ../0001-pvscan-wait-for-udevd.patch + + local _c + for _c in "${_backports[@]}"; do + git log --oneline -1 "${_c}" + git show "${_c}" -- ':(exclude)WHATS_NEW' | git apply + done + + # remove install section from systemd units that are enabled by default + sed -i -e '/^\[Install\]$/,$d' \ + scripts/dm_event_systemd_red_hat.socket.in \ + scripts/lvm2_lvmpolld_systemd_red_hat.socket.in \ + scripts/lvm2_monitoring_systemd_red_hat.service.in +} + +build() { + local _CONFIGUREOPTS=( + CONFIG_SHELL=/bin/bash + --prefix=/usr + --sbindir=/usr/bin + --sysconfdir=/etc + --localstatedir=/var + --enable-cmdlib + --enable-dmeventd + --enable-lvmpolld + --enable-pkgconfig + --enable-readline + --enable-udev_rules + --enable-udev_sync + --with-cache=internal + --with-default-dm-run-dir=/run + --with-default-locking-dir=/run/lock/lvm + --with-default-pid-dir=/run + --with-default-run-dir=/run/lvm + --with-systemdsystemunitdir=/usr/lib/systemd/system + --with-thin=internal + --with-udev-prefix=/usr + ) + + # build system requires bash: + # https://www.redhat.com/archives/linux-lvm/2020-January/msg00004.html + # https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Defining-Variables.html + export CONFIG_SHELL=/bin/bash + + cp -a lvm2/ lvm2-initramfs/ + + cd lvm2/ + + ./configure \ + "${_CONFIGUREOPTS[@]}" \ + --enable-udev-systemd-background-jobs + make + + # Build legacy udev rule for initramfs + cd ../lvm2-initramfs + ./configure \ + "${_CONFIGUREOPTS[@]}" \ + --enable-udev-systemd-background-jobs=no + cd udev + make 69-dm-lvm-metad.rules +} + +package_device-mapper() { + pkgdesc="Device mapper userspace library and tools" + url="http://sourceware.org/dm/" + depends=('glibc' 'systemd-libs' 'libudev.so') + provides=('libdevmapper.so' + 'libdevmapper-event.so') + + cd lvm2/ + + make DESTDIR="${pkgdir}" install_device-mapper + # extra udev rule for device-mapper in initramfs + install -D -m0644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/usr/lib/initcpio/udev/11-dm-initramfs.rules" + # Install dmeventd socket and service + make DESTDIR="${pkgdir}" install_systemd_units + rm -f "${pkgdir}/usr/lib/systemd/system/"{blk-availability.service,lvm2-*} + install -d -m0755 "${pkgdir}/usr/lib/systemd/system/sockets.target.wants" + ln -sf ../dm-event.socket "${pkgdir}/usr/lib/systemd/system/sockets.target.wants/dm-event.socket" +} + +package_lvm2() { + pkgdesc="Logical Volume Manager 2 utilities" + depends=('bash' "device-mapper>=${pkgver}" 'systemd-libs' + 'libudev.so' 'util-linux-libs' 'libblkid.so' 'readline' 'libreadline.so' + 'thin-provisioning-tools') + conflicts=('lvm' 'mkinitcpio<0.7') + backup=('etc/lvm/lvm.conf' + 'etc/lvm/lvmlocal.conf') + options=('!makeflags') + + cd lvm2/ + + make DESTDIR="${pkgdir}" install_lvm2 + # /etc directories + install -d "${pkgdir}"/etc/lvm/{archive,backup} + # mkinitcpio hook + install -D -m0644 "${srcdir}/lvm2_install" "${pkgdir}/usr/lib/initcpio/install/lvm2" + ln -s /usr/lib/initcpio/install/lvm2 "${pkgdir}/usr/lib/initcpio/install/sd-lvm2" + # extra udev rule for non-systemd initramfs + install -D -m0644 "${srcdir}/lvm2-initramfs/udev/69-dm-lvm-metad.rules" "${pkgdir}/usr/lib/initcpio/udev/69-dm-lvm-metad.rules" + # systemd support + make DESTDIR="${pkgdir}" install_systemd_units + rm -f "${pkgdir}/usr/lib/systemd/system/"dm-* + install -d -m0755 "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants" + ln -sf ../lvm2-lvmpolld.socket "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket" + ln -sf ../lvm2-monitor.service "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants/lvm2-monitor.service" + make DESTDIR="${pkgdir}" install_systemd_generators +} Copied: lvm2/repos/testing-x86_64/lvm2_install (from rev 414584, lvm2/trunk/lvm2_install) =================================================================== --- testing-x86_64/lvm2_install (rev 0) +++ testing-x86_64/lvm2_install 2021-05-07 22:27:45 UTC (rev 414585) @@ -0,0 +1,51 @@ +#!/usr/bin/bash + +build() { + local mod + local symlink + + # device mapper modules + for mod in dm-mod dm-snapshot dm-mirror dm-cache dm-cache-smq dm-thin-pool; do + add_module "$mod" + done + + if command -v add_systemd_unit >/dev/null; then + # device mapper and lvm2 systemd units + # binaries and libraries are pull automatically, except ... + add_systemd_unit "lvm2-pvscan@.service" + fi + + # binaries from lvm2 + add_binary "lvm" + + # beinaries from device-mapper + add_binary "dmsetup" + + # from thin-provisioning-tools + add_binary "pdata_tools" + for symlink in cache_{check,dump,metadata_size,repair,restore} thin_{check,delta,dump,ls,metadata_size,repair,restore,rmap,trim}; do + add_symlink "/usr/bin/${symlink}" "pdata_tools" + done + + # udev rules and lvm configuration + add_file "/usr/lib/udev/rules.d/10-dm.rules" + add_file "/usr/lib/udev/rules.d/11-dm-lvm.rules" + add_file "/usr/lib/udev/rules.d/13-dm-disk.rules" + add_file "/usr/lib/udev/rules.d/95-dm-notify.rules" + add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules" + add_file "/etc/lvm/lvm.conf" + sed -i '/^\smonitoring =/s/1/0/' "${BUILDROOT}/etc/lvm/lvm.conf" + + # this udev rule is specific for systemd and non-systemd systems + if command -v add_systemd_unit >/dev/null; then + add_file "/usr/lib/udev/rules.d/69-dm-lvm-metad.rules" + else + add_file "/usr/lib/initcpio/udev/69-dm-lvm-metad.rules" "/usr/lib/udev/rules.d/69-dm-lvm-metad.rules" + fi +} + +help() { + cat <<HELPEOF +This hook enables LVM2 volumes in initramfs. +HELPEOF +}