]> git.pld-linux.org Git - packages/lxc.git/blame_incremental - lxc.spec
- separated -static, added static bcond (lxc.init.static binary, not related to stati...
[packages/lxc.git] / lxc.spec
... / ...
CommitLineData
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
13Summary: Linux Containers userspace tools
14Summary(pl.UTF-8): Narzędzia do kontenerów linuksowych (LXC)
15Name: lxc
16Version: 3.0.3
17Release: 1
18License: LGPL v2.1+
19Group: Applications/System
20Source0: https://linuxcontainers.org/downloads/lxc/%{name}-%{version}.tar.gz
21# Source0-md5: 0aa1a982f7dfa4c7b8ce87b7047b0b6e
22Source1: %{name}-pld.in.sh
23# lxc-net based on bridge, macvlan is an alternative/supported lxc network
24Source2: %{name}_macvlan.sysconfig
25Source3: %{name}_macvlan
26Patch1: %{name}-net.patch
27Patch2: x32.patch
28URL: https://www.linuxcontainers.org/
29BuildRequires: autoconf >= 2.50
30BuildRequires: automake
31%{?with_cgmanager:BuildRequires: cgmanager-devel}
32%{?with_cgmanager:BuildRequires: dbus-devel >= 1.2.16}
33BuildRequires: docbook-dtd45-xml
34BuildRequires: docbook2X >= 0.8
35BuildRequires: doxygen
36BuildRequires: gcc >= 6:4.7
37%{?with_static:BuildRequires: glibc-static}
38BuildRequires: gnutls-devel
39%{?with_apparmor:BuildRequires: libapparmor-devel}
40BuildRequires: libcap-devel
41%{?with_static:BuildRequires: libcap-static}
42%{?with_cgmanager:BuildRequires: libnih-devel >= 1.0.2}
43%{?with_seccomp:BuildRequires: libseccomp-devel}
44BuildRequires: libtool >= 2:2
45BuildRequires: libxslt-progs
46%{?with_pam:BuildRequires: pam-devel}
47BuildRequires: pkgconfig
48BuildRequires: rpmbuild(macros) >= 1.671
49BuildRequires: sed >= 4.0
50Requires(post): /sbin/ldconfig
51Requires(post,preun): /sbin/chkconfig
52Requires: %{name}-libs = %{version}-%{release}
53# lxc_macvlan script
54Requires: gawk
55# used in lxc-net script to set bridge nat
56Requires: iproute2
57Requires: iptables
58Requires: rc-scripts >= 0.4.6
59Requires: systemd-units >= 38
60Requires: which
61# used in lxc-net script, but not all cases, may break working setups
62Suggests: dnsmasq
63Suggests: gnupg
64Suggests: gnupg-plugin-keys_curl
65Suggests: gnupg-plugin-keys_hkp
66Suggests: net-tools
67Suggests: rsync
68BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69
70%define configpath /var/lib/lxc
71
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
82%description -l pl.UTF-8
83Narzędzia do tworzenia i zarządzania kontenerami. System ten obejmuje
84w pełni funkcjonalne kontenery z izolacją/wirtualizacją pidów, ipc,
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
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
106%package libs
107Summary: liblxc library
108Summary(pl.UTF-8): Biblioteka liblxc
109Group: Libraries
110Conflicts: lxc < 2.0.4-2
111
112%description libs
113liblxc library.
114
115%description libs -l pl.UTF-8
116Biblioteka liblxc.
117
118%package devel
119Summary: Header files for lxc library
120Summary(pl.UTF-8): Pliki nagłówkowe biblioteki lxc
121Group: Development/Libraries
122Requires: %{name}-libs = %{version}-%{release}
123
124%description devel
125Header files for lxc library.
126
127%description devel -l pl.UTF-8
128Pliki nagłówkowe biblioteki lxc.
129
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
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} = %{version}-%{release}
147Requires: bash-completion
148%if "%{_rpmversion}" >= "5"
149BuildArch: noarch
150%endif
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
158%prep
159%setup -q
160%patch1 -p1
161%patch2 -p1
162
163cp -p %{SOURCE1} templates/lxc-pld.in
164
165%build
166%{__libtoolize}
167%{__aclocal} -I config
168%{__autoconf}
169%{__autoheader}
170%{__automake}
171%configure \
172 bashcompdir=%{bash_compdir} \
173 db2xman=docbook2X2man \
174 --disable-rpath \
175 %{__enable_disable apparmor} \
176 --enable-bash \
177 %{__enable_disable cgmanager} \
178 --enable-doc \
179 --enable-examples \
180 %{?with_pam:--enable-pam} \
181 %{__enable_disable seccomp} \
182 %{__enable_disable selinux} \
183 --with-config-path=%{configpath} \
184 --with-distro=pld \
185 --with-init-script=sysvinit,systemd \
186 --with-runtime-path=/var/run
187
188%{__make}
189%{__make} -C doc
190
191%install
192rm -rf $RPM_BUILD_ROOT
193install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/{cache,log}/lxc} \
194 -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
195
196%{__make} install \
197 SYSTEMD_UNIT_DIR=%{systemdunitdir} \
198 pcdatadir=%{_pkgconfigdir} \
199 DESTDIR=$RPM_BUILD_ROOT
200
201%{__make} -C doc install \
202 DESTDIR=$RPM_BUILD_ROOT
203
204%{__rm} $RPM_BUILD_ROOT%{_libdir}/liblxc.la
205
206%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
207
208# apparmor profiles are not packaged, remove to avoid packagers confusion
209%{__rm} -r $RPM_BUILD_ROOT/etc/apparmor.d
210
211# yum plugin, no idea where to package this
212%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/lxc-patch.py
213
214install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lxc_macvlan
215install -p %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lxc_macvlan
216
217%clean
218rm -rf $RPM_BUILD_ROOT
219
220%post
221/sbin/chkconfig --add lxc
222/sbin/chkconfig --add lxc-net
223%systemd_post lxc.service lxc-net.service
224
225%preun
226if [ "$1" = "0" ]; then
227 %service lxc stop
228 /sbin/chkconfig --del lxc
229 %service lxc-net stop
230 /sbin/chkconfig --del lxc-net
231fi
232%systemd_preun lxc.service lxc-net.service
233
234%postun
235%systemd_reload
236
237%post libs -p /sbin/ldconfig
238%postun libs -p /sbin/ldconfig
239
240%files
241%defattr(644,root,root,755)
242%doc AUTHORS CONTRIBUTING MAINTAINERS README doc/FAQ.txt doc/examples/*.conf
243%attr(755,root,root) %{_bindir}/lxc-attach
244%attr(755,root,root) %{_bindir}/lxc-autostart
245%attr(755,root,root) %{_bindir}/lxc-cgroup
246%attr(755,root,root) %{_bindir}/lxc-checkconfig
247%attr(755,root,root) %{_bindir}/lxc-checkpoint
248%attr(755,root,root) %{_bindir}/lxc-copy
249%attr(755,root,root) %{_bindir}/lxc-config
250%attr(755,root,root) %{_bindir}/lxc-console
251%attr(755,root,root) %{_bindir}/lxc-create
252%attr(755,root,root) %{_bindir}/lxc-destroy
253%attr(755,root,root) %{_bindir}/lxc-device
254%attr(755,root,root) %{_bindir}/lxc-execute
255%attr(755,root,root) %{_bindir}/lxc-freeze
256%attr(755,root,root) %{_bindir}/lxc-info
257%attr(755,root,root) %{_bindir}/lxc-ls
258%attr(755,root,root) %{_bindir}/lxc-monitor
259%attr(755,root,root) %{_bindir}/lxc-snapshot
260%attr(755,root,root) %{_bindir}/lxc-start
261%attr(755,root,root) %{_bindir}/lxc-stop
262%attr(755,root,root) %{_bindir}/lxc-top
263%attr(755,root,root) %{_bindir}/lxc-unfreeze
264%attr(755,root,root) %{_bindir}/lxc-unshare
265%attr(755,root,root) %{_bindir}/lxc-update-config
266%attr(755,root,root) %{_bindir}/lxc-usernsexec
267%attr(755,root,root) %{_bindir}/lxc-wait
268%attr(755,root,root) %{_sbindir}/init.lxc
269%if %{with static}
270%attr(755,root,root) %{_sbindir}/init.lxc.static
271%endif
272%attr(754,root,root) /etc/rc.d/init.d/lxc
273%attr(754,root,root) /etc/rc.d/init.d/lxc-net
274
275%{systemdunitdir}/lxc.service
276%{systemdunitdir}/lxc@.service
277%{systemdunitdir}/lxc-net.service
278%dir %{_libdir}/%{name}
279%dir %{_libdir}/%{name}/rootfs
280%{_libdir}/%{name}/rootfs/README
281%if "%{_libexecdir}" != "%{_libdir}"
282%dir %{_libexecdir}/%{name}
283%endif
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
290%dir %{_libexecdir}/%{name}/hooks
291%attr(755,root,root) %{_libexecdir}/%{name}/hooks/unmount-namespace
292%dir %{_sysconfdir}/lxc
293%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc_macvlan
294%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc
295%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lxc/default.conf
296%dir %{_datadir}/%{name}
297%{_datadir}/%{name}/lxc.functions
298%dir %{_datadir}/%{name}/config
299%{_datadir}/%{name}/config/common.conf
300%dir %{_datadir}/%{name}/config/common.conf.d
301%{_datadir}/%{name}/config/common.conf.d/README
302%{_datadir}/%{name}/config/common.seccomp
303%{_datadir}/%{name}/config/nesting.conf
304%{_datadir}/%{name}/config/oci.common.conf
305%{_datadir}/%{name}/config/userns.conf
306%dir %{_datadir}/%{name}/hooks
307%dir %{_datadir}/%{name}/selinux
308%{_datadir}/%{name}/selinux/*
309%dir %{_datadir}/%{name}/templates
310%attr(755,root,root) %{_datadir}/%{name}/hooks/clonehostname
311%attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient
312%attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient-script
313%attr(755,root,root) %{_datadir}/%{name}/hooks/mount*
314%attr(755,root,root) %{_datadir}/%{name}/hooks/nvidia
315%attr(755,root,root) %{_datadir}/%{name}/hooks/squid-deb-proxy-client
316%attr(755,root,root) %{_datadir}/%{name}/hooks/ubuntu-cloud-prep
317%attr(755,root,root) %{_datadir}/%{name}/templates/lxc-*
318%{_mandir}/man1/lxc-attach.1*
319%{_mandir}/man1/lxc-autostart.1*
320%{_mandir}/man1/lxc-cgroup.1*
321%{_mandir}/man1/lxc-checkconfig.1*
322%{_mandir}/man1/lxc-checkpoint.1*
323%{_mandir}/man1/lxc-copy.1*
324%{_mandir}/man1/lxc-config.1*
325%{_mandir}/man1/lxc-console.1*
326%{_mandir}/man1/lxc-create.1*
327%{_mandir}/man1/lxc-destroy.1*
328%{_mandir}/man1/lxc-device.1*
329%{_mandir}/man1/lxc-execute.1*
330%{_mandir}/man1/lxc-freeze.1*
331%{_mandir}/man1/lxc-info.1*
332%{_mandir}/man1/lxc-ls.1*
333%{_mandir}/man1/lxc-monitor.1*
334%{_mandir}/man1/lxc-snapshot.1*
335%{_mandir}/man1/lxc-start.1*
336%{_mandir}/man1/lxc-stop.1*
337%{_mandir}/man1/lxc-top.1*
338%{_mandir}/man1/lxc-unfreeze.1*
339%{_mandir}/man1/lxc-unshare.1*
340%{_mandir}/man1/lxc-update-config.1*
341%{_mandir}/man1/lxc-user-nic.1*
342%{_mandir}/man1/lxc-usernsexec.1*
343%{_mandir}/man1/lxc-wait.1*
344%{_mandir}/man5/lxc-usernet.5*
345%{_mandir}/man5/lxc.conf.5*
346%{_mandir}/man5/lxc.container.conf.5*
347%{_mandir}/man5/lxc.system.conf.5*
348%{_mandir}/man7/lxc.7*
349%lang(ja) %{_mandir}/ja/man1/lxc*.1*
350%lang(ja) %{_mandir}/ja/man5/lxc-usernet.5*
351%lang(ja) %{_mandir}/ja/man5/lxc.conf.5*
352%lang(ja) %{_mandir}/ja/man5/lxc.container.conf.5*
353%lang(ja) %{_mandir}/ja/man5/lxc.system.conf.5*
354%lang(ja) %{_mandir}/ja/man7/lxc.7*
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*
361
362%dir %{configpath}
363%dir %{configpath}snap
364%dir %attr(750,root,root) /var/log/lxc
365%dir %attr(750,root,root) /var/cache/lxc
366
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
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.121253 seconds and 4 git commands to generate.