Initial packaging of ipset.
This package was submitted for review in Fedora on Wed Sep 14 2011: https://bugzilla.redhat.com/show_bug.cgi?id=738153#c0
This commit is contained in:
parent
e085a11385
commit
c4eef8c84a
107
ipset-6.9.1-Optionally-disable-building-the-kernel-module.patch
Normal file
107
ipset-6.9.1-Optionally-disable-building-the-kernel-module.patch
Normal file
@ -0,0 +1,107 @@
|
||||
From 1051c0992a291d254694c47d316454839f3658ef Mon Sep 17 00:00:00 2001
|
||||
From: Mathieu Bridon <bochecha@fedoraproject.org>
|
||||
Date: Mon, 12 Sep 2011 16:03:23 +0800
|
||||
Subject: [PATCH] Optionally disable building the kernel module.
|
||||
|
||||
Distributors (like Fedora) might be interested in including the ipset
|
||||
tools and libs, but they often don't want to build and ship external
|
||||
kernel modules, especially if those modules are already included in
|
||||
their kernel packages.
|
||||
|
||||
This patch introduces a new --with-kmod configure option that can be
|
||||
used to conditionally build the kernel module. The module is still built
|
||||
by default, to preserve compatibility.
|
||||
|
||||
A user who wants to build only the user-space part of ipset can do so by
|
||||
running the following:
|
||||
|
||||
$ ./autogen.sh
|
||||
$ configure --with-kmod=no
|
||||
$ make
|
||||
# make install
|
||||
---
|
||||
Makefile.am | 16 ++++++++++++++++
|
||||
configure.ac | 11 +++++++++++
|
||||
2 files changed, 27 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index bd6b3a8..fc604d7 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -23,21 +23,37 @@ endif
|
||||
SUBDIRS = lib src
|
||||
|
||||
modules_sparse:
|
||||
+if WITH_KMOD
|
||||
${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter \
|
||||
V=$V C=2 CF=-D__CHECK_ENDIAN__ \
|
||||
IP_SET_MAX=$(IP_SET_MAX) KDIR=$$PWD/kernel modules
|
||||
+else
|
||||
+ @echo Skipping kernel modules due to --with-kmod=no
|
||||
+endif
|
||||
|
||||
modules:
|
||||
+if WITH_KMOD
|
||||
${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter V=$V \
|
||||
IP_SET_MAX=$(IP_SET_MAX) KDIR=$$PWD/kernel modules
|
||||
+else
|
||||
+ @echo Skipping kernel modules due to --with-kmod=no
|
||||
+endif
|
||||
|
||||
modules_install:
|
||||
+if WITH_KMOD
|
||||
${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter \
|
||||
KDIR=$$PWD/kernel modules_install
|
||||
+else
|
||||
+ @echo Skipping kernel modules due to --with-kmod=no
|
||||
+endif
|
||||
|
||||
modules_clean:
|
||||
+if WITH_KMOD
|
||||
${MAKE} -C $(KBUILD_OUTPUT) M=$$PWD/kernel/net/netfilter \
|
||||
KDIR=$$PWD/kernel clean
|
||||
+else
|
||||
+ @echo Skipping kernel modules due to --with-kmod=no
|
||||
+endif
|
||||
|
||||
update_includes:
|
||||
./update ip_set.h
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1481d18..9ad8bed 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -11,6 +11,14 @@ case "$host" in
|
||||
*) AC_MSG_ERROR([Linux systems supported exclusively!]);;
|
||||
esac
|
||||
|
||||
+dnl Optionnally disable building the kernel module
|
||||
+AC_ARG_WITH([kmod],
|
||||
+ AS_HELP_STRING([--with-kmod=yes/no],
|
||||
+ [Build the kernel module (default: yes)]),
|
||||
+ [BUILDKMOD="$withval";],
|
||||
+ [BUILDKMOD="yes";])
|
||||
+AM_CONDITIONAL(WITH_KMOD, test "$BUILDKMOD" == "yes")
|
||||
+
|
||||
dnl Additional arguments
|
||||
dnl Kernel build directory or source tree
|
||||
AC_ARG_WITH([kbuild],
|
||||
@@ -24,6 +32,8 @@ AC_ARG_WITH([ksource],
|
||||
AM_CONDITIONAL(WITH_KBUILDDIR, test "$KBUILDDIR" != "")
|
||||
AC_SUBST(KBUILDDIR)
|
||||
|
||||
+if test "$BUILDKMOD" == "yes"
|
||||
+then
|
||||
dnl Sigh: check kernel version dependencies
|
||||
if test "$KBUILDDIR" != ""
|
||||
then
|
||||
@@ -55,6 +65,7 @@ if test "X`$GREP 'NFNL_SUBSYS_IPSET' $ksourcedir/include/linux/netfilter/nfnetli
|
||||
then
|
||||
AC_MSG_ERROR([The kernel source directory $ksourcedir is not patched with netlink.patch to support ipset])
|
||||
fi
|
||||
+fi
|
||||
|
||||
dnl Maximal number of sets supported by the kernel, default 256
|
||||
AC_ARG_WITH([maxsets],
|
||||
--
|
||||
1.7.4.4
|
||||
|
91
ipset.spec
Normal file
91
ipset.spec
Normal file
@ -0,0 +1,91 @@
|
||||
Name: ipset
|
||||
Version: 6.9.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Manage Linux IP sets
|
||||
|
||||
Group: Applications/System
|
||||
License: GPLv2
|
||||
URL: http://ipset.netfilter.org/
|
||||
Source0: http://ipset.netfilter.org/%{name}-%{version}.tar.bz2
|
||||
|
||||
# Submitted upstream: http://bugzilla.netfilter.org/show_bug.cgi?id=749
|
||||
Patch0: ipset-6.9.1-Optionally-disable-building-the-kernel-module.patch
|
||||
|
||||
BuildRequires: autoconf automake libtool
|
||||
BuildRequires: libmnl-devel
|
||||
|
||||
# This is developped hand in hand with a kernel module
|
||||
Requires: kernel >= 3.1
|
||||
|
||||
%description
|
||||
IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which can be
|
||||
administered by the ipset utility. Depending on the type, currently an IP set
|
||||
may store IP addresses, (TCP/UDP) port numbers or IP addresses with MAC
|
||||
addresses in a way, which ensures lightning speed when matching an entry
|
||||
against a set.
|
||||
|
||||
If you want to:
|
||||
- store multiple IP addresses or port numbers and match against the collection
|
||||
by iptables at one swoop;
|
||||
- dynamically update iptables rules against IP addresses or ports without
|
||||
performance penalty;
|
||||
- express complex IP address and ports based rulesets with one single iptables
|
||||
rule and benefit from the speed of IP sets
|
||||
then ipset may be the proper tool for you.
|
||||
|
||||
|
||||
%package devel
|
||||
Summary: Development files for %{name}
|
||||
Requires: %{name}%{?_isa} == %{version}-%{release}
|
||||
Requires: kernel-devel >= 3.1
|
||||
|
||||
%description devel
|
||||
This package contains the files required to develop software using the %{name}
|
||||
libraries.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
|
||||
# Just to make absolutely sure we are not building the bundled kernel module
|
||||
rm -fr kernel
|
||||
|
||||
|
||||
%build
|
||||
autoreconf -i
|
||||
%configure --enable-static=no --with-kmod=no
|
||||
|
||||
# Prevent libtool from defining rpath
|
||||
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
||||
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
|
||||
%install
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
find %{buildroot} -name '*.la' -exec rm -f '{}' \;
|
||||
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
|
||||
%files
|
||||
%doc COPYING
|
||||
%doc %{_mandir}/man8/%{name}.8.gz
|
||||
%{_sbindir}/%{name}
|
||||
%{_libdir}/lib%{name}.so.1
|
||||
%{_libdir}/lib%{name}.so.1.0.0
|
||||
|
||||
%files devel
|
||||
%doc COPYING
|
||||
%{_libdir}/lib%{name}.so
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Sep 14 2011 Mathieu Bridon <bochecha@fedoraproject.org> - 6.9.1-1
|
||||
- Initial packaging.
|
Loading…
Reference in New Issue
Block a user