Browse Source

lvm2: correct PKGV for package libdevmapper

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>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Changqing Li 1 month ago
parent
commit
d500cc9747
1 changed files with 23 additions and 0 deletions
  1. 23 0
      meta-oe/recipes-support/lvm2/lvm2.inc

+ 23 - 0
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)} \