add debirf files
authorGuido Günther <agx@sigxcpu.org>
Tue, 16 Jun 2009 21:47:36 +0000 (23:47 +0200)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 2 Jul 2009 13:12:24 +0000 (14:12 +0100)
13 files changed:
appliance/debian/debirf.conf.in [new file with mode: 0644]
appliance/debian/modules/a0_motd [new symlink]
appliance/debian/modules/a0_prep-root [new symlink]
appliance/debian/modules/install_kernel [new file with mode: 0755]
appliance/debian/modules/network [new symlink]
appliance/debian/modules/root-bashrc [new symlink]
appliance/debian/modules/serial-terminal [new symlink]
appliance/debian/modules/y0_install-guestfsd [new file with mode: 0755]
appliance/debian/modules/z0_remove-aptitude [new symlink]
appliance/debian/modules/z0_remove-locales [new symlink]
appliance/debian/modules/z1_clean-root [new symlink]
appliance/debian/modules/z99_final-cleanups [new file with mode: 0755]
configure.ac

diff --git a/appliance/debian/debirf.conf.in b/appliance/debian/debirf.conf.in
new file mode 100644 (file)
index 0000000..a3dc16f
--- /dev/null
@@ -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 (symlink)
index 0000000..8e3ad2f
--- /dev/null
@@ -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 (symlink)
index 0000000..654bc70
--- /dev/null
@@ -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 (executable)
index 0000000..c1076ce
--- /dev/null
@@ -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 (symlink)
index 0000000..979418d
--- /dev/null
@@ -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 (symlink)
index 0000000..651d030
--- /dev/null
@@ -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 (symlink)
index 0000000..a5376da
--- /dev/null
@@ -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 (executable)
index 0000000..17bbbdc
--- /dev/null
@@ -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 (symlink)
index 0000000..7c56260
--- /dev/null
@@ -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 (symlink)
index 0000000..80a82fa
--- /dev/null
@@ -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 (symlink)
index 0000000..f0d3aad
--- /dev/null
@@ -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 (executable)
index 0000000..ef5fac7
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+rm -rf "$DEBIRF_ROOT"/var/lib/dpkg/info
index 1625327..03f9388 100644 (file)
@@ -523,6 +523,7 @@ AC_CONFIG_FILES([appliance/libguestfs-supermin-helper],
 AC_CONFIG_FILES([Makefile
                 src/Makefile fish/Makefile po/Makefile.in examples/Makefile
                 appliance/Makefile
 AC_CONFIG_FILES([Makefile
                 src/Makefile fish/Makefile po/Makefile.in examples/Makefile
                 appliance/Makefile
+                appliance/debian/debirf.conf
                 images/Makefile
                 capitests/Makefile
                 regressions/Makefile
                 images/Makefile
                 capitests/Makefile
                 regressions/Makefile