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