[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