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..52332e5 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
@@ -318,6 +357,7 @@ Tue Apr 30 14:48:40 UTC 2019 - mwilck@suse.com
(bsc##1110060, bsc#1110439)
* Improve handling of changed WWIDs and temporary failure
to obtain WWID. Option "disable_changed_wwids" is now ignored.
+ (bsc#1184260)
* Fixes for PATH_PENDING state handling (bsc#1125043)
* libmultipath: hwtable: add Lenovo DE series (bsc#1125507)
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..d9b08f6 100644
--- a/multipath-tools.spec
+++ b/multipath-tools.spec
@@ -16,6 +16,8 @@
#
+%global _lto_cflags %{nil}
+
# Whether to build libdmmp
# Default YES except for SLE12 / Leap 42
%if 0%{?suse_version} >= 1500
@@ -39,7 +41,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 +54,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 +75,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
@@ -87,10 +91,12 @@ monitors path devices for failure, removal, or addition, and applies
the necessary changes to the multipath maps to ensure continuous
availability of the map devices.
+
# Currently, it makes no sense to split out libmpathpersist and libmpathcmd
# 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)