Merge pull request #682 from kinvolk/sayan/update-open-iscsi

sys-block/open-iscsi: Add the version 2.1.2
This commit is contained in:
Dongsu Park 2020-11-13 13:19:00 +01:00 committed by GitHub
commit 0985aa7629
5 changed files with 342 additions and 0 deletions

View File

@ -1 +1,2 @@
DIST open-iscsi-2.0-873.tar.gz 667069 SHA256 7dd9f2f97da417560349a8da44ea4fcfe98bfd5ef284240a2cc4ff8e88ac7cd9 SHA512 4e67116cb7dd49381c9279645e5a661f05596ae6be3b832772089828b3764ca2d04b5dea1bcc337071efb52c3c75a6fb943136c659ee59500f3a198ed0dcea6b WHIRLPOOL 05af106f11da9f9f02c10edd5412d0f99816349e06e192059700eb1ae24a36027c3f0d7ed423aa7bb1c0b9d8b3aa1b6aa72a2aadb00f27762edf16b7f7d08c09 DIST open-iscsi-2.0-873.tar.gz 667069 SHA256 7dd9f2f97da417560349a8da44ea4fcfe98bfd5ef284240a2cc4ff8e88ac7cd9 SHA512 4e67116cb7dd49381c9279645e5a661f05596ae6be3b832772089828b3764ca2d04b5dea1bcc337071efb52c3c75a6fb943136c659ee59500f3a198ed0dcea6b WHIRLPOOL 05af106f11da9f9f02c10edd5412d0f99816349e06e192059700eb1ae24a36027c3f0d7ed423aa7bb1c0b9d8b3aa1b6aa72a2aadb00f27762edf16b7f7d08c09
DIST open-iscsi-2.1.2.tar.gz 617407 BLAKE2B 13a8c70d8a4618262c746cce3f2c66c04b577b35918d993c29fff041d292ef9e60b4d39c6d6a308d306b8303d08e7aac81b9927157361eaf47e694e9ae1e365a SHA512 a0b1fc4aa2acadbf3a69fa636a47fec527fff75748fccfa83c9540f3ac05c71835a406503b15480ed25fe4fb780e58e0dd21760cccc7f7ef07128d1aef8ee2e3

View File

@ -0,0 +1,17 @@
# /etc/conf.d/iscsid
# config file to use
CONFIG_FILE=/etc/iscsi/iscsid.conf
# you need to specify an initiatorname in the file
INITIATORNAME_FILE=/etc/iscsi/initiatorname.iscsi
# options to pass to iscsid
OPTS="-i ${INITIATORNAME_FILE}"
# Start automatic targets when iscsid is started
AUTOSTARTTARGETS="yes"
# if set to "strict", iscsid will stop, if connecting the
# autostart targets failed
# AUTOSTART="strict"

View File

@ -0,0 +1,106 @@
#!/sbin/openrc-run
# Copyright 1999-2015 Gentoo Foundation, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
command="/usr/sbin/iscsid"
command_args="${OPTS}"
start_stop_daemon_args="-w 100" # iscsid might fail e.g. when the iSCSI kernel modules aren't available
pidfile=${PIDFILE:-/var/run/${SVCNAME}.pid}
extra_started_commands="starttargets stoptargets"
extra_commands="restarttargets"
ISCSIADM=/usr/sbin/iscsiadm
depend() {
after modules multipath
use net
}
checkconfig() {
if [ ! -e /etc/conf.d/${SVCNAME} ]; then
eerror "Config file /etc/conf.d/${SVCNAME} does not exist!"
return 1
fi
if [ ! -e "${CONFIG_FILE}" ]; then
eerror "Config file ${CONFIG_FILE} does not exist!"
return 1
fi
if [ -e ${INITIATORNAME_FILE} ]; then
. ${INITIATORNAME_FILE}
fi
if [ ! -e ${INITIATORNAME_FILE} -o -z "${InitiatorName}" ]; then
ewarn "${INITIATORNAME_FILE} should contain a string with your initiatior name."
local IQN=$(/usr/sbin/iscsi-iname)
ebegin "Creating InitiatorName ${IQN} in ${INITIATORNAME_FILE}"
echo "InitiatorName=${IQN}" >> "${INITIATORNAME_FILE}"
eend $?
fi
}
starttargets() {
ebegin "Setting up iSCSI targets"
$ISCSIADM -m node --loginall=automatic
local ret=$?
eend $ret
return $ret
}
stoptargets() {
ebegin "Disconnecting iSCSI targets"
sync
$ISCSIADM -m node --logoutall=all
local ret=$?
if [ $ret -eq 21 ]; then
# See man iscsiadm(8)
einfo "No active sessions to disconnect"
eend 0
return 0
fi
eend $ret
return $ret
}
restarttargets() {
stoptargets
starttargets
}
status() {
ebegin "Showing current active iSCSI sessions"
$ISCSIADM -m session
}
start_pre() {
local ret=1
ebegin "Checking Open-iSCSI configuration"
checkconfig
ret=$?
if [ $ret -ne 0 ]; then
eend 1
return 1
fi
eend 0
}
start_post() {
# Start automatic targets when iscsid is started
if [ "${AUTOSTARTTARGETS}" = "yes" ]; then
starttargets
local ret=$?
if [ "${AUTOSTART}" = "strict" -a $ret -ne 0 ]; then
stop
return $ret
fi
fi
return 0
}
stop_pre() {
stoptargets
}

View File

@ -0,0 +1,78 @@
--- a/libopeniscsiusr/Makefile
+++ b/libopeniscsiusr/Makefile
@@ -44,7 +44,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)
LDFLAGS += $(shell $(PKG_CONFIG) --libs libkmod)
--- a/usr/Makefile
+++ b/usr/Makefile
@@ -35,7 +35,7 @@ endif
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)
@@ -76,9 +76,9 @@ iscsistart: $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
iscsistart.o statics.o
$(CC) $(CFLAGS) $^ -o $@ -lcrypto -lrt $(LDFLAGS) $(ISCSI_LIB)
clean:
- rm -f *.o $(PROGRAMS) .depend $(LIBSYS)
+ $(RM) *.o $(PROGRAMS) .depend $(LIBSYS)
depend:
- gcc $(CFLAGS) -M `ls *.c` > .depend
+ $(CC) $(CFLAGS) -M `ls *.c` > .depend
-include .depend
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -10,9 +10,9 @@ iscsi-iname: md5.o iscsi-iname.o
$(CC) $(CFLAGS) $(LDFLAGS) $^ $(DBM_LIB) -o $@
clean:
- rm -f *.o $(PROGRAMS) .depend
+ $(RM) *.o $(PROGRAMS) .depend
depend:
- gcc $(CFLAGS) -M `ls *.c` > .depend
+ $(CC) $(CFLAGS) -M `ls *.c` > .depend
-include .depend
--- a/utils/fwparam_ibft/Makefile
+++ b/utils/fwparam_ibft/Makefile
@@ -41,11 +41,11 @@ LDFLAGS += -L$(TOPDIR)/libopeniscsiusr -liscsiusr
all: $(OBJS)
clean:
- rm -f *.o $(CLEANFILES) .depend
+ $(RM) *.o $(CLEANFILES) .depend
$(OBJS): prom_parse.tab.h prom_parse.h fwparam_ibft.h
depend:
- gcc $(CFLAGS) -M `ls *.c` > .depend
+ $(CC) $(CFLAGS) -M `ls *.c` > .depend
-include .depend
--- a/utils/sysdeps/Makefile
+++ b/utils/sysdeps/Makefile
@@ -8,9 +8,9 @@ SYSDEPS_OBJS=sysdeps.o
all: $(SYSDEPS_OBJS)
clean:
- rm -f *.o .depend
+ $(RM) *.o .depend
depend:
- gcc $(CFLAGS) -M `ls *.c` > .depend
+ $(CC) $(CFLAGS) -M `ls *.c` > .depend
-include .depend

View File

@ -0,0 +1,140 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools linux-info flag-o-matic toolchain-funcs udev systemd
DESCRIPTION="A performant, transport independent, multi-platform implementation of RFC3720"
HOMEPAGE="http://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 ~sparc ~x86"
IUSE="debug infiniband libressl +tcp rdma systemd"
DEPEND="
sys-apps/kmod
sys-block/open-isns:=
sys-kernel/linux-headers
infiniband? ( sys-fabric/ofed )
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:0= )
systemd? ( sys-apps/systemd )
"
RDEPEND="${DEPEND}
sys-fs/lsscsi
sys-apps/util-linux"
BDEPEND="virtual/pkgconfig"
REQUIRED_USE="infiniband? ( rdma ) || ( rdma tcp )"
PATCHES=(
"${FILESDIR}/${PN}-2.1.1-Makefiles.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() {
sed -e 's:^\(iscsid.startup\)\s*=.*:\1 = /usr/sbin/iscsid:' \
-i etc/iscsid.conf || die
sed -e 's@\(/sbin/\)@/usr\1@' \
-i etc/systemd/iscsi* || die
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" install
# 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
local unit
local units=(
iscsi.service
iscsid.{service,socket}
iscsiuio.{service,socket}
)
for unit in ${units[@]} ; do
systemd_dounit etc/systemd/${unit}
done
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
}