[arch-commits] Commit in syslinux/trunk (2 files)

Tobias Powalowski tpowa at nymeria.archlinux.org
Fri Oct 18 10:38:33 UTC 2013


    Date: Friday, October 18, 2013 @ 12:38:33
  Author: tpowa
Revision: 196765

upgpkg: syslinux 6.02-3

fix chainloading, revert to old build style

Added:
  syslinux/trunk/syslinux-6.02-fix-chainloading.patch
Modified:
  syslinux/trunk/PKGBUILD

--------------------------------------+
 PKGBUILD                             |   16 +++++++----
 syslinux-6.02-fix-chainloading.patch |   47 +++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 6 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-10-18 09:24:56 UTC (rev 196764)
+++ PKGBUILD	2013-10-18 10:38:33 UTC (rev 196765)
@@ -4,7 +4,7 @@
 
 pkgname="syslinux"
 pkgver="6.02"
-pkgrel="2"
+pkgrel="3"
 arch=('x86_64' 'i686')
 pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE"
 url="http://syslinux.zytor.com/"
@@ -22,13 +22,15 @@
             'dosfstools:       For EFI support')
 md5sums=('6f275813a1b08cf852e55c0a3f8fbc78'
          '46ca150f53322ff8f1597d9a342f7e40'
-         '0e7d47e1f791f0c5e7bd40ed5c6d80cc')
+         '0e7d47e1f791f0c5e7bd40ed5c6d80cc'
+         '9dbede6b71a4de9e46aac4aad65334d7')
 
 install="${pkgname}.install"
 
 source=("https://www.kernel.org/pub/linux/utils/boot/syslinux/${pkgname}-${pkgver}.tar.xz"
         'syslinux.cfg'
-        'syslinux-install_update')
+        'syslinux-install_update'
+        'syslinux-6.02-fix-chainloading.patch')
 
 _build_syslinux_bios() {
     
@@ -38,7 +40,6 @@
     
     ## Do not try to build syslinux with our default LDFLAGS, it will fail
     unset LDFLAGS
-    make PYTHON="python2" bios spotless
     make PYTHON="python2" bios
     make PYTHON="python2" bios installer 
 }
@@ -56,7 +57,6 @@
     unset LDFLAGS
     unset MAKEFLAGS
     
-    make PYTHON="python2" efi64 spotless
     make PYTHON="python2" efi64
     make PYTHON="python2" efi64 installer 
 }
@@ -74,7 +74,6 @@
     unset LDFLAGS
     unset MAKEFLAGS
     
-    make PYTHON="python2" efi32 spotless
     make PYTHON="python2" efi32
     make PYTHON="python2" efi32 installer 
 }
@@ -94,6 +93,11 @@
     ## Fix FHS manpage path
     sed 's|/usr/man|/usr/share/man|g' -i "${srcdir}/${pkgname}-${pkgver}/mk/syslinux.mk" || true
     
+    # fix chainloading
+    # http://bugzilla.syslinux.org/show_bug.cgi?id=31
+    # http://www.syslinux.org/archives/2013-October/020971.html
+    patch -Np1 -i "${srcdir}/syslinux-6.02-fix-chainloading.patch"
+
     ## Build syslinux-efi
     if [[ "${CARCH}" == "x86_64" ]]; then
         _build_syslinux_efi64

Added: syslinux-6.02-fix-chainloading.patch
===================================================================
--- syslinux-6.02-fix-chainloading.patch	                        (rev 0)
+++ syslinux-6.02-fix-chainloading.patch	2013-10-18 10:38:33 UTC (rev 196765)
@@ -0,0 +1,47 @@
+Reported-by: Dark Raven <drdarkraven at gmail.com>
+Signed-off-by: Raphael S. Carvalho <raphael.scarv at gmail.com>
+---
+ com32/lib/syslinux/disk.c |   22 ++++++++++++++--------
+ 1 files changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/com32/lib/syslinux/disk.c b/com32/lib/syslinux/disk.c
+index 0b0c737..47ecb52 100644
+--- a/com32/lib/syslinux/disk.c
++++ b/com32/lib/syslinux/disk.c
+@@ -171,22 +171,28 @@ out:
+ static void *ebios_setup(const struct disk_info *const diskinfo, com32sys_t *inreg,
+ 			 uint64_t lba, uint8_t count, uint8_t op_code)
+ {
+-    static __lowmem struct disk_ebios_dapa dapa;
++    static struct disk_ebios_dapa *dapa = NULL;
+     void *buf;
+
++    if (!dapa) {
++	dapa = lmalloc(sizeof *dapa);
++	if (!dapa)
++	    return NULL;
++    }
++
+     buf = lmalloc(count * diskinfo->bps);
+     if (!buf)
+ 	return NULL;
+
+-    dapa.len = sizeof(dapa);
+-    dapa.count = count;
+-    dapa.off = OFFS(buf);
+-    dapa.seg = SEG(buf);
+-    dapa.lba = lba;
++    dapa->len = sizeof(*dapa);
++    dapa->count = count;
++    dapa->off = OFFS(buf);
++    dapa->seg = SEG(buf);
++    dapa->lba = lba;
+
+     inreg->eax.b[1] = op_code;
+-    inreg->esi.w[0] = OFFS(&dapa);
+-    inreg->ds = SEG(&dapa);
++    inreg->esi.w[0] = OFFS(dapa);
++    inreg->ds = SEG(dapa);
+     inreg->edx.b[0] = diskinfo->disk;
+
+     return buf;




More information about the arch-commits mailing list