- set correct release number
[util-vserver.git] / util-vserver.spec
1 # $Id: util-vserver.spec.in,v 1.49 2005/07/15 19:06:58 ensc Exp $
2
3 ## This package understands the following switches:
4 ## --without dietlibc        ...   disable usage of dietlibc
5 ## --without xalan           ...   do not require/use the xalan xslt processor
6
7 %global confdir         %_sysconfdir/vservers
8 %global confdefaultdir  %confdir/.defaults
9 %global pkglibdir       %_libdir/%name
10 %global __chattr        /usr/bin/chattr
11 %global chkconfig       /sbin/chkconfig
12
13 %global _localstatedir  %_var
14
15
16 %{!?release_func:%global release_func() %1%{?dist}}
17
18 %define name util-vserver
19 %define version 0.30.208
20 %define release 1.planetlab%{?date:.%{date}}
21
22 %define _without_dietlibc 1
23 %define _without_xalan 1
24
25 Vendor: PlanetLab
26 Packager: PlanetLab Central <support@planet-lab.org>
27 Distribution: PlanetLab 3.0
28 URL: http://cvs.planet-lab.org/cvs/util-vserver
29
30 Summary:        Linux virtual server utilities
31 Name:           util-vserver
32 Version:        0.30.208
33 Release:        %{release}
34 License:        GPL
35 Group:          System Environment/Base
36 #URL:           http://savannah.nongnu.org/projects/util-vserver/
37 Source0:        http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
38 BuildRoot:      %_tmppath/%name-%version-%release-root
39 Requires:       init(%name)
40 Requires:       %name-core = %version-%release
41 Requires:       %name-lib  = %version-%release
42 Requires:       diffutils mktemp sed
43 Provides:       vserver = %version-%release
44 Obsoletes:      vserver < %version
45 BuildRequires:  mount vconfig gawk iproute iptables
46 BuildRequires:  gcc-c++ wget which diffutils
47 BuildRequires:  e2fsprogs-devel beecrypt-devel
48 BuildRequires:  doxygen tetex-latex
49 Requires(pre):          %pkglibdir
50 Requires(postun):       %pkglibdir
51 %{!?_without_dietlibc:BuildRequires:    dietlibc >= 0:0.25}
52 %{!?_without_xalan:BuildRequires:       xalan-j}
53
54 %package lib
55 Summary:                Dynamic libraries for util-vserver
56 Group:                  System Environment/Libraries
57
58 %package core
59 Summary:                The core-utilities for util-vserver
60 Group:                  Applications/System
61 Requires:               util-linux
62
63 %package build
64 Summary:                Tools which can be used to build vservers
65 Group:                  Applications/System
66 Requires:               rpm wget binutils tar e2fsprogs
67 Requires:               %name = %version-%release
68 Requires(pre):          %confdir
69 Requires(postun):       %confdir
70
71 %ifarch %ix86
72 Requires:               apt
73 %endif
74
75 %package sysv
76 Summary:                SysV-initscripts for vserver
77 Group:                  System Environment/Base
78 Provides:               init(%name) = sysv
79 Requires:               make diffutils
80 Requires:               initscripts
81 Requires:               %name = %version-%release
82 Requires(post):         %chkconfig
83 Requires(preun):        %chkconfig
84 Requires(pre):          %_initrddir %pkglibdir
85 requires(postun):       %_initrddir %pkglibdir
86
87 %package legacy
88 Summary:                Legacy utilities for util-vserver
89 Group:                  Applications/System
90 Requires:               %name = %version-%release
91 Requires(post):         %chkconfig
92 Requires(preun):        %chkconfig
93 Requires(pre):          %_initrddir %pkglibdir
94 requires(postun):       %_initrddir %pkglibdir
95
96 %package devel
97 Summary:                Header-files and libraries needed to develop vserver based applications
98 Group:                  Development/Libraries
99 Requires:               pkgconfig
100 Requires:               %name-lib = %version-%release
101
102 %if 0
103 %package py23
104 Summary:                Python modules for manipulating vservers
105 Group:                  Applications/System
106 Requires:               python %pkglibdir/util-vserver-vars util-python
107 %endif
108
109
110 %description
111 util-vserver provides the components and a framework to setup virtual
112 servers.  A virtual server runs inside a linux server. It is nevertheless
113 highly independent. As such, you can run various services with normal
114 configuration. The various vservers can't interact with each other and
115 can't interact with services in the main server.
116
117 This requires a special kernel supporting the new new_s_context and
118 set_ipv4root system call.
119
120 %description lib
121 util-vserver provides the components and a framework to setup virtual
122 servers.  A virtual server runs inside a linux server. It is nevertheless
123 highly independent. As such, you can run various services with normal
124 configuration. The various vservers can't interact with each other and
125 can't interact with services in the main server.
126
127 This package contains the shared libraries needed by all other
128 'util-vserver' subpackages.
129
130 %description core
131 util-vserver provides the components and a framework to setup virtual
132 servers.  A virtual server runs inside a linux server. It is nevertheless
133 highly independent. As such, you can run various services with normal
134 configuration. The various vservers can't interact with each other and
135 can't interact with services in the main server.
136
137 This package contains utilities which are required to communicate with
138 the Linux-Vserver enabled kernel.
139
140
141 %description build
142 util-vserver provides the components and a framework to setup virtual
143 servers.  A virtual server runs inside a linux server. It is nevertheless
144 highly independent. As such, you can run various services with normal
145 configuration. The various vservers can't interact with each other and
146 can't interact with services in the main server.
147
148 This package contains utilities which assist in building Vservers.
149
150 %description sysv
151 util-vserver provides the components and a framework to setup virtual
152 servers.  A virtual server runs inside a linux server. It is nevertheless
153 highly independent. As such, you can run various services with normal
154 configuration. The various vservers can't interact with each other and
155 can't interact with services in the main server.
156
157 This package contains the SysV initscripts which start and stop
158 VServers and related tools.
159
160
161 %description legacy
162 util-vserver provides the components and a framework to setup virtual
163 servers.  A virtual server runs inside a linux server. It is nevertheless
164 highly independent. As such, you can run various services with normal
165 configuration. The various vservers can't interact with each other and
166 can't interact with services in the main server.
167
168 This package contains the tools which are needed to work with VServers
169 having an old-style configuration.
170
171
172 %description devel
173 util-vserver provides the components and a framework to setup virtual
174 servers.  A virtual server runs inside a linux server. It is nevertheless
175 highly independent. As such, you can run various services with normal
176 configuration. The various vservers can't interact with each other and
177 can't interact with services in the main server.
178
179 This package contains header files and libraries which are needed to
180 develop VServer related applications.
181
182
183 %if 0
184 %description py23
185 Python modules for manipulating vservers.  Provides a superset of the
186 functionality of the vserver script (at least will do in the future),
187 but more readily accessible from Python code.
188 %endif
189
190
191 %prep
192 %setup -q
193
194 aclocal -I m4
195 autoconf
196 automake --add-missing
197
198 %build
199 %configure --with-initrddir=%_initrddir --enable-release \
200            %{?_without_dietlibc:--disable-dietlibc}
201
202 %__make %{?_smp_mflags} all
203 %__make %{?_smp_mflags} doc
204
205
206 %install
207 rm -rf $RPM_BUILD_ROOT
208 %__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
209
210 rm -f $RPM_BUILD_ROOT/%_libdir/*.la
211
212 MANIFEST_CONFIG='%config' \
213 MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
214 contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
215
216 %if 0
217 # build python bindings
218 %__make -C python INSTALL_ROOT=$RPM_BUILD_ROOT install
219 %endif
220
221
222 %check || :
223 %__make check
224
225
226 %clean
227 rm -rf $RPM_BUILD_ROOT
228
229
230 %post
231 test -d /vservers      || mkdir -m0000 /vservers
232 test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
233
234 f="%confdefaultdir/vdirbase"; test -L "$f" -o -e "$f" || ln -s /vservers                        "$f"
235 f="%confdefaultdir/run.rev";  test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
236
237 %_sbindir/setattr --barrier /vservers || :
238
239 # add /bin/vsh to list of secure shells
240 if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then
241     echo /bin/vsh >> /etc/shells
242 fi
243
244
245 %postun
246 # 0 = erase, 1 = upgrade
247 if [ "$1" = 0 ] ; then
248     perl -i -n -e 'next if /^\/bin\/vsh$/; print' /etc/shells
249 fi
250
251
252 %post   lib -p /sbin/ldconfig
253 %postun lib -p /sbin/ldconfig
254
255
256 %post sysv
257 #%chkconfig --add vservers-default
258 #%chkconfig --add vprocunhide
259 # PlanetLab Node Manager takes care of starting and stopping VServers
260 %chkconfig --del vservers-default
261 # PlanetLab does not require /proc security
262 %chkconfig --del vprocunhide
263
264 %preun sysv
265 #test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
266
267 #test "$1" != 0 || %chkconfig --del vprocunhide
268 #test "$1" != 0 || %chkconfig --del vservers-default
269
270
271 %postun sysv
272 #test "$1" = 0  || %_initrddir/vprocunhide condrestart >/dev/null || :
273
274
275 %triggerin build -- fedora-release
276 function copy()
277 {
278     base=$1
279     shift
280
281     for i; do
282         test -r "$i" || continue
283
284         target=%confdir/.distributions/.common/pubkeys/$base-$(basename "$i")
285         cp -a "$i" "$target"
286     done
287 }
288 copy fedora /usr/share/doc/fedora-release-*/RPM-GPG-*
289 copy fedora /etc/pki/rpm-gpg/RPM-GPG-*
290
291
292 %preun build
293 test "$1" != 0 || rm -f %confdir/.distributions/.common/pubkeys/fedora-*
294
295
296 ## Temporary workaround to remove old v_* files; it will conflict
297 ## somehow with the -legacy package but can be fixed by reinstalling
298 ## this package.
299 ## TODO: remove me in the final .spec file
300 %define v_services      httpd named portmap sendmail smb sshd xinetd gated
301 %triggerun sysv -- util-vserver-sysv < 0.30.198
302 for i in %v_services; do
303         %chkconfig --del v_$i || :
304 done
305
306
307 %post legacy
308 # PlanetLab Node Manager takes care of starting and stopping VServers
309 #%chkconfig --add rebootmgr
310 #%chkconfig --add vservers-legacy
311
312 # PlanetLab does not require these legacy services
313 #for i in %v_services; do
314 #       %chkconfig --add v_$i
315 #done
316
317
318 %preun legacy
319 #test "$1" != 0 || %_initrddir/rebootmgr   stop &>/dev/null || :
320
321 #test "$1" != 0 || for i in %v_services; do
322 #       %chkconfig --del v_$i
323 #done
324
325 #test "$1" != 0 || %chkconfig --del rebootmgr
326 #test "$1" != 0 || %chkconfig --del vservers-legacy
327
328 %postun legacy
329 #test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
330
331
332 %files -f %name-base.list
333 %defattr(-,root,root,-)
334 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
335 %doc doc/*.html doc/*.css
336 /sbin/vshelper
337 %dir %confdir
338 %dir %confdefaultdir
339 %dir %confdefaultdir/apps
340 %dir %confdefaultdir/files
341 %dir %pkglibdir/defaults
342 %ghost %confdefaultdir/vdirbase
343 %ghost %confdefaultdir/run.rev
344
345 %dir %_localstatedir/run/vservers
346 %dir %_localstatedir/run/vservers.rev
347 %dir %_localstatedir/run/vshelper
348
349
350 %files lib -f %name-lib.list
351 %files sysv -f %name-sysv.list
352
353
354 %files core -f %name-core.list
355 %defattr(-,root,root,-)
356 %dir %pkglibdir
357
358
359 %files build -f %name-build.list
360 %defattr(-,root,root,-)
361 %doc contrib/yum*.patch
362 %dir %confdir/.distributions
363 %dir %confdir/.distributions/*
364 %dir %confdir/.distributions/*/apt
365 %dir %confdir/.distributions/.common
366 %dir %confdir/.distributions/.common/pubkeys
367 %dir %confdefaultdir/apps/vunify
368 %dir %confdefaultdir/apps/vunify/hash
369
370
371 %files legacy -f %name-legacy.list
372 %defattr(-,root,root,-)
373 %dir %pkglibdir/legacy
374
375
376 %files devel -f %name-devel.list
377 %defattr(-,root,root,-)
378 %doc lib/apidoc/latex/refman.pdf
379 %doc lib/apidoc/html
380
381
382 %if 0
383 %files py23
384 %defattr(0644,root,root)
385 /usr/lib/python2.3/site-packages/bwlimit.py
386 /usr/lib/python2.3/site-packages/bwlimit.pyc
387 /usr/lib/python2.3/site-packages/cpulimit.py
388 /usr/lib/python2.3/site-packages/cpulimit.pyc
389 /usr/lib/python2.3/site-packages/util_vserver_vars.py
390 /usr/lib/python2.3/site-packages/vduimpl.so
391 /usr/lib/python2.3/site-packages/vserver.py
392 /usr/lib/python2.3/site-packages/vserver.pyc
393 /usr/lib/python2.3/site-packages/vserverimpl.so
394 %endif
395
396
397 %changelog
398 * Sat Aug 20 2005 Mark Huang <mlhuang@cs.princeton.edu>
399 - upgrade to util-vserver-0.30.208
400 - forward-port vbuild and legacy support until we can find a suitable
401   replacement
402 - make vsh use new vc_create_context() call
403
404 * Thu Jul 28 2005 Steve Muir <smuir@cs.princeton.edu>
405 - add support for static vserver IDs to vuseradd and vuserdel
406
407 * Thu Jul 21 2005 Steve Muir <smuir@cs.princeton.edu>
408 - add bwlimit and cpulimit modules
409
410 * Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1
411 - require the -lib subpackage by -devel
412 - copy GPG keys from /etc/pki/rpm-gpg/
413
414 * Mon Jun 20 2005 Steve Muir <smuir@cs.princeton.edu>
415 - import Marc's vdu implementation
416
417 * Wed Jun 15 2005 Steve Muir <smuir@cs.princeton.edu>
418 - 'vserver-init start' functionality subsumed by Node Manager
419
420 * Thu Jun 02 2005 Marc E. Fiuczynski <mef@cs.princeton.edu>
421 - Fixed vlimit command
422
423 * Wed May 25 2005 Steve Muir <smuir@cs.princeton.edu>
424 - add Python modules for manipulating vservers
425
426 * Fri Apr 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.206-1
427 - added patches to make yum work in chroot environments
428 - version 0.30.206
429
430 * Thu Apr  7 2005 Steve Muir <smuir@cs.princeton.edu>
431 - vuserdel changes: don't shutdown vserver, just kill all processes;
432   unmount all mountpoints in vserver before deleting
433
434 * Thu Mar 24 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.205-0
435 - added some %%descriptions
436 - copy GPG keys from the system into the confdir
437 - buildrequire dietlibc-0.25
438 - BuildRequire beecrypt-devel
439 - cleanups
440 - use %%global instead of %%define
441 - removed 'run.rev' as a vserver-local variable and made it a system-wide setting
442
443 * Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
444 - updated BuildRequires:
445 - use 'setattr --barrier' instead of 'chattr +t' in the %%post scriptlet
446 - moved the v_* initscripts to legacy
447 - do not ship the /vservers directory itself; as it is immutable, the
448   extraction will fail else
449
450 * Fri Nov 19 2004 Mark Huang <mlhuang@cs.princeton.edu>
451 - vcached no longer runs as a daemon
452 - do not restart vservers when package is upgraded
453
454 * Wed Nov 17 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-6.planetlab
455 + planetlab-3_0-rc4
456 - PL2445
457 - Both vcached and vuseradd now print a warning message when vbuild
458   succeeds but the resulting new vserver image is smaller in size than
459   the vserver-reference image.
460 - vuseradd: clean up some more junk on failure
461
462 * Tue Nov 16 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-5.planetlab
463 + planetlab-3_0-rc3
464 - PL3026: This is the upgraded version of vdu that maintains an
465   internal hash table of files with a nlink count > 1.  Only if vdu
466   sees all hard links to a particular inode does it add its size and
467   block count to the total.
468
469 * Fri Nov 12 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-4.planetlab
470 - PL2445 Use -b option to du to avoid rounding errors.
471
472 * Sat Nov  6 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-3.planetlab
473 + planetlab-3_0-rc2
474 - don't create the symbolic link /home/slice/.ssh, this is not how
475   pl_sshd works
476
477 * Mon Oct 11 2004 Marc E. Fiuczynski <mef@cs.princeton.edu>
478 - added vsh
479
480 * Thu Sep  9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
481 - documented switches for 'rpmbuild'
482
483 * Wed Aug 11 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.29-1.planetlab
484 - initial PlanetLab 3.0 build.
485
486 * Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
487 - (re)added the MANIFEST_* variables which were lost some time ago;
488   this will preserve %%config files...
489
490 * Mon Mar 15 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.202-0
491 - use file-list for sysv scripts also
492
493 * Sat Mar  6 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.198-0
494 - added vprocunhide-service support
495 - added doxygen support
496 - updated Requires:
497
498 * Wed Oct  1 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.5-0
499 - Initial build.