diff --git a/hooks/common.sh b/hooks/common.sh index c406a54..e431241 100644 --- a/hooks/common.sh +++ b/hooks/common.sh @@ -78,6 +78,38 @@ function installDebianPackage +# +# Remove a Debian package. +# +function removeDebianPackage +{ + prefix=$1 + package=$2 + + # + # Log our options + # + logMessage "Purging Debian package ${package} from prefix ${prefix}" + + # + # We require a package + prefix + # + assert $LINENO "${package}" + assert $LINENO "${prefix}" + + # + # Prefix must be a directory. + # + assert $LINENO -d ${prefix} + + # + # Purge the package + # + chroot ${prefix} /usr/bin/dpkg --purge ${package} + +} + + # # Install a CentOS4 package via yum # diff --git a/roles/builder b/roles/builder index 149f1aa..efbe277 100755 --- a/roles/builder +++ b/roles/builder @@ -13,16 +13,14 @@ prefix=$1 # -# This function installs a single package into the chroot, forcing -# the installation to be non-interactive. +# Source our common functions - this will let us install a Debian package. # -function install_package -{ - package=$1 - - DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install $package +if [ -e /usr/lib/xen-tools/common.sh ]; then + . /usr/lib/xen-tools/common.sh +else + echo "Installation problem" +fi -} @@ -32,13 +30,14 @@ function install_package # chroot ${prefix} /usr/bin/apt-get update + # # Install the packages # -install_package dpkg-dev -install_package devscripts -install_package fakeroot -install_package debhelper -install_package build-essential -install_package lintian -install_package linda +installDebianPackage ${prefix} dpkg-dev +installDebianPackage ${prefix} devscripts +installDebianPackage ${prefix} fakeroot +installDebianPackage ${prefix} debhelper +installDebianPackage ${prefix} build-essential +installDebianPackage ${prefix} lintian +installDebianPackage ${prefix} linda diff --git a/roles/gdm b/roles/gdm index c9f3621..118b4bb 100755 --- a/roles/gdm +++ b/roles/gdm @@ -11,17 +11,15 @@ prefix=$1 -# -# This function installs a single package into the chroot, forcing -# the installation to be non-interactive. -# -function install_package -{ - package=$1 - - DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install $package -} +# +# Source our common functions - this will let us install a Debian package. +# +if [ -e /usr/lib/xen-tools/common.sh ]; then + . /usr/lib/xen-tools/common.sh +else + echo "Installation problem" +fi @@ -35,14 +33,14 @@ chroot ${prefix} /usr/bin/apt-get update # # Install the packages # -install_package xserver-xfree86 -install_package vncserver -install_package xfonts-100dpi -install_package xfonts-75dpi -install_package xfonts-base -install_package rxvt -install_package gdm -install_package icewm-experimental +installDebianPackage ${prefix} xserver-xfree86 +installDebianPackage ${prefix} vncserver +installDebianPackage ${prefix} xfonts-100dpi +installDebianPackage ${prefix} xfonts-75dpi +installDebianPackage ${prefix} xfonts-base +installDebianPackage ${prefix} rxvt +installDebianPackage ${prefix} gdm +installDebianPackage ${prefix} icewm-experimental # # Add a new section to the GDM configuration file. diff --git a/roles/minimal b/roles/minimal index 2d775a9..9f331d2 100755 --- a/roles/minimal +++ b/roles/minimal @@ -14,38 +14,26 @@ prefix=$1 # -# This function installs a single package into the chroot, forcing -# the installation to be non-interactive. +# Source our common functions - this will let us install a Debian package. # -function install_package -{ - package=$1 - - DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install $package - -} +if [ -e /usr/lib/xen-tools/common.sh ]; then + . /usr/lib/xen-tools/common.sh +else + echo "Installation problem" +fi -# -# This function removes the given package. -# -function remove_package -{ - package=$1 - - chroot ${prefix} /usr/bin/dpkg --purge ${package} -} # # Install some new packages - do this first to avoid dependency errors. # -install_package syslog-ng -install_package deborphan -install_package less -install_package screen -install_package sudo -install_package vim +installDebianPackage ${prefix} syslog-ng +installDebianPackage ${prefix} deborphan +installDebianPackage ${prefix} less +installDebianPackage ${prefix} screen +installDebianPackage ${prefix} sudo +installDebianPackage ${prefix} vim # @@ -53,28 +41,28 @@ install_package vim # # PPP stuff. -remove_package pppconfig -remove_package pppoeconf -remove_package pppoe -remove_package ppp -remove_package libpcap0.7 +removeDebianPackage ${prefix} pppconfig +removeDebianPackage ${prefix} pppoeconf +removeDebianPackage ${prefix} pppoe +removeDebianPackage ${prefix} ppp +removeDebianPackage ${prefix} libpcap0.7 # Editors -remove_package nano -remove_package ed -remove_package nvi +removeDebianPackage ${prefix} nano +removeDebianPackage ${prefix} ed +removeDebianPackage ${prefix} nvi # Syslog -remove_package klogd -remove_package sysklogd +removeDebianPackage ${prefix} klogd +removeDebianPackage ${prefix} sysklogd # manpages -remove_package manpages -remove_package man-db -remove_package info +removeDebianPackage ${prefix} manpages +removeDebianPackage ${prefix} man-db +removeDebianPackage ${prefix} info # misc -remove_package tasksel -remove_package pciutils -remove_package fdutils -remove_package cpio +removeDebianPackage ${prefix} tasksel +removeDebianPackage ${prefix} pciutils +removeDebianPackage ${prefix} fdutils +removeDebianPackage ${prefix} cpio diff --git a/roles/xdm b/roles/xdm index 4458842..f51bf72 100755 --- a/roles/xdm +++ b/roles/xdm @@ -13,16 +13,13 @@ prefix=$1 # -# This function installs a single package into the chroot, forcing -# the installation to be non-interactive. +# Source our common functions - this will let us install a Debian package. # -function install_package -{ - package=$1 - - DEBIAN_FRONTEND=noninteractive chroot ${prefix} /usr/bin/apt-get --yes --force-yes install $package - -} +if [ -e /usr/lib/xen-tools/common.sh ]; then + . /usr/lib/xen-tools/common.sh +else + echo "Installation problem" +fi @@ -35,14 +32,14 @@ chroot ${prefix} /usr/bin/apt-get update # # Install the packages # -install_package xserver-xfree86 -install_package vncserver -install_package xfonts-100dpi -install_package xfonts-75dpi -install_package xfonts-base -install_package rxvt -install_package xdm -install_package icewm-experimental +installDebianPackage ${prefix} xserver-xfree86 +installDebianPackage ${prefix} vncserver +installDebianPackage ${prefix} xfonts-100dpi +installDebianPackage ${prefix} xfonts-75dpi +installDebianPackage ${prefix} xfonts-base +installDebianPackage ${prefix} rxvt +installDebianPackage ${prefix} xdm +installDebianPackage ${prefix} icewm-experimental #