1HOMEPAGE = "https://www.sourceware.org/lvm2/"
2SECTION = "utils"
3DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
4LICENSE = "GPL-2.0-only & LGPL-2.1-only"
5LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
6                    file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
7
8DEPENDS += "libaio"
9
10SRC_URI = "git://sourceware.org/git/lvm2.git;branch=main \
11           file://lvm.conf \
12           file://0001-implement-libc-specific-reopen_stream.patch \
13           file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \
14           file://0001-Avoid-bashisms-in-init-scripts.patch \
15           file://0005-do-not-build-manual.patch \
16           file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \
17           file://reproducible-build.patch \
18           file://0001-configure.ac-check-egrep.patch \
19           file://0001-include-libgen.h-for-basename.patch \
20           "
21
22SRCREV = "016e469caf856f1eb8dde39df0d1aa2e74225aed"
23S = "${WORKDIR}/git"
24
25UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\_\d+)+)"
26
27inherit autotools-brokensep pkgconfig systemd
28
29LVM2_PACKAGECONFIG = "dmeventd"
30LVM2_PACKAGECONFIG:append:class-target = " \
31    ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
32"
33
34# odirect is always enabled because there currently is a bug in
35# lib/device/dev-io.c which prevents compiling without it. It is
36# better to stick to configurations that were actually tested by
37# upstream...
38PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}"
39
40PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
41PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct"
42PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
43PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
44# NOTE: Add thin-provisioning-tools only if your distro policy allows GPL-3.0 license
45PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools"
46
47# Unset user/group to unbreak install.
48EXTRA_OECONF = "--with-user= \
49                --with-group= \
50                --enable-realtime \
51                --enable-cmdlib \
52                --enable-pkgconfig \
53                --with-usrlibdir=${libdir} \
54                --with-systemdsystemunitdir=${systemd_system_unitdir} \
55                --disable-thin_check_needs_check \
56                --with-thin-check=${sbindir}/thin_check \
57                --with-thin-dump=${sbindir}/thin_dump \
58                --with-thin-repair=${sbindir}/thin_repair \
59                --with-thin-restore=${sbindir}/thin_restore \
60"
61
62# gold doesn't like multiple dm_bitset_parse_list definitions in libdm/.exported_symbols.DM_1_02_138 and libdm/.exported_symbols.DM_1_02_129
63# after it was uncommented in the later in 2.03.12 with https://github.com/lvmteam/lvm2/commit/60eb608d66c2056a78e81f27db3da14139d9faab
64LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd", '', d)}"
65