mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-05 02:50:46 +00:00
lvm2: separate libdevmapper to avoid circular dependency
If we enable 'cryptsetup' PACKAGECONFIG for systemd, there would be circular dependency issue among 'systemd', 'cryptsetup' and 'lvm2'. cryptsetup only needs libdevmapper from lvm2. So we separte libdevmapper into a new recipe to solve this circular dependency issue. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
require lvm2.inc
|
||||
|
||||
SRC_URI[md5sum] = "c5a54ee0b86703daaad6e856439e115a"
|
||||
SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655051b94"
|
||||
|
||||
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}
|
||||
}
|
||||
|
||||
RRECOMMENDS_${PN} += "lvm2-udevrules"
|
||||
@@ -18,15 +18,6 @@ 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 \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= "${LVM2_PACKAGECONFIG}"
|
||||
|
||||
# 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
|
||||
@@ -40,69 +31,3 @@ 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 \
|
||||
"
|
||||
|
||||
CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
|
||||
|
||||
do_install_append() {
|
||||
# Install machine specific configuration file
|
||||
install -d ${D}${sysconfdir}/lvm
|
||||
install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
|
||||
sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||
oe_runmake 'DESTDIR=${D}' install install_systemd_units
|
||||
sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
|
||||
else
|
||||
oe_runmake 'DESTDIR=${D}' install install_initscripts
|
||||
mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
|
||||
rm -rf ${D}${sysconfdir}/rc.d
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGE_BEFORE_PN = "${PN}-scripts libdevmapper libdevmapper-dev"
|
||||
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \
|
||||
blk-availability.service"
|
||||
SYSTEMD_AUTO_ENABLE = "disable"
|
||||
|
||||
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||
|
||||
FILES_${PN} += "${libdir}/device-mapper/*.so"
|
||||
FILES_${PN}-scripts = " \
|
||||
${sbindir}/blkdeactivate \
|
||||
${sbindir}/fsadm \
|
||||
${sbindir}/lvmconf \
|
||||
${sbindir}/lvmdump \
|
||||
"
|
||||
# Specified explicitly for the udev rules, just in case that it does not get picked
|
||||
# up automatically:
|
||||
RDEPENDS_${PN}_append_class-target = " libdevmapper"
|
||||
FILES_libdevmapper = "${sbindir}/dmsetup ${libdir}/libdevmapper.so.* ${nonarch_base_libdir}/udev/rules.d"
|
||||
FILES_libdevmapper-dev = " \
|
||||
${libdir}/libdevmapper.so \
|
||||
${libdir}/pkgconfig/devmapper.pc \
|
||||
${includedir}/libdevmapper.h \
|
||||
"
|
||||
|
||||
RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
|
||||
RDEPENDS_libdevmapper-dev = "libdevmapper (= ${EXTENDPKGV})"
|
||||
RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
|
||||
|
||||
CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
|
||||
|
||||
@@ -5,4 +5,77 @@ SRC_URI[sha256sum] = "e120b066b85b224552efda40204488c5123de068725676fd6e5c8bc655
|
||||
|
||||
DEPENDS += "autoconf-archive-native"
|
||||
|
||||
LVM2_PACKAGECONFIG = "dmeventd lvmetad"
|
||||
LVM2_PACKAGECONFIG_append_class-target = " \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
|
||||
thin-provisioning-tools \
|
||||
udev \
|
||||
"
|
||||
|
||||
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 \
|
||||
"
|
||||
|
||||
CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
|
||||
|
||||
do_install_append() {
|
||||
# Install machine specific configuration file
|
||||
install -d ${D}${sysconfdir}/lvm
|
||||
install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
|
||||
sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
|
||||
oe_runmake 'DESTDIR=${D}' install install_systemd_units
|
||||
sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
|
||||
else
|
||||
oe_runmake 'DESTDIR=${D}' install install_initscripts
|
||||
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"
|
||||
|
||||
SYSTEMD_PACKAGES = "${PN}"
|
||||
SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
|
||||
${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \
|
||||
blk-availability.service"
|
||||
SYSTEMD_AUTO_ENABLE = "disable"
|
||||
|
||||
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||
|
||||
FILES_${PN} += "${libdir}/device-mapper/*.so"
|
||||
FILES_${PN}-scripts = " \
|
||||
${sbindir}/blkdeactivate \
|
||||
${sbindir}/fsadm \
|
||||
${sbindir}/lvmconf \
|
||||
${sbindir}/lvmdump \
|
||||
"
|
||||
# Specified explicitly for the udev rules, just in case that it does not get picked
|
||||
# up automatically:
|
||||
FILES_${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
|
||||
RDEPENDS_${PN}_append_class-target = " libdevmapper"
|
||||
|
||||
RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
|
||||
RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
|
||||
|
||||
CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
Reference in New Issue
Block a user