Updating lb_binary_syslinux for embedded syslinux themes.

This commit is contained in:
Daniel Baumann 2012-01-22 20:52:33 +01:00
parent 07ca41c280
commit 4e2a532f37
5 changed files with 123 additions and 34 deletions

View File

@ -1154,7 +1154,7 @@ Set_defaults ()
;; ;;
*) *)
LB_SYSLINUX_THEME="${LB_SYSLINUX_THEME:-debian-squeeze}" LB_SYSLINUX_THEME="${LB_SYSLINUX_THEME:-live-build}"
;; ;;
esac esac

View File

@ -47,51 +47,105 @@ Create_lockfile .lock
Check_architectures amd64 i386 Check_architectures amd64 i386
Check_crossarchitectures Check_crossarchitectures
case "${LB_BUILD_WITH_CHROOT}" in
true)
# Checking depends
Check_package chroot/usr/bin/syslinux syslinux
Check_package chroot/usr/share/syslinux/themes/${LB_SYSLINUX_THEME} syslinux-themes-${LB_SYSLINUX_THEME}
case "${LB_MODE}" in
ubuntu)
Check_package chroot/usr/share/gfxboot-theme-ubuntu/bootlogo.tar.gz gfxboot-theme-ubuntu
;;
esac
# Restoring cache
Restore_cache cache/packages_binary
# Installing depends
Install_package
;;
esac
# Assembling image specifics # Assembling image specifics
case "${LB_BINARY_IMAGES}" in case "${LB_BINARY_IMAGES}" in
iso*) iso*)
_BOOTLOADER="isolinux" _BOOTLOADER="isolinux"
_SUFFIX="binary/isolinux" _TARGET="binary/isolinux"
;; ;;
net*) net*)
_BOOTLOADER="pxelinux" _BOOTLOADER="pxelinux"
_SUFFIX="tftpboot" _TARGET="tftpboot"
;; ;;
hdd*|*) hdd*|*)
_BOOTLOADER="syslinux" _BOOTLOADER="syslinux"
_SUFFIX="binary/syslinux" _TARGET="binary/syslinux"
;; ;;
esac esac
# Checking depends
case "${LB_BUILD_WITH_CHROOT}" in
true)
Check_package chroot/usr/bin/syslinux syslinux
Check_package chroot/usr/lib/syslinux syslinux-common
if [ "${LB_SYSLINUX_THEME}" != "live-build" ]
then
Check_package chroot/usr/share/syslinux/themes/${LB_SYSLINUX_THEME} syslinux-themes-${LB_SYSLINUX_THEME}
case "${LB_MODE}" in
ubuntu)
Check_package chroot/usr/share/gfxboot-theme-ubuntu/bootlogo.tar.gz gfxboot-theme-ubuntu
;;
esac
fi
;;
false)
if [ ! -e /usr/bin/syslinux ]
then
# syslinux
Echo_error "/usr/bin/syslinux - no such file."
exit 1
fi
if [ ! -e /usr/lib/syslinux ]
then
# syslinux-common
Echo_error "/usr/lib/syslinux - no such directory"
exit 1
fi
if [ "${LB_SYSLINUX_THEME}" != "live-build" ]
then
if [ ! -e /usr/lib/syslinux/themes/${LB_SYSLINUX_THEME} ]
then
# syslinux-theme
Echo_error "/usr/lib/syslinux/themes/${LB_SYSLINUX_THEME} - no such directory."
exit 1
fi
fi
;;
esac
# Restoring cache
Restore_cache cache/packages_binary
# Installing depends
Install_package
# FIXME: cleanup, unify, and extend themes for ${_BOOTLOADER}-live and ${_BOOTLOADER}-installer
if [ "${LB_SYSLINUX_THEME}" = "live-build" ]
then
if [ -e "config/bootloaders/${_BOOTLOADER}" ]
then
# Internal local copy
_SOURCE="config/bootloaders/${_BOOTLOADER}"
else
# Internal system copy
_SOURCE="${LB_BASE:-/usr/share/live/build}/bootloaders/${_BOOTLOADER}"
fi
else
# External copy from chroot or system
_SOURCE="/usr/share/syslinux/themes/${LB_SYSLINUX_THEME}/${_BOOTLOADER}-live"
fi
# Copying files # Copying files
mkdir -p ${_SUFFIX} mkdir -p $(dirname ${_TARGET})
case "${LB_BUILD_WITH_CHROOT}" in case "${LB_BUILD_WITH_CHROOT}" in
true) true)
# Copy in two steps since the theme can have absolute symlinks and would therefore not be dereferenced correctly # Copy in two steps since the theme can have absolute symlinks and would therefore not be dereferenced correctly
Chroot chroot "cp -aL /usr/share/syslinux/themes/${LB_SYSLINUX_THEME}/${_BOOTLOADER}-live /root/tmp" if [ "${LB_SYSLINUX_THEME}" = "live-build" ]
then
cp -a ${_SOURCE} chroot/root
Chroot chroot cp -aL /root/$(basename ${_SOURCE}) /root/$(basename ${_SOURCE}).tmp
rm -rf chroot/$(basename ${_SOURCE})
else
Chroot chroot cp -aL ${_SOURCE} /root/$(basename ${_SOURCE}).tmp
fi
case "${LB_MODE}" in case "${LB_MODE}" in
ubuntu) ubuntu)
@ -99,32 +153,46 @@ case "${LB_BUILD_WITH_CHROOT}" in
;; ;;
esac esac
mv chroot/root/tmp/* ${_SUFFIX} mv chroot/root/$(basename ${_SOURCE}).tmp ${_TARGET}
rmdir chroot/root/tmp
;; ;;
false) false)
cp -aL /usr/share/syslinux/themes/${LB_SYSLINUX_THEME}/${_BOOTLOADER}-live/* ${_SUFFIX} cp -aL ${_SOURCE}/* ${_TARGET}
case "${LB_MODE}" in case "${LB_MODE}" in
ubuntu) ubuntu)
tar xfz /usr/share/gfxboot-theme-ubuntu/bootlogo.tar.gz -C ${_SUFFIX} tar xfz /usr/share/gfxboot-theme-ubuntu/bootlogo.tar.gz -C ${_TARGET}
;; ;;
esac esac
;; ;;
esac esac
# Configuring files # Configuring files
if [ -e ${_SUFFIX}/live.cfg ] if [ -e "${_TARGET}/live.cfg.in" ]
then
# FIXME: only works with one kernel version for the time being
for _FLAVOUR in ${LB_LINUX_FLAVOURS}
do
_VERSION="$(basename binary/live/vmlinuz-*-${_FLAVOUR} -${_FLAVOUR} | sed -e 's|vmlinuz-||')"
sed -e "s|@FLAVOUR@|${_FLAVOUR}|g" \
-e "s|@KERNEL@|/live/vmlinuz-${_VERSION}-${_FLAVOUR}|g" \
-e "s|@INITRD@|/live/initrd.img-${_VERSION}-${_FLAVOUR}|g" \
-e "s|@LB_BOOTAPPEND_LIVE@|${LB_BOOTAPPEND_LIVE}|g" \
"${_TARGET}/live.cfg.in" >> "${_TARGET}/live.cfg"
done
rm -f "${_TARGET}/live.cfg.in"
elif [ -e "${_TARGET}/live.cfg" ]
then then
sed -i -e "s|@LB_BOOTAPPEND_LIVE@|${LB_BOOTAPPEND_LIVE}|g" \ sed -i -e "s|@LB_BOOTAPPEND_LIVE@|${LB_BOOTAPPEND_LIVE}|g" \
${_SUFFIX}/live.cfg ${_TARGET}/live.cfg
fi fi
if [ -e ${_SUFFIX}/install.cfg ] if [ -e ${_TARGET}/install.cfg ]
then then
sed -i -e "s|@LB_BOOTAPPEND_INSTALL@|${LB_BOOTAPPEND_INSTALL}|g" \ sed -i -e "s|@LB_BOOTAPPEND_INSTALL@|${LB_BOOTAPPEND_INSTALL}|g" \
${_SUFFIX}/install.cfg ${_TARGET}/install.cfg
fi fi
case "${LB_BUILD_WITH_CHROOT}" in case "${LB_BUILD_WITH_CHROOT}" in

View File

@ -0,0 +1,7 @@
default live
label live-@FLAVOUR@
menu label ^Live (@FLAVOUR@)
menu default
kernel @KERNEL@
append initrd=@INITRD@ boot=live config @LB_BOOTAPPEND_LIVE@

View File

@ -0,0 +1,7 @@
default live
label live-@FLAVOUR@
menu label ^Live (@FLAVOUR@)
menu default
kernel @KERNEL@
append initrd=@INITRD@ boot=live config @LB_BOOTAPPEND_LIVE@

View File

@ -0,0 +1,7 @@
default live
label live-@FLAVOUR@
menu label ^Live (@FLAVOUR@)
menu default
kernel @KERNEL@
append initrd=@INITRD@ boot=live config @LB_BOOTAPPEND_LIVE@