diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD index 9329963..bb406c0 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -9,17 +9,19 @@ pkgrel=1 arch=('x86_64') url='https://sourceware.org/lvm2/' license=('GPL2' 'LGPL2.1') -makedepends=('git' 'systemd' 'libaio' 'thin-provisioning-tools') +makedepends=('git' 'systemd' 'libaio' 'thin-provisioning-tools' 'autoconf-archive') validpgpkeys=('88437EF5C077BD113D3B7224228191C1567E2C17' # Alasdair G Kergon 'D501A478440AE2FD130A1BE8B9112431E509039F') # Marian Csontos source=("git+https://sourceware.org/git/lvm2.git#tag=${_tag}?signed" '0001-udev-initcpio.patch' 'lvm2_install' - '11-dm-initramfs.rules') + '11-dm-initramfs.rules' + poc.patch) sha256sums=('SKIP' '2b3a16ec05e2bc6678e9ebd5ffa8319ebfde29aa260ce004f79f9b8df57d73c9' '8870091ef70b5ea18b18bfcc770f8bda7dcd9d7cc2cc4fe5e4c3ac1f35bbb66a' - 'e10f24b57582d6e2da71f7c80732a62e0ee2e3b867fe84591ccdb53e80fa92e0') + 'e10f24b57582d6e2da71f7c80732a62e0ee2e3b867fe84591ccdb53e80fa92e0' + '079e5d29d82dbf38227903b300c8f5ce21a74a0d3026bfa4fb2efd22dc84b1a2') _backports=( ) @@ -33,6 +35,8 @@ prepare() { git show "${_c}" -- ':(exclude)WHATS_NEW' | git apply done + patch -Np1 -i ../poc.patch + # prepare for non-systemd initcpio patch -Np1 --output='udev/69-dm-lvm-initcpio.rules.in' < ../0001-udev-initcpio.patch @@ -41,6 +45,8 @@ prepare() { scripts/dm_event_systemd_red_hat.socket.in \ scripts/lvm2_lvmpolld_systemd_red_hat.socket.in \ scripts/lvm2_monitoring_systemd_red_hat.service.in + + autoreconf -fi } build() { @@ -51,6 +57,30 @@ build() { cd lvm2/ + ./configure \ + CONFIG_SHELL=/bin/bash \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-cmdlib \ + --enable-dmeventd \ + --enable-lvmpolld \ + --enable-pkgconfig \ + --enable-readline \ + --enable-udev_rules \ + --enable-udev_sync \ + --enable-write_install \ + --with-cache=internal \ + --with-default-dm-run-dir=/run \ + --with-default-locking-dir=/run/lock/lvm \ + --with-default-pid-dir=/run \ + --with-default-run-dir=/run/lvm \ + --with-systemdsystemunitdir=/usr/lib/systemd/system \ + --with-thin=internal \ + --with-udev-prefix=/usr + make + LVM_SYSTEM_DIR= make -C conf generate ./configure \ CONFIG_SHELL=/bin/bash \ --prefix=/usr \ diff --git a/trunk/poc.patch b/trunk/poc.patch new file mode 100644 index 0000000..b8c91d6 --- /dev/null +++ b/trunk/poc.patch @@ -0,0 +1,95 @@ +diff --git a/configure.ac b/configure.ac +index 86f4941d8..392fa5517 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -395,6 +395,12 @@ AC_ARG_ENABLE(thin_check_needs_check, + [required if thin_check version is < 0.3.0]), + THIN_CHECK_NEEDS_CHECK=$enableval, THIN_CHECK_NEEDS_CHECK="yes") + ++dnl -- thin_check auto-repair flag ++AC_ARG_ENABLE(thin_check_auto_repair, ++ AS_HELP_STRING([--disable-thin_check_auto_repair], ++ [required if thin_check version is < 0.9.0]), ++ THIN_CHECK_AUTO_REPAIR=$enableval, THIN_CHECK_AUTO_REPAIR="yes") ++ + # Test if necessary thin tools are available + # if not - use plain defaults and warn user + AS_CASE(["$THIN"], +@@ -408,7 +414,7 @@ AS_CASE(["$THIN"], + THIN_CONFIGURE_WARN="y" + ]) + ]) +- AS_IF([test "$THIN_CHECK_NEEDS_CHECK" = "yes" && test "$THIN_CONFIGURE_WARN" != "y"], [ ++ AS_IF([ ( test "$THIN_CHECK_NEEDS_CHECK" = "yes" || test "$THIN_CHECK_AUTO_REPAIR" = "yes" ) && test "$THIN_CONFIGURE_WARN" != "y"], [ + THIN_CHECK_VSN=$("$THIN_CHECK_CMD" -V 2>/dev/null) + THIN_CHECK_VSN_MAJOR=$(echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $1}') + THIN_CHECK_VSN_MINOR=$(echo "$THIN_CHECK_VSN" | $AWK -F '.' '{print $2}') +@@ -417,10 +423,19 @@ AS_CASE(["$THIN"], + AC_MSG_WARN([$THIN_CHECK_CMD: Bad version "$THIN_CHECK_VSN" found]) + THIN_CHECK_VERSION_WARN="y" + THIN_CHECK_NEEDS_CHECK="no" +- ], [test "$THIN_CHECK_VSN_MAJOR" -eq 0 && test "$THIN_CHECK_VSN_MINOR" -lt 3], [ +- AC_MSG_WARN([$THIN_CHECK_CMD: Old version "$THIN_CHECK_VSN" found]) +- THIN_CHECK_VERSION_WARN="y" +- THIN_CHECK_NEEDS_CHECK="no" ++ THIN_CHECK_AUTO_REPAIR="no" ++ ], [ ++ AS_IF([test "$THIN_CHECK_VSN_MAJOR" -eq 0 && test "$THIN_CHECK_VSN_MINOR" -lt 3], [ ++ AC_MSG_WARN([$THIN_CHECK_CMD: Old version "$THIN_CHECK_VSN" found]) ++ THIN_CHECK_VERSION_WARN="y" ++ THIN_CHECK_NEEDS_CHECK="no" ++ THIN_CHECK_AUTO_REPAIR="no" ++ ], [test "$THIN_CHECK_VSN_MAJOR" -eq 0 && test "$THIN_CHECK_VSN_MINOR" -lt 9], [ ++ AC_MSG_WARN([$THIN_CHECK_CMD: Old version "$THIN_CHECK_VSN" found]) ++ THIN_CHECK_VERSION_WARN="y" ++ THIN_CHECK_NEEDS_CHECK="yes" ++ THIN_CHECK_AUTO_REPAIR="no" ++ ]) + ]) + ]) + # Empty means a config way to ignore thin dumping +@@ -456,6 +471,12 @@ AS_CASE(["$THIN"], + AS_IF([test "$THIN_CHECK_NEEDS_CHECK" = "yes"], [ + AC_DEFINE([THIN_CHECK_NEEDS_CHECK], 1, [Define to 1 if the external 'thin_check' tool requires the --clear-needs-check-flag option]) + ]) ++ ++ AC_MSG_CHECKING([whether thin_check supports the auto-repair flag]) ++ AC_MSG_RESULT([$THIN_CHECK_AUTO_REPAIR]) ++ AS_IF([test "$THIN_CHECK_AUTO_REPAIR" = "yes"], [ ++ AC_DEFINE([THIN_CHECK_AUTO_REPAIR], 1, [Define to 1 if the external 'thin_check' tool requires the --auto-repair option]) ++ ]) + ]) + + AC_DEFINE_UNQUOTED([THIN_CHECK_CMD], ["$THIN_CHECK_CMD"], +diff --git a/include/configure.h.in b/include/configure.h.in +index fb5625156..f95541ee8 100644 +--- a/include/configure.h.in ++++ b/include/configure.h.in +@@ -680,6 +680,10 @@ + --clear-needs-check-flag option */ + #undef THIN_CHECK_NEEDS_CHECK + ++/* Define to 1 if the external 'thin_check' tool requires the ++ --auto-repair option */ ++#undef THIN_CHECK_AUTO_REPAIR ++ + /* The path to 'thin_dump', if available. */ + #undef THIN_DUMP_CMD + +diff --git a/lib/config/defaults.h b/lib/config/defaults.h +index 571054dc4..0b98f8a3f 100644 +--- a/lib/config/defaults.h ++++ b/lib/config/defaults.h +@@ -105,7 +105,11 @@ + # define DEFAULT_DMEVENTD_PATH DMEVENTD_PATH + #endif + +-#ifdef THIN_CHECK_NEEDS_CHECK ++#ifdef THIN_CHECK_AUTO_REPAIR ++# define DEFAULT_THIN_CHECK_OPTION1 "-q" ++# define DEFAULT_THIN_CHECK_OPTION2 "--auto-repair" ++# define DEFAULT_THIN_CHECK_OPTIONS_CONFIG "#S" DEFAULT_THIN_CHECK_OPTION1 "#S" DEFAULT_THIN_CHECK_OPTION2 ++#elif defined(THIN_CHECK_NEEDS_CHECK) + # define DEFAULT_THIN_CHECK_OPTION1 "-q" + # define DEFAULT_THIN_CHECK_OPTION2 "--clear-needs-check-flag" + # define DEFAULT_THIN_CHECK_OPTIONS_CONFIG "#S" DEFAULT_THIN_CHECK_OPTION1 "#S" DEFAULT_THIN_CHECK_OPTION2