Accepting request 894440 from 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/894440
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/multipath-tools?expand=0&rev=131
This commit is contained in:
Dominique Leuenberger 2021-05-20 17:23:55 +00:00 committed by Git OBS Bridge
commit b07af775b5
8 changed files with 111 additions and 35 deletions

View File

@ -1,4 +1,4 @@
<servicedata> <servicedata>
<service name="tar_scm"> <service name="tar_scm">
<param name="url">https://github.com/openSUSE/multipath-tools.git</param> <param name="url">https://github.com/openSUSE/multipath-tools.git</param>
<param name="changesrevision">633836e481465d042d7707b498678d3cf8216e2e</param></service></servicedata> <param name="changesrevision">47711374a3d8582b68b3cd76d26ba6bb4d652e26</param></service></servicedata>

View File

@ -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 <mpath_persist.h>
#include <libudev.h>
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;
}

View File

@ -1,40 +1,25 @@
/* /*
* This is a minimal skeleton for code using libmpathpersist. * 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 * Header files for libmultipath are intentionally not included
* in the multipath-tools-devel package, because libmultipath has * in the multipath-tools-devel package, because libmultipath has
* no well defined API for external programs at this time. * 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 <mpath_persist.h> #include <mpath_persist.h>
#include <libudev.h> #include <libudev.h>
struct udev *udev; struct config *conf;
/*
* 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) int main(void)
{ {
udev = udev_new();
conf = mpath_lib_init(); conf = mpath_lib_init();
if(!conf) { if(!conf) {
udev_unref(udev);
return 1; return 1;
} }
return 0; return 0;

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:10ae532b22bd80abaa610c2311f1096f441561d2e234f7c4d8f27fd6fab4dec1
size 2496524

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c899edc6588fb48f5b53459a0e80ccbb1a91147e099935c17cbae46203e05989
size 2608140

View File

@ -1,3 +1,42 @@
-------------------------------------------------------------------
Tue May 18 17:43:13 UTC 2021 - Martin Wilck <mwilck@suse.com>
- 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 <mwilck@suse.com>
- 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 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: - Update to version 0.8.5+26+suse.2cbedfd:
Avoid "illegal request" errors on non-RDAC storage 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 Wed Mar 10 10:16:38 UTC 2021 - mwilck@suse.com
- Update to version 0.8.5+23+suse.c11b054: - Update to version 0.8.5+23+suse.c11b054:
* multipath -U: reduce log level of "adding new path" message * 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 Wed Feb 10 14:30:15 UTC 2021 - mwilck@suse.com
@ -318,6 +357,7 @@ Tue Apr 30 14:48:40 UTC 2019 - mwilck@suse.com
(bsc##1110060, bsc#1110439) (bsc##1110060, bsc#1110439)
* Improve handling of changed WWIDs and temporary failure * Improve handling of changed WWIDs and temporary failure
to obtain WWID. Option "disable_changed_wwids" is now ignored. to obtain WWID. Option "disable_changed_wwids" is now ignored.
(bsc#1184260)
* Fixes for PATH_PENDING state handling (bsc#1125043) * Fixes for PATH_PENDING state handling (bsc#1125043)
* libmultipath: hwtable: add Lenovo DE series (bsc#1125507) * libmultipath: hwtable: add Lenovo DE series (bsc#1125507)

View File

@ -1,5 +1,5 @@
name: multipath-tools name: multipath-tools
version: 0.8.5+30+suse.633836e version: 0.8.6+10+suse.4771137
mtime: 1617050092 mtime: 1618245342
commit: 633836e481465d042d7707b498678d3cf8216e2e commit: 47711374a3d8582b68b3cd76d26ba6bb4d652e26

View File

@ -16,6 +16,8 @@
# #
%global _lto_cflags %{nil}
# Whether to build libdmmp # Whether to build libdmmp
# Default YES except for SLE12 / Leap 42 # Default YES except for SLE12 / Leap 42
%if 0%{?suse_version} >= 1500 %if 0%{?suse_version} >= 1500
@ -39,7 +41,7 @@
%define _sysdir usr/lib %define _sysdir usr/lib
Name: multipath-tools Name: multipath-tools
Version: 0.8.5+30+suse.633836e Version: 0.8.6+10+suse.4771137
Release: 0 Release: 0
Summary: Tools to Manage Multipathed Devices with the device-mapper Summary: Tools to Manage Multipathed Devices with the device-mapper
License: GPL-2.0-only License: GPL-2.0-only
@ -52,6 +54,7 @@ Source2: dont-del-part-nodes.rules
# Dracut conf file to make sure 11-dm-parts.rules is included in initrd # Dracut conf file to make sure 11-dm-parts.rules is included in initrd
Source3: dm-parts.conf Source3: dm-parts.conf
Source4: libmpathpersist-example.c Source4: libmpathpersist-example.c
Source5: libmpathpersist-example-old.c
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%{?systemd_requires} %{?systemd_requires}
BuildRequires: libaio-devel BuildRequires: libaio-devel
@ -72,12 +75,13 @@ BuildRequires: pkgconfig(cmocka)
# For now, we still need to require suse-module-tools # For now, we still need to require suse-module-tools
# See https://github.com/openSUSE/rpm-config-SUSE/pull/6 # See https://github.com/openSUSE/rpm-config-SUSE/pull/6
BuildRequires: suse-module-tools BuildRequires: suse-module-tools
Requires(post): suse-module-tools Requires(post): suse-module-tools
Requires: device-mapper >= 1.2.78 Requires: device-mapper >= 1.2.78
Requires: kpartx Requires: kpartx
Requires: sg3_utils Requires: sg3_utils
Obsoletes: multipath-tools-rbd <= %{version} Obsoletes: multipath-tools-rbd <= %{version}
PreReq: coreutils grep PreReq: coreutils
PreReq: grep
%description %description
This package provides the multipath tool and the multipathd daemon This package provides the multipath tool and the multipathd daemon
@ -87,10 +91,12 @@ monitors path devices for failure, removal, or addition, and applies
the necessary changes to the multipath maps to ensure continuous the necessary changes to the multipath maps to ensure continuous
availability of the map devices. availability of the map devices.
# Currently, it makes no sense to split out libmpathpersist and libmpathcmd # Currently, it makes no sense to split out libmpathpersist and libmpathcmd
# separately. libmultipath has no stable API at all, and it depends # separately. libmultipath has no stable API at all, and it depends
# on libmpathcmd (to be fixed). libmpathpersist depends on libmultipath # on libmpathcmd (to be fixed). libmpathpersist depends on libmultipath
# and it loads prioritizers (to be fixed) and checkers. # and it loads prioritizers (to be fixed) and checkers.
%package -n libmpath0 %package -n libmpath0
Summary: Libraries for multipath-tools Summary: Libraries for multipath-tools
# This is for libmpathcmd, which is useless without multipathd. # 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} %setup -q -n multipath-tools-%{version}
# This must be before autopatch for code 12, otherwise build error # This must be before autopatch for code 12, otherwise build error
cp %{SOURCE4} . cp %{SOURCE4} .
cp %{SOURCE5} .
%autopatch -p1 %autopatch -p1
%build %build
@ -164,7 +171,6 @@ cp %{SOURCE4} .
%check %check
# ld fails to resolve cmocka's __wrap symbols with -flto # ld fails to resolve cmocka's __wrap symbols with -flto
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88643 # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88643
%define _lto_cflags %{nil}
make OPTFLAGS="%{optflags}" %{_make_output_sync} %{?_smp_mflags} test make OPTFLAGS="%{optflags}" %{_make_output_sync} %{?_smp_mflags} test
%endif %endif
@ -173,7 +179,7 @@ make OPTFLAGS="%{optflags}" %{_make_output_sync} %{?_smp_mflags} test
mkdir -p %{buildroot}%{_defaultlicensedir} mkdir -p %{buildroot}%{_defaultlicensedir}
mkdir -p %{buildroot}/usr/sbin mkdir -p %{buildroot}/usr/sbin
mkdir -p %{buildroot}/usr/%{_lib} 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 rm -f %{buildroot}/%{_lib}/lib$x.so
ln -sf /%{_lib}/lib$x.so.0 %{buildroot}/usr/%{_lib}/lib$x.so ln -sf /%{_lib}/lib$x.so.0 %{buildroot}/usr/%{_lib}/lib$x.so
done done
@ -238,6 +244,7 @@ exit 0
/%{_lib}/libmultipath.so.0 /%{_lib}/libmultipath.so.0
/%{_lib}/libmpathcmd.so.0 /%{_lib}/libmpathcmd.so.0
/%{_lib}/libmpathpersist.so.0 /%{_lib}/libmpathpersist.so.0
/%{_lib}/libmpathvalid.so.0
/%{_lib}/multipath /%{_lib}/multipath
%license LICENSES/GPL-2.0 %license LICENSES/GPL-2.0
%license LICENSES/LGPL-2.0 %license LICENSES/LGPL-2.0
@ -249,10 +256,13 @@ exit 0
/usr/%{_lib}/libmultipath.so /usr/%{_lib}/libmultipath.so
/usr/%{_lib}/libmpathcmd.so /usr/%{_lib}/libmpathcmd.so
/usr/%{_lib}/libmpathpersist.so /usr/%{_lib}/libmpathpersist.so
/usr/%{_lib}/libmpathvalid.so
/usr/include/mpath_cmd.h /usr/include/mpath_cmd.h
/usr/include/mpath_persist.h /usr/include/mpath_persist.h
/usr/include/mpath_valid.h
%{_mandir}/man3/mpath_persistent_* %{_mandir}/man3/mpath_persistent_*
%doc libmpathpersist-example.c %doc libmpathpersist-example.c
%doc libmpathpersist-example-old.c
%files -n kpartx %files -n kpartx
%defattr(-,root,root) %defattr(-,root,root)