summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2010-02-08 18:39:26 +0000
committerPeter Volkov <pva@gentoo.org>2010-02-08 18:39:26 +0000
commit3bb4e7a1b8cd51ff74f86165b175e3a3bc1c37b9 (patch)
treee50f2602facbfc4a49b94e255635e964a7fbf549 /net-firewall/ipset/ipset-4.2.ebuild
parentVersion bump and set SLOT per bug 300736 (diff)
downloadgentoo-2-3bb4e7a1b8cd51ff74f86165b175e3a3bc1c37b9.tar.gz
gentoo-2-3bb4e7a1b8cd51ff74f86165b175e3a3bc1c37b9.tar.bz2
gentoo-2-3bb4e7a1b8cd51ff74f86165b175e3a3bc1c37b9.zip
Version bump, drop old.
(Portage version: 2.1.7.17/cvs/Linux x86_64)
Diffstat (limited to 'net-firewall/ipset/ipset-4.2.ebuild')
-rw-r--r--net-firewall/ipset/ipset-4.2.ebuild96
1 files changed, 96 insertions, 0 deletions
diff --git a/net-firewall/ipset/ipset-4.2.ebuild b/net-firewall/ipset/ipset-4.2.ebuild
new file mode 100644
index 000000000000..c82a5d3814a0
--- /dev/null
+++ b/net-firewall/ipset/ipset-4.2.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-firewall/ipset/ipset-4.2.ebuild,v 1.1 2010/02/08 18:39:26 pva Exp $
+
+EAPI="2"
+
+inherit eutils versionator toolchain-funcs linux-mod
+
+DESCRIPTION="IPset tool for iptables, successor to ippool."
+HOMEPAGE="http://ipset.netfilter.org/"
+SRC_URI="http://ipset.netfilter.org/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="modules"
+
+RDEPEND=">=net-firewall/iptables-1.4.4"
+DEPEND="${RDEPEND}"
+
+# configurable from outside
+[ -z "${IP_NF_SET_MAX}" ] && IP_NF_SET_MAX=256
+[ -z "${IP_NF_SET_HASHSIZE}" ] && IP_NF_SET_HASHSIZE=1024
+BUILD_PARAMS="IP_NF_SET_MAX=$IP_NF_SET_MAX IP_NF_SET_HASHSIZE=${IP_NF_SET_HASHSIZE}"
+# module fun
+BUILD_TARGETS="all"
+MODULE_NAMES_ARG="kernel/net/ipv4/netfilter:${S}/kernel"
+MODULE_NAMES=""
+for i in ip_set{,_{setlist,{ip,port,macip}map,{ip,net,ipport,ipportip,ipportnet}hash,iptree{,map}}} \
+ ipt_{SET,set}; do
+ MODULE_NAMES="${MODULE_NAMES} ${i}(${MODULE_NAMES_ARG})"
+done
+# sanity
+CONFIG_CHECK="NETFILTER"
+ERROR_CFG="ipset requires netfilter support in your kernel."
+
+pkg_setup() {
+ get_version
+
+ build_modules=0
+ if use modules; then
+ if linux_chkconfig_builtin "MODULES" ; then
+ if linux_chkconfig_builtin "IP_NF_SET"; then #274577
+ einfo "Modular kernel detected but IP_NF_SET=y, will not build kernel modules"
+ else
+ build_modules=1
+ einfo "Modular kernel detected, will build kernel modules"
+ fi
+ else
+ einfo "Nonmodular kernel detected, will not build kernel modules"
+ fi
+ fi
+
+ [[ ${build_modules} -eq 1 ]] && linux-mod_pkg_setup
+ myconf="${myconf} PREFIX="
+ myconf="${myconf} LIBDIR=/$(get_libdir)"
+ myconf="${myconf} BINDIR=/sbin"
+ myconf="${myconf} MANDIR=/usr/share/man"
+ myconf="${myconf} INCDIR=/usr/include"
+ myconf="${myconf} NO_EXTRA_WARN_FLAGS=yes"
+ export myconf
+}
+
+src_prepare() {
+ sed -i \
+ -e 's/KERNELDIR/(KERNELDIR)/g' \
+ -e 's/^(\?KERNEL_\?DIR.*/KERNELDIR ?= /' \
+ -e '/^all::/iV ?= 0' \
+ -e '/^all::/iKBUILD_OUTPUT ?=' \
+ -e '/$(MAKE)/{s/$@/ V=$(V) KBUILD_OUTPUT=$(KBUILD_OUTPUT) modules/}' \
+ "${S}"/kernel/Makefile
+}
+
+src_compile() {
+ einfo "Building userspace"
+ emake CC="$(tc-getCC)" COPT_FLAGS="${CFLAGS}" ${myconf} binaries || die "failed to build"
+
+ if [[ ${build_modules} -eq 1 ]]; then
+ einfo "Building kernel modules"
+ cd "${S}/kernel"
+ export KERNELDIR="${KERNEL_DIR}"
+ linux-mod_src_compile || die "failed to build modules"
+ fi
+}
+
+src_install() {
+ einfo "Installing userspace"
+ emake DESTDIR="${D}" ${myconf} binaries_install || die "failed to package"
+
+ if [[ ${build_modules} -eq 1 ]]; then
+ einfo "Installing kernel modules"
+ cd "${S}/kernel"
+ export KERNELDIR="${KERNEL_DIR}"
+ linux-mod_src_install
+ fi
+}