diff options
Diffstat (limited to 'appliance')
-rw-r--r-- | appliance/debian/debirf.conf.in | 5 | ||||
l--------- | appliance/debian/modules/a0_motd | 1 | ||||
l--------- | appliance/debian/modules/a0_prep-root | 1 | ||||
-rwxr-xr-x | appliance/debian/modules/install_kernel | 68 | ||||
l--------- | appliance/debian/modules/network | 1 | ||||
l--------- | appliance/debian/modules/root-bashrc | 1 | ||||
l--------- | appliance/debian/modules/serial-terminal | 1 | ||||
-rwxr-xr-x | appliance/debian/modules/y0_install-guestfsd | 33 | ||||
l--------- | appliance/debian/modules/z0_remove-aptitude | 1 | ||||
l--------- | appliance/debian/modules/z0_remove-locales | 1 | ||||
l--------- | appliance/debian/modules/z1_clean-root | 1 | ||||
-rwxr-xr-x | appliance/debian/modules/z99_final-cleanups | 3 |
12 files changed, 117 insertions, 0 deletions
diff --git a/appliance/debian/debirf.conf.in b/appliance/debian/debirf.conf.in new file mode 100644 index 00000000..a3dc16fe --- /dev/null +++ b/appliance/debian/debirf.conf.in @@ -0,0 +1,5 @@ +DEBIRF_LABEL="debirf-libguestfs" +DEBIRF_SUITE=@REPO@ +DEBIRF_MIRROR=@MIRROR@/${DEBIRF_DISTRO} +DEBIRF_KERNEL_ARCH=486 + diff --git a/appliance/debian/modules/a0_motd b/appliance/debian/modules/a0_motd new file mode 120000 index 00000000..8e3ad2f4 --- /dev/null +++ b/appliance/debian/modules/a0_motd @@ -0,0 +1 @@ +/usr/share/debirf/modules/a0_motd
\ No newline at end of file diff --git a/appliance/debian/modules/a0_prep-root b/appliance/debian/modules/a0_prep-root new file mode 120000 index 00000000..654bc70a --- /dev/null +++ b/appliance/debian/modules/a0_prep-root @@ -0,0 +1 @@ +/usr/share/debirf/modules/a0_prep-root
\ No newline at end of file diff --git a/appliance/debian/modules/install_kernel b/appliance/debian/modules/install_kernel new file mode 100755 index 00000000..c1076ce1 --- /dev/null +++ b/appliance/debian/modules/install_kernel @@ -0,0 +1,68 @@ +#!/bin/bash -e + +# debirf module: install-kernel +# install a kernel package, indicated by the expected environment +# variables: +# DEBIRF_PATH +# DEBIRF_ROOT +# DEBIRF_KERNEL_PACKAGE +# +# *** REQUIRED MODULE *** +# WARNING: this module is necessary for proper functioning of debirf. +# +# The debirf scripts were written by +# Jameson Rollins <jrollins@fifthhorseman.net> +# and +# Daniel Kahn Gillmor <dkg-debian.org@fifthhorseman.net>. +# +# They are Copyright 2007, and are all released under the GPL, +# version 3 or later. + +# clear out old modules if they exist, to avoid confusion +rm -rf "$DEBIRF_ROOT/lib/modules" + +# download/copy in kernel package +if [ -z "$DEBIRF_KERNEL_PACKAGE" ] ; then + # determine kernel to install. assume arch of build host. + + # determine kernel arch. need everything after the kernel version + # and debian version + if [ -z "$DEBIRF_KERNEL_ARCH" ]; then + KARCH=$(uname -r | cut -d- -f3-) + else + KARCH="$DEBIRF_KERNEL_ARCH" + fi + + # determine the full kernel version from the dependency of the + # generic 2.6-ARCH package in the debirf root (since it may be + # different than what is installed on the build host) + KNAME=$(debirf_exec apt-cache show linux-image-2.6-"$KARCH" | grep '^Depends: ' | sed 's/^Depends: //') + + # download only the desired kernel package directly into the apt + # cache for dpkg extraction + debirf_exec sh -c "cd /var/cache/apt/archives/ && aptitude download \"$KNAME\"" +else + # install kernel deb if given at command line + debirf_exec sh -c "cd /var/cache/apt/archives/ && aptitude download \"$DEBIRF_KERNEL_PACKAGE\"" +fi + +KPKG=$(basename "$DEBIRF_ROOT"/var/cache/apt/archives/linux-image-2.6.*) + +echo "extracting kernel package $KPKG..." +debirf_exec dpkg --extract /var/cache/apt/archives/"$KPKG" / + +# install the module init tools, since they are needed for depmod +debirf_exec apt-get --assume-yes install module-init-tools + +# depmod to create module list +KVERS=$(ls -1 -t "$DEBIRF_ROOT/lib/modules" | head -n1) +echo "generating modules.dep..." +debirf_exec depmod -a "$KVERS" + +# extract kernel and debian stock initrd from the build root: +mv "$DEBIRF_ROOT"/boot/vmlinu* "$DEBIRF_BUILDD" + +# remove kernel symlinks +if [ -L "$DEBIRF_ROOT"/vmlinuz ] ; then + rm "$DEBIRF_BUILDD"/vmlinuz +fi diff --git a/appliance/debian/modules/network b/appliance/debian/modules/network new file mode 120000 index 00000000..979418d5 --- /dev/null +++ b/appliance/debian/modules/network @@ -0,0 +1 @@ +/usr/share/debirf/modules/network
\ No newline at end of file diff --git a/appliance/debian/modules/root-bashrc b/appliance/debian/modules/root-bashrc new file mode 120000 index 00000000..651d030a --- /dev/null +++ b/appliance/debian/modules/root-bashrc @@ -0,0 +1 @@ +/usr/share/debirf/modules/root-bashrc
\ No newline at end of file diff --git a/appliance/debian/modules/serial-terminal b/appliance/debian/modules/serial-terminal new file mode 120000 index 00000000..a5376dae --- /dev/null +++ b/appliance/debian/modules/serial-terminal @@ -0,0 +1 @@ +/usr/share/debirf/modules/serial-terminal
\ No newline at end of file diff --git a/appliance/debian/modules/y0_install-guestfsd b/appliance/debian/modules/y0_install-guestfsd new file mode 100755 index 00000000..17bbbdc0 --- /dev/null +++ b/appliance/debian/modules/y0_install-guestfsd @@ -0,0 +1,33 @@ +#!/bin/bash -e +# install guestfsd specific stuff + +# Kernel modules take up nearly half of the image. Only include ones +# which are on the whitelist. +exec 5<../appliance/kmod.whitelist +whitelist= +while read kmod 0<&5; do + whitelist="$whitelist -a -not -name $kmod" +done +exec 5<&- + +echo "Module whitelist: $whitelist" +find $DEBIRF_ROOT/lib/modules/*/kernel -name '*.ko' $whitelist -a -exec rm '{}' \; + +# install additional packages: +PKGLIST=$(< packagelist) +echo "Will add $PKGLIST" +debirf_exec aptitude -R -y install $PKGLIST +debirf_exec aptitude -y remove vim-tiny dhcp3-client iptables + +debirf_exec mkdir -p --mode=0777 /sysroot + +# cleanup some other heavy lifters: +rm -rf "$DEBIRF_ROOT"/usr/share/doc/ +rm -rf "$DEBIRF_ROOT"/usr/share/zoneinfo/ +rm -rf "$DEBIRF_ROOT"/usr/share/man/ + +# Install the actual appliance: +echo $PWD +install -o root -g root -m 0755 ../daemon/guestfsd "$DEBIRF_ROOT"/sbin/guestfsd +install -o root -g root -m 0755 init "$DEBIRF_ROOT"/sbin/init + diff --git a/appliance/debian/modules/z0_remove-aptitude b/appliance/debian/modules/z0_remove-aptitude new file mode 120000 index 00000000..7c56260c --- /dev/null +++ b/appliance/debian/modules/z0_remove-aptitude @@ -0,0 +1 @@ +/usr/share/debirf/modules/z0_remove-aptitude
\ No newline at end of file diff --git a/appliance/debian/modules/z0_remove-locales b/appliance/debian/modules/z0_remove-locales new file mode 120000 index 00000000..80a82fab --- /dev/null +++ b/appliance/debian/modules/z0_remove-locales @@ -0,0 +1 @@ +/usr/share/debirf/modules/z0_remove-locales
\ No newline at end of file diff --git a/appliance/debian/modules/z1_clean-root b/appliance/debian/modules/z1_clean-root new file mode 120000 index 00000000..f0d3aad9 --- /dev/null +++ b/appliance/debian/modules/z1_clean-root @@ -0,0 +1 @@ +/usr/share/debirf/modules/z1_clean-root
\ No newline at end of file diff --git a/appliance/debian/modules/z99_final-cleanups b/appliance/debian/modules/z99_final-cleanups new file mode 100755 index 00000000..ef5fac79 --- /dev/null +++ b/appliance/debian/modules/z99_final-cleanups @@ -0,0 +1,3 @@ +#!/bin/sh + +rm -rf "$DEBIRF_ROOT"/var/lib/dpkg/info |