syslinux: update to 6.02 and add EFI support.
This commit is contained in:
parent
750206c539
commit
0761c1d99f
5 changed files with 95 additions and 16 deletions
16
srcpkgs/syslinux/INSTALL
Normal file
16
srcpkgs/syslinux/INSTALL
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
case "${ACTION}" in
|
||||||
|
post)
|
||||||
|
cat <<_EOF
|
||||||
|
=======================================================================
|
||||||
|
|
||||||
|
Some optional packages must be installed for additional functionality:
|
||||||
|
|
||||||
|
- mtools: mkdiskimage and syslinux support
|
||||||
|
- gptfdisk: GPT support
|
||||||
|
- efibootmgr: EFI support
|
||||||
|
- dosfstools: EFI support
|
||||||
|
|
||||||
|
=======================================================================
|
||||||
|
_EOF
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,10 @@
|
||||||
|
--- core/isolinux.asm
|
||||||
|
+++ core/isolinux.asm
|
||||||
|
@@ -420,7 +420,7 @@ MaxLMA equ 384*1024 ; Reasonable limit (384K)
|
||||||
|
call getlinsec
|
||||||
|
pop eax
|
||||||
|
pop cx
|
||||||
|
- mov dx,cx
|
||||||
|
+ movzx edx,cx
|
||||||
|
pop bp
|
||||||
|
pop bx
|
|
@ -0,0 +1,45 @@
|
||||||
|
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(-)
|
||||||
|
|
||||||
|
--- com32/lib/syslinux/disk.c
|
||||||
|
+++ 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;
|
|
@ -1,11 +0,0 @@
|
||||||
--- Makefile 2010-07-21 21:33:13.000000000 +0200
|
|
||||||
+++ Makefile 2010-07-22 11:14:03.325522937 +0200
|
|
||||||
@@ -54,7 +54,7 @@
|
|
||||||
# files that depend only on the B phase, but may have to be regenerated
|
|
||||||
# for "make installer".
|
|
||||||
BSUBDIRS = codepage com32 lzo core memdisk mbr memdump gpxe sample \
|
|
||||||
- diag libinstaller dos win32 win64 dosutil txt
|
|
||||||
+ libinstaller txt
|
|
||||||
ITARGET =
|
|
||||||
IOBJECTS = $(ITARGET) \
|
|
||||||
utils/gethostip utils/isohybrid utils/mkdiskimage \
|
|
|
@ -1,22 +1,41 @@
|
||||||
# Template file for 'syslinux'
|
# Template file for 'syslinux'
|
||||||
pkgname=syslinux
|
pkgname=syslinux
|
||||||
version=5.01
|
version=6.02
|
||||||
revision=1
|
revision=1
|
||||||
makedepends="perl nasm libuuid-devel"
|
hostmakedepends="perl python nasm"
|
||||||
|
makedepends="gnu-efi-libs libuuid-devel"
|
||||||
short_desc="A boot loader for the Linux operating system"
|
short_desc="A boot loader for the Linux operating system"
|
||||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
homepage="http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project"
|
homepage="http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project"
|
||||||
license="GPL-2"
|
license="GPL-2"
|
||||||
distfiles="${KERNEL_SITE}/utils/boot/$pkgname/$pkgname-$version.tar.xz"
|
distfiles="${KERNEL_SITE}/utils/boot/$pkgname/$pkgname-$version.tar.xz"
|
||||||
checksum=41320ae9c8211bb99b1322fdbf98a83d3bdc0f9a78291ad27f8512b12e16b411
|
checksum=afa31b7cbf72e1c0c1752a0636ba724ce01c0e374366e46e61db6862b4685478
|
||||||
|
|
||||||
|
pre_build() {
|
||||||
|
# Do not try to build the Windows or DOS installers and DIAG files
|
||||||
|
sed 's|diag libinstaller dos win32 win64 dosutil txt|libinstaller txt|g' -i Makefile
|
||||||
|
sed 's|win32/syslinux.exe win64/syslinux64.exe||g' -i Makefile
|
||||||
|
sed 's|dosutil/*.com dosutil/*.sys||g' -i Makefile
|
||||||
|
sed 's|dos/syslinux.com||g' -i Makefile
|
||||||
|
sed 's|INSTALLSUBDIRS = com32 utils dosutil|INSTALLSUBDIRS = com32 utils|g' -i Makefile
|
||||||
|
sed 's|install -m 644 -c $(INSTALL_DIAG) $(INSTALLROOT)$(DIAGDIR)|# install -m 644 -c $(INSTALL_DIAG) $(INSTALLROOT)$(DIAGDIR)|g' -i Makefile
|
||||||
|
# Fix FHS manpage path
|
||||||
|
sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk
|
||||||
|
}
|
||||||
|
|
||||||
do_build() {
|
do_build() {
|
||||||
unset CFLAGS LDFLAGS
|
unset CFLAGS LDFLAGS
|
||||||
sed 's|/usr/man|/usr/share/man|g' -i mk/syslinux.mk
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
|
i686*) sed -e 's,^firmware =.*,firmware = bios efi32,g' -i Makefile;;
|
||||||
|
x86_64*) sed -e 's,^firmware =.*,firmware = bios efi64,g' -i Makefile;;
|
||||||
|
esac
|
||||||
make installer
|
make installer
|
||||||
}
|
}
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
make INSTALLROOT=${DESTDIR} install
|
make INSTALLROOT=${DESTDIR} install
|
||||||
vmove "sbin/*" usr/bin
|
mv ${DESTDIR}/sbin/* ${DESTDIR}/usr/bin
|
||||||
|
# Remove completely development stuff.
|
||||||
|
rm -r ${DESTDIR}/usr/share/syslinux/com32/include
|
||||||
|
rm ${DESTDIR}/usr/share/syslinux/com32/*.a
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue