[oe] [meta-oe][PATCH 4/4] lvm2/libdevmapper: fix invoking lvcreate failed
Hongxu Jia
hongxu.jia at windriver.com
Fri May 26 07:37:32 UTC 2017
Previously, libdevmapper is separated from lvm2 in the following commit:
---
commit 7f17da154372b5ec33947766783444961e8aa67c
Author: Chen Qi <Qi.Chen at windriver.com>
Date: Mon Apr 24 16:06:41 2017 +0800
lvm2: separate libdevmapper to avoid circular dependency
---
It caused invoking lvcreate failed:
---
root at qemux86-64:~# lvm pvcreate /dev/sda
Physical volume "/dev/sda" successfully created.
root at qemux86-64:~# lvm vgcreate -s 4096K wrl /dev/sda
Volume group "wrl" successfully created
root at qemux86-64:~# lvm lvcreate -n swap -L 2293648K -y --type linear wrl
Rounding up size to full physical extent 2.19 GiB
/dev/wrl/swap: not found: device not cleared
Aborting. Failed to wipe start of new LV.
---
The lvm2 and libdevmapper should use the same PACKAGECONFIG
and EXTRA_OECONF.
And do not manually remove useless files.
Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
.../recipes-support/lvm2/libdevmapper_2.02.166.bb | 21 ++-----------
meta-oe/recipes-support/lvm2/lvm2.inc | 26 +++++++++++++++-
.../0001-explicitly-do-not-install-libdm.patch | 36 ++++++++++++++++++++++
meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb | 31 ++-----------------
4 files changed, 65 insertions(+), 49 deletions(-)
create mode 100644 meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
diff --git a/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
index fd1fc2c..3cf939d 100644
--- a/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
+++ b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.166.bb
@@ -5,27 +5,10 @@ SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655
DEPENDS += "autoconf-archive-native"
-PACKAGECONFIG = ""
-
-# Unset user/group to unbreak install.
-EXTRA_OECONF = "--with-user= \
- --with-group= \
- --enable-pkgconfig \
- --with-usrlibdir=${libdir} \
-"
-
TARGET_CC_ARCH += "${LDFLAGS}"
-do_install_append() {
- # Remove things unrelated to libdevmapper
- rm -rf ${D}${sysconfdir}
- for i in `ls ${D}${sbindir}/*`; do
- if [ $i != ${D}${sbindir}/dmsetup ]; then
- rm $i
- fi
- done
- # Remove docs
- rm -rf ${D}${datadir}
+do_install() {
+ oe_runmake 'DESTDIR=${D}' -C libdm install
}
RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc
index cb5a9e0..c2dac95 100644
--- a/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -18,11 +18,18 @@ S = "${WORKDIR}/LVM2.${PV}"
inherit autotools-brokensep pkgconfig systemd
+LVM2_PACKAGECONFIG = "dmeventd lvmetad"
+LVM2_PACKAGECONFIG_append_class-target = " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
+ thin-provisioning-tools \
+ udev \
+"
+
# odirect is always enabled because there currently is a bug in
# lib/device/dev-io.c which prevents compiling without it. It is
# better to stick to configurations that were actually tested by
# upstream...
-PACKAGECONFIG_append = " odirect"
+PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}"
PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad"
@@ -31,3 +38,20 @@ PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools"
PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev"
+
+# Unset user/group to unbreak install.
+EXTRA_OECONF = "--with-user= \
+ --with-group= \
+ --enable-realtime \
+ --enable-applib \
+ --enable-cmdlib \
+ --enable-pkgconfig \
+ --with-usrlibdir=${libdir} \
+ --with-systemdsystemunitdir=${systemd_system_unitdir} \
+ --disable-thin_check_needs_check \
+ --with-thin-check=${sbindir}/thin_check \
+ --with-thin-dump=${sbindir}/thin_dump \
+ --with-thin-repair=${sbindir}/thin_repair \
+ --with-thin-restore=${sbindir}/thin_restore \
+"
+
diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
new file mode 100644
index 0000000..e85818d
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
@@ -0,0 +1,36 @@
+From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia at windriver.com>
+Date: Thu, 25 May 2017 05:27:11 -0400
+Subject: [PATCH] explicitly do not install libdm
+
+Already have package libdevmapper which split from lvm2,
+explicitly do not do the installation here.
+
+Upstream-Status: Inappropriate [meta-oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
+---
+ libdm/Makefile.in | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libdm/Makefile.in b/libdm/Makefile.in
+index 3c9a4ce..45c91c6 100644
+--- a/libdm/Makefile.in
++++ b/libdm/Makefile.in
+@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes")
+ INSTALL_TYPE += install_pkgconfig
+ endif
+
+-install: $(INSTALL_TYPE) install_include
++install:
++ echo "Do not install device mappler in lvm2"
+
+-install_device-mapper: install
++install_device-mapper:
++ echo "Do not install device mappler in lvm2"
+
+ install_include: $(srcdir)/libdevmapper.h
+ $(INSTALL_DATA) -D $< $(includedir)/$(<F)
+--
+2.8.1
+
diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb b/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
index 38c4414..84881e7 100644
--- a/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
+++ b/meta-oe/recipes-support/lvm2/lvm2_2.02.171.bb
@@ -3,32 +3,9 @@ require lvm2.inc
SRC_URI[md5sum] = "153b7bb643eb26073274968e9026fa8f"
SRC_URI[sha256sum] = "b815a711a2fabaa5c3dc1a4a284df0268bf0f325f0fc0f5c9530c9bbb54b9964"
-DEPENDS += "autoconf-archive-native"
-
-LVM2_PACKAGECONFIG = "dmeventd lvmetad"
-LVM2_PACKAGECONFIG_append_class-target = " \
- ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
- thin-provisioning-tools \
- udev \
-"
+SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
-PACKAGECONFIG ??= "${LVM2_PACKAGECONFIG}"
-
-# Unset user/group to unbreak install.
-EXTRA_OECONF = "--with-user= \
- --with-group= \
- --enable-realtime \
- --enable-applib \
- --enable-cmdlib \
- --enable-pkgconfig \
- --with-usrlibdir=${libdir} \
- --with-systemdsystemunitdir=${systemd_system_unitdir} \
- --disable-thin_check_needs_check \
- --with-thin-check=${sbindir}/thin_check \
- --with-thin-dump=${sbindir}/thin_dump \
- --with-thin-repair=${sbindir}/thin_repair \
- --with-thin-restore=${sbindir}/thin_restore \
-"
+DEPENDS += "autoconf-archive-native"
CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
@@ -45,10 +22,6 @@ do_install_append() {
mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
rm -rf ${D}${sysconfdir}/rc.d
fi
- # Remove things related to libdevmapper
- rm -f ${D}${sbindir}/dmsetup
- rm -f ${D}${libdir}/libdevmapper.so.*
- rm -f ${D}${libdir}/libdevmapper.so ${D}${libdir}/pkgconfig/devmapper.pc ${D}${includedir}/libdevmapper.h
}
PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
--
2.8.1
More information about the Openembedded-devel
mailing list