From 80e563697760e2f8adf23fc5e69c56655e9a79cc Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Wed, 9 Oct 2019 12:57:26 +0800 Subject: multipath-tools: upgrade 0.8.1 -> 0.8.2 Signed-off-by: Changqing Li Signed-off-by: Khem Raj --- ...-the-property-blacklist-exception-builtin.patch | 16 +-- ...ds-from-kernel-cmdline-mpath.wwids-with-A.patch | 57 ++++++----- ...-warn-on-invalid-regex-instead-of-failing.patch | 31 +++--- .../multipath-tools/multipath-tools_0.8.1.bb | 112 --------------------- .../multipath-tools/multipath-tools_0.8.2.bb | 112 +++++++++++++++++++++ 5 files changed, 165 insertions(+), 163 deletions(-) delete mode 100644 meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb create mode 100644 meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb diff --git a/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch index fd10608926..21b8ec6b06 100644 --- a/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch +++ b/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch @@ -1,7 +1,7 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From:Benjamin Marzinski -Date: Wed, 2 Jul 2014 12:49:53 -0500 -Subject: [PATCH] RH: Remove the property blacklist exception builtin +From 0000000000000000000000000000000000000000 Mon Sep 17 +00:00:00 2001 From:Benjamin Marzinski Date: Wed, 2 Jul +2014 12:49:53 -0500 Subject: [PATCH] RH: Remove the property blacklist +exception builtin Multipath set the default property blacklist exceptions to (ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal @@ -15,14 +15,14 @@ Signed-off-by: Benjamin Marzinski Upsteam-Status: Pending -Update patch to 0.8.0 +Update patch to 0.8.2 Signed-off-by: Changqing Li --- libmultipath/blacklist.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c -index e0d0279..9f58313 100644 +index 00e8dbd..5204501 100644 --- a/libmultipath/blacklist.c +++ b/libmultipath/blacklist.c @@ -192,12 +192,6 @@ setup_default_blist (struct config * conf) @@ -38,8 +38,8 @@ index e0d0279..9f58313 100644 str = STRDUP("^(td|hd|vd)[a-z]"); if (!str) return 1; -@@ -415,8 +409,11 @@ filter_property(struct config *conf, struct udev_device *udev, int lvl) - } +@@ -437,8 +431,11 @@ filter_property(struct config *conf, struct udev_device *udev, int lvl, + r = MATCH_NOTHING; } - log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl); diff --git a/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch index 938262ba47..724bef813a 100644 --- a/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch +++ b/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch @@ -1,7 +1,10 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski -Date: Fri, 17 Oct 2014 11:20:34 -0500 -Subject: [PATCH] RH: add wwids from kernel cmdline mpath.wwids with -A +From 0f54b3120ca06ff3168cdbf901a27b68c4638398 Mon Sep 17 00:00:00 2001 +From: Changqing Li +Date: Thu, 26 Sep 2019 16:29:48 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski Date: Fri, 17 + Oct 2014 11:20:34 -0500 Subject: [PATCH] RH: add wwids from kernel cmdline + mpath.wwids with -A This patch adds another option to multipath, "-A", which reads /proc/cmdline for mpath.wwid= options, and adds any wwids it finds @@ -16,7 +19,7 @@ Signed-off-by: Benjamin Marzinski Upstream-Status: Pending -Update this patch to new version 0.8.0 +Update this patch to new version 0.8.2 Signed-off-by: Changqing Li --- @@ -28,10 +31,10 @@ Signed-off-by: Changqing Li 5 files changed, 57 insertions(+), 1 deletion(-) diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c -index 53e7951..9ba9b62 100644 +index ef74812..19c4d68 100644 --- a/libmultipath/wwids.c +++ b/libmultipath/wwids.c -@@ -443,3 +443,47 @@ int op ## _wwid(const char *wwid) \ +@@ -444,3 +444,47 @@ int op ## _wwid(const char *wwid) \ declare_failed_wwid_op(is_failed, false) declare_failed_wwid_op(mark_failed, true) declare_failed_wwid_op(unmark_failed, true) @@ -92,27 +95,27 @@ index 0c6ee54..e32a0b0 100644 enum { WWID_IS_NOT_FAILED = 0, diff --git a/multipath/main.c b/multipath/main.c -index 5abb118..c751b31 100644 +index 96a1146..5fc65ef 100644 --- a/multipath/main.c +++ b/multipath/main.c -@@ -134,6 +134,7 @@ usage (char * progname) - fprintf (stderr, VERSION_STRING); - fprintf (stderr, "Usage:\n"); - fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); -+ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); - fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname); - fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname); - fprintf (stderr, " %s [-t|-T]\n", progname); -@@ -147,6 +148,8 @@ usage (char * progname) +@@ -139,6 +139,7 @@ usage (char * progname) + fprintf (stderr, " %s [-v level] [-l|-ll] [device]\n", progname); + fprintf (stderr, " %s [-v level] [-a|-w] device\n", progname); + fprintf (stderr, " %s [-v level] -W\n", progname); ++ fprintf (stderr, " %s [-v level] -A\n", progname); + fprintf (stderr, " %s [-v level] [-i] [-c|-C] device\n", progname); + fprintf (stderr, " %s [-v level] [-i] [-u|-U]\n", progname); + fprintf (stderr, " %s [-h|-t|-T]\n", progname); +@@ -151,6 +152,8 @@ usage (char * progname) " -f flush a multipath device map\n" " -F flush all multipath device maps\n" " -a add a device wwid to the wwids file\n" -+ " -A add devices from kernel command line mpath.wwids\n" -+ " parameters to wwids file\n" ++ " -A add devices from kernel command line mpath.wwids\n" ++ " parameters to wwids file\n" " -c check if a device should be a path in a multipath device\n" " -C check if a multipath device has usable paths\n" " -q allow queue_if_no_path when multipathd is not running\n" -@@ -870,7 +873,7 @@ main (int argc, char *argv[]) +@@ -905,7 +908,7 @@ main (int argc, char *argv[]) exit(RTVL_FAIL); multipath_conf = conf; conf->retrigger_tries = 0; @@ -121,17 +124,17 @@ index 5abb118..c751b31 100644 switch(arg) { case 1: printf("optarg : %s\n",optarg); break; -@@ -937,6 +940,10 @@ main (int argc, char *argv[]) - case 't': - r = dump_config(conf, NULL, NULL) ? RTVL_FAIL : RTVL_OK; - goto out_free_config; +@@ -998,6 +1001,10 @@ main (int argc, char *argv[]) + case 'R': + retries = atoi(optarg); + break; + case 'A': + if (remember_cmdline_wwid() != 0) + exit(1); + exit(0); - case 'T': - cmd = CMD_DUMP_CONFIG; - break; + case ':': + fprintf(stderr, "Missing option argument\n"); + usage(argv[0]); diff --git a/multipath/multipath.8 b/multipath/multipath.8 index 9cdd05a..1e120f3 100644 --- a/multipath/multipath.8 diff --git a/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch index 95624ad7a9..c59edbbb27 100644 --- a/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch +++ b/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch @@ -1,10 +1,7 @@ -From 56d65ecb1c6d814929f6ff3159ade09dc203cc83 Mon Sep 17 00:00:00 2001 -From: Changqing Li -Date: Mon, 26 Nov 2018 10:31:30 +0800 -Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 - 00:00:00 2001 From: Benjamin Marzinski Date: Mon, 6 Nov - 2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of - failing +From 0000000000000000000000000000000000000000 Mon Sep 17 +00:00:00 2001 From: Benjamin Marzinski Date: Mon, 6 Nov +2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of +failing multipath.conf used to allow "*" as a match everything regular expression, instead of requiring ".*". Instead of erroring when the old style @@ -15,10 +12,9 @@ Signed-off-by: Benjamin Marzinski Upstream-Status: Pending -update this patch to new version +update this patch to 0.8.2 Signed-off-by: Changqing Li - --- libmultipath/dict.c | 29 ++++++++++++++++++++++------- libmultipath/parser.c | 13 +++++++++++++ @@ -26,7 +22,7 @@ Signed-off-by: Changqing Li 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/libmultipath/dict.c b/libmultipath/dict.c -index eaad4f1..fb30577 100644 +index c6eba0f..05ed3d8 100644 --- a/libmultipath/dict.c +++ b/libmultipath/dict.c @@ -59,6 +59,21 @@ set_str(vector strvec, void *ptr) @@ -51,7 +47,7 @@ index eaad4f1..fb30577 100644 set_yes_no(vector strvec, void *ptr) { char * buff; -@@ -1373,8 +1388,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \ +@@ -1415,8 +1430,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \ \ if (!conf->option) \ return 1; \ @@ -62,7 +58,7 @@ index eaad4f1..fb30577 100644 if (!buff) \ return 1; \ \ -@@ -1390,7 +1405,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \ +@@ -1432,7 +1447,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \ if (!conf->option) \ return 1; \ \ @@ -71,7 +67,7 @@ index eaad4f1..fb30577 100644 if (!buff) \ return 1; \ \ -@@ -1493,16 +1508,16 @@ device_handler(struct config *conf, vector strvec) +@@ -1535,16 +1550,16 @@ device_handler(struct config *conf, vector strvec) return 0; } @@ -93,11 +89,11 @@ index eaad4f1..fb30577 100644 declare_hw_handler(hwhandler, set_str) diff --git a/libmultipath/parser.c b/libmultipath/parser.c -index 92ef7cf..0e2cf49 100644 +index e00c5ff..6ca5842 100644 --- a/libmultipath/parser.c +++ b/libmultipath/parser.c -@@ -384,6 +384,19 @@ set_value(vector strvec) - return alloc; +@@ -382,6 +382,19 @@ oom: + return NULL; } +void * @@ -128,3 +124,6 @@ index 62906e9..b791705 100644 extern int process_file(struct config *conf, char *conf_file); extern struct keyword * find_keyword(vector keywords, vector v, char * name); int snprint_keyword(char *buff, int len, char *fmt, struct keyword *kw, +-- +2.7.4 + diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb deleted file mode 100644 index 8d86e606c6..0000000000 --- a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.1.bb +++ /dev/null @@ -1,112 +0,0 @@ -SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver" - -DESCRIPTION = "It provides tools to manage multipath devices \ -by instructing the device-mapper kernel module what to do. These \ -tools include: \ -1. multipath - Scan the system for multipath devices and assemble them.\ -2. multipathd - Detects when paths fail and execs multipath to update \ -things.\ -3. mpathpersist - Persistent reservation management feature allows \ -cluster management software to manage persistent reservation through \ -mpath device. It processes management requests from callers and hides \ -the management task details. It also handles persistent reservation \ -management of data path life cycle and state changes.\ -4. kpartx - This tool, derived from util-linux's partx, reads partition \ -tables on specified device and create device maps over partitions \ -segments detected. It is called from hotplug upon device maps creation \ -and deletion" - -HOMEPAGE = "http://christophe.varoqui.free.fr/" - -DEPENDS = "libdevmapper \ - lvm2 \ - libaio \ - liburcu \ - readline \ - udev \ - json-c \ - " - -LICENSE = "GPLv2" - -SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ - file://multipathd.oe \ - file://multipath.conf.example \ - file://0021-RH-fixup-udev-rules-for-redhat.patch \ - file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \ - file://0023-RH-don-t-start-without-a-config-file.patch \ - file://0024-RH-use-rpm-optflags-if-present.patch \ - file://0025-RH-add-mpathconf.patch \ - file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \ - file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \ - file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \ - file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \ - file://0030-Always-use-devmapper.patch \ - file://0031-Always-use-devmapper-for-kpartx.patch \ - " - -LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" - -SRCREV = "e23b5d7cf67a9c543e118f2f6b902594a02a804a" - -S = "${WORKDIR}/git" - -inherit systemd pkgconfig - -SYSTEMD_SERVICE_${PN} = "multipathd.service" -SYSTEMD_AUTO_ENABLE = "disable" - -TARGET_CC_ARCH += "${LDFLAGS}" - -# multipath-tools includes a copy of the valgrind.h header -# file and uses the macros to suppress some false positives. However, -# that only works on ARM when thumb is disabled. Otherwise one gets: -# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3' -# ../Makefile.inc:66: recipe for target 'debug.o' failed -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" - -# The exact version of SYSTEMD does not matter but should be greater than 209. -# -EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \ - OPTFLAGS="${CFLAGS}" \ - bindir=${base_sbindir} \ - LIB=${base_libdir} libdir=${base_libdir}/multipath \ - unitdir=${systemd_system_unitdir} \ - ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \ - ' - -do_install() { - oe_runmake install - - # We copy an initscript, but do not start multipathd at init time. - # - if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then - install -d ${D}${sysconfdir}/init.d - cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd - fi - - install -d ${D}${sysconfdir} - install -m 0644 ${WORKDIR}/multipath.conf.example \ - ${D}${sysconfdir}/multipath.conf.example -} - -FILES_${PN}-dbg += "${base_libdir}/multipath/.debug" - -PACKAGES =+ "${PN}-libs" -FILES_${PN}-libs = "${base_libdir}/lib*.so.* \ - ${base_libdir}/multipath/lib*.so*" -RDEPENDS_${PN} += "${PN}-libs bash" - -PROVIDES += "device-mapper-multipath" -RPROVIDES_${PN} += "device-mapper-multipath" -RPROVIDES_${PN}-libs += "device-mapper-multipath-libs" - -FILES_${PN}-dev += "${base_libdir}/pkgconfig" - -PACKAGES =+ "kpartx" -FILES_kpartx = "${base_sbindir}/kpartx \ - ${nonarch_libdir}/udev/kpartx_id \ - " - -RDEPENDS_${PN} += "kpartx" diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb new file mode 100644 index 0000000000..06e78c78cb --- /dev/null +++ b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.2.bb @@ -0,0 +1,112 @@ +SUMMARY = "The upstream project used to drive the Device Mapper multipathing driver" + +DESCRIPTION = "It provides tools to manage multipath devices \ +by instructing the device-mapper kernel module what to do. These \ +tools include: \ +1. multipath - Scan the system for multipath devices and assemble them.\ +2. multipathd - Detects when paths fail and execs multipath to update \ +things.\ +3. mpathpersist - Persistent reservation management feature allows \ +cluster management software to manage persistent reservation through \ +mpath device. It processes management requests from callers and hides \ +the management task details. It also handles persistent reservation \ +management of data path life cycle and state changes.\ +4. kpartx - This tool, derived from util-linux's partx, reads partition \ +tables on specified device and create device maps over partitions \ +segments detected. It is called from hotplug upon device maps creation \ +and deletion" + +HOMEPAGE = "http://christophe.varoqui.free.fr/" + +DEPENDS = "libdevmapper \ + lvm2 \ + libaio \ + liburcu \ + readline \ + udev \ + json-c \ + " + +LICENSE = "GPLv2" + +SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ + file://multipathd.oe \ + file://multipath.conf.example \ + file://0021-RH-fixup-udev-rules-for-redhat.patch \ + file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \ + file://0023-RH-don-t-start-without-a-config-file.patch \ + file://0024-RH-use-rpm-optflags-if-present.patch \ + file://0025-RH-add-mpathconf.patch \ + file://0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \ + file://0027-RH-warn-on-invalid-regex-instead-of-failing.patch \ + file://0028-RH-reset-default-find_mutipaths-value-to-off.patch \ + file://0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \ + file://0030-Always-use-devmapper.patch \ + file://0031-Always-use-devmapper-for-kpartx.patch \ + " + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +SRCREV = "8a7e9b6648898f2c2d2bbd2d22871f79612e716e" + +S = "${WORKDIR}/git" + +inherit systemd pkgconfig + +SYSTEMD_SERVICE_${PN} = "multipathd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +TARGET_CC_ARCH += "${LDFLAGS}" + +# multipath-tools includes a copy of the valgrind.h header +# file and uses the macros to suppress some false positives. However, +# that only works on ARM when thumb is disabled. Otherwise one gets: +# Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r12,r12,ror#3' +# ../Makefile.inc:66: recipe for target 'debug.o' failed +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +# The exact version of SYSTEMD does not matter but should be greater than 209. +# +EXTRA_OEMAKE = 'MULTIPATH_VERSION=${PV} DESTDIR=${D} syslibdir=${base_libdir} \ + OPTFLAGS="${CFLAGS}" \ + bindir=${base_sbindir} \ + LIB=${base_libdir} libdir=${base_libdir}/multipath \ + unitdir=${systemd_system_unitdir} \ + ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "SYSTEMD=216", "", d)} \ + ' + +do_install() { + oe_runmake install + + # We copy an initscript, but do not start multipathd at init time. + # + if ${@bb.utils.contains('DISTRO_FEATURES','sysvinit','true','false',d)};then + install -d ${D}${sysconfdir}/init.d + cp ${WORKDIR}/multipathd.oe ${D}${sysconfdir}/init.d/multipathd + fi + + install -d ${D}${sysconfdir} + install -m 0644 ${WORKDIR}/multipath.conf.example \ + ${D}${sysconfdir}/multipath.conf.example +} + +FILES_${PN}-dbg += "${base_libdir}/multipath/.debug" + +PACKAGES =+ "${PN}-libs" +FILES_${PN}-libs = "${base_libdir}/lib*.so.* \ + ${base_libdir}/multipath/lib*.so*" +RDEPENDS_${PN} += "${PN}-libs bash" + +PROVIDES += "device-mapper-multipath" +RPROVIDES_${PN} += "device-mapper-multipath" +RPROVIDES_${PN}-libs += "device-mapper-multipath-libs" + +FILES_${PN}-dev += "${base_libdir}/pkgconfig" + +PACKAGES =+ "kpartx" +FILES_kpartx = "${base_sbindir}/kpartx \ + ${nonarch_libdir}/udev/kpartx_id \ + " + +RDEPENDS_${PN} += "kpartx" -- cgit v1.2.3-54-g00ecf