summaryrefslogtreecommitdiff
path: root/scripts/build/lb_binary_syslinux
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2012-01-22 20:52:33 +0100
committerDaniel Baumann <daniel@debian.org>2012-02-06 17:02:58 +0100
commit4e2a532f3705e1247e9b9e2887452ec5e70a705d (patch)
treec4ab42678b98331585e19b5abac0c454b388f20e /scripts/build/lb_binary_syslinux
parent07ca41c280b81160a769071c21df544734c729db (diff)
downloadvyos-live-build-4e2a532f3705e1247e9b9e2887452ec5e70a705d.tar.gz
vyos-live-build-4e2a532f3705e1247e9b9e2887452ec5e70a705d.zip
Updating lb_binary_syslinux for embedded syslinux themes.
Diffstat (limited to 'scripts/build/lb_binary_syslinux')
-rwxr-xr-xscripts/build/lb_binary_syslinux134
1 files changed, 101 insertions, 33 deletions
diff --git a/scripts/build/lb_binary_syslinux b/scripts/build/lb_binary_syslinux
index e7ac9bae7..ab9a46961 100755
--- a/scripts/build/lb_binary_syslinux
+++ b/scripts/build/lb_binary_syslinux
@@ -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