]> git.pld-linux.org Git - packages/iptables.git/blob - iptables.spec
- implement some Jan Engelhardt suggestions
[packages/iptables.git] / iptables.spec
1 #
2 # TODO:
3 # - fix makefile (-D_UNKNOWN_KERNEL_POINTER_SIZE issue)
4 # - owner needs rewrite to xt
5 #
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
9 #
10 # Conditional build:
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
15 %bcond_with     static
16 #
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内核包过滤管理工具
26 Name:           iptables
27 Version:        1.4.9.1
28 Release:        1
29 License:        GPL
30 Group:          Networking/Admin
31 Source0:        ftp://ftp.netfilter.org/pub/iptables/%{name}-%{version}.tar.bz2
32 # Source0-md5:  fbadfb0b5f2dbda49e0ad06a798898e3
33 Source1:        cvs://cvs.samba.org/netfilter/%{name}-howtos.tar.bz2
34 # Source1-md5:  2ed2b452daefe70ededd75dc0061fd07
35 Source2:        %{name}.init
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
57 BuildRequires:  groff
58 BuildRequires:  libnfnetlink-devel
59 BuildRequires:  libtool
60 BuildRequires:  pkgconfig >= 0.9.0
61 %if %{with doc}
62 BuildRequires:  sed >= 4.0
63 BuildRequires:  sgml-tools
64 BuildRequires:  sgmls
65 BuildRequires:  tetex-dvips
66 BuildRequires:  tetex-format-latex
67 BuildRequires:  tetex-latex
68 BuildRequires:  tetex-tex-babel
69 %endif
70 %if %{with dist_kernel} && %{netfilter_snap} != 0
71 BuildRequires:  kernel%{_alt_kernel}-headers(netfilter) >= %{netfilter_snap}
72 BuildRequires:  kernel%{_alt_kernel}-source
73 %endif
74 #BuildRequires: linux-libc-headers >= %{llh_version}
75 BuildConflicts: kernel-headers < 2.3.0
76 Provides:       firewall-userspace-tool
77 Obsoletes:      ipchains
78 Obsoletes:      iptables-ipp2p
79 Obsoletes:      iptables24-compat
80 Obsoletes:      netfilter
81 Conflicts:      xtables-addons < 1.14
82 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
83
84 %description
85 An extensible NAT system, and an extensible packet filtering system.
86 Replacement of ipchains in 2.4 and higher kernels.
87
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.
91
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.
97
98 %description -l ru.UTF-8
99 iptables управляют кодом фильтрации сетевых пакетов в ядре Linux. Они
100 позволяют вам устанавливать межсетевые экраны (firewalls) и IP
101 маскарадинг, и т.п.
102
103 %description -l uk.UTF-8
104 iptables управляють кодом фільтрації пакетів мережі в ядрі Linux. Вони
105 дозволяють вам встановлювати міжмережеві екрани (firewalls) та IP
106 маскарадинг, тощо.
107
108 %package libs
109 Summary:        iptables libraries
110 Summary(pl.UTF-8):      Biblioteki iptables
111 Group:          Libraries
112 Conflicts:      iptables < 1.4.3-1
113
114 %description libs
115 iptables libraries.
116
117 %description libs -l pl.UTF-8
118 Biblioteki iptables.
119
120 %package devel
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
126
127 %description devel
128 Libraries and headers for developing iptables extensions.
129
130 %description devel -l pl.UTF-8
131 Biblioteki i pliki nagłówkowe niezbędne do tworzenia rozszerzeń dla
132 iptables.
133
134 %package static
135 Summary:        Static iptables libraries
136 Summary(pl.UTF-8):      Biblioteki statyczne iptables
137 Group:          Development/Libraries
138 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
139
140 %description static
141 Static iptables libraries.
142
143 %description devel -l pl.UTF-8
144 Biblioteki statyczne iptables.
145
146 %package init
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
151 Requires:       %{name}
152 Requires:       rc-scripts
153 Obsoletes:      firewall-init
154 Obsoletes:      firewall-init-ipchains
155 Obsoletes:      iptables24-init
156
157 %description init
158 Iptables-init is meant to provide an alternate way than firewall-init
159 to start and stop packet filtering through iptables(8).
160
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
164 iptables(8).
165
166 %prep
167 %setup -q -a1
168 %if %{with dist_kernel}
169 %patch0 -p1
170 %endif
171 %patch1 -p1
172 %patch2 -p0
173 #%patch3 -p0
174 %patch4 -p1
175 %if %{with dist_kernel}
176 %patch5 -p1
177 %patch6 -p1
178 %endif
179 %if %{with vserver}
180 #patch8 -p1
181 %patch11 -p1
182 %endif
183 %if %{with batch}
184 %patch9 -p1
185 %endif
186 #%patch10 -p1
187
188 #patch999 -p1
189
190 %build
191 %{__libtoolize}
192 %{__aclocal}
193 %{__autoconf}
194 %{__automake}
195 %configure \
196         CFLAGS="%{rpmcflags} %{rpmcppflags} -D%{!?debug:N}DEBUG" \
197         --with-kbuild=%{_kernelsrcdir} \
198         --with-ksource=%{_kernelsrcdir} \
199         --enable-devel \
200         --enable-libipq \
201         %{?with_static:--enable-static} \
202         --enable-shared
203
204 %{__make} V=1 all
205
206 %if %{with doc}
207 %{__make} -j1 -C iptables-howtos
208 sed -i 's:$(HTML_HOWTOS)::g; s:$(PSUS_HOWTOS)::g' iptables-howtos/Makefile
209 %endif
210
211 # Make a library, needed for OpenVCP
212 ar rcs libiptables.a iptables*.o
213 ar rcs libip6tables.a ip6tables*.o
214
215 %install
216 rm -rf $RPM_BUILD_ROOT
217 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_includedir},%{_libdir},%{_mandir}/man3}
218
219 %{__make} install \
220         DESTDIR=$RPM_BUILD_ROOT \
221         BINDIR=%{_sbindir} \
222         MANDIR=%{_mandir} \
223         LIBDIR=%{_libdir}
224
225 # install library needed for collectd:
226 #install libiptc/libiptc.a $RPM_BUILD_ROOT%{_libdir}
227
228 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
229 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name6}
230
231 %clean
232 rm -rf $RPM_BUILD_ROOT
233
234 %post libs -p /sbin/ldconfig
235 %postun libs -p /sbin/ldconfig
236
237 %post init
238 /sbin/chkconfig --add %{name}
239 /sbin/chkconfig --add %{name6}
240
241 %preun init
242 if [ "$1" = "0" ]; then
243         /sbin/chkconfig --del %{name}
244         /sbin/chkconfig --del %{name6}
245 fi
246
247 %files
248 %defattr(644,root,root,755)
249 %{?with_doc:%doc iptables-howtos/{NAT,networking-concepts,packet-filtering}-HOWTO*}
250 %attr(755,root,root) %{_bindir}/iptables-xml
251 %attr(755,root,root) %{_sbindir}/iptables
252 %attr(755,root,root) %{_sbindir}/iptables-multi
253 %attr(755,root,root) %{_sbindir}/iptables-restore
254 %attr(755,root,root) %{_sbindir}/iptables-save
255 %attr(755,root,root) %{_sbindir}/ip6tables
256 %attr(755,root,root) %{_sbindir}/ip6tables-multi
257 %attr(755,root,root) %{_sbindir}/ip6tables-restore
258 %attr(755,root,root) %{_sbindir}/ip6tables-save
259 %if %{with batch}
260 %attr(755,root,root) %{_sbindir}/iptables-batch
261 %attr(755,root,root) %{_sbindir}/ip6tables-batch
262 %endif
263 %attr(755,root,root) %{_sbindir}/nfnl_osf
264 %dir %{_libdir}/xtables
265 %{_datadir}/xtables
266 %if %{with dist_kernel}
267 %attr(755,root,root) %{_libdir}/xtables/libip6t_ah.so
268 %attr(755,root,root) %{_libdir}/xtables/libip6t_dst.so
269 %attr(755,root,root) %{_libdir}/xtables/libip6t_eui64.so
270 %attr(755,root,root) %{_libdir}/xtables/libip6t_frag.so
271 %attr(755,root,root) %{_libdir}/xtables/libip6t_hbh.so
272 %attr(755,root,root) %{_libdir}/xtables/libip6t_hl.so
273 %attr(755,root,root) %{_libdir}/xtables/libip6t_HL.so
274 %attr(755,root,root) %{_libdir}/xtables/libip6t_icmp6.so
275 %attr(755,root,root) %{_libdir}/xtables/libip6t_ipv6header.so
276 %attr(755,root,root) %{_libdir}/xtables/libip6t_LOG.so
277 %attr(755,root,root) %{_libdir}/xtables/libip6t_mh.so
278 #%attr(755,root,root) %{_libdir}/xtables/libip6t_policy.so
279 %attr(755,root,root) %{_libdir}/xtables/libip6t_REJECT.so
280 %attr(755,root,root) %{_libdir}/xtables/libip6t_rt.so
281 #attr(755,root,root) %{_libdir}/xtables/libipt_ACCOUNT.so
282 %attr(755,root,root) %{_libdir}/xtables/libipt_addrtype.so
283 %attr(755,root,root) %{_libdir}/xtables/libipt_ah.so
284 %attr(755,root,root) %{_libdir}/xtables/libipt_CLUSTERIP.so
285 %attr(755,root,root) %{_libdir}/xtables/libipt_DNAT.so
286 %attr(755,root,root) %{_libdir}/xtables/libipt_ecn.so
287 %attr(755,root,root) %{_libdir}/xtables/libipt_ECN.so
288 %attr(755,root,root) %{_libdir}/xtables/libipt_icmp.so
289 #%attr(755,root,root) %{_libdir}/xtables/libipt_ipv4options.so
290 %attr(755,root,root) %{_libdir}/xtables/libipt_IPV4OPTSSTRIP.so
291 %attr(755,root,root) %{_libdir}/xtables/libipt_layer7.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_CLASSIFY.so
309 %attr(755,root,root) %{_libdir}/xtables/libxt_cluster.so
310 %attr(755,root,root) %{_libdir}/xtables/libxt_comment.so
311 %attr(755,root,root) %{_libdir}/xtables/libxt_connbytes.so
312 %attr(755,root,root) %{_libdir}/xtables/libxt_connlimit.so
313 %attr(755,root,root) %{_libdir}/xtables/libxt_connmark.so
314 %attr(755,root,root) %{_libdir}/xtables/libxt_CONNMARK.so
315 %attr(755,root,root) %{_libdir}/xtables/libxt_CONNSECMARK.so
316 %attr(755,root,root) %{_libdir}/xtables/libxt_conntrack.so
317 %attr(755,root,root) %{_libdir}/xtables/libxt_CT.so
318 %attr(755,root,root) %{_libdir}/xtables/libxt_dccp.so
319 %attr(755,root,root) %{_libdir}/xtables/libxt_dscp.so
320 %attr(755,root,root) %{_libdir}/xtables/libxt_DSCP.so
321 %attr(755,root,root) %{_libdir}/xtables/libxt_esp.so
322 %attr(755,root,root) %{_libdir}/xtables/libxt_hashlimit.so
323 %attr(755,root,root) %{_libdir}/xtables/libxt_helper.so
324 %attr(755,root,root) %{_libdir}/xtables/libxt_IMQ.so
325 %attr(755,root,root) %{_libdir}/xtables/libxt_iprange.so
326 %attr(755,root,root) %{_libdir}/xtables/libxt_LED.so
327 %attr(755,root,root) %{_libdir}/xtables/libxt_length.so
328 %attr(755,root,root) %{_libdir}/xtables/libxt_limit.so
329 %attr(755,root,root) %{_libdir}/xtables/libxt_mac.so
330 %attr(755,root,root) %{_libdir}/xtables/libxt_mark.so
331 %attr(755,root,root) %{_libdir}/xtables/libxt_MARK.so
332 %attr(755,root,root) %{_libdir}/xtables/libxt_multiport.so
333 %attr(755,root,root) %{_libdir}/xtables/libxt_NFLOG.so
334 %attr(755,root,root) %{_libdir}/xtables/libxt_NFQUEUE.so
335 %attr(755,root,root) %{_libdir}/xtables/libxt_NOTRACK.so
336 %attr(755,root,root) %{_libdir}/xtables/libxt_owner.so
337 %attr(755,root,root) %{_libdir}/xtables/libxt_osf.so
338 %attr(755,root,root) %{_libdir}/xtables/libxt_physdev.so
339 %attr(755,root,root) %{_libdir}/xtables/libxt_pkttype.so
340 %attr(755,root,root) %{_libdir}/xtables/libxt_policy.so
341 %attr(755,root,root) %{_libdir}/xtables/libxt_recent.so
342 %attr(755,root,root) %{_libdir}/xtables/libxt_quota.so
343 %attr(755,root,root) %{_libdir}/xtables/libxt_RATEEST.so
344 %attr(755,root,root) %{_libdir}/xtables/libxt_rateest.so
345 %attr(755,root,root) %{_libdir}/xtables/libxt_sctp.so
346 %attr(755,root,root) %{_libdir}/xtables/libxt_SECMARK.so
347 %attr(755,root,root) %{_libdir}/xtables/libxt_set.so
348 %attr(755,root,root) %{_libdir}/xtables/libxt_SET.so
349 %attr(755,root,root) %{_libdir}/xtables/libxt_socket.so
350 %attr(755,root,root) %{_libdir}/xtables/libxt_standard.so
351 %attr(755,root,root) %{_libdir}/xtables/libxt_state.so
352 %attr(755,root,root) %{_libdir}/xtables/libxt_statistic.so
353 %attr(755,root,root) %{_libdir}/xtables/libxt_string.so
354 %attr(755,root,root) %{_libdir}/xtables/libxt_tcpmss.so
355 %attr(755,root,root) %{_libdir}/xtables/libxt_TCPMSS.so
356 %attr(755,root,root) %{_libdir}/xtables/libxt_TCPOPTSTRIP.so
357 %attr(755,root,root) %{_libdir}/xtables/libxt_tcp.so
358 %attr(755,root,root) %{_libdir}/xtables/libxt_TEE.so
359 %attr(755,root,root) %{_libdir}/xtables/libxt_time.so
360 %attr(755,root,root) %{_libdir}/xtables/libxt_tos.so
361 %attr(755,root,root) %{_libdir}/xtables/libxt_TOS.so
362 %attr(755,root,root) %{_libdir}/xtables/libxt_TPROXY.so
363 %attr(755,root,root) %{_libdir}/xtables/libxt_TRACE.so
364 %attr(755,root,root) %{_libdir}/xtables/libxt_u32.so
365 %attr(755,root,root) %{_libdir}/xtables/libxt_udp.so
366 %else
367 %attr(755,root,root) %{_libdir}/xtables/*.so
368 %endif
369 %{_mandir}/man8/*
370
371 %files libs
372 %defattr(644,root,root,755)
373 %attr(755,root,root) %ghost %{_libdir}/libipq.so.0
374 %attr(755,root,root) %{_libdir}/libipq.so.*.*
375 %attr(755,root,root) %ghost %{_libdir}/libiptc.so.0
376 %attr(755,root,root) %{_libdir}/libiptc.so.*.*
377 %attr(755,root,root) %ghost %{_libdir}/libip4tc.so.0
378 %attr(755,root,root) %{_libdir}/libip4tc.so.*.*
379 %attr(755,root,root) %ghost %{_libdir}/libip6tc.so.0
380 %attr(755,root,root) %{_libdir}/libip6tc.so.*.*
381 %attr(755,root,root) %ghost %{_libdir}/libxtables.so.5
382 %attr(755,root,root) %{_libdir}/libxtables.so.*.*
383
384 %files devel
385 %defattr(644,root,root,755)
386 %{?with_doc:%doc iptables-howtos/netfilter-hacking-HOWTO*}
387 %attr(755,root,root) %{_libdir}/lib*.so
388 %{_libdir}/lib*.la
389 %{_includedir}/*.h
390 %{_includedir}/libiptc
391 %{_pkgconfigdir}/*.pc
392 %{_mandir}/man3/*
393
394 %if %{with static}
395 %files static
396 %defattr(644,root,root,755)
397 %{_libdir}/lib*.a
398 %endif
399
400 %files init
401 %defattr(644,root,root,755)
402 %attr(754,root,root) /etc/rc.d/init.d/iptables
403 %attr(754,root,root) /etc/rc.d/init.d/ip6tables
This page took 0.193558 seconds and 4 git commands to generate.