archrelease: copy trunk to extra-x86_64
[arch-packages.git] / syslinux / repos / core-x86_64 / PKGBUILD
blobae2ac7509f4b07661c732cceedbc94fd4b0d402d
1 # Maintainer: Tobias Powalowski <tpowa@archlinux.org>
2 # Maintainer: Thomas Bächler <thomas@archlinux.org>
3 # Maintainer: Anatol Pomozov <anatol.pomozov@gmail.com>
4 # Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
6 pkgname=syslinux
7 pkgver=6.04.pre2.r11.gbf6db5b4
8 #_tag=syslinux-$pkgver
9 _commit=bf6db5b4
10 pkgrel=3
11 pkgdesc='Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE'
12 url='https://www.syslinux.org/'
13 arch=(x86_64)
14 backup=(boot/syslinux/syslinux.cfg)
15 install=syslinux.install
16 license=(GPL2)
17 # syslinux build system is a mess of submakes that does not work with -jN
18 # efi32/com32 do not like Arch cflags/ldflags, though it would be nice to have the flags for userspace tools
19 options=(!makeflags !buildflags)
20 makedepends=(git python nasm upx asciidoc)
21 makedepends_x86_64=(lib32-glibc) # efi32 needs it
22 optdepends=('perl-crypt-passwdmd5: For md5pass'
23             'perl-digest-sha1:     For sha1pass'
24             'mtools:               For mkdiskimage and syslinux support'
25             'gptfdisk:             For GPT support'
26             'util-linux:           For isohybrid'
27             'efibootmgr:           For EFI support'
28             'dosfstools:           For EFI support')
30 # The syslinux-install_update script is maintained at https://gist.github.com/pyther/772138
31 # Script not yet updated for syslinux-efi
32 source=(git+https://repo.or.cz/syslinux.git#commit=$_commit
33         syslinux.cfg
34         syslinux-install_update
35         0002-gfxboot-menu-label.patch
36         0005-gnu-efi-version-compatibility.patch
37         0017-single-load-segment.patch
38         0004-gnu-efi-from-arch.patch
39         0016-strip-gnu-property.patch
40         0018-prevent-pow-optimization.patch
41         0025-reproducible-build.patch
43 sha1sums=('SKIP'
44           '1145f454bd297d373ad123425f93620c3e92f585'
45           'df5160a138ca8c6502d67fe1a64fec78b50e82c2'
46           '69239fda4a3d5a247f0e48c5c683e0124c7d9201'
47           '1e0cd52252622f206d22e84f2a4d358508c902f4'
48           '81d05572b15dc5c55b63489fecdc79a6a332959c'
49           '4c3706e7a5620e450a6abb9238c08d7b39bb6945'
50           'f4a6768c7e5b8d02428ae550e37a7ca445ad1bb8'
51           'c94622eaa14ad9512e4f43b13302ba35d1787cbc'
52           '5b3878a1fff74bbb09ddbc66cc8afa38f34ed05c')
54 _targets='bios efi64 efi32'
56 pkgver() {
57   cd syslinux
58   git describe --long | sed 's/^syslinux-//;s/\([^-]*-g\)/r\1/;s/-/./g'
61 prepare() {
62   cd syslinux
64   patch -p1 < ../0002-gfxboot-menu-label.patch
65   patch -p1 < ../0017-single-load-segment.patch
66   patch -p1 < ../0016-strip-gnu-property.patch
67   patch -p1 < ../0018-prevent-pow-optimization.patch
69   # TODO: use 'gnu-efi-libs' package instead of embedded sources
70   # patch -p1 < ../0004-gnu-efi-from-arch.patch
71   # patch -p1 < ../0005-gnu-efi-version-compatibility.patch
73   patch -p1 < ../0025-reproducible-build.patch
75   # do not swallow efi compilation output to make debugging easier
76   sed 's|> /dev/null 2>&1||' -i efi/check-gnu-efi.sh
78   # disable debug and development flags to reduce bootloader size
79   truncate --size 0 mk/devel.mk
82 build() {
83   cd syslinux
84   export LDFLAGS+=--no-dynamic-linker  # workaround for binutils 2.28 http://www.syslinux.org/wiki/index.php?title=Building
85   export EXTRA_CFLAGS=-fno-PIE   # to fix gpxe build
86   make PYTHON=python $_targets
89 package() {
90   cd syslinux
91   make $_targets install INSTALLROOT="$pkgdir" SBINDIR=/usr/bin MANDIR=/usr/share/man AUXDIR=/usr/lib/syslinux
93   rm -r "$pkgdir"/usr/lib/syslinux/{com32,dosutil,syslinux.com}
94   install -D -m644 COPYING "$pkgdir"/usr/share/licenses/syslinux/COPYING
95   install -d "$pkgdir"/usr/share/doc
96   cp -ar doc "$pkgdir"/usr/share/doc/syslinux
98   install -d "$pkgdir"/usr/lib/syslinux/bios
99   mv "$pkgdir"/usr/lib/syslinux/{*.bin,*.c32,*.0,memdisk} "$pkgdir"/usr/lib/syslinux/bios 
101   install -D -m0644 ../syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
102   install -D -m0755 ../syslinux-install_update "$pkgdir"/usr/bin/syslinux-install_update