summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2020-05-02 09:28:43 +0200
committerThomas Deutschmann <whissi@gentoo.org>2020-05-02 09:28:59 +0200
commit6e3a04d1532db375c74b38c71963316ef4a466f0 (patch)
tree5d630b5252b5c0091b65693a48e62350f16a8b9f
parentdev-ruby/rmagick: require webp for tests (diff)
downloadgentoo-6e3a04d1532db375c74b38c71963316ef4a466f0.tar.gz
gentoo-6e3a04d1532db375c74b38c71963316ef4a466f0.tar.bz2
gentoo-6e3a04d1532db375c74b38c71963316ef4a466f0.zip
sys-fs/multipath-tools: add json-c-0.14 support
Closes: https://bugs.gentoo.org/720330 Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
-rw-r--r--sys-fs/multipath-tools/files/multipath-tools-0.8.3-json-c-0.14.patch28
-rw-r--r--sys-fs/multipath-tools/multipath-tools-0.8.3-r2.ebuild92
2 files changed, 120 insertions, 0 deletions
diff --git a/sys-fs/multipath-tools/files/multipath-tools-0.8.3-json-c-0.14.patch b/sys-fs/multipath-tools/files/multipath-tools-0.8.3-json-c-0.14.patch
new file mode 100644
index 000000000000..34d02f7b5d7f
--- /dev/null
+++ b/sys-fs/multipath-tools/files/multipath-tools-0.8.3-json-c-0.14.patch
@@ -0,0 +1,28 @@
+From 8438a9cd8d7ed88645fa8e6a8f19c0fd9ae872a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
+Date: Mon, 13 Apr 2020 19:22:02 +0200
+Subject: [PATCH] Add support for upcoming json-c 0.14.0.
+
+TRUE/FALSE are not defined anymore. 1 and 0 are used instead.
+This is backwards compatible, as earlier versions of json-c are
+using the same integer values in their present definitions.
+---
+ libdmmp/libdmmp_private.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libdmmp/libdmmp_private.h b/libdmmp/libdmmp_private.h
+index ac85b63f..4378962b 100644
+--- a/libdmmp/libdmmp_private.h
++++ b/libdmmp/libdmmp_private.h
+@@ -82,7 +82,7 @@ static out_type func_name(struct dmmp_context *ctx, const char *var_name) { \
+ do { \
+ json_type j_type = json_type_null; \
+ json_object *j_obj_tmp = NULL; \
+- if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != TRUE) { \
++ if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != 1) { \
+ _error(ctx, "Invalid JSON output from multipathd IPC: " \
+ "key '%s' not found", key); \
+ rc = DMMP_ERR_IPC_ERROR; \
+--
+2.26.0
+
diff --git a/sys-fs/multipath-tools/multipath-tools-0.8.3-r2.ebuild b/sys-fs/multipath-tools/multipath-tools-0.8.3-r2.ebuild
new file mode 100644
index 000000000000..feb9ba35c845
--- /dev/null
+++ b/sys-fs/multipath-tools/multipath-tools-0.8.3-r2.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit linux-info systemd toolchain-funcs udev vcs-snapshot toolchain-funcs
+
+DESCRIPTION="Device mapper target autoconfig"
+HOMEPAGE="http://christophe.varoqui.free.fr/"
+SRC_URI="https://git.opensvc.com/?p=multipath-tools/.git;a=snapshot;h=${PV};sf=tgz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86"
+IUSE="systemd rbd"
+
+BDEPEND="virtual/pkgconfig"
+
+RDEPEND="
+ dev-libs/json-c:=
+ dev-libs/libaio
+ dev-libs/userspace-rcu:=
+ >=sys-fs/lvm2-2.02.45
+ >=virtual/libudev-232-r3
+ sys-libs/readline:0=
+ rbd? ( sys-cluster/ceph )
+ systemd? ( sys-apps/systemd )
+"
+
+DEPEND="${RDEPEND}"
+
+CONFIG_CHECK="~DM_MULTIPATH"
+
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.7.5-respect-flags.patch
+ "${FILESDIR}"/${PN}-0.8.3-no-gziped-docs.patch
+ "${FILESDIR}"/${PN}-0.8.3-json-c-0.14.patch
+)
+
+get_systemd_pv() {
+ use systemd && \
+ $(tc-getPKG_CONFIG) --modversion systemd
+}
+
+src_prepare() {
+ default
+
+ # The upstream lacks any way to configure the build at present
+ # and ceph is a huge dependency, so we're using sed to make it
+ # optional until the upstream has a proper configure system
+ if ! use rbd ; then
+ sed \
+ -e "s/libcheckrbd.so/# libcheckrbd.so/" \
+ -e "s/-lrados//" \
+ -i libmultipath/checkers/Makefile \
+ || die
+ fi
+}
+
+src_compile() {
+ # LIBDM_API_FLUSH involves grepping files in /usr/include,
+ # so force the test to go the way we want #411337.
+ emake \
+ CC="$(tc-getCC)" \
+ LIBDM_API_FLUSH=1 SYSTEMD="$(get_systemd_pv)"
+}
+
+src_install() {
+ dodir /sbin /usr/share/man/man{5,8}
+ emake \
+ DESTDIR="${D}" \
+ RUN=run \
+ SYSTEMD=$(get_systemd_pv) \
+ unitdir="$(systemd_get_systemunitdir)" \
+ libudevdir='${prefix}'/"$(get_udevdir)" \
+ pkgconfdir='${prefix}'/usr/'${LIB}'/pkgconfig \
+ install
+
+ newinitd "${FILESDIR}"/multipathd-r1.rc multipathd
+ newinitd "${FILESDIR}"/multipath.rc multipath
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]]; then
+ elog "If you need multipath on your system, you must"
+ elog "add 'multipath' into your boot runlevel!"
+ fi
+}