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