- chkconfig may not be in a regular user's PATH
[vserver-reference.git] / vserver-reference.spec
1 %define name vserver-reference
2 %define version 3.1
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://cvs.planet-lab.org/cvs/vserver-reference
9
10 Summary: VServer reference image
11 Name: %{name}
12 Version: %{version}
13 Release: %{release}
14 Source0: %{name}-%{version}.tar.bz2
15 License: GPL
16 Group: Applications/System
17 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
18 Requires: util-vserver, e2fsprogs, yum
19
20 AutoReqProv: no
21 %define debug_package %{nil}
22
23 %description
24 This package creates the virtual server (VServer) reference image used
25 as the installation base for new PlanetLab slivers.
26
27 %prep
28 %setup -q
29
30 %build
31 RPM_BUILD_DIR=$RPM_BUILD_DIR ./%{name}.init
32
33 %install
34 rm -rf $RPM_BUILD_ROOT
35 find vservers/vserver-reference | cpio -p -d -u $RPM_BUILD_ROOT/
36
37 # If run under sudo, allow user to delete the build directory
38 if [ -n "$SUDO_USER" ] ; then
39     chown -R $SUDO_USER .
40 fi
41
42 %clean
43 rm -rf $RPM_BUILD_ROOT
44
45 %files
46 %defattr(-,root,root)
47 /vservers/vserver-reference
48
49 %post
50 VROOT=/vservers/vserver-reference
51
52 # Make sure the barrier bit is set
53 setattr --barrier /vservers
54
55 # Copy configuration files from host to reference image
56 for file in /etc/hosts /etc/resolv.conf /etc/yum.conf ; do
57     if [ -f $file ] ; then
58         echo $file | cpio -p -d -u $VROOT
59     fi
60 done
61
62 # Install and parse Management Authority (MA) configuration
63 if [ -r /etc/planetlab/primary_ma ] ; then
64     . /etc/planetlab/primary_ma
65     install -D -m 644 /etc/planetlab/primary_ma $VROOT/etc/planetlab/primary_ma
66 elif [ -d /mnt/cdrom/bootme/cacert ] ; then
67     MA_NAME="PlanetLab Central"
68     MA_BOOT_SERVER=$(head -1 /mnt/cdrom/bootme/BOOTSERVER)
69     MA_BOOT_SERVER_CACERT=/mnt/cdrom/bootme/cacert/$MA_BOOT_SERVER/cacert.pem
70     cat > $VROOT/etc/planetlab/primary_ma <<EOF
71 MA_NAME="$MA_NAME"
72 MA_BOOT_SERVER="$MA_BOOT_SERVER"
73 MA_BOOT_SERVER_CACERT="$MA_BOOT_SERVER_CACERT"
74 EOF
75 fi
76
77 # Install boot server certificate
78 install -D -m 644 $MA_BOOT_SERVER_CACERT $VROOT/$MA_BOOT_SERVER_CACERT
79
80 # Also install in /mnt/cdrom/bootme for backward compatibility
81 install -D -m 644 $MA_BOOT_SERVER_CACERT $VROOT/mnt/cdrom/bootme/cacert/$MA_BOOT_SERVER/cacert.pem
82 echo $MA_BOOT_SERVER > $VROOT/mnt/cdrom/bootme/BOOTSERVER
83
84 %changelog
85 * Tue Sep  1 2005 Mark Huang <mlhuang@cs.princeton.edu> 3.1-1.planetlab
86 - Pre-package vserver-reference instead of building it on nodes
87
88 * Tue Nov 30 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-5.planetlab
89 - PL3118 and PL3131 fix: set barrier bit on /vservers instead of old
90   immulink bit. Do not reset the immutable bit on the new
91   vserver-reference directory when deleting it after an error.
92
93 * Mon Nov 15 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-4.planetlab
94 - bump release to install Fedora Core 2 updates as of Tue Nov  9 2004
95 - PL3017 fix: rebuild vserver-reference image in case it was built
96   with i386 glibc
97
98 * Mon Nov 15 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-4.planetlab
99 - bump release to install Fedora Core 2 updates as of Tue Nov  9 2004
100 - PL3017 fix: rebuild vserver-reference image in case it was built
101   with i386 glibc
102
103 * Sun Oct 10 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-3.planetlab
104 - dynamically install reference image at init time
105
106 * Sun Oct 10 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-2.planetlab
107 - dynamically install reference image
108
109 * Tue Sep 14 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-1.planetlab
110 - initial build