]> git.pld-linux.org Git - packages/lxc.git/blobdiff - lxc.spec
Version: 1.1.3, merged macvlan with lxc-net scripts
[packages/lxc.git] / lxc.spec
index c8ac2034016ea945adc64c7722df3a3833fd1477..5fc185379aa359abbbef7349293036bc9ab2ff37 100644 (file)
--- a/lxc.spec
+++ b/lxc.spec
@@ -1,17 +1,66 @@
-Summary:       Linux Container Tools
+# TODO
+# - package apparmor stuff
+
+# Conditional build:
+%bcond_without seccomp         # SecComp syscall filter
+%bcond_without apparmor        # apparmor support
+%bcond_without lua             # Lua binding
+%bcond_without python          # Python binding
+%bcond_with    selinux         # SELinux support
+%bcond_with    cgmanager       # cgmanager support
+
+Summary:       Linux Containers userspace tools
+Summary(pl.UTF-8):     Narzędzia do kontenerów linuksowych (LXC)
 Name:          lxc
 Name:          lxc
-Version:       0.6.5
+Version:       1.1.3
 Release:       1
 Release:       1
-License:       GPL
-Group:         Base
-Source0:       http://dl.sourceforge.net/lxc/%{name}-%{version}.tar.gz
-# Source0-md5: d648bcf82541c0da6725da502ee1d111
-URL:           http://lxc.sourceforge.net
-BuildRequires: autoconf
+License:       LGPL v2.1+
+Group:         Applications/System
+Source0:       https://linuxcontainers.org/downloads/lxc/%{name}-%{version}.tar.gz
+# Source0-md5: 197abb5a28ab0b689c737eb1951023fb
+Source1:       %{name}-pld.in.sh
+# lxc-net based on bridge, macvlan is an alternative/supported lxc network
+Source2:       %{name}_macvlan.sysconfig
+Source3:       %{name}_macvlan
+Patch0:                %{name}-pld.patch
+Patch1:                x32.patch
+Patch2:                %{name}-net.patch
+URL:           https://www.linuxcontainers.org/
+BuildRequires: autoconf >= 2.50
 BuildRequires: automake
 BuildRequires: automake
+%{?with_cgmanager:BuildRequires:       cgmanager-devel}
+%{?with_cgmanager:BuildRequires:       dbus-devel >= 1.2.16}
 BuildRequires: docbook-dtd30-sgml
 BuildRequires: docbook-utils
 BuildRequires: docbook-dtd30-sgml
 BuildRequires: docbook-utils
-BuildRequires: libtool
+BuildRequires: docbook2X
+BuildRequires: gnutls-devel
+%{?with_apparmor:BuildRequires:        libapparmor-devel}
+BuildRequires: libcap-devel
+%{?with_cgmanager:BuildRequires:       libnih-devel >= 1.0.2}
+%{?with_seccomp:BuildRequires: libseccomp-devel}
+BuildRequires: libxslt-progs
+%{?with_lua:BuildRequires:     lua51-devel >= 5.1}
+BuildRequires: pkgconfig
+%{?with_python:BuildRequires:  python3-devel >= 1:3.2}
+%{?with_python:BuildRequires:  python3-modules}
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.671
+BuildRequires: sed >= 4.0
+Requires:      rc-scripts >= 0.4.6
+Requires:      dnsmasq  # used in lxc-net script
+Requires:       gawk  # lxc_macvlan script
+Requires:      iptables  # used in lxc-net script to set bridge nat
+Requires:      which
+Requires:      iproute2
+Requires:      systemd-units >= 38
+Requires(post,preun):  /sbin/chkconfig
+Requires(post):        /sbin/ldconfig
+Suggests:      gnupg
+Suggests:      gnupg-plugin-keys_curl
+Suggests:      gnupg-plugin-keys_hkp
+Suggests:      net-tools
+Suggests:      python3-lxc
+Suggests:      rsync
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                configpath      /var/lib/lxc
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                configpath      /var/lib/lxc
@@ -26,58 +75,316 @@ asynchronous events notification, or the freeze of the container. This
 package is useful to create Virtual Private Server, or to run isolated
 applications like bash or sshd.
 
 package is useful to create Virtual Private Server, or to run isolated
 applications like bash or sshd.
 
+%description -l pl.UTF-8
+Narzędzia do tworzenia i zarządzania kontenerami. System ten obejmuje
+w pełni funkcjonalne kontenery z izolacją/wirtualizacją pidów, ipc,
+utsname, punktów montowania, /proc, /sys, sieci oraz uwzględniające
+grupy kontrolne. Jest bardzo lekki, elastyczny i udostępnia narzędzia
+do czynności związanych z kontenerami, takich jak monitorowanie z
+asynchronicznym powiadamianiem o zdarzeniach czy zamrażanie. Ten
+pakiet jest przydatny do tworzenia wirtualnych serwerów prywatnych
+oraz uruchamiania izolowanych aplikacji, takich jak bash czy sshd.
+
 %package devel
 %package devel
-Summary:       Header files and develpment documentation for lxc
+Summary:       Header files for lxc library
+Summary(pl.UTF-8):     Pliki nagłówkowe biblioteki lxc
 Group:         Development/Libraries
 Group:         Development/Libraries
-Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      %{name} = %{version}-%{release}
 
 %description devel
 
 %description devel
-lxc development files.
+Header files for lxc library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki lxc.
+
+%package -n lua-lxc
+Summary:       Lua binding for LXC
+Summary(pl.UTF-8):     Wiązanie Lua do LXC
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      lua51-libs >= 5.1
+
+%description -n lua-lxc
+Lua binding for LXC.
+
+%description -n lua-lxc -l pl.UTF-8
+Wiązanie Lua do LXC.
+
+%package -n python3-lxc
+Summary:       Python (3.x) binding for LXC
+Summary(pl.UTF-8):     Wiązanie Pythona (3.x) do LXC
+Group:         Libraries
+Requires:      %{name} = %{version}-%{release}
+Requires:      python3-libs >= 3.2
+Requires:      python3-modules
+
+%description -n python3-lxc
+Python (3.x) binding for LXC.
+
+%description -n python3-lxc -l pl.UTF-8
+Wiązanie Pythona (3.x) do LXC.
+
+%package -n bash-completion-%{name}
+Summary:       bash-completion for LXC
+Summary(pl.UTF-8):     bashowe uzupełnianie nazw dla LXC
+Group:         Applications/Shells
+Requires:      %{name}
+Requires:      bash-completion
+
+%description -n bash-completion-%{name}
+bash-completion for LXC.
+
+%description -n bash-completion-%{name} -l pl.UTF-8
+bashowe uzupełnianie nazw dla LXC.
 
 %prep
 %setup -q
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+cp -p %{SOURCE1} templates/lxc-pld.in
 
 %build
 
 %build
-%{__libtoolize}
 %{__aclocal} -I config
 %{__autoconf}
 %{__aclocal} -I config
 %{__autoconf}
+%{__autoheader}
 %{__automake}
 %configure \
 %{__automake}
 %configure \
-       --with-config-path=%{configpath}
+       db2xman=docbook2X2man \
+       --disable-rpath \
+       --enable-bash \
+       --enable-doc \
+       --enable-examples \
+       %{__enable_disable apparmor} \
+       %{__enable_disable cgmanager} \
+       %{__enable_disable lua} %{?with_lua:--with-lua-pc=lua51} \
+       %{__enable_disable python} \
+       %{__enable_disable seccomp} \
+       %{__enable_disable selinux} \
+       --with-config-path=%{configpath} \
+       --with-init-script=sysvinit,systemd \
+       --with-runtime-path=/var/run \
+       --with-distro=pld
 
 %{__make}
 %{__make} -C doc
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
 %{__make}
 %{__make} -C doc
 
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{configpath},%{configpath}snap,/var/{cache,log}/lxc}  \
+        -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig}
 
 %{__make} install \
 
 %{__make} install \
-       DESTDIR=$RPM_BUILD_ROOT \
-       pcdatadir=%{_pkgconfigdir}
+       SYSTEMD_UNIT_DIR=%{systemdunitdir} \
+       pcdatadir=%{_pkgconfigdir} \
+       DESTDIR=$RPM_BUILD_ROOT
+
 %{__make} -C doc install \
        DESTDIR=$RPM_BUILD_ROOT
 %{__make} -C doc install \
        DESTDIR=$RPM_BUILD_ROOT
-rm -rf $RPM_BUILD_ROOT%{_datadir}/doc
 
 
-install -d $RPM_BUILD_ROOT%{configpath}
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
+
+# apparmor profiles are not packaged, remove to avoid packagers confusion
+%{__rm} -r $RPM_BUILD_ROOT/etc/apparmor.d
+
+# yum plugin, no idea where to package this
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/lxc-patch.py
+
+install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/lxc_macvlan
+install -p %{SOURCE3} $RPM_BUILD_ROOT%{_libdir}/%{name}/lxc_macvlan
+
+
+%if %{with python}
+%py3_comp $RPM_BUILD_ROOT%{py3_sitedir}/lxc
+%py3_ocomp $RPM_BUILD_ROOT%{py3_sitedir}/lxc
+%endif
+%if %{with lua}
+%{__sed} -i -e '1s,#!/usr/bin/env lua,#!/usr/bin/lua5.1,' $RPM_BUILD_ROOT%{_bindir}/lxc-top
+%endif
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
+%post  
+/sbin/ldconfig
+/sbin/chkconfig --add lxc
+/sbin/chkconfig --add lxc-net
+%systemd_post lxc.service lxc-net.service
+
+%preun
+if [ "$1" = "0" ]; then
+       %service lxc stop
+       /sbin/chkconfig --del lxc
+       %service lxc-net stop
+       /sbin/chkconfig --del lxc-net
+fi
+%systemd_preun lxc.service lxc-net.service
+
+%postun
+/sbin/ldconfig
+%systemd_reload
 
 %files
 %defattr(644,root,root,755)
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS ChangeLog CONTRIBUTING MAINTAINERS README TODO doc/FAQ.txt doc/examples/*.conf
-%attr(755,root,root) %{_bindir}/*
+%doc AUTHORS CONTRIBUTING MAINTAINERS README  doc/FAQ.txt doc/examples/*.conf
+%attr(755,root,root) %{_bindir}/lxc-attach
+%attr(755,root,root) %{_bindir}/lxc-autostart
+%attr(755,root,root) %{_bindir}/lxc-cgroup
+%attr(755,root,root) %{_bindir}/lxc-checkconfig
+%attr(755,root,root) %{_bindir}/lxc-checkpoint
+%attr(755,root,root) %{_bindir}/lxc-clone
+%attr(755,root,root) %{_bindir}/lxc-config
+%attr(755,root,root) %{_bindir}/lxc-console
+%attr(755,root,root) %{_bindir}/lxc-create
+%attr(755,root,root) %{_bindir}/lxc-destroy
+%attr(755,root,root) %{_bindir}/lxc-execute
+%attr(755,root,root) %{_bindir}/lxc-freeze
+%attr(755,root,root) %{_bindir}/lxc-info
+%attr(755,root,root) %{_bindir}/lxc-monitor
+%attr(755,root,root) %{_bindir}/lxc-snapshot
+%attr(755,root,root) %{_bindir}/lxc-start
+%attr(755,root,root) %{_bindir}/lxc-stop
+%attr(755,root,root) %{_bindir}/lxc-unfreeze
+%attr(755,root,root) %{_bindir}/lxc-unshare
+%attr(755,root,root) %{_bindir}/lxc-usernsexec
+%attr(755,root,root) %{_bindir}/lxc-wait
+%attr(755,root,root) %{_sbindir}/init.lxc
 %attr(755,root,root) %{_libdir}/liblxc.so.*.*.*
 %attr(755,root,root) %{_libdir}/liblxc.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/liblxc.so.0
-%{_mandir}/man?/lxc*
+%attr(755,root,root) %ghost %{_libdir}/liblxc.so.1
+%attr(754,root,root) /etc/rc.d/init.d/lxc
+%attr(754,root,root) /etc/rc.d/init.d/lxc-net
+
+%{systemdunitdir}/lxc.service
+%{systemdunitdir}/lxc-net.service
+%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/rootfs
+%{_libdir}/%{name}/rootfs/README
+%attr(755,root,root) %{_libdir}/%{name}/lxc-apparmor-load
+%attr(755,root,root) %{_libdir}/%{name}/lxc-containers
+%attr(755,root,root) %{_libdir}/%{name}/lxc-devsetup
+%attr(755,root,root) %{_libdir}/%{name}/lxc-monitord
+%attr(755,root,root) %{_libdir}/%{name}/lxc-net
+%attr(755,root,root) %{_libdir}/%{name}/lxc-user-nic
+%attr(755,root,root) %{_libdir}/%{name}/lxc_macvlan
+%dir %{_sysconfdir}/lxc
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc_macvlan
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/lxc
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/lxc/default.conf
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/lxc.functions
+# below has been removed in lxc-1.1.3
+#%attr(755,root,root) %{_datadir}/%{name}/lxc-restore-net
+%dir %{_datadir}/%{name}/config
+%{_datadir}/%{name}/config/archlinux.*.conf
+%{_datadir}/%{name}/config/centos.*.conf
+%{_datadir}/%{name}/config/common.conf
+%dir %{_datadir}/%{name}/config/common.conf.d
+%{_datadir}/%{name}/config/common.conf.d/README
+%{_datadir}/%{name}/config/common.seccomp
+%{_datadir}/%{name}/config/debian.*.conf
+%{_datadir}/%{name}/config/fedora.*.conf
+%{_datadir}/%{name}/config/gentoo.*.conf
+%{_datadir}/%{name}/config/opensuse.*.conf
+%{_datadir}/%{name}/config/openwrt.*.conf
+%{_datadir}/%{name}/config/oracle.*.conf
+%{_datadir}/%{name}/config/plamo.*.conf
+%{_datadir}/%{name}/config/ubuntu-cloud.*.conf
+%{_datadir}/%{name}/config/ubuntu.*.conf
+%{_datadir}/%{name}/config/userns.conf
+%dir %{_datadir}/%{name}/hooks
+%dir %{_datadir}/%{name}/selinux
+%{_datadir}/%{name}/selinux/*
+%dir %{_datadir}/%{name}/templates
+%attr(755,root,root) %{_datadir}/%{name}/hooks/clonehostname
+%attr(755,root,root) %{_datadir}/%{name}/hooks/mount*
+%attr(755,root,root) %{_datadir}/%{name}/hooks/squid-deb-proxy-client
+%attr(755,root,root) %{_datadir}/%{name}/hooks/ubuntu-cloud-prep
+%attr(755,root,root) %{_datadir}/%{name}/templates/lxc-*
+%{_mandir}/man1/lxc-attach.1*
+%{_mandir}/man1/lxc-autostart.1*
+%{_mandir}/man1/lxc-cgroup.1*
+%{_mandir}/man1/lxc-checkconfig.1*
+%{_mandir}/man1/lxc-checkpoint.1*
+%{_mandir}/man1/lxc-clone.1*
+%{_mandir}/man1/lxc-config.1*
+%{_mandir}/man1/lxc-console.1*
+%{_mandir}/man1/lxc-create.1*
+%{_mandir}/man1/lxc-destroy.1*
+%{_mandir}/man1/lxc-execute.1*
+%{_mandir}/man1/lxc-freeze.1*
+%{_mandir}/man1/lxc-info.1*
+%{_mandir}/man1/lxc-monitor.1*
+%{_mandir}/man1/lxc-snapshot.1*
+%{_mandir}/man1/lxc-start.1*
+%{_mandir}/man1/lxc-stop.1*
+%{_mandir}/man1/lxc-unfreeze.1*
+%{_mandir}/man1/lxc-unshare.1*
+%{_mandir}/man1/lxc-user-nic.1*
+%{_mandir}/man1/lxc-usernsexec.1*
+%{_mandir}/man1/lxc-wait.1*
+%{_mandir}/man5/lxc-usernet.5*
+%{_mandir}/man5/lxc.conf.5*
+%{_mandir}/man5/lxc.container.conf.5*
+%{_mandir}/man5/lxc.system.conf.5*
+%{_mandir}/man7/lxc.7*
+%lang(ja) %{_mandir}/ja/man1/lxc*.1*
+%lang(ja) %{_mandir}/ja/man5/lxc-usernet.5*
+%lang(ja) %{_mandir}/ja/man5/lxc.conf.5*
+%lang(ja) %{_mandir}/ja/man5/lxc.container.conf.5*
+%lang(ja) %{_mandir}/ja/man5/lxc.system.conf.5*
+%lang(ja) %{_mandir}/ja/man7/lxc.7*
+%exclude %{_mandir}/ja/man1/lxc-device.1*
+%exclude %{_mandir}/ja/man1/lxc-ls.1*
+%exclude %{_mandir}/ja/man1/lxc-start-ephemeral.1*
+%exclude %{_mandir}/ja/man1/lxc-top.1*
+
+
+%if %{without python}
+# legacy version
+%attr(755,root,root) %{_bindir}/lxc-ls
+%{_mandir}/man1/lxc-ls.1*
+%endif
+
 %dir %{configpath}
 %dir %{configpath}
-%attr(755,root,root) %{_libdir}/lxc-init
+%dir %{configpath}snap
+%dir %attr(750,root,root) /var/log/lxc
+%dir %attr(750,root,root) /var/cache/lxc
 
 %files devel
 %defattr(644,root,root,755)
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/lxc
 %attr(755,root,root) %{_libdir}/liblxc.so
 %attr(755,root,root) %{_libdir}/liblxc.so
+%{_includedir}/lxc
 %{_pkgconfigdir}/lxc.pc
 %{_pkgconfigdir}/lxc.pc
+
+%if %{with lua}
+%files -n lua-lxc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/lxc-top
+%dir %{_libdir}/lua/lxc
+%attr(755,root,root) %{_libdir}/lua/lxc/core.so
+%{_datadir}/lua/lxc.lua
+%{_mandir}/man1/lxc-top.1*
+%lang(ja) %{_mandir}/ja/man1/lxc-top.1*
+%endif
+
+%if %{with python}
+%files -n python3-lxc
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/lxc-device
+%attr(755,root,root) %{_bindir}/lxc-ls
+%attr(755,root,root) %{_bindir}/lxc-start-ephemeral
+%{py3_sitedir}/lxc
+%attr(755,root,root) %{py3_sitedir}/_lxc.cpython-*.so
+%{py3_sitedir}/_lxc-0.1-py*.egg-info
+%{_mandir}/man1/lxc-device.1*
+%{_mandir}/man1/lxc-ls.1*
+%{_mandir}/man1/lxc-start-ephemeral.1*
+%lang(ja) %{_mandir}/ja/man1/lxc-device.1*
+%lang(ja) %{_mandir}/ja/man1/lxc-ls.1*
+%lang(ja) %{_mandir}/ja/man1/lxc-start-ephemeral.1*
+%endif
+
+%files -n bash-completion-%{name}
+%defattr(644,root,root,755)
+/etc/bash_completion.d/lxc
This page took 0.057858 seconds and 4 git commands to generate.