2 # _without_x509 - without x509 support
3 # _without_dist_kernel - without sources of distribution kernel
4 # _without_NAT - without NAT-Traversal
5 # _without_25x - without FreeS/WAN's keying daemon to work with
6 # the 2.5 kernel IPsec implementation
7 # _without_modules - build only library+programs, no kernel modules
8 %define x509ver x509-1.4.1
10 %define _25x_ver 20030713
11 Summary: Free IPSEC implemetation
12 Summary(pl): Publicznie dostêpna implementacja IPSEC
18 Group: Networking/Daemons
19 Source0: ftp://ftp.xs4all.nl/pub/crypto/%{name}/%{name}-%{version}.tar.gz
20 # Source0-md5: 0a5bdc7b93879c77de295fd75d704b4a
21 Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-pl-man-pages.tar.bz2
22 # Source1-md5: 6bd0b509015a2795cfb895aaab0bbc55
23 Source2: http://www.strongsec.com/%{name}/%{x509ver}-%{name}-%{version}.tar.gz
24 # Source2-md5: 5a76bed78f6aaf18d1509520ab7936fc
25 Source3: http://open-source.arkoon.net/freeswan/NAT-Traversal-%{nat_tr_ver}.tar.gz
26 # Source3-md5: 6858a8535aa2611769d17e86e6735db2
27 Source4: http://gondor.apana.org.au/~herbert/freeswan/%{version}/freeswan-%{version}-linux-ipsec-%{_25x_ver}.patch.gz
28 # Source4-md5: bffd7e46ca167de041e75641b0b1e9ef
29 Patch0: %{name}-showhostkey.patch
30 Patch1: %{name}-init.patch
31 Patch2: %{name}-paths.patch
32 Patch3: %{name}-confread.patch
33 URL: http://www.freeswan.org/
34 BuildRequires: gmp-devel
35 BuildRequires: rpmbuild(macros) >= 1.118
36 Prereq: /sbin/chkconfig
40 %{!?_without_dist_kernel:%{!?_without_modules:BuildRequires: kernel-headers}}
41 %{!?_without_dist_kernel:%{!?_without_modules:BuildRequires: kernel-source}}
42 %{!?_without_dist_kernel:%{!?_without_modules:BuildRequires: kernel-doc}}
43 # XFree86 is required to use usefull lndir
44 %{!?_without_dist_kernel:%{!?_without_modules:BuildRequires: XFree86}}
45 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
48 The basic idea of IPSEC is to provide security functions
49 (authentication and encryption) at the IP (Internet Protocol) level.
50 It will be required in IP version 6 (better known as IPng, the next
51 generation) and is optional for the current IP, version 4.
53 FreeS/WAN is a freely-distributable implementation of IPSEC protocol.
54 FreeS/WAN utilities%{?!_without_x509: compiled with X.509 certificate support}.
57 Podstawowa idea IPSEC to zapewnienie funkcji bezpieczeñstwa
58 (autentykacji i szyfrowania) na poziomie IP. Bêdzie wymagany do IP w
59 wersji 6 (znanego tak¿e jako IPng, IP nastêpnej generacji) i jest
60 opcjonalny dla aktualnego IP, w wersji 4.
62 FreeS/WAN jest darmow± implementacj± protoko³u IPSEC.
64 %package -n kernel-net-ipsec
65 Summary: Kernel module for Linux IPSEC
66 Summary(pl): Modu³ j±dra dla IPSEC
67 Release: %{_rel}@%{_kernel_ver_str}
69 %{!?_without_dist_kernel:%requires_releq_kernel_up}
70 PreReq: modutils >= 2.4.6-4
71 Requires(post,postun): /sbin/depmod
72 Requires: %{name} = %{version}
73 Conflicts: kernel <= 2.4.20-9
75 %description -n kernel-net-ipsec
76 Kernel module for FreeS/WAN
78 %description -n kernel-net-ipsec -l pl
79 Modu³ j±dra wykorzystywany przez FreeS/WAN
82 %package -n kernel-smp-net-ipsec
83 Summary: SMP kernel module for Linux IPSEC
84 Summary(pl): Modu³ j±dra dla IPSEC
85 Release: %{_rel}@%{_kernel_ver_str}
87 %{!?_without_dist_kernel:%requires_releq_kernel_up}
88 PreReq: modutils >= 2.4.6-4
89 Requires(post,postun): /sbin/depmod
90 Requires: %{name} = %{version}
91 Conflicts: kernel-smp <= 2.4.20-9
93 %description -n kernel-smp-net-ipsec
94 SMP kernel module for FreeS/WAN
96 %description -n kernel-smp-net-ipsec -l pl
97 Modu³ j±dra SMP wykorzystywany przez FreeS/WAN
101 %setup -q -a2 -a3 -n %{name}-%{version}
104 %{?!_without_x509:patch -p1 -s <%{x509ver}-%{name}-%{version}/freeswan.diff}
107 %{?!_without_NAT:patch -p1 -s <NAT-Traversal-%{nat_tr_ver}/NAT-Traversal-%{nat_tr_ver}-freeswan-2.00-x509-1.3.5.diff}
108 %{?!_without_25x:gzip -d <%{SOURCE4}| patch -p1 -s}
112 %define _kver `echo "%{_kernel_ver}" |awk -F. '{print $2}'`
113 %if 0%{!?_without_modules:1}
115 lndir -silent /usr/src/linux kernelsrc
116 mv kernelsrc/.config kernelsrc/.config.old
117 cp kernelsrc/.config.old kernelsrc/.config
118 %if 0%{!?_without_dist_kernel:1}
119 rm -rf kernelsrc/include/asm
121 patch -R -p1 <../linux/net/Makefile.fs2_%{_kver}.patch
122 patch -R -p1 <../linux/net/Config.in.fs2_%{_kver}.patch
123 patch -R -p1 <../linux/net/ipv4/af_inet.c.fs2_%{_kver}.patch
124 patch -R -p1 <../linux/Documentation/Configure.help.fs2_%{_kver}.patch
126 rm -rf kernelsrc/{crypto,include/{freeswan,zlib,crypto},lib/{zlib,libfreeswan},net/ipsec}
127 rm kernelsrc/include/{freeswan,pfkey,pfkeyv2}.h
128 cp kernelsrc/config-up kernelsrc/.config
130 echo "CONFIG_IPSEC=m" >> kernelsrc/.config
131 echo "CONFIG_IPSEC_IPIP=y" >> kernelsrc/.config
132 echo "CONFIG_IPSEC_AH=y" >> kernelsrc/.config
133 echo "CONFIG_IPSEC_AUTH_HMAC_MD5=y" >> kernelsrc/.config
134 echo "CONFIG_IPSEC_AUTH_HMAC_SHA1=y" >> kernelsrc/.config
135 echo "CONFIG_IPSEC_ESP=y" >> kernelsrc/.config
136 echo "CONFIG_IPSEC_ENC_3DES=y" >> kernelsrc/.config
137 echo "CONFIG_IPSEC_IPCOMP=y" >> kernelsrc/.config
138 echo "CONFIG_IPSEC_DEBUG=y" >> kernelsrc/.config
141 USERCOMPILE="%{rpmcflags}" ; export USERCOMPILE
142 OPT_FLAGS="%{rpmcflags}"; export OPT_FLAGS
143 CC=%{__cc}; export CC
146 %if 0%{!?_without_modules:1}
147 %{__make} precheck verset kpatch ocf confcheck module \
148 BIND9STATICLIBDIR=%{_libdir} \
149 FINALCONFDIR=%{_sysconfdir}/ipsec \
150 FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
152 INC_MANDIR=share/man \
153 FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
154 FINALLIBEXECDIR=%{_libdir}/ipsec \
155 KERNELSRC="`pwd`/kernelsrc"
157 install linux/net/ipsec/ipsec.o .
159 %if 0%{!?_without_smp:1}
162 lndir -silent /usr/src/linux kernelsrc
163 mv kernelsrc/.config kernelsrc/.config.old
164 cp kernelsrc/.config.old kernelsrc/.config
165 %if 0%{!?_without_dist_kernel:1}
166 rm -rf kernelsrc/include/asm
168 patch -R -p1 <../linux/net/Makefile.fs2_%{_kver}.patch
169 patch -R -p1 <../linux/net/Config.in.fs2_%{_kver}.patch
170 patch -R -p1 <../linux/net/ipv4/af_inet.c.fs2_%{_kver}.patch
171 patch -R -p1 <../linux/Documentation/Configure.help.fs2_%{_kver}.patch
173 rm -rf kernelsrc/{crypto,include/{freeswan,zlib,crypto},lib/{zlib,libfreeswan},net/ipsec}
174 rm kernelsrc/include/{freeswan,pfkey,pfkeyv2}.h
175 cp kernelsrc/config-smp kernelsrc/.config
177 echo "CONFIG_IPSEC=m" >> kernelsrc/.config
178 echo "CONFIG_IPSEC_IPIP=y" >> kernelsrc/.config
179 echo "CONFIG_IPSEC_AH=y" >> kernelsrc/.config
180 echo "CONFIG_IPSEC_AUTH_HMAC_MD5=y" >> kernelsrc/.config
181 echo "CONFIG_IPSEC_AUTH_HMAC_SHA1=y" >> kernelsrc/.config
182 echo "CONFIG_IPSEC_ESP=y" >> kernelsrc/.config
183 echo "CONFIG_IPSEC_ENC_3DES=y" >> kernelsrc/.config
184 echo "CONFIG_IPSEC_IPCOMP=y" >> kernelsrc/.config
185 echo "CONFIG_IPSEC_DEBUG=y" >> kernelsrc/.config
187 %{__make} precheck verset kpatch ocf confcheck module \
188 BIND9STATICLIBDIR=%{_libdir} \
189 FINALCONFDIR=%{_sysconfdir}/ipsec \
190 FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
192 INC_MANDIR=share/man \
193 FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
194 FINALLIBEXECDIR=%{_libdir}/ipsec \
195 KERNELSRC="`pwd`/kernelsrc"
201 BIND9STATICLIBDIR=%{_libdir} \
202 FINALCONFDIR=%{_sysconfdir}/ipsec \
203 FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
205 INC_MANDIR=share/man \
206 FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
207 FINALLIBEXECDIR=%{_libdir}/ipsec \
208 KERNELSRC="`pwd`/kernelsrc"
213 rm -rf $RPM_BUILD_ROOT
214 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/ipsec,/etc/rc.d/init.d,/var/run/pluto}
217 BIND9STATICLIBDIR=%{_libdir} \
218 DESTDIR="$RPM_BUILD_ROOT" \
219 FINALCONFDIR=%{_sysconfdir}/ipsec \
220 FINALCONFFILE=%{_sysconfdir}/ipsec/ipsec.conf \
221 FINALRCDIR=%{_sysconfdir}/rc.d/init.d \
222 FINALLIBEXECDIR=%{_libdir}/ipsec \
223 FINALEXAMPLECONFDIR=/usr/share/doc/%{name}-%{version} \
228 %if 0%{!?_without_x509:1}
229 install -d $RPM_BUILD_ROOT%{_sysconfdir}/ipsec/ipsec.d
230 for i in crls cacerts private policies; do
231 install -d $RPM_BUILD_ROOT%{_sysconfdir}/ipsec/ipsec.d/$i
233 for i in CHANGES README; do
234 install %{x509ver}-%{name}-%{version}/$i $i.x509 ;
238 bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
240 %if 0%{!?_without_modules:1}
241 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc
242 install ipsec.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}/misc
243 %if 0%{!?_without_smp:1}
244 install -d $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc
245 install linux/net/ipsec/ipsec.o $RPM_BUILD_ROOT/lib/modules/%{_kernel_ver}smp/misc
250 # generate RSA private key... if, and only if, /etc/ipsec/ipsec.secrets does
252 if [ ! -f %{_sysconfdir}/ipsec/ipsec.secrets ];
254 echo generate RSA private key...
255 /usr/sbin/ipsec newhostkey --output %{_sysconfdir}/ipsec/ipsec.secrets
256 chmod 600 %{_sysconfdir}/ipsec/ipsec.secrets
259 /sbin/chkconfig --add ipsec
260 if [ -f /var/lock/subsys/ipsec ]; then
261 /etc/rc.d/init.d/ipsec restart >&2
263 echo "Run '/etc/rc.d/init.d/ipsec start' to start IPSEC services." >&2
267 if [ "$1" = "0" ]; then
268 if [ -f /var/lock/subsys/ipsec ]; then
269 /etc/rc.d/init.d/ipsec stop >&2
271 /sbin/chkconfig --del ipsec >&2
274 %post -n kernel-net-ipsec
275 %depmod %{_kernel_ver}
277 %postun -n kernel-net-ipsec
278 %depmod %{_kernel_ver}
280 %post -n kernel-smp-net-ipsec
281 %depmod %{_kernel_ver}
283 %postun -n kernel-smp-net-ipsec
284 %depmod %{_kernel_ver}
288 rm -rf $RPM_BUILD_ROOT
291 %defattr(644,root,root,755)
292 %doc README CREDITS CHANGES BUGS
293 %doc doc/{kernel.notes,impl.notes,examples,prob.report,standards} doc/*.html
294 %{?!_without_NAT:%doc NAT-Traversal-%{nat_tr_ver}/README.NAT-Traversal}
295 %{?!_without_x509:%doc CHANGES.x509 README.x509}
297 %lang(pl) %{_mandir}/pl/man*/*
298 %attr(755,root,root) %{_sbindir}/*
299 %attr(754,root,root) /etc/rc.d/init.d/*
300 %dir %{_libdir}/ipsec
301 %attr(755,root,root) %{_libdir}/ipsec/*
302 %attr(751,root,root) %dir %{_sysconfdir}/ipsec
303 %attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/ipsec/ipsec.conf
304 %if 0%{!?_without_x509:1}
305 %attr(0700,root,root) %dir %{_sysconfdir}/ipsec/ipsec.d
306 %attr(0700,root,root) %dir %{_sysconfdir}/ipsec/ipsec.d/certs
307 %attr(0700,root,root) %dir %{_sysconfdir}/ipsec/ipsec.d/crls
308 %attr(0700,root,root) %dir %{_sysconfdir}/ipsec/ipsec.d/cacerts
309 %attr(0700,root,root) %dir %{_sysconfdir}/ipsec/ipsec.d/private
310 %attr(0700,root,root) %dir %{_sysconfdir}/ipsec/ipsec.d/policies
311 %attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/ipsec/ipsec.d/policies/*
314 %if 0%{!?_without_modules:1}
315 %files -n kernel-net-ipsec
316 %defattr(644,root,root,755)
317 /lib/modules/%{_kernel_ver}/misc/ipsec*
318 %if 0%{!?_without_smp:1}
319 %files -n kernel-smp-net-ipsec
320 %defattr(644,root,root,755)
321 /lib/modules/%{_kernel_ver}smp/misc/ipsec*