sys-fs/multipath-tools: Sync with Gentoo

It's from Gentoo commit fd7626e3647bc6b81d7b538e4b690845ff2fa32f.
This commit is contained in:
Flatcar Buildbot 2023-03-27 07:24:26 +00:00
parent a4f38d4c0e
commit 45db029f99
4 changed files with 178 additions and 0 deletions

View File

@ -1 +1,2 @@
DIST multipath-tools-0.9.3.tar.gz 552442 BLAKE2B e2065119cdd68bd8c2b4420bd0de9ce370601597972dba32c076bfc4df6d0a1a65356454a2f96f95f27cf681387685edcbac2eb41258d4a7049a1ef62cdf0949 SHA512 4faa2ee5a96a9d5d752219931ebc885cb70ed6b022d45ede985ad7919c043a3aee166e6f126d32dffd187c5c32d5cbce91747d87d0b55557e2f7f68b279583da
DIST multipath-tools-0.9.4.tar.gz 554381 BLAKE2B 297f002e23312415467d8c4935da3b7f449318cd68120c719f40f0f45a9ebebc27f1297b918068b63471b65f72c08ce3cc6cad9b7bafcb646bb163c6486194ea SHA512 5e0dcea610fc215e345444c04453a38f39c73e493c2bc53f6b3a90cd701266aabdf7c4693dfc321099af836d0019bf27355e265ad5db5deff48f8bb94ed4719d

View File

@ -0,0 +1,45 @@
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -79,7 +79,7 @@
SYSTEMD_LIBDEPS := $(if $(SYSTEMD),$(if $(shell test $(SYSTEMD) -gt 209 && echo 1),-lsystemd,-lsystemd-daemon))
OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
-WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
+WARNFLAGS := -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
-Werror=implicit-function-declaration -Werror=format-security \
$(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) $(W_URCU_TYPE_LIMITS)
CPPFLAGS := $(FORTIFY_OPT) $(CPPFLAGS) \
--- a/create-config.mk
+++ b/create-config.mk
@@ -64,7 +64,7 @@
# gcc 4.8 compiles blacklist.c only with -Wno-missing-field-initializers
TEST_MISSING_INITIALIZERS = $(shell \
echo 'struct A {int a, b;}; struct B {struct A a; int b;} b = {.a.a=1};' | \
- $(CC) -c -Werror -Wmissing-field-initializers -o /dev/null -xc - >/dev/null 2>&1 \
+ $(CC) -c -Wmissing-field-initializers -o /dev/null -xc - >/dev/null 2>&1 \
|| echo -Wno-missing-field-initializers)
# gcc 4.8.4 and certain versions of liburcu fail to compile this with -Werror=type-limits
@@ -123,7 +123,7 @@
# Evaluates to "option" if yes, and "fallback" otherwise.
TEST_CC_OPTION = $(shell \
if echo 'int main(void){return 0;}' | \
- $(CC) -o /dev/null -c -Werror "$(1)" -xc - >/dev/null 2>&1; \
+ $(CC) -o /dev/null -c "$(1)" -xc - >/dev/null 2>&1; \
then \
echo "$(1)"; \
else \
@@ -135,11 +135,11 @@
# but it doesn't seem to make a difference wrt the compilation result.
FORTIFY_OPT := $(shell \
if /bin/echo -e '$(__HASH__)include <string.h>\nint main(void) { return 0; }' | \
- $(CC) -o /dev/null $(OPTFLAGS) -c -Werror -D_FORTIFY_SOURCE=3 -xc - 2>/dev/null; \
+ $(CC) -o /dev/null $(OPTFLAGS) -c -D_FORTIFY_SOURCE=3 -xc - 2>/dev/null; \
then \
echo "-D_FORTIFY_SOURCE=3"; \
elif /bin/echo -e '$(__HASH__)include <string.h>\nint main(void) { return 0; }' | \
- $(CC) -o /dev/null $(OPTFLAGS) -c -Werror -D_FORTIFY_SOURCE=2 -xc - 2>/dev/null; \
+ $(CC) -o /dev/null $(OPTFLAGS) -c -D_FORTIFY_SOURCE=2 -xc - 2>/dev/null; \
then \
echo "-D_FORTIFY_SOURCE=2"; \
fi)

View File

@ -0,0 +1,31 @@
https://listman.redhat.com/archives/dm-devel/2023-March/053587.html
From 2ebbff587e80f3f153b934d3cfcccb8a4bb21568 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Thu, 23 Mar 2023 08:04:49 +0000
Subject: [PATCH] tests: fix quoting of CFLAGS in Makefile
Otherwise, when CFLAGS/CPPFLAGS have multiple entries (like "-O2 -pipe"), we
get an error:
```
make[1]: Entering directory '/var/tmp/portage/sys-fs/multipath-tools-0.9.4/work/multipath-tools-0.9.4/tests'
/bin/sh: line 1: -pipe: command not found
make[1]: *** [Makefile:115: libmultipath.so.0] Error 127
make[1]: *** Waiting for unfinished jobs....
```
Signed-off-by: Sam James <sam@gentoo.org>
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -112,7 +112,7 @@ dep_clean:
# Pass the original values of CFLAGS etc. to the sub-make, which will include
# Makefile.in again. Otherwise, the flags would be added twice.
libmultipath.so.0: $(multipathdir)/libmultipath.so.0
- @CFLAGS=$(ORIG_CFLAGS) CPPFLAGS=$(ORIG_CPPFLAGS) LDFLAGS=$(ORIG_LDFLAGS) \
+ @CFLAGS="$(ORIG_CFLAGS)" CPPFLAGS="$(ORIG_CPPFLAGS)" LDFLAGS="$(ORIG_LDFLAGS)" \
$(MAKE) -C $(multipathdir) configdir=$(TESTDIR)/conf.d plugindir=$(TESTDIR)/lib test-lib
# COLON will get expanded during second expansion below
--
2.40.0

View File

@ -0,0 +1,101 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit linux-info systemd tmpfiles toolchain-funcs udev
DESCRIPTION="Device mapper target autoconfig"
HOMEPAGE="http://christophe.varoqui.free.fr/"
SRC_URI="https://github.com/opensvc/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="systemd test"
RESTRICT="!test? ( test )"
RDEPEND="
dev-libs/json-c:=
dev-libs/libaio
dev-libs/userspace-rcu:=
>=sys-fs/lvm2-2.02.45
sys-libs/readline:=
>=virtual/libudev-232-r3
systemd? ( sys-apps/systemd )
"
DEPEND="
${RDEPEND}
test? ( dev-util/cmocka )
"
BDEPEND="virtual/pkgconfig"
CONFIG_CHECK="~DM_MULTIPATH"
PATCHES=(
"${FILESDIR}"/${PN}-0.9.4-test-fix.patch
"${FILESDIR}"/${PN}-0.9.4-remove-Werror.patch
)
myemake() {
local myemakeargs=(
prefix="${EPREFIX}"
usr_prefix="${EPREFIX}/usr"
LIB="$(get_libdir)"
RUN=run
plugindir="${EPREFIX}/$(get_libdir)/multipath"
unitdir="$(systemd_get_systemunitdir)"
libudevdir="${EPREFIX}$(get_udevdir)"
GENTOO_CFLAGS="${CFLAGS}"
GENTOO_CPPFLAGS="${CPPFLAGS}"
FORTIFY_OPT=
OPTFLAGS=
FAKEVAR=1
V=1
)
emake "${myemakeargs[@]}" "$@"
}
src_prepare() {
default
sed -r -i -e '/^(CPPFLAGS|CFLAGS)\>/s,^(CPPFLAGS|CFLAGS)\>[[:space:]]+:=,\1 := $(GENTOO_\1),' \
"${S}"/Makefile.inc || die
}
src_compile() {
tc-export CC
myemake
}
src_test() {
myemake test
}
src_install() {
dodir /sbin
myemake DESTDIR="${ED}" install
einstalldocs
newinitd "${FILESDIR}"/multipathd-r1.rc multipathd
newinitd "${FILESDIR}"/multipath.rc multipath
find "${ED}" -type f -name '*.la' -delete || die
}
pkg_postinst() {
tmpfiles_process /usr/lib/tmpfiles.d/multipath.conf
udev_reload
if [[ -z ${REPLACING_VERSIONS} ]] ; then
elog "If you need multipath on your system, you must"
elog "add 'multipath' into your boot runlevel!"
fi
}
pkg_postrm() {
udev_reload
}