diff mbox series

[meta-oe] lvm2: correct PKGV for package libdevmapper

Message ID 20250415023031.1042056-1-changqing.li@windriver.com
State Accepted
Headers show
Series [meta-oe] lvm2: correct PKGV for package libdevmapper | expand

Commit Message

Changqing Li April 15, 2025, 2:30 a.m. UTC
From: Changqing Li <changqing.li@windriver.com>

Refer [1] about relations about recipe lvm2 and libdevmapper,
package libdevmapper is generated by recipe lvm2. And lvm2 and
libdevmapper has different release version, refer [2], VERSION is
for lvm2, and VERSION_DM is for libdevmapper. Refer following way in
configure.ac to get PKGV of libdevmapper:
[snip of configure.ac]
DM_LIB_PATCHLEVEL=$($AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}' "$srcdir"/VERSION_DM)
[snip]

Other distros like ubuntu, suse also use VERSION_DM as version of libdevmapper

[1] https://git.openembedded.org/meta-openembedded/commit/?h=master-next&id=3f64779eae2d8312f569bee863f90ec4f8176e6c
[2] https://sourceware.org/git/?p=lvm2.git;a=tree

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 meta-oe/recipes-support/lvm2/lvm2.inc | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
diff mbox series

Patch

diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc
index ffa6a9a15d..bff075d400 100644
--- a/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -26,6 +26,29 @@  UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\_\d+)+)"
 
 inherit autotools-brokensep pkgconfig systemd
 
+def get_dm_version(p):
+    import re
+
+    fn = p + '/VERSION_DM'
+    try:
+        f = open(fn, 'r')
+    except IOError:
+        return None
+
+    lines = f.readlines()
+    f.close()
+    for line in lines:
+        m = re.match(r'(\w+)[-. ](\w+)[-. ](\w+)', line.strip())
+        if m:
+            return ".".join([m.group(1), m.group(2), m.group(3)])
+
+    return None
+
+DM_VERSION = '${@get_dm_version("${S}")}'
+python do_package:prepend() {
+    d.setVar('PKGV:libdevmapper', d.getVar("DM_VERSION"))
+}
+
 LVM2_PACKAGECONFIG = "dmeventd"
 LVM2_PACKAGECONFIG:append:class-target = " \
     ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \