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