Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/91-make-fstab
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/91-make-fstab	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/91-make-fstab	(revision 929)
@@ -0,0 +1,99 @@
+#!/bin/sh
+
+# This is a copy of 90-make-fstab, with a bug fixed.
+# It should be removed once the bug is fixed upstream.
+
+#
+#  This script is responsible for setting up /etc/fstab upon the
+# new instance.
+#
+#  This should be a simple job, but it is complicated by some of the
+# differences between filesystems - some root filesystems will require
+# the installation of new packages, and we have to handle that here.
+#
+# Steve
+# --
+# http://www.steve.org.uk/
+
+
+prefix=$1
+
+#
+#  Source our common functions
+#
+if [ -e /usr/lib/xen-tools/common.sh ]; then
+    . /usr/lib/xen-tools/common.sh
+else
+    . ./hooks/common.sh
+fi
+
+
+#
+# Log our start
+#
+logMessage Script $0 starting
+
+
+#
+# Make sure we use ide style device names if required
+#
+device=sda
+if [ "${ide}" ]; then
+    device=hda
+fi
+
+#
+#  Now we have the options we can create the fstab.
+#
+has_xfs=0
+has_reiserfs=0
+cat <<E_O_FSTAB > ${prefix}/etc/fstab
+# /etc/fstab: static file system information.
+#
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
+proc            /proc           proc    defaults        0       0
+E_O_FSTAB
+for part in `seq 1 ${NUMPARTITIONS}`; do
+    eval "PARTITION=\"\${PARTITION${part}}\""
+    OLDIFS="${IFS}"
+    IFS=:
+    x=0
+    for partdata in ${PARTITION}; do
+        eval "partdata${x}=\"${partdata}\""
+        x=$(( $x+1 ))
+    done
+    IFS="${OLDIFS}"
+    
+    case "${partdata2}" in
+        xfs)
+            has_xfs=1
+            ;;
+        reiserfs)
+            has_reiserfs=1
+            ;;
+    esac
+    
+    if [ "${partdata2}" = "swap" ]; then
+        echo "${partdata7} none swap sw 0 0" >> ${prefix}/etc/fstab
+    else
+        echo "${partdata7} ${partdata3} ${partdata2} ${partdata4} 0 1" >> ${prefix}/etc/fstab
+    fi
+done
+
+
+#
+#  Finally we can install any required packages for the given root
+# filesystem
+#
+if [ $has_xfs -eq 1 ]; then
+    installDebianPackage ${prefix} xfsprogs
+fi
+if [ $has_reiserfs -eq 1 ]; then
+    installDebianPackage ${prefix} reiserfsprogs
+fi
+
+
+#
+#  Log our finish
+#
+logMessage Script $0 finished
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/97-setup-grub
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/97-setup-grub	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/97-setup-grub	(revision 929)
@@ -0,0 +1,61 @@
+#!/bin/sh
+#
+#  This script sets up the ParaVM to use pygrub
+#
+
+prefix=$1
+
+#
+#  Source our common functions
+#
+if [ -e /usr/lib/xen-tools/common.sh ]; then
+    . /usr/lib/xen-tools/common.sh
+else
+    . ./hooks/common.sh
+fi
+
+echo SCRIPT = $0
+dir=`dirname "$0"`
+
+
+logMessage Script $0 starting
+
+# To avoid UDP checksum problems.
+
+installDebianPackage ${prefix} ethtool
+
+#
+# Install the xen kernel.  linux-image-xen is in ubuntu,
+# linux-image-xen-amd64 in debian.
+installDebianPackage ${prefix} linux-image-xen
+installDebianPackage ${prefix} linux-image-xen-amd64
+
+installDebianPackage ${prefix} grub
+
+#
+# Make the /boot/grub directory
+#
+mkdir -p ${prefix}/boot/grub
+
+#
+# Create stock menu.lst
+#
+chroot ${prefix} /usr/sbin/update-grub -y
+
+#
+# Patches to add xen kernels, use serial console, etc.
+#
+for patch in $dir/patches/*; do
+    patch -l -d ${prefix} -p1 < $patch
+done
+
+#
+# Regenerate automagic kernels list
+#
+chroot ${prefix} /usr/sbin/update-grub -y
+
+#
+# Log our finish
+#
+logMessage Script $0 finished
+
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/patches/common.diff
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/patches/common.diff	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/patches/common.diff	(revision 929)
@@ -0,0 +1,1 @@
+link ../../patches/common.diff
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/patches/inittab.diff
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/patches/inittab.diff	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/debian.d/patches/inittab.diff	(revision 929)
@@ -0,0 +1,1 @@
+link ../../patches/inittab.diff
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/91-make-fstab
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/91-make-fstab	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/91-make-fstab	(revision 929)
@@ -0,0 +1,1 @@
+link ../debian.d/91-make-fstab
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/97-setup-grub
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/97-setup-grub	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/97-setup-grub	(revision 929)
@@ -0,0 +1,1 @@
+link ../debian.d/97-setup-grub
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/patches/common.diff
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/patches/common.diff	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/patches/common.diff	(revision 929)
@@ -0,0 +1,1 @@
+link ../../patches/common.diff
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/patches/event.d.diff
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/patches/event.d.diff	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/edgy.d/patches/event.d.diff	(revision 929)
@@ -0,0 +1,1 @@
+link ../../patches/event.d.diff
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/patches/common.diff
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/patches/common.diff	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/patches/common.diff	(revision 929)
@@ -0,0 +1,27 @@
+--- /usr/sbin/update-grub.orig	2008-05-03 23:30:37.000000000 -0400
++++ /usr/sbin/update-grub	2008-05-03 23:30:55.000000000 -0400
+@@ -911,13 +911,6 @@
+ 		is_xen=
+ 	fi
+ 
+-	if [ ! "$in_domU" ] && [ "$is_xen" ]; then
+-	  # skip xen kernels
+-          continue
+-        elif [ "$in_domU" ] && ! [ "$is_xen" ]; then
+-	  # skip non-xen kernels
+-	  continue
+-        fi
+         kern="/boot/$kern"
+ 	newerKernels=""
+ 	for i in $sortedKernels ; do
+--- /boot/grub/menu.lst.orig	2008-05-04 03:17:31.000000000 -0400
++++ /boot/grub/menu.lst	2008-05-04 03:19:09.000000000 -0400
+@@ -59,7 +59,7 @@
+ ## e.g. kopt=root=/dev/hda1 ro
+ ##      kopt_2_6_8=root=/dev/hdc1 ro
+ ##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
+-# kopt=root=/dev/hda1 ro
++# kopt=root=/dev/hda1 ro console=ttyS0,9600,8n1
+ 
+ ## default grub root device
+ ## e.g. groot=(hd0,0)
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/patches/event.d.diff
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/patches/event.d.diff	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/lib/xen-tools/patches/event.d.diff	(revision 929)
@@ -0,0 +1,14 @@
+--- /etc/event.d/ttyS0.orig   2008-06-22 01:57:29.000000000 -0400
++++ /etc/event.d/ttyS0  2008-06-22 03:12:01.000000000 -0400
+@@ -0,0 +1,11 @@
++start on runlevel 2
++start on runlevel 3
++start on runlevel 4
++start on runlevel 5
++
++stop on runlevel 0
++stop on runlevel 1
++stop on runlevel 6
++
++respawn
++exec /sbin/getty 115300 ttyS0
Index: trunk/packages/sipb-xen-autoinstaller/common/usr/sbin/sipb-xen-create-image
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/common/usr/sbin/sipb-xen-create-image	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/common/usr/sbin/sipb-xen-create-image	(revision 929)
@@ -0,0 +1,14 @@
+#!/bin/bash
+# Usage: no command-line args.
+# "arguments" come in environment:
+#  TARGET a device filename, IMAGESIZE its size in XXXX what unit?
+#  ARCH, DIST, MIRROR
+#  HOSTNAME, IP
+
+echo ,"${IMAGESIZE}"$',L,*\n,,S\n;\n;' | sfdisk -uM -H 255 -S 63 "$TARGET"
+
+xen-create-image --image-dev "${TARGET}1" --swap-dev "${TARGET}2" --fs ext3 --ide \
+ --hostname "$HOSTNAME" --ip="$IP" --netmask=255.255.0.0 --gateway=18.181.0.1 \
+ --arch "$ARCH" --dist "$DIST" --mirror "$MIRROR" --cache=yes
+
+exit 0
Index: trunk/packages/sipb-xen-autoinstaller/debian/changelog
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/debian/changelog	(revision 810)
+++ trunk/packages/sipb-xen-autoinstaller/debian/changelog	(revision 929)
@@ -1,2 +1,10 @@
+sipb-xen-autoinstaller (2.5) unstable; urgency=low
+
+  * Add sipb-xen-autoinstaller-host binary package, to contain
+    autoinstaller for system VMs
+  * Put common files in both binary packages
+
+ -- Greg Price <price@mit.edu>  Sun, 28 Sep 2008 16:36:56 -0400
+
 sipb-xen-autoinstaller (2.4) unstable; urgency=low
 
Index: trunk/packages/sipb-xen-autoinstaller/debian/control
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/debian/control	(revision 810)
+++ trunk/packages/sipb-xen-autoinstaller/debian/control	(revision 929)
@@ -6,16 +6,19 @@
 Standards-Version: 3.7.2
 
+Package: sipb-xen-autoinstaller-host
+Architecture: all
+Provides: ${diverted-files}
+Conflicts: ${diverted-files}
+Depends: ${misc:Depends}, patch, xen-tools, sipb-xen-dom0
+Conflicts: sysvinit, upstart
+Description: SIPB Xen automatic guest-image installer system (host)
+ This is our automatic guest-image installer system.
+
 Package: sipb-xen-autoinstaller-guest
 Architecture: all
 Provides: ${diverted-files}
 Conflicts: ${diverted-files}
-Depends: ${misc:Depends}, patch, xen-tools, busybox-static
+Depends: ${misc:Depends}, patch, xen-tools, busybox-static, lvm2
 Conflicts: sysvinit, upstart
 Description: SIPB Xen automatic guest-image installer system (guest)
  This is our automatic guest-image installer system.
-
-Package: sipb-xen-autoinstaller-host
-Architecture: all
-Depends: ${misc:Depends}, sipb-xen-host-master
-Description: SIPB Xen automatic guest-image installer system (host)
- This is our automatic guest-image installer system.
Index: trunk/packages/sipb-xen-autoinstaller/debian/control.in
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/debian/control.in	(revision 810)
+++ trunk/packages/sipb-xen-autoinstaller/debian/control.in	(revision 929)
@@ -5,4 +5,13 @@
 Build-Depends: @cdbs@
 Standards-Version: 3.7.2
+
+Package: sipb-xen-autoinstaller-host
+Architecture: all
+Provides: ${diverted-files}
+Conflicts: ${diverted-files}
+Depends: ${misc:Depends}, patch, xen-tools, sipb-xen-dom0
+Conflicts: sysvinit, upstart
+Description: SIPB Xen automatic guest-image installer system (host)
+ This is our automatic guest-image installer system.
 
 Package: sipb-xen-autoinstaller-guest
Index: trunk/packages/sipb-xen-autoinstaller/debian/sipb-xen-autoinstaller-guest.install
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/debian/sipb-xen-autoinstaller-guest.install	(revision 810)
+++ trunk/packages/sipb-xen-autoinstaller/debian/sipb-xen-autoinstaller-guest.install	(revision 929)
@@ -1,1 +1,2 @@
+common/* .
 guest/* .
Index: trunk/packages/sipb-xen-autoinstaller/debian/sipb-xen-autoinstaller-host.install
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/debian/sipb-xen-autoinstaller-host.install	(revision 929)
+++ trunk/packages/sipb-xen-autoinstaller/debian/sipb-xen-autoinstaller-host.install	(revision 929)
@@ -0,0 +1,2 @@
+common/* .
+host/* .
Index: trunk/packages/sipb-xen-autoinstaller/guest/etc/init.d/rcS.sipb-xen
===================================================================
--- trunk/packages/sipb-xen-autoinstaller/guest/etc/init.d/rcS.sipb-xen	(revision 810)
+++ trunk/packages/sipb-xen-autoinstaller/guest/etc/init.d/rcS.sipb-xen	(revision 929)
@@ -6,14 +6,14 @@
 	;;
 	mirror=*)
-	MIRROR=${x#mirror=}
+	export MIRROR=${x#mirror=}
 	;;
 	dist=*)
-	DIST=${x#dist=}
+	export DIST=${x#dist=}
 	;;
 	arch=*)
-	ARCH=${x#arch=}
+	export ARCH=${x#arch=}
 	;;
 	imagesize=*)
-	IMAGESIZE=${x#imagesize=}
+	export IMAGESIZE=${x#imagesize=}
 	;;
 	noinstall)
@@ -22,16 +22,15 @@
     esac
 done
+
 mount -t tmpfs none /var/log
 mount -t tmpfs none /tmp
 
+export TARGET=/dev/hda
+export ARCH=${ARCH-amd64}
+export IP=$(ifconfig eth0 | sed -n 's/.*inet addr:\([0-9\.]*\).*/\1/p')
+export HOSTNAME=$(hostname)
 
-TARGET=/dev/hda
-ARCH=${ARCH-amd64}
-IP=$(ifconfig eth0 | sed -n 's/.*inet addr:\([0-9\.]*\).*/\1/p')
-HOSTNAME=$(hostname)
-
-echo ,${IMAGESIZE}$',L,*\n,,S\n;\n;' | sfdisk -uM -H 255 -S 63 $TARGET
-
-xen-create-image --image-dev ${TARGET}1 --swap-dev ${TARGET}2 --fs ext3 --ide --arch $ARCH --dist $DIST --hostname $HOSTNAME --mirror $MIRROR --ip=$IP --netmask=255.255.0.0 --gateway=18.181.0.1 --cache=yes
+# args passed through environment rather than as 7 positional args
+/usr/sbin/sipb-xen-create-image
 
 busybox poweroff
