summaryrefslogtreecommitdiffstats
path: root/config/binary_local-hooks
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2015-06-12 12:22:47 +0000
committerintrigeri <intrigeri@boum.org>2015-06-12 15:45:06 +0000
commite1d331aa9a06b4a115f9f2aee713ea6a40d3e3d8 (patch)
tree4efc7cb2a6e7404d9aeedaf8e9839bb46b868b78 /config/binary_local-hooks
parent716f3b3a5cf66071e23bd6979515ba9f25bd41a5 (diff)
Include a syslinux 64-bit binary in the ISO filesystem.
Will-fix: #9381
Diffstat (limited to 'config/binary_local-hooks')
-rwxr-xr-xconfig/binary_local-hooks/40-include_syslinux_in_ISO_filesystem35
1 files changed, 28 insertions, 7 deletions
diff --git a/config/binary_local-hooks/40-include_syslinux_in_ISO_filesystem b/config/binary_local-hooks/40-include_syslinux_in_ISO_filesystem
index 37ec461..4991739 100755
--- a/config/binary_local-hooks/40-include_syslinux_in_ISO_filesystem
+++ b/config/binary_local-hooks/40-include_syslinux_in_ISO_filesystem
@@ -21,6 +21,12 @@ Set_defaults
# Seems like we'll have work to do
Echo_message 'including syslinux in the ISO filesystem'
+### Functions
+
+syslinux_deb_version_in_chroot () {
+ chroot chroot dpkg-query -W -f='${Version}\n' syslinux
+}
+
### Variables
LINUX_BINARY_UTILS_DIR='binary/utils/linux'
WIN32_BINARY_UTILS_DIR='binary/utils/win32'
@@ -28,16 +34,31 @@ BINARY_MBR_DIR='binary/utils/mbr'
CHROOT_SYSLINUX_BIN='chroot/usr/bin/syslinux'
CHROOT_SYSLINUX_MBR='chroot/usr/lib/SYSLINUX/gptmbr.bin'
CHROOT_TEMP_APT_SOURCES='chroot/etc/apt/sources.list.d/tmp-deb-src.list'
-
-### Functions
-
-syslinux_deb_version_in_chroot () {
- chroot chroot dpkg-query -W -f='${Version}\n' syslinux
-}
+SYSLINUX_DEB_VERSION_IN_CHROOT=$(syslinux_deb_version_in_chroot)
### Main
mkdir -p "$LINUX_BINARY_UTILS_DIR" "$WIN32_BINARY_UTILS_DIR" "$BINARY_MBR_DIR"
+
+# Copy 32-bit syslinux binary
cp "$CHROOT_SYSLINUX_BIN" "$LINUX_BINARY_UTILS_DIR/"
+
+# Copy 64-bit syslinux binary
+(
+ olddir=$(pwd)
+ workdir=$(mktemp -d)
+ cd "$workdir"
+ chroot="$olddir/chroot"
+ Chroot "$chroot" \
+ apt-get --yes download \
+ syslinux:amd64="$SYSLINUX_DEB_VERSION_IN_CHROOT"
+ dpkg-deb --extract "$chroot"/syslinux_*.deb .
+ rm "$chroot"/syslinux_*.deb
+ cp ./usr/bin/syslinux "$olddir/$LINUX_BINARY_UTILS_DIR/syslinux-amd64"
+ cd "$olddir"
+ rm -r "$workdir"
+)
+
+# Copy syslinux MBR
cp "$CHROOT_SYSLINUX_MBR" "$BINARY_MBR_DIR/mbr.bin"
cat chroot/etc/apt/sources.list chroot/etc/apt/sources.list.d/*.list \
@@ -47,7 +68,7 @@ cat chroot/etc/apt/sources.list chroot/etc/apt/sources.list.d/*.list \
> "$CHROOT_TEMP_APT_SOURCES"
Chroot chroot apt-get --yes update
Chroot chroot apt-get --yes install dpkg-dev
-Chroot chroot apt-get source syslinux="$(syslinux_deb_version_in_chroot)"
+Chroot chroot apt-get source syslinux="$SYSLINUX_DEB_VERSION_IN_CHROOT"
cp chroot/syslinux-*/bios/win32/syslinux.exe "$WIN32_BINARY_UTILS_DIR/"
rm -r chroot/syslinux*
rm "$CHROOT_TEMP_APT_SOURCES"