3 # - patch our kernel to provide the needed API and update
4 # the dependencies here
7 %bcond_without dist_kernel # allow non-distribution kernel
8 %bcond_without kernel # don't build kernel modules
9 %bcond_without userspace # don't build userspace tools
10 %bcond_with verbose # verbose build (V=1)
13 %undefine with_dist_kernel
15 %if "%{_alt_kernel}" != "%{nil}"
16 %undefine with_userspace
18 %if %{without userspace}
19 # nothing to be placed to debuginfo package
20 %define _enable_debug_packages 0
25 Summary: IP sets utility
26 Summary(pl.UTF-8): Narzędzie do zarządzania zbiorami IP
27 Name: %{pname}%{_alt_kernel}
31 Group: Networking/Admin
32 #Source0Download: http://ipset.netfilter.org/install.html
33 Source0: http://ipset.netfilter.org/%{pname}-%{version}.tar.bz2
34 # Source0-md5: 9fd70c825f052db7dc9d5ba0562b7083
35 Source1: %{pname}.init
36 Patch0: %{pname}-no_kernel.patch
37 URL: http://ipset.netfilter.org/
38 BuildRequires: autoconf >= 2.50
39 BuildRequires: automake
40 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.38.6}
41 BuildRequires: libmnl-devel >= 1
42 BuildRequires: libltdl-devel
43 BuildRequires: libtool >= 2:2.0
44 %{?with_userspace:BuildRequires: linux-libc-headers >= 7:2.6.38.6}
45 BuildRequires: pkgconfig
46 BuildRequires: rpmbuild(macros) >= 1.583
47 Suggests: kernel-net-ipset
48 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50 # unresolved ipset_errcode, defined in the ipset binary
51 %define skip_post_check_so libipset\.so.*
54 IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which
55 can be administered by the ipset utility. Depending on the type,
56 currently an IP set may store IP addresses, (TCP/UDP) port numbers or
57 IP addresses with MAC addresses in a way, which ensures lightning
58 speed when matching an entry against a set.
60 %description -l pl.UTF-8
61 Zbiory IP to szkielet w jądrze Linuksa 2.4.x i 2.6.x, którym można
62 administrować przy użyciu narzędzia ipset. W zależności od
63 rodzaju aktualnie zbiór IP może przechowywać adresy IP, numery
64 portów (TCP/UDP) lub adresy IP z adresami MAC - w sposób
65 zapewniający maksymalną szybkość przy dopasowywaniu elementu do
69 Summary: Header files for ipset interface
70 Summary(pl.UTF-8): Pliki nagłówkowe do interfejsu ipset
71 Group: Development/Libraries
72 Requires: %{name} = %{version}-%{release}
73 Requires: libmnl-devel >= 1
76 Header files for IPset interface.
78 %description devel -l pl.UTF-8
79 Pliki nagłówkowe do interfejsu IPset.
82 Summary: Static ipset interface library
83 Summary(pl.UTF-8): Biblioteka statyczna interfejsu ipset
84 Group: Development/Libraries
85 Requires: %{name}-devel = %{version}-%{release}
88 Static IPset interface library.
90 %description static -l pl.UTF-8
91 Biblioteka statyczna interfejsu IPset.
94 Summary: IPset init script
95 Summary(pl.UTF-8): Skrypt startowy IPset
96 Group: Networking/Admin
97 Requires(post,preun): /sbin/chkconfig
98 Requires: %{pname} = %{version}-%{release}
102 IPset initialization script.
104 %description init -l pl.UTF-8
105 Skrypt startowy IPset.
107 %package -n kernel%{_alt_kernel}-net-ipset
108 Summary: IPset kernel modules
109 Summary(pl.UTF-8): Moduły jądra oferujące wsparcie dla zbiorów IP
110 Release: %{rel}@%{_kernel_ver_str}
112 %{?with_dist_kernel:%requires_releq_kernel}
113 Requires(post,postun): /sbin/depmod
115 %description -n kernel%{_alt_kernel}-net-ipset
116 IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which
117 can be administered by the ipset utility. Depending on the type,
118 currently an IP set may store IP addresses, (TCP/UDP) port numbers or
119 IP addresses with MAC addresses in a way, which ensures lightning
120 speed when matching an entry against a set.
122 This package contains kernel modules.
124 %description -n kernel%{_alt_kernel}-net-ipset -l pl.UTF-8
125 Zbiory IP to szkielet w jądrze Linuksa 2.4.x i 2.6.x, którym można
126 administrować przy użyciu narzędzia ipset. W zależności od
127 rodzaju aktualnie zbiór IP może przechowywać adresy IP, numery
128 portów (TCP/UDP) lub adresy IP z adresami MAC - w sposób
129 zapewniający maksymalną szybkość przy dopasowywaniu elementu do
132 Ten pakiet zawiera moduły jądra oferujące wsparcie dla zbiorów IP.
135 %setup -q -n %{pname}-%{version}
136 %{!?with_kernel:%patch0 -p1}
145 --disable-silent-rules \
146 -with-settype-modules-list=all \
147 --with-kbuild=%{_kernelsrcdir}
149 %if %{with userspace}
154 # a hack not to list all modules: list only ip_set, all other are build anyway
155 %build_kernel_modules -C kernel/net/netfilter -m ipset/ip_set IP_SET_MAX=255 KDIR=$PWD/../..
159 rm -rf $RPM_BUILD_ROOT
161 %if %{with userspace}
162 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_includedir}/libipset}
165 DESTDIR=$RPM_BUILD_ROOT
166 cp include/libipset/*.h $RPM_BUILD_ROOT%{_includedir}/libipset
168 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
172 for drv in kernel/net/netfilter/ipset/ip_set*.ko ; do
173 %install_kernel_modules -m ${drv%.ko} -d kernel/net/ipv4/netfilter/ipset
175 for drv in kernel/net/netfilter/xt_*.ko ; do
176 %install_kernel_modules -m ${drv%.ko} -d kernel/net/ipv4/netfilter
181 rm -rf $RPM_BUILD_ROOT
184 /sbin/chkconfig --add %{pname}
187 if [ "$1" = "0" ]; then
188 /sbin/chkconfig --del %{pname}
191 %post -n kernel%{_alt_kernel}-net-ipset
192 %depmod %{_kernel_ver}
194 %postun -n kernel%{_alt_kernel}-net-ipset
195 %depmod %{_kernel_ver}
197 %if %{with userspace}
199 %defattr(644,root,root,755)
200 %doc ChangeLog ChangeLog.ippool README UPGRADE
201 %attr(755,root,root) %{_sbindir}/ipset
202 %attr(755,root,root) %{_libdir}/libipset.so.*.*.*
203 %attr(755,root,root) %ghost %{_libdir}/libipset.so.3
204 %{_mandir}/man8/ipset.8*
207 %defattr(644,root,root,755)
208 %attr(755,root,root) %{_libdir}/libipset.so
209 %{_libdir}/libipset.la
210 %{_includedir}/libipset
213 %defattr(644,root,root,755)
214 %{_libdir}/libipset.a
217 %defattr(644,root,root,755)
218 %attr(754,root,root) /etc/rc.d/init.d/ipset
222 %files -n kernel%{_alt_kernel}-net-ipset
223 %defattr(644,root,root,755)
224 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/xt_*.ko*
225 %dir /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset
226 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset/ip_set.ko*
227 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset/ip_set_*.ko*