# # lxc: linux Container library # # (C) Copyright IBM Corp. 2007, 2008 # # Authors: # Daniel Lezcano # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA %define _unpackaged_files_terminate_build 0 %define RELEASE 1 %define rel %{?CUSTOM_RELEASE} %{!?CUSTOM_RELEASE: %RELEASE} # # Arguments that can be passed to the rpm builder: # # --define 'confargs ' (def. '') # %{!?confargs: %{expand:%%define confargs ''}} # What kernel are we building for? %{!?kernel: %{expand:%%define kernel %(uname -r)}} %define _prefix /usr Name: @PACKAGE@ Version: @VERSION@ Release: %{rel} Packager: URL: http://lxc.sourceforge.net Summary: %name Group: Applications/System License: LGPL Source: %name/%name-%version.tar.gz BuildRoot: %_tmppath/%name-%version-root %description The package "%name" provides the command lines to create and manage containers. It contains a full featured container with the isolation / virtualization of the pids, the ipc, the utsname, the mount points, /proc, /sys, the network and it takes into account the control groups. It is very light, flexible, and provides a set of tools around the container like the monitoring with 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 devel Release: %{rel} Summary: development library for %{name} Requires: libcap Group: Application/System %description devel The %{name}-devel package contains header files and library needed for development of containers %prep %setup -q %build # I don't understand why but I have to specify this prefix :( %configure --prefix=/ $args ncpus=`egrep -c "^cpu[0-9]+" /proc/stat || :` make -j$ncpus %install rm -rf %{buildroot} %makeinstall %clean rm -rf %{buildroot} %post if [ -d /var/lxc ]; then for i in $(ls -1 /var/lxc); do chmod -fR go-rwx /var/lxc/$i done mv /var/lxc /var/lxc.rpm-$$ fi mkdir -p /var/lxc if [ -d /var/lxc.rpm-$$ ]; then for i in $(ls -1 /var/lxc.rpm-$$); do cp -a /var/lxc.rpm-$$/$i /var/lxc done fi chmod ugo+w /var/lxc PATH=$PATH:/usr/sbin:/sbin which setcap 2>&1 > /dev/null RES=$? if [ $RES != 0 ]; then echo -e "\t********************WARNING*************************" echo -e "\t* The 'setcap' command was not found, this is not *" echo -e "\t* a problem and the 'lxc' package is installed but *" echo -e "\t* you will have to run the 'lxc' commands as root. *" echo -e "\t* If you wish to run these commands as a non-root *" echo -e "\t* user, you will need to install libcap-2 package *" echo -e "\t* and reinstall lxc *" echo -e "\t****************************************************" else setcap cap_setpcap,cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep %{_bindir}/lxc-execute && \ setcap cap_setpcap,cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep %{_bindir}/lxc-start && \ setcap cap_net_admin,cap_net_raw,cap_sys_admin,cap_dac_override=ep %{_bindir}/lxc-restart && \ setcap cap_sys_admin=ep %{_bindir}/lxc-init fi %files %defattr(-,root,root) %{_sysconfdir}/%{name}/* %{_libdir}/*.so* %{_bindir}/* %{_mandir}/* %files devel %defattr(-,root,root) %{_includedir}/%{name}/* %{_libdir}/*.a %post devel %changelog * Sun Aug 3 2008 Daniel Lezcano - Version 0.1.0 - Initial RPM release. # Local variables: # mode: shell-script # sh-shell: rpm # end: