3 # - patch our kernel to provide the needed API and update
4 # the dependencies here
7 %bcond_without kernel # don't build kernel modules
8 %bcond_without userspace # don't build userspace tools
9 %bcond_with verbose # verbose build (V=1)
11 # The goal here is to have main, userspace, package built once with
12 # simple release number, and only rebuild kernel packages with kernel
13 # version as part of release number, without the need to bump release
14 # with every kernel change.
15 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
16 %{error:kernel and userspace cannot be built at the same time on PLD builders}
20 %if %{without userspace}
21 # nothing to be placed to debuginfo package
22 %define _enable_debug_packages 0
27 Summary: IP sets utility
28 Summary(pl.UTF-8): Narzędzie do zarządzania zbiorami IP
29 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
31 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
33 Group: Networking/Admin
34 #Source0Download: http://ipset.netfilter.org/install.html
35 Source0: http://ipset.netfilter.org/%{pname}-%{version}.tar.bz2
36 # Source0-md5: 41c32e3b884ec714f0aac95e7675f9d1
37 Source1: %{pname}.init
38 URL: http://ipset.netfilter.org/
39 BuildRequires: autoconf >= 2.50
40 BuildRequires: automake
41 BuildRequires: libmnl-devel >= 1
42 BuildRequires: libltdl-devel >= 2:2.0
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.701
47 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}}
48 Suggests: kernel-net-ipset
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 # unresolved ipset_errcode, defined in the ipset binary
52 %define skip_post_check_so libipset\.so.*
55 IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which
56 can be administered by the ipset utility. Depending on the type,
57 currently an IP set may store IP addresses, (TCP/UDP) port numbers or
58 IP addresses with MAC addresses in a way, which ensures lightning
59 speed when matching an entry against a set.
61 %description -l pl.UTF-8
62 Zbiory IP to szkielet w jądrze Linuksa 2.4.x i 2.6.x, którym można
63 administrować przy użyciu narzędzia ipset. W zależności od
64 rodzaju aktualnie zbiór IP może przechowywać adresy IP, numery
65 portów (TCP/UDP) lub adresy IP z adresami MAC - w sposób
66 zapewniający maksymalną szybkość przy dopasowywaniu elementu do
70 Summary: Header files for ipset interface
71 Summary(pl.UTF-8): Pliki nagłówkowe do interfejsu ipset
72 Group: Development/Libraries
73 Requires: %{name} = %{version}-%{release}
74 Requires: libmnl-devel >= 1
77 Header files for IPset interface.
79 %description devel -l pl.UTF-8
80 Pliki nagłówkowe do interfejsu IPset.
83 Summary: Static ipset interface library
84 Summary(pl.UTF-8): Biblioteka statyczna interfejsu ipset
85 Group: Development/Libraries
86 Requires: %{name}-devel = %{version}-%{release}
89 Static IPset interface library.
91 %description static -l pl.UTF-8
92 Biblioteka statyczna interfejsu IPset.
95 Summary: IPset init script
96 Summary(pl.UTF-8): Skrypt startowy IPset
97 Group: Networking/Admin
98 Requires(post,preun): /sbin/chkconfig
99 Requires: %{pname} = %{version}-%{release}
103 IPset initialization script.
105 %description init -l pl.UTF-8
106 Skrypt startowy IPset.
108 %package -n bash-completion-ipset
109 Summary: Bash completion for ipset command
110 Summary(pl.UTF-8): Bashowe dopełnianie parametrów polecenia ipset
111 Group: Applications/Shells
112 Requires: %{pname} = %{version}-%{release}
113 Requires: bash-completion >= 2.0
115 %description -n bash-completion-ipset
116 Bash completion for ipset command.
118 %description -n bash-completion-ipset -l pl.UTF-8
119 Bashowe dopełnianie parametrów polecenia ipset.
121 %define kernel_pkg()\
122 %package -n kernel%{_alt_kernel}-net-ipset\
123 Summary: IPset kernel modules\
124 Summary(pl.UTF-8): Moduły jądra oferujące wsparcie dla zbiorów IP\
125 Release: %{rel}@%{_kernel_ver_str}\
127 Requires(post,postun): /sbin/depmod\
128 %requires_releq_kernel\
129 Requires(postun): %releq_kernel\
131 %description -n kernel%{_alt_kernel}-net-ipset\
132 IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which\
133 can be administered by the ipset utility. Depending on the type,\
134 currently an IP set may store IP addresses, (TCP/UDP) port numbers or\
135 IP addresses with MAC addresses in a way, which ensures lightning\
136 speed when matching an entry against a set.\
138 This package contains kernel modules.\
140 %description -n kernel%{_alt_kernel}-net-ipset -l pl.UTF-8\
141 Zbiory IP to szkielet w jądrze Linuksa 2.4.x i 2.6.x, którym można\
142 administrować przy użyciu narzędzia ipset. W zależności od\
143 rodzaju aktualnie zbiór IP może przechowywać adresy IP, numery\
144 portów (TCP/UDP) lub adresy IP z adresami MAC - w sposób\
145 zapewniający maksymalną szybkość przy dopasowywaniu elementu do\
148 Ten pakiet zawiera moduły jądra oferujące wsparcie dla zbiorów IP.\
151 %files -n kernel%{_alt_kernel}-net-ipset\
152 %defattr(644,root,root,755)\
153 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/xt_*.ko*\
154 %dir /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset\
155 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset/ip_set.ko*\
156 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset/ip_set_*.ko*\
159 %post -n kernel%{_alt_kernel}-net-ipset\
160 %depmod %{_kernel_ver}\
162 %postun -n kernel%{_alt_kernel}-net-ipset\
163 %depmod %{_kernel_ver}\
166 %define build_kernel_pkg()\
168 --disable-silent-rules \\\
170 --with-kbuild=%{_kernelsrcdir} \\\
171 --with-settype-modules-list=all\
173 # a hack not to list all modules: list only ip_set, all other are build anyway\
174 %build_kernel_modules -C kernel/net/netfilter -m ipset/ip_set IP_SET_MAX=255 KDIR=$PWD/../..\
176 for drv in kernel/net/netfilter/ipset/ip_set*.ko ; do\
177 %install_kernel_modules -D installed -m ${drv%.ko} -d kernel/net/ipv4/netfilter/ipset\
179 for drv in kernel/net/netfilter/xt_*.ko ; do\
180 %install_kernel_modules -D installed -m ${drv%.ko} -d kernel/net/ipv4/netfilter\
184 %{?with_kernel:%{expand:%create_kernel_packages}}
187 %setup -q -n %{pname}-%{version}
194 %if %{with userspace}
198 bashcompdir=%{bash_compdir} \
200 --disable-silent-rules \
202 --with-settype-modules-list=all
208 %{?with_kernel:%{expand:%build_kernel_packages}}
211 rm -rf $RPM_BUILD_ROOT
213 %if %{with userspace}
214 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_includedir}/libipset}
216 %{__make} -C build-usr install \
217 DESTDIR=$RPM_BUILD_ROOT
219 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
223 install -d $RPM_BUILD_ROOT
224 cp -a installed/* $RPM_BUILD_ROOT
228 rm -rf $RPM_BUILD_ROOT
231 /sbin/chkconfig --add %{pname}
234 if [ "$1" = "0" ]; then
235 /sbin/chkconfig --del %{pname}
238 %if %{with userspace}
240 %defattr(644,root,root,755)
241 %doc ChangeLog ChangeLog.ippool README UPGRADE
242 %attr(755,root,root) %{_sbindir}/ipset
243 %attr(755,root,root) %{_libdir}/libipset.so.*.*.*
244 %attr(755,root,root) %ghost %{_libdir}/libipset.so.3
245 %{_mandir}/man8/ipset.8*
248 %defattr(644,root,root,755)
249 %attr(755,root,root) %{_libdir}/libipset.so
250 %{_libdir}/libipset.la
251 %{_includedir}/libipset
252 %{_pkgconfigdir}/libipset.pc
255 %defattr(644,root,root,755)
256 %{_libdir}/libipset.a
259 %defattr(644,root,root,755)
260 %attr(754,root,root) /etc/rc.d/init.d/ipset
262 %files -n bash-completion-ipset
263 %defattr(644,root,root,755)
264 %{bash_compdir}/ipset