[arch-commits] Commit in syslinux/repos/testing-x86_64 (12 files)
Anatol Pomozov
anatolik at archlinux.org
Thu Jan 10 17:31:05 UTC 2019
Date: Thursday, January 10, 2019 @ 17:31:04
Author: anatolik
Revision: 343519
archrelease: copy trunk to testing-x86_64
Added:
syslinux/repos/testing-x86_64/PKGBUILD
(from rev 343518, syslinux/trunk/PKGBUILD)
syslinux/repos/testing-x86_64/single-load-segment.patch
(from rev 343518, syslinux/trunk/single-load-segment.patch)
syslinux/repos/testing-x86_64/strip_note_section.patch
(from rev 343518, syslinux/trunk/strip_note_section.patch)
syslinux/repos/testing-x86_64/syslinux-install_update
(from rev 343518, syslinux/trunk/syslinux-install_update)
syslinux/repos/testing-x86_64/syslinux.cfg
(from rev 343518, syslinux/trunk/syslinux.cfg)
syslinux/repos/testing-x86_64/syslinux.install
(from rev 343518, syslinux/trunk/syslinux.install)
Deleted:
syslinux/repos/testing-x86_64/PKGBUILD
syslinux/repos/testing-x86_64/single-load-segment.patch
syslinux/repos/testing-x86_64/strip_note_section.patch
syslinux/repos/testing-x86_64/syslinux-install_update
syslinux/repos/testing-x86_64/syslinux.cfg
syslinux/repos/testing-x86_64/syslinux.install
---------------------------+
PKGBUILD | 191 ++++-----
single-load-segment.patch | 608 ++++++++++++++--------------
strip_note_section.patch | 58 +-
syslinux-install_update | 930 ++++++++++++++++++++++----------------------
syslinux.cfg | 156 +++----
syslinux.install | 64 +--
6 files changed, 1006 insertions(+), 1001 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2019-01-10 17:30:23 UTC (rev 343518)
+++ PKGBUILD 2019-01-10 17:31:04 UTC (rev 343519)
@@ -1,93 +0,0 @@
-# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
-# Maintainer: Thomas Bächler <thomas at archlinux.org>
-# Maintainer: Anatol Pomozov <anatol.pomozov at gmail.com>
-# Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-
-pkgname=syslinux
-pkgver=6.04.alpha
-#_tag=syslinux-$pkgver
-_commit=5e426532210bb830d2d7426eb8d8c154d9dfcba6
-pkgrel=2
-pkgdesc='Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE'
-url='http://www.syslinux.org/'
-arch=(x86_64)
-backup=(boot/syslinux/syslinux.cfg)
-install=syslinux.install
-license=(GPL2)
-# syslinux build system is a mess of submakes that does not work with -jN
-# efi32/com32 do not like Arch cflags/ldflags, though it would be nice to have the flags for userspace tools
-options=(!makeflags !buildflags)
-makedepends=(git python2 nasm upx asciidoc)
-makedepends_x86_64=(lib32-glibc) # efi32 needs it
-optdepends=('perl-crypt-passwdmd5: For md5pass'
- 'perl-digest-sha1: For sha1pass'
- 'mtools: For mkdiskimage and syslinux support'
- 'gptfdisk: For GPT support'
- 'util-linux: For isohybrid'
- 'efibootmgr: For EFI support'
- 'dosfstools: For EFI support')
-
-# The syslinux-install_update script is maintained at https://gist.github.com/pyther/772138
-# Script not yet updated for syslinux-efi
-source=(git+https://repo.or.cz/syslinux.git#commit=$_commit
- syslinux.cfg
- syslinux-install_update
- strip_note_section.patch
- single-load-segment.patch
-)
-sha1sums=('SKIP'
- '1145f454bd297d373ad123425f93620c3e92f585'
- 'df5160a138ca8c6502d67fe1a64fec78b50e82c2'
- '11d928087764ca286af0327d40230f219348568c'
- '830c88005fb6c9e759f67b91ab33a10b002385de')
-
-_targets='bios efi32'
-case "$CARCH" in
- x86_64) _targets+=' efi64' ;;
-esac
-
-prepare() {
- cd syslinux
-
- # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414
- patch -p1 < ../strip_note_section.patch
-
- # https://bugs.archlinux.org/task/61059
- patch -p1 < ../single-load-segment.patch
-
- # do not swallow efi compilation output to make debugging easier
- sed 's|> /dev/null 2>&1||' -i efi/check-gnu-efi.sh
-
- # disable debug and development flags to reduce bootloader size
- truncate --size 0 mk/devel.mk
-}
-
-build() {
- cd syslinux
- export LDFLAGS+=--no-dynamic-linker # workaround for binutils 2.28 http://www.syslinux.org/wiki/index.php?title=Building
- export EXTRA_CFLAGS=-fno-PIE # to fix gpxe build
- make PYTHON=python2 $_targets
-}
-
-check() {
- cd syslinux
- # tests fail to compile
- # make unittest
- true
-}
-
-package() {
- cd syslinux
- make $_targets install INSTALLROOT="$pkgdir" SBINDIR=/usr/bin MANDIR=/usr/share/man AUXDIR=/usr/lib/syslinux
-
- rm -r "$pkgdir"/usr/lib/syslinux/{com32,dosutil,syslinux.com}
- install -D -m644 COPYING "$pkgdir"/usr/share/licenses/syslinux/COPYING
- install -d "$pkgdir"/usr/share/doc
- cp -ar doc "$pkgdir"/usr/share/doc/syslinux
-
- install -d "$pkgdir"/usr/lib/syslinux/bios
- mv "$pkgdir"/usr/lib/syslinux/{*.bin,*.c32,*.0,memdisk} "$pkgdir"/usr/lib/syslinux/bios
-
- install -D -m0644 ../syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
- install -D -m0755 ../syslinux-install_update "$pkgdir"/usr/bin/syslinux-install_update
-}
Copied: syslinux/repos/testing-x86_64/PKGBUILD (from rev 343518, syslinux/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2019-01-10 17:31:04 UTC (rev 343519)
@@ -0,0 +1,98 @@
+# Maintainer: Tobias Powalowski <tpowa at archlinux.org>
+# Maintainer: Thomas Bächler <thomas at archlinux.org>
+# Maintainer: Anatol Pomozov <anatol.pomozov at gmail.com>
+# Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+
+pkgname=syslinux
+pkgver=6.04.pre1.r41.g5e426532
+#_tag=syslinux-$pkgver
+_commit=5e426532210bb830d2d7426eb8d8c154d9dfcba6
+pkgrel=1
+pkgdesc='Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE'
+url='http://www.syslinux.org/'
+arch=(x86_64)
+backup=(boot/syslinux/syslinux.cfg)
+install=syslinux.install
+license=(GPL2)
+# syslinux build system is a mess of submakes that does not work with -jN
+# efi32/com32 do not like Arch cflags/ldflags, though it would be nice to have the flags for userspace tools
+options=(!makeflags !buildflags)
+makedepends=(git python2 nasm upx asciidoc)
+makedepends_x86_64=(lib32-glibc) # efi32 needs it
+optdepends=('perl-crypt-passwdmd5: For md5pass'
+ 'perl-digest-sha1: For sha1pass'
+ 'mtools: For mkdiskimage and syslinux support'
+ 'gptfdisk: For GPT support'
+ 'util-linux: For isohybrid'
+ 'efibootmgr: For EFI support'
+ 'dosfstools: For EFI support')
+
+# The syslinux-install_update script is maintained at https://gist.github.com/pyther/772138
+# Script not yet updated for syslinux-efi
+source=(git+https://repo.or.cz/syslinux.git#commit=$_commit
+ syslinux.cfg
+ syslinux-install_update
+ strip_note_section.patch
+ single-load-segment.patch
+)
+sha1sums=('SKIP'
+ '1145f454bd297d373ad123425f93620c3e92f585'
+ 'df5160a138ca8c6502d67fe1a64fec78b50e82c2'
+ '11d928087764ca286af0327d40230f219348568c'
+ '830c88005fb6c9e759f67b91ab33a10b002385de')
+
+_targets='bios efi32'
+case "$CARCH" in
+ x86_64) _targets+=' efi64' ;;
+esac
+
+pkgver() {
+ cd syslinux
+ git describe --long | sed 's/^syslinux-//;s/\([^-]*-g\)/r\1/;s/-/./g'
+}
+
+prepare() {
+ cd syslinux
+
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414
+ patch -p1 < ../strip_note_section.patch
+
+ # https://bugs.archlinux.org/task/61059
+ patch -p1 < ../single-load-segment.patch
+
+ # do not swallow efi compilation output to make debugging easier
+ sed 's|> /dev/null 2>&1||' -i efi/check-gnu-efi.sh
+
+ # disable debug and development flags to reduce bootloader size
+ truncate --size 0 mk/devel.mk
+}
+
+build() {
+ cd syslinux
+ export LDFLAGS+=--no-dynamic-linker # workaround for binutils 2.28 http://www.syslinux.org/wiki/index.php?title=Building
+ export EXTRA_CFLAGS=-fno-PIE # to fix gpxe build
+ make PYTHON=python2 $_targets
+}
+
+check() {
+ cd syslinux
+ # tests fail to compile
+ # make unittest
+ true
+}
+
+package() {
+ cd syslinux
+ make $_targets install INSTALLROOT="$pkgdir" SBINDIR=/usr/bin MANDIR=/usr/share/man AUXDIR=/usr/lib/syslinux
+
+ rm -r "$pkgdir"/usr/lib/syslinux/{com32,dosutil,syslinux.com}
+ install -D -m644 COPYING "$pkgdir"/usr/share/licenses/syslinux/COPYING
+ install -d "$pkgdir"/usr/share/doc
+ cp -ar doc "$pkgdir"/usr/share/doc/syslinux
+
+ install -d "$pkgdir"/usr/lib/syslinux/bios
+ mv "$pkgdir"/usr/lib/syslinux/{*.bin,*.c32,*.0,memdisk} "$pkgdir"/usr/lib/syslinux/bios
+
+ install -D -m0644 ../syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
+ install -D -m0755 ../syslinux-install_update "$pkgdir"/usr/bin/syslinux-install_update
+}
Deleted: single-load-segment.patch
===================================================================
--- single-load-segment.patch 2019-01-10 17:30:23 UTC (rev 343518)
+++ single-load-segment.patch 2019-01-10 17:31:04 UTC (rev 343519)
@@ -1,304 +0,0 @@
-Author: Lukas Schwaighofer <lukas at schwaighofer.name>
-Description: Force the linker to put all sections into a single PT_LOAD
- segment. This is required when using binutils >= 2.31 which writes two PT_LOAD
- segments by default. This is not supported by the wrapper.c script used to
- convert the shared object into an elf binary.
-Forwarded: https://www.syslinux.org/archives/2018-August/026167.html
-
----
- efi/i386/syslinux.ld | 37 +++++++++++++++++++++----------------
- efi/x86_64/syslinux.ld | 37 +++++++++++++++++++++----------------
- 2 files changed, 42 insertions(+), 32 deletions(-)
-
-diff --git a/efi/i386/syslinux.ld b/efi/i386/syslinux.ld
-index bab3fc7..5b4589d 100644
---- a/efi/i386/syslinux.ld
-+++ b/efi/i386/syslinux.ld
-@@ -19,6 +19,11 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
- OUTPUT_ARCH(i386)
- ENTRY(_start)
-
-+PHDRS
-+{
-+ all PT_LOAD ;
-+}
-+
- SECTIONS
- {
- . = 0;
-@@ -31,7 +36,7 @@ SECTIONS
- *(.text)
- *(.text.*)
- __text_end = .;
-- }
-+ } :all
-
- . = ALIGN(16);
-
-@@ -40,7 +45,7 @@ SECTIONS
- *(.rodata)
- *(.rodata.*)
- __rodata_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -49,14 +54,14 @@ SECTIONS
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- __ctors_end = .;
-- }
-+ } :all
-
- .dtors : {
- __dtors_start = .;
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- __dtors_end = .;
-- }
-+ } :all
-
- . = ALIGN(4096);
- .rel : {
-@@ -64,7 +69,7 @@ SECTIONS
- *(.rel.data)
- *(.rel.data.*)
- *(.rel.ctors)
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -72,14 +77,14 @@ SECTIONS
- __gnu_hash_start = .;
- *(.gnu.hash)
- __gnu_hash_end = .;
-- }
-+ } :all
-
-
- .dynsym : {
- __dynsym_start = .;
- *(.dynsym)
- __dynsym_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -87,7 +92,7 @@ SECTIONS
- __dynstr_start = .;
- *(.dynstr)
- __dynstr_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -104,7 +109,7 @@ SECTIONS
- KEEP (*(.got.plt))
- KEEP (*(.got))
- __got_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -112,7 +117,7 @@ SECTIONS
- __dynamic_start = .;
- *(.dynamic)
- __dynamic_end = .;
-- }
-+ } :all
-
- . = ALIGN(16);
-
-@@ -122,19 +127,19 @@ SECTIONS
- *(.data.*)
- *(.lowmem)
- __data_end = .;
-- }
-+ } :all
-
- .reloc : {
- *(.reloc)
-- }
-+ } :all
-
- .symtab : {
- *(.symtab)
-- }
-+ } :all
-
- .strtab : {
- *(.strtab)
-- }
-+ } :all
-
- .bss (NOLOAD) : {
- /* the EFI loader doesn't seem to like a .bss section,
-@@ -148,7 +153,7 @@ SECTIONS
- __bss_end = .;
- *(.sbss)
- *(.scommon)
-- }
-+ } :all
- __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start);
- __bss_dwords = (__bss_len + 3) >> 2;
-
-@@ -161,7 +166,7 @@ SECTIONS
- *(.hugebss)
- *(.hugebss.*)
- __hugebss_end = .;
-- }
-+ } :all
-
- _end = .;
-
-diff --git a/efi/x86_64/syslinux.ld b/efi/x86_64/syslinux.ld
-index 450641c..cad28a8 100644
---- a/efi/x86_64/syslinux.ld
-+++ b/efi/x86_64/syslinux.ld
-@@ -19,6 +19,11 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
- OUTPUT_ARCH(i386:x86-64)
- ENTRY(_start)
-
-+PHDRS
-+{
-+ all PT_LOAD ;
-+}
-+
- SECTIONS
- {
- . = 0;
-@@ -31,7 +36,7 @@ SECTIONS
- *(.text)
- *(.text.*)
- __text_end = .;
-- }
-+ } :all
-
- . = ALIGN(16);
-
-@@ -40,7 +45,7 @@ SECTIONS
- *(.rodata)
- *(.rodata.*)
- __rodata_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -49,14 +54,14 @@ SECTIONS
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- __ctors_end = .;
-- }
-+ } :all
-
- .dtors : {
- __dtors_start = .;
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- __dtors_end = .;
-- }
-+ } :all
-
- . = ALIGN(4096);
- .rel : {
-@@ -64,7 +69,7 @@ SECTIONS
- *(.rel.data)
- *(.rel.data.*)
- *(.rel.ctors)
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -72,14 +77,14 @@ SECTIONS
- __gnu_hash_start = .;
- *(.gnu.hash)
- __gnu_hash_end = .;
-- }
-+ } :all
-
-
- .dynsym : {
- __dynsym_start = .;
- *(.dynsym)
- __dynsym_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -87,7 +92,7 @@ SECTIONS
- __dynstr_start = .;
- *(.dynstr)
- __dynstr_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -104,7 +109,7 @@ SECTIONS
- KEEP (*(.got.plt))
- KEEP (*(.got))
- __got_end = .;
-- }
-+ } :all
-
- . = ALIGN(4);
-
-@@ -112,7 +117,7 @@ SECTIONS
- __dynamic_start = .;
- *(.dynamic)
- __dynamic_end = .;
-- }
-+ } :all
-
- . = ALIGN(16);
-
-@@ -122,19 +127,19 @@ SECTIONS
- *(.data.*)
- *(.lowmem)
- __data_end = .;
-- }
-+ } :all
-
- .reloc : {
- *(.reloc)
-- }
-+ } :all
-
- .symtab : {
- *(.symtab)
-- }
-+ } :all
-
- .strtab : {
- *(.strtab)
-- }
-+ } :all
-
- .bss (NOLOAD) : {
- /* the EFI loader doesn't seem to like a .bss section,
-@@ -148,7 +153,7 @@ SECTIONS
- __bss_end = .;
- *(.sbss)
- *(.scommon)
-- }
-+ } :all
- __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start);
- __bss_dwords = (__bss_len + 3) >> 2;
-
-@@ -161,7 +166,7 @@ SECTIONS
- *(.hugebss)
- *(.hugebss.*)
- __hugebss_end = .;
-- }
-+ } :all
-
- _end = .;
-
Copied: syslinux/repos/testing-x86_64/single-load-segment.patch (from rev 343518, syslinux/trunk/single-load-segment.patch)
===================================================================
--- single-load-segment.patch (rev 0)
+++ single-load-segment.patch 2019-01-10 17:31:04 UTC (rev 343519)
@@ -0,0 +1,304 @@
+Author: Lukas Schwaighofer <lukas at schwaighofer.name>
+Description: Force the linker to put all sections into a single PT_LOAD
+ segment. This is required when using binutils >= 2.31 which writes two PT_LOAD
+ segments by default. This is not supported by the wrapper.c script used to
+ convert the shared object into an elf binary.
+Forwarded: https://www.syslinux.org/archives/2018-August/026167.html
+
+---
+ efi/i386/syslinux.ld | 37 +++++++++++++++++++++----------------
+ efi/x86_64/syslinux.ld | 37 +++++++++++++++++++++----------------
+ 2 files changed, 42 insertions(+), 32 deletions(-)
+
+diff --git a/efi/i386/syslinux.ld b/efi/i386/syslinux.ld
+index bab3fc7..5b4589d 100644
+--- a/efi/i386/syslinux.ld
++++ b/efi/i386/syslinux.ld
+@@ -19,6 +19,11 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
+ OUTPUT_ARCH(i386)
+ ENTRY(_start)
+
++PHDRS
++{
++ all PT_LOAD ;
++}
++
+ SECTIONS
+ {
+ . = 0;
+@@ -31,7 +36,7 @@ SECTIONS
+ *(.text)
+ *(.text.*)
+ __text_end = .;
+- }
++ } :all
+
+ . = ALIGN(16);
+
+@@ -40,7 +45,7 @@ SECTIONS
+ *(.rodata)
+ *(.rodata.*)
+ __rodata_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -49,14 +54,14 @@ SECTIONS
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ __ctors_end = .;
+- }
++ } :all
+
+ .dtors : {
+ __dtors_start = .;
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ __dtors_end = .;
+- }
++ } :all
+
+ . = ALIGN(4096);
+ .rel : {
+@@ -64,7 +69,7 @@ SECTIONS
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.ctors)
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -72,14 +77,14 @@ SECTIONS
+ __gnu_hash_start = .;
+ *(.gnu.hash)
+ __gnu_hash_end = .;
+- }
++ } :all
+
+
+ .dynsym : {
+ __dynsym_start = .;
+ *(.dynsym)
+ __dynsym_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -87,7 +92,7 @@ SECTIONS
+ __dynstr_start = .;
+ *(.dynstr)
+ __dynstr_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -104,7 +109,7 @@ SECTIONS
+ KEEP (*(.got.plt))
+ KEEP (*(.got))
+ __got_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -112,7 +117,7 @@ SECTIONS
+ __dynamic_start = .;
+ *(.dynamic)
+ __dynamic_end = .;
+- }
++ } :all
+
+ . = ALIGN(16);
+
+@@ -122,19 +127,19 @@ SECTIONS
+ *(.data.*)
+ *(.lowmem)
+ __data_end = .;
+- }
++ } :all
+
+ .reloc : {
+ *(.reloc)
+- }
++ } :all
+
+ .symtab : {
+ *(.symtab)
+- }
++ } :all
+
+ .strtab : {
+ *(.strtab)
+- }
++ } :all
+
+ .bss (NOLOAD) : {
+ /* the EFI loader doesn't seem to like a .bss section,
+@@ -148,7 +153,7 @@ SECTIONS
+ __bss_end = .;
+ *(.sbss)
+ *(.scommon)
+- }
++ } :all
+ __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start);
+ __bss_dwords = (__bss_len + 3) >> 2;
+
+@@ -161,7 +166,7 @@ SECTIONS
+ *(.hugebss)
+ *(.hugebss.*)
+ __hugebss_end = .;
+- }
++ } :all
+
+ _end = .;
+
+diff --git a/efi/x86_64/syslinux.ld b/efi/x86_64/syslinux.ld
+index 450641c..cad28a8 100644
+--- a/efi/x86_64/syslinux.ld
++++ b/efi/x86_64/syslinux.ld
+@@ -19,6 +19,11 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
+ OUTPUT_ARCH(i386:x86-64)
+ ENTRY(_start)
+
++PHDRS
++{
++ all PT_LOAD ;
++}
++
+ SECTIONS
+ {
+ . = 0;
+@@ -31,7 +36,7 @@ SECTIONS
+ *(.text)
+ *(.text.*)
+ __text_end = .;
+- }
++ } :all
+
+ . = ALIGN(16);
+
+@@ -40,7 +45,7 @@ SECTIONS
+ *(.rodata)
+ *(.rodata.*)
+ __rodata_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -49,14 +54,14 @@ SECTIONS
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors))
+ __ctors_end = .;
+- }
++ } :all
+
+ .dtors : {
+ __dtors_start = .;
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors))
+ __dtors_end = .;
+- }
++ } :all
+
+ . = ALIGN(4096);
+ .rel : {
+@@ -64,7 +69,7 @@ SECTIONS
+ *(.rel.data)
+ *(.rel.data.*)
+ *(.rel.ctors)
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -72,14 +77,14 @@ SECTIONS
+ __gnu_hash_start = .;
+ *(.gnu.hash)
+ __gnu_hash_end = .;
+- }
++ } :all
+
+
+ .dynsym : {
+ __dynsym_start = .;
+ *(.dynsym)
+ __dynsym_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -87,7 +92,7 @@ SECTIONS
+ __dynstr_start = .;
+ *(.dynstr)
+ __dynstr_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -104,7 +109,7 @@ SECTIONS
+ KEEP (*(.got.plt))
+ KEEP (*(.got))
+ __got_end = .;
+- }
++ } :all
+
+ . = ALIGN(4);
+
+@@ -112,7 +117,7 @@ SECTIONS
+ __dynamic_start = .;
+ *(.dynamic)
+ __dynamic_end = .;
+- }
++ } :all
+
+ . = ALIGN(16);
+
+@@ -122,19 +127,19 @@ SECTIONS
+ *(.data.*)
+ *(.lowmem)
+ __data_end = .;
+- }
++ } :all
+
+ .reloc : {
+ *(.reloc)
+- }
++ } :all
+
+ .symtab : {
+ *(.symtab)
+- }
++ } :all
+
+ .strtab : {
+ *(.strtab)
+- }
++ } :all
+
+ .bss (NOLOAD) : {
+ /* the EFI loader doesn't seem to like a .bss section,
+@@ -148,7 +153,7 @@ SECTIONS
+ __bss_end = .;
+ *(.sbss)
+ *(.scommon)
+- }
++ } :all
+ __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start);
+ __bss_dwords = (__bss_len + 3) >> 2;
+
+@@ -161,7 +166,7 @@ SECTIONS
+ *(.hugebss)
+ *(.hugebss.*)
+ __hugebss_end = .;
+- }
++ } :all
+
+ _end = .;
+
Deleted: strip_note_section.patch
===================================================================
--- strip_note_section.patch 2019-01-10 17:30:23 UTC (rev 343518)
+++ strip_note_section.patch 2019-01-10 17:31:04 UTC (rev 343519)
@@ -1,29 +0,0 @@
-Author: Lukas Schwaighofer <lukas at schwaighofer.name>
-Description: Strip the .note.gnu.property section for the mbr. This section is
- added since binutils Debian version 2.31.1-2 and causes mbr.bin to grow in
- size beyond what can fit into the master boot record.
----
- mbr/i386/mbr.ld | 1 +
- mbr/x86_64/mbr.ld | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld
-index d14ba80..5368346 100644
---- a/mbr/i386/mbr.ld
-+++ b/mbr/i386/mbr.ld
-@@ -70,4 +70,5 @@ SECTIONS
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /DISCARD/ : { *(.note.GNU-stack) }
-+ /DISCARD/ : { *(.note.gnu.property) }
- }
-diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
-index ae27d49..b8c0d89 100644
---- a/mbr/x86_64/mbr.ld
-+++ b/mbr/x86_64/mbr.ld
-@@ -69,4 +69,5 @@ SECTIONS
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /DISCARD/ : { *(.note.GNU-stack) }
-+ /DISCARD/ : { *(.note.gnu.property) }
- }
Copied: syslinux/repos/testing-x86_64/strip_note_section.patch (from rev 343518, syslinux/trunk/strip_note_section.patch)
===================================================================
--- strip_note_section.patch (rev 0)
+++ strip_note_section.patch 2019-01-10 17:31:04 UTC (rev 343519)
@@ -0,0 +1,29 @@
+Author: Lukas Schwaighofer <lukas at schwaighofer.name>
+Description: Strip the .note.gnu.property section for the mbr. This section is
+ added since binutils Debian version 2.31.1-2 and causes mbr.bin to grow in
+ size beyond what can fit into the master boot record.
+---
+ mbr/i386/mbr.ld | 1 +
+ mbr/x86_64/mbr.ld | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld
+index d14ba80..5368346 100644
+--- a/mbr/i386/mbr.ld
++++ b/mbr/i386/mbr.ld
+@@ -70,4 +70,5 @@ SECTIONS
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ /DISCARD/ : { *(.note.GNU-stack) }
++ /DISCARD/ : { *(.note.gnu.property) }
+ }
+diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
+index ae27d49..b8c0d89 100644
+--- a/mbr/x86_64/mbr.ld
++++ b/mbr/x86_64/mbr.ld
+@@ -69,4 +69,5 @@ SECTIONS
+ .debug_typenames 0 : { *(.debug_typenames) }
+ .debug_varnames 0 : { *(.debug_varnames) }
+ /DISCARD/ : { *(.note.GNU-stack) }
++ /DISCARD/ : { *(.note.gnu.property) }
+ }
Deleted: syslinux-install_update
===================================================================
--- syslinux-install_update 2019-01-10 17:30:23 UTC (rev 343518)
+++ syslinux-install_update 2019-01-10 17:31:04 UTC (rev 343519)
@@ -1,465 +0,0 @@
-#!/usr/bin/bash
-#
-# Syslinux Installer / Updater Script (for BIOS only)
-# Copyright (C) 2011-2013 Matthew Gyurgyik <pyther at pyther.net>
-# Copyright (C) 2013 Keshav Padram Amburay <(the) (ddoott) (ridikulus) (ddoott) (rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-#-----------------
-# ChangeLog:
-# 2013-10-23 : Keshav Padram Amburay : Updated script to work with Syslinux 6.02 Arch Linux pkg
-#-----------------
-# Exit Codes:
-# 1 - get_boot_device or other function failed
-# 2 - install/update failed
-# 3 - set_active failed
-# 4 - install_mbr failed
-#-----------------
-
-shopt -s nullglob
-
-bios_libpath="/usr/lib/syslinux/bios"
-bios_bootpath="/boot/syslinux"
-EXTLINUX="/usr/bin/extlinux"
-
-bios_autoupdate_file="/boot/syslinux/SYSLINUX_AUTOUPDATE"
-pciids_file="/usr/share/hwdata/pci.ids"
-
-## Helper functions ##
-# Taken from libui-sh
-# $1 needle
-# $2 set (array) haystack
-check_is_in() {
- local needle="$1" element
- shift
- for element; do
- [[ $element = $needle ]] && return 0
- done
- return 1
-}
-
-get_disk() {
- local part=$1
- if [[ ! -b "${part}" ]]; then
- echo >&2 "error: '$part' is not a valid block device!"
- exit 1
- fi
-
- case "$part" in
- # catch cases like mmcblk0p1 and loop0p3
- *[[:digit:]]p[[:digit:]]*)
- local disk="${part%p[[:digit:]]}" # get everything before p1
- ;;
- *)
- local disk="${part%%[[:digit:]]*}"
- ;;
- esac
- if [[ ! -b "${disk}" ]]; then
- echo >&2 "error: '$disk' is not a valid block device!"
- exit 1
- fi
- echo $disk
-}
-
-# return true when blockdevice is an md raid, otherwise return a unset value
-# get all devices that are part of raid device $1
-device_is_raid() {
- [[ $1 && -f /proc/mdstat ]] || return 1
- local devmajor=$(stat -c %t "$1")
- (( devmajor == 9 ))
-}
-
-mdraid_all_slaves() {
- local slave slaves
- for slave in /sys/class/block/${1##*/}/slaves/*; do
- source "$slave/uevent"
- slaves="$slaves/dev/$DEVNAME "
- unset DEVNAME
- done
- echo $slaves
-}
-
-# Check /sys/block to see if device is partitioned
-# If we have a partitioned block device (sda1) /sys/block/sda1/dev will not exist
-# However, if we have an unpartitioned block device (sda) /sys/block/sda/dev will exist
-dev_is_part() {
- # $1 - blockdevice
- local dev=$1
-
- # If block device uevent file should be found
- # If a partition is passed in path shouldn't exist
- if [[ $dev = *cciss* ]]; then
- [[ -f /sys/block/cciss\!${dev##*/}/dev ]] && return 1
- elif [[ $dev = *ida* ]]; then
- [[ -f /sys/block/ida\!${dev##*/}/dev ]] && return 1
- else
- [[ -f /sys/block/${dev##*/}/dev ]] && return 1
- fi
-
- return 0
-}
-
-# If EFI PART is present in the first 8 bytes then it must be a GPT disk
-device_is_gpt() {
- local partsig=$(dd if="$1" skip=64 bs=8 count=1 2>/dev/null)
- [[ $partsig = "EFI PART" ]]
-}
-
-clear_gpt_attr2() {
- # $1 - Block Device, no partitions
- local disk=$1
-
- # Special Exception for cciss controllers
- if [[ $disk = *cciss* ]]; then
- for part in /dev/cciss/${disk##*/}*p*; do
- local partnum="${part##*[[:alpha:]]}"
- sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
- done
- # Smart 2 Controllers
- elif [[ $disk = *ida* ]]; then
- for part in /dev/ida/${disk##*/}*p*; do
- local partnum="${part##*[[:alpha:]]}"
- sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
- done
- else
- for part in /sys/block/${disk##*/}/${disk##*/}*; do
- local partnum="${part##*[[:alpha:]]}"
- sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
- done
- fi
- return 0
-}
-
-usage() {
-cat << EOF
-usage: $0 options
-
-This script will install or upgrade Syslinux (for BIOS only)
-
-OPTIONS:
- -h Show this message
- -i Install Syslinux
- -u Update Syslinux
- -a Set Boot flag on boot partiton
- -m Install Syslinux MBR
- -s Updates Syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
-
- Arguments Required:
- -c Chroot install (ex: -c /mnt)
-
-Example Usage: $0 -i -a -m # (install, set boot flag, install mbr)
- $0 -u # (update)
-EOF
-}
-
-# Trys to find the partition that /boot resides on
-# This will either be on /boot or / (root)
-getBoot() {
- if [[ ! -d "$bios_bootpath" ]]; then
- echo "Could not find $bios_bootpath"
- echo "Is boot mounted? Is Syslinux installed?"
- exit 1
- fi
-
- syslinux_fs=(ext2 ext3 ext4 btrfs vfat xfs)
-
- # Use DATA from findmnt see rc.sysint for more info
- if [[ -f /proc/self/mountinfo ]]; then
- read rootdev rootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/")
- read bootdev bootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/boot")
- else
- echo "Could not find /proc/self/mountinfo"
- echo "Are you running a kernel greater than 2.6.24?"
- exit 1
- fi
-
- if [[ $bootfs ]]; then
- if ! check_is_in "$bootfs" "${syslinux_fs[@]}"; then
- echo "/boot file system is not supported by Syslinux"
- exit 1
- fi
- boot="boot"
- bootpart="$(readlink -f "$bootdev")"
- elif [[ $rootfs ]]; then
- if ! check_is_in "$rootfs" "${syslinux_fs[@]}"; then
- echo "/ (root) file system is not supported by Syslinux"
- exit 1
- fi
- boot="root"
- bootpart="$(readlink -f "$rootdev")"
- else
- echo "Could not find filesystem on / (root) or /boot."
- exit 1
- fi
-}
-
-# We store the partition table type either gpt or mbr in var ptb
-# In rare cases a user could have one raid disk using mbr and another using gpt
-# In such cases we accept that the output may be incomplete
-
-# Calls get_ptb() for $bootpart or for all device in RAID
-declare -A bootdevs
-get_boot_devices() {
- if device_is_raid "$bootpart"; then
- slaves=$(mdraid_all_slaves "$bootpart")
-
- for slave in ${slaves[@]}; do
- local disk=$(get_disk "$slave")
- device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
- bootdevs[$slave]="$ptb"
- done
- else
- local disk=$(get_disk "$bootpart")
- device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
- bootdevs[$bootpart]="$ptb"
- fi
-}
-
-# Function Assumes the boot partition should be marked as active
-# All other partitions should not have the boot flag set
-set_active() {
- # If any bootdev is a block device without partitions bail
- # we want to set the boot flag on partitioned disk
- for dev in "${!bootdevs[@]}"; do
- dev_is_part $dev || { echo "$dev does not contain partition table. Aborting set_active!"; return 1; }
- done
-
- # Clear BIOS Bootable Legacy Attribute for GPT drives
- # In rare cases where a RAID device has slaves on the same block device
- # Attribute 2 will be cleared for each partition multiple times
- for dev in "${!bootdevs[@]}"; do
- local ptb="${bootdevs[$dev]}"
- if [[ "$ptb" = GPT ]]; then
- local disk=$(get_disk "$dev")
- clear_gpt_attr2 "$disk"
- fi
- done
-
- # Set the boot flag on bootdevs (generated from get_boot_devices)
- for part in "${!bootdevs[@]}"; do
- local ptb="${bootdevs[$part]}"
- local partnum="${part##*[[:alpha:]]}"
- local disk=$(get_disk "$part")
-
- if [[ "$ptb" = MBR ]]; then
- if sfdisk "$disk" --activate "$partnum" &>/dev/null; then
- echo "Boot Flag Set - $part"
- else
- echo "FAILED to Set the boot flag on $part"
- exit 3
- fi
- elif [[ "$ptb" = GPT ]]; then
- if [[ ! -e /usr/bin/sgdisk ]]; then
- echo "FAILED to set attribute Legacy BIOS Bootable. sgdisk is not found - please install 'gptfdisk' package."
- exit 3
- fi
-
- if sgdisk "$disk" --attributes="$partnum":set:2 &>/dev/null; then
- echo "Attribute Legacy Bios Bootable Set - $part"
- else
- echo "FAILED to set attribute Legacy BIOS Bootable on $part"
- exit 3
- fi
- fi
- done
- return 0
-}
-
-install_mbr() {
- # If any bootdev is a block device without partitions bail
- # we want to install the mbr to a partitioned disk
- for dev in "${!bootdevs[@]}"; do
- dev_is_part "$dev" || { echo "$dev does not contain partition table. Aborting MBR install."; return 1; }
- done
-
- for part in "${!bootdevs[@]}"; do
- local partnum="${part##*[[:alpha:]]}"
- local disk=$(get_disk "$part")
- local ptb="${bootdevs[$part]}"
-
- # We want to install to the root of the block device
- # If the device is a partition - ABORT!
- dev_is_part "$disk" && \
- { echo "ABORT! MBR installation to partition ($disk)!"; exit 4;}
-
- if [[ "$ptb" = MBR ]]; then
- mbrfile="$bios_libpath/mbr.bin"
- elif [[ "$ptb" = GPT ]]; then
- mbrfile="$bios_libpath/gptmbr.bin"
- fi
-
- if dd bs=440 count=1 conv=notrunc if="$mbrfile" of="$disk" &> /dev/null; then
- echo "Installed MBR ($mbrfile) to $disk"
- else
- echo "Error Installing MBR ($mbrfile) to $disk"
- exit 4
- fi
- done
- return 0
-}
-
-install_modules() {
- # Copy all syslinux *.c32 modules to /boot
- rm "$bios_bootpath"/*.c32 &> /dev/null
- cp "$bios_libpath"/*.c32 "$bios_bootpath"/ &> /dev/null
-
- # Copy / Symlink pci.ids if pci.ids exists on the FS
- if [[ -f "$pciids_file" ]]; then
- rm "$bios_bootpath/pci.ids" &> /dev/null
- cp "$pciids_file" "$bios_bootpath/pci.ids" &> /dev/null
- fi
-}
-
-_install() {
- install_modules
-
- if device_is_raid "$bootpart" ; then
- echo "Detected RAID on /boot - installing Syslinux with --raid"
- "$EXTLINUX" --install "$bios_bootpath" --raid &> /dev/null
- else
- "$EXTLINUX" --install "$bios_bootpath" &> /dev/null
- fi
-
- if (( $? )); then
- echo "Syslinux BIOS install failed"
- exit 2
- else
- echo "Syslinux BIOS install successful"
- fi
-
- touch "$CHROOT/$bios_autoupdate_file"
-}
-
-update() {
- install_modules
-
- if device_is_raid "$bootpart" ; then
- echo "Detected RAID on /boot - updating Syslinux with --raid"
- "$EXTLINUX" --update "$bios_bootpath" --raid &> /dev/null
- else
- "$EXTLINUX" --update "$bios_bootpath" &> /dev/null
- fi
-
- if (($?)); then
- echo "Syslinux BIOS update failed"
- exit 2
- else
- echo "Syslinux BIOS update successful"
- fi
-}
-
-if (( $# == 0 )); then
- usage
- exit 1
-fi
-
-while getopts "c:uihmas" opt; do
- case $opt in
- c)
- CHROOT=$(readlink -e "$OPTARG")
- if [[ -z $CHROOT ]]; then
- echo "error: chroot path ``$OPTARG does not exist";
- exit 1
- fi
- ;;
- h)
- USAGE="True"
- ;;
- i)
- INSTALL="True"
- ;;
- u)
- UPDATE="True"
- ;;
- m)
- MBR="True"
- ;;
- a)
- SET_ACTIVE="True"
- ;;
- s)
- # If AUTOUPDATE_FILE does not exist exit the script
- if [[ -f $bios_autoupdate_file ]]; then
- UPDATE="True"
- else
- exit 0
- fi
- ;;
- *)
- usage
- exit 1
- ;;
- esac
-done
-
-if [[ $USAGE ]]; then
- usage
- exit 0
-fi
-
-# Display Usage Information if both Install and Update are passed
-if [[ $INSTALL && $UPDATE ]]; then
- usage
- exit 1
-fi
-
-# Make sure only root can run our script
-if (( $(id -u) != 0 )); then
- echo "This script must be run as root" 1>&2
- exit 1
-fi
-
-# If a chroot dir is path set variables to reflect chroot
-if [[ "$CHROOT" ]]; then
- bios_libpath="$CHROOT$bios_libpath"
- bios_bootpath="$CHROOT$bios_bootpath"
- EXTLINUX="$CHROOT$EXTLINUX"
-fi
-
-# Exit if no /boot path exists
-if ( f=("$bios_bootpath"/*); (( ! ${#f[@]} )) ); then
- echo "Error: $bios_bootpath is empty!"
- echo "Is /boot mounted?"
- exit 1
-fi
-
-# Get the boot device if any of these options are passed
-if [[ $INSTALL || $UPDATE || $SET_ACTIVE || $MBR ]]; then
- getBoot
-fi
-
-# Install or Update
-if [[ $INSTALL ]]; then
- _install || exit
-elif [[ $UPDATE ]]; then
- update || exit
-fi
-
-
-# SET_ACTIVE and MBR
-if [[ $SET_ACTIVE ]] || [[ $MBR ]]; then
- get_boot_devices
-
- if [[ $SET_ACTIVE ]]; then
- set_active || exit
- fi
-
- if [[ $MBR ]]; then
- install_mbr || exit
- fi
-fi
-
-exit 0
Copied: syslinux/repos/testing-x86_64/syslinux-install_update (from rev 343518, syslinux/trunk/syslinux-install_update)
===================================================================
--- syslinux-install_update (rev 0)
+++ syslinux-install_update 2019-01-10 17:31:04 UTC (rev 343519)
@@ -0,0 +1,465 @@
+#!/usr/bin/bash
+#
+# Syslinux Installer / Updater Script (for BIOS only)
+# Copyright (C) 2011-2013 Matthew Gyurgyik <pyther at pyther.net>
+# Copyright (C) 2013 Keshav Padram Amburay <(the) (ddoott) (ridikulus) (ddoott) (rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+#-----------------
+# ChangeLog:
+# 2013-10-23 : Keshav Padram Amburay : Updated script to work with Syslinux 6.02 Arch Linux pkg
+#-----------------
+# Exit Codes:
+# 1 - get_boot_device or other function failed
+# 2 - install/update failed
+# 3 - set_active failed
+# 4 - install_mbr failed
+#-----------------
+
+shopt -s nullglob
+
+bios_libpath="/usr/lib/syslinux/bios"
+bios_bootpath="/boot/syslinux"
+EXTLINUX="/usr/bin/extlinux"
+
+bios_autoupdate_file="/boot/syslinux/SYSLINUX_AUTOUPDATE"
+pciids_file="/usr/share/hwdata/pci.ids"
+
+## Helper functions ##
+# Taken from libui-sh
+# $1 needle
+# $2 set (array) haystack
+check_is_in() {
+ local needle="$1" element
+ shift
+ for element; do
+ [[ $element = $needle ]] && return 0
+ done
+ return 1
+}
+
+get_disk() {
+ local part=$1
+ if [[ ! -b "${part}" ]]; then
+ echo >&2 "error: '$part' is not a valid block device!"
+ exit 1
+ fi
+
+ case "$part" in
+ # catch cases like mmcblk0p1 and loop0p3
+ *[[:digit:]]p[[:digit:]]*)
+ local disk="${part%p[[:digit:]]}" # get everything before p1
+ ;;
+ *)
+ local disk="${part%%[[:digit:]]*}"
+ ;;
+ esac
+ if [[ ! -b "${disk}" ]]; then
+ echo >&2 "error: '$disk' is not a valid block device!"
+ exit 1
+ fi
+ echo $disk
+}
+
+# return true when blockdevice is an md raid, otherwise return a unset value
+# get all devices that are part of raid device $1
+device_is_raid() {
+ [[ $1 && -f /proc/mdstat ]] || return 1
+ local devmajor=$(stat -c %t "$1")
+ (( devmajor == 9 ))
+}
+
+mdraid_all_slaves() {
+ local slave slaves
+ for slave in /sys/class/block/${1##*/}/slaves/*; do
+ source "$slave/uevent"
+ slaves="$slaves/dev/$DEVNAME "
+ unset DEVNAME
+ done
+ echo $slaves
+}
+
+# Check /sys/block to see if device is partitioned
+# If we have a partitioned block device (sda1) /sys/block/sda1/dev will not exist
+# However, if we have an unpartitioned block device (sda) /sys/block/sda/dev will exist
+dev_is_part() {
+ # $1 - blockdevice
+ local dev=$1
+
+ # If block device uevent file should be found
+ # If a partition is passed in path shouldn't exist
+ if [[ $dev = *cciss* ]]; then
+ [[ -f /sys/block/cciss\!${dev##*/}/dev ]] && return 1
+ elif [[ $dev = *ida* ]]; then
+ [[ -f /sys/block/ida\!${dev##*/}/dev ]] && return 1
+ else
+ [[ -f /sys/block/${dev##*/}/dev ]] && return 1
+ fi
+
+ return 0
+}
+
+# If EFI PART is present in the first 8 bytes then it must be a GPT disk
+device_is_gpt() {
+ local partsig=$(dd if="$1" skip=64 bs=8 count=1 2>/dev/null)
+ [[ $partsig = "EFI PART" ]]
+}
+
+clear_gpt_attr2() {
+ # $1 - Block Device, no partitions
+ local disk=$1
+
+ # Special Exception for cciss controllers
+ if [[ $disk = *cciss* ]]; then
+ for part in /dev/cciss/${disk##*/}*p*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ # Smart 2 Controllers
+ elif [[ $disk = *ida* ]]; then
+ for part in /dev/ida/${disk##*/}*p*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ else
+ for part in /sys/block/${disk##*/}/${disk##*/}*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ fi
+ return 0
+}
+
+usage() {
+cat << EOF
+usage: $0 options
+
+This script will install or upgrade Syslinux (for BIOS only)
+
+OPTIONS:
+ -h Show this message
+ -i Install Syslinux
+ -u Update Syslinux
+ -a Set Boot flag on boot partiton
+ -m Install Syslinux MBR
+ -s Updates Syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
+
+ Arguments Required:
+ -c Chroot install (ex: -c /mnt)
+
+Example Usage: $0 -i -a -m # (install, set boot flag, install mbr)
+ $0 -u # (update)
+EOF
+}
+
+# Trys to find the partition that /boot resides on
+# This will either be on /boot or / (root)
+getBoot() {
+ if [[ ! -d "$bios_bootpath" ]]; then
+ echo "Could not find $bios_bootpath"
+ echo "Is boot mounted? Is Syslinux installed?"
+ exit 1
+ fi
+
+ syslinux_fs=(ext2 ext3 ext4 btrfs vfat xfs)
+
+ # Use DATA from findmnt see rc.sysint for more info
+ if [[ -f /proc/self/mountinfo ]]; then
+ read rootdev rootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/")
+ read bootdev bootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/boot")
+ else
+ echo "Could not find /proc/self/mountinfo"
+ echo "Are you running a kernel greater than 2.6.24?"
+ exit 1
+ fi
+
+ if [[ $bootfs ]]; then
+ if ! check_is_in "$bootfs" "${syslinux_fs[@]}"; then
+ echo "/boot file system is not supported by Syslinux"
+ exit 1
+ fi
+ boot="boot"
+ bootpart="$(readlink -f "$bootdev")"
+ elif [[ $rootfs ]]; then
+ if ! check_is_in "$rootfs" "${syslinux_fs[@]}"; then
+ echo "/ (root) file system is not supported by Syslinux"
+ exit 1
+ fi
+ boot="root"
+ bootpart="$(readlink -f "$rootdev")"
+ else
+ echo "Could not find filesystem on / (root) or /boot."
+ exit 1
+ fi
+}
+
+# We store the partition table type either gpt or mbr in var ptb
+# In rare cases a user could have one raid disk using mbr and another using gpt
+# In such cases we accept that the output may be incomplete
+
+# Calls get_ptb() for $bootpart or for all device in RAID
+declare -A bootdevs
+get_boot_devices() {
+ if device_is_raid "$bootpart"; then
+ slaves=$(mdraid_all_slaves "$bootpart")
+
+ for slave in ${slaves[@]}; do
+ local disk=$(get_disk "$slave")
+ device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
+ bootdevs[$slave]="$ptb"
+ done
+ else
+ local disk=$(get_disk "$bootpart")
+ device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
+ bootdevs[$bootpart]="$ptb"
+ fi
+}
+
+# Function Assumes the boot partition should be marked as active
+# All other partitions should not have the boot flag set
+set_active() {
+ # If any bootdev is a block device without partitions bail
+ # we want to set the boot flag on partitioned disk
+ for dev in "${!bootdevs[@]}"; do
+ dev_is_part $dev || { echo "$dev does not contain partition table. Aborting set_active!"; return 1; }
+ done
+
+ # Clear BIOS Bootable Legacy Attribute for GPT drives
+ # In rare cases where a RAID device has slaves on the same block device
+ # Attribute 2 will be cleared for each partition multiple times
+ for dev in "${!bootdevs[@]}"; do
+ local ptb="${bootdevs[$dev]}"
+ if [[ "$ptb" = GPT ]]; then
+ local disk=$(get_disk "$dev")
+ clear_gpt_attr2 "$disk"
+ fi
+ done
+
+ # Set the boot flag on bootdevs (generated from get_boot_devices)
+ for part in "${!bootdevs[@]}"; do
+ local ptb="${bootdevs[$part]}"
+ local partnum="${part##*[[:alpha:]]}"
+ local disk=$(get_disk "$part")
+
+ if [[ "$ptb" = MBR ]]; then
+ if sfdisk "$disk" --activate "$partnum" &>/dev/null; then
+ echo "Boot Flag Set - $part"
+ else
+ echo "FAILED to Set the boot flag on $part"
+ exit 3
+ fi
+ elif [[ "$ptb" = GPT ]]; then
+ if [[ ! -e /usr/bin/sgdisk ]]; then
+ echo "FAILED to set attribute Legacy BIOS Bootable. sgdisk is not found - please install 'gptfdisk' package."
+ exit 3
+ fi
+
+ if sgdisk "$disk" --attributes="$partnum":set:2 &>/dev/null; then
+ echo "Attribute Legacy Bios Bootable Set - $part"
+ else
+ echo "FAILED to set attribute Legacy BIOS Bootable on $part"
+ exit 3
+ fi
+ fi
+ done
+ return 0
+}
+
+install_mbr() {
+ # If any bootdev is a block device without partitions bail
+ # we want to install the mbr to a partitioned disk
+ for dev in "${!bootdevs[@]}"; do
+ dev_is_part "$dev" || { echo "$dev does not contain partition table. Aborting MBR install."; return 1; }
+ done
+
+ for part in "${!bootdevs[@]}"; do
+ local partnum="${part##*[[:alpha:]]}"
+ local disk=$(get_disk "$part")
+ local ptb="${bootdevs[$part]}"
+
+ # We want to install to the root of the block device
+ # If the device is a partition - ABORT!
+ dev_is_part "$disk" && \
+ { echo "ABORT! MBR installation to partition ($disk)!"; exit 4;}
+
+ if [[ "$ptb" = MBR ]]; then
+ mbrfile="$bios_libpath/mbr.bin"
+ elif [[ "$ptb" = GPT ]]; then
+ mbrfile="$bios_libpath/gptmbr.bin"
+ fi
+
+ if dd bs=440 count=1 conv=notrunc if="$mbrfile" of="$disk" &> /dev/null; then
+ echo "Installed MBR ($mbrfile) to $disk"
+ else
+ echo "Error Installing MBR ($mbrfile) to $disk"
+ exit 4
+ fi
+ done
+ return 0
+}
+
+install_modules() {
+ # Copy all syslinux *.c32 modules to /boot
+ rm "$bios_bootpath"/*.c32 &> /dev/null
+ cp "$bios_libpath"/*.c32 "$bios_bootpath"/ &> /dev/null
+
+ # Copy / Symlink pci.ids if pci.ids exists on the FS
+ if [[ -f "$pciids_file" ]]; then
+ rm "$bios_bootpath/pci.ids" &> /dev/null
+ cp "$pciids_file" "$bios_bootpath/pci.ids" &> /dev/null
+ fi
+}
+
+_install() {
+ install_modules
+
+ if device_is_raid "$bootpart" ; then
+ echo "Detected RAID on /boot - installing Syslinux with --raid"
+ "$EXTLINUX" --install "$bios_bootpath" --raid &> /dev/null
+ else
+ "$EXTLINUX" --install "$bios_bootpath" &> /dev/null
+ fi
+
+ if (( $? )); then
+ echo "Syslinux BIOS install failed"
+ exit 2
+ else
+ echo "Syslinux BIOS install successful"
+ fi
+
+ touch "$CHROOT/$bios_autoupdate_file"
+}
+
+update() {
+ install_modules
+
+ if device_is_raid "$bootpart" ; then
+ echo "Detected RAID on /boot - updating Syslinux with --raid"
+ "$EXTLINUX" --update "$bios_bootpath" --raid &> /dev/null
+ else
+ "$EXTLINUX" --update "$bios_bootpath" &> /dev/null
+ fi
+
+ if (($?)); then
+ echo "Syslinux BIOS update failed"
+ exit 2
+ else
+ echo "Syslinux BIOS update successful"
+ fi
+}
+
+if (( $# == 0 )); then
+ usage
+ exit 1
+fi
+
+while getopts "c:uihmas" opt; do
+ case $opt in
+ c)
+ CHROOT=$(readlink -e "$OPTARG")
+ if [[ -z $CHROOT ]]; then
+ echo "error: chroot path ``$OPTARG does not exist";
+ exit 1
+ fi
+ ;;
+ h)
+ USAGE="True"
+ ;;
+ i)
+ INSTALL="True"
+ ;;
+ u)
+ UPDATE="True"
+ ;;
+ m)
+ MBR="True"
+ ;;
+ a)
+ SET_ACTIVE="True"
+ ;;
+ s)
+ # If AUTOUPDATE_FILE does not exist exit the script
+ if [[ -f $bios_autoupdate_file ]]; then
+ UPDATE="True"
+ else
+ exit 0
+ fi
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+if [[ $USAGE ]]; then
+ usage
+ exit 0
+fi
+
+# Display Usage Information if both Install and Update are passed
+if [[ $INSTALL && $UPDATE ]]; then
+ usage
+ exit 1
+fi
+
+# Make sure only root can run our script
+if (( $(id -u) != 0 )); then
+ echo "This script must be run as root" 1>&2
+ exit 1
+fi
+
+# If a chroot dir is path set variables to reflect chroot
+if [[ "$CHROOT" ]]; then
+ bios_libpath="$CHROOT$bios_libpath"
+ bios_bootpath="$CHROOT$bios_bootpath"
+ EXTLINUX="$CHROOT$EXTLINUX"
+fi
+
+# Exit if no /boot path exists
+if ( f=("$bios_bootpath"/*); (( ! ${#f[@]} )) ); then
+ echo "Error: $bios_bootpath is empty!"
+ echo "Is /boot mounted?"
+ exit 1
+fi
+
+# Get the boot device if any of these options are passed
+if [[ $INSTALL || $UPDATE || $SET_ACTIVE || $MBR ]]; then
+ getBoot
+fi
+
+# Install or Update
+if [[ $INSTALL ]]; then
+ _install || exit
+elif [[ $UPDATE ]]; then
+ update || exit
+fi
+
+
+# SET_ACTIVE and MBR
+if [[ $SET_ACTIVE ]] || [[ $MBR ]]; then
+ get_boot_devices
+
+ if [[ $SET_ACTIVE ]]; then
+ set_active || exit
+ fi
+
+ if [[ $MBR ]]; then
+ install_mbr || exit
+ fi
+fi
+
+exit 0
Deleted: syslinux.cfg
===================================================================
--- syslinux.cfg 2019-01-10 17:30:23 UTC (rev 343518)
+++ syslinux.cfg 2019-01-10 17:31:04 UTC (rev 343519)
@@ -1,78 +0,0 @@
-# Config file for Syslinux -
-# /boot/syslinux/syslinux.cfg
-#
-# Comboot modules:
-# * menu.c32 - provides a text menu
-# * vesamenu.c32 - provides a graphical menu
-# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
-# * hdt.c32 - hardware detection tool
-# * reboot.c32 - reboots the system
-#
-# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
-# If /usr and /boot are on the same file system, symlink the files instead
-# of copying them.
-#
-# If you do not use a menu, a 'boot:' prompt will be shown and the system
-# will boot automatically after 5 seconds.
-#
-# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
-# The wiki provides further configuration examples
-
-DEFAULT arch
-PROMPT 0 # Set to 1 if you always want to display the boot: prompt
-TIMEOUT 50
-# You can create syslinux keymaps with the keytab-lilo tool
-#KBDMAP de.ktl
-
-# Menu Configuration
-# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
-UI menu.c32
-#UI vesamenu.c32
-
-# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
-MENU TITLE Arch Linux
-#MENU BACKGROUND splash.png
-MENU COLOR border 30;44 #40ffffff #a0000000 std
-MENU COLOR title 1;36;44 #9033ccff #a0000000 std
-MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
-MENU COLOR unsel 37;44 #50ffffff #a0000000 std
-MENU COLOR help 37;40 #c0ffffff #a0000000 std
-MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
-MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
-MENU COLOR msg07 37;40 #90ffffff #a0000000 std
-MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
-
-# boot sections follow
-#
-# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
-#
-#-*
-
-LABEL arch
- MENU LABEL Arch Linux
- LINUX ../vmlinuz-linux
- APPEND root=/dev/sda3 rw
- INITRD ../initramfs-linux.img
-
-LABEL archfallback
- MENU LABEL Arch Linux Fallback
- LINUX ../vmlinuz-linux
- APPEND root=/dev/sda3 rw
- INITRD ../initramfs-linux-fallback.img
-
-#LABEL windows
-# MENU LABEL Windows
-# COM32 chain.c32
-# APPEND hd0 1
-
-LABEL hdt
- MENU LABEL HDT (Hardware Detection Tool)
- COM32 hdt.c32
-
-LABEL reboot
- MENU LABEL Reboot
- COM32 reboot.c32
-
-LABEL poweroff
- MENU LABEL Poweroff
- COM32 poweroff.c32
Copied: syslinux/repos/testing-x86_64/syslinux.cfg (from rev 343518, syslinux/trunk/syslinux.cfg)
===================================================================
--- syslinux.cfg (rev 0)
+++ syslinux.cfg 2019-01-10 17:31:04 UTC (rev 343519)
@@ -0,0 +1,78 @@
+# Config file for Syslinux -
+# /boot/syslinux/syslinux.cfg
+#
+# Comboot modules:
+# * menu.c32 - provides a text menu
+# * vesamenu.c32 - provides a graphical menu
+# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
+# * hdt.c32 - hardware detection tool
+# * reboot.c32 - reboots the system
+#
+# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
+# If /usr and /boot are on the same file system, symlink the files instead
+# of copying them.
+#
+# If you do not use a menu, a 'boot:' prompt will be shown and the system
+# will boot automatically after 5 seconds.
+#
+# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
+# The wiki provides further configuration examples
+
+DEFAULT arch
+PROMPT 0 # Set to 1 if you always want to display the boot: prompt
+TIMEOUT 50
+# You can create syslinux keymaps with the keytab-lilo tool
+#KBDMAP de.ktl
+
+# Menu Configuration
+# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
+UI menu.c32
+#UI vesamenu.c32
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+MENU TITLE Arch Linux
+#MENU BACKGROUND splash.png
+MENU COLOR border 30;44 #40ffffff #a0000000 std
+MENU COLOR title 1;36;44 #9033ccff #a0000000 std
+MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
+MENU COLOR unsel 37;44 #50ffffff #a0000000 std
+MENU COLOR help 37;40 #c0ffffff #a0000000 std
+MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
+MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
+MENU COLOR msg07 37;40 #90ffffff #a0000000 std
+MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
+
+# boot sections follow
+#
+# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
+#
+#-*
+
+LABEL arch
+ MENU LABEL Arch Linux
+ LINUX ../vmlinuz-linux
+ APPEND root=/dev/sda3 rw
+ INITRD ../initramfs-linux.img
+
+LABEL archfallback
+ MENU LABEL Arch Linux Fallback
+ LINUX ../vmlinuz-linux
+ APPEND root=/dev/sda3 rw
+ INITRD ../initramfs-linux-fallback.img
+
+#LABEL windows
+# MENU LABEL Windows
+# COM32 chain.c32
+# APPEND hd0 1
+
+LABEL hdt
+ MENU LABEL HDT (Hardware Detection Tool)
+ COM32 hdt.c32
+
+LABEL reboot
+ MENU LABEL Reboot
+ COM32 reboot.c32
+
+LABEL poweroff
+ MENU LABEL Poweroff
+ COM32 poweroff.c32
Deleted: syslinux.install
===================================================================
--- syslinux.install 2019-01-10 17:30:23 UTC (rev 343518)
+++ syslinux.install 2019-01-10 17:31:04 UTC (rev 343519)
@@ -1,32 +0,0 @@
-show_efi_msg() {
- cat << EOF
-
-==> For setting up Syslinux EFI follow
- https://wiki.archlinux.org/index.php/Syslinux#UEFI_Systems
-
-==> The syslinux-install_update script does not currently support EFI install
-
-EOF
-}
-
-show_bios_autoupdate_msg() {
- cat << EOF
-
-==> For setting up Syslinux BIOS using the syslinux-install_update script follow
- https://wiki.archlinux.org/index.php/Syslinux#Automatic_Install
-EOF
-}
-
-post_install() {
- [ -f /boot/syslinux/SYSLINUX_AUTOUPDATE ] || show_bios_autoupdate_msg
- [ -d /sys/firmware/efi ] && show_efi_msg
-
- true
-}
-
-post_upgrade() {
- ## auto-update syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
- /usr/bin/syslinux-install_update -s
-
- post_install
-}
Copied: syslinux/repos/testing-x86_64/syslinux.install (from rev 343518, syslinux/trunk/syslinux.install)
===================================================================
--- syslinux.install (rev 0)
+++ syslinux.install 2019-01-10 17:31:04 UTC (rev 343519)
@@ -0,0 +1,32 @@
+show_efi_msg() {
+ cat << EOF
+
+==> For setting up Syslinux EFI follow
+ https://wiki.archlinux.org/index.php/Syslinux#UEFI_Systems
+
+==> The syslinux-install_update script does not currently support EFI install
+
+EOF
+}
+
+show_bios_autoupdate_msg() {
+ cat << EOF
+
+==> For setting up Syslinux BIOS using the syslinux-install_update script follow
+ https://wiki.archlinux.org/index.php/Syslinux#Automatic_Install
+EOF
+}
+
+post_install() {
+ [ -f /boot/syslinux/SYSLINUX_AUTOUPDATE ] || show_bios_autoupdate_msg
+ [ -d /sys/firmware/efi ] && show_efi_msg
+
+ true
+}
+
+post_upgrade() {
+ ## auto-update syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
+ /usr/bin/syslinux-install_update -s
+
+ post_install
+}
More information about the arch-commits
mailing list