lxc.spec.in revision 2b3b608310ae84b9574cc93a7dacf36b8dcc9926
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# lxc: linux Container library
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# (C) Copyright IBM Corp. 2007, 2008
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# Authors:
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# Daniel Lezcano <dlezcano at fr.ibm.com>
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# This library is free software; you can redistribute it and/or
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# modify it under the terms of the GNU Lesser General Public
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# License as published by the Free Software Foundation; either
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# version 2.1 of the License, or (at your option) any later version.
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# This library is distributed in the hope that it will be useful,
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# but WITHOUT ANY WARRANTY; without even the implied warranty of
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# Lesser General Public License for more details.
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# You should have received a copy of the GNU Lesser General Public
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# License along with this library; if not, write to the Free Software
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%define _unpackaged_files_terminate_build 0
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%define RELEASE 1
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%define rel %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE: %RELEASE}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# Arguments that can be passed to the rpm builder:
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# --define 'confargs <extra args to configure args>' (def. '')
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes#
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{!?confargs: %{expand:%%define confargs ''}}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# What kernel are we building for?
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{!?kernel: %{expand:%%define kernel %(uname -r)}}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%define _prefix /usr
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesName: @PACKAGE@
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesVersion: @VERSION@
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesRelease: %{rel}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesURL: http://lxc.sourceforge.net
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesSummary: %name
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesGroup: Applications/System
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesLicense: LGPL
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesSource: %name/%name-%version.tar.gz
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesBuildRoot: %_tmppath/%name-%version-root
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%description
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesThe package "%name" provides the command lines to create and manage
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholescontainers. It contains a full featured container with the isolation
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes/ virtualization of the pids, the ipc, the utsname, the mount points,
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes/proc, /sys, the network and it takes into account the control groups.
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesIt is very light, flexible, and provides a set of tools around the
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholescontainer like the monitoring with asynchronous events notification,
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesor the freeze of the container. This package is useful to create
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesVirtual Private Server, or to run isolated applications like bash or
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessshd.
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%package devel
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesRelease: %{rel}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesSummary: development library for %{name}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesRequires: libcap
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesGroup: Application/System
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%description devel
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesThe %{name}-devel package contains header files and library needed for
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesdevelopment of containers
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%prep
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%setup -q
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%build
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# I don't understand why but I have to specify this prefix :(
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%configure $args %{confargs} --prefix=/
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesncpus=`egrep -c "^cpu[0-9]+" /proc/stat || :`
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesmake -j$ncpus
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%install
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesrm -rf %{buildroot}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%clean
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesrm -rf %{buildroot}
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholeschmod ugo+w /var/lxc
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesPATH=$PATH:/usr/sbin:/sbin
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholeswhich setcap 2>&1 > /dev/null
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesRES=$?
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesif [ $RES != 0 ]; then
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t********************WARNING*************************"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t* The 'setcap' command was not found, this is not *"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t* a problem and the 'lxc' package is installed but *"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t* you will have to run the 'lxc' commands as root. *"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t* If you wish to run these commands as a non-root *"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t* user, you will need to install libcap-2 package *"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t* and reinstall lxc *"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes echo -e "\t****************************************************"
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholeselse
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessetcap cap_setpcap,cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes %{_bindir}/lxc-execute && \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessetcap cap_setpcap,cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes %{_bindir}/lxc-start && \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessetcap cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes %{_bindir}/lxc-restart && \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessetcap cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes %{_bindir}/lxc-unshare && \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessetcap cap_sys_admin=ep \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes %{_bindir}/lxc-init &&
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholessetcap cap_sys_admin=ep \
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes %{_bindir}/lxc-netstat
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholesfi
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%files
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%defattr(-,root,root)
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{_sysconfdir}/%{name}/*
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{_libdir}/*.so*
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{_bindir}/*
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{_mandir}/*
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# %post -p /sbin/ldconfig
0b2a6b63977ab27352a0b525bdad1e1982a1c0b1bnicholes# %postun -p /sbin/ldconfig
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%files devel
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%defattr(-,root,root)
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{_includedir}/%{name}/*
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%{_libdir}/*.a
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes%changelog
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes* Sun Aug 3 2008 Daniel Lezcano <dlezcano@fr.ibm.com> - Version 0.1.0
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes- Initial RPM release.
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# Local variables:
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# mode: shell-script
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# sh-shell: rpm
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes# end:
e76fdcdfb8994ad70776526f50fa013b3e9a6033bnicholes