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