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

View File

@ -47,51 +47,105 @@ Create_lockfile .lock
Check_architectures amd64 i386
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
case "${LB_BINARY_IMAGES}" in
iso*)
_BOOTLOADER="isolinux"
_SUFFIX="binary/isolinux"
_TARGET="binary/isolinux"
;;
net*)
_BOOTLOADER="pxelinux"
_SUFFIX="tftpboot"
_TARGET="tftpboot"
;;
hdd*|*)
_BOOTLOADER="syslinux"
_SUFFIX="binary/syslinux"
_TARGET="binary/syslinux"
;;
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
mkdir -p ${_SUFFIX}
mkdir -p $(dirname ${_TARGET})
case "${LB_BUILD_WITH_CHROOT}" in
true)
# 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
ubuntu)
@ -99,32 +153,46 @@ case "${LB_BUILD_WITH_CHROOT}" in
;;
esac
mv chroot/root/tmp/* ${_SUFFIX}
rmdir chroot/root/tmp
mv chroot/root/$(basename ${_SOURCE}).tmp ${_TARGET}
;;
false)
cp -aL /usr/share/syslinux/themes/${LB_SYSLINUX_THEME}/${_BOOTLOADER}-live/* ${_SUFFIX}
cp -aL ${_SOURCE}/* ${_TARGET}
case "${LB_MODE}" in
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
# 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
sed -i -e "s|@LB_BOOTAPPEND_LIVE@|${LB_BOOTAPPEND_LIVE}|g" \
${_SUFFIX}/live.cfg
${_TARGET}/live.cfg
fi
if [ -e ${_SUFFIX}/install.cfg ]
if [ -e ${_TARGET}/install.cfg ]
then
sed -i -e "s|@LB_BOOTAPPEND_INSTALL@|${LB_BOOTAPPEND_INSTALL}|g" \
${_SUFFIX}/install.cfg
${_TARGET}/install.cfg
fi
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@