# Maintainer: Tobias Powalowski # Maintainer: Thomas Bächler # Maintainer: Anatol Pomozov # Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> pkgname=syslinux pkgver=6.04.pre2.r11.gbf6db5b4 #_tag=syslinux-$pkgver _commit=bf6db5b4 pkgrel=4 pkgdesc='Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE' url='https://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 python 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 0002-gfxboot-menu-label.patch 0005-gnu-efi-version-compatibility.patch 0017-single-load-segment.patch 0004-gnu-efi-from-arch.patch 0016-strip-gnu-property.patch 0018-prevent-pow-optimization.patch 0025-reproducible-build.patch 0005-Workaround-multiple-definition-of-symbol-errors.patch 0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch ) sha256sums=('SKIP' 'b9692be0cce43811c1b04053072ac50dd7b39bbc2ba7bcbe0e4387668af8df08' '5f86b5813465c48ba7bd178389aacb5149ff0b5f2467ab1772a4f862c5b15d41' 'd1fe9084ce2526619f94b8a07b89fb0194e874beef9f202f8b974879d77f2e1a' '8610959df6c01568ff478ca1eb4aac301f3ba1f5bd4739daaec072865e8be2d7' '5b017ba5eae77caa09fa5af6ecfa0df1e7e22776b2b13c8744c6cb7ecd7ad0e9' 'cf3c3da9300d6ea70eab5b8dca724ce03a3651bd63fb0168594dcfeb35eec11c' '7facb5c2abc71c9bfe01bf4db388306ed7b7abf6654009af336262839527f962' '755cd7062fe8495f6f62053ce664451c12ae65dba9fb5c75062a495fbe040fb1' '9a76f6f75a42485bc337163ba38068b09f7889bdc1a4e191408898f10de36662' '7e41e17e8cbc7287d6c3c9eb0a7b682cd8d3252030856b338050c21dff9bf05a' 'd7410d0ff89a15e2a100faf1546d730e043dde15c295974564144e00a93f03a3') _targets='bios efi64 efi32' pkgver() { cd syslinux git describe --long | sed 's/^syslinux-//;s/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { cd syslinux patch -p1 < ../0002-gfxboot-menu-label.patch patch -p1 < ../0017-single-load-segment.patch patch -p1 < ../0016-strip-gnu-property.patch patch -p1 < ../0018-prevent-pow-optimization.patch # TODO: use 'gnu-efi-libs' package instead of embedded sources # patch -p1 < ../0004-gnu-efi-from-arch.patch # patch -p1 < ../0005-gnu-efi-version-compatibility.patch patch -p1 < ../0025-reproducible-build.patch patch -p1 < ../0005-Workaround-multiple-definition-of-symbol-errors.patch patch -p1 < ../0006-Replace-builtin-strlen-that-appears-to-get-optimized.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=python $_targets } 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 }