]> TLD Linux GIT Repositories - packages/openvpn.git/blob - openvpn.spec
4223260facf3194c2b47204de02846c01ad540da
[packages/openvpn.git] / openvpn.spec
1 #
2 # Conditional build:
3 %bcond_without  pkcs11          # PKCS#11 support
4
5 Summary:        VPN Daemon
6 Summary(pl.UTF-8):      Serwer VPN
7 Name:           openvpn
8 Version:        2.6.5
9 Release:        1
10 License:        GPL v2
11 Group:          Networking/Daemons
12 Source0:        http://swupdate.openvpn.net/community/releases/%{name}-%{version}.tar.gz
13 # Source0-md5:  86e20f8b81415445765f4bf572ae3b04
14 Source1:        %{name}.init
15 Source2:        %{name}.sysconfig
16 Source7:        %{name}-update-resolv-conf
17 Patch0:         %{name}-pam.patch
18 URL:            http://www.openvpn.net/
19 BuildRequires:  autoconf >= 2.59
20 BuildRequires:  automake >= 1:1.9
21 BuildRequires:  libselinux-devel
22 BuildRequires:  libtool
23 BuildRequires:  lz4-devel >= 1:1.7
24 BuildRequires:  lzo-devel
25 BuildRequires:  mbedtls-devel
26 BuildRequires:  openssl-devel >= 0.9.8
27 %{?with_pkcs11:BuildRequires:   p11-kit-devel}
28 BuildRequires:  pam-devel
29 %{?with_pkcs11:BuildRequires:   pkcs11-helper-devel >= 1.11}
30 BuildRequires:  pkgconfig
31 BuildRequires:  rpmbuild(macros) >= 1.671
32 BuildRequires:  tar >= 1:1.22
33 BuildRequires:  xz
34 Requires(post,preun):   /sbin/chkconfig
35 Requires:       /sbin/ip
36 Requires:       openssl >= 0.9.8
37 %{?with_pkcs11:Requires:        pkcs11-helper >= 1.11}
38 Requires:       rc-scripts >= 0.4.3.0
39 Requires:       uname(release) >= 2.4
40 Suggests:       %{name}-plugin-auth-pam
41 Suggests:       %{name}-plugin-down-root
42 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
44 %define         _localstatedir  /var
45
46 %description
47 OpenVPN is a robust and highly configurable VPN (Virtual Private
48 Network) daemon which can be used to securely link two or more private
49 networks using an encrypted tunnel over the internet.
50
51 %description -l pl.UTF-8
52 OpenVPN jest mocnym i silnie konfigurowalnym serwerem VPN (Wirtualne
53 Sieci Prywatne), który może być użyty do bezpiecznego łączenia dwóch
54 lub więcej prywatnych sieci używając zaszyfrowanego tunelu poprzez
55 internet.
56
57 %package plugin-auth-pam
58 Summary:        Plugin for username/password authentication via PAM
59 Summary(pl.UTF-8):      Wtyczka do uwierzytelniania nazwą użytkownika i hasłem poprzez PAM
60 Group:          Libraries
61 Requires:       %{name} = %{version}-%{release}
62
63 %description plugin-auth-pam
64 The openvpn-auth-pam module implements username/password
65 authentication via PAM, and essentially allows any authentication
66 method supported by PAM (such as LDAP, RADIUS, or Linux Shadow
67 passwords) to be used with OpenVPN. While PAM supports
68 username/password authentication, this can be combined with X509
69 certificates to provide two indepedent levels of authentication.
70
71 This module uses a split privilege execution model which will function
72 even if you drop openvpn daemon privileges using the user, group, or
73 chroot directives.
74
75 %description plugin-auth-pam -l pl.UTF-8
76 Moduł openvpn-auth-pam implementuje uwierzytelnianie nazwą użytkownika
77 i hasłem poprzez PAM, zasadniczo pozwalając na korzystanie z dowolnej
78 metody uwierzytelniania obsługiwanej przez PAM (np. LDAP, RADIUS,
79 hasła shadow) z OpenVPN. Jako że PAM obsługuje uwierzytelnianie nazwą
80 użytkownika i hasłem, to można je łączyć z certyfikatami X509 w celu
81 zapewniania dwóch różnych poziomów uwierzytelnienia.
82
83 Ten moduł wykorzystuje model wykonywania z podziałem uprawnień, co
84 działa nawet przy odrzuceniu uprawnień demona openvpn przy użyciu
85 dyrektyw user, group lub chroot.
86
87 %package plugin-down-root
88 Summary:        Plugin to allow root after privilege drop
89 Summary(pl.UTF-8):      Wtyczka pozwalająca na wykorzystanie uprawnień roota po odrzuceniu uprawnień
90 Group:          Libraries
91 Requires:       %{name} = %{version}-%{release}
92
93 %description plugin-down-root
94 The down-root module allows an OpenVPN configuration to call a down
95 script with root privileges, even when privileges have been dropped
96 using --user/--group/--chroot.
97
98 This module uses a split privilege execution model which will fork()
99 before OpenVPN drops root privileges, at the point where the --up
100 script is usually called. The module will then remain in a wait state
101 until it receives a message from OpenVPN via pipe to execute the down
102 script. Thus, the down script will be run in the same execution
103 environment as the up script.
104
105 %description plugin-down-root -l pl.UTF-8
106 Moduł down-root pozwala na wywołanie skryptu down z uprawnieniami
107 roota z poziomu konfiguracji OpenVPN-a nawet w przypadku odrzucenia
108 uprawnień przy użyciu opcji --user/--group/--chroot.
109
110 Ten moduł wykorzystuje model wykonywania z podziałem uprawnień, który
111 wykonuje fork() przed odrzuceniem uprawnień roota, w miejscu, gdzie
112 zwykle jest wywoływany skrypt --up. Moduł pozostaje w stanie
113 oczekiwania do odebrania przez potok od OpenVPN-a komunikatu, aby
114 wykonać skrypt down. Dzięki temu skrypt down zostanie uruchomiony w
115 tym samym środowisku, co skrypt up.
116
117 %package devel
118 Summary:        Header files for OpenVPN plugins development
119 Summary(pl.UTF-8):      Pliki nagłówkowe do tworzenia wtyczek OpenVPN
120 Group:          Development/Libraries
121
122 %description devel
123 This is the package containing the header files for OpenVPN plugins
124 development.
125
126 %description devel -l pl.UTF-8
127 Ten pakiet zawiera pliki nagłówkowe do tworzenia wtyczek OpenVPN.
128
129 %prep
130 %setup -q
131 %patch0 -p1
132
133 sed -e 's,/''usr/lib/openvpn,%{_libdir}/%{name},' %{SOURCE7} > contrib/update-resolv-conf
134
135 %build
136 %{__libtoolize}
137 %{__aclocal} -I m4
138 %{__autoheader}
139 %{__autoconf}
140 %{__automake}
141 CPPFLAGS="%{rpmcppflags} $(pkg-config --cflags liblz4)"
142 %configure \
143         IFCONFIG=/sbin/ifconfig \
144         IPROUTE=/sbin/ip \
145         NETSTAT=/bin/netstat \
146         ROUTE=/sbin/route \
147         ac_cv_nsl_inet_ntoa=no \
148         ac_cv_socket_socket=no \
149         ac_cv_resolv_gethostbyname=no \
150         --enable-iproute2 \
151         --enable-password-save \
152         %{?with_pkcs11:--enable-pkcs11} \
153         --enable-selinux \
154         --disable-systemd
155
156 %{__make}
157
158 %install
159 rm -rf $RPM_BUILD_ROOT
160 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/openvpn,%{_sbindir},%{_mandir}/man8} \
161         $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},/var/run/openvpn,%{_includedir}} \
162         $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins
163
164 %{__make} install \
165         DESTDIR=$RPM_BUILD_ROOT
166
167 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
168 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
169
170 # we use "cp", not "install", not to pull /bin/bash dependency
171 cp -p contrib/pull-resolv-conf/client.down $RPM_BUILD_ROOT%{_libdir}/%{name}
172 cp -p contrib/pull-resolv-conf/client.up $RPM_BUILD_ROOT%{_libdir}/%{name}
173 cp -p contrib/update-resolv-conf $RPM_BUILD_ROOT%{_libdir}/%{name}
174
175 %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/*.la
176 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
177
178 %clean
179 rm -rf $RPM_BUILD_ROOT
180
181 %post
182 /sbin/chkconfig --add openvpn
183 %service openvpn restart "OpenVPN"
184
185 %preun
186 if [ "$1" = "0" ]; then
187         %service openvpn stop
188         /sbin/chkconfig --del openvpn
189 fi
190
191 %files
192 %defattr(644,root,root,755)
193 %doc AUTHORS README* ChangeLog sample/sample-{config-files,keys,scripts} doc/management-notes.txt
194 %dir %{_sysconfdir}/openvpn
195 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
196 %attr(755,root,root) %{_sbindir}/openvpn
197 %attr(754,root,root) /etc/rc.d/init.d/%{name}
198 %dir %{_libdir}/%{name}
199 %attr(755,root,root) %{_libdir}/%{name}/client.down
200 %attr(755,root,root) %{_libdir}/%{name}/client.up
201 %attr(755,root,root) %{_libdir}/%{name}/update-resolv-conf
202 %dir %{_libdir}/%{name}/plugins
203 %{_mandir}/man8/openvpn.8*
204 %dir /var/run/openvpn
205
206 %files plugin-auth-pam
207 %defattr(644,root,root,755)
208 %doc src/plugins/auth-pam/README.auth-pam
209 %attr(755,root,root) %{_libdir}/%{name}/plugins/openvpn-plugin-auth-pam.so
210
211 %files plugin-down-root
212 %defattr(644,root,root,755)
213 %doc src/plugins/down-root/README.down-root
214 %attr(755,root,root) %{_libdir}/%{name}/plugins/openvpn-plugin-down-root.so
215
216 %files devel
217 %defattr(644,root,root,755)
218 %doc doc/README.plugins sample/sample-plugins
219 %{_includedir}/openvpn-msg.h
220 %{_includedir}/openvpn-plugin.h