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