summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Maier <tamiko@gentoo.org>2022-06-02 13:18:56 -0500
committerMatthias Maier <tamiko@gentoo.org>2022-06-02 13:20:46 -0500
commit5536cd18a01bb593e72daa0dfe54297022cb5e7a (patch)
tree9fca8cd68131a6343d595524a1b800b84d13db0f /sys-block
parentdev-util/pkgdev: move docs build to compile phase (diff)
downloadgentoo-5536cd18a01bb593e72daa0dfe54297022cb5e7a.tar.gz
gentoo-5536cd18a01bb593e72daa0dfe54297022cb5e7a.tar.bz2
gentoo-5536cd18a01bb593e72daa0dfe54297022cb5e7a.zip
sys-block/open-iscsi: version bump to 2.1.7, various fixes
- drop (parts of the) old patches for 2.1.6 as they have been upstreamed - remove -Werror from compiler command line - remove hardcoded sed path - use __bitwise instead of __bitwise__ macro. The latter seems to be a typo Bug: https://bugs.gentoo.org/847418 Signed-off-by: Matthias Maier <tamiko@gentoo.org>
Diffstat (limited to 'sys-block')
-rw-r--r--sys-block/open-iscsi/Manifest1
-rw-r--r--sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_bitwise.patch52
-rw-r--r--sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_sed.patch67
-rw-r--r--sys-block/open-iscsi/files/open-iscsi-2.1.7-no_werror.patch26
-rw-r--r--sys-block/open-iscsi/open-iscsi-2.1.6-r1.ebuild2
-rw-r--r--sys-block/open-iscsi/open-iscsi-2.1.7.ebuild133
6 files changed, 280 insertions, 1 deletions
diff --git a/sys-block/open-iscsi/Manifest b/sys-block/open-iscsi/Manifest
index 29d5b970a89c..4c6d1313583c 100644
--- a/sys-block/open-iscsi/Manifest
+++ b/sys-block/open-iscsi/Manifest
@@ -1,2 +1,3 @@
DIST open-iscsi-2.1.4.tar.gz 621247 BLAKE2B 043a999b2f397a6c740d61654079d7ab966caee6cf6cfb244ddd70eae4f5201045b371ce5fbe244216a2a210a5379c92e8c3fbe62d33707cf05e7a4a20a13a91 SHA512 ae0663a964d86e6a4c19203598b859173c93ecce550f9bc9855ff735dd51a3c45822f2bc1cc99e6891c56ef1d16c42223803f07a961558fe6e38ead2164faef3
DIST open-iscsi-2.1.6.tar.gz 623721 BLAKE2B c7c09e38fd10bd5c2a5e8ad8030cf2338de3382fe4acae0e3c1bf3cacb6e244e411b7556403e0c43fd03035836f46cc4836683188e2f159cd7fc066aef78a868 SHA512 4a32a76c1c32d7d1a01fe3a0f88ce9616a54323ec043757be73051eb41ebae8de90ce057acce72fb6fe07aa47e814c9bc6ee88b13fa7d7769ca10c5175974f1d
+DIST open-iscsi-2.1.7.tar.gz 627848 BLAKE2B c8b572dc71046b722b9455799b4360c17963f05ce2cac48f122d40fc61bef6f01b98287003fc222bdb0dd4706218add8c41d3eb40464023b9b240a8205069dd3 SHA512 619c57b988c6972da09428b3a84ca375ca46653fbfca9cb61389c70a95871b665f93b75b8e6ff2aa993bdb89e2a078a188c0a7b45c3bf9c15a16b496e9ebc892
diff --git a/sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_bitwise.patch b/sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_bitwise.patch
new file mode 100644
index 000000000000..2ff094c83f0f
--- /dev/null
+++ b/sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_bitwise.patch
@@ -0,0 +1,52 @@
+From 0a6432de1a2186449d5e6557f75a9f30e487471d Mon Sep 17 00:00:00 2001
+From: Matthias Maier <tamiko@43-1.org>
+Date: Thu, 2 Jun 2022 13:12:43 -0500
+Subject: [PATCH] Use __bitwise instead of __bitwise__
+
+The iscsi_proto.h header goes into great length ensuring that the
+__bitwise macro is defined:
+
+ #if !defined(__bitwise)
+ /*
+ * If running svn modules we may need to define these.
+ * This should not go upstream since this is already properly defined there
+ */
+ #ifdef __CHECKER__
+ #define __bitwise__ __attribute__((bitwise))
+ #else
+ #define __bitwise__
+ #endif
+ #ifdef __CHECK_ENDIAN__
+ #define __bitwise __bitwise__
+ #else
+ #define __bitwise
+ #endif
+ #endif
+
+But then uses the __bitwise__ macro instead:
+
+ typedef uint32_t __bitwise__ itt_t;
+
+(This is the only occurence where the __bitwise__ (or __bitwise) macro
+is actually used). This seems to be a typo, changing this to __bitwise
+fixes compilation with gcc-11 onwards.
+---
+ include/iscsi_proto.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/iscsi_proto.h b/include/iscsi_proto.h
+index 1d14b89..3fe9018 100644
+--- a/include/iscsi_proto.h
++++ b/include/iscsi_proto.h
+@@ -63,7 +63,7 @@
+ #endif
+
+ /* initiator tags; opaque for target */
+-typedef uint32_t __bitwise__ itt_t;
++typedef uint32_t __bitwise itt_t;
+ /* below makes sense only for initiator that created this tag */
+ #define build_itt(itt, age) ((__force itt_t)\
+ ((itt) | ((age) << ISCSI_AGE_SHIFT)))
+--
+2.35.1
+
diff --git a/sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_sed.patch b/sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_sed.patch
new file mode 100644
index 000000000000..ad56b823b557
--- /dev/null
+++ b/sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_sed.patch
@@ -0,0 +1,67 @@
+From 66d76978f2ffbe276e84b03a7fac1041a7c3b4c3 Mon Sep 17 00:00:00 2001
+From: Matthias Maier <tamiko@43-1.org>
+Date: Thu, 2 Jun 2022 13:17:10 -0500
+Subject: [PATCH] Do not hardcode the path of sed
+
+---
+ doc/Makefile | 2 +-
+ etc/Makefile | 2 +-
+ libopeniscsiusr/Makefile | 2 +-
+ utils/Makefile | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/doc/Makefile b/doc/Makefile
+index 9ed025d..e121270 100644
+--- a/doc/Makefile
++++ b/doc/Makefile
+@@ -7,7 +7,7 @@ ifeq ($(TOPDIR),)
+ TOPDIR = ..
+ endif
+
+-SED = /usr/bin/sed
++SED = sed
+ INSTALL = install
+
+ DESTDIR ?=
+diff --git a/etc/Makefile b/etc/Makefile
+index d065319..2d98027 100644
+--- a/etc/Makefile
++++ b/etc/Makefile
+@@ -19,7 +19,7 @@ initddir ?= $(etcdir)/init.d
+
+ HOMEDIR ?= $(etcdir)/iscsi
+
+-SED = /usr/bin/sed
++SED = sed
+ INSTALL = install
+
+ SYSTEMD_SOURCE_FILES = iscsid.socket iscsiuio.socket
+diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile
+index 523518b..90903dd 100644
+--- a/libopeniscsiusr/Makefile
++++ b/libopeniscsiusr/Makefile
+@@ -29,7 +29,7 @@ PKGCONF_DIR ?= $(LIB_DIR)/pkgconfig
+ MAN_DIR = $(prefix)/share/man
+
+ PKG_CONFIG ?= /usr/bin/pkg-config
+-SED ?= /usr/bin/sed
++SED ?= sed
+
+ LIBISCSI_USR_DIR=$(TOPDIR)/libopeniscsiusr
+
+diff --git a/utils/Makefile b/utils/Makefile
+index a7eb352..15539eb 100644
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -7,7 +7,7 @@
+ # from the top-level make file.
+ #
+
+-SED = /usr/bin/sed
++SED = sed
+ INSTALL = install
+ CHMOD = chmod
+
+--
+2.35.1
+
diff --git a/sys-block/open-iscsi/files/open-iscsi-2.1.7-no_werror.patch b/sys-block/open-iscsi/files/open-iscsi-2.1.7-no_werror.patch
new file mode 100644
index 000000000000..a94caebafb13
--- /dev/null
+++ b/sys-block/open-iscsi/files/open-iscsi-2.1.7-no_werror.patch
@@ -0,0 +1,26 @@
+diff --git a/libopeniscsiusr/Makefile b/libopeniscsiusr/Makefile
+index 52e453a..523518b 100644
+--- a/libopeniscsiusr/Makefile
++++ b/libopeniscsiusr/Makefile
+@@ -51,7 +51,7 @@ EXTRA_MAN_FILES = libopeniscsiusr.h.3
+ OBJS = context.o misc.o session.o sysfs.o iface.o idbm.o node.o default.o
+
+ CFLAGS ?= -O2 -g
+-CFLAGS += -Wall -Werror -Wextra -fvisibility=hidden -fPIC
++CFLAGS += -Wall -Wextra -fvisibility=hidden -fPIC
+ CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
+ CFLAGS += -DSBINDIR=\"$(SBINDIR)\"
+ CFLAGS += -DISCSI_DB_ROOT=\"$(DBROOT)\"
+diff --git a/usr/Makefile b/usr/Makefile
+index 3fc2248..c3580a3 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -44,7 +44,7 @@ HOMEDIR ?= $(etcdir)/iscsi
+ PKG_CONFIG ?= /usr/bin/pkg-config
+
+ CFLAGS ?= -O2 -g
+-WARNFLAGS ?= -Wall -Wextra -Werror -Wstrict-prototypes -fno-common
++WARNFLAGS ?= -Wall -Wextra -Wstrict-prototypes -fno-common
+ CFLAGS += $(WARNFLAGS) -I../include -I. -D_GNU_SOURCE \
+ -I$(TOPDIR)/libopeniscsiusr
+ CFLAGS += $(shell $(PKG_CONFIG) --cflags libkmod)
diff --git a/sys-block/open-iscsi/open-iscsi-2.1.6-r1.ebuild b/sys-block/open-iscsi/open-iscsi-2.1.6-r1.ebuild
index 576fdc85f330..2f006231aaa2 100644
--- a/sys-block/open-iscsi/open-iscsi-2.1.6-r1.ebuild
+++ b/sys-block/open-iscsi/open-iscsi-2.1.6-r1.ebuild
@@ -29,7 +29,7 @@ RDEPEND="${DEPEND}
BDEPEND="virtual/pkgconfig"
PATCHES=(
- "${FILESDIR}"/${PN}-2.1.1-Makefiles.patch
+ "${FILESDIR}"/${PN}-2.1.7-NoWError.patch
"${FILESDIR}"/open-iscsi-2.1.6-Makefiles.patch
)
diff --git a/sys-block/open-iscsi/open-iscsi-2.1.7.ebuild b/sys-block/open-iscsi/open-iscsi-2.1.7.ebuild
new file mode 100644
index 000000000000..3bf611eea398
--- /dev/null
+++ b/sys-block/open-iscsi/open-iscsi-2.1.7.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools linux-info flag-o-matic toolchain-funcs systemd
+
+DESCRIPTION="A performant, transport independent, multi-platform implementation of RFC3720"
+HOMEPAGE="https://www.open-iscsi.com/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0/0.2"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="debug infiniband +tcp rdma systemd"
+REQUIRED_USE="infiniband? ( rdma ) || ( rdma tcp )"
+
+DEPEND="
+ sys-apps/kmod
+ sys-block/open-isns:=
+ sys-kernel/linux-headers
+ infiniband? ( sys-cluster/rdma-core )
+ dev-libs/openssl:0=
+ systemd? ( sys-apps/systemd )
+"
+RDEPEND="${DEPEND}
+ sys-fs/lsscsi
+ sys-apps/util-linux"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.1.7-fix_bitwise.patch
+ "${FILESDIR}"/${PN}-2.1.7-fix_sed.patch
+ "${FILESDIR}"/${PN}-2.1.7-no_werror.patch
+)
+
+pkg_setup() {
+ linux-info_pkg_setup
+
+ if kernel_is -lt 2 6 16; then
+ die "Sorry, your kernel must be 2.6.16-rc5 or newer!"
+ fi
+
+ # Needs to be done, as iscsid currently only starts, when having the iSCSI
+ # support loaded as module. Kernel builtin options don't work. See this for
+ # more information:
+ # https://groups.google.com/group/open-iscsi/browse_thread/thread/cc10498655b40507/fd6a4ba0c8e91966
+ # If there's a new release, check whether this is still valid!
+ TCP_MODULES="SCSI_ISCSI_ATTRS ISCSI_TCP"
+ RDMA_MODULES="INFINIBAND_ISER"
+ INFINIBAND_MODULES="INFINIBAND_IPOIB INIBAND_USER_MAD INFINIBAND_USER_ACCESS"
+ CONFIG_CHECK_MODULES="tcp? ( ${TCP_MODULES} ) rdma? ( ${RDMA_MODULES} ) infiniband? ( ${INFINIBAND_MODULES} )"
+ if linux_config_exists; then
+ if use tcp; then
+ for module in ${TCP_MODULES}; do
+ linux_chkconfig_module ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)"
+ done
+ fi
+ if use infiniband; then
+ for module in ${INFINIBAND_MODULES}; do
+ linux_chkconfig_module ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)"
+ done
+ fi
+ if use rdma; then
+ for module in ${RDMA_MODULES}; do
+ linux_chkconfig_module ${module} || ewarn "${module} needs to be built as module (builtin doesn't work)"$
+ done
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+
+ pushd iscsiuio >/dev/null || die
+ eautoreconf
+ popd >/dev/null || die
+}
+
+src_configure() {
+ use debug && append-cppflags -DDEBUG_TCP -DDEBUG_SCSI
+
+ append-lfs-flags
+}
+
+src_compile() {
+ # Stuffing CPPFLAGS into CFLAGS isn't entirely correct, but the build
+ # is messed up already here, so it's not making it that much worse.
+ KSRC="${KV_DIR}" CFLAGS="" \
+ emake \
+ OPTFLAGS="${CFLAGS} ${CPPFLAGS} $(usex systemd '' -DNO_SYSTEMD)" \
+ AR="$(tc-getAR)" CC="$(tc-getCC)" \
+ $(usex systemd '' NO_SYSTEMD=1) \
+ user
+}
+
+src_install() {
+ emake \
+ DESTDIR="${ED}" \
+ sbindir="/usr/sbin" \
+ SED="${EPREFIX}/bin/sed" \
+ systemddir="$(systemd_get_utildir)" \
+ install install_systemd
+
+ # Upstream make is not deterministic, per bug #601514
+ rm -f "${ED}"/etc/initiatorname.iscsi
+
+ dodoc README THANKS
+
+ docinto test/
+ dodoc $(find test -maxdepth 1 -type f ! -name ".*")
+
+ insinto /etc/iscsi
+ newins "${FILESDIR}"/initiatorname.iscsi initiatorname.iscsi.example
+
+ newconfd "${FILESDIR}"/iscsid-conf.d iscsid
+ newinitd "${FILESDIR}"/iscsid-init.d iscsid
+
+ keepdir /var/db/iscsi
+ fperms 700 /var/db/iscsi
+ fperms 600 /etc/iscsi/iscsid.conf
+}
+
+pkg_postinst() {
+ in='/etc/iscsi/initiatorname.iscsi'
+ if [[ ! -f "${EROOT}${in}" ]] && [[ -f "${EROOT}${in}.example" ]] ; then
+ {
+ cat "${EROOT}${in}.example"
+ echo "# InitiatorName generated by ${CATEGORY}/${PF} at $(date -uR)"
+ echo "InitiatorName=$(${ROOT}/usr/sbin/iscsi-iname)"
+ } >> "${EROOT}${in}.tmp" && mv -f "${EROOT}${in}.tmp" "${EROOT}${in}"
+ fi
+}