Hello community, here is the log from the commit of package multipath-tools for openSUSE:Factory checked in at 2016-09-05 21:16:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/multipath-tools (Old) and /work/SRC/openSUSE:Factory/.multipath-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "multipath-tools" Changes: -------- --- /work/SRC/openSUSE:Factory/multipath-tools/multipath-tools.changes 2016-08-13 18:29:49.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.multipath-tools.new/multipath-tools.changes 2016-09-05 21:16:10.000000000 +0200 @@ -1,0 +2,21 @@ +Fri Aug 26 18:52:03 CEST 2016 - h...@suse.de + +- Fixup module name in /usr/lib/modules-load.d (bsc#986734) + +------------------------------------------------------------------- +Fri Aug 26 09:10:50 CEST 2016 - h...@suse.de + +- multipath: fixup check from udev rules (bsc#986734) + +------------------------------------------------------------------- +Wed Aug 24 12:58:32 CEST 2016 - h...@suse.de + +- multipathd: start daemon after udev trigger (bsc#986734) +- Load device handler and multipath module at boot (bsc#991634) + +------------------------------------------------------------------- +Fri Aug 19 15:28:48 CEST 2016 - h...@suse.de + +- Do not check daemon from udev rules (bsc#986734,bsc#990538) + +------------------------------------------------------------------- Old: ---- multipath-tools-0.6.2+suse20160805.dcfa37d.tar.xz New: ---- multipath-tools-0.6.2+suse20160826.4abd547.tar.xz multipath.conf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ multipath-tools.spec ++++++ --- /var/tmp/diff_new_pack.lmMkH3/_old 2016-09-05 21:16:11.000000000 +0200 +++ /var/tmp/diff_new_pack.lmMkH3/_new 2016-09-05 21:16:11.000000000 +0200 @@ -16,7 +16,7 @@ # -%define version_unconverted 0.6.2+suse20160805.dcfa37d +%define version_unconverted 0.6.2+suse20160826.4abd547 Name: multipath-tools BuildRequires: device-mapper-devel @@ -31,7 +31,7 @@ Requires: device-mapper >= 1.2.78 Requires: kpartx PreReq: %insserv_prereq %fillup_prereq coreutils grep -Version: 0.6.2+suse20160805.dcfa37d +Version: 0.6.2+suse20160826.4abd547 Release: 0 Summary: Tools to Manage Multipathed Devices with the device-mapper License: GPL-2.0 @@ -41,6 +41,7 @@ #FIXME: https://github.com/hreinecke/multipath-tools.git needs to #be moved to SUSE namespace Source: multipath-tools-%{version}.tar.xz +Source1: multipath.conf BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %suse_version > 1220 %define _sysdir usr/lib @@ -95,6 +96,8 @@ rm $RPM_BUILD_ROOT/%_lib/libmultipath.so mkdir -p $RPM_BUILD_ROOT/usr/sbin ln -sf /usr/sbin/service $RPM_BUILD_ROOT/usr/sbin/rcmultipathd +mkdir -p $RPM_BUILD_ROOT/usr/lib/modules-load.d +install -m 644 -D %{SOURCE1} "%buildroot/usr/lib/modules-load.d/multipath.conf" %pre [ -f /.buildenv ] && exit 0 @@ -144,6 +147,8 @@ %dir /%{_sysdir}/systemd/system /%{_sysdir}/systemd/system/multipathd.service /%{_sysdir}/systemd/system/multipathd.socket +%dir /usr/lib/modules-load.d +/usr/lib/modules-load.d/multipath.conf %{_mandir}/man8/multipath.8* %{_mandir}/man5/multipath.conf.5* %{_mandir}/man8/multipathd.8* ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.lmMkH3/_old 2016-09-05 21:16:12.000000000 +0200 +++ /var/tmp/diff_new_pack.lmMkH3/_new 2016-09-05 21:16:12.000000000 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/hreinecke/multipath-tools.git</param> - <param name="changesrevision">dcfa37d43f7c8eb1cd4f2f630c3cd4ca26022f11</param> + <param name="changesrevision">4abd547c2b2ba929f34183d6da768e4e239d6711</param> </service> </servicedata> ++++++ multipath-tools-0.6.2+suse20160805.dcfa37d.tar.xz -> multipath-tools-0.6.2+suse20160826.4abd547.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.6.2+suse20160805.dcfa37d/libmultipath/util.c new/multipath-tools-0.6.2+suse20160826.4abd547/libmultipath/util.c --- old/multipath-tools-0.6.2+suse20160805.dcfa37d/libmultipath/util.c 2016-08-05 09:08:34.000000000 +0200 +++ new/multipath-tools-0.6.2+suse20160826.4abd547/libmultipath/util.c 2016-08-26 08:56:04.000000000 +0200 @@ -2,13 +2,16 @@ #include <ctype.h> #include <sys/types.h> #include <sys/stat.h> +#include <dirent.h> #include <unistd.h> +#include <errno.h> #include "debug.h" #include "memory.h" #include "checkers.h" #include "vector.h" #include "structs.h" +#include "log.h" size_t strchop(char *str) @@ -258,3 +261,59 @@ return makedev(maj, min); } + +int systemd_service_enabled_in(const char *dev, const char *prefix) +{ + char path[PATH_SIZE], file[PATH_SIZE], service[PATH_SIZE]; + DIR *dirfd; + struct dirent *d; + int found = 0; + + snprintf(service, PATH_SIZE, "multipathd.service"); + snprintf(path, PATH_SIZE, "%s/systemd/system", prefix); + condlog(3, "%s: checking for %s in %s", dev, service, path); + + dirfd = opendir(path); + if (dirfd == NULL) + return 0; + + while ((d = readdir(dirfd)) != NULL) { + char *p; + struct stat stbuf; + + if ((strcmp(d->d_name,".") == 0) || + (strcmp(d->d_name,"..") == 0)) + continue; + + if (strlen(d->d_name) < 6) + continue; + + p = d->d_name + strlen(d->d_name) - 6; + if (strcmp(p, ".wants")) + continue; + snprintf(file, PATH_SIZE, "%s/%s/%s", + path, d->d_name, service); + if (stat(file, &stbuf) == 0) { + condlog(3, "%s: found %s", dev, file); + found++; + break; + } + } + closedir(dirfd); + + return found; +} + +int systemd_service_enabled(const char *dev) +{ + int found = 0; + + found = systemd_service_enabled_in(dev, "/etc"); + if (!found) + found = systemd_service_enabled_in(dev, "/usr/lib"); + if (!found) + found = systemd_service_enabled_in(dev, "/lib"); + if (!found) + found = systemd_service_enabled_in(dev, "/run"); + return found; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.6.2+suse20160805.dcfa37d/libmultipath/util.h new/multipath-tools-0.6.2+suse20160826.4abd547/libmultipath/util.h --- old/multipath-tools-0.6.2+suse20160805.dcfa37d/libmultipath/util.h 2016-08-05 09:08:34.000000000 +0200 +++ new/multipath-tools-0.6.2+suse20160826.4abd547/libmultipath/util.h 2016-08-26 08:56:04.000000000 +0200 @@ -10,6 +10,7 @@ int devt2devname (char *, int, char *); dev_t parse_devt(const char *dev_t); char *convert_dev(char *dev, int is_path_device); +int systemd_service_enabled(const char *dev); #define safe_sprintf(var, format, args...) \ snprintf(var, sizeof(var), format, ##args) >= sizeof(var) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.6.2+suse20160805.dcfa37d/multipath/main.c new/multipath-tools-0.6.2+suse20160826.4abd547/multipath/main.c --- old/multipath-tools-0.6.2+suse20160805.dcfa37d/multipath/main.c 2016-08-05 09:08:34.000000000 +0200 +++ new/multipath-tools-0.6.2+suse20160826.4abd547/multipath/main.c 2016-08-26 08:56:04.000000000 +0200 @@ -676,8 +676,12 @@ fd = mpath_connect(); if (fd == -1) { - printf("%s is not a valid multipath device path\n", - dev); + condlog(3, "%s: daemon is not running", dev); + if (!systemd_service_enabled(dev)) { + printf("%s is not a valid " + "multipath device path\n", dev); + goto out; + } goto out; } mpath_disconnect(fd); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.6.2+suse20160805.dcfa37d/multipath/multipath.rules new/multipath-tools-0.6.2+suse20160826.4abd547/multipath/multipath.rules --- old/multipath-tools-0.6.2+suse20160805.dcfa37d/multipath/multipath.rules 2016-08-05 09:08:34.000000000 +0200 +++ new/multipath-tools-0.6.2+suse20160826.4abd547/multipath/multipath.rules 2016-08-26 08:56:04.000000000 +0200 @@ -15,7 +15,7 @@ TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin" ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \ - PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \ + PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u -i %k", \ ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="none", \ ENV{SYSTEMD_READY}="0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/multipath-tools-0.6.2+suse20160805.dcfa37d/multipathd/multipathd.service new/multipath-tools-0.6.2+suse20160826.4abd547/multipathd/multipathd.service --- old/multipath-tools-0.6.2+suse20160805.dcfa37d/multipathd/multipathd.service 2016-08-05 09:08:34.000000000 +0200 +++ new/multipath-tools-0.6.2+suse20160826.4abd547/multipathd/multipathd.service 2016-08-26 08:56:04.000000000 +0200 @@ -1,8 +1,9 @@ [Unit] Description=Device-Mapper Multipath Device Controller +Wants=systemd-udev-trigger.service systemd-udev-settle.service Before=iscsi.service iscsid.service lvm2-lvmetad.service lvm2-activation.service Before=local-fs-pre.target blk-availability.service -After=multipathd.socket systemd-udevd.service systemd-udev-trigger.service +After=multipathd.socket systemd-udev-trigger.service systemd-udev-settle.service DefaultDependencies=no Conflicts=shutdown.target ++++++ multipath.conf ++++++ # Load device-handler and multipath module at boot scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm_multipath