]> git.pld-linux.org Git - packages/lxc.git/blob - lxc.spec
- up to 4.0.7
[packages/lxc.git] / lxc.spec
1 # TODO
2 # - package apparmor stuff
3 # - update (cut down, include /usr/share/lxc/config/common.conf) default pld container config
4
5 # Conditional build:
6 %bcond_without  apparmor        # apparmor support
7 %bcond_without  seccomp         # SecComp syscall filter
8 %bcond_without  static          # static init.lxc variant
9 %bcond_with     selinux         # SELinux support
10 %bcond_with     cgmanager       # cgmanager support
11 %bcond_without  pam             # cgfs PAM module
12
13 Summary:        Linux Containers userspace tools
14 Summary(pl.UTF-8):      Narzędzia do kontenerów linuksowych (LXC)
15 Name:           lxc
16 Version:        4.0.7
17 Release:        1
18 License:        LGPL v2.1+
19 Group:          Applications/System
20 Source0:        https://linuxcontainers.org/downloads/lxc/%{name}-%{version}.tar.gz
21 # Source0-md5:  d4b16323dd950efd16b62b7d04323199
22 Source1:        %{name}-pld.in.sh
23 # lxc-net based on bridge, macvlan is an alternative/supported lxc network
24 Source2:        %{name}_macvlan.sysconfig
25 Source3:        %{name}_macvlan
26 Patch1:         %{name}-net.patch
27 Patch2:         x32.patch
28 URL:            https://www.linuxcontainers.org/
29 BuildRequires:  autoconf >= 2.50
30 BuildRequires:  automake
31 %{?with_cgmanager:BuildRequires:        cgmanager-devel}
32 %{?with_cgmanager:BuildRequires:        dbus-devel >= 1.2.16}
33 BuildRequires:  docbook-dtd45-xml
34 BuildRequires:  docbook2X >= 0.8
35 BuildRequires:  doxygen
36 BuildRequires:  gcc >= 6:4.7
37 %{?with_static:BuildRequires:   glibc-static}
38 BuildRequires:  gnutls-devel
39 %{?with_apparmor:BuildRequires: libapparmor-devel}
40 BuildRequires:  libcap-devel
41 %{?with_static:BuildRequires:   libcap-static}
42 %{?with_cgmanager:BuildRequires:        libnih-devel >= 1.0.2}
43 %{?with_seccomp:BuildRequires:  libseccomp-devel}
44 BuildRequires:  libtool >= 2:2
45 BuildRequires:  libxslt-progs
46 %{?with_pam:BuildRequires:      pam-devel}
47 BuildRequires:  pkgconfig
48 BuildRequires:  rpmbuild(macros) >= 1.671
49 BuildRequires:  sed >= 4.0
50 Requires(post): /sbin/ldconfig
51 Requires(post,preun):   /sbin/chkconfig
52 Requires:       %{name}-libs = %{version}-%{release}
53 # lxc_macvlan script
54 Requires:       gawk
55 # used in lxc-net script to set bridge nat
56 Requires:       iproute2
57 Requires:       iptables
58 Requires:       rc-scripts >= 0.4.6
59 Requires:       systemd-units >= 38
60 Requires:       which
61 # used in lxc-net script, but not all cases, may break working setups
62 Suggests:       dnsmasq
63 Suggests:       gnupg
64 Suggests:       gnupg-plugin-keys_curl
65 Suggests:       gnupg-plugin-keys_hkp
66 Suggests:       net-tools
67 Suggests:       rsync
68 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69
70 %define         configpath      /var/lib/lxc
71
72 %description
73 Tools to create and manage containers. It contains a full featured
74 container with the isolation / virtualization of the pids, the ipc,
75 the utsname, the mount points, /proc, /sys, the network and it takes
76 into account the control groups. It is very light, flexible, and
77 provides a set of tools around the container like the monitoring with
78 asynchronous events notification, or the freeze of the container. This
79 package is useful to create Virtual Private Server, or to run isolated
80 applications like bash or sshd.
81
82 %description -l pl.UTF-8
83 Narzędzia do tworzenia i zarządzania kontenerami. System ten obejmuje
84 w pełni funkcjonalne kontenery z izolacją/wirtualizacją pidów, ipc,
85 utsname, punktów montowania, /proc, /sys, sieci oraz uwzględniające
86 grupy kontrolne. Jest bardzo lekki, elastyczny i udostępnia narzędzia
87 do czynności związanych z kontenerami, takich jak monitorowanie z
88 asynchronicznym powiadamianiem o zdarzeniach czy zamrażanie. Ten
89 pakiet jest przydatny do tworzenia wirtualnych serwerów prywatnych
90 oraz uruchamiania izolowanych aplikacji, takich jak bash czy sshd.
91
92 %package -n pam-pam_cgfs
93 Summary:        PAM module to create user cgroups
94 Summary(pl.UTF-8):      Moduł PAM do tworzenia cgroup użytkownika
95 Group:          Libraries
96 Requires:       pam
97
98 %description -n pam-pam_cgfs
99 PAM module that when a user logs in, will create cgroups which the
100 user may administer.
101
102 %description -n pam-pam_cgfs -l pl.UTF-8
103 Moduł PAM, który przy logowaniu użytkownika tworzy cgroupy, którymi
104 użytkownik może administrować.
105
106 %package libs
107 Summary:        liblxc library
108 Summary(pl.UTF-8):      Biblioteka liblxc
109 Group:          Libraries
110 Conflicts:      lxc < 2.0.4-2
111
112 %description libs
113 liblxc library.
114
115 %description libs -l pl.UTF-8
116 Biblioteka liblxc.
117
118 %package devel
119 Summary:        Header files for lxc library
120 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki lxc
121 Group:          Development/Libraries
122 Requires:       %{name}-libs = %{version}-%{release}
123
124 %description devel
125 Header files for lxc library.
126
127 %description devel -l pl.UTF-8
128 Pliki nagłówkowe biblioteki lxc.
129
130 %package static
131 Summary:        Static lxc library
132 Summary(pl.UTF-8):      Statyczna biblioteka lxc
133 Group:          Development/Libraries
134 Requires:       %{name}-devel = %{version}-%{release}
135
136 %description static
137 Static lxc library.
138
139 %description static -l pl.UTF-8
140 Statyczna biblioteka lxc.
141
142 %package -n bash-completion-%{name}
143 Summary:        bash-completion for LXC
144 Summary(pl.UTF-8):      bashowe uzupełnianie nazw dla LXC
145 Group:          Applications/Shells
146 Requires:       %{name} = %{version}-%{release}
147 Requires:       bash-completion
148 BuildArch:      noarch
149
150 %description -n bash-completion-%{name}
151 bash-completion for LXC.
152
153 %description -n bash-completion-%{name} -l pl.UTF-8
154 bashowe uzupełnianie nazw dla LXC.
155
156 %prep
157 %setup -q
158 %patch1 -p1
159 %patch2 -p1
160
161 cp -p %{SOURCE1} templates/lxc-pld.in
162
163 %build
164 %{__libtoolize}
165 %{__aclocal} -I config
166 %{__autoconf}
167 %{__autoheader}
168 %{__automake}
169 %configure \
170         bashcompdir=%{bash_compdir} \
171         db2xman=docbook2X2man \
172         --disable-rpath \
173         %{__enable_disable apparmor} \
174         --enable-bash \
175         %{__enable_disable cgmanager} \
176         --enable-doc \
177         --enable-examples \
178         %{?with_pam:--enable-pam} \
179         %{__enable_disable seccomp} \
180         %{__enable_disable selinux} \
181         --with-config-path=%{configpath} \
182         --with-distro=pld \
183         --with-init-script=sysvinit,systemd \
184         --with-runtime-path=/var/run
185
186 %{__make}
187 %{__make} -C doc
188
189 %install
190 rm -rf $RPM_BUILD_ROOT
191 install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/{cache,log}/lxc} \
192         -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
193
194 %{__make} install \
195         SYSTEMD_UNIT_DIR=%{systemdunitdir} \
196         pcdatadir=%{_pkgconfigdir} \
197         DESTDIR=$RPM_BUILD_ROOT
198
199 %{__make} -C doc install \
200         DESTDIR=$RPM_BUILD_ROOT
201
202 %{__rm} $RPM_BUILD_ROOT%{_libdir}/liblxc.la
203
204 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}
205
206 # apparmor profiles are not packaged, remove to avoid packagers confusion
207 %{__rm} -r $RPM_BUILD_ROOT/etc/apparmor.d
208
209 # yum plugin, no idea where to package this
210 %{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/lxc-patch.py
211
212 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lxc_macvlan
213 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lxc_macvlan
214
215 %clean
216 rm -rf $RPM_BUILD_ROOT
217
218 %post
219 /sbin/chkconfig --add lxc
220 /sbin/chkconfig --add lxc-net
221 %systemd_post lxc.service lxc-net.service
222
223 %preun
224 if [ "$1" = "0" ]; then
225         %service lxc stop
226         /sbin/chkconfig --del lxc
227         %service lxc-net stop
228         /sbin/chkconfig --del lxc-net
229 fi
230 %systemd_preun lxc.service lxc-net.service
231
232 %postun
233 %systemd_reload
234
235 %post   libs -p /sbin/ldconfig
236 %postun libs -p /sbin/ldconfig
237
238 %files
239 %defattr(644,root,root,755)
240 %doc AUTHORS CONTRIBUTING MAINTAINERS README  doc/FAQ.txt doc/examples/*.conf
241 %attr(755,root,root) %{_bindir}/lxc-attach
242 %attr(755,root,root) %{_bindir}/lxc-autostart
243 %attr(755,root,root) %{_bindir}/lxc-cgroup
244 %attr(755,root,root) %{_bindir}/lxc-checkconfig
245 %attr(755,root,root) %{_bindir}/lxc-checkpoint
246 %attr(755,root,root) %{_bindir}/lxc-copy
247 %attr(755,root,root) %{_bindir}/lxc-config
248 %attr(755,root,root) %{_bindir}/lxc-console
249 %attr(755,root,root) %{_bindir}/lxc-create
250 %attr(755,root,root) %{_bindir}/lxc-destroy
251 %attr(755,root,root) %{_bindir}/lxc-device
252 %attr(755,root,root) %{_bindir}/lxc-execute
253 %attr(755,root,root) %{_bindir}/lxc-freeze
254 %attr(755,root,root) %{_bindir}/lxc-info
255 %attr(755,root,root) %{_bindir}/lxc-ls
256 %attr(755,root,root) %{_bindir}/lxc-monitor
257 %attr(755,root,root) %{_bindir}/lxc-snapshot
258 %attr(755,root,root) %{_bindir}/lxc-start
259 %attr(755,root,root) %{_bindir}/lxc-stop
260 %attr(755,root,root) %{_bindir}/lxc-top
261 %attr(755,root,root) %{_bindir}/lxc-unfreeze
262 %attr(755,root,root) %{_bindir}/lxc-unshare
263 %attr(755,root,root) %{_bindir}/lxc-update-config
264 %attr(755,root,root) %{_bindir}/lxc-usernsexec
265 %attr(755,root,root) %{_bindir}/lxc-wait
266 %attr(755,root,root) %{_sbindir}/init.lxc
267 %if %{with static}
268 %attr(755,root,root) %{_sbindir}/init.lxc.static
269 %endif
270 %attr(754,root,root) /etc/rc.d/init.d/lxc
271 %attr(754,root,root) /etc/rc.d/init.d/lxc-net
272
273 %{systemdunitdir}/lxc.service
274 %{systemdunitdir}/lxc@.service
275 %{systemdunitdir}/lxc-net.service
276 %dir %{_libdir}/%{name}
277 %dir %{_libdir}/%{name}/rootfs
278 %{_libdir}/%{name}/rootfs/README
279 %if "%{_libexecdir}" != "%{_libdir}"
280 %dir %{_libexecdir}/%{name}
281 %endif
282 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-apparmor-load
283 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-containers
284 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-monitord
285 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-net
286 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-user-nic
287 %attr(755,root,root) %{_libexecdir}/%{name}/lxc_macvlan
288 %dir %{_libexecdir}/%{name}/hooks
289 %attr(755,root,root) %{_libexecdir}/%{name}/hooks/unmount-namespace
290 %dir %{_sysconfdir}/lxc
291 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc_macvlan
292 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc
293 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lxc/default.conf
294 %dir %{_datadir}/%{name}
295 %{_datadir}/%{name}/lxc.functions
296 %dir %{_datadir}/%{name}/config
297 %{_datadir}/%{name}/config/common.conf
298 %dir %{_datadir}/%{name}/config/common.conf.d
299 %{_datadir}/%{name}/config/common.conf.d/README
300 %{_datadir}/%{name}/config/common.seccomp
301 %{_datadir}/%{name}/config/nesting.conf
302 %{_datadir}/%{name}/config/oci.common.conf
303 %{_datadir}/%{name}/config/userns.conf
304 %dir %{_datadir}/%{name}/hooks
305 %dir %{_datadir}/%{name}/selinux
306 %{_datadir}/%{name}/selinux/*
307 %dir %{_datadir}/%{name}/templates
308 %attr(755,root,root) %{_datadir}/%{name}/hooks/clonehostname
309 %attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient
310 %attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient-script
311 %attr(755,root,root) %{_datadir}/%{name}/hooks/mount*
312 %attr(755,root,root) %{_datadir}/%{name}/hooks/nvidia
313 %attr(755,root,root) %{_datadir}/%{name}/hooks/squid-deb-proxy-client
314 %attr(755,root,root) %{_datadir}/%{name}/hooks/ubuntu-cloud-prep
315 %attr(755,root,root) %{_datadir}/%{name}/templates/lxc-*
316 %{_mandir}/man1/lxc-attach.1*
317 %{_mandir}/man1/lxc-autostart.1*
318 %{_mandir}/man1/lxc-cgroup.1*
319 %{_mandir}/man1/lxc-checkconfig.1*
320 %{_mandir}/man1/lxc-checkpoint.1*
321 %{_mandir}/man1/lxc-copy.1*
322 %{_mandir}/man1/lxc-config.1*
323 %{_mandir}/man1/lxc-console.1*
324 %{_mandir}/man1/lxc-create.1*
325 %{_mandir}/man1/lxc-destroy.1*
326 %{_mandir}/man1/lxc-device.1*
327 %{_mandir}/man1/lxc-execute.1*
328 %{_mandir}/man1/lxc-freeze.1*
329 %{_mandir}/man1/lxc-info.1*
330 %{_mandir}/man1/lxc-ls.1*
331 %{_mandir}/man1/lxc-monitor.1*
332 %{_mandir}/man1/lxc-snapshot.1*
333 %{_mandir}/man1/lxc-start.1*
334 %{_mandir}/man1/lxc-stop.1*
335 %{_mandir}/man1/lxc-top.1*
336 %{_mandir}/man1/lxc-unfreeze.1*
337 %{_mandir}/man1/lxc-unshare.1*
338 %{_mandir}/man1/lxc-update-config.1*
339 %{_mandir}/man1/lxc-user-nic.1*
340 %{_mandir}/man1/lxc-usernsexec.1*
341 %{_mandir}/man1/lxc-wait.1*
342 %{_mandir}/man5/lxc-usernet.5*
343 %{_mandir}/man5/lxc.conf.5*
344 %{_mandir}/man5/lxc.container.conf.5*
345 %{_mandir}/man5/lxc.system.conf.5*
346 %{_mandir}/man7/lxc.7*
347 %lang(ja) %{_mandir}/ja/man1/lxc*.1*
348 %lang(ja) %{_mandir}/ja/man5/lxc-usernet.5*
349 %lang(ja) %{_mandir}/ja/man5/lxc.conf.5*
350 %lang(ja) %{_mandir}/ja/man5/lxc.container.conf.5*
351 %lang(ja) %{_mandir}/ja/man5/lxc.system.conf.5*
352 %lang(ja) %{_mandir}/ja/man7/lxc.7*
353 %lang(ko) %{_mandir}/ko/man1/lxc*.1*
354 %lang(ko) %{_mandir}/ko/man5/lxc-usernet.5*
355 %lang(ko) %{_mandir}/ko/man5/lxc.conf.5*
356 %lang(ko) %{_mandir}/ko/man5/lxc.container.conf.5*
357 %lang(ko) %{_mandir}/ko/man5/lxc.system.conf.5*
358 %lang(ko) %{_mandir}/ko/man7/lxc.7*
359
360 %dir %{configpath}
361 %dir %{configpath}snap
362 %dir %attr(750,root,root) /var/log/lxc
363 %dir %attr(750,root,root) /var/cache/lxc
364
365 %if %{with pam}
366 %files -n pam-pam_cgfs
367 %defattr(644,root,root,755)
368 %attr(755,root,root) /%{_lib}/security/pam_cgfs.so
369 %{_mandir}/ja/man8/pam_cgfs.8*
370 %{_mandir}/man8/pam_cgfs.8*
371 %endif
372
373 %files libs
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_libdir}/liblxc.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/liblxc.so.1
377
378 %files devel
379 %defattr(644,root,root,755)
380 %attr(755,root,root) %{_libdir}/liblxc.so
381 %{_includedir}/lxc
382 %{_pkgconfigdir}/lxc.pc
383
384 %files static
385 %defattr(644,root,root,755)
386 %{_libdir}/liblxc.a
387
388 %files -n bash-completion-%{name}
389 %defattr(644,root,root,755)
390 %{bash_compdir}/lxc
This page took 0.102106 seconds and 3 git commands to generate.