change chroot() escape fix to setting the barrier bit rather than the immulink bit...
[util-vserver.git] / util-vserver.spec
1 %define name util-vserver
2 %define version 0.30
3 %define release 6.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 %clean
83 rm -rf $RPM_BUILD_ROOT
84
85 %pre
86 # 1 = install, 2 = upgrade/reinstall
87 if [ $1 -eq 2 ] ; then
88     # vcached no longer runs as a daemon
89     [ "`/sbin/runlevel`" = "unknown" ] || service vcached stop || :
90 fi
91
92 %post
93 # vcached no longer runs as a daemon
94 chkconfig vcached off
95 chkconfig --del vcached
96 if [ ! -f /etc/shells ] || ! grep -q '^/bin/vsh$' /etc/shells ; then
97     echo /bin/vsh >> /etc/shells
98 fi
99 # make sure barrier bit is set on /vservers to prevent chroot() escapes
100 %_libdir/%name/setattr --barrier /vservers
101
102 %postun
103 # 0 = erase, 1 = upgrade
104 if [ "$1" = 0 ] ; then
105     perl -i -n -e 'next if /^\/bin\/vsh$/; print' /etc/shells
106 fi
107
108 %preun
109 # 0 = erase, 1 = upgrade
110 if [ $1 -eq 0 ] ; then
111     [ "`/sbin/runlevel`" = "unknown" ] || service vservers stop
112     chkconfig vservers off
113     chkconfig --del vservers
114 fi
115
116 %files
117 %defattr(-,root,root)
118 %doc AUTHORS COPYING ChangeLog NEWS README THANKS
119 %_sbindir/*
120 %_libdir/%name
121 %_includedir/vserver.h
122 %_libdir/libvserver.a
123 %_mandir/man8/*
124 %config %_initrddir/*
125 %config(noreplace) /etc/vservers.conf
126 %config(noreplace) /etc/vcached.conf
127 /etc/logrotate.d/vcached
128 /etc/cron.d/vcached
129 %dir /etc/vservers
130 %attr(0,root,root) %dir /vservers
131 %attr(4755,root,root) /usr/sbin/vsh
132 %attr(4755,root,root) /bin/vsh
133
134 %exclude %_sbindir/newvserver
135 %exclude %_mandir/man8/newvserver*
136
137 %files linuxconf
138 %defattr(-,root,root)
139 %config(noreplace) /etc/vservers/newvserver.defaults
140 %_sbindir/newvserver
141 %_mandir/man8/newvserver*
142
143 %changelog
144 * Fri Nov 19 2004 Mark Huang <mlhuang@cs.princeton.edu>
145 - vcached no longer runs as a daemon
146 - do not restart vservers when package is upgraded
147
148 * Wed Nov 17 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-6.planetlab
149 + planetlab-3_0-rc4
150 - PL2445
151 - Both vcached and vuseradd now print a warning message when vbuild
152   succeeds but the resulting new vserver image is smaller in size than
153   the vserver-reference image.
154 - vuseradd: clean up some more junk on failure
155
156 * Tue Nov 16 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-5.planetlab
157 + planetlab-3_0-rc3
158 - PL3026: This is the upgraded version of vdu that maintains an
159   internal hash table of files with a nlink count > 1.  Only if vdu
160   sees all hard links to a particular inode does it add its size and
161   block count to the total.
162
163 * Fri Nov 12 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-4.planetlab
164 - PL2445 Use -b option to du to avoid rounding errors.
165
166 * Sat Nov  6 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.30-3.planetlab
167 + planetlab-3_0-rc2
168 - don't create the symbolic link /home/slice/.ssh, this is not how
169   pl_sshd works
170
171 * Mon Oct 11 2004 Marc E. Fiuczynski <mef@cs.princeton.edu>
172 - added vsh
173
174 * Wed Aug 11 2004 Mark Huang <mlhuang@cs.princeton.edu> 0.29-1.planetlab
175 - initial PlanetLab 3.0 build.
176
177 * Thu Mar 18 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.29.3-0
178 - removed '%%doc doc/FAQ.txt' since file does not exist anymore
179
180 * Fri Sep 26 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> - 0:0.23.4-1
181 - initial build.
182