diff options
Diffstat (limited to 'appliance/libguestfs-supermin-helper')
| -rwxr-xr-x | appliance/libguestfs-supermin-helper | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/appliance/libguestfs-supermin-helper b/appliance/libguestfs-supermin-helper deleted file mode 100755 index 0970776b..00000000 --- a/appliance/libguestfs-supermin-helper +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/bash - -# Copyright (C) 2009-2010 Red Hat Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -# Helper script which constructs the supermin appliance at runtime. - -unset CDPATH - -set -e - -if [ $# -ne 5 ]; then - p=`basename $0` - echo - echo "$p: Create supermin appliance." - echo - echo "Usage:" - echo "$p sourcedir host_cpu repo kernel initrd" - echo - echo "This script is used by libguestfs to build the supermin appliance" - echo "(kernel and initrd output files). You should NOT need to run this" - echo "program directly except if you are debugging tricky supermin" - echo "appliance problems." - echo - echo "NB: The kernel and initrd parameters are OUTPUT parameters. If" - echo "those files exist, they are overwritten by the output." - echo - echo "Typical usage when debugging supermin appliance problems:" - echo " $p /usr/lib64/guestfs x86_64 fedora-12 /tmp/kernel /tmp/initrd" - echo "Note: This will OVERWRITE any existing files called /tmp/kernel" - echo "and /tmp/initrd." - echo - exit 1 -fi - -# Source directory containing the supermin input files. -sourcedir=$(cd "$1" > /dev/null; pwd) - -# Host CPU and repo constants passed from the library (see: -# https://bugzilla.redhat.com/show_bug.cgi?id=558593). -host_cpu=$2 -repo=$3 - -# Output files. -kernel="$4" -initrd="$5" - -# Kernel: -# Look for the most recent kernel named vmlinuz-*.<arch>* which has a -# corresponding directory in /lib/modules/. If the architecture is x86, look -# for any x86 kernel. -# -# RHEL 5 didn't append the arch to the kernel name, so look for kernels -# without arch second. - -arch=$(echo $host_cpu | sed 's/^i.86$/i?86/') -kernels=$( - ls -1dvr /boot/vmlinuz-*.$arch* 2>/dev/null | grep -v xen ||: ; - ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen -) - -if [ -z "$kernels" ]; then - echo "$0: failed to find a suitable kernel in /boot directory" >&2 - exit 1 -fi - -for f in $kernels; do - b=$(basename "$f") - b=$(echo "$b" | sed 's,vmlinuz-,,') - modpath="/lib/modules/$b" - if [ -d "$modpath" ]; then - ln -sf "$f" "$kernel" - break - fi - modpath= -done - -if [ -z "$modpath" ]; then - echo "$0: failed to find a suitable kernel" >&2 - exit 1 -fi - -# The initrd consists of these components: -# (1) The base skeleton appliance that we constructed at build time. -# name = initramfs.$repo.$host_cpu.supermin.img -# format = compressed cpio -# (2) The modules from modpath which are on the module whitelist. -# format = plain cpio -# (3) The host files which match wildcards in *.supermin.hostfiles. -# format = plain cpio - -cp "$sourcedir"/initramfs.$repo.$host_cpu.supermin.img "$initrd" - -# Kernel modules (2). -exec 5<"$sourcedir"/kmod.whitelist -whitelist= -while read kmod 0<&5; do - whitelist="$whitelist -o -name $kmod" -done -exec 5<&- - -find "$modpath" \( -not -name '*.ko' $whitelist \) -a -print0 | - cpio --quiet -o -0 -H newc >> "$initrd" - -# Host files (3). - -(cd / && \ - ls -1df $( - cat "$sourcedir"/initramfs.$repo.$host_cpu.supermin.hostfiles - ) 2>/dev/null | - cpio -C 65536 --quiet -o -H newc ) >> "$initrd" |
