diff options
author | Matthias Maier <tamiko@gentoo.org> | 2022-06-02 13:18:56 -0500 |
---|---|---|
committer | Matthias Maier <tamiko@gentoo.org> | 2022-06-02 13:20:46 -0500 |
commit | 5536cd18a01bb593e72daa0dfe54297022cb5e7a (patch) | |
tree | 9fca8cd68131a6343d595524a1b800b84d13db0f /sys-block | |
parent | dev-util/pkgdev: move docs build to compile phase (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_bitwise.patch | 52 | ||||
-rw-r--r-- | sys-block/open-iscsi/files/open-iscsi-2.1.7-fix_sed.patch | 67 | ||||
-rw-r--r-- | sys-block/open-iscsi/files/open-iscsi-2.1.7-no_werror.patch | 26 | ||||
-rw-r--r-- | sys-block/open-iscsi/open-iscsi-2.1.6-r1.ebuild | 2 | ||||
-rw-r--r-- | sys-block/open-iscsi/open-iscsi-2.1.7.ebuild | 133 |
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 +} |