core/syslinux/PKGBUILD
2013-09-08 00:33:31 +00:00

147 lines
5.0 KiB
Bash

#
# Chakra Packages for Chakra, part of chakra-project.org
#
# Maintainer: Fabian Kosmale <inkane@chakra-project.org>
# original version from Archlinux, all credits go to
# Arch Maintainer : Tobias Powalowski <tpowa@archlinux.org>
# Arch Maintainer : Thomas Bächler <thomas@archlinux.org>
# Arch Contributor: Keshav Padram (the.ridikulus.rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)>
pkgname=syslinux
pkgver=6.01
pkgrel=2
arch=('x86_64')
pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE"
url="http://syslinux.zytor.com/"
license=('GPL2')
options=('!makeflags' '!emptydirs')
depends=('perl' 'glibc')
optdepends=('perl-passwd-md5: For md5pass'
'perl-digest-sha1: For sha1pass'
'mtools: For mkdiskimage and syslinux'
)
makedepends=('nasm' 'python2' 'gnu-efi-libs')
backup=('boot/syslinux/syslinux.cfg')
install=syslinux.install
source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.tar.bz2
syslinux.cfg
syslinux-install_update)
md5sums=('5fe8959b92255143a334167ca1c395a6'
'1748911710a7a93de11babbedb50325e'
'b5b4953c0a5a01cd16441402f6321765')
install="${pkgname}.install"
source=("https://www.kernel.org/pub/linux/utils/boot/syslinux/${pkgname}-${pkgver}.tar.xz"
'syslinux.cfg'
'syslinux-install_update')
_build_syslinux_bios() {
rm -rf "${srcdir}/${pkgname}-${pkgver}-bios/" || true
cp -r "${srcdir}/${pkgname}-${pkgver}" "${srcdir}/${pkgname}-${pkgver}-bios"
cd "${srcdir}/${pkgname}-${pkgver}-bios/"
## Do not try to build syslinux with our default LDFLAGS, it will fail
unset LDFLAGS
make bios
make bios installer
}
_build_syslinux_efi64() {
rm -rf "${srcdir}/${pkgname}-${pkgver}-efi64/" || true
cp -r "${srcdir}/${pkgname}-${pkgver}" "${srcdir}/${pkgname}-${pkgver}-efi64"
cd "${srcdir}/${pkgname}-${pkgver}-efi64/"
## Unset all compiler FLAGS for efi64 build
unset CFLAGS
unset CPPFLAGS
unset CXXFLAGS
unset LDFLAGS
unset MAKEFLAGS
make efi64
make efi64 installer
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}/"
## 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 "${srcdir}/${pkgname}-${pkgver}/Makefile" || true
sed 's|win32/syslinux.exe win64/syslinux64.exe||g' -i "${srcdir}/${pkgname}-${pkgver}/Makefile" || true
sed 's|dosutil/*.com dosutil/*.sys||g' -i "${srcdir}/${pkgname}-${pkgver}/Makefile" || true
sed 's|dos/syslinux.com||g' -i "${srcdir}/${pkgname}-${pkgver}/Makefile" || true
sed 's|INSTALLSUBDIRS = com32 utils dosutil|INSTALLSUBDIRS = com32 utils|g' -i "${srcdir}/${pkgname}-${pkgver}/Makefile" || true
sed 's|install -m 644 -c $(INSTALL_DIAG) $(INSTALLROOT)$(DIAGDIR)|# install -m 644 -c $(INSTALL_DIAG) $(INSTALLROOT)$(DIAGDIR)|g' -i "${srcdir}/${pkgname}-${pkgver}/Makefile" || true
## Fix FHS manpage path
sed 's|/usr/man|/usr/share/man|g' -i "${srcdir}/${pkgname}-${pkgver}/mk/syslinux.mk" || true
## Build syslinux-efi
_build_syslinux_efi64
## Build syslinux-bios
_build_syslinux_bios
}
_package_syslinux_bios() {
cd "${srcdir}/${pkgname}-${pkgver}-bios/"
## Install Syslinux bios
make INSTALLROOT="${pkgdir}/" AUXDIR="/usr/lib/syslinux/bios/" bios install
## Remove syslinux.exe,syslinux64.exe,syslinux.com and dosutil dir
rm "${pkgdir}/usr/lib/syslinux/bios"/syslinux.{com,exe} || true
rm "${pkgdir}/usr/lib/syslinux/bios/syslinux64.exe" || true
rm -rf "${pkgdir}/usr/lib/syslinux/bios/dosutil/" || true
## Remove com32 and diag dirs
rm -rf "${pkgdir}/usr/lib/syslinux/bios/diag/" || true
rm -rf "${pkgdir}/usr/lib/syslinux/bios/com32/" || true
## Move extlinux binary to /usr/bin
install -d "${pkgdir}/usr/bin"
mv "${pkgdir}/sbin/extlinux" "${pkgdir}/usr/bin/extlinux"
rm -rf "${pkgdir}/sbin/"
## Install docs
install -d "${pkgdir}/usr/share/doc"
cp -ar "${srcdir}/${pkgname}-${pkgver}/doc" "${pkgdir}/usr/share/doc/syslinux"
## Install the default configuration
install -D -m0644 "${srcdir}/syslinux.cfg" "${pkgdir}/boot/syslinux/syslinux.cfg"
## Install the installation and update script
## This script is maintained at git://gist.github.com/772138.git
## Script not yet updated for syslinux-efi
install -D -m0755 "${srcdir}/syslinux-install_update" "${pkgdir}/usr/bin/syslinux-install_update"
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}/"
if [[ "${CARCH}" == "x86_64" ]]; then
cd "${srcdir}/${pkgname}-${pkgver}-efi64/"
make INSTALLROOT="${pkgdir}/" AUXDIR="/usr/lib/syslinux/" efi64 install
fi
if [[ "${CARCH}" == "i686" ]]; then
cd "${srcdir}/${pkgname}-${pkgver}-efi32/"
make INSTALLROOT="${pkgdir}/" AUXDIR="/usr/lib/syslinux/" efi32 install
fi
_package_syslinux_bios
}