diff --git a/meta-citadel/conf/layer.conf b/meta-citadel/conf/layer.conf index d50e0e6..904b0b6 100644 --- a/meta-citadel/conf/layer.conf +++ b/meta-citadel/conf/layer.conf @@ -8,6 +8,9 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ BBMASK += "meta-intel/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend" LICENSE_PATH += "${LAYERDIR}/licenses" +# see https://patches.openembedded.org/patch/164502/ +PREFERRED_RPROVIDER_libdevmapper = "lvm2" + BBFILE_COLLECTIONS += "citadel" BBFILE_PATTERN_citadel = "^${LAYERDIR}/" BBFILE_PRIORITY_citadel = "5" diff --git a/meta-citadel/recipes-core/systemd/systemd_%.bbappend b/meta-citadel/recipes-core/systemd/systemd_%.bbappend index 35c3204..cf40709 100644 --- a/meta-citadel/recipes-core/systemd/systemd_%.bbappend +++ b/meta-citadel/recipes-core/systemd/systemd_%.bbappend @@ -9,7 +9,7 @@ ALTERNATIVE_${PN}_remove = "resolv-conf" GROUPADD_PARAM_${PN} += "; -r kvm" PACKAGECONFIG = "\ efi acl ldconfig pam usrmerge rfkill backlight binfmt hostnamed localed logind machined myhostname \ - nss polkit randomseed seccomp timedated utmp timesyncd kmod sysusers gshadow \ + nss polkit randomseed seccomp timedated utmp timesyncd kmod sysusers gshadow cryptsetup \ " do_install_append() { diff --git a/meta-citadel/recipes-initrd/images/citadel-initramfs-image.bb b/meta-citadel/recipes-initrd/images/citadel-initramfs-image.bb index f22deaf..c8a0974 100644 --- a/meta-citadel/recipes-initrd/images/citadel-initramfs-image.bb +++ b/meta-citadel/recipes-initrd/images/citadel-initramfs-image.bb @@ -17,6 +17,7 @@ PACKAGE_INSTALL = "\ keymaps \ systemd \ systemd-initramfs \ + systemd-extra-utils \ linux-firmware-i915 \ kernel-module-arc4 \ kernel-module-ansi-cprng \ diff --git a/meta-citadel/recipes-support/cryptsetup/cryptsetup_2.0.4.bb b/meta-citadel/recipes-support/cryptsetup/cryptsetup_2.0.4.bb deleted file mode 100644 index cc7bc6e..0000000 --- a/meta-citadel/recipes-support/cryptsetup/cryptsetup_2.0.4.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes" -DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \ -device-mapper mappings. These include plain dm-crypt volumes and \ -LUKS volumes. The difference is that LUKS uses a metadata header \ -and can hence offer more features than plain dm-crypt. On the other \ -hand, the header is visible and vulnerable to damage." -HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup" -SECTION = "console" -LICENSE = "GPL-2.0-with-OpenSSL-exception" -LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326" - -DEPENDS = "util-linux libdevmapper popt libgcrypt json-c" - -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v2.0/${BP}.tar.xz" -SRC_URI[md5sum] = "ed42b31f67d05b05e392d1943d467b8d" -SRC_URI[sha256sum] = "9d3a3c7033293e0c97f0ad0501fd5b4d4913ae497cbf70cca06633ccc54b5734" - -inherit autotools gettext pkgconfig - -# Use openssl because libgcrypt drops root privileges -# if libgcrypt is linked with libcap support -PACKAGECONFIG ??= "openssl" -PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl" -PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt" - -RRECOMMENDS_${PN} = "kernel-module-aes-generic \ - kernel-module-dm-crypt \ - kernel-module-md5 \ - kernel-module-cbc \ - kernel-module-sha256-generic \ - kernel-module-xts \ -" - -EXTRA_OECONF = "--enable-static" - -FILES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-citadel/recipes-support/cryptsetup/cryptsetup_2.3.4.bb b/meta-citadel/recipes-support/cryptsetup/cryptsetup_2.3.4.bb new file mode 100644 index 0000000..b9a6b71 --- /dev/null +++ b/meta-citadel/recipes-support/cryptsetup/cryptsetup_2.3.4.bb @@ -0,0 +1,92 @@ +SUMMARY = "Manage plain dm-crypt and LUKS encrypted volumes" +DESCRIPTION = "Cryptsetup is used to conveniently setup dm-crypt managed \ +device-mapper mappings. These include plain dm-crypt volumes and \ +LUKS volumes. The difference is that LUKS uses a metadata header \ +and can hence offer more features than plain dm-crypt. On the other \ +hand, the header is visible and vulnerable to damage." +HOMEPAGE = "https://gitlab.com/cryptsetup/cryptsetup" +SECTION = "console" +LICENSE = "GPL-2.0-with-OpenSSL-exception" +LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326" + +DEPENDS = " \ + json-c \ + libdevmapper \ + popt \ + util-linux \ +" + +RDEPENDS_${PN} = " \ + libdevmapper \ +" + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz" +SRC_URI[md5sum] = "911272e73181fdc850bb4d25103a9f83" +SRC_URI[sha256sum] = "9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773" + +inherit autotools gettext pkgconfig + +# Use openssl because libgcrypt drops root privileges +# if libgcrypt is linked with libcap support +PACKAGECONFIG ??= " \ + keyring \ + cryptsetup \ + veritysetup \ + cryptsetup-reencrypt \ + integritysetup \ + ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ + kernel_crypto \ + internal-argon2 \ + blkid \ + luks-adjust-xts-keysize \ + openssl \ +" +PACKAGECONFIG_append_class-target = " \ + udev \ +" + +PACKAGECONFIG[keyring] = "--enable-keyring,--disable-keyring" +PACKAGECONFIG[fips] = "--enable-fips,--disable-fips" +PACKAGECONFIG[pwquality] = "--enable-pwquality,--disable-pwquality,libpwquality" +PACKAGECONFIG[passwdqc] = "--enable-passwdqc,--disable-passwdqc,passwdqc" +PACKAGECONFIG[cryptsetup] = "--enable-cryptsetup,--disable-cryptsetup" +PACKAGECONFIG[veritysetup] = "--enable-veritysetup,--disable-veritysetup" +PACKAGECONFIG[cryptsetup-reencrypt] = "--enable-cryptsetup-reencrypt,--disable-cryptsetup-reencrypt" +PACKAGECONFIG[integritysetup] = "--enable-integritysetup,--disable-integritysetup" +PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux" +PACKAGECONFIG[udev] = "--enable-udev,--disable-udev,,udev" +PACKAGECONFIG[kernel_crypto] = "--enable-kernel_crypto,--disable-kernel_crypto" +# gcrypt-pkbdf2 requries --with-crypto_backend=gcrypt or the flag isn't +# recognized. +PACKAGECONFIG[gcrypt-pbkdf2] = "--enable-gcrypt-pbkdf2" +PACKAGECONFIG[internal-argon2] = "--enable-internal-argon2,--disable-internal-argon2" +PACKAGECONFIG[internal-sse-argon2] = "--enable-internal-sse-argon2,--disable-internal-sse-argon2" +PACKAGECONFIG[blkid] = "--enable-blkid,--disable-blkid,util-linux" +PACKAGECONFIG[dev-random] = "--enable-dev-random,--disable-dev-random" +PACKAGECONFIG[luks-adjust-xts-keysize] = "--enable-luks-adjust-xts-keysize,--disable-luks-adjust-xts-keysize" +PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl" +PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt" +PACKAGECONFIG[nss] = "--with-crypto_backend=nss,,nss" +PACKAGECONFIG[kernel] = "--with-crypto_backend=kernel" +PACKAGECONFIG[nettle] = "--with-crypto_backend=nettle,,nettle" +PACKAGECONFIG[luks2] = "--with-default-luks-format=LUKS2,--with-default-luks-format=LUKS1" + +RRECOMMENDS_${PN} = "kernel-module-aes-generic \ + kernel-module-dm-crypt \ + kernel-module-md5 \ + kernel-module-cbc \ + kernel-module-sha256-generic \ + kernel-module-xts \ +" + +EXTRA_OECONF = "--enable-static" +# Building without largefile is not supported by upstream +EXTRA_OECONF += "--enable-largefile" +# Requires a static popt library +EXTRA_OECONF += "--disable-static-cryptsetup" +# There's no recipe for libargon2 yet +EXTRA_OECONF += "--disable-libargon2" + +FILES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/cryptsetup.conf', '', d)}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-citadel/recipes-support/libblockdev/libblockdev_%.bbappend b/meta-citadel/recipes-support/libblockdev/libblockdev_%.bbappend index dc1cfad..ef83563 100644 --- a/meta-citadel/recipes-support/libblockdev/libblockdev_%.bbappend +++ b/meta-citadel/recipes-support/libblockdev/libblockdev_%.bbappend @@ -1,2 +1,3 @@ -PACKAGECONFIG = "fs crypto parted mdraid" +PACKAGECONFIG = "fs crypto parted mdraid kmod" +DEPENDS += "systemd" diff --git a/meta-citadel/recipes-support/libblockdev/libblockdev_2.20.bb b/meta-citadel/recipes-support/libblockdev/libblockdev_2.24.bb similarity index 88% rename from meta-citadel/recipes-support/libblockdev/libblockdev_2.20.bb rename to meta-citadel/recipes-support/libblockdev/libblockdev_2.24.bb index 54a188d..99cdee5 100644 --- a/meta-citadel/recipes-support/libblockdev/libblockdev_2.20.bb +++ b/meta-citadel/recipes-support/libblockdev/libblockdev_2.24.bb @@ -8,20 +8,17 @@ SECTION = "devel/lib" LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" -inherit autotools python3native gobject-introspection - -SRCREV = "cb308566c3c5222b8422f78997a1742713b265a9" -SRC_URI = " \ - git://github.com/rhinstaller/libblockdev;branch=master \ -" +inherit autotools gobject-introspection +SRC_URI = "git://github.com/storaged-project/libblockdev;branch=2.x-branch" +SRCREV = "f5a4ba8bb298f8cbc435707d0b19b4b2ff836a8e" S = "${WORKDIR}/git" -FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" +FILES_${PN} += "${libdir}/python2.7/dist-packages ${libdir}/python3.*/site-packages" PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm" PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" -PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2" +PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python" PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2" PACKAGECONFIG[lvm-dbus] = "--with-lvm_dbus, --without-lvm_dbus, multipath-tools, lvm2" PACKAGECONFIG[dm] = "--with-dm, --without-dm, multipath-tools, lvm2" diff --git a/meta-citadel/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-citadel/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch deleted file mode 100644 index 9ab1c06..0000000 --- a/meta-citadel/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001 -From: Dengke Du -Date: Tue, 25 Oct 2016 11:55:49 +0000 -Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature - -On glibc _somehow_ this header gets pulled in indirectly - -Signed-off-by: Khem Raj -Signed-off-by: Dengke Du ---- -Upstream-Status: Pending ---- - libdaemon/server/daemon-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c -index 6af6de9..a9590e7 100644 ---- a/libdaemon/server/daemon-server.c -+++ b/libdaemon/server/daemon-server.c -@@ -18,6 +18,7 @@ - #include "daemon-server.h" - #include "daemon-log.h" - -+#include - #include - #include - #include --- -2.9.3 - diff --git a/meta-citadel/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/meta-citadel/recipes-support/lvm2/files/0005-do-not-build-manual.patch index 2124eba..7117d99 100644 --- a/meta-citadel/recipes-support/lvm2/files/0005-do-not-build-manual.patch +++ b/meta-citadel/recipes-support/lvm2/files/0005-do-not-build-manual.patch @@ -14,6 +14,11 @@ Do not build man to workaround the issue. Upstream-Status: Pending Signed-off-by: Hongxu Jia + + +Update context for lvm2 2.03.02. + +Signed-off-by: Kai Kang --- Makefile.in | 6 +++--- configure.ac | 1 - @@ -41,7 +46,7 @@ index 6a1a990..80cba91 100644 libdaemon lib tools daemons libdm \ udev po tools.distclean: test.distclean -@@ -59,7 +59,7 @@ libdm.device-mapper: include.device-mapper +@@ -65,7 +65,7 @@ libdm.device-mapper: include.device-mapper daemons.device-mapper: libdm.device-mapper tools.device-mapper: libdm.device-mapper scripts.device-mapper: include.device-mapper @@ -51,17 +56,17 @@ index 6a1a990..80cba91 100644 ifeq ("@INTL@", "yes") lib.pofile: include.pofile diff --git a/configure.ac b/configure.ac -index 9c45745..8fee4c4 100644 +index 7fd0561..4154dc0 100644 --- a/configure.ac +++ b/configure.ac -@@ -1806,7 +1806,6 @@ libdaemon/server/Makefile +@@ -1812,7 +1812,6 @@ libdaemon/server/Makefile libdm/Makefile libdm/dm-tools/Makefile libdm/libdevmapper.pc -man/Makefile po/Makefile + scripts/lvm2-pvscan.service scripts/blkdeactivate.sh - scripts/blk_availability_init_red_hat -- 2.7.4 diff --git a/meta-citadel/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/meta-citadel/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch index 0e68d62..9f9383e 100644 --- a/meta-citadel/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch +++ b/meta-citadel/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch @@ -1,6 +1,6 @@ -From 24a2c47fd01dde1710f1fa66f5c30ce7010c5956 Mon Sep 17 00:00:00 2001 +From e213ed33a28704f6f538df41a91b7ce95594a4f8 Mon Sep 17 00:00:00 2001 From: Hongxu Jia -Date: Thu, 21 Sep 2017 15:28:10 +0800 +Date: Tue, 15 Oct 2019 18:12:54 +0800 Subject: [PATCH] start lvm2-monitor.service after tmp.mount The lvm2-monitor.service reqires the existence of locking_dir @@ -9,24 +9,25 @@ So start lvm2-monitor.service after tmp.mount Upstream-Status: Inappropriate [oe specific] +Rebase to v2_03_05 Signed-off-by: Hongxu Jia --- scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in -index 22238b7..93b2bee 100644 +index 4bf744a..46766cb 100644 --- a/scripts/lvm2_monitoring_systemd_red_hat.service.in +++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in @@ -2,7 +2,7 @@ Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8) - Requires=dm-event.socket lvm2-lvmetad.socket --After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service -+After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service tmp.mount - Before=local-fs-pre.target + Requires=dm-event.socket +-After=dm-event.socket dm-event.service lvm2-activation.service ++After=dm-event.socket dm-event.service lvm2-activation.service tmp.mount + Before=local-fs-pre.target shutdown.target DefaultDependencies=no Conflicts=shutdown.target -- -1.8.3.1 +2.7.4 diff --git a/meta-citadel/recipes-support/lvm2/files/lvm.conf b/meta-citadel/recipes-support/lvm2/files/lvm.conf index 83f649d..c2bb85d 100644 --- a/meta-citadel/recipes-support/lvm2/files/lvm.conf +++ b/meta-citadel/recipes-support/lvm2/files/lvm.conf @@ -62,7 +62,7 @@ devices { cache = "/etc/lvm/.cache" # You can turn off writing this cache file by setting this to 0. - write_cache_state = 0 + write_cache_state = 1 # Advanced settings. @@ -137,7 +137,7 @@ backup { # Should we maintain a backup of the current metadata configuration ? # Use 1 for Yes; 0 for No. # Think very hard before turning this off! - backup = 0 + backup = 1 # Where shall we keep it ? # Remember to back up this directory regularly! @@ -146,7 +146,7 @@ backup { # Should we maintain an archive of old metadata configurations. # Use 1 for Yes; 0 for No. # On by default. Think very hard before turning this off. - archive = 0 + archive = 1 # Where should archived files go ? # Remember to back up this directory regularly! diff --git a/meta-citadel/recipes-support/lvm2/files/reproducible-build.patch b/meta-citadel/recipes-support/lvm2/files/reproducible-build.patch new file mode 100644 index 0000000..3f53db9 --- /dev/null +++ b/meta-citadel/recipes-support/lvm2/files/reproducible-build.patch @@ -0,0 +1,28 @@ +configure.ac: override CONFIGURE_LINE + +For reproducible binaries, we need to report a constant CONFIGURE_LINE. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater + + +--- git.orig/configure.ac ++++ git/configure.ac +@@ -15,7 +15,15 @@ AC_PREREQ(2.69) + ################################################################################ + dnl -- Process this file with autoconf to produce a configure script. + AC_INIT +-CONFIGURE_LINE="$0 $@" ++ ++dnl per reproducible-builds.org check SOURCE_DATE_EPOCH ++dnl ++if test -z "${SOURCE_DATE_EPOCH+set}" ; then ++ CONFIGURE_LINE="$0 $@" ++else ++ CONFIGURE_LINE="configure options are not available for reproducible builds" ++fi ++ + AC_CONFIG_SRCDIR([lib/device/dev-cache.h]) + AC_CONFIG_HEADERS([include/configure.h]) + diff --git a/meta-citadel/recipes-support/lvm2/libdevmapper_2.03.01.bb b/meta-citadel/recipes-support/lvm2/libdevmapper_2.03.01.bb deleted file mode 100644 index 2c4febb..0000000 --- a/meta-citadel/recipes-support/lvm2/libdevmapper_2.03.01.bb +++ /dev/null @@ -1,15 +0,0 @@ -require lvm2.inc - -SRCREV = "913c28917e62577a2ef67152b2e5159237503dda" - -DEPENDS += "autoconf-archive-native" - -TARGET_CC_ARCH += "${LDFLAGS}" - -do_install() { - oe_runmake 'DESTDIR=${D}' -C libdm install -} - -RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules" - -BBCLASSEXTEND = "native nativesdk" diff --git a/meta-citadel/recipes-support/lvm2/libdevmapper_2.03.06.bb b/meta-citadel/recipes-support/lvm2/libdevmapper_2.03.06.bb new file mode 100644 index 0000000..be558ce --- /dev/null +++ b/meta-citadel/recipes-support/lvm2/libdevmapper_2.03.06.bb @@ -0,0 +1,17 @@ +# Break circular dependencies, only populate sysroot (header, +# libraries) to other recipe for compiling, recipe lvm2 +# generates package libdevmapper +require lvm2.inc + +DEPENDS += "autoconf-archive-native" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install() { + oe_runmake 'DESTDIR=${D}' -C libdm install +} + +# Do not generate package libdevmapper +PACKAGES = "" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-citadel/recipes-support/lvm2/lvm2.inc b/meta-citadel/recipes-support/lvm2/lvm2.inc index 1961dca..3c6c7ed 100644 --- a/meta-citadel/recipes-support/lvm2/lvm2.inc +++ b/meta-citadel/recipes-support/lvm2/lvm2.inc @@ -5,19 +5,20 @@ LICENSE = "GPLv2 & LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \ file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24" -DEPENDS += "util-linux libaio" +DEPENDS += "libaio" -SRC_URI = "git://github.com/lvmteam/lvm2.git;protocol=https;branch=master \ +SRC_URI = "git://sourceware.org/git/lvm2.git \ file://lvm.conf \ file://0001-implement-libc-specific-reopen_stream.patch \ file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \ - file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \ file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \ file://0001-Avoid-bashisms-in-init-scripts.patch \ file://0005-do-not-build-manual.patch \ file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \ + file://reproducible-build.patch \ " +SRCREV = "b9391b1b9f0b73303fa21f8f92574d17ce4c2b02" S = "${WORKDIR}/git" inherit autotools-brokensep pkgconfig systemd license @@ -26,7 +27,6 @@ LVM2_PACKAGECONFIG = "dmeventd" LVM2_PACKAGECONFIG_append_class-target = " \ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \ - udev \ " # odirect is always enabled because there currently is a bug in @@ -40,7 +40,6 @@ PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct" 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= \ diff --git a/meta-citadel/recipes-support/lvm2/lvm2/0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch b/meta-citadel/recipes-support/lvm2/lvm2/0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch new file mode 100644 index 0000000..24d5b1b --- /dev/null +++ b/meta-citadel/recipes-support/lvm2/lvm2/0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch @@ -0,0 +1,32 @@ +From 93c93e3b85492e58f9451841e6079d00c497efa4 Mon Sep 17 00:00:00 2001 +From: Jiping Ma +Date: Mon, 25 Feb 2019 13:29:12 +0800 +Subject: [PATCH] "/dev/hdc: open failed: No medium found" will print out in + lvmdiskscan. + +commit [57bb46c5e7f8] introduce this issue. +"/dev/hdc: open failed: No medium found" will be print out +after run lvmdiskscan. change dev_open_readonly() +to dev_open_readonly_quiet() in fuction _dev_get_size_dev(). + +Signed-off-by: Jiping Ma +--- + lib/device/dev-io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c +index dc95131..81a66b0 100644 +--- a/lib/device/dev-io.c ++++ b/lib/device/dev-io.c +@@ -338,7 +338,7 @@ static int _dev_get_size_dev(struct device *dev, uint64_t *size) + } + + if (fd <= 0) { +- if (!dev_open_readonly(dev)) ++ if (!dev_open_readonly_quiet(dev)) + return_0; + fd = dev_fd(dev); + do_close = 1; +-- +1.9.1 + diff --git a/meta-citadel/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-citadel/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch deleted file mode 100644 index 8b805fc..0000000 --- a/meta-citadel/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 3c16d9aaa46602e7594d717d86e7f02066d21134 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia -Date: Mon, 26 Nov 2018 17:20:20 +0800 -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 ---- - libdm/Makefile.in | 6 ++++-- - libdm/dm-tools/Makefile.in | 6 ++++-- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/libdm/Makefile.in b/libdm/Makefile.in -index 8c8334a..effcf25 100644 ---- a/libdm/Makefile.in -+++ b/libdm/Makefile.in -@@ -81,9 +81,11 @@ ifeq ("@PKGCONFIG@", "yes") - INSTALL_TYPE += install_pkgconfig - endif - --install: $(INSTALL_TYPE) install_include -+install: -+ echo "Do not install device mapper in lvm2" - --install_device-mapper: install -+install_device-mapper: -+ echo "Do not install device mapper in lvm2" - - install_include: $(srcdir)/libdevmapper.h - $(INSTALL_DATA) -D $< $(includedir)/$( +Date: Mon, 2 Sep 2019 23:04:50 -0400 +Subject: [PATCH] fix command /bin/findmnt, /bin/lsblk, /bin/sort not found + +In oe-core (util-linux and coreutils), the commands locates in +${bindir} rather than /bin, add BINDIR to configure it + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia +--- + configure.ac | 3 +++ + scripts/blkdeactivate.sh.in | 7 ++++--- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d1431e2..54e5a7b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1495,6 +1495,8 @@ fi + + SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))" + ++BINDIR="$(eval echo $(eval echo $bindir))" ++ + SBINDIR="$(eval echo $(eval echo $sbindir))" + LVM_PATH="$SBINDIR/lvm" + AC_DEFINE_UNQUOTED(LVM_PATH, ["$LVM_PATH"], [Path to lvm binary.]) +@@ -1721,6 +1723,7 @@ AC_SUBST(SACKPT_CFLAGS) + AC_SUBST(SACKPT_LIBS) + AC_SUBST(SALCK_CFLAGS) + AC_SUBST(SALCK_LIBS) ++AC_SUBST(BINDIR) + AC_SUBST(SBINDIR) + AC_SUBST(SELINUX_LIBS) + AC_SUBST(SELINUX_PC) +diff --git a/scripts/blkdeactivate.sh.in b/scripts/blkdeactivate.sh.in +index a4b8a8f..3db4226 100644 +--- a/scripts/blkdeactivate.sh.in ++++ b/scripts/blkdeactivate.sh.in +@@ -41,13 +41,14 @@ UMOUNT="/bin/umount" + + sbindir="@SBINDIR@" + DMSETUP="$sbindir/dmsetup" ++bindir="@BINDIR@" + LVM="$sbindir/lvm" + + if "$UMOUNT" --help | grep -- "--all-targets" >"$DEV_DIR/null"; then + UMOUNT_OPTS="--all-targets " + else + UMOUNT_OPTS="" +- FINDMNT="/bin/findmnt -r --noheadings -u -o TARGET" ++ FINDMNT="$bindir/findmnt -r --noheadings -u -o TARGET" + FINDMNT_READ="read -r mnt" + fi + DMSETUP_OPTS="" +@@ -55,10 +56,10 @@ LVM_OPTS="" + MDADM_OPTS="" + MPATHD_OPTS="" + +-LSBLK="/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT" ++LSBLK="$bindir/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT" + LSBLK_VARS="local devtype local kname local name local mnt" + LSBLK_READ="read -r devtype kname name mnt" +-SORT_MNT="/bin/sort -r -u -k 4" ++SORT_MNT="$bindir/sort -r -u -k 4" + + # Do not show tool errors by default (only done/skipping summary + # message provided by this script) and no verbose mode by default. +-- +2.8.1 + diff --git a/meta-citadel/recipes-support/lvm2/lvm2/0001-fix-systemd-generator.patch b/meta-citadel/recipes-support/lvm2/lvm2/0001-fix-systemd-generator.patch deleted file mode 100644 index 433dec7..0000000 --- a/meta-citadel/recipes-support/lvm2/lvm2/0001-fix-systemd-generator.patch +++ /dev/null @@ -1,171 +0,0 @@ -From b7a71bce5114db0b993a34565bd29bca04f9d71c Mon Sep 17 00:00:00 2001 -From: Bruce Leidl -Date: Mon, 14 Jan 2019 18:22:30 -0500 -Subject: [PATCH] fix systemd generator - ---- - Makefile.in | 1 - - configure.ac | 1 + - lib/config/config_settings.h | 9 +++++++++ - scripts/Makefile.in | 1 + - scripts/generator-internals.c | 14 +++++++------- - scripts/lvm2-pvscan.service.in | 14 ++++++++++++++ - .../lvm2_activation_generator_systemd_red_hat.c | 13 ++++++------- - 7 files changed, 38 insertions(+), 15 deletions(-) - create mode 100644 scripts/lvm2-pvscan.service.in - -diff --git a/Makefile.in b/Makefile.in -index 80cba91d1..d6e7bb8f2 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -137,7 +137,6 @@ install_initscripts: - - install_systemd_generators: - $(MAKE) -C scripts install_systemd_generators -- $(MAKE) -C man install_systemd_generators - - install_systemd_units: - $(MAKE) -C scripts install_systemd_units -diff --git a/configure.ac b/configure.ac -index 8fee4c4f7..2e99d7b5d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1807,6 +1807,7 @@ libdm/Makefile - libdm/dm-tools/Makefile - libdm/libdevmapper.pc - po/Makefile -+scripts/lvm2-pvscan.service - scripts/blkdeactivate.sh - scripts/blk_availability_init_red_hat - scripts/blk_availability_systemd_red_hat.service -diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h -index 636446f76..63e172acc 100644 ---- a/lib/config/config_settings.h -+++ b/lib/config/config_settings.h -@@ -997,6 +997,15 @@ cfg(global_lvdisplay_shows_full_device_path_CFG, "lvdisplay_shows_full_device_pa - "Previously this was always shown as /dev/vgname/lvname even when that\n" - "was never a valid path in the /dev filesystem.\n") - -+cfg(global_event_activation_CFG, "event_activation", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 1, vsn(2, 3, 1), 0, 0, NULL, -+ "Activate LVs based on system-generated device events.\n" -+ "When a device appears on the system, a system-generated event runs\n" -+ "the pvscan command to activate LVs if the new PV completes the VG.\n" -+ "Use auto_activation_volume_list to select which LVs should be\n" -+ "activated from these events (the default is all.)\n" -+ "When event_activation is disabled, the system will generally run\n" -+ "a direct activation command to activate LVs in complete VGs.\n") -+ - cfg(global_use_lvmetad_CFG, "use_lvmetad", global_CFG_SECTION, 0, CFG_TYPE_BOOL, 0, vsn(2, 2, 93), 0, vsn(3, 0, 0), NULL, - "This setting is no longer used.\n") - -diff --git a/scripts/Makefile.in b/scripts/Makefile.in -index 039cac2e7..467e460ca 100644 ---- a/scripts/Makefile.in -+++ b/scripts/Makefile.in -@@ -87,6 +87,7 @@ install_systemd_generators: - - install_systemd_units: install_dbus_service - $(INSTALL_DIR) $(systemd_unit_dir) -+ $(INSTALL_DATA) lvm2-pvscan.service $(systemd_unit_dir)/lvm2-pvscan@.service - ifeq ("@BUILD_DMEVENTD@", "yes") - $(INSTALL_DATA) dm_event_systemd_red_hat.socket $(systemd_unit_dir)/dm-event.socket - $(INSTALL_DATA) dm_event_systemd_red_hat.service $(systemd_unit_dir)/dm-event.service -diff --git a/scripts/generator-internals.c b/scripts/generator-internals.c -index 00a15e547..a6c81b2e9 100644 ---- a/scripts/generator-internals.c -+++ b/scripts/generator-internals.c -@@ -93,11 +93,11 @@ static bool _close_child(struct child_process *child) - //---------------------------------------------------------------- - // Aquiring config from the lvmconfig process - --#define LVM_CONF_USE_LVMETAD "global/use_lvmetad" --#define LVM_CONF_USE_LVMPOLLD "global/use_lvmpolld" -+#define LVM_CONF_EVENT_ACTIVATION "global/event_activation" -+#define LVM_CONF_USE_LVMPOLLD "global/use_lvmpolld" - - struct config { -- bool use_lvmetad; -+ bool event_activation; - bool sysinit_needed; - }; - -@@ -153,8 +153,8 @@ static bool _parse_line(const char *line, struct config *cfg) - { - const char *val; - -- if (_begins_with(line, "use_lvmetad=", &val)) { -- return _parse_bool(val, &cfg->use_lvmetad); -+ if (_begins_with(line, "event_activation=", &val)) { -+ return _parse_bool(val, &cfg->event_activation); - - } else if (_begins_with(line, "use_lvmpolld=", &val)) { - bool r; -@@ -170,14 +170,14 @@ static bool _parse_line(const char *line, struct config *cfg) - static bool _get_config(struct config *cfg, const char *lvmconfig_path) - { - static const char *_argv[] = { -- "lvmconfig", LVM_CONF_USE_LVMETAD, LVM_CONF_USE_LVMPOLLD, NULL -+ "lvmconfig", LVM_CONF_EVENT_ACTIVATION, LVM_CONF_USE_LVMPOLLD, NULL - }; - - bool r = true; - char buffer[256]; - struct child_process child; - -- cfg->use_lvmetad = false; -+ cfg->event_activation = false; - cfg->sysinit_needed = true; - - if (!_open_child(&child, lvmconfig_path, _argv)) { -diff --git a/scripts/lvm2-pvscan.service.in b/scripts/lvm2-pvscan.service.in -new file mode 100644 -index 000000000..93fe062d0 ---- /dev/null -+++ b/scripts/lvm2-pvscan.service.in -@@ -0,0 +1,14 @@ -+[Unit] -+Description=LVM event activation on device %i -+Documentation=man:pvscan(8) -+DefaultDependencies=no -+StartLimitInterval=0 -+BindsTo=dev-block-%i.device -+Before=shutdown.target -+Conflicts=shutdown.target -+ -+[Service] -+Type=oneshot -+RemainAfterExit=yes -+ExecStart=@SBINDIR@/lvm pvscan --cache --activate ay %i -+ExecStop=@SBINDIR@/lvm pvscan --cache %i -diff --git a/scripts/lvm2_activation_generator_systemd_red_hat.c b/scripts/lvm2_activation_generator_systemd_red_hat.c -index 5dc39ae03..0e6c05acc 100644 ---- a/scripts/lvm2_activation_generator_systemd_red_hat.c -+++ b/scripts/lvm2_activation_generator_systemd_red_hat.c -@@ -150,12 +150,11 @@ static int generate_unit(struct generator *gen, int unit) - - fputs("# Automatically generated by lvm2-activation-generator.\n" - "#\n" -- "# This unit is responsible for direct activation of LVM2 logical volumes\n" -- "# if lvmetad daemon is not used (global/use_lvmetad=0 lvm.conf setting),\n" -- "# hence volume autoactivation is not applicable.\n" -- "# Direct LVM2 activation requires udev to be settled!\n\n" -+ "# This unit is responsible for direct activation of LVM logical volumes\n" -+ "# if event-based activation not used (global/event_activation=0 in\n" -+ "# lvm.conf). Direct LVM activation requires udev to be settled!\n\n" - "[Unit]\n" -- "Description=Activation of LVM2 logical volumes\n" -+ "Description=LVM direct activation of logical volumes\n" - "Documentation=man:lvm2-activation-generator(8)\n" - "SourcePath=/etc/lvm/lvm.conf\n" "DefaultDependencies=no\n", f); - -@@ -217,8 +216,8 @@ static bool _run(int argc, const char **argv) - if (!_get_config(&gen.cfg, LVMCONFIG_PATH)) - return false; - -- if (gen.cfg.use_lvmetad) -- // If lvmetad used, rely on autoactivation instead of direct activation. -+ if (gen.cfg.event_activation) -+ // If event_activation=1, pvscan --cache -aay does activation. - return true; - - /* mark lvm2-activation.*.service as world-accessible */ diff --git a/meta-citadel/recipes-support/lvm2/lvm2_2.03.01.bb b/meta-citadel/recipes-support/lvm2/lvm2_2.03.06.bb similarity index 58% rename from meta-citadel/recipes-support/lvm2/lvm2_2.03.01.bb rename to meta-citadel/recipes-support/lvm2/lvm2_2.03.06.bb index 4e1ef6f..bc86810 100644 --- a/meta-citadel/recipes-support/lvm2/lvm2_2.03.01.bb +++ b/meta-citadel/recipes-support/lvm2/lvm2_2.03.06.bb @@ -1,17 +1,8 @@ require lvm2.inc -SRCREV = "913c28917e62577a2ef67152b2e5159237503dda" - -SRC_URI = "git://github.com/lvmteam/lvm2.git;protocol=https;branch=master \ - file://lvm.conf \ - file://0001-implement-libc-specific-reopen_stream.patch \ - file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \ - file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \ - file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \ - file://0001-Avoid-bashisms-in-init-scripts.patch \ - file://0005-do-not-build-manual.patch \ - file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \ - file://0001-explicitly-do-not-install-libdm.patch \ +SRC_URI += " \ + file://0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch \ + file://0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch \ " DEPENDS += "autoconf-archive-native" @@ -48,7 +39,24 @@ TARGET_CC_ARCH += "${LDFLAGS}" EXTRA_OECONF_append_class-nativesdk = " --with-confdir=${sysconfdir}" -FILES_${PN} += "${libdir}/device-mapper/*.so" +DEPENDS += "util-linux" +LVM2_PACKAGECONFIG_append_class-target = " \ + udev \ +" +PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev,${PN}-udevrules" + +PACKAGES =+ "libdevmapper" +FILES_libdevmapper = " \ + ${libdir}/libdevmapper.so.* \ + ${sbindir}/dmsetup \ + ${sbindir}/dmstats \ +" + +FILES_${PN} += " \ + ${libdir}/device-mapper/*.so \ + ${systemd_system_unitdir}/lvm2-pvscan@.service \ +" + FILES_${PN}-scripts = " \ ${sbindir}/blkdeactivate \ ${sbindir}/fsadm \ @@ -58,13 +66,27 @@ FILES_${PN}-scripts = " \ # 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}-udevrules = "${PN}" +RDEPENDS_${PN}-udevrules = "libdevmapper" RDEPENDS_${PN}_append_class-target = " libdevmapper" RDEPENDS_${PN}_append_class-nativesdk = " libdevmapper" -RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash" +RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) \ + bash \ + util-linux-lsblk \ + util-linux-findmnt \ + coreutils \ +" RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})" CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf" +SYSROOT_PREPROCESS_FUNCS_append = " remove_libdevmapper_sysroot_preprocess" +remove_libdevmapper_sysroot_preprocess() { + rm -f ${SYSROOT_DESTDIR}${libdir}/libdevmapper.so* \ + ${SYSROOT_DESTDIR}${sbindir}/dmsetup \ + ${SYSROOT_DESTDIR}${sbindir}/dmstats \ + ${SYSROOT_DESTDIR}${includedir}/libdevmapper.h \ + ${SYSROOT_DESTDIR}${libdir}/pkgconfig/devmapper.pc +} + BBCLASSEXTEND = "native nativesdk"