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