- Pre-package vserver-reference instead of building it on nodes
[sliceimage.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 %clean
38 rm -rf $RPM_BUILD_ROOT
39
40 %files
41 %defattr(-,root,root)
42 /vservers/vserver-reference
43
44 %post
45 VROOT=/vservers/vserver-reference
46
47 # Make sure the barrier bit is set
48 setattr --barrier /vservers
49
50 # Copy configuration files from host to reference image
51 for file in /etc/hosts /etc/resolv.conf /etc/yum.conf ; do
52     if [ -f $file ] ; then
53         echo $file | cpio -p -d -u $VROOT
54     fi
55 done
56
57 # Install and parse Management Authority (MA) configuration
58 if [ -r /etc/planetlab/primary_ma ] ; then
59     . /etc/planetlab/primary_ma
60     install -D -m 644 /etc/planetlab/primary_ma $VROOT/etc/planetlab/primary_ma
61 elif [ -d /mnt/cdrom/bootme/cacert ] ; then
62     MA_NAME="PlanetLab Central"
63     MA_BOOT_SERVER=$(head -1 /mnt/cdrom/bootme/BOOTSERVER)
64     MA_BOOT_SERVER_CACERT=/mnt/cdrom/bootme/cacert/$MA_BOOT_SERVER/cacert.pem
65     cat > $VROOT/etc/planetlab/primary_ma <<EOF
66 MA_NAME="$MA_NAME"
67 MA_BOOT_SERVER="$MA_BOOT_SERVER"
68 MA_BOOT_SERVER_CACERT="$MA_BOOT_SERVER_CACERT"
69 EOF
70 fi
71
72 # Install boot server certificate
73 install -D -m 644 $MA_BOOT_SERVER_CACERT $VROOT/$MA_BOOT_SERVER_CACERT
74
75 # Also install in /mnt/cdrom/bootme for backward compatibility
76 install -D -m 644 $MA_BOOT_SERVER_CACERT $VROOT/mnt/cdrom/bootme/cacert/$MA_BOOT_SERVER/cacert.pem
77 echo $MA_BOOT_SERVER > $VROOT/mnt/cdrom/bootme/BOOTSERVER
78
79 %changelog
80 * Tue Sep  1 2005 Mark Huang <mlhuang@cs.princeton.edu> 3.1-1.planetlab
81 - Pre-package vserver-reference instead of building it on nodes
82
83 * Tue Nov 30 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-5.planetlab
84 - PL3118 and PL3131 fix: set barrier bit on /vservers instead of old
85   immulink bit. Do not reset the immutable bit on the new
86   vserver-reference directory when deleting it after an error.
87
88 * Mon Nov 15 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-4.planetlab
89 - bump release to install Fedora Core 2 updates as of Tue Nov  9 2004
90 - PL3017 fix: rebuild vserver-reference image in case it was built
91   with i386 glibc
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 * Sun Oct 10 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-3.planetlab
99 - dynamically install reference image at init time
100
101 * Sun Oct 10 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-2.planetlab
102 - dynamically install reference image
103
104 * Tue Sep 14 2004 Mark Huang <mlhuang@cs.princeton.edu> 3.0-1.planetlab
105 - initial build