Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-fs/multipath-tools/files/, sys-fs/multipath-tools/
Date: Mon, 11 May 2020 11:53:21
Message-Id: 1589197992.eb22b954c177b5c1e2b6ed5c7cdd02f40f40d757.polynomial-c@gentoo
1 commit: eb22b954c177b5c1e2b6ed5c7cdd02f40f40d757
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Mon May 11 11:51:43 2020 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Mon May 11 11:53:12 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eb22b954
7
8 sys-fs/multipath-tools: Bump to version 0.8.4
9
10 Package-Manager: Portage-2.3.99, Repoman-2.3.22
11 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
12
13 sys-fs/multipath-tools/Manifest | 1 +
14 .../multipath-tools-0.8.4-parallel_make_fix.patch | 85 ++++++++++++++++++++
15 .../multipath-tools-0.8.4-respect-flags.patch | 19 +++++
16 .../multipath-tools/multipath-tools-0.8.4.ebuild | 93 ++++++++++++++++++++++
17 4 files changed, 198 insertions(+)
18
19 diff --git a/sys-fs/multipath-tools/Manifest b/sys-fs/multipath-tools/Manifest
20 index fa9c2ed1f14..03297803016 100644
21 --- a/sys-fs/multipath-tools/Manifest
22 +++ b/sys-fs/multipath-tools/Manifest
23 @@ -3,3 +3,4 @@ DIST multipath-tools-0.7.9.tar.gz 419377 BLAKE2B 29003b7ce2d673eb59d869e21650286
24 DIST multipath-tools-0.8.1.tar.gz 447883 BLAKE2B c840ede03fd15763cd947a71596bf3a2e5935433d956208225f4fd6ed55074e2d9709f8b0e6c059a58d44b6649f52b3564d6651ea1af6186138357ba37f86b14 SHA512 1f87f974aace746ecac8af6ae330de16affe49cc89a5660b28be3b1c4a69f822da01042432176e64b5de6ad3a6568044954fdce8e3aa31e85611a595a4939947
25 DIST multipath-tools-0.8.2.tar.gz 458879 BLAKE2B a5aae1c9b211c788b658cf53e1c966bb9dd39dbe3e81058d6c758ba11cfd77ebfbc9d70bfde5b41d00fb1d4fbf31f3d2e6d58c69179e8842b9f5b8e9edd0b755 SHA512 c809e652479a8b6b141fd69810dbba316d93368ec6cf1c57f479ccde50e3ccf0bebe1b62e9db4791135aec45a90761f9100635f0ffa4b175ce9c2d82ebcea5c9
26 DIST multipath-tools-0.8.3.tar.gz 465248 BLAKE2B 21a7a18c70150b4422bdd0ae02f26f491845eb06928ab74e631df8c6b3c110d10f43f75b9f8289a7134826c923b7ba58ce54c40497c3b7e6211e53902c8a1b5f SHA512 d9fdc2763f5a1efa15ee07c5d863008c9694623935f62a0e0b56f941df4e0d0ca3f86056fefc9b5ca828b47782127e3d55f2f925b1ed957e02b675bef36f4cae
27 +DIST multipath-tools-0.8.4.tar.gz 480994 BLAKE2B be8368df049218e2eaa1749e7b1c7a930da15f0311ab549b1bbba9c019dcfe39f90a05fd621e0703301ef1d55c98ac8cc74231d82950d9066f19d8764421704b SHA512 720823188c053c1c50269a30e34a9d69099098495bfd607076bcfa2c079565e3f0580c91783f19d42ed82290c0db98e4e19ef620eca4ee5ec7885c49c72d2307
28
29 diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.8.4-parallel_make_fix.patch b/sys-fs/multipath-tools/files/multipath-tools-0.8.4-parallel_make_fix.patch
30 new file mode 100644
31 index 00000000000..651cd04f59f
32 --- /dev/null
33 +++ b/sys-fs/multipath-tools/files/multipath-tools-0.8.4-parallel_make_fix.patch
34 @@ -0,0 +1,85 @@
35 +From 041472afebd1e621be1143f2bfb4c5650df171cc Mon Sep 17 00:00:00 2001
36 +From: Lars Wendler <polynomial-c@g.o>
37 +Date: Mon, 11 May 2020 11:49:58 +0200
38 +Subject: [PATCH] multipath-tools: Fix parallel make issues
39 +
40 +build is broken like this (tested with -j16):
41 +
42 + x86_64-pc-linux-gnu-gcc -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -shared -lpthread -ldevmapper -ldl -L../libmultipath -lmultipath -L../libmpathcmd -lmpathcmd -Wl,-soname=libmpathpersist.so.0 -o libmpathpersist.so.0 mpath_persist.o mpath_updatepr.o mpath_pr_ioctl.o
43 + building defaults.o because of defaults.c
44 + ...
45 + /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lmultipath
46 + collect2: error: ld returned 1 exit status
47 + make[1]: *** [Makefile:17: libmpathpersist.so.0] Error 1
48 + make: *** [Makefile:29: libmpathpersist] Error 2
49 + make: *** Waiting for unfinished jobs....
50 +
51 +install is broken like this:
52 +
53 + install -m 755 libprio*.so /var/tmp/portage/sys-fs/multipath-tools-0.8.4/image/lib64/multipath
54 + install -m 755 libcheckcciss_tur.so libcheckreadsector0.so libchecktur.so libcheckdirectio.so libcheckemc_clariion.so libcheckhp_sw.so libcheckrdac.so /var/tmp/portage/sys-fs/multipath-tools-0.8.4/image/lib64/multipath
55 + ...
56 + /usr/bin/install: target '/var/tmp/portage/sys-fs/multipath-tools-0.8.4/image/lib64/multipath' is not a directory
57 + /usr/bin/install: target '/var/tmp/portage/sys-fs/multipath-tools-0.8.4/image/lib64/multipath' is not a directory
58 + make[1]: *** [Makefile:28: install] Error 1
59 + make[1]: *** [Makefile:38: install] Error 1
60 +---
61 + Makefile | 3 ++-
62 + libmultipath/checkers/Makefile | 1 +
63 + libmultipath/foreign/Makefile | 1 +
64 + libmultipath/prioritizers/Makefile | 1 +
65 + 4 files changed, 5 insertions(+), 1 deletion(-)
66 +
67 +diff --git a/Makefile b/Makefile
68 +index 1dee3680..a9ade94f 100644
69 +--- a/Makefile
70 ++++ b/Makefile
71 +@@ -29,7 +29,8 @@ $(BUILDDIRS):
72 + $(MAKE) -C $@
73 +
74 + multipath multipathd mpathpersist: libmultipath
75 +-mpathpersist: libmpathpersist
76 ++libmpathpersist: libmultipath
77 ++mpathpersist: libmultipath libmpathpersist
78 +
79 + $(BUILDDIRS.clean):
80 + $(MAKE) -C ${@:.clean=} clean
81 +diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
82 +index 02caea64..f201ca4c 100644
83 +--- a/libmultipath/checkers/Makefile
84 ++++ b/libmultipath/checkers/Makefile
85 +@@ -24,6 +24,7 @@ libcheck%.so: libsg.o %.o
86 + $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^
87 +
88 + install:
89 ++ $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(libdir)
90 + $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(libdir)
91 +
92 + uninstall:
93 +diff --git a/libmultipath/foreign/Makefile b/libmultipath/foreign/Makefile
94 +index fae58a0d..567deebd 100644
95 +--- a/libmultipath/foreign/Makefile
96 ++++ b/libmultipath/foreign/Makefile
97 +@@ -14,6 +14,7 @@ libforeign-%.so: %.o
98 + $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^
99 +
100 + install:
101 ++ $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(libdir)
102 + $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(libdir)
103 +
104 + uninstall:
105 +diff --git a/libmultipath/prioritizers/Makefile b/libmultipath/prioritizers/Makefile
106 +index 9d0fe03c..b0b0b522 100644
107 +--- a/libmultipath/prioritizers/Makefile
108 ++++ b/libmultipath/prioritizers/Makefile
109 +@@ -35,6 +35,7 @@ libprio%.so: %.o
110 + $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^
111 +
112 + install: $(LIBS)
113 ++ $(INSTALL_PROGRAM) -m 755 -d $(DESTDIR)$(libdir)
114 + $(INSTALL_PROGRAM) -m 755 libprio*.so $(DESTDIR)$(libdir)
115 +
116 + uninstall:
117 +--
118 +2.26.2
119 +
120
121 diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.8.4-respect-flags.patch b/sys-fs/multipath-tools/files/multipath-tools-0.8.4-respect-flags.patch
122 new file mode 100644
123 index 00000000000..5e5258405b4
124 --- /dev/null
125 +++ b/sys-fs/multipath-tools/files/multipath-tools-0.8.4-respect-flags.patch
126 @@ -0,0 +1,19 @@
127 +--- multipath-tools-0.8.4-d491591/Makefile.inc
128 ++++ multipath-tools-0.8.4-d491591/Makefile.inc
129 +@@ -99,12 +99,13 @@
130 + -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) \
131 + $(STACKPROT) --param=ssp-buffer-size=4
132 + CPPFLAGS := -Wp,-D_FORTIFY_SOURCE=2
133 +-CFLAGS := $(OPTFLAGS) -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \
134 +- -MMD -MP $(CFLAGS)
135 ++CFLAGS ?= $(OPTFLAGS)
136 ++CFLAGS += -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \
137 ++ -MMD -MP
138 + BIN_CFLAGS = -fPIE -DPIE
139 + LIB_CFLAGS = -fPIC
140 + SHARED_FLAGS = -shared
141 +-LDFLAGS = -Wl,-z,relro -Wl,-z,now
142 ++LDFLAGS += -Wl,-z,relro -Wl,-z,now
143 + BIN_LDFLAGS = -pie
144 +
145 + # Check whether a function with name $1 has been declared in header file $2.
146
147 diff --git a/sys-fs/multipath-tools/multipath-tools-0.8.4.ebuild b/sys-fs/multipath-tools/multipath-tools-0.8.4.ebuild
148 new file mode 100644
149 index 00000000000..ab4f6f9cd3c
150 --- /dev/null
151 +++ b/sys-fs/multipath-tools/multipath-tools-0.8.4.ebuild
152 @@ -0,0 +1,93 @@
153 +# Copyright 1999-2020 Gentoo Authors
154 +# Distributed under the terms of the GNU General Public License v2
155 +
156 +EAPI="7"
157 +
158 +inherit linux-info systemd toolchain-funcs udev vcs-snapshot toolchain-funcs
159 +
160 +DESCRIPTION="Device mapper target autoconfig"
161 +HOMEPAGE="http://christophe.varoqui.free.fr/"
162 +SRC_URI="https://git.opensvc.com/?p=multipath-tools/.git;a=snapshot;h=${PV};sf=tgz -> ${P}.tar.gz"
163 +
164 +LICENSE="GPL-2"
165 +SLOT="0"
166 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
167 +IUSE="systemd rbd"
168 +
169 +BDEPEND="virtual/pkgconfig"
170 +
171 +RDEPEND="
172 + dev-libs/json-c:=
173 + dev-libs/libaio
174 + dev-libs/userspace-rcu:=
175 + >=sys-fs/lvm2-2.02.45
176 + >=virtual/libudev-232-r3
177 + sys-libs/readline:0=
178 + rbd? ( sys-cluster/ceph )
179 + systemd? ( sys-apps/systemd )
180 +"
181 +
182 +DEPEND="${RDEPEND}"
183 +
184 +CONFIG_CHECK="~DM_MULTIPATH"
185 +
186 +RESTRICT="test"
187 +
188 +PATCHES=(
189 + "${FILESDIR}"/${PN}-0.8.4-respect-flags.patch
190 + "${FILESDIR}"/${PN}-0.8.3-no-gziped-docs.patch
191 + "${FILESDIR}"/${PN}-0.8.3-json-c-0.14.patch
192 + "${FILESDIR}"/${PN}-0.8.4-parallel_make_fix.patch
193 +)
194 +
195 +get_systemd_pv() {
196 + use systemd && \
197 + $(tc-getPKG_CONFIG) --modversion systemd
198 +}
199 +
200 +src_prepare() {
201 + default
202 +
203 + # The upstream lacks any way to configure the build at present
204 + # and ceph is a huge dependency, so we're using sed to make it
205 + # optional until the upstream has a proper configure system
206 + if ! use rbd ; then
207 + sed \
208 + -e "s/libcheckrbd.so/# libcheckrbd.so/" \
209 + -e "s/-lrados//" \
210 + -i libmultipath/checkers/Makefile \
211 + || die
212 + fi
213 +}
214 +
215 +src_compile() {
216 + # LIBDM_API_FLUSH involves grepping files in /usr/include,
217 + # so force the test to go the way we want #411337.
218 + emake \
219 + CC="$(tc-getCC)" \
220 + LIBDM_API_FLUSH=1 SYSTEMD="$(get_systemd_pv)"
221 +}
222 +
223 +src_install() {
224 + dodir /sbin /usr/share/man/man{3,5,8}
225 + emake \
226 + DESTDIR="${D}" \
227 + RUN=run \
228 + SYSTEMD=$(get_systemd_pv) \
229 + unitdir="$(systemd_get_systemunitdir)" \
230 + libudevdir='${prefix}'/"$(get_udevdir)" \
231 + pkgconfdir='${prefix}'/usr/'${LIB}'/pkgconfig \
232 + install
233 +
234 + newinitd "${FILESDIR}"/multipathd-r1.rc multipathd
235 + newinitd "${FILESDIR}"/multipath.rc multipath
236 +
237 + einstalldocs
238 +}
239 +
240 +pkg_postinst() {
241 + if [[ -z ${REPLACING_VERSIONS} ]]; then
242 + elog "If you need multipath on your system, you must"
243 + elog "add 'multipath' into your boot runlevel!"
244 + fi
245 +}