- rotate /var/log/vcached.log
[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 aclocal -I m4
55 autoconf
56 automake --add-missing
57 # bootstrap to avoid BuildRequires of kernel-source
58 for linux in $RPM_BUILD_DIR/linux-* /lib/modules/`uname -r`/build ; do
59    [[ -d $linux/include ]] && %configure --with-kerneldir=$linux --enable-linuxconf && break
60 done
61
62
63 %build
64 make
65
66 %install
67 rm -rf $RPM_BUILD_ROOT
68 %__make DESTDIR=$RPM_BUILD_ROOT install
69
70 mkdir -p $RPM_BUILD_ROOT/vservers
71 test "%_initrddir" = %_sysconfdir/init.d || {
72         mkdir -p ${RPM_BUILD_ROOT}%_initrddir
73         mv ${RPM_BUILD_ROOT}%_sysconfdir/init.d/* ${RPM_BUILD_ROOT}%_initrddir/
74 }
75
76 mkdir -p ${RPM_BUILD_ROOT}/bin
77 ln -f ${RPM_BUILD_ROOT}%_sbindir/vsh ${RPM_BUILD_ROOT}/bin/vsh
78
79 install -D -m 644 sysv/vcached.logrotate ${RPM_BUILD_ROOT}/etc/logrotate.d/vcached
80
81 %clean
82 rm -rf $RPM_BUILD_ROOT
83
84 %define services vcached vservers
85
86 %pre
87 # 1 = install, 2 = upgrade/reinstall
88 if [ $1 -eq 2 ] ; then
89     for i in %{services} ; do
90         [ "`/sbin/runlevel`" = "unknown" ] || service $i stop || :
91     done
92 fi
93
94 %post
95 # 1 = install, 2 = upgrade/reinstall
96 if [ $1 -eq 1 ] ; then
97     for i in %{services} ; do
98         chkconfig --add $i
99         chkconfig $i on
100     done
101 fi
102 for i in %{services} ; do
103     [ "`/sbin/runlevel`" = "unknown" ] || service $i start
104 done
105 if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then
106     echo /bin/vsh >> /etc/shells
107 fi
108
109 %__chattr +t /vservers || :
110
111
112 %postun
113 # 0 = erase, 1 = upgrade
114 if [ "$1" = 0 ] ; then
115     perl -i -n -e 'next if /^\/bin\/vsh$/; print' /etc/shells
116 fi
117
118 %preun
119 # 0 = erase, 1 = upgrade
120 if [ $1 -eq 0 ] ; then
121     for i in %{services} ; do
122         [ "`/sbin/runlevel`" = "unknown" ] || service $i stop || :
123         chkconfig $i off
124         chkconfig --del $i
125     done
126 fi
127
128 %files
129 %defattr(-,root,root)
130 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
131 %_sbindir/*
132 %_libdir/%name
133 %_includedir/vserver.h
134 %_libdir/libvserver.a
135 %_mandir/man8/*
136 %config %_initrddir/*
137 %config(noreplace) /etc/vservers.conf
138 %config(noreplace) /etc/vcached.conf
139 /etc/logrotate.d/vcached
140 %dir /etc/vservers
141 %attr(0,root,root) %dir /vservers
142 %attr(4755,root,root) /usr/sbin/vsh
143 %attr(4755,root,root) /bin/vsh
144
145 %exclude %_sbindir/newvserver
146 %exclude %_mandir/man8/newvserver*
147
148 %files linuxconf
149 %defattr(-,root,root)
150 %config(noreplace) /etc/vservers/newvserver.defaults
151 %_sbindir/newvserver
152 %_mandir/man8/newvserver*
153
154 %changelog
155 * Mon Oct 11 2004 Marc E. Fiuczynski <mef@cs.princeton.edu> 0.1-1.planetlab
156 - added vsh
157
158 * Wed Aug 11 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.29-1.planetlab
159 - initial PlanetLab 3.0 build.
160
161 * Thu Mar 18 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.3-0
162 - removed '%%doc doc/FAQ.txt' since file does not exist anymore
163
164 * Fri Sep 26 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.4-1
165 - initial build.
166