diff options
Diffstat (limited to 'sys-block/open-iscsi/open-iscsi-2.0.872.ebuild')
-rw-r--r-- | sys-block/open-iscsi/open-iscsi-2.0.872.ebuild | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/sys-block/open-iscsi/open-iscsi-2.0.872.ebuild b/sys-block/open-iscsi/open-iscsi-2.0.872.ebuild new file mode 100644 index 0000000..bdfe951 --- /dev/null +++ b/sys-block/open-iscsi/open-iscsi-2.0.872.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=3 +inherit distutils versionator linux-info eutils flag-o-matic autotools + +DESCRIPTION="Open-iSCSI is a high performance, transport independent, multi-platform implementation of RFC3720" +HOMEPAGE="http://www.open-iscsi.org/" +MY_PV="${PN}-$(replace_version_separator 2 "-" $MY_PV)" +SRC_URI="mirror://kernel/linux/kernel/people/mnc/open-iscsi/releases/${MY_PV}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug slp" +DEPEND="net-libs/openslp" +RDEPEND="${DEPEND} + sys-apps/util-linux" + +S="${WORKDIR}/${MY_PV}" + +pkg_setup() { + linux-info_pkg_setup + + if [ $KV_PATCH -lt 15 ]; then + die "Sorry, your kernel must be 2.6.16-rc5 or newer!" + fi +} + +src_prepare() { + export EPATCH_OPTS="-d${S}" + epatch "${FILESDIR}"/${PN}-2.0.872-makefile-cleanup.patch + epatch "${FILESDIR}"/${P}-glibc212.patch + epatch "${FILESDIR}"/${P}-slp.patch + epatch "${FILESDIR}"/${P}-omg-calling-configure.patch + + # add RH patches, we need libiscsi for anaconda + epatch "${FILESDIR}"/redhat-${PV}/iscsi-initiator-utils-update-initscripts-and-docs.patch + epatch "${FILESDIR}"/redhat-${PV}/iscsi-initiator-utils-use-var-for-config.patch + epatch "${FILESDIR}"/redhat-${PV}/iscsi-initiator-utils-use-red-hat-for-name.patch + epatch "${FILESDIR}"/redhat-${PV}/iscsi-initiator-utils-add-libiscsi.patch + epatch "${FILESDIR}"/redhat-${PV}/iscsi-initiator-utils-disable-isns-for-lib.patch + epatch "${FILESDIR}"/redhat-${PV}/iscsi-initiator-utils-fix-lib-sysfs-init.patch + + if use slp; then + # workaround bug with lslp + cd "${S}"/utils/open-isns || die + eautoreconf + sed -i "s:-lisns:-lisns -lslp:g" "${S}"/usr/Makefile || die + fi +} + +src_configure() { + einfo "Configuring userpsace" + cd "${S}/utils/open-isns" || die + econf $(use_with slp) || die +} + +src_compile() { + use debug && append-flags -DDEBUG_TCP -DDEBUG_SCSI + einfo "Building userspace" + cd "${S}" || die + CFLAGS="" emake OPTFLAGS="${CFLAGS}" user || die "emake failed" +} + +src_install() { + # build system is broken... + emake DESTDIR="${D}" sbindir="/usr/sbin" install_user || die "emake install_user failed" + # this doesn't get installed + dosbin usr/iscsistart + + einfo "Installing configuration" + insinto /etc/iscsi + doins etc/iscsid.conf + newins "${FILESDIR}"/initiatorname.iscsi initiatorname.iscsi.example + insinto /etc/iscsi/ifaces + doins etc/iface.example + + newconfd "${FILESDIR}"/iscsid-conf.d iscsid + newinitd "${FILESDIR}"/iscsid-2.0.871-r1.init.d iscsid + + keepdir /var/db/iscsi + fperms 700 /var/db/iscsi + fperms 600 /etc/iscsi/iscsid.conf + + einfo "Installing libiscsi" + dodir /usr/$(get_libdir) + exeinto /usr/$(get_libdir) + doexe "${S}"/libiscsi/libiscsi.so.0 + dosym libiscsi.so.0 /usr/$(get_libdir)/libiscsi.so + + dodir /usr/include + insinto /usr/include + doins "${S}"/libiscsi/libiscsi.h + + cd "${S}"/libiscsi || die + distutils_src_install + +} + +pkg_postinst() { + in='/etc/iscsi/initiatorname.iscsi' + if [ ! -f "${ROOT}${in}" -a -f "${ROOT}${in}.example" ]; then + cp -f "${ROOT}${in}.example" "${ROOT}${in}" + fi +} |