summaryrefslogtreecommitdiff
path: root/scripts/build/binary_syslinux
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2010-07-24 17:06:14 +0200
committerDaniel Baumann <daniel@debian.org>2011-03-09 19:17:15 +0100
commit74c3ad26d5d710282da6f51b746a33ad6370b8ce (patch)
treea6b80f2ddec96ad9ac94a5ba72a0f0ca9eac0bb4 /scripts/build/binary_syslinux
parentc58e77942a264198c8bf00c96413968cffea8d4f (diff)
downloadvyos-live-build-74c3ad26d5d710282da6f51b746a33ad6370b8ce.tar.gz
vyos-live-build-74c3ad26d5d710282da6f51b746a33ad6370b8ce.zip
Rearranging helpers scripts in source tree.
Diffstat (limited to 'scripts/build/binary_syslinux')
-rwxr-xr-xscripts/build/binary_syslinux659
1 files changed, 659 insertions, 0 deletions
diff --git a/scripts/build/binary_syslinux b/scripts/build/binary_syslinux
new file mode 100755
index 000000000..43c0b5457
--- /dev/null
+++ b/scripts/build/binary_syslinux
@@ -0,0 +1,659 @@
+#!/bin/sh
+
+# lh_binary_syslinux(1) - installs syslinux into binary
+# Copyright (C) 2006-2010 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:-/usr/share/live-helper}"/scripts/build.sh
+
+# Setting static variables
+DESCRIPTION="$(Echo 'installs syslinux into binary')"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Set_defaults
+
+if [ "${LH_BOOTLOADER}" != "syslinux" ]
+then
+ exit 0
+fi
+
+Echo_message "Begin installing syslinux..."
+
+# Requiring stage file
+Require_stagefile .stage/config .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
+
+# Check architecture
+Check_architecture amd64 i386
+Check_crossarchitecture
+
+# Checking depends
+Check_package chroot/usr/bin/syslinux syslinux
+
+# Restoring cache
+Restore_cache cache/packages_binary
+
+# Installing depends
+Install_package
+
+# Local functions
+Utf8_to_latin1 ()
+{
+ VALUE="${1}"
+
+ echo "${VALUE}" | iconv -f utf-8 -t latin1
+}
+
+Syslinux_memtest_entry ()
+{
+ LABEL="${1}"
+ MENULABEL="$(Utf8_to_latin1 "${2}")"
+ KERNEL="${3}"
+
+ MEMTEST="${MEMTEST}\nlabel ${LABEL}\n"
+
+ # Write the menu label if the syslinux menu is being use
+ MEMTEST="${MEMTEST}\tmenu label ${MENULABEL}\n"
+ MEMTEST="${MEMTEST}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
+ MEMTEST="$(/bin/echo ${MEMTEST} | sed -e 's|//|/|g')"
+}
+
+Syslinux_live_entry ()
+{
+ LABEL="${1}"
+ MENULABEL="$(Utf8_to_latin1 "${2}")"
+ MENULABEL="${2}"
+ KERNEL="${3}"
+ INITRD="${4}"
+ APPEND="${5}"
+
+ case "${LH_BINARY_IMAGES}" in
+ iso*|usb*)
+ NUMBER="$(ls -1 ${KERNEL_PATH} | grep 'vmlinuz[0-9]\+$' | wc -l)"
+ NUMBER="$((${NUMBER} +1))"
+
+ # Do not add numbering to filenames if first kernel/initrd
+ if [ "${NUMBER}" = "1" ]
+ then
+ NUMBER=""
+ fi
+
+ # Note: ISOLINUX will not find the kernel if the name ends in ".img".
+ if [ -e ${KERNEL_PATH}/${KERNEL} ]
+ then
+ mv ${KERNEL_PATH}/${KERNEL} ${KERNEL_PATH}/vmlinuz${NUMBER}
+ fi
+
+ if [ -e ${KERNEL_PATH}/${INITRD} ]
+ then
+ mv ${KERNEL_PATH}/${INITRD} ${KERNEL_PATH}/initrd${NUMBER}.img
+ fi
+
+ KERNEL=vmlinuz${NUMBER}
+ INITRD=initrd${NUMBER}.img
+ ;;
+ esac
+
+ # Regular kernel
+ LINUX_LIVE="${LINUX_LIVE}\nlabel ${LABEL}\n"
+
+ # Write the menu label if the syslinux menu is being use
+ if [ -n "${MENULABEL}" ]
+ then
+ LINUX_LIVE="${LINUX_LIVE}\tmenu label ${MENULABEL}\n"
+ fi
+
+ LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
+ LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} live-config ${LH_BOOTAPPEND_LIVE} ${APPEND}\n"
+
+ # Failsafe kernel
+ LINUX_LIVE="${LINUX_LIVE}\nlabel ${LABEL}failsafe\n"
+
+ # Write the menu label if the syslinux menu is being use
+ if [ -n "${MENULABEL}" ]
+ then
+ LINUX_LIVE="${LINUX_LIVE}\tmenu label ${MENULABEL} (failsafe)\n"
+ fi
+
+ LINUX_LIVE="${LINUX_LIVE}\tkernel ${LIVE_KERNEL_PATH}/${KERNEL}\n"
+ LINUX_LIVE="${LINUX_LIVE}\tappend initrd=${LIVE_KERNEL_PATH}/${INITRD} boot=${INITFS} live-config ${LH_BOOTAPPEND_LIVE} ${APPEND} ${FAILSAFE}\n"
+}
+
+Syslinux_install_entry ()
+{
+ LABEL="${1}"
+ KERNEL="${2}"
+ INITRD="${3}"
+ APPEND="${4}"
+
+ # Boot in quiet mode where appropriate
+ QAPPEND="quiet"
+
+ for TYPE in Install Expert Rescue Auto
+ do
+ case "${TYPE}" in
+ Install)
+ TAPPEND="${APPEND} ${QAPPEND}"
+ ;;
+
+ Expert)
+ TAPPEND="priority=low ${APPEND}"
+ ;;
+
+ Rescue)
+ TAPPEND="rescue/enable=true ${APPEND} ${QAPPEND}"
+ ;;
+
+ Auto)
+ TAPPEND="auto=true priority=critical ${APPEND} ${QAPPEND}"
+ ;;
+ esac
+
+ case "${LABEL}" in
+ Text)
+ TYPE_SUFFIX=""
+ ;;
+ GUI)
+ TYPE_SUFFIX="gui"
+ ;;
+ esac
+
+ LINUX_INSTALL="${LINUX_INSTALL}\nlabel $(echo "${TYPE}" | tr A-Z a-z)${TYPE_SUFFIX}\n"
+ LINUX_INSTALL="${LINUX_INSTALL}\tmenu label ${LABEL} ${TYPE}\n"
+ LINUX_INSTALL="${LINUX_INSTALL}\tkernel ${LIVE_INSTALL_KERNEL_PATH}/${KERNEL}\n"
+ LINUX_INSTALL="${LINUX_INSTALL}\tappend initrd=${LIVE_INSTALL_KERNEL_PATH}/${INITRD} ${TAPPEND} ${LH_BOOTAPPEND_INSTALL}\n"
+ done
+}
+
+Copy_syslinux_templates ()
+{
+ cp -r "${TEMPLATES}"/common/* ${SCREEN_PATH}
+
+ if [ "${LH_SYSLINUX_MENU}" = "false" ]
+ then
+ cp "${TEMPLATES}"/normal/* ${SCREEN_PATH}
+ else
+ cp "${TEMPLATES}"/menu/* ${SCREEN_PATH}
+
+ case "${LH_SYSLINUX_MENU}" in
+ gfxboot)
+ MENUMODULE="gfxboot.c32"
+ ;;
+
+ menu)
+ MENUMODULE="menu.c32"
+ ;;
+
+ vesamenu)
+ MENUMODULE="vesamenu.c32"
+ ;;
+
+ *)
+ if [ -z "${LH_SYSLINUX_CFG}" ]
+ then
+ MENUMODULE=$(grep 'menu.c32' ${TEMPLATES}/menu/syslinux.cfg | sed 's|default\s*.*/\(.*menu.c32\)$|\1|g')
+ else
+ LH_SYSLINUX_CFG="${LH_SYSLINUX_CFG:-${TEMPLATES}/menu/syslinux.cfg}"
+ fi
+ ;;
+ esac
+
+ case "${LH_BUILD_WITH_CHROOT}" in
+ true)
+ cp chroot/usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
+ ;;
+ false)
+ cp /usr/lib/syslinux/"${MENUMODULE}" ${DATA_PATH}
+ ;;
+ esac
+ fi
+
+ if ls "${TEMPLATES}/${LH_LANGUAGE}"/* > /dev/null 2>&1
+ then
+ cp -r "${TEMPLATES}"/"${LH_LANGUAGE}"/* ${SCREEN_PATH}
+ else
+ if ls "${TEMPLATES}"/en/* > /dev/null 2>&1
+ then
+ cp -r "${TEMPLATES}"/en/* ${SCREEN_PATH}
+ fi
+ fi
+
+ if ls ${SCREEN_PATH}/*.live > /dev/null 2>&1
+ then
+ for FILE in ${SCREEN_PATH}/*.live
+ do
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .live)
+ done
+ fi
+
+ if [ "${LH_DEBIAN_INSTALLER}" != "false" ]
+ then
+ if ls ${SCREEN_PATH}/*.install > /dev/null 2>&1
+ then
+ for FILE in ${SCREEN_PATH}/*.install
+ do
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install)
+ done
+ fi
+
+ case "${LH_ARCHITECTURE}" in
+ amd64|i386|powerpc)
+ if ls ${SCREEN_PATH}/*.install.g-i > /dev/null 2>&1
+ then
+ for FILE in ${SCREEN_PATH}/*.install.g-i
+ do
+ mv ${FILE} $(dirname ${FILE})/$(basename ${FILE} .install.g-i)
+ done
+ fi
+ ;;
+
+ *)
+ rm -f ${SCREEN_PATH}/*.install.g-i
+ ;;
+ esac
+ else
+ rm -f ${SCREEN_PATH}/*.install*
+ fi
+
+ if [ "${LH_SYSLINUX_MENU}" != "false" ]
+ then
+ rm -f ${DATA_PATH}/boot.txt
+ fi
+
+ # Copying custom splash screen
+ if [ "${LH_SYSLINUX_SPLASH}" = "none" ]
+ then
+ # no splash screen
+ SPLASH=""
+ rm -f ${SCREEN_PATH}/splash.rle
+ rm -f ${DATA_PATH}/splash.png
+ else
+ if [ "${LH_SYSLINUX_MENU}" = "false" ]
+ then
+ SPLASH="${LIVE_DATA_PATH}/splash.rle"
+ else
+ SPLASH="${LIVE_DATA_PATH}/splash.png"
+ fi
+
+ if [ -n "${LH_SYSLINUX_SPLASH}" ]
+ then
+ if [ ! -e "${LH_SYSLINUX_SPLASH}" ]
+ then
+ Echo_error "%s doen't exist" "${LH_SYSLINUX_SPLASH}"
+ exit 1
+ else
+ rm -f ${SCREEN_PATH}/splash.rle
+ rm -f ${DATA_PATH}/splash.png
+ cp -f "${LH_SYSLINUX_SPLASH}" ${DATA_PATH}/$(basename ${SPLASH})
+ fi
+ fi
+ fi
+}
+
+Configure_syslinux_templates ()
+{
+ templates="$(find ${SYSLINUX_PATH} -type f -name '*.cfg' -o -name '*.txt')"
+
+ for template_file in ${templates}
+ do
+ sed -i -e "s|{\$LINUX_LIVE}|${LINUX_LIVE}|" \
+ -e "s|{\$LINUX_INSTALL}|${LINUX_INSTALL}|" \
+ -e "s|{\$MEMTEST}|${MEMTEST}|" \
+ -e "s|{\$LIVE_SCREEN_PATH}|${LIVE_SCREEN_PATH}|" \
+ -e "s|{\$LIVE_DATA_PATH}|${LIVE_DATA_PATH}|" \
+ -e "s|{\$LIVE_KERNEL_PATH}|${LIVE_KERNEL_PATH}|" \
+ -e "s|{\$SPLASH}|${SPLASH}|" \
+ -e "s|{\$LH_DISTRIBUTION}|${LH_DISTRIBUTION}|" \
+ -e "s|{\$LH_DATE}|$(date +%Y%m%d)|" \
+ -e "s|{\$LH_MEDIA}|${MEDIA}|" \
+ -e "s|{\$LH_VERSION}|${VERSION}|" \
+ -e "s|{\$LH_SYSLINUX_TIMEOUT}|${LH_SYSLINUX_TIMEOUT}0|" \
+ $template_file
+ done
+
+ case "${LH_BINARY_IMAGES}" in
+ usb*)
+ if [ -f "${SYSLINUX_PATH}/exithelp.cfg" ]
+ then
+ sed -i -e "s|config isolinux.cfg|config syslinux.cfg|" "${SYSLINUX_PATH}"/exithelp.cfg
+ fi
+ ;;
+
+ net)
+ if [ -f "${SCREEN_PATH}/exithelp.cfg" ]
+ then
+ sed -i -e "s|config isolinux.cfg|config ${LIVE_KERNEL_PATH}/pxelinux.cfg/default|" "${SCREEN_PATH}"/exithelp.cfg
+ fi
+ ;;
+ esac
+}
+
+# Setting up common variables
+case "${LH_INITRAMFS}" in
+ casper)
+ INITFS="casper"
+ ;;
+
+ live-initramfs)
+ INITFS="live"
+ ;;
+esac
+
+# Setting boot method specific variables
+case "${LH_BINARY_IMAGES}" in
+ iso*)
+ SYSLINUX_PATH="binary/isolinux"
+ KERNEL_PATH="binary/${INITFS}"
+ SCREEN_PATH="${SYSLINUX_PATH}"
+ DATA_PATH="${SCREEN_PATH}"
+ LIVE_KERNEL_PATH="/${INITFS}"
+ LIVE_INSTALL_KERNEL_PATH="/install"
+ LIVE_SCREEN_PATH="/isolinux"
+ LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
+ MEDIA="CD-ROM"
+ ;;
+
+ net)
+ SYSLINUX_PATH="tftpboot"
+ KERNEL_PATH="${SYSLINUX_PATH}/debian-live/${LH_ARCHITECTURE}"
+ SCREEN_PATH="${SYSLINUX_PATH}/debian-live/${LH_ARCHITECTURE}/boot-screens"
+ DATA_PATH="${SCREEN_PATH}"
+ LIVE_KERNEL_PATH="debian-live/${LH_ARCHITECTURE}"
+ LIVE_INSTALL_KERNEL_PATH="debian-install/${LH_ARCHITECTURE}"
+ LIVE_SCREEN_PATH="debian-live/${LH_ARCHITECTURE}/boot-screens"
+ LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
+ MEDIA="netboot"
+ ;;
+
+ usb*|tar)
+ SYSLINUX_PATH="binary/syslinux"
+ KERNEL_PATH="binary/${INITFS}"
+ SCREEN_PATH="${SYSLINUX_PATH}"
+ DATA_PATH="${SCREEN_PATH}"
+ LIVE_KERNEL_PATH="/${INITFS}"
+ LIVE_INSTALL_KERNEL_PATH="/install"
+ LIVE_SCREEN_PATH="/syslinux"
+ LIVE_DATA_PATH="${LIVE_SCREEN_PATH}"
+ MEDIA="hd-media"
+ ;;
+esac
+
+Check_multiarchitecture
+
+# Creating directories
+mkdir -p "${KERNEL_PATH}"
+mkdir -p "${SCREEN_PATH}"
+mkdir -p "${DATA_PATH}"
+
+# Setting boot parameters
+case "${LH_ENCRYPTION}" in
+ ""|false)
+ ;;
+ *)
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} encryption=${LH_ENCRYPTION}"
+ ;;
+esac
+
+if [ -n "${LH_USERNAME}" ]
+then
+ case "${LH_INITRAMFS}" in
+ casper)
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} username=${LH_USERNAME}"
+ ;;
+
+ live-initramfs)
+ if [ "${LH_USERNAME}" != "user" ]
+ then
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} username=${LH_USERNAME}"
+ fi
+ ;;
+ esac
+fi
+
+if [ -n "${LH_HOSTNAME}" ]
+then
+ case "${LH_INITRAMFS}" in
+ casper)
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} hostname=${LH_HOSTNAME}"
+ ;;
+
+ live-initramfs)
+ if [ "${LH_HOSTNAME}" != "debian" ]
+ then
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} hostname=${LH_HOSTNAME}"
+ fi
+ ;;
+ esac
+fi
+
+if [ "${LH_UNION_FILESYSTEM}" != "aufs" ]
+then
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} union=${LH_UNION_FILESYSTEM}"
+fi
+
+if [ "${LH_EXPOSED_ROOT}" != "false" ]
+then
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} exposedroot"
+fi
+
+if [ "${LH_BINARY_IMAGES}" = "net" ]
+then
+ case "${LH_NET_ROOT_FILESYSTEM}" in
+ nfs)
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=nfs nfsroot=${LH_NET_ROOT_SERVER}:${LH_NET_ROOT_PATH}"
+ ;;
+
+ cifs)
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} netboot=cifs nfsroot=//${LH_NET_ROOT_SERVER}${LH_NET_ROOT_PATH}"
+ ;;
+
+ *)
+ Echo_error "Unsupported net filesystem"
+ exit 1
+ ;;
+ esac
+
+ if [ -n "${LH_NET_ROOT_MOUNTOPTIONS}" ]
+ then
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfsopts=${LH_NET_ROOT_MOUNTOPTIONS}"
+ fi
+fi
+
+if [ -n "${LH_NET_COW_PATH}" ]
+then
+ case "${LH_NET_COW_FILESYSTEM}" in
+ nfs)
+ if [ -n "${LH_NET_COW_MOUNTOPTIONS}" ]
+ then
+ LH_NET_COW_MOUNTOPTIONS=",${LH_NET_COW_MOUNTOPTIONS}"
+ fi
+
+ LH_BOOTAPPEND_LIVE="${LH_BOOTAPPEND_LIVE} nfscow=${LH_NET_COW_SERVER}:${LH_NET_COW_PATH}${LH_NET_COW_MOUNTOPTIONS}"
+ ;;
+
+ *)
+ Echo_error "Unsupported net filesystem"
+ exit 1
+ ;;
+ esac
+fi
+
+LH_BOOTAPPEND_LIVE="$(echo ${LH_BOOTAPPEND_LIVE} | sed -e 's| ||')"
+
+# Parameters are listed at: linux/Documentation/kernel-parameters.txt
+FAILSAFE="noapic noapm nodma nomce nolapic nomodeset nosmp vga=normal"
+
+# Moving kernels into place
+if [ "binary/${INITFS}" != "${KERNEL_PATH}" ]
+then
+ mv binary/${INITFS}/vmlinuz* ${KERNEL_PATH}
+ mv binary/${INITFS}/initrd* ${KERNEL_PATH}
+
+ if [ "${LH_MEMTEST}" != "false" ] && [ "${LH_MEMTEST}" != "none" ]
+ then
+ mv binary/${INITFS}/memtest ${KERNEL_PATH}
+ fi
+fi
+
+# Default entries
+DEFAULT_FLAVOUR="$(echo ${LH_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" "${LH_SYSLINUX_MENU_LIVE_ENTRY}" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
+
+if [ "$(echo ${LH_LINUX_FLAVOURS} | wc -w)" -gt "1" ]
+then
+ for FLAVOUR in ${LH_LINUX_FLAVOURS}
+ do
+ if [ "${FLAVOUR}" != "${DEFAULT_FLAVOUR}" ]
+ then
+ FLAVOUR_KERNEL="$(basename chroot/boot/vmlinuz-*${FLAVOUR})"
+ FLAVOUR_INITRD="initrd.img-$(echo ${FLAVOUR_KERNEL} | sed -e 's|vmlinuz-||')"
+ Syslinux_live_entry "live-${FLAVOUR}" "${LH_SYSLINUX_MENU_LIVE_ENTRY} ${FLAVOUR}" "${FLAVOUR_KERNEL}" "${FLAVOUR_INITRD}"
+ fi
+ done
+fi
+
+# Only needed for non-vesamenu, non-gfxboot syslinux
+case "${LH_SYSLINUX_MENU}" in
+ false|menu)
+ # Adding syslinux hardcoded default label entry
+ Syslinux_live_entry "linux" "" "${DEFAULT_KERNEL}" "${DEFAULT_INITRD}"
+ ;;
+esac
+
+# Assembling debian-installer configuration
+if [ "${LH_DEBIAN_INSTALLER}" != "false" ]
+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"
+
+ if [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${VMLINUZ_DI}" ] && [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${INITRD_DI}" ]
+ then
+ Syslinux_install_entry "Text" "${VMLINUZ_DI}" "${INITRD_DI}" "${APPEND_DI}"
+ fi
+
+ if [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${VMLINUZ_GI}" ] && [ -f "binary/${LIVE_INSTALL_KERNEL_PATH}/${INITRD_GI}" ]
+ then
+ Syslinux_install_entry "GUI" "${VMLINUZ_GI}" "${INITRD_GI}" "${APPEND_GI}"
+ fi
+fi
+
+# Assembling memtest configuration
+if [ -f "${KERNEL_PATH}"/memtest ]
+then
+ Syslinux_memtest_entry "memtest" "${LH_SYSLINUX_MENU_MEMTEST_ENTRY}" "memtest"
+fi
+
+# Copy templates to base syslinux directory
+Copy_syslinux_templates
+
+# Fill in templates with created values
+Configure_syslinux_templates
+
+# Configure syslinux setup per boot method
+case "${LH_BINARY_IMAGES}" in
+ iso*)
+ case "${LH_BUILD_WITH_CHROOT}" in
+ true)
+ cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
+ ;;
+ false)
+ cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}
+ ;;
+ esac
+
+ mv ${SCREEN_PATH}/syslinux.cfg ${SCREEN_PATH}/isolinux.cfg
+
+ # Copying configuration file
+ if [ -n "${LH_SYSLINUX_CFG}" ]
+ then
+ cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/isolinux.cfg
+ fi
+ ;;
+
+ net)
+ case "${LH_BUILD_WITH_CHROOT}" in
+ true)
+ cp chroot/usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
+ ;;
+ false)
+ cp /usr/lib/syslinux/pxelinux.0 ${KERNEL_PATH}
+ ;;
+ esac
+
+ mkdir -p ${KERNEL_PATH}/pxelinux.cfg
+ ln -s ${LIVE_KERNEL_PATH}/pxelinux.cfg ${SYSLINUX_PATH}/pxelinux.cfg
+ ln -s ${LIVE_KERNEL_PATH}/pxelinux.0 ${SYSLINUX_PATH}/pxelinux.0
+
+ # Adjusting include pathes
+ for FILE in ${SCREEN_PATH}/*.cfg
+ do
+ sed -i -e "s|^include |include ${LIVE_SCREEN_PATH}/|g" "${FILE}"
+ done
+
+ sed -i -e "s| f| ${LIVE_SCREEN_PATH}/f|g" ${SCREEN_PATH}/prompt.cfg
+
+ mv ${SCREEN_PATH}/syslinux.cfg ${KERNEL_PATH}/pxelinux.cfg/default
+
+ # Copying configuration file
+ if [ -n "${LH_SYSLINUX_CFG}" ]
+ then
+ cp "${LH_SYSLINUX_CFG}" ${KERNEL_PATH}/pxelinux.cfg/default
+ fi
+ ;;
+
+ usb*|tar)
+ case "${LH_BUILD_WITH_CHROOT}" in
+ true)
+ cp chroot/usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
+ ;;
+ false)
+ cp /usr/lib/syslinux/isolinux.bin ${SCREEN_PATH}/syslinux.bin
+ ;;
+ esac
+
+ # Copying configuration file
+ if [ -n "${LH_SYSLINUX_CFG}" ]
+ then
+ cp "${LH_SYSLINUX_CFG}" ${SCREEN_PATH}/syslinux.cfg
+ fi
+ ;;
+esac
+
+# Saving cache
+Save_cache cache/packages_binary
+
+# Removing depends
+Remove_package
+
+# Creating stage file
+Create_stagefile .stage/binary_syslinux