Setting tag util-vserver-0.30.216-18
[util-vserver.git] / util-vserver.spec
1
2 %if "%{?_without_python:1}" != "1"
3 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
4 %endif
5
6 ## This package understands the following switches:
7 ## --without dietlibc        ...   disable usage of dietlibc
8 ## --with xalan              ...   require/use the xalan xslt processor
9 ## --without doc             ...   disable doc generation
10 ## --with legacy             ...   enable the legacy APIs
11
12 %global confdir         %_sysconfdir/vservers
13 %global confdefaultdir  %confdir/.defaults
14 %global pkglibdir       %_libdir/%name
15 %global chkconfig       /sbin/chkconfig
16
17 %global _localstatedir  %_var
18
19 %global fullver         0.30.216-pre2939
20 %global modulever 0.30.216
21 %global ver             %( echo %fullver | sed 's/-.*//' )
22 %global subver          %( s=`echo %fullver | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} )
23
24 # for module-tools
25 %global module_version_varname modulever
26 %global taglevel 18
27
28 %{!?release_func:%global release_func() %1%{?dist}}
29
30 Summary:        Linux virtual server utilities
31 Name:           util-vserver
32 Version:        %ver
33 Release:        %taglevel
34 License:        GPL
35 Group:          System Environment/Base
36 URL:            http://linux-vserver.org/
37 Source0:        http://ftp.linux-vserver.org/pub/utils/util-vserver/%name-%fullver.tar.bz2
38 Source1:        fstab
39 Source2:        vprocunhide-files
40 Patch1: nomtab.patch
41 Patch2: upstart.patch
42 Patch3: sl.patch
43 BuildRoot:      %_tmppath/%name-%version-%release-root
44 Requires:       init(%name)
45 Requires:       %name-core = %version-%release
46 Requires:       %name-lib  = %version-%release
47 Requires:       diffutils mktemp sed
48 Provides:       vserver = %version-%release
49 Obsoletes:      vserver < %version
50 BuildRequires:  util-linux vconfig gawk /sbin/ip iptables
51 BuildRequires:  gcc-c++ wget which diffutils
52 BuildRequires:  e2fsprogs-devel e2fsprogs
53 %{!?_without_beecrypt:BuildRequires: beecrypt-devel}
54 %{?_without_beecrypt:BuildRequires: nss-devel}
55 BuildRequires:  e2fsprogs
56 %{!?_without_doc:BuildRequires: doxygen tetex-latex}
57 %{!?_without_python:BuildRequires: python python-devel ctags}
58 Requires(post):         %name-core
59 Requires(pre):          %pkglibdir
60 Requires(postun):       %pkglibdir
61 %{!?_without_dietlibc:BuildRequires:    dietlibc >= 0:0.25}
62 %{?_with_xalan:BuildRequires:   xalan-j}
63
64 %package lib
65 Summary:                Dynamic libraries for util-vserver
66 Group:                  System Environment/Libraries
67
68 %package core
69 Summary:                The core-utilities for util-vserver
70 Group:                  Applications/System
71 Requires:               util-linux
72
73 %package build
74 Summary:                Tools which can be used to build vservers
75 Group:                  Applications/System
76 Requires:               rpm wget binutils tar
77 Requires:               %name = %version-%release
78 Requires(pre):          %confdir
79 Requires(postun):       %confdir
80 Requires(post):         %name-core
81
82 %package sysv
83 Summary:                SysV-initscripts for vserver
84 Group:                  System Environment/Base
85 Provides:               init(%name) = sysv
86 Requires:               make diffutils
87 Requires:               initscripts
88 Requires:               %name = %version-%release
89 Requires(post):         %chkconfig
90 Requires(preun):        %chkconfig
91 Requires(pre):          %_initrddir %pkglibdir
92 requires(postun):       %_initrddir %pkglibdir
93
94 %package legacy
95 Summary:                Legacy utilities for util-vserver
96 Group:                  Applications/System
97 Requires:               %name = %version-%release
98 Requires(post):         %chkconfig
99 Requires(preun):        %chkconfig
100 Requires(pre):          %_initrddir %pkglibdir
101 requires(postun):       %_initrddir %pkglibdir
102
103 %package devel
104 Summary:                Header-files and libraries needed to develop vserver based applications
105 Group:                  Development/Libraries
106 Requires:               pkgconfig
107 Requires:               %name-lib = %version-%release
108
109 %package python
110 Summary:                Python bindings to develop vserver-based applications
111 Group:                  Development/Libraries
112 Requires:               %name-lib = %version-%release
113
114
115 %description
116 util-vserver provides the components and a framework to setup virtual
117 servers.  A virtual server runs inside a linux server. It is nevertheless
118 highly independent. As such, you can run various services with normal
119 configuration. The various vservers can't interact with each other and
120 can't interact with services in the main server.
121
122 This requires a special kernel supporting the new new_s_context and
123 set_ipv4root system call.
124
125 %description lib
126 util-vserver provides the components and a framework to setup virtual
127 servers.  A virtual server runs inside a linux server. It is nevertheless
128 highly independent. As such, you can run various services with normal
129 configuration. The various vservers can't interact with each other and
130 can't interact with services in the main server.
131
132 This package contains the shared libraries needed by all other
133 'util-vserver' subpackages.
134
135 %description core
136 util-vserver provides the components and a framework to setup virtual
137 servers.  A virtual server runs inside a linux server. It is nevertheless
138 highly independent. As such, you can run various services with normal
139 configuration. The various vservers can't interact with each other and
140 can't interact with services in the main server.
141
142 This package contains utilities which are required to communicate with
143 the Linux-Vserver enabled kernel.
144
145
146 %description build
147 util-vserver provides the components and a framework to setup virtual
148 servers.  A virtual server runs inside a linux server. It is nevertheless
149 highly independent. As such, you can run various services with normal
150 configuration. The various vservers can't interact with each other and
151 can't interact with services in the main server.
152
153 This package contains utilities which assist in building Vservers.
154
155 %description sysv
156 util-vserver provides the components and a framework to setup virtual
157 servers.  A virtual server runs inside a linux server. It is nevertheless
158 highly independent. As such, you can run various services with normal
159 configuration. The various vservers can't interact with each other and
160 can't interact with services in the main server.
161
162 This package contains the SysV initscripts which start and stop
163 VServers and related tools.
164
165
166 %description legacy
167 util-vserver provides the components and a framework to setup virtual
168 servers.  A virtual server runs inside a linux server. It is nevertheless
169 highly independent. As such, you can run various services with normal
170 configuration. The various vservers can't interact with each other and
171 can't interact with services in the main server.
172
173 This package contains the tools which are needed to work with VServers
174 having an old-style configuration.
175
176
177 %description devel
178 util-vserver provides the components and a framework to setup virtual
179 servers.  A virtual server runs inside a linux server. It is nevertheless
180 highly independent. As such, you can run various services with normal
181 configuration. The various vservers can't interact with each other and
182 can't interact with services in the main server.
183
184 This package contains header files and libraries which are needed to
185 develop VServer related applications.
186
187 %description python
188 util-vserver provides the components and a framework to setup virtual
189 servers.  A virtual server runs inside a linux server. It is nevertheless
190 highly independent. As such, you can run various services with normal
191 configuration. The various vservers can't interact with each other and
192 can't interact with services in the main server.
193
194 This package contains the files needed to interface with the
195 Linux-VServer API from Python.
196
197
198 %prep
199 %setup -q -n %name-%fullver
200 %patch1 -p1
201 %patch2 -p1
202 %patch3 -p0
203 autoreconf -fi
204
205 %build
206 %configure --with-initrddir=%_initrddir --enable-release \
207            %{?_without_dietlibc:--disable-dietlibc} \
208            %{?_with_legacy:--enable-apis=NOLEGACY} \
209            --with-initscripts=sysv \
210            %{?_without_python:--without-python}
211
212 %__make %{?_smp_mflags} all
213 %{!?_without_doc:%__make %{?_smp_mflags} doc}
214
215
216 %install
217 rm -rf $RPM_BUILD_ROOT
218 %__make DESTDIR="$RPM_BUILD_ROOT" install install-distribution
219
220 rm -f $RPM_BUILD_ROOT/%_libdir/*.la
221
222 MANIFEST_CONFIG='%config' \
223 MANIFEST_CONFIG_NOREPLACE='%config(noreplace)' \
224 contrib/make-manifest %name $RPM_BUILD_ROOT contrib/manifest.dat
225
226 install -c -m 644 %{SOURCE1} %{buildroot}/%pkglibdir/defaults/fstab
227 install -c -m 644 %{SOURCE2} %{buildroot}/%pkglibdir/defaults/vprocunhide-files
228
229 %check
230 %__make check
231
232
233 %clean
234 rm -rf $RPM_BUILD_ROOT
235
236
237 %post
238 test -d /vservers      || mkdir -m0000 /vservers
239 test -d /vservers/.pkg || mkdir -m0755 /vservers/.pkg
240
241 f="%confdefaultdir/vdirbase";  test -L "$f" -o -e "$f" || ln -s /vservers                        "$f"
242 f="%confdefaultdir/run.rev";   test -L "$f" -o -e "$f" || ln -s %_localstatedir/run/vservers.rev "$f"
243 f="%confdefaultdir/cachebase"; test -L "$f" -o -e "$f" || ln -s %_localstatedir/cache/vservers   "$f"
244
245 %_sbindir/setattr --barrier /vservers /vservers/.pkg || :
246
247
248 %preun
249 test "$1" != 0 || rm -rf %_localstatedir/cache/vservers/* 2>/dev/null || :
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 %chkconfig --add util-vserver
260 %chkconfig vprocunhide on
261 %chkconfig util-vserver on
262
263 %preun sysv
264 test "$1" != 0 || %_initrddir/vprocunhide stop &>/dev/null || :
265
266 test "$1" != 0 || %chkconfig --del vprocunhide
267 test "$1" != 0 || %chkconfig --del vservers-default
268 test "$1" != 0 || %chkconfig --del util-vserver
269
270
271 %postun sysv
272 test "$1" = 0  || %_initrddir/vprocunhide condrestart >/dev/null || :
273
274
275 %triggerin build -- fedora-release, centos-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 copy centos /usr/share/doc/centos-*/RPM-GPG-KEY-*
291
292
293 %pre build
294 x="%_libdir/util-vserver/distributions/etch"
295 test -d "$x" && mv "$x" "$x.rpmsave" || :
296
297
298 %post build
299 test -d /vservers/.hash || mkdir -m0700 /vservers/.hash
300
301 f="%confdefaultdir/apps/vunify/hash"; test -e "$f"/method -o -e "$f"/00 || \
302         ln -s /vservers/.hash "$f"/00
303
304 %_sbindir/setattr --barrier /vservers/.hash || :
305
306
307 %preun build
308 test "$1" != 0 || rm -f %confdir/.distributions/.common/pubkeys/fedora-*
309
310
311 ## Temporary workaround to remove old v_* files; it will conflict
312 ## somehow with the -legacy package but can be fixed by reinstalling
313 ## this package.
314 ## TODO: remove me in the final .spec file
315 %define v_services      httpd named portmap sendmail smb sshd xinetd gated
316 %triggerun sysv -- util-vserver-sysv < 0.30.198
317 for i in %v_services; do
318         %chkconfig --del v_$i || :
319 done
320
321
322 %post legacy
323 %chkconfig --add rebootmgr
324 %chkconfig --add vservers-legacy
325
326 for i in %v_services; do
327         %chkconfig --add v_$i
328 done
329
330
331 %preun legacy
332 test "$1" != 0 || %_initrddir/rebootmgr   stop &>/dev/null || :
333
334 test "$1" != 0 || for i in %v_services; do
335         %chkconfig --del v_$i
336 done
337
338 test "$1" != 0 || %chkconfig --del rebootmgr
339 test "$1" != 0 || %chkconfig --del vservers-legacy
340
341 %postun legacy
342 test "$1" = 0  || %_initrddir/rebootmgr   condrestart >/dev/null || :
343
344
345 %files -f %name-base.list
346 %defattr(-,root,root,-)
347 %doc AUTHORS COPYING NEWS README THANKS
348 #%doc AUTHORS COPYING ChangeLog NEWS README THANKS
349 #%doc doc/*.html doc/*.css
350 /sbin/vshelper
351 %dir %confdir
352 %dir %confdefaultdir
353 %dir %confdefaultdir/apps
354 %dir %confdefaultdir/files
355 %dir %pkglibdir/defaults
356 %ghost %confdefaultdir/cachebase
357 %ghost %confdefaultdir/vdirbase
358 %ghost %confdefaultdir/run.rev
359
360 %dir %_localstatedir/cache/vservers
361 %dir %_localstatedir/run/vservers
362 %dir %_localstatedir/run/vservers.rev
363 %dir %_localstatedir/run/vshelper
364
365
366 %files lib -f %name-lib.list
367 %files sysv -f %name-sysv.list
368
369
370 %files core -f %name-core.list
371 %defattr(-,root,root,-)
372 %dir %pkglibdir
373
374
375 %files build -f %name-build.list
376 %defattr(-,root,root,-)
377 %doc contrib/yum*.patch
378 %dir %confdir/.distributions
379 %dir %confdir/.distributions/*
380 %dir %confdir/.distributions/*/apt
381 %dir %confdir/.distributions/.common
382 %dir %confdir/.distributions/.common/pubkeys
383 %dir %confdefaultdir/apps/vunify
384 %dir %confdefaultdir/apps/vunify/hash
385
386
387 %files legacy -f %name-legacy.list
388 %defattr(-,root,root,-)
389 %dir %pkglibdir/legacy
390
391
392 %files devel -f %name-devel.list
393 %defattr(-,root,root,-)
394 %{!?_without_doc:%doc lib/apidoc/latex/refman.pdf}
395 %{!?_without_doc:%doc lib/apidoc/html}
396
397
398 %files python
399 %defattr(-,root,root,-)
400 %{!?_without_python:%{python_sitearch}/*}
401
402
403 %changelog
404 * Mon Nov 07 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - util-vserver-0.30.216-18
405 - 2 places for pulling sources from in case of network outage
406
407 * Thu Jul 07 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - util-vserver-0.30.216-17
408 - only tweaked specfile for fedora15 - requires util-linux instead of mount
409
410 * Tue Jun 07 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - util-vserver-0.30.216-16
411 - fixes for scientific linux
412
413 * Thu Mar 10 2011 S.Çağlar Onur <caglar@verivue.com> - util-vserver-0.30.216-15
414 - * Sync with upstream
415 - * Add SL6 as a supported distro
416
417 * Fri Feb 18 2011 Sapan Bhatia <sapanb@cs.princeton.edu> - util-vserver-0.30.216-14
418 - Retagging to make sure the tagging operation worked.
419
420 * Fri Feb 18 2011 Andy Bavier <acb@cs.princeton.edu> - util-vserver-0.30.216-13
421 - Add /proc/diskstats to vprocunhide-files
422
423 * Mon Jan 31 2011 Andy Bavier <acb@cs.princeton.edu> - util-vserver-0.30.216-12
424 - add files needed by CoMon to vprocunhide-files list
425
426 * Thu Jan 20 2011 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-11
427 - add a custom vprocunhide-files file which contains /proc/partitions
428
429 * Wed Dec 08 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-10
430 - Enable vprocunhide service
431
432 * Wed Dec 01 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-9
433 - Sync with upstream revision 2926
434
435 * Tue Nov 16 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-8
436 - Sync with upstream revision 2924
437
438 * Thu Aug 12 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-7
439 - Sync with upstream revision 2912
440
441 * Mon Aug 09 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-6
442 - Sync with upstream revision 2908
443
444 * Thu Jul 29 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-5
445 - Fix f12 build
446
447 * Wed Jul 28 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-4
448 - Sync with upstream revision 2902
449
450 * Tue Jun 08 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-3
451 - Do not restart util-vserver service on upgrades
452
453 * Tue Jun 01 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-2
454 - remove tmpfs mounted /tmp from fstab template
455
456 * Tue May 11 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - util-vserver-0.30.216-1
457
458 * Mon Jun 25 2007 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.214-0
459 - updated URLs
460 - get rid of e2fsprogs requirement
461
462 * Fri Dec 29 2006 Daniel Hokka Zakrisson <daniel@hozac.com> - 0.30.213-0
463 - add --with legacy and --without doc switches
464 - add util-vserver initscript
465
466 * Sun Jan 22 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0.30.210-0
467 - do not require 'xalan' anymore by default
468 - removed 'Requires: apt'; apt-rpm is not maintained upstream anymore
469 - removed 'chattr' leftovers
470 - create the '/etc/vservers/.defaults/cachebase' symlink
471 - added /var/cache/vservers and the needed support
472 - set barrier attribute on /vservers/.pkg and /vservers/.hash
473 - added 'centos-release' to the list of packages in the copy-the-keys
474   trigger script
475 - create '/vservers/.hash' and add initial configuration for it
476
477 * Sun Oct 30 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.209-0
478 - version 0.30.209
479 - copy centos keys
480
481 * Sat Jul 16 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-2
482 - updated URLs
483
484 * Fri Jul 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.208-1
485 - version 0.30.208
486 - require the -lib subpackage by -devel
487 - copy GPG keys from /etc/pki/rpm-gpg/
488
489 * Fri Apr 15 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.206-1
490 - added patches to make yum work in chroot environments
491 - version 0.30.206
492
493 * Thu Mar 24 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.205-0
494 - added some %%descriptions
495 - copy GPG keys from the system into the confdir
496 - buildrequire dietlibc-0.25
497 - BuildRequire beecrypt-devel
498 - cleanups
499 - use %%global instead of %%define
500 - removed 'run.rev' as a vserver-local variable and made it a system-wide setting
501
502 * Wed Jan 26 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.198-0.3
503 - updated BuildRequires:
504 - use 'setattr --barrier' instead of 'chattr +t' in the %%post scriptlet
505 - moved the v_* initscripts to legacy
506 - do not ship the /vservers directory itself; as it is immutable, the
507   extraction will fail else
508
509 * Thu Sep  9 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.30.194-0
510 - documented switches for 'rpmbuild'
511
512 * Wed May 26 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.215-0
513 - (re)added the MANIFEST_* variables which were lost some time ago;
514   this will preserve %%config files...
515
516 * Mon Mar 15 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.202-0
517 - use file-list for sysv scripts also
518
519 * Sat Mar  6 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.198-0
520 - added vprocunhide-service support
521 - added doxygen support
522 - updated Requires:
523
524 * Wed Oct  1 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.5-0
525 - Initial build.