diff options
Diffstat (limited to 'helpers')
-rwxr-xr-x | helpers/lh_binary | 4 | ||||
-rwxr-xr-x | helpers/lh_binary_debian-installer | 155 | ||||
-rwxr-xr-x | helpers/lh_binary_disk | 109 | ||||
-rwxr-xr-x | helpers/lh_binary_grub | 52 | ||||
-rwxr-xr-x | helpers/lh_binary_hacks | 56 | ||||
-rwxr-xr-x | helpers/lh_binary_includes | 66 | ||||
-rwxr-xr-x | helpers/lh_binary_iso | 2 | ||||
-rwxr-xr-x | helpers/lh_binary_linux-image | 27 | ||||
-rwxr-xr-x | helpers/lh_binary_manifest | 19 | ||||
-rwxr-xr-x | helpers/lh_binary_md5sum | 13 | ||||
-rwxr-xr-x | helpers/lh_binary_memtest | 20 | ||||
-rwxr-xr-x | helpers/lh_binary_rootfs | 2 | ||||
-rwxr-xr-x | helpers/lh_binary_syslinux | 246 | ||||
-rwxr-xr-x | helpers/lh_binary_usb-hdd | 4 | ||||
-rwxr-xr-x | helpers/lh_binary_yaboot | 35 | ||||
-rwxr-xr-x | helpers/lh_chroot | 2 | ||||
-rwxr-xr-x | helpers/lh_chroot_hostname | 98 | ||||
-rwxr-xr-x | helpers/lh_chroot_hosts | 14 | ||||
-rwxr-xr-x | helpers/lh_chroot_resolv | 2 | ||||
-rwxr-xr-x | helpers/lh_config | 5 | ||||
-rwxr-xr-x | helpers/lh_source | 3 | ||||
-rwxr-xr-x | helpers/lh_source_disk | 84 | ||||
-rwxr-xr-x | helpers/lh_source_md5sum | 14 | ||||
-rwxr-xr-x | helpers/lh_source_usb-hdd | 2 | ||||
-rwxr-xr-x | helpers/make-live | 2 |
25 files changed, 767 insertions, 269 deletions
diff --git a/helpers/lh_binary b/helpers/lh_binary index fb91cb3..e45491e 100755 --- a/helpers/lh_binary +++ b/helpers/lh_binary @@ -32,6 +32,7 @@ lh_chroot_proc install ${*} lh_chroot_sysfs install ${*} lh_chroot_hosts install ${*} lh_chroot_resolv install ${*} +lh_chroot_hostname install ${*} lh_chroot_sources install ${*} # Building root filesystem @@ -46,9 +47,11 @@ lh_binary_memtest ${*} lh_binary_grub ${*} lh_binary_syslinux ${*} lh_binary_yaboot ${*} +lh_binary_disk ${*} lh_binary_includes ${*} lh_binary_local-includes ${*} lh_binary_local-hooks ${*} +lh_binary_hacks ${*} lh_binary_md5sum ${*} # Building images @@ -59,6 +62,7 @@ lh_binary_usb-hdd ${*} # Deconfiguring chroot rm -f .stage/chroot_sources +lh_chroot_hostname remove ${*} lh_chroot_resolv remove ${*} lh_chroot_hosts remove ${*} lh_chroot_sysfs remove ${*} diff --git a/helpers/lh_binary_debian-installer b/helpers/lh_binary_debian-installer index 8bb9a77..4d98629 100755 --- a/helpers/lh_binary_debian-installer +++ b/helpers/lh_binary_debian-installer @@ -32,10 +32,29 @@ Read_conffile config/binary Read_conffile config/source Set_defaults -if [ "${LIVE_DEBIAN_INSTALLER}" != "enabled" ] -then - exit 0 -fi +# Setting remote d-i directories +case "${LIVE_DEBIAN_INSTALLER}" in + netinst) + DI="netboot/debian-installer/i386" + DI_GTK="netboot/gtk/debian-installer/i386" + DI_KERNEL="linux" + ;; + + cdrom|enabled) + DI="cdrom" + DI_GTK="${DI}/gtk" + DI_KERNEL="vmlinuz" + ;; + + disabled) + exit 0 + ;; + + *) + Echo_error "debian-installer flavor ${LIVE_DEBIAN_INSTALLER} not supported." + exit 1 + ;; +esac Echo_message "Begin installing debian-installer..." @@ -55,7 +74,6 @@ Create_lockfile .lock case "${LIVE_BINARY_IMAGES}" in iso) DESTDIR="binary/install" - DI="cdrom" ;; net) @@ -68,7 +86,6 @@ case "${LIVE_BINARY_IMAGES}" in tar|usb-hdd) DESTDIR="binary/install" - DI="hd-media" # Workaround for syslinux (<< 3.36) which doesn't support long file/path names if [ "${LIVE_DISTRIBUTION}" = "etch" ] && [ "${LIVE_BOOTLOADER}" = "syslinux" ] @@ -130,17 +147,17 @@ if [ "${LIVE_DISTRIBUTION}" = "sid" ] # FIXME arch then case "${LIVE_ARCHITECTURE}" in amd64) - wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/vmlinuz - wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/initrd.gz + wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" http://people.debian.org/~aba/d-i/images/daily/${DI}/${DI_KERNEL} + wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" http://people.debian.org/~aba/d-i/images/daily/${DI}/initrd.gz ;; i386) - wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/vmlinuz - wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/initrd.gz + wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" http://people.debian.org/~joeyh/d-i/images/daily/${DI}/${DI_KERNEL} + wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" http://people.debian.org/~joeyh/d-i/images/daily/${DI}/initrd.gz ;; esac else - wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/vmlinuz + wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/"${DI_KERNEL}" wget --no-clobber -O "${DESTDIR}"/"${INITRD_DI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/initrd.gz fi @@ -153,43 +170,47 @@ then then case "${LIVE_ARCHITECTURE}" in amd64) - wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/gtk/vmlinuz - wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" http://people.debian.org/~aba/d-i/images/daily/cdrom/gtk/initrd.gz + wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" http://people.debian.org/~aba/d-i/images/daily/${DI_GTK}/${DI_KERNEL} + wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" http://people.debian.org/~aba/d-i/images/daily/${DI_GTK}/initrd.gz ;; i386) - wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/gtk/vmlinuz - wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" http://people.debian.org/~joeyh/d-i/images/daily/cdrom/gtk/initrd.gz + wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" http://people.debian.org/~joeyh/d-i/images/daily/${DI_GTK}/${DI_KERNEL} + wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" http://people.debian.org/~joeyh/d-i/images/daily/${DI_GTK}/initrd.gz ;; esac else - wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/vmlinuz - wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI}"/gtk/initrd.gz + wget --no-clobber -O "${DESTDIR}"/"${VMLINUZ_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI_GTK}"/"${DI_KERNEL}" + wget --no-clobber -O "${DESTDIR}"/"${INITRD_GI}" "${LIVE_MIRROR_BOOTSTRAP}"/dists/"${LIVE_DISTRIBUTION}"/main/installer-"${LIVE_ARCHITECTURE}"/current/images/"${DI_GTK}"/initrd.gz fi fi -# Downloading additional packages -mkdir -p chroot/binary.deb/archives/partial -mv chroot/var/lib/dpkg/status chroot/var/lib/dpkg/status.tmp -touch chroot/var/lib/dpkg/status +if [ "${LIVE_DEBIAN_INSTALLER}" != "netinst" ]; then + # Downloading additional packages + mkdir -p chroot/binary.deb/archives/partial + mv chroot/var/lib/dpkg/status chroot/var/lib/dpkg/status.tmp + touch chroot/var/lib/dpkg/status -case "${LIVE_ARCHITECTURE}" in - amd64) - DI_PACKAGES="linux-image-2.6-amd64 elilo lilo grub" - ;; + case "${LIVE_ARCHITECTURE}" in + amd64) + DI_PACKAGES="linux-image-2.6-amd64 lilo grub" + ;; - i386) - DI_PACKAGES="linux-image-2.6-486 linux-image-2.6-686 elilo lilo grub" - ;; + i386) + DI_PACKAGES="linux-image-2.6-486 linux-image-2.6-686 elilo lilo grub" + ;; - powerpc) - DI_PACKAGES="linux-image-2.6-powerpc linux-image-2.6-powerpc64 linux-image-2.6-powerpc-smp linux-image-2.6-prep yaboot" # FIXME bootloader? - ;; -esac + powerpc) + DI_PACKAGES="linux-image-2.6-powerpc linux-image-2.6-powerpc64 linux-image-2.6-powerpc-smp linux-image-2.6-prep yaboot" # FIXME bootloader? + ;; + esac + + DI_PACKAGES="${DI_PACKAGES} cryptsetup lvm2" -Chroot "apt-get -o Dir::Cache=/binary.deb --download-only install --yes ${DI_PACKAGES}" -mv chroot/binary.deb ./ -mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status + Chroot "apt-get -o Dir::Cache=/binary.deb --download-only install --yes ${DI_PACKAGES}" + mv chroot/binary.deb ./ + mv chroot/var/lib/dpkg/status.tmp chroot/var/lib/dpkg/status +fi # Including base debian packages if [ -d cache/packages_bootstrap ] @@ -221,6 +242,36 @@ then done fi +# Including local debs +if ls ../config/binary_local-debs/* &> /dev/null +then + for FILE in ../config/binary_local-debs/*.deb + do + SOURCE="`dpkg -f ${FILE} Source | awk '{ print $1 }'`" + + if [ -z "${SOURCE}" ] + then + SOURCE="`basename ${FILE} | awk -F_ '{ print $1 }'`" + fi + + case "${SOURCE}" in + lib?*) + LETTER="`echo ${SOURCE} | sed 's/\(....\).*/\1/'`" + ;; + + *) + LETTER="`echo ${SOURCE} | sed 's/\(.\).*/\1/'`" + ;; + esac + + # Install directory + mkdir -p binary/pool/main/"${LETTER}"/"${SOURCE}" + + # Move files + cp "${FILE}" binary/pool/main/"${LETTER}"/"${SOURCE}" + done +fi + # Generating deb indices mkdir -p binary/dists/${LIVE_DISTRIBUTION}/main/binary-${LIVE_ARCHITECTURE} @@ -256,9 +307,21 @@ UDEBS="`awk '/Filename: / { print $2 }' Packages`" # Downloading udebs for UDEB in ${UDEBS} do - wget "${LIVE_MIRROR_BOOTSTRAP}"/${UDEB} + if [ -f ../cache/packages_debian-installer.udeb/"`basename ${UDEB}`" ] + then + # Copying cached udebs + cp -l ../cache/packages_debian-installer.udeb/"`basename ${UDEB}`" ./ + else + # Downloading udebs + wget "${LIVE_MIRROR_BOOTSTRAP}"/${UDEB} + fi done +# Caching udebs +rm -rf ../cache/packages_debian-installer.udeb +mkdir -p ../cache/packages_debian-installer.udeb +cp -l *.udeb ../cache/packages_debian-installer.udeb + # Including local udebs if ls ../config/binary_local-udebs/* &> /dev/null then @@ -345,25 +408,5 @@ done ln -s . binary/debian -# Creating disk info -mkdir binary/.disk -echo "main" > binary/.disk/base_components -touch binary/.disk/base_installable -echo "not_complete" > binary/.disk/cd_type -echo "Debian GNU/Linux ${LIVE_DISTRIBUTION} - Unofficial ${LIVE_ARCHITECTURE} LIVE Binary `date +%Y%m%d-%H:%M`" > binary/.disk/info -touch binary/.disk/mkisofs -cat > binary/.disk/udeb_include << EOF -netcfg -ethdetect -pcmcia-cs-udeb -pcmciautils-udeb -wireless-tools-udeb -EOF - -if [ -d binary/pool/main/l/live-installer ] -then - echo "live-installer" >> binary/.disk/udeb_include -fi - # Creating stage file Create_stagefile .stage/binary_debian-installer diff --git a/helpers/lh_binary_disk b/helpers/lh_binary_disk new file mode 100755 index 0000000..3bc1230 --- /dev/null +++ b/helpers/lh_binary_disk @@ -0,0 +1,109 @@ +#!/bin/sh + +# lh_binary_disk (1) - install disk information into binary +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +# Including common functions +LH_BASE="${LH_BASE:-/usr/share/live-helper}" + +for FUNCTION in "${LH_BASE}"/functions/*.sh +do + . "${FUNCTION}" +done + +# Setting static variables +DESCRIPTION="install disk information into binary" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffile config/common +Read_conffile config/bootstrap +Read_conffile config/chroot +Read_conffile config/binary +Read_conffile config/source +Set_defaults + +if [ "${LIVE_BINARY_IMAGES}" != "iso" ] +then + exit 0 +fi + +Echo_message "Begin installing disk information..." + +# Requiring stage file +Require_stagefile .stage/bootstrap + +# Checking stage file +Check_stagefile .stage/binary_disk + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +mkdir -p binary/.disk + +ARCHITECTURE="`echo ${LIVE_ARCHITECTURE} | sed -e 's# #/#g'`" +DISTRIBUTION="`echo ${LIVE_DISTRIBUTION} | cut -b 1 | tr '[a-z]' '[A-Z]'`" +DISTRIBUTION="${DISTRIBUTION}`echo ${LIVE_DISTRIBUTION} | cut -b 2-`" +eval VERSION="$`echo VERSION_${LIVE_DISTRIBUTION}`" + +case "${LH_MODE}" in + debian) + if [ -d binary/pool/main/b/base-installer ] + then + if [ -d binary/pool/main/l/live-installer ] + then + TYPE="LIVE/INSTALL" + fi + + TYPE="LIVE/NETINST" + else + TYPE="LIVE" + fi + + echo "Debian GNU/Linux ${VERSION} \"${DISTRIBUTION}\" - Official ${ARCHITECTURE} ${TYPE} Binary `date +%Y%m%d-%H:%M`" > binary/.disk/info + ;; + + ubuntu) + echo "Ubuntu Linux ${VERSION} \"${DISTRIBUTION}\" - Unofficial ${ARCHITECTURE} LIVE/NETINST Binary `date +%Y%m%d-%H:%M`" > binary/.disk/info + # Ubuntu 7.04 "Feisty Fawn" - Release i386 (20070418) + ;; +esac + +if [ "${LIVE_DEBIAN_INSTALLER}" != "disabled" ] +then + echo "main" > binary/.disk/base_components + + touch binary/.disk/base_installable + + echo "not_complete" > binary/.disk/cd_type + + #touch binary/.disk/mkisofs + +cat > binary/.disk/udeb_include << EOF +netcfg +ethdetect +pcmcia-cs-udeb +pcmciautils-udeb +wireless-tools-udeb +EOF + + if [ -d binary/pool/main/l/live-installer ] + then + echo "live-installer" >> binary/.disk/udeb_include + fi +fi + +# Creating stage file +Create_stagefile .stage/binary_disk diff --git a/helpers/lh_binary_grub b/helpers/lh_binary_grub index d559f63..8cf4ed7 100755 --- a/helpers/lh_binary_grub +++ b/helpers/lh_binary_grub @@ -45,35 +45,17 @@ Require_stagefile .stage/bootstrap # Checking stage file Check_stagefile .stage/binary_grub +# Checking grub templates +Check_templates grub + # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock -if [ "${LIVE_ARCHITECTURE}" != "amd64" ] && [ "${LIVE_ARCHITECTURE}" != "i386" ] -then - Echo_warning "skipping binary_grub, foreign architecture." - exit 0 -fi - -# Check user templates -if [ ! -d "${LIVE_TEMPLATES}" ] -then - if [ -d ../"${LIVE_TEMPLATES}" ] - then - LIVE_TEMPLATES="../${LIVE_TEMPLATES}" - else - Echo_error "user specified templates not accessible in ${LIVE_TEMPLATES}" - exit 1 - fi -fi - -# Check local templates -if [ -d config/templates/grub ] -then - LIVE_TEMPLATES="config/templates" -fi +# Check architecture +Check_architecture amd64 i386 # Checking depends Check_package chroot/usr/sbin/grub grub @@ -93,13 +75,22 @@ esac # Setting destination directory case "${LIVE_BINARY_IMAGES}" in - iso|tar|usb-hdd) - DESTDIR_LIVE="binary/live" + iso|tar) + case "${LH_INITRAMFS}" in + casper) + DESTDIR_LIVE="binary/casper" + ;; + + live-initramfs) + DESTDIR_LIVE="binary/live" + ;; + esac + DESTDIR_INSTALL="binary/install" ;; - net) - Echo_error "not supported, aborting (FIXME)." + usb-hdd|net) + Echo_error "not yet supported, aborting (FIXME)." exit 1 ;; esac @@ -165,6 +156,11 @@ then esac fi +if [ "${LIVE_UNION_FILESYSTEM}" != "unionfs" ] +then + LIVE_BOOTAPPEND="${LIVE_BOOTAPPEND} union=${LIVE_UNION_FILESYSTEM}" +fi + LIVE_BOOTAPPEND="`echo ${LIVE_BOOTAPPEND} | sed -e 's/ //'`" # Parameters are listed at: linux/Documentation/kernel-parameters.txt @@ -194,7 +190,7 @@ fi LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`" # Assembling debian-installer configuration -if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] +if [ "${LIVE_DEBIAN_INSTALLER}" != "disabled" ] then LINUX="title\t\tLive:\nroot\n\n${LINUX}" diff --git a/helpers/lh_binary_hacks b/helpers/lh_binary_hacks new file mode 100755 index 0000000..04759db --- /dev/null +++ b/helpers/lh_binary_hacks @@ -0,0 +1,56 @@ +#!/bin/sh + +# lh_binary_hacks(1) - execute hacks in binary +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +# Including common functions +LH_BASE="${LH_BASE:-/usr/share/live-helper}" + +for FUNCTION in "${LH_BASE}"/functions/*.sh +do + . "${FUNCTION}" +done + +# Setting static variables +DESCRIPTION="execute hacks in binary" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffile config/common +Read_conffile config/bootstrap +Read_conffile config/chroot +Read_conffile config/binary +Read_conffile config/source +Set_defaults + +Echo_message "Begin executing hacks..." + +# Requiring stage file +Require_stagefile .stage/bootstrap + +# Checking stage file +Check_stagefile .stage/binary_hacks + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +# Removing live-initramfs docs +if [ "${LH_INITRAMFS}" = "casper" ] +then + rm -f binary/parameters.txt +fi + +# Creating stage file +Create_stagefile .stage/binary_hacks diff --git a/helpers/lh_binary_includes b/helpers/lh_binary_includes index 0841f40..6660699 100755 --- a/helpers/lh_binary_includes +++ b/helpers/lh_binary_includes @@ -84,14 +84,41 @@ case "${LIVE_ARCHITECTURE}" in ;; esac -if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] +# Working arround vfat limitations +if [ "${LIVE_BINARY_IMAGE}" = "usb-hdd" ] then - # Working arround vfat limitations - if [ "${LIVE_BINARY_IMAGE}" = "usb-hdd" ] - then - CP_OPTIONS="-L" - fi + CP_OPTIONS="-L" +fi + +# Copying common templates +if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/common ] && \ +ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/common/* &> /dev/null +then + cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/common/* binary +fi + +if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/common."${ARCH}" ] && \ +ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/common."${ARCH}"/* &> /dev/null +then + cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/common."${ARCH}"/* binary +fi + +# Copying live templates +if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live ] && \ +ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live/* &> /dev/null +then + cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live/* binary +fi + +if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live."${ARCH}" ] && \ +ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live."${ARCH}"/* &> /dev/null +then + cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live."${ARCH}"/* binary +fi + +if [ "${LIVE_DEBIAN_INSTALLER}" != "disabled" ] +then # Copying install templates if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install ] && \ ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install/* &> /dev/null @@ -106,7 +133,19 @@ then fi # Adjusting install templates - DEBIAN_NAME="Debian GNU/Linux 4.0 r0 \"Etch\" - Unofficial amd64 NETINST/LIVE Binary-1" + ARCHITECTURE="`echo ${LIVE_ARCHITECTURE} | sed -e 's# #/#g'`" + DISTRIBUTION="`echo ${LIVE_DISTRIBUTION} | cut -b 1 | tr '[a-z]' '[A-Z]'`" + DISTRIBUTION="${DISTRIBUTION}`echo ${LIVE_DISTRIBUTION} | cut -b 2-`" + eval VERSION="$`echo VERSION_${LIVE_DISTRIBUTION}`" + + if [ -d binary/pool/main/l/live-installer ] + then + TYPE="LIVE/INSTALL" + fi + + TYPE="LIVE/NETINST" + + DEBIAN_NAME="Debian GNU/Linux ${VERSION} \"${DISTRIBUTION}\" - Official ${ARCHITECTURE} ${TYPE} Binary `date +%Y%m%d-%H:%M`" DEBIAN_DATE="`date +%Y%m%d-%H:%M`" if [ "${LIVE_ARCHITECTURE}" = "i386" ] @@ -122,18 +161,5 @@ then sed -i -e "s#DEBIAN_NAME#${DEBIAN_NAME}#g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s#DEBIAN_TOOLS#${DEBIAN_TOOLS_TXT}#g" binary/README.txt fi -# Copying live templates -if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live ] && \ -ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live/* &> /dev/null -then - cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live/* binary -fi - -if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live."${ARCH}" ] && \ -ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live."${ARCH}"/* &> /dev/null -then - cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/live."${ARCH}"/* binary -fi - # Creating stage file Create_stagefile .stage/binary_includes diff --git a/helpers/lh_binary_iso b/helpers/lh_binary_iso index e6c8ccc..ce17db7 100755 --- a/helpers/lh_binary_iso +++ b/helpers/lh_binary_iso @@ -105,7 +105,7 @@ case "${LIVE_BOOTLOADER}" in syslinux) GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -no-emul-boot -boot-load-size 4 -boot-info-table" - GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -b isolinux/isolinux.bin -c isolinux/boot.cat" + GENISOIMAGE_OPTIONS="${GENISOIMAGE_OPTIONS} -r -b isolinux/isolinux.bin -c isolinux/boot.cat" if [ "${LIVE_PACKAGES_LISTS}" = "mini" ] || [ "${LIVE_PACKAGES_LISTS}" = "minimal" ] then diff --git a/helpers/lh_binary_linux-image b/helpers/lh_binary_linux-image index c6bb3f8..153e476 100755 --- a/helpers/lh_binary_linux-image +++ b/helpers/lh_binary_linux-image @@ -52,7 +52,15 @@ rm -f chroot/boot/initrd*bak* # Setting destination directory case "${LIVE_BINARY_IMAGES}" in iso) - DESTDIR="binary/live" + case "${LH_INITRAMFS}" in + casper) + DESTDIR="binary/casper" + ;; + + live-initramfs) + DESTDIR="binary/live" + ;; + esac ;; net) @@ -70,6 +78,20 @@ case "${LIVE_BINARY_IMAGES}" in ;; esac +case "${LIVE_ARCHITECTURE}" in + amd64) + LINUX="vmlinuz" + ;; + + i386) + LINUX="vmlinuz" + ;; + + powerpc) + LINUX="vmlinux" + ;; +esac + # Temporary check for broken syslinux if [ "${LIVE_BINARY_IMAGES}" = "iso" ] then @@ -79,17 +101,14 @@ then case "${LIVE_ARCHITECTURE}" in amd64) DESTDIR="${DESTDIR}.amd" - LINUX="vmlinuz" ;; i386) DESTDIR="${DESTDIR}.386" - LINUX="vmlinuz" ;; powerpc) DESTDIR="${DESTDIR}.ppc" - LINUX="vmlinux" ;; esac fi diff --git a/helpers/lh_binary_manifest b/helpers/lh_binary_manifest index 0ff6fa6..779d2ed 100755 --- a/helpers/lh_binary_manifest +++ b/helpers/lh_binary_manifest @@ -48,19 +48,22 @@ Create_lockfile .lock case "${LH_INITRAMFS}" in casper) - INITFS="casper" + # Add filesystem.manifest + Chroot "dpkg --get-selections" | awk '{ print $1 }' | sort -u > binary/casper/filesystem.manifest ;; live-initramfs) - INITFS="live" - ;; -esac + # Add packages.list + +cat > binary/packages.txt << EOF +This file contains the list of all packages installed in this live system. -# Add filesystem.manifest -Chroot "dpkg --get-selections" | awk '{ print $1 }' | sort -u > binary/${INITFS}/filesystem.manifest -# Add packages.list -Chroot "dpkg -l" > binary/packages.txt +EOF + + Chroot "dpkg -l" >> binary/packages.txt + ;; +esac # Creating stage file Create_stagefile .stage/binary_manifest diff --git a/helpers/lh_binary_md5sum b/helpers/lh_binary_md5sum index 861bce0..cb901c8 100755 --- a/helpers/lh_binary_md5sum +++ b/helpers/lh_binary_md5sum @@ -55,7 +55,18 @@ fi # Calculating md5sums cd binary find . -type f | sort | grep -v 'isolinux/isolinux.bin' | grep -v 'boot/grub/stage2_eltorito' | xargs md5sum > ../md5sum.txt -mv ../md5sum.txt ./ + +cat > md5sum.txt << EOF +This file contains the list of md5 checksums of all files on this medium. + +You can verify them automatically with the 'integrity-check' boot parameter, +or, manually with: 'md5sum -c md5sum.txt'. + + +EOF + +cat ../md5sum.txt >> md5sum.txt +rm -f ../md5sum.txt cd "${OLDPWD}" diff --git a/helpers/lh_binary_memtest b/helpers/lh_binary_memtest index 329f566..2d413fd 100755 --- a/helpers/lh_binary_memtest +++ b/helpers/lh_binary_memtest @@ -74,7 +74,15 @@ Install_package # Setting destination directory case "${LIVE_BINARY_IMAGES}" in iso) - DESTDIR="binary/live" + case "${LH_INITRAMFS}" in + casper) + DESTDIR="binary/casper" + ;; + + live-initramfs) + DESTDIR="binary/live" + ;; + esac ;; net) @@ -82,7 +90,15 @@ case "${LIVE_BINARY_IMAGES}" in ;; tar|usb-hdd) - DESTDIR="binary/live" + case "${LH_INITRAMFS}" in + casper) + DESTDIR="binary/casper" + ;; + + live-initramfs) + DESTDIR="binary/live" + ;; + esac # Workaround for syslinux (<< 3.36) which doesn't support long file/path names if [ "${LIVE_DISTRIBUTION}" = "etch" ] && [ "${LIVE_BOOTLOADER}" = "syslinux" ] diff --git a/helpers/lh_binary_rootfs b/helpers/lh_binary_rootfs index 8c370b4..6f31f4e 100755 --- a/helpers/lh_binary_rootfs +++ b/helpers/lh_binary_rootfs @@ -153,7 +153,7 @@ case "${LIVE_CHROOT_FILESYSTEM}" in if [ "${LIVE_PACKAGES_LISTS}" != "minimal" ] && [ "${LIVE_PACKAGES_LISTS}" != "mini" ] then - MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -e chroot/boot/${LINUX}* chroot/boot/initrd.img* chroot/${LINUX}* chroot/initrd.img* chroot/boot/config-* chroot/boot/System.map-*" + MKSQUASHFS_OPTIONS="${MKSQUASHFS_OPTIONS} -e chroot/boot/${LINUX}* chroot/boot/initrd.img* chroot/${LINUX}* chroot/initrd.img*" fi if [ -f config/binary_rootfs/squashfs.sort ] diff --git a/helpers/lh_binary_syslinux b/helpers/lh_binary_syslinux index 73c29e5..bfd0c0f 100755 --- a/helpers/lh_binary_syslinux +++ b/helpers/lh_binary_syslinux @@ -45,35 +45,17 @@ Require_stagefile .stage/bootstrap # Checking stage file Check_stagefile .stage/binary_syslinux +# Checking syslinux templates +Check_templates syslinux + # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock -if [ "${LIVE_ARCHITECTURE}" != "amd64" ] && [ "${LIVE_ARCHITECTURE}" != "i386" ] -then - Echo_warning "skipping binary_syslinux, foreign architecture." - exit 0 -fi - -# Checking user templates -if [ ! -d "${LIVE_TEMPLATES}" ] -then - if [ -d ../"${LIVE_TEMPLATES}" ] - then - LIVE_TEMPLATES="../${LIVE_TEMPLATES}" - else - Echo_error "user specified templates not accessible in ${LIVE_TEMPLATES}" - exit 1 - fi -fi - -# Check local templates -if [ -d config/templates/syslinux ] -then - LIVE_TEMPLATES="config/templates" -fi +# Check architecture +Check_architecture amd64 i386 # Checking depends Check_package chroot/usr/bin/syslinux syslinux @@ -81,6 +63,47 @@ Check_package chroot/usr/bin/syslinux syslinux # Installing depends Install_package +# Local methods +Syslinux_live_entry () +{ + LABEL="${1}" + KERNEL="${2}" + INITRD="${3}" + APPEND="${4}" + + # pxelinux and syslinux << 3.36 lacks support to file/path + if [ "${LIVE_BINARY_IMAGES}" != "net" ] && [ "${DIRECTORY}" != "binary" ] + then + DIRECTORY="/`basename ${DESTDIR_LIVE}`" + KERNEL="${DIRECTORY}/${KERNEL}" + INITRD="${DIRECTORY}/${INITRD}" + fi + + LINUX_LIVE="${LINUX_LIVE}\nLABEL ${LABEL}\n" + LINUX_LIVE="${LINUX_LIVE}\tkernel ${KERNEL}\n" + LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${INITRD} boot=${INITFS} LIVE_BOOTAPPEND ${APPEND}\n" +} + +Syslinux_install_entry () +{ + LABEL="${1}" + KERNEL="${2}" + INITRD="${3}" + APPEND="${4}" + + # pxelinux and syslinux << 3.36 lacks support to file/path + if [ "${LIVE_BINARY_IMAGES}" != "net" ] && [ "${DIRECTORY}" != "binary" ] + then + DIRECTORY="/`basename ${DESTDIR_INSTALL}`" + KERNEL="${DIRECTORY}/${KERNEL}" + INITRD="${DIRECTORY}/${INITRD}" + fi + + LINUX_INSTALL="${LINUX_INSTALL}\nLABEL ${LABEL}\n" + LINUX_INSTALL="${LINUX_INSTALL}\tkernel ${KERNEL}\n" + LINUX_INSTALL="${LINUX_INSTALL}\tappend initrd=${INITRD} ${APPEND} --\n" +} + case "${LH_INITRAMFS}" in casper) INITFS="casper" @@ -94,17 +117,35 @@ esac # Setting destination directory case "${LIVE_BINARY_IMAGES}" in iso) - DESTDIR_LIVE="binary/live" + case "${LH_INITRAMFS}" in + casper) + DESTDIR_LIVE="binary/casper" + ;; + + live-initramfs) + DESTDIR_LIVE="binary/live" + ;; + esac + DESTDIR_INSTALL="binary/install" ;; net) DESTDIR_LIVE="tftpboot" DESTDIR_INSTALL="tftpboot" - ;; + ;; tar|usb-hdd) - DESTDIR_LIVE="binary/live" + case "${LH_INITRAMFS}" in + casper) + DESTDIR_LIVE="binary/casper" + ;; + + live-initramfs) + DESTDIR_LIVE="binary/live" + ;; + esac + DESTDIR_INSTALL="binary/install" # Workaround for syslinux (<< 3.36) which doesn't support long file/path names @@ -177,69 +218,51 @@ then esac fi +if [ "${LIVE_UNION_FILESYSTEM}" != "unionfs" ] +then + LIVE_BOOTAPPEND="${LIVE_BOOTAPPEND} union=${LIVE_UNION_FILESYSTEM}" +fi + LIVE_BOOTAPPEND="`echo ${LIVE_BOOTAPPEND} | sed -e 's/ //'`" # Parameters are listed at: linux/Documentation/kernel-parameters.txt FAILSAFE="noapic noapm nodma nomce nolapic nosmp vga=normal" # Assembling kernel configuration -if [ "${LIVE_BINARY_IMAGES}" != "net" ] -then - DEFAULT_FLAVOUR="`echo ${LIVE_LINUX_FLAVOURS} | awk '{ print $1 }'`" - # Workaround for syslinux (<< 3.36) which doesn't support long file/path names - if [ "`basename ${DESTDIR_LIVE}`" = "binary" ] - then - LINUX="# Debian GNU/Linux - live\nLABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-failsafe\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" - else - LINUX="# Debian GNU/Linux - live\nLABEL live\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-failsafe\nLABEL live-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" - fi -else - DEFAULT_FLAVOUR="`echo ${LIVE_LINUX_FLAVOURS} | awk '{ print $1 }'`" - LINUX="# Debian GNU/Linux - live\nLABEL live\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-failsafe\nLABEL live-failsafe\n\tkernel `basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`\n\tappend initrd=initrd.img-`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" -fi +# Default entries +DEFAULT_FLAVOUR="`echo ${LIVE_LINUX_FLAVOURS} | awk '{ print $1 }'`" +DEFAULT_KERNEL="`basename chroot/boot/vmlinuz-*${DEFAULT_FLAVOUR}`" +DEFAULT_INITRD="initrd.img-`echo ${DEFAULT_KERNEL} | sed -e 's/vmlinuz-//'`" + +Syslinux_live_entry "live" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}" +Syslinux_live_entry "live-failsafe" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}" "${FAILSAFE}" if [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ] then for KERNEL in chroot/boot/vmlinuz* do - if [ -z "${LINUX}" ] - then - if [ "${LIVE_BINARY_IMAGES}" = "iso" ] - then - LINUX="# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" - else - LINUX="# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} live_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" - fi - else - if [ "${LIVE_BINARY_IMAGES}" = "iso" ] - then - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`-failsafe\n\tkernel /`basename ${DESTDIR_LIVE}`/`basename ${KERNEL}`\n\tappend initrd=/`basename ${DESTDIR_LIVE}`/initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" - else - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND" - LINUX="${LINUX}\n\n# Debian GNU/Linux - live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\nLABEL live-`basename ${KERNEL} | sed -e 's/vmlinuz-//'`\n\tkernel `basename ${KERNEL}`\n\tappend initrd=initrd.img-`basename ${KERNEL} | sed -e 's/vmlinuz-//'` boot=${INITFS} LIVE_BOOTAPPEND ${FAILSAFE}" - fi - fi + KERNEL_IMAGE="`basename ${KERNEL}`" + KERNEL_VERSION="`echo ${KERNEL_IMAGE} | sed -e 's/vmlinuz-//'`" + INITRD="initrd.img-${KERNEL_VERSION}" + + Syslinux_live_entry "live-${KERNEL_VERSION}" "${KERNEL_IMAGE}" "${INITRD}" + Syslinux_live_entry "live-${KERNEL_VERSION}-failsafe" "${KERNEL_IMAGE}" "${INITRD}" "${FAILSAFE}" done fi -# Removing '//' -LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`" +LINUX_LIVE="`echo ${LINUX_LIVE} | sed -e 's/binary//g' -e 's#//#/#g'`" # Assembling debian-installer configuration -if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] +if [ "${LIVE_DEBIAN_INSTALLER}" != "disabled" ] then VMLINUZ_DI="vmlinuz" INITRD_DI="initrd.gz" + APPEND_DI="vga=normal" VMLINUZ_GI="gtk/vmlinuz" INITRD_GI="gtk/initrd.gz" + APPEND_GI="video=vesa:ywrap,mtrr vga=788" # Workaround for syslinux (<< 3.36) which doesn't support long file/path names if [ "${LIVE_DISTRIBUTION}" = "etch" ] @@ -254,55 +277,31 @@ then fi fi - # Workaround for syslinux (<< 3.36) which doesn't support long file/path names - if [ "`basename ${DESTDIR_LIVE}`" = "binary" ] - then - LIVE_LINUX_INSTALL="LABEL install\n\tkernel ${VMLINUZ_DI}\n\tappend vga=normal initrd=${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL linux\n\tkernel ${VMLINUZ_DI}\n\tappend vga=normal initrd=${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL installgui\n\tkernel ${VMLINUZ_GI}\n\tappend video=vesa:ywrap,mtrr vga=788 initrd=${INITRD_GI} -- " - - LIVE_KENREL_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL expert\n\tkernel ${VMLINUZ_DI}\n\tappend priority=low vga=normal initrd=${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL expertgui\n\tkernel ${VMLINUZ_GI}\n\tappend priority=low video=vesa:ywrap,mtrr vga=788 initrd=${INITRD_GI} -- " - - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL rescue\n\tkernel ${VMLINUZ_DI}\n\tappend vga=normal initrd=${INITRD_DI} rescue/enable=true -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL rescuegui\n\tkernel ${VMLINUZ_GI}\n\tappend video=vesa:ywrap,mtrr vga=788 initrd=${INITRD_GI} rescue/enable=true -- " - - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL auto\n\tkernel ${VMLINUZ_DI}\n\tappend auto=true priority=critical vga=normal initrd=${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL autogui\n\tkernel ${VMLINUZ_GI}\n\tappend auto=true priority=critical video=vesa:ywrap,mtrr vga=788 initrd=${INITRD_GI} -- " - else - LIVE_LINUX_INSTALL="LABEL install\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_DI}\n\tappend vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL linux\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_DI}\n\tappend vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL installgui\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_GI}\n\tappend video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_GI} -- " - - LIVE_KENREL_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL expert\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_DI}\n\tappend priority=low vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL expertgui\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_GI}\n\tappend priority=low video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_GI} -- " - - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL rescue\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_DI}\n\tappend vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_DI} rescue/enable=true -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL rescuegui\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_GI}\n\tappend video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_GI} rescue/enable=true -- " - - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL auto\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_DI}\n\tappend auto=true priority=critical vga=normal initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_DI} -- " - LIVE_LINUX_INSTALL="${LIVE_LINUX_INSTALL}\n\nLABEL autogui\n\tkernel /`basename ${DESTDIR_INSTALL}`/${VMLINUZ_GI}\n\tappend auto=true priority=critical video=vesa:ywrap,mtrr vga=788 initrd=/`basename ${DESTDIR_INSTALL}`/${INITRD_GI} -- " - fi + Syslinux_install_entry "linux" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}" + Syslinux_install_entry "install" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}" + Syslinux_install_entry "installgui" "${VMLINUZ_GI}" "${INITRD_GI}" "${APPEND_GI}" + Syslinux_install_entry "expert" "${VMLINUZ_DI}" "${INITRD_DI}" "priority=low ${APPEND_DI}" + Syslinux_install_entry "expertgui" "${VMLINUZ_GI}" "${INITRD_GI}" "priority=low ${APPEND_GI}" + Syslinux_install_entry "rescue" "${VMLINUZ_DI}" "${INITRD_DI}" "rescue/enable=true ${APPEND_DI}" + Syslinux_install_entry "rescuegui" "${VMLINUZ_GI}" "${INITRD_GI}" "rescue/enable=true ${APPEND_GI}" + Syslinux_install_entry "auto" "${VMLINUZ_DI}" "${INITRD_DI}" "auto=true ${APPEND_DI}" + Syslinux_install_entry "autogui" "${VMLINUZ_GI}" "${INITRD_GI}" "auto=true ${APPEND_GI}" fi -LIVE_LINUX_INSTALL="`echo ${LIVE_LINUX_INSTALL} | sed -e 's/binary//g' -e 's#//#/#g'`" +LINUX_INSTALL="`echo ${LINUX_INSTALL} | sed -e 's/binary//g' -e 's#//#/#g'`" # Assembling memtest configuration if [ -f "${DESTDIR_LIVE}"/memtest ] then - if [ "${LIVE_BINARY_IMAGES}" != "net" ] + KERNEL_PATH="/`basename ${DESTDIR_LIVE}`/" + + # pxelinux and syslinux << 3.36 lacks support to file/path + if [ "${LIVE_BINARY_IMAGES}" = "net" ] || [ "`basename ${DESTDIR_LIVE}`" = "binary" ] then - # Workaround for syslinux (<< 3.36) which doesn't support long file/path names - if [ "`basename ${DESTDIR_LIVE}`" = "binary" ] - then - MEMTEST="LABEL memtest\n\tkernel memtest" - else - MEMTEST="LABEL memtest\n\tkernel /`basename ${DESTDIR_LIVE}`/memtest" - fi - else - MEMTEST="LABEL memtest\n\tkernel memtest" + KERNEL_PATH="" fi + MEMTEST="LABEL ${KERNEL_PATH}memtest\n\tkernel memtest" MEMTEST="`echo ${MEMTEST} | sed -e 's#//#/#g'`" fi @@ -331,7 +330,7 @@ case "${LIVE_BINARY_IMAGES}" in fi # Configure syslinux templates - sed -i -e "s@LIVE_LINUX_LIVE@${LINUX}@" -e "s@LIVE_LINUX_INSTALL@${LIVE_LINUX_INSTALL}@" -e "s@LIVE_MEMTEST@${MEMTEST}@" binary/isolinux/isolinux.cfg + sed -i -e "s@LINUX_LIVE@${LINUX_LIVE}@" -e "s@LINUX_INSTALL@${LINUX_INSTALL}@" -e "s@MEMTEST@${MEMTEST}@" binary/isolinux/isolinux.cfg sed -i -e "s#LIVE_BOOTAPPEND#${LIVE_BOOTAPPEND}#" binary/isolinux/isolinux.cfg sed -i -e "s/LIVE_DATE/`date +%Y%m%d`/" binary/isolinux/f1.txt sed -i -e "s/LIVE_VERSION/${VERSION}/" binary/isolinux/f10.txt @@ -342,19 +341,26 @@ case "${LIVE_BINARY_IMAGES}" in # Working arround syslinux 8.3 limitation if [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ] then + NUMBER="0" + + # FIXME: This has a bug *iff* flavours = 686 686-bigmem (note the order). + for FLAVOUR in ${LIVE_LINUX_FLAVOURS} do - NUMBER=$(($NUMBER + 1)) + NUMBER="$(($NUMBER + 1))" mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER} mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img - sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" binary/isolinux/isolinux.cfg + sed -i -e "s/vmlinuz-.*-${FLAVOUR}$/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR} /initrd${NUMBER}.img /g" binary/isolinux/isolinux.cfg done else mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img sed -i -e "s/vmlinuz-.*-${LIVE_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_LINUX_FLAVOURS}/initrd.img/g" binary/isolinux/isolinux.cfg fi + + # Remove whitespaces + sed -i -e 's/\ $//g' binary/isolinux/isolinux.cfg ;; net) @@ -385,7 +391,7 @@ case "${LIVE_BINARY_IMAGES}" in fi # Configure syslinux templates - sed -i -e "s@LIVE_LINUX_LIVE@${LINUX}@" -e "s@LIVE_LINUX_INSTALL@${LIVE_LINUX_INSTALL}@" -e "s@LIVE_MEMTEST@${MEMTEST}@" tftpboot/pxelinux.cfg/default + sed -i -e "s@LINUX_LIVE@${LINUX_LIVE}@" -e "s@LINUX_INSTALL@${LINUX_INSTALL}@" -e "s@MEMTEST@${MEMTEST}@" tftpboot/pxelinux.cfg/default sed -i -e "s/LIVE_NET_SERVER/${LIVE_NET_SERVER}/" -e "s#LIVE_NET_PATH#${LIVE_NET_PATH}#" -e "s#LIVE_BOOTAPPEND#${LIVE_BOOTAPPEND}#" tftpboot/pxelinux.cfg/default sed -i -e "s/LIVE_DATE/`date +%Y%m%d`/" tftpboot/pxelinux.cfg/f1.txt sed -i -e "s/LIVE_VERSION/${VERSION}/" tftpboot/pxelinux.cfg/f10.txt @@ -396,19 +402,24 @@ case "${LIVE_BINARY_IMAGES}" in # Working arround syslinux 8.3 limitation if [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ] then + NUMBER="0" + for FLAVOUR in ${LIVE_LINUX_FLAVOURS} do - NUMBER=$(($NUMBER + 1)) + NUMBER="$(($NUMBER + 1))" mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER} mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img - sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" binary/isolinux/isolinux.cfg + sed -i -e "s/vmlinuz-.*-${FLAVOUR}$/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR} /initrd${NUMBER}.img /g" binary/isolinux/isolinux.cfg done else mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img sed -i -e "s/vmlinuz-.*-${LIVE_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_LINUX_FLAVOURS}/initrd.img/g" binary/isolinux/isolinux.cfg fi + + # Remove whitespaces + sed -i -e 's/\ $//g' binary/isolinux/isolinux.cfg ;; tar|usb-hdd) @@ -444,7 +455,7 @@ case "${LIVE_BINARY_IMAGES}" in fi # Configure syslinux templates - sed -i -e "s@LIVE_LINUX_LIVE@${LINUX}@" -e "s@LIVE_LINUX_INSTALL@${LIVE_LINUX_INSTALL}@" -e "s@LIVE_MEMTEST@${MEMTEST}@" "${DESTDIR}"/syslinux.cfg + sed -i -e "s@LINUX_LIVE@${LINUX_LIVE}@" -e "s@LINUX_INSTALL@${LINUX_INSTALL}@" -e "s@MEMTEST@${MEMTEST}@" "${DESTDIR}"/syslinux.cfg sed -i -e "s#LIVE_BOOTAPPEND#${LIVE_BOOTAPPEND}#" "${DESTDIR}"/syslinux.cfg sed -i -e "s/LIVE_DATE/`date +%Y%m%d`/" "${DESTDIR}"/f1.txt sed -i -e "s/LIVE_VERSION/${VERSION}/" "${DESTDIR}"/f10.txt @@ -455,17 +466,22 @@ case "${LIVE_BINARY_IMAGES}" in # Workaround for syslinux (<< 3.36) which doesn't support long file/path names if [ "${LIVE_DISTRIBUTION}" = "etch" ] && [ "`echo ${LIVE_LINUX_FLAVOURS} | wc -w`" -gt "1" ] then + NUMBER="0" + for FLAVOUR in ${LIVE_LINUX_FLAVOURS} do - NUMBER=$(($NUMBER + 1)) + NUMBER="$(($NUMBER + 1))" mv "${DESTDIR_LIVE}"/vmlinuz-*-${FLAVOUR} "${DESTDIR_LIVE}"/vmlinuz${NUMBER} mv "${DESTDIR_LIVE}"/initrd.img-*-${FLAVOUR} "${DESTDIR_LIVE}"/initrd${NUMBER}.img - sed -i -e "s/vmlinuz-.*-${FLAVOUR}/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR}/initrd${NUMBER}.img/g" "${DESTDIR}"/syslinux.cfg + sed -i -e "s/vmlinuz-.*-${FLAVOUR}$/vmlinuz${NUMBER}/g" -e "s/initrd.img-.*-${FLAVOUR} /initrd${NUMBER}.img /g" "${DESTDIR}"/syslinux.cfg done else mv "${DESTDIR_LIVE}"/vmlinuz-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/vmlinuz mv "${DESTDIR_LIVE}"/initrd.img-*-${LIVE_LINUX_FLAVOURS} "${DESTDIR_LIVE}"/initrd.img sed -i -e "s/vmlinuz-.*-${LIVE_LINUX_FLAVOURS}/vmlinuz/g" -e "s/initrd.img-.*-${LIVE_LINUX_FLAVOURS}/initrd.img/g" "${DESTDIR}"/syslinux.cfg + + # Remove whitespaces + sed -i -e 's/\ $//g' "${DESTDIR}"/syslinux.cfg fi ;; esac diff --git a/helpers/lh_binary_usb-hdd b/helpers/lh_binary_usb-hdd index a417238..71353da 100755 --- a/helpers/lh_binary_usb-hdd +++ b/helpers/lh_binary_usb-hdd @@ -108,7 +108,7 @@ lh_losetup $FREELO chroot/binary.img 1 Chroot " mkfs.vfat -F 16 -n DEBIAN_LIVE ${FREELO}" mkdir -p chroot/binary.tmp ${LH_ROOT_COMMAND} mount ${FREELO} chroot/binary.tmp -cp -r binary/* chroot/binary.tmp +cp -rL binary/* chroot/binary.tmp FIXME() { @@ -155,7 +155,7 @@ echo "!!! The above error/warning messages can be ignored !!!" if [ -n "${MAKEDEV}" ] then - rm -f chroot/dev + rm -rf chroot/dev mv chroot/dev.tmp chroot/dev fi diff --git a/helpers/lh_binary_yaboot b/helpers/lh_binary_yaboot index 930c4cd..45090da 100755 --- a/helpers/lh_binary_yaboot +++ b/helpers/lh_binary_yaboot @@ -45,35 +45,17 @@ Require_stagefile .stage/bootstrap # Checking stage file Check_stagefile .stage/binary_yaboot +# Checking yaboot templates +Check_templates yaboot + # Checking lock file Check_lockfile .lock # Creating lock file Create_lockfile .lock -if [ "${LIVE_ARCHITECTURE}" != "powerpc" ] && [ "${LIVE_ARCHITECTURE}" != "ppc64" ] -then - Echo_warning "skipping binary_yaboot, foreign architecture." - #exit 0 # REMOVE_ME -fi - -# Check user templates -if [ ! -d "${LIVE_TEMPLATES}" ] -then - if [ -d ../"${LIVE_TEMPLATES}" ] - then - LIVE_TEMPLATES="../${LIVE_TEMPLATES}" - else - Echo_error "user specified templates not accessible in ${LIVE_TEMPLATES}" - exit 1 - fi -fi - -# Checking local templates -if [ -d config/templates/yaboot ] -then - LIVE_TEMPLATES="config/templates" -fi +# Check architecture +Check_architecture powerpc ppc64 # Checking depends Check_package chroot/usr/lib/yaboot/yaboot yaboot @@ -159,6 +141,11 @@ then esac fi +if [ "${LIVE_UNION_FILESYSTEM}" != "unionfs" ] +then + LIVE_BOOTAPPEND="${LIVE_BOOTAPPEND} union=${LIVE_UNION_FILESYSTEM}" +fi + LIVE_BOOTAPPEND="`echo ${LIVE_BOOTAPPEND} | sed -e 's/ //'`" # Parameters are listed at: linux/Documentation/kernel-parameters.txt @@ -202,7 +189,7 @@ fi LINUX="`echo ${LINUX} | sed -e 's#//#/#g'`" # Assembling debian-installer configuration -if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ] +if [ "${LIVE_DEBIAN_INSTALLER}" != "disabled" ] then VMLINUZ_DI="vmlinuz" INITRD_DI="initrd.gz" diff --git a/helpers/lh_chroot b/helpers/lh_chroot index 94e60e1..075e0e6 100755 --- a/helpers/lh_chroot +++ b/helpers/lh_chroot @@ -40,6 +40,7 @@ lh_chroot_debianchroot install ${*} lh_chroot_sysvrc install ${*} lh_chroot_hosts install ${*} lh_chroot_resolv install ${*} +lh_chroot_hostname install ${*} lh_chroot_apt install ${*} lh_chroot_sources install ${*} lh_chroot_linux-image install ${*} @@ -64,6 +65,7 @@ lh_chroot_interactive ${*} lh_chroot_linux-image remove ${*} lh_chroot_sources remove ${*} lh_chroot_apt remove ${*} +lh_chroot_hostname remove ${*} lh_chroot_resolv remove ${*} lh_chroot_hosts remove ${*} lh_chroot_sysvrc remove ${*} diff --git a/helpers/lh_chroot_hostname b/helpers/lh_chroot_hostname new file mode 100755 index 0000000..be3b6af --- /dev/null +++ b/helpers/lh_chroot_hostname @@ -0,0 +1,98 @@ +#!/bin/sh + +# lh_chroot_hostname(1) - manage /etc/hostname +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +# Including common functions +LH_BASE="${LH_BASE:-/usr/share/live-helper}" + +for FUNCTION in "${LH_BASE}"/functions/*.sh +do + . "${FUNCTION}" +done + +# Setting static variables +DESCRIPTION="manage /etc/hostname" +HELP="" +USAGE="${PROGRAM} {install|remove} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffile config/common +Read_conffile config/bootstrap +Read_conffile config/chroot +Read_conffile config/binary +Read_conffile config/source +Set_defaults + +# Requiring stage file +Require_stagefile .stage/bootstrap + +case "${1}" in + install) + Echo_message "Configuring file /etc/hostname" + + # Checking stage file + Check_stagefile .stage/chroot_hostname + + # Checking lock file + Check_lockfile .lock + + # Creating lock file + Create_lockfile .lock + + if [ -f chroot/etc/hostname ] + then + # Save hostname file + mv chroot/etc/hostname chroot/etc/hostname.orig + fi + + # Create hostname file + echo "localhost.localdomain" > chroot/etc/hostname + + # Set hostname + Chroot "hostname -F /etc/hostname" + + # Creating stage file + Create_stagefile .stage/chroot_hostname + ;; + + remove) + Echo_message "Deconfiguring file /etc/hostname" + + # Checking lock file + Check_lockfile .lock + + # Creating lock file + Create_lockfile .lock + + if [ -f chroot/etc/hostname.orig ] + then + # Restore hostname file + mv chroot/etc/hostname.orig chroot/etc/hostname + else + # Remove hostname file + rm -f chroot/etc/hostname + fi + + # Set hostname (somehow this seems to be really needed :/) + if [ -f /etc/hostname ] + then + hostname -F /etc/hostname + fi + + # Removing stage file + rm -f .stage/chroot_hostname + ;; + + *) + Usage + ;; +esac diff --git a/helpers/lh_chroot_hosts b/helpers/lh_chroot_hosts index 9807433..2cd8f08 100755 --- a/helpers/lh_chroot_hosts +++ b/helpers/lh_chroot_hosts @@ -51,13 +51,21 @@ case "${1}" in if [ -f chroot/etc/hosts ] then # Save hosts file - cp chroot/etc/hosts chroot/etc/hosts.orig + mv chroot/etc/hosts chroot/etc/hosts.orig fi + # Creating hosts file + +cat > chroot/etc/hosts << EOF +127.0.0.1 localhost localhost.localdomain +127.0.1.1 debian +EOF + if [ -f /etc/hosts ] then - # Copy hosts file - cp /etc/hosts chroot/etc/hosts + # Append hosts file + #grep -e "127.0.0.1" -e "127.0.1.1" /etc/hosts >> chroot/etc/hosts + cat /etc/hosts >> chroot/etc/hosts fi # Creating stage file diff --git a/helpers/lh_chroot_resolv b/helpers/lh_chroot_resolv index 5549ccb..2505172 100755 --- a/helpers/lh_chroot_resolv +++ b/helpers/lh_chroot_resolv @@ -51,7 +51,7 @@ case "${1}" in if [ -f chroot/etc/resolv.conf ] then # Save resolv file - cp chroot/etc/resolv.conf chroot/etc/resolv.conf.orig + mv chroot/etc/resolv.conf chroot/etc/resolv.conf.orig fi if [ -f /etc/resolv.conf ] diff --git a/helpers/lh_config b/helpers/lh_config index 67ecbfb..59d1ae6 100755 --- a/helpers/lh_config +++ b/helpers/lh_config @@ -236,6 +236,10 @@ cat > "${LIVE_ROOT}"/config/chroot << EOF # (Default: ${LIVE_CHROOT_FILESYSTEM}) LIVE_CHROOT_FILESYSTEM="${LIVE_CHROOT_FILESYSTEM}" +# \$LIVE_UNION_FILESYSTEM: set union filesystem +# (Default: ${LIVE_UNION_FILESYSTEM} +LIVE_UNION_FILESYSTEM="${LIVE_UNION_FILESYSTEM}" + # \$LIVE_HOOKS: set hook commands # (Default: empty) LIVE_HOOKS="${LIVE_HOOKS}" @@ -291,6 +295,7 @@ EOF # Creating lh_binary_* configuration mkdir -p "${LIVE_ROOT}"/config/binary_grub +mkdir -p "${LIVE_ROOT}"/config/binary_local-debs mkdir -p "${LIVE_ROOT}"/config/binary_local-hooks mkdir -p "${LIVE_ROOT}"/config/binary_local-includes mkdir -p "${LIVE_ROOT}"/config/binary_local-udebs diff --git a/helpers/lh_source b/helpers/lh_source index 40453cd..6e04bb4 100755 --- a/helpers/lh_source +++ b/helpers/lh_source @@ -35,11 +35,13 @@ Set_defaults # Enabling network in chroot lh_chroot_hosts install ${*} lh_chroot_resolv install ${*} +lh_chroot_hostname install ${*} lh_chroot_sources install ${*} # Preparing images lh_source_debian-live ${*} lh_source_debian ${*} +lh_source_disk ${*} lh_source_md5sum ${*} # Building images @@ -50,5 +52,6 @@ lh_source_usb-hdd ${*} # Deconfiguring chroot rm -f .stage/chroot_sources +lh_chroot_hostname remove ${*} lh_chroot_resolv remove ${*} lh_chroot_hosts remove ${*} diff --git a/helpers/lh_source_disk b/helpers/lh_source_disk new file mode 100755 index 0000000..e765f3b --- /dev/null +++ b/helpers/lh_source_disk @@ -0,0 +1,84 @@ +#!/bin/sh + +# lh_source_disk (1) - install disk information into source +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +# Including common functions +LH_BASE="${LH_BASE:-/usr/share/live-helper}" + +for FUNCTION in "${LH_BASE}"/functions/*.sh +do + . "${FUNCTION}" +done + +# Setting static variables +DESCRIPTION="install disk information into source" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffile config/common +Read_conffile config/bootstrap +Read_conffile config/chroot +Read_conffile config/binary +Read_conffile config/source +Set_defaults + +if [ "${LIVE_SOURCE_IMAGES}" != "iso" ] +then + exit 0 +fi + +Echo_message "Begin installing disk information..." + +# Requiring stage file +Require_stagefile .stage/bootstrap + +# Checking stage file +Check_stagefile .stage/source_disk + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +mkdir -p source/.disk + +ARCHITECTURE="`echo ${LIVE_ARCHITECTURE} | sed -e 's# #/#g'`" +DISTRIBUTION="`echo ${LIVE_DISTRIBUTION} | cut -b 1 | tr '[a-z]' '[A-Z]'`" +DISTRIBUTION="${DISTRIBUTION}`echo ${LIVE_DISTRIBUTION} | cut -b 2-`" +eval VERSION="$`echo VERSION_${LIVE_DISTRIBUTION}`" + +case "${LH_MODE}" in + debian) + if [ -d binary/pool/main/b/base-installer ] + then + if [ -d binary/pool/main/l/live-installer ] + then + TYPE="LIVE/INSTALL" + fi + + TYPE="LIVE/NETINST" + else + TYPE="LIVE" + fi + + echo "Debian GNU/Linux ${VERSION} \"${DISTRIBUTION}\" - Official ${ARCHITECTURE} ${TYPE} Source `date +%Y%m%d-%H:%M`" > source/.disk/info + ;; + + ubuntu) + echo "Ubuntu Linux ${VERSION} \"${DISTRIBUTION}\" - Unofficial ${ARCHITECTURE} LIVE/NETINST Source `date +%Y%m%d-%H:%M`" > source/.disk/info + ;; +esac + +# Creating stage file +Create_stagefile .stage/source_disk diff --git a/helpers/lh_source_md5sum b/helpers/lh_source_md5sum index 7674692..81caef4 100755 --- a/helpers/lh_source_md5sum +++ b/helpers/lh_source_md5sum @@ -60,7 +60,19 @@ fi # Calculating md5sums cd source find . -type f | sort | xargs md5sum > ../md5sum.txt -mv ../md5sum.txt ./ + +cat > md5sum.txt << EOF +This file contains the list of md5 checksums of all files on this medium. + +You can verify them automatically with the 'integrity-check' boot parameter, +or, manually with: 'md5sum -c md5sum.txt'. + + +EOF + +cat ../md5sum.txt >> md5sum.txt +rm -f ../md5sum.txt + cd "${OLDPWD}" # Creating stage file diff --git a/helpers/lh_source_usb-hdd b/helpers/lh_source_usb-hdd index 903f2bb..3487b63 100755 --- a/helpers/lh_source_usb-hdd +++ b/helpers/lh_source_usb-hdd @@ -101,7 +101,7 @@ echo "!!! The above error/warning messages can be ignored !!!" if [ -n "${MAKEDEV}" ] then - rm -f chroot/dev + rm -rf chroot/dev mv chroot/dev.tmp chroot/dev fi diff --git a/helpers/make-live b/helpers/make-live index fee621e..40b2617 100755 --- a/helpers/make-live +++ b/helpers/make-live @@ -18,7 +18,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # On Debian systems, the complete text of the GNU General Public License -# can be found in /usr/share/common-licenses/GPL file. +# can be found in /usr/share/common-licenses/GPL-2 file. set -e |