From e066ac569fb8fed5b8abda982c893b7c15e6fc05 Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski Date: Fri, 19 Aug 2022 17:10:27 -0500 Subject: [PATCH] device-mapper-multipath-0.8.7-11 Add 0059-multipathd-Add-missing-ctype-include.patch Add 0060-multipathd-replace-libreadline-with-libedit.patch * replace readline with libedit, to avoid license conflicts Resolves: bz #2119896 --- ...multipathd-Add-missing-ctype-include.patch | 26 +++++ ...thd-replace-libreadline-with-libedit.patch | 103 ++++++++++++++++++ device-mapper-multipath.spec | 13 ++- 3 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 0059-multipathd-Add-missing-ctype-include.patch create mode 100644 0060-multipathd-replace-libreadline-with-libedit.patch diff --git a/0059-multipathd-Add-missing-ctype-include.patch b/0059-multipathd-Add-missing-ctype-include.patch new file mode 100644 index 0000000..7e2d464 --- /dev/null +++ b/0059-multipathd-Add-missing-ctype-include.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Bastian Germann +Date: Thu, 14 Oct 2021 00:34:33 +0200 +Subject: [PATCH] multipathd: Add missing ctype include + +In uxclnt.c, there are isspace calls. Add an explicit include. + +Signed-off-by: Bastian Germann +Reviewed-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + multipathd/uxclnt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/multipathd/uxclnt.c b/multipathd/uxclnt.c +index a76f8e29..f16a7309 100644 +--- a/multipathd/uxclnt.c ++++ b/multipathd/uxclnt.c +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/0060-multipathd-replace-libreadline-with-libedit.patch b/0060-multipathd-replace-libreadline-with-libedit.patch new file mode 100644 index 0000000..20d67b7 --- /dev/null +++ b/0060-multipathd-replace-libreadline-with-libedit.patch @@ -0,0 +1,103 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Fri, 12 Aug 2022 18:58:15 +0200 +Subject: [PATCH] multipathd: replace libreadline with libedit + +Linking multipathd with libreadline may cause a license conflict, +because libreadline is licensed under GPL-3.0-or-later, and +libmultipath contains several files under GPL-2.0. + +See: + https://github.com/opensvc/multipath-tools/issues/36 + https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=979095 + https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility + +Replace the readline functionality with libedit, which comes under +a BSD license. The readline library can still be enabled (e.g. for +binaries not intended to be distributed) by running +"make READLINE=libreadline". + +Signed-off-by: Martin Wilck +Signed-off-by: Benjamin Marzinski +--- + Makefile.inc | 5 +++++ + multipathd/Makefile | 12 +++++++++++- + multipathd/cli.c | 5 +++++ + multipathd/uxclnt.c | 6 ++++++ + 4 files changed, 27 insertions(+), 1 deletion(-) + +diff --git a/Makefile.inc b/Makefile.inc +index 688c4599..05027703 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -14,6 +14,11 @@ + # + # Uncomment to disable dmevents polling support + # ENABLE_DMEVENTS_POLL = 0 ++# ++# Readline library to use, libedit or libreadline ++# Caution: Using libreadline may make the multipathd binary undistributable, ++# see https://github.com/opensvc/multipath-tools/issues/36 ++READLINE = libedit + + PKGCONFIG ?= pkg-config + +diff --git a/multipathd/Makefile b/multipathd/Makefile +index cd6f7e6d..00342464 100644 +--- a/multipathd/Makefile ++++ b/multipathd/Makefile +@@ -19,7 +19,17 @@ CFLAGS += $(BIN_CFLAGS) -I$(multipathdir) -I$(mpathpersistdir) \ + LDFLAGS += $(BIN_LDFLAGS) + LIBDEPS += -L$(multipathdir) -lmultipath -L$(mpathpersistdir) -lmpathpersist \ + -L$(mpathcmddir) -lmpathcmd -ludev -ldl -lurcu -lpthread \ +- -ldevmapper -lreadline ++ -ldevmapper ++ ++ifeq ($(READLINE),libedit) ++CFLAGS += -DUSE_LIBEDIT ++LIBDEPS += -ledit ++endif ++ifeq ($(READLINE),libreadline) ++CFLAGS += -DUSE_LIBREADLINE ++LIBDEPS += -lreadline ++endif ++ + CFLAGS += $(shell $(PKGCONFIG) --modversion liburcu 2>/dev/null | \ + awk -F. '{ printf("-DURCU_VERSION=0x%06x", 256 * ( 256 * $$1 + $$2) + $$3); }') + +diff --git a/multipathd/cli.c b/multipathd/cli.c +index 4d6c37c9..cc547e67 100644 +--- a/multipathd/cli.c ++++ b/multipathd/cli.c +@@ -11,7 +11,12 @@ + #include "parser.h" + #include "util.h" + #include "version.h" ++#ifdef USE_LIBEDIT ++#include ++#endif ++#ifdef USE_LIBREADLINE + #include ++#endif + + #include "mpath_cmd.h" + #include "cli.h" +diff --git a/multipathd/uxclnt.c b/multipathd/uxclnt.c +index f16a7309..2c17d8fc 100644 +--- a/multipathd/uxclnt.c ++++ b/multipathd/uxclnt.c +@@ -16,8 +16,14 @@ + #include + #include + #include ++ ++#ifdef USE_LIBEDIT ++#include ++#endif ++#ifdef USE_LIBREADLINE + #include + #include ++#endif + + #include "mpath_cmd.h" + #include "uxsock.h" diff --git a/device-mapper-multipath.spec b/device-mapper-multipath.spec index fcd2ef0..37fb28a 100644 --- a/device-mapper-multipath.spec +++ b/device-mapper-multipath.spec @@ -1,6 +1,6 @@ Name: device-mapper-multipath Version: 0.8.7 -Release: 10%{?dist} +Release: 11%{?dist} Summary: Tools to manage multipath devices using device-mapper License: GPLv2 URL: http://christophe.varoqui.free.fr/ @@ -68,6 +68,8 @@ Patch0055: 0055-libmultipath-Add-documentation-for-the-protocol-subs.patch Patch0056: 0056-libmultipath-use-symbolic-value-for-invalid-pcentry.patch Patch0057: 0057-updated-HPE-MSA-builtin-config.patch Patch0058: 0058-libmultipath-unset-detect_checker-for-clariion-Unity.patch +Patch0059: 0059-multipathd-Add-missing-ctype-include.patch +Patch0060: 0060-multipathd-replace-libreadline-with-libedit.patch # runtime @@ -75,6 +77,7 @@ Requires: %{name}-libs = %{version}-%{release} Requires: kpartx = %{version}-%{release} Requires: device-mapper >= 1.02.96 Requires: userspace-rcu +Requires: libedit Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units @@ -92,7 +95,7 @@ Conflicts: udisks2 < 2.8.0-2 # build/setup BuildRequires: libaio-devel, device-mapper-devel >= 1.02.89 BuildRequires: libselinux-devel, libsepol-devel -BuildRequires: readline-devel, ncurses-devel +BuildRequires: libedit-devel, ncurses-devel BuildRequires: systemd-units, systemd-devel BuildRequires: json-c-devel, perl-interpreter, pkgconfig, gcc BuildRequires: userspace-rcu-devel @@ -267,6 +270,12 @@ fi %{_pkgconfdir}/libdmmp.pc %changelog +* Fri Aug 19 2022 Benjamin Marzinski - 0.8.7-11 +- Add 0059-multipathd-Add-missing-ctype-include.patch +- Add 0060-multipathd-replace-libreadline-with-libedit.patch + * replace readline with libedit, to avoid license conflicts +- Resolves: bz #2119896 + * Wed Jun 8 2022 Benjamin Marzinski - 0.8.7-10 - Add 0058-libmultipath-unset-detect_checker-for-clariion-Unity.patch - Resolves: bz #2090913