3 # - fix makefile (-D_UNKNOWN_KERNEL_POINTER_SIZE issue)
4 # - owner needs rewrite to xt
6 # NOTE: be prepared for removing following modules as soon as they won't compile:
7 # - ipt_account was removed from kernel and replaced with xt_ACCOUNT (xtables-addons),
8 # - ipt_ipv4options was not yet removed from kernel, but it is obsoleted by xt_ipv4options
11 %bcond_without doc # without documentation (HOWTOS) which needed TeX
12 %bcond_without dist_kernel # without distribution kernel
13 %bcond_without vserver # kernel build without vserver
14 %bcond_with batch # build iptables-batch
17 %define netfilter_snap 20070806
18 %define llh_version 7:2.6.22.1
19 %define name6 ip6tables
20 Summary: Extensible packet filtering system && extensible NAT system
21 Summary(pl.UTF-8): System filtrowania pakietów oraz system translacji adresów (NAT)
22 Summary(pt_BR.UTF-8): Ferramenta para controlar a filtragem de pacotes no kernel-2.6.x
23 Summary(ru.UTF-8): Утилиты для управления пакетными фильтрами ядра Linux
24 Summary(uk.UTF-8): Утиліти для керування пакетними фільтрами ядра Linux
25 Summary(zh_CN.UTF-8): Linux内核包过滤管理工具
30 Group: Networking/Admin
31 Source0: ftp://ftp.netfilter.org/pub/iptables/%{name}-%{version}.tar.bz2
32 # Source0-md5: f382fe693f0b59d87bd47bea65eca198
33 Source1: cvs://cvs.samba.org/netfilter/%{name}-howtos.tar.bz2
34 # Source1-md5: 2ed2b452daefe70ededd75dc0061fd07
36 Source3: %{name6}.init
37 Patch0: %{name}-%{netfilter_snap}.patch
38 Patch1: %{name}-man.patch
39 # based on http://www.linuximq.net/patchs/iptables-1.4.6-imq.diff
40 Patch2: %{name}-imq.patch
41 # http://www.balabit.com/downloads/files/tproxy/tproxy-iptables-20080204-1915.patch
42 Patch3: %{name}-tproxy.patch
43 Patch4: %{name}-stealth.patch
44 # almost based on iptables-1.4-for-kernel-2.6.20forward-layer7-2.18.patch
45 # http://switch.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.18.tar.gz
46 Patch5: %{name}-layer7.patch
47 Patch6: %{name}-old-1.3.7.patch
48 # http://people.linux-vserver.org/~dhozac/p/m/iptables-1.3.5-owner-xid.patch
49 Patch8: %{name}-1.3.5-owner-xid.patch
50 Patch9: %{name}-batch.patch
51 Patch10: %{name}-headers.patch
52 Patch11: %{name}-owner-struct-size-vs.patch
53 Patch999: %{name}-llh-dirty-hack.patch
54 URL: http://www.netfilter.org/
55 BuildRequires: autoconf
56 BuildRequires: automake
58 BuildRequires: libnfnetlink-devel
59 BuildRequires: libtool
60 BuildRequires: pkgconfig >= 0.9.0
62 BuildRequires: sed >= 4.0
63 BuildRequires: sgml-tools
65 BuildRequires: tetex-dvips
66 BuildRequires: tetex-format-latex
67 BuildRequires: tetex-latex
68 BuildRequires: tetex-tex-babel
70 %if %{with dist_kernel} && %{netfilter_snap} != 0
71 BuildRequires: kernel%{_alt_kernel}-headers(netfilter) >= %{netfilter_snap}
72 BuildRequires: kernel%{_alt_kernel}-source
74 #BuildRequires: linux-libc-headers >= %{llh_version}
75 BuildConflicts: kernel-headers < 2.3.0
76 Provides: firewall-userspace-tool
78 Obsoletes: iptables-ipp2p
79 Obsoletes: iptables24-compat
81 Conflicts: xtables-addons < 1.14
82 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
85 An extensible NAT system, and an extensible packet filtering system.
86 Replacement of ipchains in 2.4 and higher kernels.
88 %description -l pl.UTF-8
89 Wydajny system translacji adresów (NAT) oraz system filtrowania
90 pakietów. Zamiennik ipchains w jądrach 2.4 i nowszych.
92 %description -l pt_BR.UTF-8
93 Esta é a ferramenta que controla o código de filtragem de pacotes do
94 kernel 2.4, obsoletando ipchains. Com esta ferramenta você pode
95 configurar filtros de pacotes, NAT, mascaramento (masquerading),
96 regras dinâmicas (stateful inspection), etc.
98 %description -l ru.UTF-8
99 iptables управляют кодом фильтрации сетевых пакетов в ядре Linux. Они
100 позволяют вам устанавливать межсетевые экраны (firewalls) и IP
103 %description -l uk.UTF-8
104 iptables управляють кодом фільтрації пакетів мережі в ядрі Linux. Вони
105 дозволяють вам встановлювати міжмережеві екрани (firewalls) та IP
109 Summary: iptables libraries
110 Summary(pl.UTF-8): Biblioteki iptables
112 Conflicts: iptables < 1.4.3-1
117 %description libs -l pl.UTF-8
121 Summary: Libraries and headers for developing iptables extensions
122 Summary(pl.UTF-8): Biblioteki i nagłówki do tworzenia rozszerzeń iptables
123 Group: Development/Libraries
124 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
125 Obsoletes: iptables24-devel
128 Libraries and headers for developing iptables extensions.
130 %description devel -l pl.UTF-8
131 Biblioteki i pliki nagłówkowe niezbędne do tworzenia rozszerzeń dla
135 Summary: Static iptables libraries
136 Summary(pl.UTF-8): Biblioteki statyczne iptables
137 Group: Development/Libraries
138 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
141 Static iptables libraries.
143 %description devel -l pl.UTF-8
144 Biblioteki statyczne iptables.
147 Summary: Iptables init (RedHat style)
148 Summary(pl.UTF-8): Iptables init (w stylu RedHata)
149 Group: Networking/Admin
150 Requires(post,preun): /sbin/chkconfig
153 Obsoletes: firewall-init
154 Obsoletes: firewall-init-ipchains
155 Obsoletes: iptables24-init
158 Iptables-init is meant to provide an alternate way than firewall-init
159 to start and stop packet filtering through iptables(8).
161 %description init -l pl.UTF-8
162 Iptables-init ma na celu udostępnienie alternatywnego w stosunku do
163 firewall-init sposobu włączania i wyłączania filtrów IP jądra poprzez
168 %if %{with dist_kernel}
174 # builds but init() api is broken, see warnings
176 %if %{with dist_kernel}
197 CFLAGS="%{rpmcflags} %{rpmcppflags} -D%{!?debug:N}DEBUG" \
198 --with-kbuild=%{_kernelsrcdir} \
199 --with-ksource=%{_kernelsrcdir} \
202 %{?with_static:--enable-static} \
208 %{__make} -j1 -C iptables-howtos
209 sed -i 's:$(HTML_HOWTOS)::g; s:$(PSUS_HOWTOS)::g' iptables-howtos/Makefile
212 # Make a library, needed for OpenVCP
213 ar rcs libiptables.a iptables*.o
214 ar rcs libip6tables.a ip6tables*.o
217 rm -rf $RPM_BUILD_ROOT
218 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_includedir},%{_libdir},%{_mandir}/man3}
221 DESTDIR=$RPM_BUILD_ROOT \
226 # install library needed for collectd:
227 #install libiptc/libiptc.a $RPM_BUILD_ROOT%{_libdir}
229 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
230 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name6}
233 rm -rf $RPM_BUILD_ROOT
235 %post libs -p /sbin/ldconfig
236 %postun libs -p /sbin/ldconfig
239 /sbin/chkconfig --add %{name}
240 /sbin/chkconfig --add %{name6}
243 if [ "$1" = "0" ]; then
244 /sbin/chkconfig --del %{name}
245 /sbin/chkconfig --del %{name6}
249 %defattr(644,root,root,755)
250 %{?with_doc:%doc iptables-howtos/{NAT,networking-concepts,packet-filtering}-HOWTO*}
251 %attr(755,root,root) %{_bindir}/iptables-xml
252 %attr(755,root,root) %{_sbindir}/iptables
253 %attr(755,root,root) %{_sbindir}/iptables-multi
254 %attr(755,root,root) %{_sbindir}/iptables-restore
255 %attr(755,root,root) %{_sbindir}/iptables-save
256 %attr(755,root,root) %{_sbindir}/ip6tables
257 %attr(755,root,root) %{_sbindir}/ip6tables-multi
258 %attr(755,root,root) %{_sbindir}/ip6tables-restore
259 %attr(755,root,root) %{_sbindir}/ip6tables-save
261 %attr(755,root,root) %{_sbindir}/iptables-batch
262 %attr(755,root,root) %{_sbindir}/ip6tables-batch
264 %attr(755,root,root) %{_sbindir}/nfnl_osf
265 %dir %{_libdir}/xtables
267 %if %{with dist_kernel}
268 %attr(755,root,root) %{_libdir}/xtables/libip6t_ah.so
269 %attr(755,root,root) %{_libdir}/xtables/libip6t_dst.so
270 %attr(755,root,root) %{_libdir}/xtables/libip6t_eui64.so
271 %attr(755,root,root) %{_libdir}/xtables/libip6t_frag.so
272 %attr(755,root,root) %{_libdir}/xtables/libip6t_hbh.so
273 %attr(755,root,root) %{_libdir}/xtables/libip6t_hl.so
274 %attr(755,root,root) %{_libdir}/xtables/libip6t_HL.so
275 %attr(755,root,root) %{_libdir}/xtables/libip6t_icmp6.so
276 %attr(755,root,root) %{_libdir}/xtables/libip6t_ipv6header.so
277 %attr(755,root,root) %{_libdir}/xtables/libip6t_LOG.so
278 %attr(755,root,root) %{_libdir}/xtables/libip6t_mh.so
279 #%attr(755,root,root) %{_libdir}/xtables/libip6t_policy.so
280 %attr(755,root,root) %{_libdir}/xtables/libip6t_REJECT.so
281 %attr(755,root,root) %{_libdir}/xtables/libip6t_rt.so
282 #attr(755,root,root) %{_libdir}/xtables/libipt_ACCOUNT.so
283 %attr(755,root,root) %{_libdir}/xtables/libipt_addrtype.so
284 %attr(755,root,root) %{_libdir}/xtables/libipt_ah.so
285 %attr(755,root,root) %{_libdir}/xtables/libipt_CLUSTERIP.so
286 %attr(755,root,root) %{_libdir}/xtables/libipt_DNAT.so
287 %attr(755,root,root) %{_libdir}/xtables/libipt_ecn.so
288 %attr(755,root,root) %{_libdir}/xtables/libipt_ECN.so
289 %attr(755,root,root) %{_libdir}/xtables/libipt_icmp.so
290 #%attr(755,root,root) %{_libdir}/xtables/libipt_ipv4options.so
291 %attr(755,root,root) %{_libdir}/xtables/libipt_IPV4OPTSSTRIP.so
292 %attr(755,root,root) %{_libdir}/xtables/libipt_LOG.so
293 %attr(755,root,root) %{_libdir}/xtables/libipt_MASQUERADE.so
294 %attr(755,root,root) %{_libdir}/xtables/libipt_MIRROR.so
295 %attr(755,root,root) %{_libdir}/xtables/libipt_NETMAP.so
296 #%attr(755,root,root) %{_libdir}/xtables/libipt_policy.so
297 %attr(755,root,root) %{_libdir}/xtables/libipt_realm.so
298 %attr(755,root,root) %{_libdir}/xtables/libipt_REDIRECT.so
299 %attr(755,root,root) %{_libdir}/xtables/libipt_REJECT.so
300 %attr(755,root,root) %{_libdir}/xtables/libipt_rpc.so
301 %attr(755,root,root) %{_libdir}/xtables/libipt_SAME.so
302 %attr(755,root,root) %{_libdir}/xtables/libipt_SNAT.so
303 #%attr(755,root,root) %{_libdir}/xtables/libipt_stealth.so
304 %attr(755,root,root) %{_libdir}/xtables/libipt_ttl.so
305 %attr(755,root,root) %{_libdir}/xtables/libipt_TTL.so
306 %attr(755,root,root) %{_libdir}/xtables/libipt_ULOG.so
307 %attr(755,root,root) %{_libdir}/xtables/libipt_unclean.so
308 %attr(755,root,root) %{_libdir}/xtables/libxt_CHECKSUM.so
309 %attr(755,root,root) %{_libdir}/xtables/libxt_CLASSIFY.so
310 %attr(755,root,root) %{_libdir}/xtables/libxt_cluster.so
311 %attr(755,root,root) %{_libdir}/xtables/libxt_comment.so
312 %attr(755,root,root) %{_libdir}/xtables/libxt_connbytes.so
313 %attr(755,root,root) %{_libdir}/xtables/libxt_connlimit.so
314 %attr(755,root,root) %{_libdir}/xtables/libxt_connmark.so
315 %attr(755,root,root) %{_libdir}/xtables/libxt_CONNMARK.so
316 %attr(755,root,root) %{_libdir}/xtables/libxt_CONNSECMARK.so
317 %attr(755,root,root) %{_libdir}/xtables/libxt_conntrack.so
318 %attr(755,root,root) %{_libdir}/xtables/libxt_cpu.so
319 %attr(755,root,root) %{_libdir}/xtables/libxt_CT.so
320 %attr(755,root,root) %{_libdir}/xtables/libxt_dccp.so
321 %attr(755,root,root) %{_libdir}/xtables/libxt_dscp.so
322 %attr(755,root,root) %{_libdir}/xtables/libxt_DSCP.so
323 %attr(755,root,root) %{_libdir}/xtables/libxt_esp.so
324 %attr(755,root,root) %{_libdir}/xtables/libxt_hashlimit.so
325 %attr(755,root,root) %{_libdir}/xtables/libxt_helper.so
326 %attr(755,root,root) %{_libdir}/xtables/libxt_IDLETIMER.so
327 %attr(755,root,root) %{_libdir}/xtables/libxt_IMQ.so
328 %attr(755,root,root) %{_libdir}/xtables/libxt_iprange.so
329 %attr(755,root,root) %{_libdir}/xtables/libxt_ipvs.so
330 %attr(755,root,root) %{_libdir}/xtables/libxt_LED.so
331 %attr(755,root,root) %{_libdir}/xtables/libxt_layer7.so
332 %attr(755,root,root) %{_libdir}/xtables/libxt_length.so
333 %attr(755,root,root) %{_libdir}/xtables/libxt_limit.so
334 %attr(755,root,root) %{_libdir}/xtables/libxt_mac.so
335 %attr(755,root,root) %{_libdir}/xtables/libxt_mark.so
336 %attr(755,root,root) %{_libdir}/xtables/libxt_MARK.so
337 %attr(755,root,root) %{_libdir}/xtables/libxt_multiport.so
338 %attr(755,root,root) %{_libdir}/xtables/libxt_NFLOG.so
339 %attr(755,root,root) %{_libdir}/xtables/libxt_NFQUEUE.so
340 %attr(755,root,root) %{_libdir}/xtables/libxt_NOTRACK.so
341 %attr(755,root,root) %{_libdir}/xtables/libxt_owner.so
342 %attr(755,root,root) %{_libdir}/xtables/libxt_osf.so
343 %attr(755,root,root) %{_libdir}/xtables/libxt_physdev.so
344 %attr(755,root,root) %{_libdir}/xtables/libxt_pkttype.so
345 %attr(755,root,root) %{_libdir}/xtables/libxt_policy.so
346 %attr(755,root,root) %{_libdir}/xtables/libxt_recent.so
347 %attr(755,root,root) %{_libdir}/xtables/libxt_quota.so
348 %attr(755,root,root) %{_libdir}/xtables/libxt_RATEEST.so
349 %attr(755,root,root) %{_libdir}/xtables/libxt_rateest.so
350 %attr(755,root,root) %{_libdir}/xtables/libxt_sctp.so
351 %attr(755,root,root) %{_libdir}/xtables/libxt_SECMARK.so
352 %attr(755,root,root) %{_libdir}/xtables/libxt_set.so
353 %attr(755,root,root) %{_libdir}/xtables/libxt_SET.so
354 %attr(755,root,root) %{_libdir}/xtables/libxt_socket.so
355 %attr(755,root,root) %{_libdir}/xtables/libxt_standard.so
356 %attr(755,root,root) %{_libdir}/xtables/libxt_state.so
357 %attr(755,root,root) %{_libdir}/xtables/libxt_statistic.so
358 %attr(755,root,root) %{_libdir}/xtables/libxt_string.so
359 %attr(755,root,root) %{_libdir}/xtables/libxt_tcpmss.so
360 %attr(755,root,root) %{_libdir}/xtables/libxt_TCPMSS.so
361 %attr(755,root,root) %{_libdir}/xtables/libxt_TCPOPTSTRIP.so
362 %attr(755,root,root) %{_libdir}/xtables/libxt_tcp.so
363 %attr(755,root,root) %{_libdir}/xtables/libxt_TEE.so
364 %attr(755,root,root) %{_libdir}/xtables/libxt_time.so
365 %attr(755,root,root) %{_libdir}/xtables/libxt_tos.so
366 %attr(755,root,root) %{_libdir}/xtables/libxt_TOS.so
367 %attr(755,root,root) %{_libdir}/xtables/libxt_TPROXY.so
368 %attr(755,root,root) %{_libdir}/xtables/libxt_TRACE.so
369 %attr(755,root,root) %{_libdir}/xtables/libxt_u32.so
370 %attr(755,root,root) %{_libdir}/xtables/libxt_udp.so
372 %attr(755,root,root) %{_libdir}/xtables/*.so
377 %defattr(644,root,root,755)
378 %attr(755,root,root) %ghost %{_libdir}/libipq.so.0
379 %attr(755,root,root) %{_libdir}/libipq.so.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libiptc.so.0
381 %attr(755,root,root) %{_libdir}/libiptc.so.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libip4tc.so.0
383 %attr(755,root,root) %{_libdir}/libip4tc.so.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libip6tc.so.0
385 %attr(755,root,root) %{_libdir}/libip6tc.so.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libxtables.so.5
387 %attr(755,root,root) %{_libdir}/libxtables.so.*.*
390 %defattr(644,root,root,755)
391 %{?with_doc:%doc iptables-howtos/netfilter-hacking-HOWTO*}
392 %attr(755,root,root) %{_libdir}/lib*.so
395 %{_includedir}/libiptc
396 %{_pkgconfigdir}/*.pc
401 %defattr(644,root,root,755)
406 %defattr(644,root,root,755)
407 %attr(754,root,root) /etc/rc.d/init.d/iptables
408 %attr(754,root,root) /etc/rc.d/init.d/ip6tables