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