From a8a3fc0b93467811587e5744aadb7d63b2a5325e6e97c61d45c1211a82069a01 Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Tue, 18 May 2021 19:47:44 +0000 Subject: [PATCH] Accepting request 894131 from home:mwilck:branches:Base:System - Update to version 0.8.6+10+suse.47711374: * Github workflows: add CI for SUSE-specific branches - Disabled LTO for multipath-tools * The test for is_valid_path fails if LTO is enabled, just disabling it for %check is insufficient. - Update to version 0.8.6+9+suse.6c05a61: Update to upstream 0.8.6. * add eh_deadline option to avoid endless SCSI error handling * add wwid_recheck option to detect storage configuration changes * add library versioning for libmultipath, libmpathpersist etc. and to libmultipath plugins * move some global symbols to libmultipath (udev, logsink, etc) and provide default implementations for get_multipath_config() etc. This allows simplifiying libmpathpersist_example.c drastically. * fixes for shutdown issues and various race conditions on exit * improve cleanup on exit, fix memory leaks * add libmpathvalid library * fixes for SAS expanders (bsc#1178377, bsc#1178379, bsc#1177081) * Avoid access to root FS while queueing IO (bsc#1178049, bsc#1181234) * lots of bug fixes, additions to built-in hardware table, and CI improvements (bsc#1186212) * kpartx: free loop device after listing partitions (boo#1107187) Bug fixes on top of 0.8.5 mentioned below are also included in this upstream version. (bsc#1182072, bsc#1177371) (bsc#1181435, bsc#1183666) OBS-URL: https://build.opensuse.org/request/show/894131 OBS-URL: https://build.opensuse.org/package/show/Base:System/multipath-tools?expand=0&rev=253 --- _servicedata | 2 +- libmpathpersist-example-old.c | 41 ++++++++++++++++++ libmpathpersist-example.c | 27 +++--------- multipath-tools-0.8.5+30+suse.633836e.obscpio | 3 -- multipath-tools-0.8.6+10+suse.4771137.obscpio | 3 ++ multipath-tools.changes | 43 ++++++++++++++++++- multipath-tools.obsinfo | 6 +-- multipath-tools.spec | 20 ++++++--- 8 files changed, 110 insertions(+), 35 deletions(-) create mode 100644 libmpathpersist-example-old.c delete mode 100644 multipath-tools-0.8.5+30+suse.633836e.obscpio create mode 100644 multipath-tools-0.8.6+10+suse.4771137.obscpio diff --git a/_servicedata b/_servicedata index 3a9aab3..82e8da4 100644 --- a/_servicedata +++ b/_servicedata @@ -1,4 +1,4 @@ https://github.com/openSUSE/multipath-tools.git - 633836e481465d042d7707b498678d3cf8216e2e \ No newline at end of file + 47711374a3d8582b68b3cd76d26ba6bb4d652e26 \ No newline at end of file diff --git a/libmpathpersist-example-old.c b/libmpathpersist-example-old.c new file mode 100644 index 0000000..19968e4 --- /dev/null +++ b/libmpathpersist-example-old.c @@ -0,0 +1,41 @@ +/* + * This is a minimal skeleton for code using libmpathpersist. + * Compile with "-lmpathpersist -lmultipath -ludev". + * + * Header files for libmultipath are intentionally not included + * in the multipath-tools-devel package, because libmultipath has + * no well defined API for external programs at this time. + */ + +#include +#include + +struct udev *udev; +/* + * logsink determines where libmultipath log messages go + * 1 - log to syslog only + * -1 - log to syslog and stderr + * 0 - log to syslog and stderr, with timestamps + */ +int logsink; + +static struct config *conf; + +struct config *get_multipath_config(void) { + return conf; +} + +void put_multipath_config(struct config* c) +{ +} + +int main(void) +{ + udev = udev_new(); + conf = mpath_lib_init(); + if(!conf) { + udev_unref(udev); + return 1; + } + return 0; +} diff --git a/libmpathpersist-example.c b/libmpathpersist-example.c index 19968e4..93cf200 100644 --- a/libmpathpersist-example.c +++ b/libmpathpersist-example.c @@ -1,40 +1,25 @@ /* * This is a minimal skeleton for code using libmpathpersist. - * Compile with "-lmpathpersist -lmultipath -ludev". + * Compile with "-lmpathpersist -lmultipath -lmpathcmd". * * Header files for libmultipath are intentionally not included * in the multipath-tools-devel package, because libmultipath has * no well defined API for external programs at this time. + * + * With multipath-tools 0.8.6, the sample program can be drastically + * simplified, see below. Compare with libmpathpersist-example-old.c + * for 0.8.5 and older. Note that the old code can still be used. */ #include #include -struct udev *udev; -/* - * logsink determines where libmultipath log messages go - * 1 - log to syslog only - * -1 - log to syslog and stderr - * 0 - log to syslog and stderr, with timestamps - */ -int logsink; - -static struct config *conf; - -struct config *get_multipath_config(void) { - return conf; -} - -void put_multipath_config(struct config* c) -{ -} +struct config *conf; int main(void) { - udev = udev_new(); conf = mpath_lib_init(); if(!conf) { - udev_unref(udev); return 1; } return 0; diff --git a/multipath-tools-0.8.5+30+suse.633836e.obscpio b/multipath-tools-0.8.5+30+suse.633836e.obscpio deleted file mode 100644 index 8d49ae6..0000000 --- a/multipath-tools-0.8.5+30+suse.633836e.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10ae532b22bd80abaa610c2311f1096f441561d2e234f7c4d8f27fd6fab4dec1 -size 2496524 diff --git a/multipath-tools-0.8.6+10+suse.4771137.obscpio b/multipath-tools-0.8.6+10+suse.4771137.obscpio new file mode 100644 index 0000000..c4f0995 --- /dev/null +++ b/multipath-tools-0.8.6+10+suse.4771137.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c899edc6588fb48f5b53459a0e80ccbb1a91147e099935c17cbae46203e05989 +size 2608140 diff --git a/multipath-tools.changes b/multipath-tools.changes index 038a075..856b045 100644 --- a/multipath-tools.changes +++ b/multipath-tools.changes @@ -1,3 +1,42 @@ +------------------------------------------------------------------- +Tue May 18 17:43:13 UTC 2021 - Martin Wilck + +- Update to version 0.8.6+10+suse.47711374: + * Github workflows: add CI for SUSE-specific branches + +------------------------------------------------------------------- +Fri Apr 2 00:01:23 UTC 2021 - Martin Wilck + +- Disabled LTO for multipath-tools + * The test for is_valid_path fails if LTO is enabled, just + disabling it for %check is insufficient. + +------------------------------------------------------------------- +Thu Apr 01 21:00:32 UTC 2021 - mwilck@suse.com + +- Update to version 0.8.6+9+suse.6c05a61: + Update to upstream 0.8.6. + + * add eh_deadline option to avoid endless SCSI error handling + * add wwid_recheck option to detect storage configuration changes + * add library versioning for libmultipath, libmpathpersist etc. and + to libmultipath plugins + * move some global symbols to libmultipath (udev, logsink, etc) + and provide default implementations for get_multipath_config() etc. + This allows simplifiying libmpathpersist_example.c drastically. + * fixes for shutdown issues and various race conditions on exit + * improve cleanup on exit, fix memory leaks + * add libmpathvalid library + * fixes for SAS expanders (bsc#1178377, bsc#1178379, bsc#1177081) + * Avoid access to root FS while queueing IO (bsc#1178049, + bsc#1181234) + * lots of bug fixes, additions to built-in hardware table, and + CI improvements (bsc#1186212) + * kpartx: free loop device after listing partitions (boo#1107187) + + Bug fixes on top of 0.8.5 mentioned below are also included in + this upstream version. + ------------------------------------------------------------------- Thu Apr 01 11:01:34 UTC 2021 - mwilck@suse.com @@ -18,14 +57,14 @@ Fri Mar 12 14:53:41 UTC 2021 - mwilck@suse.com - Update to version 0.8.5+26+suse.2cbedfd: Avoid "illegal request" errors on non-RDAC storage - (bsc#bsc#1182072, bsc#1177371) + (bsc#1182072, bsc#1177371) ------------------------------------------------------------------- Wed Mar 10 10:16:38 UTC 2021 - mwilck@suse.com - Update to version 0.8.5+23+suse.c11b054: * multipath -U: reduce log level of "adding new path" message - (bsc#1181435) + (bsc#1181435, bsc#1183666) ------------------------------------------------------------------- Wed Feb 10 14:30:15 UTC 2021 - mwilck@suse.com diff --git a/multipath-tools.obsinfo b/multipath-tools.obsinfo index 91b0679..dd85706 100644 --- a/multipath-tools.obsinfo +++ b/multipath-tools.obsinfo @@ -1,5 +1,5 @@ name: multipath-tools -version: 0.8.5+30+suse.633836e -mtime: 1617050092 -commit: 633836e481465d042d7707b498678d3cf8216e2e +version: 0.8.6+10+suse.4771137 +mtime: 1618245342 +commit: 47711374a3d8582b68b3cd76d26ba6bb4d652e26 diff --git a/multipath-tools.spec b/multipath-tools.spec index 8845520..27a4cf9 100644 --- a/multipath-tools.spec +++ b/multipath-tools.spec @@ -15,6 +15,9 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # +# The test for libmpathvalid fails with -flto=auto. Just disabling +# it for the %check section is not sufficient, unfortunately. +%global _lto_cflags %{nil} # Whether to build libdmmp # Default YES except for SLE12 / Leap 42 @@ -39,7 +42,7 @@ %define _sysdir usr/lib Name: multipath-tools -Version: 0.8.5+30+suse.633836e +Version: 0.8.6+10+suse.4771137 Release: 0 Summary: Tools to Manage Multipathed Devices with the device-mapper License: GPL-2.0-only @@ -52,6 +55,7 @@ Source2: dont-del-part-nodes.rules # Dracut conf file to make sure 11-dm-parts.rules is included in initrd Source3: dm-parts.conf Source4: libmpathpersist-example.c +Source5: libmpathpersist-example-old.c BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} BuildRequires: libaio-devel @@ -72,12 +76,13 @@ BuildRequires: pkgconfig(cmocka) # For now, we still need to require suse-module-tools # See https://github.com/openSUSE/rpm-config-SUSE/pull/6 BuildRequires: suse-module-tools -Requires(post): suse-module-tools +Requires(post): suse-module-tools Requires: device-mapper >= 1.2.78 Requires: kpartx Requires: sg3_utils Obsoletes: multipath-tools-rbd <= %{version} -PreReq: coreutils grep +PreReq: coreutils +PreReq: grep %description This package provides the multipath tool and the multipathd daemon @@ -91,6 +96,7 @@ availability of the map devices. # separately. libmultipath has no stable API at all, and it depends # on libmpathcmd (to be fixed). libmpathpersist depends on libmultipath # and it loads prioritizers (to be fixed) and checkers. + %package -n libmpath0 Summary: Libraries for multipath-tools # This is for libmpathcmd, which is useless without multipathd. @@ -152,6 +158,7 @@ This package provides development files and documentation for libdmmp. %setup -q -n multipath-tools-%{version} # This must be before autopatch for code 12, otherwise build error cp %{SOURCE4} . +cp %{SOURCE5} . %autopatch -p1 %build @@ -164,7 +171,6 @@ cp %{SOURCE4} . %check # ld fails to resolve cmocka's __wrap symbols with -flto # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88643 -%define _lto_cflags %{nil} make OPTFLAGS="%{optflags}" %{_make_output_sync} %{?_smp_mflags} test %endif @@ -173,7 +179,7 @@ make OPTFLAGS="%{optflags}" %{_make_output_sync} %{?_smp_mflags} test mkdir -p %{buildroot}%{_defaultlicensedir} mkdir -p %{buildroot}/usr/sbin mkdir -p %{buildroot}/usr/%{_lib} -for x in multipath mpathpersist mpathcmd; do +for x in multipath mpathpersist mpathcmd mpathvalid; do rm -f %{buildroot}/%{_lib}/lib$x.so ln -sf /%{_lib}/lib$x.so.0 %{buildroot}/usr/%{_lib}/lib$x.so done @@ -238,6 +244,7 @@ exit 0 /%{_lib}/libmultipath.so.0 /%{_lib}/libmpathcmd.so.0 /%{_lib}/libmpathpersist.so.0 +/%{_lib}/libmpathvalid.so.0 /%{_lib}/multipath %license LICENSES/GPL-2.0 %license LICENSES/LGPL-2.0 @@ -249,10 +256,13 @@ exit 0 /usr/%{_lib}/libmultipath.so /usr/%{_lib}/libmpathcmd.so /usr/%{_lib}/libmpathpersist.so +/usr/%{_lib}/libmpathvalid.so /usr/include/mpath_cmd.h /usr/include/mpath_persist.h +/usr/include/mpath_valid.h %{_mandir}/man3/mpath_persistent_* %doc libmpathpersist-example.c +%doc libmpathpersist-example-old.c %files -n kpartx %defattr(-,root,root)