Index: package_tags/sipb-xen-guest-installer/1.4/debian/changelog
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/changelog	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/changelog	(revision 720)
@@ -0,0 +1,33 @@
+sipb-xen-guest-installer (1.4) unstable; urgency=low
+
+  * sipb-xen-install, using xen-create-image, which uses debootstrap
+    (ecprice, neboat, and me, weeks ago)
+
+ -- Greg Price <price@mit.edu>  Wed, 23 Jul 2008 01:15:58 -0400
+
+sipb-xen-guest-installer (1.3) unstable; urgency=low
+
+  * Change sipb-xen-lvcopy so that it fails if you try to clone
+    anything but ice3
+
+ -- Evan Broder <broder@mit.edu>  Sat, 31 May 2008 13:38:37 -0700
+
+sipb-xen-guest-installer (1.2) unstable; urgency=low
+
+  * Work around bug in Python subprocess.
+
+ -- Eric Price <ecprice@sipb-xen-dev.mit.edu>  Thu, 15 May 2008 18:46:57 -0400
+
+sipb-xen-guest-installer (1.1) unstable; urgency=low
+
+  * All the changes since last October.  In particular:
+  * This system is in "production", using sx-lvcopy to replicate
+    a golden image on user request and frob it as necessary.
+
+ -- Greg Price <price@mit.edu>  Thu,  1 May 2008 01:09:11 -0400
+
+sipb-xen-guest-installer (1.0) unstable; urgency=low
+
+  * Initial release.
+
+ -- Greg Price <price@mega-man.mit.edu>  Tue, 16 Oct 2007 03:01:08 -0400
Index: package_tags/sipb-xen-guest-installer/1.4/debian/compat
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/compat	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/compat	(revision 720)
@@ -0,0 +1,1 @@
+4
Index: package_tags/sipb-xen-guest-installer/1.4/debian/control
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/control	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/control	(revision 720)
@@ -0,0 +1,12 @@
+Source: sipb-xen-guest-installer
+Section: net
+Priority: extra
+Maintainer: SIPB Xen Project <sipb-xen@mit.edu>
+Build-Depends: cdbs (>= 0.4.23-1.1), debhelper (>= 4.2.0)
+Standards-Version: 3.7.2
+
+Package: sipb-xen-guest-installer
+Architecture: all
+Depends: ${misc:Depends}, patch, xen-tools, kpartx
+Description: SIPB Xen automatic guest-image installer system
+ This is our automatic guest-image installer system.
Index: package_tags/sipb-xen-guest-installer/1.4/debian/control.in
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/control.in	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/control.in	(revision 720)
@@ -0,0 +1,12 @@
+Source: sipb-xen-guest-installer
+Section: net
+Priority: extra
+Maintainer: SIPB Xen Project <sipb-xen@mit.edu>
+Build-Depends: @cdbs@
+Standards-Version: 3.7.2
+
+Package: sipb-xen-guest-installer
+Architecture: all
+Depends: ${misc:Depends}, patch, xen-tools, kpartx
+Description: SIPB Xen automatic guest-image installer system
+ This is our automatic guest-image installer system.
Index: package_tags/sipb-xen-guest-installer/1.4/debian/copyright
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/copyright	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/copyright	(revision 720)
@@ -0,0 +1,3 @@
+This package was created for internal use of the SIPB Xen Project of
+the MIT Student Information Processing Board.  Ask tabbott@mit.edu if
+you have questions about redistribution.
Index: package_tags/sipb-xen-guest-installer/1.4/debian/rules
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/rules	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/rules	(revision 720)
@@ -0,0 +1,4 @@
+#!/usr/bin/make -f
+
+DEB_AUTO_UPDATE_DEBIAN_CONTROL = 1
+include /usr/share/cdbs/1/rules/debhelper.mk
Index: package_tags/sipb-xen-guest-installer/1.4/debian/sipb-xen-guest-installer.install
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/sipb-xen-guest-installer.install	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/sipb-xen-guest-installer.install	(revision 720)
@@ -0,0 +1,1 @@
+files/* .
Index: package_tags/sipb-xen-guest-installer/1.4/debian/sipb-xen-guest-installer.postinst
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/debian/sipb-xen-guest-installer.postinst	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/debian/sipb-xen-guest-installer.postinst	(revision 720)
@@ -0,0 +1,53 @@
+#!/bin/sh
+# postinst script for sipb-xen-guest-installer
+#
+# see: dh_installdeb(1)
+
+set -e
+set -x
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <postinst> `abort-remove'
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    configure)
+	for d in /srv/guest-installer/*; do
+	    # download the actual iso, unpack it, patch it.
+	    wget -nc -i $d/iso.url -O $d/cdrom.orig.iso
+	    MOUNTDIR=$(mktemp -d /mnt/sipb-xen-guest-installer.cdrom.XXXXXX)
+	    mount -t iso9660 -o loop $d/cdrom.orig.iso $MOUNTDIR
+	    rm -rf $d/cdrom.orig; cp -a $MOUNTDIR $d/cdrom.orig
+	    umount $MOUNTDIR; rmdir $MOUNTDIR
+	    rm -rf $d/cdrom; cp -a $d/cdrom.orig $d/cdrom
+	    patch -d $d/cdrom -p1 <$d/cdrom.patch
+	    tar cf - -C $d/cdrom.supplement . | tar xf - -C $d/cdrom
+	done
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/91-make-fstab
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/91-make-fstab	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/91-make-fstab	(revision 720)
@@ -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: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/97-setup-grub
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/97-setup-grub	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/97-setup-grub	(revision 720)
@@ -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: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/patches/common.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/patches/common.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/patches/common.diff	(revision 720)
@@ -0,0 +1,1 @@
+link ../../patches/common.diff
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/patches/inittab.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/patches/inittab.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/debian.d/patches/inittab.diff	(revision 720)
@@ -0,0 +1,1 @@
+link ../../patches/inittab.diff
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/91-make-fstab
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/91-make-fstab	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/91-make-fstab	(revision 720)
@@ -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: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/97-setup-grub
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/97-setup-grub	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/97-setup-grub	(revision 720)
@@ -0,0 +1,1 @@
+link ../debian.d/97-setup-grub
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/patches/common.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/patches/common.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/patches/common.diff	(revision 720)
@@ -0,0 +1,1 @@
+link ../../patches/common.diff
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/patches/event.d.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/patches/event.d.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/edgy.d/patches/event.d.diff	(revision 720)
@@ -0,0 +1,1 @@
+link ../../patches/event.d.diff
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/common.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/common.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/common.diff	(revision 720)
@@ -0,0 +1,38 @@
+--- /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)
+--- /etc/network/interfaces~       2008-06-22 06:47:55.000000000 -0400
++++ /etc/network/interfaces        2008-06-22 06:49:21.000000000 -0400
+@@ -8,7 +8,7 @@
+ # The primary network interface
+ auto eth0
+ iface eth0 inet dhcp
+-# post-up ethtool -K eth0 tx off
++ pre-up ethtool -K eth0 tx off
+ 
+ #
+ # The commented out line above will disable TCP checksumming which
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/event.d.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/event.d.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/event.d.diff	(revision 720)
@@ -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: package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/inittab.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/inittab.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/lib/xen-tools/patches/inittab.diff	(revision 720)
@@ -0,0 +1,11 @@
+--- /etc/inittab.orig	2008-05-04 02:48:09.000000000 -0400
++++ /etc/inittab	2008-05-04 02:52:09.000000000 -0400
+@@ -60,7 +60,7 @@
+ 
+ # Example how to put a getty on a serial line (for a terminal)
+ #
+-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
++T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+ #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+ 
+ # Example how to put a getty on a modem line.
Index: package_tags/sipb-xen-guest-installer/1.4/domU/usr/sbin/sipb-xen-install
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/domU/usr/sbin/sipb-xen-install	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/domU/usr/sbin/sipb-xen-install	(revision 720)
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+TARGET=/dev/hda
+
+#For some strange reason, . $TARGET doesn't work reliably.
+eval `grep -a -m1 -B 100 ^return$ $TARGET | grep -v return`
+
+
+#HOSTNAME=foobar
+#DIST=etch
+#MIRROR=http://debian.lcs.mit.edu/debian
+#IMAGESIZE=3800
+
+ARCH=amd64
+
+#LVSIZE=`lvs --noheadings --units M --nosuffix -o Size /dev/xenvg/d_foobar_hda | sed 's/\..*//'`
+
+# If this script is interrupted, it may not clean up after itself.
+# In particular, it may leave ${VOLUME}1 mounted somewhere in tmp.
+# Unmount it, then kpartx -d $VOLUME to clean up.
+
+###
+###  Create the device for SIPB-Xen purposes
+###
+echo ,${IMAGESIZE}$',L,*\n,,S\n;\n;' | sfdisk -uM -H 255 -S 63 $TARGET
+#kpartx -a $TARGET
+
+xen-create-image --image-dev ${TARGET}1 --swap-dev ${TARGET}2 --fs ext3 --ide --arch $ARCH --dist $DIST --hostname $HOSTNAME --mirror $MIRROR --dhcp --cache=yes
+
+#kpartx -d $TARGET
Index: package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/cdrom.supplement/isolinux/isolinux.cfg
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/cdrom.supplement/isolinux/isolinux.cfg	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/cdrom.supplement/isolinux/isolinux.cfg	(revision 720)
@@ -0,0 +1,6 @@
+PROMPT 1
+TIMEOUT 0
+DEFAULT sipb-xen-install
+LABEL sipb-xen-install
+       kernel /install.amd/vmlinuz
+       append auto=true preseed/file=/cdrom/preseed.cfg priority=critical vga=normal fb=false initrd=/install.amd/initrd.gz --
Index: package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/iso.url
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/iso.url	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/iso.url	(revision 720)
@@ -0,0 +1,1 @@
+http://cdimage.debian.org/debian-cd/4.0_r1/amd64/iso-cd/debian-40r1-amd64-businesscard.iso
Index: package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/preseed.cfg
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/preseed.cfg	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/files/srv/guest-installer/etch/preseed.cfg	(revision 720)
@@ -0,0 +1,224 @@
+#### Contents of the preconfiguration file
+d-i debian-installer/locale string en_US
+d-i console-keymaps-at/keymap select us
+
+### Network configuration
+# netcfg will choose an interface that has link if possible. This makes it
+# skip displaying a list if there is more than one interface.
+d-i netcfg/choose_interface select auto
+
+#d-i netcfg/dhcp_timeout string 1
+d-i netcfg/use_dhcp boolean true
+
+# Any hostname and domain names assigned from dhcp take precedence over
+# values set here. However, setting the values still prevents the questions
+# from being shown, even if values come from dhcp.
+# at bottom  #d-i netcfg/get_hostname string fillme
+d-i netcfg/get_domain string mit.edu
+
+# Disable that annoying WEP key dialog.
+d-i netcfg/wireless_wep string
+
+### Mirror settings
+# If you select ftp, the mirror/country string does not need to be set.
+#d-i mirror/protocol string ftp
+d-i mirror/country string enter information manually
+d-i mirror/http/hostname string debian.lcs.mit.edu
+d-i mirror/http/directory string /debian
+d-i mirror/http/proxy string
+
+# Suite to install.
+#d-i mirror/suite string testing
+# Suite to use for loading installer components (optional).
+#d-i mirror/udeb/suite string testing
+
+### Partitioning
+# If the system has free space you can choose to only partition that space.
+# Note: this must be preseeded with a localized (translated) value.
+#d-i partman-auto/init_automatically_partition \
+#      select Guided - use the largest continuous free space
+
+# Alternatively, you can specify a disk to partition. The device name
+# can be given in either devfs or traditional non-devfs format.
+# For example, to use the first disk:
+d-i partman-auto/disk string /dev/discs/disc0/disc
+# In addition, you'll need to specify the method to use.
+# The presently available methods are: "regular", "lvm" and "crypto"
+d-i partman-auto/method string regular
+
+# If one of the disks that are going to be automatically partitioned
+# contains an old LVM configuration, the user will normally receive a
+# warning. This can be preseeded away...
+d-i partman-auto/purge_lvm_from_device boolean true
+# And the same goes for the confirmation to write the lvm partitions.
+#d-i partman-lvm/confirm boolean true
+
+# You can choose from any of the predefined partitioning recipes.
+# Note: this must be preseeded with a localized (translated) value.
+d-i partman-auto/choose_recipe \
+       select All files in one partition (recommended for new users)
+#d-i partman-auto/choose_recipe \
+#       select Separate /home partition
+#d-i partman-auto/choose_recipe \
+#       select Separate /home, /usr, /var, and /tmp partitions
+
+# Or provide a recipe of your own...
+# The recipe format is documented in the file devel/partman-auto-recipe.txt.
+# If you have a way to get a recipe file into the d-i environment, you can
+# just point at it.
+#d-i partman-auto/expert_recipe_file string /hd-media/recipe
+
+# If not, you can put an entire recipe into the preconfiguration file in one
+# (logical) line. This example creates a small /boot partition, suitable
+# swap, and uses the rest of the space for the root partition:
+#d-i partman-auto/expert_recipe string                         \
+#      boot-root ::                                            \
+#              40 50 100 ext3                                  \
+#                      $primary{ } $bootable{ }                \
+#                      method{ format } format{ }              \
+#                      use_filesystem{ } filesystem{ ext3 }    \
+#                      mountpoint{ /boot }                     \
+#              .                                               \
+#              500 10000 1000000000 ext3                       \
+#                      method{ format } format{ }              \
+#                      use_filesystem{ } filesystem{ ext3 }    \
+#                      mountpoint{ / }                         \
+#              .                                               \
+#              64 512 300% linux-swap                          \
+#                      method{ swap } format{ }                \
+#              .
+
+# This makes partman automatically partition without confirmation.
+d-i partman/confirm_write_new_label boolean true
+d-i partman/choose_partition \
+       select Finish partitioning and write changes to disk
+d-i partman/confirm boolean true
+
+### Clock and time zone setup
+# Controls whether or not the hardware clock is set to UTC.
+d-i clock-setup/utc boolean true
+
+# You may set this to any valid setting for $TZ; see the contents of
+# /usr/share/zoneinfo/ for valid values.
+d-i time/zone string US/Eastern
+
+### Apt setup
+# You can choose to install non-free and contrib software.
+#d-i apt-setup/non-free boolean true
+#d-i apt-setup/contrib boolean true
+# Uncomment this if you don't want to use a network mirror.
+#d-i apt-setup/use_mirror boolean false
+# Uncomment this to avoid adding security sources, or
+# add a hostname to use a different server than security.debian.org.
+#d-i apt-setup/security_host string
+
+# Additional repositories, local[0-9] available
+#d-i apt-setup/local0/repository string \
+#       deb http://local.server/debian stable main
+#d-i apt-setup/local0/comment string local server
+# Enable deb-src lines
+#d-i apt-setup/local0/source boolean true
+# URL to the public key of the local repository; you must provide a key or
+# apt will complain about the unauthenticated repository and so the
+# sources.list line will be left commented out
+#d-i apt-setup/local0/key string http://local.server/key
+
+# By default the installer requires that repositories be authenticated
+# using a known gpg key. This setting can be used to disable that
+# authentication. Warning: Insecure, not recommended.
+#d-i debian-installer/allow_unauthenticated string true
+
+### Account setup
+# Skip creation of a root account (normal user account will be able to
+# use sudo).
+#d-i passwd/root-login boolean false
+# Alternatively, to skip creation of a normal user account.
+d-i passwd/make-user boolean false
+
+# Root password, either in clear text
+#d-i passwd/root-password password r00tme
+#d-i passwd/root-password-again password r00tme
+# or encrypted using an MD5 hash.
+# at bottom  #d-i passwd/root-password-crypted password [MD5 hash]
+
+# To create a normal user account.
+#d-i passwd/user-fullname string Debian User
+#d-i passwd/username string debian
+# Normal user's password, either in clear text
+#d-i passwd/user-password password insecure
+#d-i passwd/user-password-again password insecure
+# or encrypted using an MD5 hash.
+#d-i passwd/user-password-crypted password [MD5 hash]
+
+### Base system installation
+# Select the initramfs generator used to generate the initrd for 2.6 kernels.
+#d-i base-installer/kernel/linux/initramfs-generators string yaird
+
+### Boot loader installation
+# Grub is the default boot loader (for x86). If you want lilo installed
+# instead, uncomment this:
+#d-i grub-installer/skip boolean true
+
+# This is fairly safe to set, it makes grub install automatically to the MBR
+# if no other operating system is detected on the machine.
+d-i grub-installer/only_debian boolean true
+
+# This one makes grub-installer install to the MBR if it also finds some other
+# OS, which is less safe as it might not be able to boot that other OS.
+d-i grub-installer/with_other_os boolean true
+
+# Alternatively, if you want to install to a location other than the mbr,
+# uncomment and edit these lines:
+#d-i grub-installer/only_debian boolean false
+#d-i grub-installer/with_other_os boolean false
+#d-i grub-installer/bootdev  string (hd0,0)
+# To install grub to multiple disks:
+#d-i grub-installer/bootdev  string (hd0,0) (hd1,0) (hd2,0)
+
+### Package selection
+tasksel tasksel/first multiselect standard
+
+# Individual additional packages to install
+#d-i pkgsel/include string openssh-server build-essential
+
+### Finishing up the first stage install
+# Avoid that last message about the install being complete.
+d-i finish-install/reboot_in_progress note
+
+# This will prevent the installer from ejecting the CD during the reboot,
+# which is useful in some situations.
+#d-i cdrom-detect/eject boolean false
+
+### Preseeding other packages
+# Depending on what software you choose to install, or if things go wrong
+# during the installation process, it's possible that other questions may
+# be asked. You can preseed those too, of course. To get a list of every
+# possible question that could be asked during an install, do an
+# installation, and then run these commands:
+#   debconf-get-selections --installer > file
+#   debconf-get-selections >> file
+
+
+#### Advanced options
+### Running custom commands during the installation
+# d-i preseeding is inherently not secure. Nothing in the installer checks
+# for attempts at buffer overflows or other exploits of the values of a
+# preconfiguration file like this one. Only use preconfiguration files from
+# trusted locations! To drive that home, and because it's generally useful,
+# here's a way to run any shell command you'd like inside the installer,
+# automatically.
+
+# This first command is run as early as possible, just after
+# preseeding is read.
+#d-i preseed/early_command string anna-install some-udeb
+
+# This command is run just before the install finishes, but when there is
+# still a usable /target directory. You can chroot to /target and use it
+# directly, or use the apt-install and in-target commands to easily install
+# packages and run commands in the target system.
+#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
+
+
+
+# sipb-xen: automatically filled-in values get appended here. 
+# at bottom  #d-i passwd/root-password-crypted password [MD5 hash]
Index: package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-install
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-install	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-install	(revision 720)
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+export PATH #WTF?
+
+HOSTNAME="$2"
+DIST="$3"
+MIRROR="$4"
+IMAGESIZE="$5"
+IP="$6"
+
+ARCH=amd64
+
+#LVSIZE=`lvs --noheadings --units M --nosuffix -o Size /dev/xenvg/d_foobar_hda | sed 's/\..*//'`
+
+if [ -z "$IP" ]; then
+    IP=`host $HOSTNAME.xvm.mit.edu | sed 's/.* //' | head -n 1`
+fi
+
+VOLUME=/dev/mapper/xenvg-d_$(echo "$HOSTNAME" | sed -e 's/-/--/g')_hda
+
+# If this script is interrupted, it may not clean up after itself.
+# In particular, it may leave ${VOLUME}1 mounted somewhere in tmp.
+# Unmount it, then kpartx -d $VOLUME to clean up.
+
+###
+###  Create the device for SIPB-Xen purposes
+###
+echo ,${IMAGESIZE}$',L,*\n,,S\n;\n;' | sfdisk -uM -H 255 -S 63 $VOLUME
+kpartx -a $VOLUME
+
+# We use static IP addresses since dhcp doesn't work in paravm because
+# of a UDP checksum bug.
+
+xen-create-image --image-dev ${VOLUME}1 --swap-dev ${VOLUME}2 --fs ext3 --ide --arch $ARCH --dist $DIST --hostname $HOSTNAME --mirror $MIRROR --ip=$IP --netmask=255.255.0.0 --gateway=18.181.0.1 --template=/dev/null --cache
+
+# xen-create-image always creates a config file.  The
+# --template=/dev/null argument makes it empty, but it still should be
+# removed.
+rm -f /etc/xen/$HOSTNAME.cfg
+
+kpartx -d $VOLUME
Index: package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-lvcopy
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-lvcopy	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-lvcopy	(revision 720)
@@ -0,0 +1,90 @@
+#!/usr/bin/env python2.5
+
+import sys
+import os
+import shutil
+import tempfile
+import time
+from subprocess import call, check_call, Popen, PIPE
+
+# Make sure to use up fd 0 to avoid a bug in subprocess in Python <= 2.5.1
+# NB we need to do this on every Python remctl script.
+# See r53624 in Python svn.
+sys.stdin = open('/dev/null')
+
+def losetup(source, offset=0):
+  p = Popen(['sipb-xen-losetup', source, str(offset)], stdout=PIPE)
+  return p.communicate()[0].strip()
+
+def frob_copy_in_vm(target, *args):
+  '''UNUSED: maybe we'll use this someday; it does isolate the frobber.'''
+  # 1. prepare arguments volume
+  args_volume = prefix+target+'_args'
+  args_device = '/dev/xenvg/' + args_volume
+  check_call(['/sbin/lvcreate', 'xenvg', '--name', args_volume, '--size', '4K'])
+  file(args_device, 'w').write('\n'.join(args) + '\n')
+
+  # 2. invoke frobber vm
+  copier_device = '/dev/xenvg/d_wert_hda'
+  check_call(['/usr/sbin/xm', 'create', 'sipb-database',
+              'machine_name='+target,
+              'disks=' + ' '.join(['phy:'+copier_device+',hda,w',
+                                   'phy:'+target_device+',hdc,w',
+                                   'phy:'+args_device+',hdd,w'])])
+
+  # XXX should check_call(['/sbin/lvremove', '-f', 'xenvg/'+args_volume])
+
+def frob_copy(target, hostname, rootpw):
+  """target should be an LV device filename"""
+  # 1: mount filesystem
+  fs = losetup(target, 32256)
+  mntdir = tempfile.mkdtemp('', 'auto-install.frob.', '/tmp')
+  call(['mount', '-t', 'ext3', fs, mntdir])
+  # 2: do frobbing
+  call(['/usr/sbin/chroot', mntdir, '/post-copy', hostname, rootpw])
+  # 3: clean up
+  call(['umount', mntdir])
+  os.rmdir(mntdir)
+  call(['losetup', '-d', fs])
+
+def duplicate_by_vm(source, target, rootpw, nodd=False, nofrob=False):
+  if source != "ice3":
+     print "Error: can't clone that VM"
+     sys.exit(1)
+  # source, target should be machine names
+  prefix = 'd_'
+  # 1. copy (by dd) source to target
+  source_device = '/dev/xenvg/' + prefix + source + '_hda'
+  target_device = '/dev/xenvg/' + prefix + target + '_hda'
+  if not nodd:
+    check_call(['/bin/dd', 'bs=1M', 'conv=nocreat',
+                'if='+source_device, 'of='+target_device])
+  # 2. frob target
+  if not nofrob:
+    frob_copy(target_device, target, rootpw)
+
+def main(*argv):
+  subcommand = argv[1]
+  args = argv[2:]
+  os.environ['PATH'] = '/usr/sbin:/usr/bin:/sbin:/bin'
+  if subcommand == 'lvcopy':
+    kwargs = {}
+    while True:
+      if args[0].startswith('--'):
+        kwargs[args[0][2:]] = True
+        args = args[1:]
+        continue
+      if len(args) != 3:
+        print >>sys.stderr, argv[0]+': bad argument list'
+        return 2
+      break
+    duplicate_by_vm(*args, **kwargs)
+  elif subcommand == 'test':
+    pass
+  else:
+    print >>sys.stderr, argv[0]+": unknown subcommand: "+subcommand
+    return 2
+  return 0
+
+if __name__ == '__main__':
+  sys.exit(main(*sys.argv))
Index: package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-make-iso
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-make-iso	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/files/usr/sbin/sipb-xen-make-iso	(revision 720)
@@ -0,0 +1,29 @@
+#!/usr/bin/env python
+
+import sys
+import os
+import shutil
+import tempfile
+from subprocess import call
+
+data_dir = '/srv/guest-installer'
+
+def make_debian_cd(name, tmptree, passhashfile):
+  basetree = os.path.join(data_dir, name)
+  cdtree = os.path.join(tmptree, 'cdrom')
+  shutil.copytree(os.path.join(basetree, 'cdrom'), cdtree, symlinks=True)
+  new_preseed = file(os.path.join(cdtree, 'preseed.cfg'), 'w')
+  old_preseed = file(os.path.join(basetree, 'preseed.cfg'))
+  new_preseed.write(old_preseed.read())
+  passhash = file(passhashfile).read()
+  new_preseed.write('d-i passwd/root-password-crypted password '+passhash+'\n')
+  new_preseed.close()
+  output_iso = os.path.join(tmptree, 'install.iso')
+  call('''mkisofs -r -V "SIPB-Xen_Custom_Install_CD" -cache-inodes -J -l
+           -b isolinux/isolinux.bin -c isolinux/boot.cat
+           -no-emul-boot -boot-load-size 4 -boot-info-table'''.split()
+       + ['-o', output_iso, cdtree])
+  return output_iso
+
+if __name__ == '__main__':
+  print make_debian_cd(*sys.argv[1:])
Index: package_tags/sipb-xen-guest-installer/1.4/partial/copying-installer.sh
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/copying-installer.sh	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/copying-installer.sh	(revision 720)
@@ -0,0 +1,15 @@
+#!/bin/bash
+# hda is the copying-installer image itself
+# hdb is unused (was the source image)
+# hdc is the target image
+# hdd is the arguments image
+
+exec 3</dev/hdd
+read -r -u 3 HOSTNAME
+read -r -u 3 ROOTPW
+exec 3<&-
+
+mount /dev/hdc1 /mnt/new
+/mnt/new/post-copy /mnt/new "$HOSTNAME" "$ROOTPW"
+umount /mnt/new
+sync
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap-commands
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap-commands	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap-commands	(revision 720)
@@ -0,0 +1,90 @@
+#!/bin/sh
+#http://www.debian.org/releases/stable/i386/apds03.html.en
+
+#SRC=/root/debootstrap.d
+#SRCHOSTNAME=moo17
+#HOSTNAME=debootstrap-test
+#pick a hostname!
+
+HOSTNAME=moo19
+DIST=etch
+IP=18.181.0.186
+
+PARTITIONS=/root/neboat/testpart
+
+VOLUME=/dev/mapper/xenvg-d_${HOSTNAME}_hda
+
+###
+###  Create the device for SIPB-Xen purposes
+###
+sfdisk -H 255 -S 63 $VOLUME <$PARTITIONS
+kpartx -a $VOLUME
+#SWAPDEV=$(sipb-xen-losetup $VOLUME $(( 7903980 * 512 )))
+#IMAGEDEV=$(sipb-xen-losetup $VOLUME $(( 63 * 512 )))
+# mkfs.ext3 -b 1024 $IMAGEDEV $(( 7903917 / 2 ))
+
+#CREATE_IMAGE_CONFIG=./paravm-create.conf
+
+#xen-create-image --image-dev $IMAGEDEV --swap-dev $SWAPDEV --fs ext3 --config $CREATE_IMAGE_CONFIG \
+#	--dist $DIST --hostname $HOSTNAME
+
+# xen-create-image --partitions sipb-xen --memory=256MB --ide --arch amd64 --dist etch --hostname moo19 --mirror http://debian.lcs.mit.edu/debian --ip=18.181.0.186 --netmask=255.255.0.0 --gateway=18.181.0.1 --cache
+
+xen-create-image --image-dev ${VOLUME}1 --swap-dev ${VOLUME}2 --fs ext3 --ide --memory 256M --arch amd64 --dist etch --hostname $HOSTNAME --mirror http://debian.lcs.mit.edu/debian --ip=$IP --netmask=255.255.0.0 --gateway=18.181.0.1 --cache
+
+kpartx -d $VOLUME
+#losetup -d $SWAPDEV
+#losetup -d $IMAGEDEV
+
+### This should be the end of the script
+### The material past this point is solely for reference purposes
+
+
+# time debootstrap --arch amd64 etch "$DEST" http://debian.lcs.mit.edu/debian
+
+# cp -a $SRC/fstab $DEST/etc/fstab
+# cp -a $SRC/interfaces $DEST/etc/network/interfaces
+# cp -a $SRC/sources.list $DEST/etc/apt/sources.list
+# cp -a $SRC/update-grub.diff $DEST/root/update-grub.diff
+# echo $HOSTNAME > $DEST/etc/hostname
+# sed s/$SRCHOSTNAME/$HOSTNAME/g $SRC/hosts > $DEST/etc/hosts
+
+# mount -t proc proc $DEST/proc
+
+# LANG=C chroot "$DEST" <<ENDCHROOT
+
+# export TERM=xterm-color
+# mount -a
+
+# cd /media
+# mkdir cdrom0
+# ln -s cdrom0 cdrom
+# cd /
+# ln -s media/cdrom
+
+# echo $'y\n3\nEastern' | tzconfig
+# export DEBIAN_FRONTEND=noninteractive
+
+# echo 'locales locales/locales_to_be_generated multiselect     en_US ISO-8859-1' | debconf-set-selections
+
+
+# aptitude update
+# aptitude -y install locales linux-image-xen-amd64
+# aptitude --without-recommends -y install ~pstandard ~prequired ~pimportant
+# #strace tasksel install standard 2>&1 | less
+# aptitude clean
+
+# mkdir /boot/grub
+# aptitude install grub
+# patch /usr/sbin/update-grub </root/update-grub.diff
+# update-grub
+# patch /boot/grub/menu.lst </root/menu.lst.diff
+# patch /etc/inittab </root/inittab.diff
+
+# rm /root/update-grub.diff
+# ENDCHROOT
+
+# ## kill atd and rpc.statd that are using $DEST
+# umount $DEST/proc
+# umount $DEST
+# losetup -d $LODEV
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/fstab
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/fstab	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/fstab	(revision 720)
@@ -0,0 +1,7 @@
+# /etc/fstab: static file system information.
+#
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
+proc            /proc           proc    defaults        0       0
+/dev/hda1       /               ext3    defaults,errors=remount-ro 0       1
+/dev/hda5       none            swap    sw              0       0
+/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/hosts
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/hosts	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/hosts	(revision 720)
@@ -0,0 +1,10 @@
+127.0.0.1       localhost
+127.0.1.1       moo17.servers.csail.mit.edu     moo17
+
+# The following lines are desirable for IPv6 capable hosts
+::1     ip6-localhost ip6-loopback
+fe00::0 ip6-localnet
+ff00::0 ip6-mcastprefix
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+ff02::3 ip6-allhosts
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/inittab.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/inittab.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/inittab.diff	(revision 720)
@@ -0,0 +1,11 @@
+--- inittab.orig	2008-04-22 05:42:50.000000000 -0400
++++ inittab	2008-04-22 05:43:04.000000000 -0400
+@@ -60,7 +60,7 @@
+ 
+ # Example how to put a getty on a serial line (for a terminal)
+ #
+-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
++T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+ #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+ 
+ # Example how to put a getty on a modem line.
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/interfaces
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/interfaces	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/interfaces	(revision 720)
@@ -0,0 +1,10 @@
+# This file describes the network interfaces available on your system
+# and how to activate them. For more information, see interfaces(5).
+
+# The loopback network interface
+auto lo
+iface lo inet loopback
+
+# The primary network interface
+allow-hotplug eth0
+iface eth0 inet dhcp
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/menu.lst.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/menu.lst.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/menu.lst.diff	(revision 720)
@@ -0,0 +1,11 @@
+--- menu.lst.orig	2008-04-22 05:41:32.000000000 -0400
++++ menu.lst	2008-04-22 05:42:15.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: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/sources.list
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/sources.list	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/sources.list	(revision 720)
@@ -0,0 +1,6 @@
+
+deb http://debian.lcs.mit.edu/debian/ etch main
+deb-src http://debian.lcs.mit.edu/debian/ etch main
+
+deb http://security.debian.org/ etch/updates main
+deb-src http://security.debian.org/ etch/updates main
Index: package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/update-grub.diff
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/update-grub.diff	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/debootstrap.d/update-grub.diff	(revision 720)
@@ -0,0 +1,15 @@
+--- update-grub.orig	2008-04-22 01:13:34.000000000 -0400
++++ update-grub	2008-04-22 01:13:13.000000000 -0400
+@@ -1036,10 +1036,10 @@
+ 
+ 	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=""
Index: package_tags/sipb-xen-guest-installer/1.4/partial/post-copy
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/post-copy	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/post-copy	(revision 720)
@@ -0,0 +1,6 @@
+#!/bin/bash
+TARGET="$1"
+HOSTNAME="$2"
+ROOTPW="$3"
+(printf "%s\n" "$ROOTPW"; sleep .2; printf "%s\n" "$ROOTPW") \
+ | /usr/sbin/chroot "$TARGET" /usr/bin/passwd root
Index: package_tags/sipb-xen-guest-installer/1.4/partial/testpart
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/testpart	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/testpart	(revision 720)
@@ -0,0 +1,4 @@
+,491,L,*
+,31,S
+;
+;
Index: package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/90-make-fstab
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/90-make-fstab	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/90-make-fstab	(revision 720)
@@ -0,0 +1,95 @@
+#!/bin/sh
+#
+#  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
+    
+    # This assumes a particular partition table for our ParaVM's (SIPB)
+    if [ "${partdata2}" = "swap" ]; then
+        echo "/dev/${device}2 none swap sw 0 0" >> ${prefix}/etc/fstab
+    else
+        echo "/dev/${device}1 ${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: package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/97-setup-grub
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/97-setup-grub	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/97-setup-grub	(revision 720)
@@ -0,0 +1,88 @@
+#!/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
+
+
+#
+# Log our start
+#
+logMessage Script $0 starting
+
+#
+# Install the xen kernel
+#
+installDebianPackage ${prefix} linux-image-xen-amd64
+
+#
+# Install grub package
+#
+installDebianPackage ${prefix} grub
+
+#
+# Make the /boot/grub directory
+#
+mkdir -p ${prefix}/boot/grub
+
+#
+# Patch update-grub to see xen kernels
+#
+patch -l ${prefix}/usr/sbin/update-grub </usr/lib/xen-tools/etch.d/patches/update-grub.patch
+
+#
+# Update Grub
+#
+chroot ${prefix} /usr/sbin/update-grub -y
+
+#
+# Patch Grub menu
+#
+patch -l ${prefix}/boot/grub/menu.lst </usr/lib/xen-tools/etch.d/patches/menu.lst.patch
+# --- menu.lst.orig2008-04-22 05:41:32.000000000 -0400
+# +++ menu.lst2008-04-22 05:42:15.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)
+# EOF
+
+#
+# Patch inittab
+#
+patch -l ${prefix}/etc/inittab </usr/lib/xen-tools/etch.d/patches/inittab.patch
+# --- inittab.orig2008-04-22 05:42:50.000000000 -0400
+# +++ inittab2008-04-22 05:43:04.000000000 -0400
+# @@ -60,7 +60,7 @@
+ 
+#  # Example how to put a getty on a serial line (for a terminal)
+#  #
+# -#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+# +T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#  #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+ 
+#  # Example how to put a getty on a modem line.
+# EOF
+
+#
+# Log our finish
+#
+logMessage Script $0 finished
+
Index: package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/inittab.patch
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/inittab.patch	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/inittab.patch	(revision 720)
@@ -0,0 +1,11 @@
+--- temp/etc/inittab	2008-05-04 02:48:09.000000000 -0400
++++ inittab	2008-05-04 02:52:09.000000000 -0400
+@@ -60,7 +60,7 @@
+ 
+ # Example how to put a getty on a serial line (for a terminal)
+ #
+-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
++T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+ #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+ 
+ # Example how to put a getty on a modem line.
Index: package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/menu.lst.patch
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/menu.lst.patch	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/menu.lst.patch	(revision 720)
@@ -0,0 +1,11 @@
+--- temp/boot/grub/menu.lst	2008-05-04 03:17:31.000000000 -0400
++++ 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: package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/update-grub.patch
===================================================================
--- package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/update-grub.patch	(revision 720)
+++ package_tags/sipb-xen-guest-installer/1.4/partial/xen-create-image-mods/patches/update-grub.patch	(revision 720)
@@ -0,0 +1,16 @@
+--- update-grub.orig	2008-05-03 23:30:37.000000000 -0400
++++ 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
