Version bump. Custom patches for compile agasinst 2.6.13 or newer, and possible IDBM...
authorRobin H. Johnson <robbat2@gentoo.org>
Sun, 6 Nov 2005 06:39:16 +0000 (06:39 +0000)
committerRobin H. Johnson <robbat2@gentoo.org>
Sun, 6 Nov 2005 06:39:16 +0000 (06:39 +0000)
Package-Manager: portage-2.0.53_rc7

sys-block/open-iscsi/ChangeLog
sys-block/open-iscsi/Manifest
sys-block/open-iscsi/files/backward-compile-2.6.13.patch [new file with mode: 0644]
sys-block/open-iscsi/files/digest-open-iscsi-0.4.438 [new file with mode: 0644]
sys-block/open-iscsi/files/r438-idbm-file-locking.diff [new file with mode: 0644]
sys-block/open-iscsi/open-iscsi-0.4.438.ebuild [new file with mode: 0644]

index a0a53bba41cf3f082a87a966f4885760ea40cd95..f46b036e1e10562bfc3fc10b2b6e315e19ebde60 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for sys-block/open-iscsi
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-block/open-iscsi/ChangeLog,v 1.5 2005/11/03 05:51:55 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-block/open-iscsi/ChangeLog,v 1.6 2005/11/06 06:39:16 robbat2 Exp $
+
+*open-iscsi-0.4.438 (06 Nov 2005)
+
+  06 Nov 2005; Robin H. Johnson <robbat2@gentoo.org>
+  +files/r438-idbm-file-locking.diff, +files/backward-compile-2.6.13.patch,
+  +open-iscsi-0.4.438.ebuild:
+  Version bump. Custom patches for compile agasinst 2.6.13 or newer, and
+  possible IDBM corruption fix.
 
 *open-iscsi-0.4.434 (03 Nov 2005)
 
index f5a369a6f6083abcf772c6fa9823f56f888fb91c..2467e9a83c76f0ce4799e69c260abc5dbe2b983e 100644 (file)
@@ -1,10 +1,14 @@
-MD5 196f78933054eb2d60773e6caa8eea39 ChangeLog 1401
+MD5 4c461f092d2444bf80cb51bf516469d9 ChangeLog 1701
+MD5 087c05b579d7b3dbce791fcb8ed1219f files/backward-compile-2.6.13.patch 472
 MD5 20bcd1f0060b30662979dd4d9d8a9a93 files/digest-open-iscsi-0.4.413 70
 MD5 20bcd1f0060b30662979dd4d9d8a9a93 files/digest-open-iscsi-0.4.413-r1 70
 MD5 a63ea3ffa94d6406ec4b32bdcb71c043 files/digest-open-iscsi-0.4.434 70
+MD5 704df438b6376aaefa71e2797126ad58 files/digest-open-iscsi-0.4.438 70
 MD5 ec58849ae9c14ba36b99b28f204bd9be files/initiatorname.iscsi 422
 MD5 c6ed0fd5937c35362e510fd1c4f17232 files/iscsid-init.d 2381
+MD5 1b1ec0732d8609b14f7aae743da78f49 files/r438-idbm-file-locking.diff 865
 MD5 21cd68602737d7c996bceabf6e62c468 metadata.xml 223
 MD5 7fcd7e8864c82b54398d2181c5e659d5 open-iscsi-0.4.413-r1.ebuild 2394
 MD5 88e0027844d0bb73925ed95ba41cd2ca open-iscsi-0.4.413.ebuild 2321
 MD5 12868d97cb8d79a096d44f6f4fe24b9e open-iscsi-0.4.434.ebuild 2448
+MD5 b5c3021e5b5533835ede6a2315f10812 open-iscsi-0.4.438.ebuild 2801
diff --git a/sys-block/open-iscsi/files/backward-compile-2.6.13.patch b/sys-block/open-iscsi/files/backward-compile-2.6.13.patch
new file mode 100644 (file)
index 0000000..3e66792
--- /dev/null
@@ -0,0 +1,14 @@
+Index: kernel/scsi_transport_iscsi.c
+===================================================================
+--- kernel/scsi_transport_iscsi.c      (revision 438)
++++ kernel/scsi_transport_iscsi.c      (working copy)
+@@ -1234,8 +1234,7 @@
+       if (err)
+               goto unregister_session_class;
+ 
+-      nls = netlink_kernel_create(NETLINK_ISCSI, 1, iscsi_if_rx,
+-                      THIS_MODULE);
++      nls = netlink_kernel_create(NETLINK_ISCSI, iscsi_if_rx);
+       if (!nls) {
+               err = -ENOBUFS;
+               goto unregister_notifier;
diff --git a/sys-block/open-iscsi/files/digest-open-iscsi-0.4.438 b/sys-block/open-iscsi/files/digest-open-iscsi-0.4.438
new file mode 100644 (file)
index 0000000..37aa379
--- /dev/null
@@ -0,0 +1 @@
+MD5 84f85500b469484d948a0a1f861a55f0 open-iscsi-0.4-438.tar.gz 155810
diff --git a/sys-block/open-iscsi/files/r438-idbm-file-locking.diff b/sys-block/open-iscsi/files/r438-idbm-file-locking.diff
new file mode 100644 (file)
index 0000000..0be0708
--- /dev/null
@@ -0,0 +1,23 @@
+This is a quick patch to try and resolve the issue of IDBM file corruption.
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+diff -NuarbB --exclude .svn --exclude '*~' open-iscsi-0.4-438/usr/idbm.c open-iscsi/usr/idbm.c
+--- open-iscsi-0.4-438/usr/idbm.c      2005-10-18 13:10:39.000000000 -0700
++++ open-iscsi/usr/idbm.c      2005-11-04 16:14:31.000000000 -0800
+@@ -1481,14 +1481,14 @@
+ 
+       if ((db->discdb = idbm_open(DISCOVERY_FILE,
+                               access(DISCOVERY_FILE, F_OK) != 0 ?
+-                                      O_CREAT|O_RDWR : O_RDWR)) == NULL) {
++                                      O_CREAT|O_RDWR|O_EXCL : O_RDWR|O_EXCL)) == NULL) {
+               free(db->configfile);
+               free(db);
+               return NULL;
+       }
+ 
+       if ((db->nodedb = idbm_open(NODE_FILE, access(NODE_FILE, F_OK) != 0 ?
+-                              O_CREAT|O_RDWR : O_RDWR)) == NULL) {
++                              O_CREAT|O_RDWR|O_EXCL : O_RDWR|O_EXCL)) == NULL) {
+               idbm_close(db->discdb);
+               free(db->configfile);
+               free(db);
diff --git a/sys-block/open-iscsi/open-iscsi-0.4.438.ebuild b/sys-block/open-iscsi/open-iscsi-0.4.438.ebuild
new file mode 100644 (file)
index 0000000..21d745e
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-block/open-iscsi/open-iscsi-0.4.438.ebuild,v 1.1 2005/11/06 06:39:16 robbat2 Exp $
+
+inherit versionator linux-mod eutils flag-o-matic
+
+DESCRIPTION="Open-iSCSI project is a high performance, transport independent, multi-platform implementation of RFC3720."
+HOMEPAGE="http://www.open-iscsi.org/"
+MY_PV="$(replace_version_separator 2 '-')"
+MY_P="${PN}-${MY_PV}"
+#SRC_URI="http://www.open-iscsi.org/bits/${MY_P}.tar.gz"
+#SRC_URI="http://dev.gentoo.org/~robbat2/distfiles/${MY_P}.tar.gz""
+SRC_URI="mirror://gentoo/${MY_P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="debug"
+DEPEND="virtual/libc
+               virtual/linux-sources"
+RDEPEND="${DEPEND}
+               virtual/modutils
+               sys-apps/util-linux"
+S="${WORKDIR}/${MY_P}"
+
+MODULE_NAMES_ARG="kernel/drivers/scsi:${S}/kernel"
+MODULE_NAMES="iscsi_tcp(${MODULE_NAMES_ARG}) scsi_transport_iscsi(${MODULE_NAMES_ARG})"
+BUILD_TARGETS="all"
+CONFIG_CHECK="CRYPTO_MD5 CRYPTO_CRC32C"
+ERROR_CFG="open-iscsi needs both MD5 and CRC32C support in your kernel."
+
+src_unpack() {
+       unpack ${A}
+       convert_to_m ${S}/kernel/Makefile
+       export EPATCH_OPTS="-d${S}/kernel -p0"
+       if [ $KV_PATCH -lt 11 ]; then
+               die "Sorry, your kernel must be 2.6.11 or newer!"
+       elif [ $KV_PATCH -eq 11 ]; then
+               einfo "2.6.11 found"
+               epatch ${S}/kernel/backward-compile-2.6.11.patch
+       elif [ $KV_PATCH -eq 12 ]; then
+               einfo "2.6.12 found"
+               epatch ${S}/kernel/backward-compile-2.6.12.patch
+       else
+               einfo "2.6.13 or newer found"
+               EPATCH_OPTS="-p0 -d ${S}" \
+               epatch ${FILESDIR}/backward-compile-2.6.13.patch
+       fi
+       # IDBM locking fix attempt
+       EPATCH_OPTS="-p1 -d ${S}" \
+       epatch ${FILESDIR}/r438-idbm-file-locking.diff
+
+       # clean up CFLAGS
+       sed -i.orig  \
+               -e '/^CFLAGS/s,-O2,,g' \
+               -e '/^CFLAGS/s,-g,,g' \
+               ${S}/usr/Makefile || die "Failed to clean up CFLAGS"
+}
+
+src_compile() {
+       einfo "Building kernel modules"
+       export KSRC="${KERNEL_DIR}"
+       use debug && append-flags -DDEBUG_TCP -DDEBUG_SCSI
+       #S=${S}/kernel 
+       linux-mod_src_compile || die "failed to build modules"
+       einfo "Building userspace"
+       cd ${S}/usr && emake || die "emake failed"
+}
+
+src_install() {
+       einfo "Installing kernel modules"
+       export KSRC="${KERNEL_DIR}"
+       #S=${S}/kernel 
+       linux-mod_src_install
+
+       einfo "Installing userspace"
+       dosbin usr/iscsid usr/iscsiadm
+
+       doman doc/*[1-8]
+       dodoc README THANKS
+       docinto test
+       dodoc test/*
+
+       insinto /etc
+       doins etc/iscsid.conf
+       doins ${FILESDIR}/initiatorname.iscsi
+       newinitd ${FILESDIR}/iscsid-init.d iscsid
+
+       # security
+       keepdir /var/db/iscsi
+       fperms 700 /var/db/iscsi
+       fperms 600 /etc/iscsid.conf
+}
+
+pkg_postinst() {
+       linux-mod_pkg_postinst
+       [ -d /var/db/iscsi ] && chmod 700 /var/db/iscsi
+       [ -f /etc/iscsid.conf ] && chmod 600 /etc/iscsid.conf
+}