diff --git a/debian/changelog b/debian/changelog index 85a8988e..5d5bd34a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,6 +21,9 @@ debian-cd (3.1.15) UNRELEASED; urgency=low [ Robert Millan ] * Update from kfreebsd-9 to kfreebsd-10 + [ Daniel Baumann ] + * Cope with changes from move to isolinux 6.x. Closes: #746746 + -- Steve McIntyre <93sam@debian.org> Tue, 11 Feb 2014 01:57:01 +0000 debian-cd (3.1.14) unstable; urgency=medium diff --git a/debian/control b/debian/control index e14b829b..039461d0 100644 --- a/debian/control +++ b/debian/control @@ -12,7 +12,7 @@ Vcs-Browser: http://anonscm.debian.org/git/debian-cd/debian-cd.git;a=summary Package: debian-cd Architecture: all Depends: ${misc:Depends}, curl, perl, dpkg-dev, cpp, libdigest-md5-perl, libdigest-sha-perl, tofrodos, apt (>= 0.3.11.1), make, xorriso | genisoimage, lynx-cur | lynx, grep-dctrl, bc, libcompress-zlib-perl, bzip2, libdpkg-perl -Recommends: hfsutils, netpbm, syslinux-common, mtools, dosfstools +Recommends: hfsutils, netpbm, isolinux, syslinux-common, mtools, dosfstools Description: Tools for building (Official) Debian CD set Debian-cd is the official tool for building Debian CD set since the potato release. It was formerly called YACS (for Yet Another CD Script). diff --git a/tools/boot/jessie/boot-x86 b/tools/boot/jessie/boot-x86 index 38570433..5bece403 100644 --- a/tools/boot/jessie/boot-x86 +++ b/tools/boot/jessie/boot-x86 @@ -191,7 +191,29 @@ if [ -n "$ARCHIVE_EXTRACTED_SOURCES" ]; then find_pkg_file syslinux source >> $CDDIR/../$N.pkgs_extracted fi -add_mkisofs_opt $CDDIR/../$N.mkisofs_opts "-isohybrid-mbr syslinux/usr/lib/syslinux/isohdpfx.bin" +# syslinux 6.x onwards uses different packaging layout. Deal with bold +# old and new layout for now. + +if [ -f $CDDIR/../syslinux/usr/lib/syslinux/isolinux.bin ] ; then + SYSLINUX_LAYOUT=OLD + add_mkisofs_opt $CDDIR/../$N.mkisofs_opts "-isohybrid-mbr syslinux/usr/lib/syslinux/isohdpfx.bin" +else + SYSLINUX_LAYOUT=NEW + ISOLINUXDEB=$(find_pkg_file isolinux) + if [ -z "$ISOLINUXDEB" ]; then + echo "ERROR: isolinux package is required" >&2 + exit 1 + fi + (dpkg --fsys-tarfile "$MIRROR/$ISOLINUXDEB" | \ + tar xf - -C $CDDIR/../syslinux ./usr/lib) + + if [ -n "$ARCHIVE_EXTRACTED_SOURCES" ]; then + echo $ISOLINUXDEB >> $CDDIR/../$N.pkgs_extracted + find_pkg_file isolinux source >> $CDDIR/../$N.pkgs_extracted + fi + add_mkisofs_opt $CDDIR/../$N.mkisofs_opts "-isohybrid-mbr syslinux/usr/lib/ISOLINUX/isohdpfx.bin" +fi + # In case of a multi-arch CD the script will be called two times. The # first time the isolinux dir gets set up for single arch; if it is @@ -264,12 +286,20 @@ if [ -e boot$N/win32-loader.ini ]; then fi fi -cp -f $CDDIR/../syslinux/usr/lib/syslinux/isolinux.bin boot$N/isolinux/ -cp -f $CDDIR/../syslinux/usr/lib/syslinux/vesamenu.c32 boot$N/isolinux/ -if [ -e $CDDIR/../syslinux/usr/lib/syslinux/ldlinux.c32 ]; then +if [ $SYSLINUX_LAYOUT = OLD ] ; then + cp -f $CDDIR/../syslinux/usr/lib/syslinux/isolinux.bin boot$N/isolinux/ + cp -f $CDDIR/../syslinux/usr/lib/syslinux/vesamenu.c32 boot$N/isolinux/ + if [ -e $CDDIR/../syslinux/usr/lib/syslinux/ldlinux.c32 ]; then cp -f $CDDIR/../syslinux/usr/lib/syslinux/ldlinux.c32 boot$N/isolinux/ cp -f $CDDIR/../syslinux/usr/lib/syslinux/libcom32.c32 boot$N/isolinux/ cp -f $CDDIR/../syslinux/usr/lib/syslinux/libutil.c32 boot$N/isolinux/ + fi +else + cp -f $CDDIR/../syslinux/usr/lib/ISOLINUX/isolinux.bin boot$N/isolinux/ + cp -f $CDDIR/../syslinux/usr/lib/syslinux/modules/bios/vesamenu.c32 boot$N/isolinux/ + cp -f $CDDIR/../syslinux/usr/lib/syslinux/modules/bios/ldlinux.c32 boot$N/isolinux/ + cp -f $CDDIR/../syslinux/usr/lib/syslinux/modules/bios/libcom32.c32 boot$N/isolinux/ + cp -f $CDDIR/../syslinux/usr/lib/syslinux/modules/bios/libutil.c32 boot$N/isolinux/ fi if [ -z "$MULTIARCH" ]; then diff --git a/tools/boot/jessie/x86-desktop.sh b/tools/boot/jessie/x86-desktop.sh index 002e6226..f102d947 100644 --- a/tools/boot/jessie/x86-desktop.sh +++ b/tools/boot/jessie/x86-desktop.sh @@ -15,7 +15,11 @@ di_syslinux_version() { # with vesamenu. Instead, add special default label to automatically # select i386/amd64 if user hits enter from help screens. multiarch_workaround() { - cp -f $CDDIR/../syslinux/usr/lib/syslinux/ifcpu64.c32 boot$N/isolinux/ + if [ -f $CDDIR/../syslinux/usr/lib/syslinux/modules/bios/ifcpu64.c32 ] ; then + cp -f $CDDIR/../syslinux/usr/lib/syslinux/modules/bios/ifcpu64.c32 boot$N/isolinux/ + else + cp -f $CDDIR/../syslinux/usr/lib/syslinux/ifcpu64.c32 boot$N/isolinux/ + fi sed -i "/^default install/ s/^/#/" \ boot$N/isolinux/txt.cfg || true sed -i "/^default64 amd64-install/ s/^/#/" \