Add bwlimit and cpulimit modules to Python RPM
[util-vserver.git] / util-vserver.spec
1 %define name util-vserver
2 %define version 0.30
3 %define release 14.planetlab%{?date:.%{date}}
4
5 Vendor: PlanetLab
6 Packager: PlanetLab Central <support@planet-lab.org>
7 Distribution: PlanetLab 3.0
8 URL: http://cvs.planet-lab.org/cvs/util-vserver
9
10 Summary:        Linux virtual server utilities
11 Name:           %{name}
12 Version:        %{version}
13 Release:        %{release}
14 Epoch:          0
15 Copyright:      GPL
16 Group:          System Environment/Base
17 Source0:        http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
18 Provides:       %name-devel = %epoch:%version-%release
19 BuildRoot:      %_tmppath/%name-%version-%release-root
20 Provides:       vserver = %epoch:%version-%release
21 Conflicts:      vserver < %epoch:%version-%release
22 Conflicts:      vserver > %epoch:%version-%release
23 BuildRequires:  e2fsprogs-devel
24
25 %package linuxconf
26 Summary:        Linuxconf administration modules for vservers
27 Group:          Applications/System
28 Requires:       %name = %epoch:%version-%release
29 Provides:       vserver-admin = %epoch:%version-%release
30 Conflicts:      vserver-admin < %epoch:%version-%release
31 Conflicts:      vserver-admin > %epoch:%version-%release
32
33 %description
34 This package provides the components and a framework to setup virtual
35 servers.  A virtual server runs inside a linux server. It is nevertheless
36 highly independent. As such, you can run various services with normal
37 configuration. The various vservers can't interact with each other and
38 can't interact with services in the main server.
39
40 This requires a special kernel supporting the new new_s_context and
41 set_ipv4root system call.
42
43
44 %description linuxconf
45 This package provides the components to setup virtual servers with
46 linuxconf.
47
48
49 %prep
50 %setup -q
51 aclocal -I m4
52 autoconf
53 automake --add-missing
54 # bootstrap to avoid BuildRequires of kernel-source
55 for linux in $RPM_BUILD_DIR/linux-* /lib/modules/`uname -r`/build ; do
56    [[ -d $linux/include ]] && %configure --with-kerneldir=$linux --enable-linuxconf && break
57 done
58
59
60 %build
61 make
62
63 %install
64 rm -rf $RPM_BUILD_ROOT
65 %__make DESTDIR=$RPM_BUILD_ROOT install
66
67 mkdir -p $RPM_BUILD_ROOT/vservers
68 test "%_initrddir" = %_sysconfdir/init.d || {
69         mkdir -p ${RPM_BUILD_ROOT}%_initrddir
70         mv ${RPM_BUILD_ROOT}%_sysconfdir/init.d/* ${RPM_BUILD_ROOT}%_initrddir/
71 }
72
73 mkdir -p ${RPM_BUILD_ROOT}/bin
74 ln -f ${RPM_BUILD_ROOT}%_sbindir/vsh ${RPM_BUILD_ROOT}/bin/vsh
75
76 install -D -m 644 sysv/vcached.logrotate ${RPM_BUILD_ROOT}/etc/logrotate.d/vcached
77
78 mkdir -p $RPM_BUILD_ROOT/etc/cron.d
79 . sysv/vcached.conf
80 echo "*/$(($period / 60)) * * * * root %_sbindir/vcached -s -f -l $logfile" > $RPM_BUILD_ROOT/etc/cron.d/vcached
81
82 %__make -C python INSTALL_ROOT=$RPM_BUILD_ROOT install
83
84 %clean
85 rm -rf $RPM_BUILD_ROOT
86
87 %pre
88 # 1 = install, 2 = upgrade/reinstall
89 if [ $1 -eq 2 ] ; then
90     # vcached no longer runs as a daemon
91     [ "`/sbin/runlevel`" = "unknown" ] || service vcached stop || :
92 fi
93
94 %post
95 # vcached no longer runs as a daemon
96 chkconfig vcached off
97 chkconfig --del vcached
98
99 chkconfig --add vservers
100 chkconfig vservers on
101
102 if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then
103     echo /bin/vsh >> /etc/shells
104 fi
105
106 # make sure barrier bit is set on /vservers to prevent chroot() escapes
107 %_libdir/%name/setattr --barrier /vservers
108
109 %postun
110 # 0 = erase, 1 = upgrade
111 if [ "$1" = 0 ] ; then
112     perl -i -n -e 'next if /^\/bin\/vsh$/; print' /etc/shells
113 fi
114
115 %preun
116 # 0 = erase, 1 = upgrade
117 if [ $1 -eq 0 ] ; then
118     [ "`/sbin/runlevel`" = "unknown" ] || service vservers stop
119     chkconfig vservers off
120     chkconfig --del vservers
121 fi
122
123 %files
124 %defattr(-,root,root)
125 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
126 %_sbindir/*
127 %_libdir/%name
128 %_includedir/vserver.h
129 %_libdir/libvserver.a
130 %_mandir/man8/*
131 %config %_initrddir/*
132 %config(noreplace) /etc/vservers.conf
133 %config(noreplace) /etc/vcached.conf
134 /etc/logrotate.d/vcached
135 /etc/cron.d/vcached
136 %dir /etc/vservers
137 %attr(0,root,root) %dir /vservers
138 %attr(4755,root,root) /usr/sbin/vsh
139 %attr(4755,root,root) /bin/vsh
140
141 %exclude %_sbindir/newvserver
142 %exclude %_mandir/man8/newvserver*
143
144 %files linuxconf
145 %defattr(-,root,root)
146 %config(noreplace) /etc/vservers/newvserver.defaults
147 %_sbindir/newvserver
148 %_mandir/man8/newvserver*
149
150
151
152 %package py23
153 Summary: Python modules for manipulating vservers
154 Group: Applications/System
155 Requires: python /usr/lib/util-vserver/util-vserver-vars util-python
156
157 %description py23
158 Python modules for manipulating vservers.  Provides a superset of the
159 functionality of the vserver script (at least will do in the future),
160 but more readily accessible from Python code.
161
162 %files py23
163 %defattr(0644,root,root)
164 /usr/lib/python2.3/site-packages/bwlimit.py
165 /usr/lib/python2.3/site-packages/bwlimit.pyc
166 /usr/lib/python2.3/site-packages/cpulimit.py
167 /usr/lib/python2.3/site-packages/cpulimit.pyc
168 /usr/lib/python2.3/site-packages/util_vserver_vars.py
169 /usr/lib/python2.3/site-packages/vduimpl.so
170 /usr/lib/python2.3/site-packages/vserver.py
171 /usr/lib/python2.3/site-packages/vserver.pyc
172 /usr/lib/python2.3/site-packages/vserverimpl.so
173
174
175
176 %changelog
177 * Thu Jul 21 2005 Steve Muir <smuir@cs.princeton.edu>
178 - add bwlimit and cpulimit modules
179
180 * Mon Jun 20 2005 Steve Muir <smuir@cs.princeton.edu>
181 - import Marc's vdu implementation
182
183 * Wed Jun 15 2005 Steve Muir <smuir@cs.princeton.edu>
184 - 'vserver-init start' functionality subsumed by Node Manager
185
186 * Thu Jun 02 2005 Marc E. Fiuczynski <mef@cs.princeton.edu>
187 - Fixed vlimit command
188
189 * Wed May 25 2005 Steve Muir <smuir@cs.princeton.edu>
190 - add Python modules for manipulating vservers
191
192 * Thu Apr  7 2005 Steve Muir <smuir@cs.princeton.edu>
193 - vuserdel changes: don't shutdown vserver, just kill all processes;
194   unmount all mountpoints in vserver before deleting
195
196 * Fri Nov 19 2004 Mark Huang <mlhuang@cs.princeton.edu>
197 - vcached no longer runs as a daemon
198 - do not restart vservers when package is upgraded
199
200 * Wed Nov 17 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-6.planetlab
201 + planetlab-3_0-rc4
202 - PL2445
203 - Both vcached and vuseradd now print a warning message when vbuild
204   succeeds but the resulting new vserver image is smaller in size than
205   the vserver-reference image.
206 - vuseradd: clean up some more junk on failure
207
208 * Tue Nov 16 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-5.planetlab
209 + planetlab-3_0-rc3
210 - PL3026: This is the upgraded version of vdu that maintains an
211   internal hash table of files with a nlink count > 1.  Only if vdu
212   sees all hard links to a particular inode does it add its size and
213   block count to the total.
214
215 * Fri Nov 12 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-4.planetlab
216 - PL2445 Use -b option to du to avoid rounding errors.
217
218 * Sat Nov  6 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-3.planetlab
219 + planetlab-3_0-rc2
220 - don't create the symbolic link /home/slice/.ssh, this is not how
221   pl_sshd works
222
223 * Mon Oct 11 2004 Marc E. Fiuczynski <mef@cs.princeton.edu>
224 - added vsh
225
226 * Wed Aug 11 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.29-1.planetlab
227 - initial PlanetLab 3.0 build.
228
229 * Thu Mar 18 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.3-0
230 - removed '%%doc doc/FAQ.txt' since file does not exist anymore
231
232 * Fri Sep 26 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.4-1
233 - initial build.
234