2 # - package apparmor stuff
3 # - update (cut down, include /usr/share/lxc/config/common.conf) default pld container config
6 %bcond_without seccomp # SecComp syscall filter
7 %bcond_without apparmor # apparmor support
8 %bcond_without lua # Lua binding
9 %bcond_without python # Python binding
10 %bcond_with selinux # SELinux support
11 %bcond_with cgmanager # cgmanager support
13 Summary: Linux Containers userspace tools
14 Summary(pl.UTF-8): Narzędzia do kontenerów linuksowych (LXC)
19 Group: Applications/System
20 Source0: https://linuxcontainers.org/downloads/lxc/%{name}-%{version}.tar.gz
21 # Source0-md5: 596f7c96ec78e361b057499dbe994703
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
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: gnutls-devel
37 %{?with_apparmor:BuildRequires: libapparmor-devel}
38 BuildRequires: libcap-devel
39 %{?with_cgmanager:BuildRequires: libnih-devel >= 1.0.2}
40 %{?with_seccomp:BuildRequires: libseccomp-devel}
41 BuildRequires: libxslt-progs
42 %{?with_lua:BuildRequires: lua51-devel >= 5.1}
43 BuildRequires: pkgconfig
44 %{?with_python:BuildRequires: python3-devel >= 1:3.2}
45 %{?with_python:BuildRequires: python3-modules >= 1:3.2}
46 BuildRequires: rpm-pythonprov
47 BuildRequires: rpmbuild(macros) >= 1.671
48 BuildRequires: sed >= 4.0
49 Requires(post): /sbin/ldconfig
50 Requires(post,preun): /sbin/chkconfig
51 Requires: %{name}-libs = %{version}-%{release}
54 # used in lxc-net script to set bridge nat
57 Requires: rc-scripts >= 0.4.6
58 Requires: systemd-units >= 38
60 # used in lxc-net script, but not all cases, may break working setups
63 Suggests: gnupg-plugin-keys_curl
64 Suggests: gnupg-plugin-keys_hkp
68 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70 %define configpath /var/lib/lxc
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.
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.
93 Summary: liblxc library
94 Summary(pl.UTF-8): Biblioteka liblxc
96 Conflicts: lxc < 2.0.4-2
101 %description libs -l pl.UTF-8
105 Summary: Header files for lxc library
106 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki lxc
107 Group: Development/Libraries
108 Requires: %{name}-libs = %{version}-%{release}
111 Header files for lxc library.
113 %description devel -l pl.UTF-8
114 Pliki nagłówkowe biblioteki lxc.
117 Summary: Lua binding for LXC
118 Summary(pl.UTF-8): Wiązanie Lua do LXC
120 Requires: %{name} = %{version}-%{release}
121 Requires: lua51-libs >= 5.1
123 %description -n lua-lxc
126 %description -n lua-lxc -l pl.UTF-8
129 %package -n python3-lxc
130 Summary: Python (3.x) binding for LXC
131 Summary(pl.UTF-8): Wiązanie Pythona (3.x) do LXC
133 Requires: %{name} = %{version}-%{release}
134 Requires: python3-libs >= 1:3.2
135 Requires: python3-modules >= 1:3.2
137 %description -n python3-lxc
138 Python (3.x) binding for LXC.
140 %description -n python3-lxc -l pl.UTF-8
141 Wiązanie Pythona (3.x) do LXC.
143 %package -n bash-completion-%{name}
144 Summary: bash-completion for LXC
145 Summary(pl.UTF-8): bashowe uzupełnianie nazw dla LXC
146 Group: Applications/Shells
147 Requires: %{name} = %{version}-%{release}
148 Requires: bash-completion
149 %if "%{_rpmversion}" >= "5"
153 %description -n bash-completion-%{name}
154 bash-completion for LXC.
156 %description -n bash-completion-%{name} -l pl.UTF-8
157 bashowe uzupełnianie nazw dla LXC.
164 cp -p %{SOURCE1} templates/lxc-pld.in
168 %{__aclocal} -I config
173 bashcompdir=%{bash_compdir} \
174 db2xman=docbook2X2man \
179 %{__enable_disable apparmor} \
180 %{__enable_disable cgmanager} \
181 %{__enable_disable lua} %{?with_lua:--with-lua-pc=lua51} \
182 %{__enable_disable python} \
183 %{__enable_disable seccomp} \
184 %{__enable_disable selinux} \
185 --with-config-path=%{configpath} \
186 --with-init-script=sysvinit,systemd \
187 --with-runtime-path=/var/run \
194 rm -rf $RPM_BUILD_ROOT
195 install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/{cache,log}/lxc} \
196 -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
199 SYSTEMD_UNIT_DIR=%{systemdunitdir} \
200 pcdatadir=%{_pkgconfigdir} \
201 DESTDIR=$RPM_BUILD_ROOT
203 %{__make} -C doc install \
204 DESTDIR=$RPM_BUILD_ROOT
206 %{__rm} $RPM_BUILD_ROOT%{_libdir}/liblxc.la
208 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}
210 # apparmor profiles are not packaged, remove to avoid packagers confusion
211 %{__rm} -r $RPM_BUILD_ROOT/etc/apparmor.d
213 # yum plugin, no idea where to package this
214 %{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/lxc-patch.py
216 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lxc_macvlan
217 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lxc_macvlan
220 %py3_comp $RPM_BUILD_ROOT%{py3_sitedir}/lxc
221 %py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}/lxc
224 %{__sed} -i -e '1s,#!/usr/bin/env lua,#!/usr/bin/lua5.1,' $RPM_BUILD_ROOT%{_bindir}/lxc-top
228 rm -rf $RPM_BUILD_ROOT
231 /sbin/chkconfig --add lxc
232 /sbin/chkconfig --add lxc-net
233 %systemd_post lxc.service lxc-net.service
236 if [ "$1" = "0" ]; then
238 /sbin/chkconfig --del lxc
239 %service lxc-net stop
240 /sbin/chkconfig --del lxc-net
242 %systemd_preun lxc.service lxc-net.service
247 %post libs -p /sbin/ldconfig
248 %postun libs -p /sbin/ldconfig
251 %defattr(644,root,root,755)
252 %doc AUTHORS CONTRIBUTING MAINTAINERS README doc/FAQ.txt doc/examples/*.conf
253 %attr(755,root,root) %{_bindir}/lxc-attach
254 %attr(755,root,root) %{_bindir}/lxc-autostart
255 %attr(755,root,root) %{_bindir}/lxc-cgroup
256 %attr(755,root,root) %{_bindir}/lxc-checkconfig
257 %attr(755,root,root) %{_bindir}/lxc-checkpoint
258 %attr(755,root,root) %{_bindir}/lxc-copy
259 %attr(755,root,root) %{_bindir}/lxc-config
260 %attr(755,root,root) %{_bindir}/lxc-console
261 %attr(755,root,root) %{_bindir}/lxc-create
262 %attr(755,root,root) %{_bindir}/lxc-destroy
263 %attr(755,root,root) %{_bindir}/lxc-execute
264 %attr(755,root,root) %{_bindir}/lxc-freeze
265 %attr(755,root,root) %{_bindir}/lxc-info
266 %attr(755,root,root) %{_bindir}/lxc-monitor
267 %attr(755,root,root) %{_bindir}/lxc-snapshot
268 %attr(755,root,root) %{_bindir}/lxc-start
269 %attr(755,root,root) %{_bindir}/lxc-stop
270 %attr(755,root,root) %{_bindir}/lxc-unfreeze
271 %attr(755,root,root) %{_bindir}/lxc-unshare
272 %attr(755,root,root) %{_bindir}/lxc-update-config
273 %attr(755,root,root) %{_bindir}/lxc-usernsexec
274 %attr(755,root,root) %{_bindir}/lxc-wait
275 %attr(755,root,root) %{_sbindir}/init.lxc
276 %attr(754,root,root) /etc/rc.d/init.d/lxc
277 %attr(754,root,root) /etc/rc.d/init.d/lxc-net
279 %{systemdunitdir}/lxc.service
280 %{systemdunitdir}/lxc@.service
281 %{systemdunitdir}/lxc-net.service
282 %dir %{_libdir}/%{name}
283 %dir %{_libdir}/%{name}/rootfs
284 %{_libdir}/%{name}/rootfs/README
285 %dir %{_libexecdir}/%{name}
286 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-apparmor-load
287 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-containers
288 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-monitord
289 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-net
290 %attr(755,root,root) %{_libexecdir}/%{name}/lxc-user-nic
291 %attr(755,root,root) %{_libexecdir}/%{name}/lxc_macvlan
292 %dir %{_libexecdir}/%{name}/hooks
293 %attr(755,root,root) %{_libexecdir}/%{name}/hooks/unmount-namespace
294 %dir %{_sysconfdir}/lxc
295 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc_macvlan
296 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc
297 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lxc/default.conf
298 %dir %{_datadir}/%{name}
299 %{_datadir}/%{name}/lxc.functions
300 %dir %{_datadir}/%{name}/config
301 %{_datadir}/%{name}/config/archlinux.*.conf
302 %{_datadir}/%{name}/config/centos.*.conf
303 %{_datadir}/%{name}/config/common.conf
304 %dir %{_datadir}/%{name}/config/common.conf.d
305 %{_datadir}/%{name}/config/common.conf.d/README
306 %{_datadir}/%{name}/config/common.seccomp
307 %{_datadir}/%{name}/config/alpine.*.conf
308 %{_datadir}/%{name}/config/debian.*.conf
309 %{_datadir}/%{name}/config/fedora.*.conf
310 %{_datadir}/%{name}/config/gentoo.*.conf
311 %{_datadir}/%{name}/config/nesting.conf
312 %{_datadir}/%{name}/config/opensuse.*.conf
313 %{_datadir}/%{name}/config/openwrt.*.conf
314 %{_datadir}/%{name}/config/oracle.*.conf
315 %{_datadir}/%{name}/config/plamo.*.conf
316 %{_datadir}/%{name}/config/sabayon.common.conf
317 %{_datadir}/%{name}/config/sabayon.userns.conf
318 %{_datadir}/%{name}/config/slackware.*.conf
319 %{_datadir}/%{name}/config/sparclinux.*.conf
320 %{_datadir}/%{name}/config/ubuntu-cloud.*.conf
321 %{_datadir}/%{name}/config/ubuntu.*.conf
322 %{_datadir}/%{name}/config/userns.conf
323 %{_datadir}/%{name}/config/voidlinux.common.conf
324 %{_datadir}/%{name}/config/voidlinux.userns.conf
325 %dir %{_datadir}/%{name}/hooks
326 %dir %{_datadir}/%{name}/selinux
327 %{_datadir}/%{name}/selinux/*
328 %dir %{_datadir}/%{name}/templates
329 %attr(755,root,root) %{_datadir}/%{name}/hooks/clonehostname
330 %attr(755,root,root) %{_datadir}/%{name}/hooks/mount*
331 %attr(755,root,root) %{_datadir}/%{name}/hooks/squid-deb-proxy-client
332 %attr(755,root,root) %{_datadir}/%{name}/hooks/ubuntu-cloud-prep
333 %attr(755,root,root) %{_datadir}/%{name}/templates/lxc-*
334 %{_mandir}/man1/lxc-attach.1*
335 %{_mandir}/man1/lxc-autostart.1*
336 %{_mandir}/man1/lxc-cgroup.1*
337 %{_mandir}/man1/lxc-checkconfig.1*
338 %{_mandir}/man1/lxc-checkpoint.1*
339 %{_mandir}/man1/lxc-copy.1*
340 %{_mandir}/man1/lxc-config.1*
341 %{_mandir}/man1/lxc-console.1*
342 %{_mandir}/man1/lxc-create.1*
343 %{_mandir}/man1/lxc-destroy.1*
344 %{_mandir}/man1/lxc-execute.1*
345 %{_mandir}/man1/lxc-freeze.1*
346 %{_mandir}/man1/lxc-info.1*
347 %{_mandir}/man1/lxc-monitor.1*
348 %{_mandir}/man1/lxc-snapshot.1*
349 %{_mandir}/man1/lxc-start.1*
350 %{_mandir}/man1/lxc-stop.1*
351 %{_mandir}/man1/lxc-unfreeze.1*
352 %{_mandir}/man1/lxc-unshare.1*
353 %{_mandir}/man1/lxc-update-config.1*
354 %{_mandir}/man1/lxc-user-nic.1*
355 %{_mandir}/man1/lxc-usernsexec.1*
356 %{_mandir}/man1/lxc-wait.1*
357 %{_mandir}/man5/lxc-usernet.5*
358 %{_mandir}/man5/lxc.conf.5*
359 %{_mandir}/man5/lxc.container.conf.5*
360 %{_mandir}/man5/lxc.system.conf.5*
361 %{_mandir}/man7/lxc.7*
362 %lang(ja) %{_mandir}/ja/man1/lxc*.1*
363 %lang(ja) %{_mandir}/ja/man5/lxc-usernet.5*
364 %lang(ja) %{_mandir}/ja/man5/lxc.conf.5*
365 %lang(ja) %{_mandir}/ja/man5/lxc.container.conf.5*
366 %lang(ja) %{_mandir}/ja/man5/lxc.system.conf.5*
367 %lang(ja) %{_mandir}/ja/man7/lxc.7*
368 %exclude %{_mandir}/ja/man1/lxc-device.1*
369 %exclude %{_mandir}/ja/man1/lxc-ls.1*
370 %exclude %{_mandir}/ja/man1/lxc-top.1*
371 %lang(ko) %{_mandir}/ko/man1/lxc*.1*
372 %lang(ko) %{_mandir}/ko/man5/lxc-usernet.5*
373 %lang(ko) %{_mandir}/ko/man5/lxc.conf.5*
374 %lang(ko) %{_mandir}/ko/man5/lxc.container.conf.5*
375 %lang(ko) %{_mandir}/ko/man5/lxc.system.conf.5*
376 %lang(ko) %{_mandir}/ko/man7/lxc.7*
377 %exclude %{_mandir}/ko/man1/lxc-device.1*
378 %exclude %{_mandir}/ko/man1/lxc-ls.1*
379 %exclude %{_mandir}/ko/man1/lxc-top.1*
381 %if %{without python}
383 %attr(755,root,root) %{_bindir}/lxc-ls
384 %{_mandir}/man1/lxc-ls.1*
385 %lang(ja) %{_mandir}/ja/man1/lxc-ls.1*
386 %lang(ko) %{_mandir}/ko/man1/lxc-ls.1*
390 %dir %{configpath}snap
391 %dir %attr(750,root,root) /var/log/lxc
392 %dir %attr(750,root,root) /var/cache/lxc
395 %defattr(644,root,root,755)
396 %attr(755,root,root) %{_libdir}/liblxc.so.*.*.*
397 %attr(755,root,root) %ghost %{_libdir}/liblxc.so.1
400 %defattr(644,root,root,755)
401 %attr(755,root,root) %{_libdir}/liblxc.so
403 %{_pkgconfigdir}/lxc.pc
407 %defattr(644,root,root,755)
408 %attr(755,root,root) %{_bindir}/lxc-top
409 %dir %{_libdir}/lua/lxc
410 %attr(755,root,root) %{_libdir}/lua/lxc/core.so
411 %{_datadir}/lua/lxc.lua
412 %{_mandir}/man1/lxc-top.1*
413 %lang(ja) %{_mandir}/ja/man1/lxc-top.1*
414 %lang(ko) %{_mandir}/ko/man1/lxc-top.1*
418 %files -n python3-lxc
419 %defattr(644,root,root,755)
420 %attr(755,root,root) %{_bindir}/lxc-device
421 %attr(755,root,root) %{_bindir}/lxc-ls
423 %attr(755,root,root) %{py3_sitedir}/_lxc.cpython-*.so
424 %{py3_sitedir}/lxc-0.1-py*.egg-info
425 %{_mandir}/man1/lxc-device.1*
426 %{_mandir}/man1/lxc-ls.1*
427 %lang(ja) %{_mandir}/ja/man1/lxc-device.1*
428 %lang(ja) %{_mandir}/ja/man1/lxc-ls.1*
429 %lang(ko) %{_mandir}/ko/man1/lxc-device.1*
430 %lang(ko) %{_mandir}/ko/man1/lxc-ls.1*
433 %files -n bash-completion-%{name}
434 %defattr(644,root,root,755)