lvm2: libdevicemapper package needs udev rules and dmsetup

Applications like kpartx and cryptsetup were broken by moving only
libdevicemapper itself into a separate package: as a result of that
change, lvm2 was not getting pulled into images anymore although
libdevicemapper depends on dmsetup and udev rules to be fully
functional.

For example, "kpartx -as" started to hang while waiting for the udev
rules to trigger, which is what creates the /dev/mapper/ entries for
the new partitions (see also
https://github.com/docker/docker/issues/22025#issuecomment-243943728).

Putting udev rules and dmsetup also into libdevicemapper is perhaps
counter-intuitive, but necessary to keep the package functioning. A
full lvm2 installation is guaranteed to pull them in, too, both
because of implicit library dependencies and (just to be sure) an
explicit RDEPENDS.

lvm2-native doesn't have packages, so this RDEPENDS must be limited to
the target case.

Signed-off-by: Patrick Ohly <patrick.ohly@intel.com>
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Patrick Ohly 2017-03-20 16:14:06 +01:00 committed by Martin Jansa
parent af279a8e74
commit 269d009a81

View File

@ -84,14 +84,17 @@ SYSTEMD_AUTO_ENABLE = "disable"
TARGET_CC_ARCH += "${LDFLAGS}"
FILES_${PN} += "${libdir}/device-mapper/*.so ${nonarch_base_libdir}/udev"
FILES_${PN} += "${libdir}/device-mapper/*.so"
FILES_${PN}-scripts = " \
${sbindir}/blkdeactivate \
${sbindir}/fsadm \
${sbindir}/lvmconf \
${sbindir}/lvmdump \
"
FILES_libdevmapper = "${libdir}/libdevmapper.so.*"
# 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 \