summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeshav Amburay2012-12-11 19:14:27 +0530
committerKeshav Amburay2012-12-11 19:14:27 +0530
commite91661dee663cfdb95885e8d873553c985a94159 (patch)
tree0c469963da85376e469644b5a5d03affa63f7796
parent98d96f9e60cc9e3ef2217b7cf1e56e472c527a4c (diff)
downloadaur-e91661dee663cfdb95885e8d873553c985a94159.tar.gz
U
-rw-r--r--.SRCINFO10
-rw-r--r--PKGBUILD20
-rw-r--r--syslinux-efi-allow-handover-protocol.patch13
-rw-r--r--syslinux-efi-fix-makefiles.patch25
-rw-r--r--syslinux-efi-search-PATH-EFI-syslinux.patch36
-rw-r--r--syslinux-efi.install6
-rw-r--r--syslinux.cfg24
7 files changed, 100 insertions, 34 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 53e8893fc23f..2f006453c1af 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = syslinux-efi-git
pkgdesc = SYSLINUX built for x86_64 and i386 UEFI firmwares - GIT (Alpha) Version
- pkgver = 20121116
+ pkgver = 20121211
pkgrel = 1
url = http://syslinux.zytor.com/
install = syslinux-efi.install
@@ -21,8 +21,12 @@ pkgbase = syslinux-efi-git
options = zipman
options = !purge
options = !makeflags
- source = syslinux-efi-fix-makefiles.patch
- sha1sums = e81380a09e9522fe83de506ca6ab1c6f9af4389a
+ source = syslinux-efi-search-PATH-EFI-syslinux.patch
+ source = syslinux-efi-allow-handover-protocol.patch
+ source = syslinux.cfg
+ sha1sums = b02f07dbcf77dd998c94d1a202e082a07f35bd3d
+ sha1sums = 5252feb1c2d82cc959ac20207b34224477c3eb75
+ sha1sums = 7477f166ae0ed26c69f03d95c13078e146b90fe1
pkgname = syslinux-efi-git
diff --git a/PKGBUILD b/PKGBUILD
index c59dde452fb3..8a48eff12dfb 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@ __pkgname="syslinux"
_pkgname="${__pkgname}-efi"
pkgname="${_pkgname}-git"
-pkgver=20121116
+pkgver=20121211
pkgrel=1
arch=('any')
pkgdesc="SYSLINUX built for x86_64 and i386 UEFI firmwares - GIT (Alpha) Version"
@@ -23,9 +23,13 @@ conflicts=("${_pkgname}")
options=('!strip' 'docs' '!libtool' 'emptydirs' 'zipman' '!purge' '!makeflags')
-source=('syslinux-efi-fix-makefiles.patch')
+source=('syslinux-efi-search-PATH-EFI-syslinux.patch'
+ 'syslinux-efi-allow-handover-protocol.patch'
+ 'syslinux.cfg')
-sha1sums=('e81380a09e9522fe83de506ca6ab1c6f9af4389a')
+sha1sums=('b02f07dbcf77dd998c94d1a202e082a07f35bd3d'
+ '5252feb1c2d82cc959ac20207b34224477c3eb75'
+ '7477f166ae0ed26c69f03d95c13078e146b90fe1')
_gitroot="git://git.kernel.org/pub/scm/boot/syslinux/syslinux.git"
_gitname="${__pkgname}"
@@ -76,8 +80,12 @@ build() {
unset CXXFLAGS
unset LDFLAGS
- ## Fix UEFI related Makefiles
- patch -Np1 -i "${srcdir}/syslinux-efi-fix-makefiles.patch" || true
+ ## Add /EFI/syslinux to the list of search PATHs
+ patch -Np1 -i "${srcdir}/syslinux-efi-search-PATH-EFI-syslinux.patch" || true
+ echo
+
+ ## Fix EFI Handover Protocol
+ patch -Np1 -i "${srcdir}/syslinux-efi-allow-handover-protocol.patch" || true
echo
mkdir -p "${srcdir}/${_gitname}_build/BUILD/"
@@ -108,4 +116,6 @@ package() {
make O="${PWD}/BUILD" INSTALLROOT="${pkgdir}/" AUXDIR="/usr/lib/syslinux" efi32 install
echo
+ install -D -m0644 "${srcdir}/syslinux.cfg" "${pkgdir}/usr/lib/syslinux/syslinux.cfg"
+
}
diff --git a/syslinux-efi-allow-handover-protocol.patch b/syslinux-efi-allow-handover-protocol.patch
new file mode 100644
index 000000000000..b181f1e2f0b6
--- /dev/null
+++ b/syslinux-efi-allow-handover-protocol.patch
@@ -0,0 +1,13 @@
+diff --git a/efi/main.c b/efi/main.c
+index 754cbc5..df432d7 100644
+--- a/efi/main.c
++++ b/efi/main.c
+@@ -759,7 +759,7 @@ int efi_boot_linux(void *kernel_buf, size_t kernel_size,
+ printf("bzImage version 0x%x unsupported\n", hdr->version);
+ goto bail;
+ }
+- if (hdr->version >= 0x20b) {
++ if (hdr->version < 0x20b) {
+ printf("bzImage version 0x%x handover protocol unimplemented \n", hdr->version);
+ goto bail;
+ }
diff --git a/syslinux-efi-fix-makefiles.patch b/syslinux-efi-fix-makefiles.patch
deleted file mode 100644
index 93760b57bf5b..000000000000
--- a/syslinux-efi-fix-makefiles.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/efi/find-gnu-efi.sh b/efi/find-gnu-efi.sh
-index 9620a4f..80c1bc7 100755
---- a/efi/find-gnu-efi.sh
-+++ b/efi/find-gnu-efi.sh
-@@ -4,7 +4,7 @@
- # differs across distributions.
-
- include_dirs="/usr/include /usr/local/include"
--lib_dirs="/usr/lib /usr/lib64 /usr/local/lib"
-+lib_dirs="/usr/lib /usr/lib64 /usr/lib32 /usr/local/lib"
-
- function find_include()
- {
-diff --git a/mk/efi.mk b/mk/efi.mk
-index af25f98..ede2d97 100644
---- a/mk/efi.mk
-+++ b/mk/efi.mk
-@@ -36,6 +36,7 @@ FORMAT=efi-app-$(EFI_SUBARCH)
-
- CFLAGS = -I$(EFIINC) -I$(EFIINC)/$(EFI_SUBARCH) \
- -DEFI_FUNCTION_WRAPPER -fPIC -fshort-wchar -ffreestanding \
-+ -fno-stack-protector -fno-strict-aliasing -mno-red-zone \
- -Wall -I$(com32)/include -I$(com32)/include/sys \
- -I$(core)/include -I$(core)/ $(CARCHOPT) \
- -I$(com32)/lib/ -I$(com32)/libutil/include -std=gnu99 -DELF_DEBUG -DSYSLINUX_EFI \
diff --git a/syslinux-efi-search-PATH-EFI-syslinux.patch b/syslinux-efi-search-PATH-EFI-syslinux.patch
new file mode 100644
index 000000000000..6cbc11abfcc9
--- /dev/null
+++ b/syslinux-efi-search-PATH-EFI-syslinux.patch
@@ -0,0 +1,36 @@
+diff --git a/core/elflink/load_env32.c b/core/elflink/load_env32.c
+index 1fa43bd..ad4de96 100644
+--- a/core/elflink/load_env32.c
++++ b/core/elflink/load_env32.c
+@@ -112,6 +112,7 @@ void load_env32(com32sys_t * regs __unused)
+ "/isolinux",
+ "/boot/syslinux",
+ "/syslinux",
++ "/EFI/syslinux",
+ "/",
+ NULL
+ };
+diff --git a/core/fs/iso9660/iso9660.c b/core/fs/iso9660/iso9660.c
+index fe58a5b..2467bec 100644
+--- a/core/fs/iso9660/iso9660.c
++++ b/core/fs/iso9660/iso9660.c
+@@ -234,6 +234,7 @@ static int iso_open_config(struct com32_filedata *filedata)
+ "/isolinux",
+ "/boot/syslinux",
+ "/syslinux",
++ "/EFI/syslinux",
+ "/",
+ NULL
+ };
+diff --git a/core/fs/lib/loadconfig.c b/core/fs/lib/loadconfig.c
+index 95e6f3f..1af887f 100644
+--- a/core/fs/lib/loadconfig.c
++++ b/core/fs/lib/loadconfig.c
+@@ -17,6 +17,7 @@ int generic_open_config(struct com32_filedata *filedata)
+ NULL, /* CurrentDirName */
+ "/boot/syslinux",
+ "/syslinux",
++ "/EFI/syslinux",
+ "/",
+ NULL
+ };
diff --git a/syslinux-efi.install b/syslinux-efi.install
index 09942482ff43..4deff695f5d0 100644
--- a/syslinux-efi.install
+++ b/syslinux-efi.install
@@ -1,5 +1,9 @@
post_install() {
- echo "syslinux-efi has been installed at /usr/lib/syslinux/{efi64,efi32}/"
+ echo
+ echo "syslinux-efi has been installed at /usr/lib/syslinux/{efi64,efi32}/"
+ echo
+ echo "An example config file has been installed at /usr/lib/syslinux/syslinux.cfg"
+ echo
}
post_upgrade() {
diff --git a/syslinux.cfg b/syslinux.cfg
new file mode 100644
index 000000000000..813f211ede08
--- /dev/null
+++ b/syslinux.cfg
@@ -0,0 +1,24 @@
+PATH /EFI/syslinux:/boot/syslinux:/syslinux
+
+UI vesamenu.c32
+DEFAULT arch-core
+
+PROMPT 0
+TIMEOUT 30
+
+# MENU TITLE Arch Linux
+# MENU RESOLUTION 1366 768
+
+LABEL arch-core
+ MENU LABEL Arch Linux
+ LINUX /EFI/arch/vmlinuz-linux.efi
+ APPEND root=/dev/sda1 rootfstype=ext4 add_efi_memmap systemd.unit=graphical.target
+ INITRD /EFI/arch/initramfs-linux.img
+
+LABEL arch-core-fallback
+ MENU LABEL Arch Linux Fallback
+ LINUX /EFI/arch/vmlinuz-linux.efi
+ APPEND root=/dev/sda1 rootfstype=ext4 add_efi_memmap systemd.unit=graphical.target
+ INITRD /EFI/arch/initramfs-linux.img
+
+ONTIMEOUT arch-core