]> git.pld-linux.org Git - packages/ipset.git/blob - ipset.spec
ce0857d83547191b0b14567528c3a9d9c59005f9
[packages/ipset.git] / ipset.spec
1 #
2 # TODO:
3 #       - patch our kernel to provide the needed API and update
4 #         the dependencies here
5 #
6 # Conditional build:
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)
10
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}
17 exit 1
18 %endif
19
20 %if %{without userspace}
21 # nothing to be placed to debuginfo package
22 %define         _enable_debug_packages  0
23 %endif
24
25 %define         rel     2
26 %define         pname   ipset
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}
30 Version:        7.0
31 Release:        %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
32 License:        GPL v2
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:  64c4e2e7123481c9db7ee1df127d9531
37 Source1:        %{pname}.init
38 Patch0:         build.patch
39 URL:            http://ipset.netfilter.org/
40 BuildRequires:  autoconf >= 2.50
41 BuildRequires:  automake
42 BuildRequires:  libmnl-devel >= 1
43 BuildRequires:  libltdl-devel >= 2:2.0
44 BuildRequires:  libtool >= 2:2.0
45 %{?with_userspace:BuildRequires:        linux-libc-headers >= 7:2.6.38.6}
46 BuildRequires:  pkgconfig
47 BuildRequires:  rpmbuild(macros) >= 1.701
48 %{?with_kernel:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.24}}
49 Suggests:       kernel-net-ipset
50 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51
52 # unresolved ipset_errcode, defined in the ipset binary
53 %define         skip_post_check_so      libipset\.so.*
54
55 %description
56 IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which
57 can be administered by the ipset utility. Depending on the type,
58 currently an IP set may store IP addresses, (TCP/UDP) port numbers or
59 IP addresses with MAC addresses in a way, which ensures lightning
60 speed when matching an entry against a set.
61
62 %description -l pl.UTF-8
63 Zbiory IP to szkielet w jądrze Linuksa 2.4.x i 2.6.x, którym można
64 administrować przy użyciu narzędzia ipset. W zależności od
65 rodzaju aktualnie zbiór IP może przechowywać adresy IP, numery
66 portów (TCP/UDP) lub adresy IP z adresami MAC - w sposób
67 zapewniający maksymalną szybkość przy dopasowywaniu elementu do
68 zbioru.
69
70 %package devel
71 Summary:        Header files for ipset interface
72 Summary(pl.UTF-8):      Pliki nagłówkowe do interfejsu ipset
73 Group:          Development/Libraries
74 Requires:       %{name} = %{version}-%{release}
75 Requires:       libmnl-devel >= 1
76
77 %description devel
78 Header files for IPset interface.
79
80 %description devel -l pl.UTF-8
81 Pliki nagłówkowe do interfejsu IPset.
82
83 %package static
84 Summary:        Static ipset interface library
85 Summary(pl.UTF-8):      Biblioteka statyczna interfejsu ipset
86 Group:          Development/Libraries
87 Requires:       %{name}-devel = %{version}-%{release}
88
89 %description static
90 Static IPset interface library.
91
92 %description static -l pl.UTF-8
93 Biblioteka statyczna interfejsu IPset.
94
95 %package init
96 Summary:        IPset init script
97 Summary(pl.UTF-8):      Skrypt startowy IPset
98 Group:          Networking/Admin
99 Requires(post,preun):   /sbin/chkconfig
100 Requires:       %{pname} = %{version}-%{release}
101 Requires:       rc-scripts
102
103 %description init
104 IPset initialization script.
105
106 %description init -l pl.UTF-8
107 Skrypt startowy IPset.
108
109 %package -n bash-completion-ipset
110 Summary:        Bash completion for ipset command
111 Summary(pl.UTF-8):      Bashowe dopełnianie parametrów polecenia ipset
112 Group:          Applications/Shells
113 Requires:       %{pname} = %{version}-%{release}
114 Requires:       bash-completion >= 2.0
115
116 %description -n bash-completion-ipset
117 Bash completion for ipset command.
118
119 %description -n bash-completion-ipset -l pl.UTF-8
120 Bashowe dopełnianie parametrów polecenia ipset.
121
122 %define kernel_pkg()\
123 %package -n kernel%{_alt_kernel}-net-ipset\
124 Summary:        IPset kernel modules\
125 Summary(pl.UTF-8):      Moduły jądra oferujące wsparcie dla zbiorów IP\
126 Release:        %{rel}@%{_kernel_ver_str}\
127 Group:          Base/Kernel\
128 Requires(post,postun):  /sbin/depmod\
129 %requires_releq_kernel\
130 Requires(postun):       %releq_kernel\
131 \
132 %description -n kernel%{_alt_kernel}-net-ipset\
133 IP sets are a framework inside the Linux 2.4.x and 2.6.x kernel, which\
134 can be administered by the ipset utility. Depending on the type,\
135 currently an IP set may store IP addresses, (TCP/UDP) port numbers or\
136 IP addresses with MAC addresses in a way, which ensures lightning\
137 speed when matching an entry against a set.\
138 \
139 This package contains kernel modules.\
140 \
141 %description -n kernel%{_alt_kernel}-net-ipset -l pl.UTF-8\
142 Zbiory IP to szkielet w jądrze Linuksa 2.4.x i 2.6.x, którym można\
143 administrować przy użyciu narzędzia ipset. W zależności od\
144 rodzaju aktualnie zbiór IP może przechowywać adresy IP, numery\
145 portów (TCP/UDP) lub adresy IP z adresami MAC - w sposób\
146 zapewniający maksymalną szybkość przy dopasowywaniu elementu do\
147 zbioru.\
148 \
149 Ten pakiet zawiera moduły jądra oferujące wsparcie dla zbiorów IP.\
150 \
151 %if %{with kernel}\
152 %files -n kernel%{_alt_kernel}-net-ipset\
153 %defattr(644,root,root,755)\
154 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/xt_*.ko*\
155 %dir /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset\
156 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset/ip_set.ko*\
157 /lib/modules/%{_kernel_ver}/kernel/net/ipv4/netfilter/ipset/ip_set_*.ko*\
158 %endif\
159 \
160 %post   -n kernel%{_alt_kernel}-net-ipset\
161 %depmod %{_kernel_ver}\
162 \
163 %postun -n kernel%{_alt_kernel}-net-ipset\
164 %depmod %{_kernel_ver}\
165 %{nil}
166
167 %define build_kernel_pkg()\
168 %configure \\\
169         --disable-silent-rules \\\
170         --with-kmod=yes \\\
171         --with-kbuild=%{_kernelsrcdir} \\\
172         --with-settype-modules-list=all\
173 \
174 # a hack not to list all modules: list only ip_set, all other are build anyway\
175 %build_kernel_modules -C kernel/net/netfilter -m ipset/ip_set IP_SET_MAX=255 KDIR=$PWD/../..\
176 \
177 for drv in kernel/net/netfilter/ipset/ip_set*.ko ; do\
178 %install_kernel_modules -D installed -m ${drv%.ko} -d kernel/net/ipv4/netfilter/ipset\
179 done\
180 for drv in kernel/net/netfilter/xt_*.ko ; do\
181 %install_kernel_modules -D installed -m ${drv%.ko} -d kernel/net/ipv4/netfilter\
182 done\
183 %{nil}
184
185 %{?with_kernel:%{expand:%create_kernel_packages}}
186
187 %prep
188 %setup -q -n %{pname}-%{version}
189 %patch0 -p1
190
191 %build
192 %{__aclocal}
193 %{__autoconf}
194 %{__autoheader}
195 %{__automake}
196 %if %{with userspace}
197 install -d build-usr
198 cd build-usr
199 ../%configure \
200         bashcompdir=%{bash_compdir} \
201         --enable-bashcompl \
202         --disable-silent-rules \
203         --with-kmod=no \
204         --with-settype-modules-list=all
205
206 %{__make}
207 cd ..
208 %endif
209
210 %{?with_kernel:%{expand:%build_kernel_packages}}
211
212 %install
213 rm -rf $RPM_BUILD_ROOT
214
215 %if %{with userspace}
216 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,%{_includedir}/libipset}
217
218 %{__make} -C build-usr install \
219         DESTDIR=$RPM_BUILD_ROOT
220
221 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{pname}
222 %endif
223
224 %if %{with kernel}
225 install -d $RPM_BUILD_ROOT
226 cp -a installed/* $RPM_BUILD_ROOT
227 %endif
228
229 %clean
230 rm -rf $RPM_BUILD_ROOT
231
232 %post init
233 /sbin/chkconfig --add %{pname}
234
235 %preun init
236 if [ "$1" = "0" ]; then
237         /sbin/chkconfig --del %{pname}
238 fi
239
240 %if %{with userspace}
241 %files
242 %defattr(644,root,root,755)
243 %doc ChangeLog ChangeLog.ippool README UPGRADE
244 %attr(755,root,root) %{_sbindir}/ipset
245 %attr(755,root,root) %{_libdir}/libipset.so.*.*.*
246 %attr(755,root,root) %ghost %{_libdir}/libipset.so.13
247 %{_mandir}/man3/libipset.3*
248 %{_mandir}/man8/ipset.8*
249
250 %files devel
251 %defattr(644,root,root,755)
252 %attr(755,root,root) %{_libdir}/libipset.so
253 %{_libdir}/libipset.la
254 %{_includedir}/libipset
255 %{_pkgconfigdir}/libipset.pc
256
257 %files static
258 %defattr(644,root,root,755)
259 %{_libdir}/libipset.a
260
261 %files init
262 %defattr(644,root,root,755)
263 %attr(754,root,root) /etc/rc.d/init.d/ipset
264
265 %files -n bash-completion-ipset
266 %defattr(644,root,root,755)
267 %{bash_compdir}/ipset
268 %endif
This page took 0.073893 seconds and 2 git commands to generate.