From 80997acd3587a4528f8877d9e8a502c39ed800c5 Mon Sep 17 00:00:00 2001 From: Marcin Niestroj Date: Mon, 10 May 2021 11:27:26 +0200 Subject: [PATCH] package/lvm2: bump version to 2.03.12 Downstream patches have been mainlined in commits [1] (v2.03.06) and [2] (v2.03.12). Second patch was slightly modified, so replace --disable-symvers with --with-symvers=no. [1] https://github.com/lvmteam/lvm2/commit/125f27ac37bc9b93cc96f64052b9681b3d479ee1 [2] https://github.com/lvmteam/lvm2/commit/1cedbaf13778de02e38b5dc80a7af246b7ec83e5 Signed-off-by: Marcin Niestroj Signed-off-by: Peter Korsgaard --- ...gure-Introduce-enable-symvers-option.patch | 278 ------------------ ...supported-options-event-timeout-rule.patch | 33 --- package/lvm2/lvm2.hash | 2 +- package/lvm2/lvm2.mk | 4 +- 4 files changed, 3 insertions(+), 314 deletions(-) delete mode 100644 package/lvm2/0001-configure-Introduce-enable-symvers-option.patch delete mode 100644 package/lvm2/0002-udev-remove-unsupported-options-event-timeout-rule.patch diff --git a/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch b/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch deleted file mode 100644 index 7ef153313c..0000000000 --- a/package/lvm2/0001-configure-Introduce-enable-symvers-option.patch +++ /dev/null @@ -1,278 +0,0 @@ -From 94d71c49eb1682a73465eb162b0a059561168bb2 Mon Sep 17 00:00:00 2001 -From: Marcin Niestroj -Date: Fri, 20 Jul 2018 14:26:44 +0200 -Subject: [PATCH] configure: Introduce --enable-symvers option - -Only few libc (e.g. glibc) libraries support full symbol version -resolution in runtime. There are lot of standard libraries that do not -support that, such as dietlibc, musl and uclibc. Hence there is no -reason to generate symbol versions when compiling against them. - -Additionally libdevmapper.so was broken when compiled against -uclibc. Runtime linker loader caused calling dm_task_get_info_base() -function recursively, leading to segmentation fault. - -Introduce --enable-symvers[=STYLE] option, which allows to choose -between gnu and disabled symbol versioning. By default gnu symbol -versioning is used to provide backward compatibility. -__GNUC__ check is replaced now with GNU_SYMVER, which is generated by -configure script. Additionally ld version script is included only in -case of gnu option, which slightly reduces output size. - -Providing --disable-symvers to configure script when building against -uclibc library fixes segmentation fault error described above, due to -lack of several versions of the same symbol in libdevmapper.so -library. - -Signed-off-by: Marcin Niestroj ---- - configure | 32 ++++++++++++++++++++++++++++++-- - configure.ac | 28 +++++++++++++++++++++++++--- - include/configure.h.in | 3 +++ - lib/misc/lib.h | 10 +++++----- - libdm/datastruct/bitset.c | 5 +---- - libdm/ioctl/libdm-iface.c | 2 +- - libdm/libdm-deptree.c | 2 +- - libdm/libdm-stats.c | 2 +- - 8 files changed, 67 insertions(+), 17 deletions(-) - -diff --git a/configure b/configure -index 7d945dfa8..94cd6b1ea 100755 ---- a/configure -+++ b/configure -@@ -975,6 +975,7 @@ enable_fsadm - enable_blkdeactivate - enable_dmeventd - enable_selinux -+enable_symvers - enable_nls - with_localedir - with_confdir -@@ -1725,6 +1726,9 @@ Optional Features: - --disable-blkdeactivate disable blkdeactivate - --enable-dmeventd enable the device-mapper event daemon - --disable-selinux disable selinux support -+ --enable-symvers[=STYLE] -+ enables symbol versioning of the shared library -+ [default=gnu] - --enable-nls enable Native Language Support - - Optional Packages: -@@ -3156,7 +3160,6 @@ if test -z "$CFLAGS"; then : - fi - case "$host_os" in - linux*) -- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" - # equivalent to -rdynamic - ELDFLAGS="-Wl,--export-dynamic" - # FIXME Generate list and use --dynamic-list=.dlopen.sym -@@ -3178,7 +3181,6 @@ case "$host_os" in - ;; - darwin*) - CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" -- CLDFLAGS="$CLDFLAGS" - ELDFLAGS= - CLDWHOLEARCHIVE="-all_load" - CLDNOWHOLEARCHIVE= -@@ -14401,6 +14403,32 @@ done - LIBS=$lvm_saved_libs - fi - -+################################################################################ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable symbol versioning" >&5 -+$as_echo_n "checking whether to enable symbol versioning... " >&6; } -+# Check whether --enable-symvers was given. -+if test "${enable_symvers+set}" = set; then : -+ enableval=$enable_symvers; -+ case "$enableval" in -+ gnu|no) ;; -+ *) as_fn_error $? "Unknown argument to enable/disable symvers" "$LINENO" 5 ;; -+ esac -+else -+ enable_symvers=gnu -+fi -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_symvers" >&5 -+$as_echo "$enable_symvers" >&6; } -+ -+if test x$GCC = xyes && test x$enable_symvers = xgnu ; then -+ -+$as_echo "#define GNU_SYMVER 1" >>confdefs.h -+ -+ case "$host_os" in -+ linux*) CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" ;; -+ esac -+fi -+ - ################################################################################ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable internationalisation" >&5 - $as_echo_n "checking whether to enable internationalisation... " >&6; } -diff --git a/configure.ac b/configure.ac -index e427708cd..2e8712f92 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -30,13 +30,11 @@ AC_CANONICAL_TARGET([]) - AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"]) - case "$host_os" in - linux*) -- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" - # equivalent to -rdynamic - ELDFLAGS="-Wl,--export-dynamic" - # FIXME Generate list and use --dynamic-list=.dlopen.sym - CLDWHOLEARCHIVE="-Wl,-whole-archive" - CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive" -- LDDEPS="$LDDEPS .export.sym" - LIB_SUFFIX=so - DEVMAPPER=yes - BUILD_LVMETAD=no -@@ -52,7 +50,6 @@ case "$host_os" in - ;; - darwin*) - CFLAGS="$CFLAGS -no-cpp-precomp -fno-common" -- CLDFLAGS="$CLDFLAGS" - ELDFLAGS= - CLDWHOLEARCHIVE="-all_load" - CLDNOWHOLEARCHIVE= -@@ -1656,6 +1653,31 @@ package as well (which may be called readline-devel or something similar).]) - LIBS=$lvm_saved_libs - fi - -+################################################################################ -+dnl -- Symbol versioning -+AC_MSG_CHECKING(whether to enable symbol versioning) -+AC_ARG_ENABLE(symvers, -+ AC_HELP_STRING([--enable-symvers[[[=STYLE]]]], -+ [enables symbol versioning of the shared library [default=gnu]]), -+ [ -+ case "$enableval" in -+ gnu|no) ;; -+ *) AC_MSG_ERROR(Unknown argument to enable/disable symvers) ;; -+ esac], -+ enable_symvers=gnu) -+AC_MSG_RESULT($enable_symvers) -+ -+if test x$GCC = xyes && test x$enable_symvers = xgnu ; then -+ AC_DEFINE(GNU_SYMVER, 1, -+ [Define to use GNU versioning in the shared library.]) -+ case "$host_os" in -+ linux*) -+ CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym" -+ LDDEPS="$LDDEPS .export.sym" -+ ;; -+ esac -+fi -+ - ################################################################################ - dnl -- Internationalisation stuff - AC_MSG_CHECKING(whether to enable internationalisation) -diff --git a/include/configure.h.in b/include/configure.h.in -index 15fd150ed..7a07a10ef 100644 ---- a/include/configure.h.in -+++ b/include/configure.h.in -@@ -147,6 +147,9 @@ - /* Path to fsadm binary. */ - #undef FSADM_PATH - -+/* Define to use GNU versioning in the shared library. */ -+#undef GNU_SYMVER -+ - /* Define to 1 if you have the `alarm' function. */ - #undef HAVE_ALARM - -diff --git a/lib/misc/lib.h b/lib/misc/lib.h -index d7fa5c721..7cf98f932 100644 ---- a/lib/misc/lib.h -+++ b/lib/misc/lib.h -@@ -41,16 +41,16 @@ - * macro DM_EXPORT_SYMBOL to export the function and bind it to the - * specified version string. - * -- * Since versioning is only available when compiling with GCC the entire -- * compatibility version should be enclosed in '#if defined(__GNUC__)', -- * for example: -+ * Since versioning is only available when compiling with GCC -+ * and GLIBC the entire compatibility version should be enclosed -+ * in '#if defined(GNU_SYMVER)', for example: - * - * int dm_foo(int bar) - * { - * return bar; - * } - * -- * #if defined(__GNUC__) -+ * #if defined(GNU_SYMVER) - * // Backward compatible dm_foo() version 1.02.104 - * int dm_foo_v1_02_104(void); - * int dm_foo_v1_02_104(void) -@@ -67,7 +67,7 @@ - * versions of library symbols prior to the introduction of symbol - * versioning: it must never be used for new symbols. - */ --#if defined(__GNUC__) -+#if defined(GNU_SYMVER) - #define DM_EXPORT_SYMBOL(func, ver) \ - __asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver ) - #define DM_EXPORT_SYMBOL_BASE(func) \ -diff --git a/libdm/datastruct/bitset.c b/libdm/datastruct/bitset.c -index b0826e1eb..2ec3f8f84 100644 ---- a/libdm/datastruct/bitset.c -+++ b/libdm/datastruct/bitset.c -@@ -242,7 +242,7 @@ bad: - return NULL; - } - --#if defined(__GNUC__) -+#if defined(GNU_SYMVER) - /* - * Maintain backward compatibility with older versions that did not - * accept a 'min_num_bits' argument to dm_bitset_parse_list(). -@@ -253,7 +253,4 @@ dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem) - return dm_bitset_parse_list(str, mem, 0); - } - DM_EXPORT_SYMBOL(dm_bitset_parse_list, 1_02_129); -- --#else /* if defined(__GNUC__) */ -- - #endif -diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c -index 769b69c1b..28e2eadee 100644 ---- a/libdm/ioctl/libdm-iface.c -+++ b/libdm/ioctl/libdm-iface.c -@@ -2145,7 +2145,7 @@ void dm_lib_exit(void) - _version_checked = 0; - } - --#if defined(__GNUC__) -+#if defined(GNU_SYMVER) - /* - * Maintain binary backward compatibility. - * Version script mechanism works with 'gcc' compatible compilers only. -diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c -index ab0545659..00651c0b2 100644 ---- a/libdm/libdm-deptree.c -+++ b/libdm/libdm-deptree.c -@@ -3797,7 +3797,7 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode, - dnode->callback_data = data; - } - --#if defined(__GNUC__) -+#if defined(GNU_SYMVER) - /* - * Backward compatible implementations. - * -diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c -index 94ad380e0..76efbbe35 100644 ---- a/libdm/libdm-stats.c -+++ b/libdm/libdm-stats.c -@@ -5065,7 +5065,7 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path, - * current dm_stats_create_region() version. - */ - --#if defined(__GNUC__) -+#if defined(GNU_SYMVER) - int dm_stats_create_region_v1_02_106(struct dm_stats *dms, uint64_t *region_id, - uint64_t start, uint64_t len, int64_t step, - int precise, const char *program_id, --- -2.18.0 - diff --git a/package/lvm2/0002-udev-remove-unsupported-options-event-timeout-rule.patch b/package/lvm2/0002-udev-remove-unsupported-options-event-timeout-rule.patch deleted file mode 100644 index f162ec58de..0000000000 --- a/package/lvm2/0002-udev-remove-unsupported-options-event-timeout-rule.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 125f27ac37bc9b93cc96f64052b9681b3d479ee1 Mon Sep 17 00:00:00 2001 -From: Peter Rajnoha -Date: Tue, 13 Aug 2019 15:18:30 +0200 -Subject: [PATCH] udev: remove unsupported OPTIONS+="event_timeout" rule - -The OPTIONS+="event_timeout" is Unsupported since systemd/udev version 216, -that is ~5 years ago. - -Since systemd/udev version 243, there's a new message printed if unsupported -OPTIONS value is used: - - Invalid value for OPTIONS key, ignoring: 'event_timeout=180' - -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1740666 - -Signed-off-by: Pascal de Bruijn ---- -diff --git a/udev/11-dm-lvm.rules.in b/udev/11-dm-lvm.rules.in -index 91cb991..7c58994 100644 ---- a/udev/11-dm-lvm.rules.in -+++ b/udev/11-dm-lvm.rules.in -@@ -37,8 +37,6 @@ ENV{DM_SUBSYSTEM_UDEV_FLAG0}!="1", ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_DISABLE_OTHE - - ENV{DM_UDEV_DISABLE_SUBSYSTEM_RULES_FLAG}=="1", GOTO="lvm_end" - --OPTIONS+="event_timeout=180" -- - # Do not create symlinks for inappropriate subdevices. - ENV{DM_LV_NAME}=="pvmove?*|?*_vorigin", GOTO="lvm_disable" - ENV{DM_LV_LAYER}=="?*", GOTO="lvm_disable" --- -2.9.3 - diff --git a/package/lvm2/lvm2.hash b/package/lvm2/lvm2.hash index 9a581527e0..1260669480 100644 --- a/package/lvm2/lvm2.hash +++ b/package/lvm2/lvm2.hash @@ -1,5 +1,5 @@ # From http://sources.redhat.com/pub/lvm2/sha512.sum -sha512 f421505551aec2a09bc862f2fcc1ee825bc4d94c53a01d13265631e99308d60fbca40112be5bc7824cce3ef223c0775d2f6c345f6a3f227229a0566c903841bf LVM2.2.02.185.tgz +sha512 e4d3bfb38b346251a2ea2cee7b79f2e12ed407652b659b35b65f58c8bb252943cee1c511713aeec8ff3400790e0e99ea6b83e8740050defe5cbb118f18bf7700 LVM2.2.03.12.tgz # Locally computed sha256 checksums sha256 e76fbcd2fb97cf202da330301327754d2db5c58b5b4bebd3a8a749393e7603d1 COPYING sha256 5df07007198989c622f5d41de8d703e7bef3d0e79d62e24332ee739a452af62a COPYING.LIB diff --git a/package/lvm2/lvm2.mk b/package/lvm2/lvm2.mk index 653e72c72f..dc4e938697 100644 --- a/package/lvm2/lvm2.mk +++ b/package/lvm2/lvm2.mk @@ -4,7 +4,7 @@ # ################################################################################ -LVM2_VERSION = 2.02.185 +LVM2_VERSION = 2.03.12 LVM2_SOURCE = LVM2.$(LVM2_VERSION).tgz LVM2_SITE = http://sources.redhat.com/pub/lvm2 LVM2_INSTALL_STAGING = YES @@ -20,7 +20,7 @@ LVM2_CONF_OPTS += \ --enable-cmdlib \ --enable-dmeventd \ --disable-nls \ - --disable-symvers + --with-symvers=no LVM2_DEPENDENCIES += host-pkgconf libaio -- 2.30.2