xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.11.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1require lvm2.inc
2
3SRC_URI += " \
4            file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \
5           "
6
7DEPENDS += "autoconf-archive-native"
8
9inherit multilib_script
10
11MULTILIB_SCRIPTS = "${PN}:${sysconfdir}/lvm/lvm.conf"
12
13CACHED_CONFIGUREVARS += "MODPROBE_CMD=${base_sbindir}/modprobe"
14
15do_install:append() {
16    # Install machine specific configuration file
17    install -d ${D}${sysconfdir}/lvm
18    install -m 0644 ${WORKDIR}/lvm.conf ${D}${sysconfdir}/lvm/lvm.conf
19    sed -i -e 's:@libdir@:${libdir}:g' ${D}${sysconfdir}/lvm/lvm.conf
20    # We don't want init scripts/systemd units for native SDK utilities
21    if [ "${PN}" != "nativesdk-lvm2" ]; then
22        if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
23            oe_runmake 'DESTDIR=${D}' install install_systemd_units
24            sed -i -e 's:/usr/bin/true:${base_bindir}/true:g' ${D}${systemd_system_unitdir}/blk-availability.service
25        else
26            oe_runmake 'DESTDIR=${D}' install install_initscripts
27            mv ${D}${sysconfdir}/rc.d/init.d ${D}${sysconfdir}/init.d
28            rm -rf ${D}${sysconfdir}/rc.d
29        fi
30    fi
31}
32
33PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules"
34
35SYSTEMD_PACKAGES = "${PN}"
36SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \
37                         blk-availability.service"
38SYSTEMD_AUTO_ENABLE = "disable"
39
40TARGET_CC_ARCH += "${LDFLAGS}"
41
42EXTRA_OECONF:append:class-nativesdk = " --with-confdir=${sysconfdir}"
43
44DEPENDS += "util-linux"
45LVM2_PACKAGECONFIG:append:class-target = " \
46    udev \
47"
48PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev,${PN}-udevrules"
49
50PACKAGES =+ "libdevmapper"
51FILES:libdevmapper = " \
52    ${libdir}/libdevmapper.so.* \
53    ${sbindir}/dmsetup \
54    ${sbindir}/dmstats \
55"
56
57FILES:${PN} += " \
58    ${libdir}/device-mapper/*.so \
59    ${systemd_system_unitdir}/lvm2-pvscan@.service \
60"
61
62FILES:${PN}-scripts = " \
63    ${sbindir}/blkdeactivate \
64    ${sbindir}/fsadm \
65    ${sbindir}/lvmconf \
66    ${sbindir}/lvmdump \
67"
68# Specified explicitly for the udev rules, just in case that it does not get picked
69# up automatically:
70FILES:${PN}-udevrules = "${nonarch_base_libdir}/udev/rules.d"
71RDEPENDS:${PN}-udevrules = "libdevmapper"
72RDEPENDS:${PN}:append:class-target = " libdevmapper"
73RDEPENDS:${PN}:append:class-nativesdk = " libdevmapper"
74
75RDEPENDS:${PN}-scripts = "${PN} (= ${EXTENDPKGV}) \
76                          bash \
77                          util-linux-lsblk \
78                          util-linux-findmnt \
79                          coreutils \
80"
81RRECOMMENDS:${PN}:class-target = "${PN}-scripts (= ${EXTENDPKGV})"
82
83CONFFILES:${PN} += "${sysconfdir}/lvm/lvm.conf"
84
85SYSROOT_PREPROCESS_FUNCS:append = " remove_libdevmapper_sysroot_preprocess"
86remove_libdevmapper_sysroot_preprocess() {
87    rm -f ${SYSROOT_DESTDIR}${libdir}/libdevmapper.so* \
88       ${SYSROOT_DESTDIR}${sbindir}/dmsetup \
89       ${SYSROOT_DESTDIR}${sbindir}/dmstats \
90       ${SYSROOT_DESTDIR}${includedir}/libdevmapper.h \
91       ${SYSROOT_DESTDIR}${libdir}/pkgconfig/devmapper.pc
92}
93
94BBCLASSEXTEND = "native nativesdk"
95