- don't count a bad service stop as a failure
[util-vserver.git] / util-vserver.spec
1 %define name util-vserver
2 %define version 0.30
3 %define release 1.planetlab%{?date:.%{date}}
4
5 Vendor: PlanetLab
6 Packager: PlanetLab Central <support@planet-lab.org>
7 Distribution: PlanetLab 3.0
8 URL: http://www.planet-lab.org
9
10 %define __chattr        /usr/bin/chattr
11
12 Summary:        Linux virtual server utilities
13 Name:           %{name}
14 Version:        %{version}
15 Release:        %{release}
16 Epoch:          0
17 Copyright:      GPL
18 Group:          System Environment/Base
19 Source0:        http://savannah.nongnu.org/download/util-vserver/stable.pkg/%version/%name-%version.tar.bz2
20 Provides:       %name-devel = %epoch:%version-%release
21 BuildRoot:      %_tmppath/%name-%version-%release-root
22 Provides:       vserver = %epoch:%version-%release
23 Conflicts:      vserver < %epoch:%version-%release
24 Conflicts:      vserver > %epoch:%version-%release
25 BuildRequires:  e2fsprogs-devel
26 Requires(post): %__chattr
27
28 %package linuxconf
29 Summary:        Linuxconf administration modules for vservers
30 Group:          Applications/System
31 Requires:       %name = %epoch:%version-%release
32 Provides:       vserver-admin = %epoch:%version-%release
33 Conflicts:      vserver-admin < %epoch:%version-%release
34 Conflicts:      vserver-admin > %epoch:%version-%release
35
36 %description
37 This package provides the components and a framework to setup virtual
38 servers.  A virtual server runs inside a linux server. It is nevertheless
39 highly independent. As such, you can run various services with normal
40 configuration. The various vservers can't interact with each other and
41 can't interact with services in the main server.
42
43 This requires a special kernel supporting the new new_s_context and
44 set_ipv4root system call.
45
46
47 %description linuxconf
48 This package provides the components to setup virtual servers with
49 linuxconf.
50
51
52 %prep
53 %setup -q
54
55
56 %build
57 aclocal -I m4
58 autoconf
59 automake
60 # bootstrap to avoid BuildRequires of kernel-source
61 for linux in $RPM_BUILD_DIR/linux-* /lib/modules/`uname -r`/build ; do
62    [[ -d $linux/include ]] && %configure --with-kerneldir=$linux --enable-linuxconf && break
63 done
64 %__make %{?_smp_mflags}
65
66
67 %install
68 rm -rf $RPM_BUILD_ROOT
69 %__make DESTDIR=$RPM_BUILD_ROOT install
70
71 mkdir -p $RPM_BUILD_ROOT/vservers
72 test "%_initrddir" = %_sysconfdir/init.d || {
73         mkdir -p ${RPM_BUILD_ROOT}%_initrddir
74         mv ${RPM_BUILD_ROOT}%_sysconfdir/init.d/* ${RPM_BUILD_ROOT}%_initrddir/
75 }
76
77
78 %clean
79 rm -rf $RPM_BUILD_ROOT
80
81
82 %define services vcached
83
84 %pre
85 # 1 = install, 2 = upgrade/reinstall
86 if [ $1 -eq 2 ] ; then
87     for i in %{services} ; do
88         [ "`/sbin/runlevel`" = "unknown" ] || service $i stop || :
89     done
90 fi
91
92
93 %post
94 # 1 = install, 2 = upgrade/reinstall
95 if [ $1 -eq 1 ] ; then
96     for i in %{services} ; do
97         chkconfig --add $i
98         chkconfig $i on
99     done
100 fi
101 for i in %{services} ; do
102     [ "`/sbin/runlevel`" = "unknown" ] || service $i start
103 done
104
105 %__chattr +t /vservers || :
106
107
108 %preun
109 # 0 = erase, 1 = upgrade
110 if [ $1 -eq 0 ] ; then
111     for i in %{services} ; do
112         [ "`/sbin/runlevel`" = "unknown" ] || service $i stop || :
113         chkconfig $i off
114         chkconfig --del $i
115     done
116 fi
117
118
119 %files
120 %defattr(-,root,root)
121 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
122 %_sbindir/*
123 %_libdir/%name
124 %_includedir/vserver.h
125 %_libdir/libvserver.a
126 %_mandir/man8/*
127 %config %_initrddir/*
128 %config(noreplace) /etc/vservers.conf
129 %attr(0,root,root) %dir /vservers
130
131 %exclude %_sbindir/newvserver
132 %exclude %_mandir/man8/newvserver*
133
134
135 %files linuxconf
136 %defattr(-,root,root)
137 %config(noreplace) /etc/vservers/newvserver.defaults
138 %_sbindir/newvserver
139 %_mandir/man8/newvserver*
140
141
142 %changelog
143 * Wed Aug 11 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.29-1.planetlab
144 - initial PlanetLab 3.0 build.
145
146 * Thu Mar 18 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.3-0
147 - removed '%%doc doc/FAQ.txt' since file does not exist anymore
148
149 * Fri Sep 26 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.4-1
150 - initial build.