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