Subject: [PATCH] gnu: lvm2: Remove systemd rule.
From: Simon Tournier <[email-masked]>
To: [email-masked]
Cc: Yann Dupont <[email-masked]>
Date: Tue, 17 Oct 2023 10:57:36 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

From: Yann Dupont <[email-masked]>

Fixes <https://issues.guix.gnu.org/65177>.
Reported by Adrien 'neox' Bourmault <[email-masked]>.

* gnu/packages/patches/lvm2-no-systemd.patch: New file.
* gnu/packages/linux.scm (lvm2)[source]: Apply patch.
* gnu/local.mk: Register new patch.
---
 gnu/local.mk                               |  1 +
 gnu/packages/linux.scm                     |  1 +
 gnu/packages/patches/lvm2-no-systemd.patch | 22 ++++++++++++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 gnu/packages/patches/lvm2-no-systemd.patch

Hi,

Here is the patch from Yann sent in patch 65177 [1].  I have just reformatted
it and preprare it for merging if it is correct.  I know nothing about udev.

1: https://issues.guix.gnu.org/65177#3

Cheers,
simon

diff --git a/gnu/local.mk b/gnu/local.mk
index daacd786a7..3d74c3e228 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1625,6 +1625,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mcrypt-CVE-2012-4527.patch			\
   %D%/packages/patches/libmemcached-build-with-gcc7.patch	\
   %D%/packages/patches/libmhash-hmac-fix-uaf.patch		\
+  %D%/packages/patches/lvm2-no-systemd.patch    		\
   %D%/packages/patches/maturin-no-cross-compile.patch		\
   %D%/packages/patches/mecab-variable-param.patch		\
   %D%/packages/patches/memtest86+-build-reproducibly.patch	\
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 6bb6d62182..6882244e92 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -4527,6 +4527,7 @@ (define-public lvm2
               (sha256
                (base32
                 "0z6w6bknhwh1n3qfkb5ij6x57q3wjf28lq3l8kh7rkhsplinjnjc"))
+              (patches (search-patches "lvm2-no-systemd.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
diff --git a/gnu/packages/patches/lvm2-no-systemd.patch b/gnu/packages/patches/lvm2-no-systemd.patch
new file mode 100644
index 0000000000..46b4dcffbb
--- /dev/null
+++ b/gnu/packages/patches/lvm2-no-systemd.patch
@@ -0,0 +1,22 @@
+Fixes <https://issues.guix.gnu.org/65177>.
+
+Since lvm2 2.03.14, the included udev rules use systemd-run to run vgchange
+and activate the volume group.  lvm2 was updated recently from 2.03.11 to
+2.03.21, then 2.03.22, and probably started exhibiting this behavior then.  It
+removes the indirection through systemd-run and directly run vgchange.
+
+diff --git a/udev/69-dm-lvm.rules.in b/udev/69-dm-lvm.rules.in
+index ff15681..f9e5b70 100644
+--- a/udev/69-dm-lvm.rules.in
++++ b/udev/69-dm-lvm.rules.in
+@@ -75,8 +75,8 @@ LABEL="lvm_scan"
+ # TODO: adjust the output of vgchange -aay so that
+ # it's better suited to appearing in the journal.
+ 
+-IMPORT{program}="(LVM_EXEC)/lvm pvscan --cache --listvg --checkcomplete --vgonline --autoactivation event --udevoutput --journal=output $env{DEVNAME}"
+-ENV{LVM_VG_NAME_COMPLETE}=="?*", RUN+="(SYSTEMDRUN) --no-block --property DefaultDependencies=no --unit lvm-activate-$env{LVM_VG_NAME_COMPLETE} (LVM_EXEC)/lvm vgchange -aay --autoactivation event $env{LVM_VG_NAME_COMPLETE}"
++IMPORT{program}="(LVM_EXEC)/lvm pvscan --cache --listvg
++ENV{LVM_VG_NAME_COMPLETE}=="?*", RUN+="(SYSTEMDRUN) --no-block lvm-activate-$env{LVM_VG_NAME_COMPLETE} (LVM_EXEC)/lvm vgchange -aay
+ GOTO="lvm_end"
+ 
+ LABEL="lvm_end"

base-commit: b437896e87a51cc610388d4c462893652dd773e6
-- 
2.38.1