]> git.pld-linux.org Git - packages/lxc.git/blob - lxc.spec
3054df53096a9390c297a211f6ba22d52183d8a1
[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  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
13 Summary:        Linux Containers userspace tools
14 Summary(pl.UTF-8):      Narzędzia do kontenerów linuksowych (LXC)
15 Name:           lxc
16 Version:        3.2.1
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:  4886c8d1c8e221fe526eefcb47857b85
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 Patch1:         %{name}-net.patch
27 Patch2:         x32.patch
28 Patch3:         %{name}-cgroups.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:  gcc >= 6:4.7
38 %{?with_static:BuildRequires:   glibc-static}
39 BuildRequires:  gnutls-devel
40 %{?with_apparmor:BuildRequires: libapparmor-devel}
41 BuildRequires:  libcap-devel
42 %{?with_static:BuildRequires:   libcap-static}
43 %{?with_cgmanager:BuildRequires:        libnih-devel >= 1.0.2}
44 %{?with_seccomp:BuildRequires:  libseccomp-devel}
45 BuildRequires:  libtool >= 2:2
46 BuildRequires:  libxslt-progs
47 %{?with_pam:BuildRequires:      pam-devel}
48 BuildRequires:  pkgconfig
49 BuildRequires:  rpmbuild(macros) >= 1.671
50 BuildRequires:  sed >= 4.0
51 Requires(post): /sbin/ldconfig
52 Requires(post,preun):   /sbin/chkconfig
53 Requires:       %{name}-libs = %{version}-%{release}
54 # lxc_macvlan script
55 Requires:       gawk
56 # used in lxc-net script to set bridge nat
57 Requires:       iproute2
58 Requires:       iptables
59 Requires:       rc-scripts >= 0.4.6
60 Requires:       systemd-units >= 38
61 Requires:       which
62 # used in lxc-net script, but not all cases, may break working setups
63 Suggests:       dnsmasq
64 Suggests:       gnupg
65 Suggests:       gnupg-plugin-keys_curl
66 Suggests:       gnupg-plugin-keys_hkp
67 Suggests:       net-tools
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 -n pam-pam_cgfs
94 Summary:        PAM module to create user cgroups
95 Summary(pl.UTF-8):      Moduł PAM do tworzenia cgroup użytkownika
96 Group:          Libraries
97 Requires:       pam
98
99 %description -n pam-pam_cgfs
100 PAM module that when a user logs in, will create cgroups which the
101 user may administer.
102
103 %description -n pam-pam_cgfs -l pl.UTF-8
104 Moduł PAM, który przy logowaniu użytkownika tworzy cgroupy, którymi
105 użytkownik może administrować.
106
107 %package libs
108 Summary:        liblxc library
109 Summary(pl.UTF-8):      Biblioteka liblxc
110 Group:          Libraries
111 Conflicts:      lxc < 2.0.4-2
112
113 %description libs
114 liblxc library.
115
116 %description libs -l pl.UTF-8
117 Biblioteka liblxc.
118
119 %package devel
120 Summary:        Header files for lxc library
121 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki lxc
122 Group:          Development/Libraries
123 Requires:       %{name}-libs = %{version}-%{release}
124
125 %description devel
126 Header files for lxc library.
127
128 %description devel -l pl.UTF-8
129 Pliki nagłówkowe biblioteki lxc.
130
131 %package static
132 Summary:        Static lxc library
133 Summary(pl.UTF-8):      Statyczna biblioteka lxc
134 Group:          Development/Libraries
135 Requires:       %{name}-devel = %{version}-%{release}
136
137 %description static
138 Static lxc library.
139
140 %description static -l pl.UTF-8
141 Statyczna biblioteka lxc.
142
143 %package -n bash-completion-%{name}
144 Summary:        bash-completion for LXC
145 Summary(pl.UTF-8):      bashowe uzupełnianie nazw dla LXC
146 Group:          Applications/Shells
147 Requires:       %{name} = %{version}-%{release}
148 Requires:       bash-completion
149 %if "%{_rpmversion}" >= "5"
150 BuildArch:      noarch
151 %endif
152
153 %description -n bash-completion-%{name}
154 bash-completion for LXC.
155
156 %description -n bash-completion-%{name} -l pl.UTF-8
157 bashowe uzupełnianie nazw dla LXC.
158
159 %prep
160 %setup -q
161 %patch1 -p1
162 %patch2 -p1
163 %patch3 -p1
164
165 cp -p %{SOURCE1} templates/lxc-pld.in
166
167 %build
168 %{__libtoolize}
169 %{__aclocal} -I config
170 %{__autoconf}
171 %{__autoheader}
172 %{__automake}
173 %configure \
174         bashcompdir=%{bash_compdir} \
175         db2xman=docbook2X2man \
176         --disable-rpath \
177         %{__enable_disable apparmor} \
178         --enable-bash \
179         %{__enable_disable cgmanager} \
180         --enable-doc \
181         --enable-examples \
182         %{?with_pam:--enable-pam} \
183         %{__enable_disable seccomp} \
184         %{__enable_disable selinux} \
185         --with-config-path=%{configpath} \
186         --with-distro=pld \
187         --with-init-script=sysvinit,systemd \
188         --with-runtime-path=/var/run
189
190 %{__make}
191 %{__make} -C doc
192
193 %install
194 rm -rf $RPM_BUILD_ROOT
195 install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/{cache,log}/lxc} \
196         -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
197
198 %{__make} install \
199         SYSTEMD_UNIT_DIR=%{systemdunitdir} \
200         pcdatadir=%{_pkgconfigdir} \
201         DESTDIR=$RPM_BUILD_ROOT
202
203 %{__make} -C doc install \
204         DESTDIR=$RPM_BUILD_ROOT
205
206 %{__rm} $RPM_BUILD_ROOT%{_libdir}/liblxc.la
207
208 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}
209
210 # apparmor profiles are not packaged, remove to avoid packagers confusion
211 %{__rm} -r $RPM_BUILD_ROOT/etc/apparmor.d
212
213 # yum plugin, no idea where to package this
214 %{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/lxc-patch.py
215
216 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lxc_macvlan
217 install -p %{SOURCE3} $RPM_BUILD_ROOT%{_libexecdir}/%{name}/lxc_macvlan
218
219 %clean
220 rm -rf $RPM_BUILD_ROOT
221
222 %post
223 /sbin/chkconfig --add lxc
224 /sbin/chkconfig --add lxc-net
225 %systemd_post lxc.service lxc-net.service
226
227 %preun
228 if [ "$1" = "0" ]; then
229         %service lxc stop
230         /sbin/chkconfig --del lxc
231         %service lxc-net stop
232         /sbin/chkconfig --del lxc-net
233 fi
234 %systemd_preun lxc.service lxc-net.service
235
236 %postun
237 %systemd_reload
238
239 %post   libs -p /sbin/ldconfig
240 %postun libs -p /sbin/ldconfig
241
242 %files
243 %defattr(644,root,root,755)
244 %doc AUTHORS CONTRIBUTING MAINTAINERS README  doc/FAQ.txt doc/examples/*.conf
245 %attr(755,root,root) %{_bindir}/lxc-attach
246 %attr(755,root,root) %{_bindir}/lxc-autostart
247 %attr(755,root,root) %{_bindir}/lxc-cgroup
248 %attr(755,root,root) %{_bindir}/lxc-checkconfig
249 %attr(755,root,root) %{_bindir}/lxc-checkpoint
250 %attr(755,root,root) %{_bindir}/lxc-copy
251 %attr(755,root,root) %{_bindir}/lxc-config
252 %attr(755,root,root) %{_bindir}/lxc-console
253 %attr(755,root,root) %{_bindir}/lxc-create
254 %attr(755,root,root) %{_bindir}/lxc-destroy
255 %attr(755,root,root) %{_bindir}/lxc-device
256 %attr(755,root,root) %{_bindir}/lxc-execute
257 %attr(755,root,root) %{_bindir}/lxc-freeze
258 %attr(755,root,root) %{_bindir}/lxc-info
259 %attr(755,root,root) %{_bindir}/lxc-ls
260 %attr(755,root,root) %{_bindir}/lxc-monitor
261 %attr(755,root,root) %{_bindir}/lxc-snapshot
262 %attr(755,root,root) %{_bindir}/lxc-start
263 %attr(755,root,root) %{_bindir}/lxc-stop
264 %attr(755,root,root) %{_bindir}/lxc-top
265 %attr(755,root,root) %{_bindir}/lxc-unfreeze
266 %attr(755,root,root) %{_bindir}/lxc-unshare
267 %attr(755,root,root) %{_bindir}/lxc-update-config
268 %attr(755,root,root) %{_bindir}/lxc-usernsexec
269 %attr(755,root,root) %{_bindir}/lxc-wait
270 %attr(755,root,root) %{_sbindir}/init.lxc
271 %if %{with static}
272 %attr(755,root,root) %{_sbindir}/init.lxc.static
273 %endif
274 %attr(754,root,root) /etc/rc.d/init.d/lxc
275 %attr(754,root,root) /etc/rc.d/init.d/lxc-net
276
277 %{systemdunitdir}/lxc.service
278 %{systemdunitdir}/lxc@.service
279 %{systemdunitdir}/lxc-net.service
280 %dir %{_libdir}/%{name}
281 %dir %{_libdir}/%{name}/rootfs
282 %{_libdir}/%{name}/rootfs/README
283 %if "%{_libexecdir}" != "%{_libdir}"
284 %dir %{_libexecdir}/%{name}
285 %endif
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
292 %dir %{_libexecdir}/%{name}/hooks
293 %attr(755,root,root) %{_libexecdir}/%{name}/hooks/unmount-namespace
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/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/nesting.conf
306 %{_datadir}/%{name}/config/oci.common.conf
307 %{_datadir}/%{name}/config/userns.conf
308 %dir %{_datadir}/%{name}/hooks
309 %dir %{_datadir}/%{name}/selinux
310 %{_datadir}/%{name}/selinux/*
311 %dir %{_datadir}/%{name}/templates
312 %attr(755,root,root) %{_datadir}/%{name}/hooks/clonehostname
313 %attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient
314 %attr(755,root,root) %{_datadir}/%{name}/hooks/dhclient-script
315 %attr(755,root,root) %{_datadir}/%{name}/hooks/mount*
316 %attr(755,root,root) %{_datadir}/%{name}/hooks/nvidia
317 %attr(755,root,root) %{_datadir}/%{name}/hooks/squid-deb-proxy-client
318 %attr(755,root,root) %{_datadir}/%{name}/hooks/ubuntu-cloud-prep
319 %attr(755,root,root) %{_datadir}/%{name}/templates/lxc-*
320 %{_mandir}/man1/lxc-attach.1*
321 %{_mandir}/man1/lxc-autostart.1*
322 %{_mandir}/man1/lxc-cgroup.1*
323 %{_mandir}/man1/lxc-checkconfig.1*
324 %{_mandir}/man1/lxc-checkpoint.1*
325 %{_mandir}/man1/lxc-copy.1*
326 %{_mandir}/man1/lxc-config.1*
327 %{_mandir}/man1/lxc-console.1*
328 %{_mandir}/man1/lxc-create.1*
329 %{_mandir}/man1/lxc-destroy.1*
330 %{_mandir}/man1/lxc-device.1*
331 %{_mandir}/man1/lxc-execute.1*
332 %{_mandir}/man1/lxc-freeze.1*
333 %{_mandir}/man1/lxc-info.1*
334 %{_mandir}/man1/lxc-ls.1*
335 %{_mandir}/man1/lxc-monitor.1*
336 %{_mandir}/man1/lxc-snapshot.1*
337 %{_mandir}/man1/lxc-start.1*
338 %{_mandir}/man1/lxc-stop.1*
339 %{_mandir}/man1/lxc-top.1*
340 %{_mandir}/man1/lxc-unfreeze.1*
341 %{_mandir}/man1/lxc-unshare.1*
342 %{_mandir}/man1/lxc-update-config.1*
343 %{_mandir}/man1/lxc-user-nic.1*
344 %{_mandir}/man1/lxc-usernsexec.1*
345 %{_mandir}/man1/lxc-wait.1*
346 %{_mandir}/man5/lxc-usernet.5*
347 %{_mandir}/man5/lxc.conf.5*
348 %{_mandir}/man5/lxc.container.conf.5*
349 %{_mandir}/man5/lxc.system.conf.5*
350 %{_mandir}/man7/lxc.7*
351 %lang(ja) %{_mandir}/ja/man1/lxc*.1*
352 %lang(ja) %{_mandir}/ja/man5/lxc-usernet.5*
353 %lang(ja) %{_mandir}/ja/man5/lxc.conf.5*
354 %lang(ja) %{_mandir}/ja/man5/lxc.container.conf.5*
355 %lang(ja) %{_mandir}/ja/man5/lxc.system.conf.5*
356 %lang(ja) %{_mandir}/ja/man7/lxc.7*
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*
363
364 %dir %{configpath}
365 %dir %{configpath}snap
366 %dir %attr(750,root,root) /var/log/lxc
367 %dir %attr(750,root,root) /var/cache/lxc
368
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
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
380 %files devel
381 %defattr(644,root,root,755)
382 %attr(755,root,root) %{_libdir}/liblxc.so
383 %{_includedir}/lxc
384 %{_pkgconfigdir}/lxc.pc
385
386 %files static
387 %defattr(644,root,root,755)
388 %{_libdir}/liblxc.a
389
390 %files -n bash-completion-%{name}
391 %defattr(644,root,root,755)
392 %{bash_compdir}/lxc
This page took 0.061443 seconds and 2 git commands to generate.