core/burg-bzr/PKGBUILD
2012-02-25 23:09:49 -05:00

295 lines
6.5 KiB
Bash
Executable File

#
# Core Packages for Chakra, part of chakra-project.org
#
# maintainer (i686): Phil Miller <philm[at]chakra-project[dot]org
# maintainer (x86_64): Giuseppe Calà <jiveaxe[at]gmail[dot]com>
# Tunables: change y to n to disable
_rm_build_dirs="${_rm_build_dirs:-n}" # remove build directories
_mk_burg_emu="${_mk_burg_emu:-n}" # enable burg emu
pkgname=burg-bzr
pkgver=1844
pkgrel=8
url="https://launchpad.net/burg"
license="GPL3"
arch=('i686' 'x86_64')
if [ "$CARCH" = "i686" ]; then
depends=('freetype2')
pkgdesc="Brand-new Universal loadeR from GRUB2 - Built for i386 BIOS"
fi
if [ "$CARCH" = "x86_64" ]; then
depends=('gettext' 'freetype2' 'dosfstools' 'efibootmgr')
pkgdesc="Brand-new Universal loadeR from GRUB2 - Built for x86_64 UEFI"
fi
optdepends=('os-prober' 'memtest86+' 'mtools')
makedepends=('bzr' 'ruby' 'bdf-unifont' 'python2' 'ncurses' 'sdl')
changelog=burg.changelog
backup=('etc/default/burg' 'etc/burg.d/40_custom')
provides=('burg')
if [[ "${_mk_burg_emu}" == 'y' ]]; then
makedepends+=('sdl')
depends+=('sdl')
conflicts+=('burg-emu')
provides+=('burg-emu')
fi
md5sums=('39a0e3f1035342d75a9eda7a65f9793f'
'743c7f6cec624bf0c696dae83b6e4d06'
'60bdcc9a3f86deb4f1a361f3bea4ae98'
'990eba4f3cb1808c97c2972de6957a3c'
'460a91c0998117285decdb176ad98ee1')
source=('burg.default'
'chakra-burg.patch'
'resume-hook.patch'
'20_memtest86+'
'update-burg')
install='burg.install'
_bzrmod="burg"
_bzrtrunk="lp:${_bzrmod}"
_builddir="${_bzrmod}-build"
_builddir_emu="${_bzrmod}-emu-build"
_common_configure_opts="--host="${CARCH}-pc-linux-gnu" --program-prefix="" \
--prefix=/usr --bindir=/bin \
--sbindir=/sbin --mandir=/usr/share/man \
--infodir=/usr/share/info --sysconfdir=/etc \
--disable-werror"
_update_bzr() {
cd "${srcdir}/"
msg "Connecting to the server...."
if [[ ! -d "${srcdir}/${_bzrmod}" ]] ; then
bzr branch "${_bzrtrunk}"
else
cd "${srcdir}/${_bzrmod}" && bzr pull "${_bzrtrunk}"
fi
msg "BZR checkout done or server timeout"
}
_build_dir() {
local _rm_builddir='0'
while (( "$#" ))
do
local _check="$1"
if [[ "${_check}" == '-r' ]]; then
_rm_builddir='1'
elif [[ "${_check}" == 'emu' ]]; then
_builddir="${_bzrmod}-build"
_builddir_emu="${_bzrmod}-emu-build"
else
_builddir="${_bzrmod}-$1-build"
fi
shift
done
if [[ "${_check}" == 'emu' ]]; then
rm -rf "${srcdir}/${_builddir_emu}" || true
else
rm -rf "${srcdir}/${_builddir}" || true
fi
if [[ "${_rm_builddir}" == '0' ]]; then
if [[ "${_check}" == 'emu' ]]; then
cp -rip "${srcdir}/${_bzrmod}" "${srcdir}/${_builddir_emu}"
cd "${srcdir}/${_builddir_emu}"
else
cp -rip "${srcdir}/${_bzrmod}" "${srcdir}/${_builddir}"
cd "${srcdir}/${_builddir}/"
fi
fi
}
_build_common() {
local _check="$1"
if [[ "${_check}" == 'emu' ]]; then
cd "${srcdir}/${_builddir_emu}"
else
cd "${srcdir}/${_builddir}"
fi
# Archlinux changed default python to python3, need to use /usr/bin/python2 instead
sed 's|python|python2|g' -i ./autogen.sh || true
echo
./autogen.sh
echo
}
_build_bios() {
msg "Building burg bios...."
_build_dir
echo
# some random patches to facilitate automatic creation of burg.cfg
patch -Np1 -i "${srcdir}/chakra-burg.patch"
echo
_build_common
echo
cd "${srcdir}/${_builddir}/"
## fix unifont.bdf location so burg-mkfont can create *.pf2 files
sed 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|g' -i ./configure || true
_bios_configure_opts="${_common_configure_opts} --with-platform=pc --disable-grub-emu-usb"
./configure ${_bios_configure_opts}
echo
CFLAGS="" make
echo
}
_build_uefi_x86_64() {
msg "Building burg uefi x86_64...."
_build_dir
echo
# some random patches to facilitate automatic creation of burg.cfg
patch -Np1 -i "${srcdir}/chakra-burg.patch"
echo
_build_common
echo
cd "${srcdir}/${_builddir}/"
## fix unifont.bdf location so burg-mkfont can create *.pf2 files
sed 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|g' -i ./configure || true
_uefi_configure_opts="${_common_configure_opts} --with-platform=efi --target=x86_64 --disable-efiemu --disable-grub-emu-usb"
./configure ${_uefi_configure_opts}
echo
CFLAGS="" make
echo
}
_build_emu() {
msg "Building burg-emu...."
_build_dir emu
echo
_build_common emu
echo
cd "${srcdir}/${_builddir_emu}/"
## fix unifont.bdf location so burg-mkfont can create *.pf2 files
sed 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|g' -i ./configure || true
_emu_configure_opts="${_common_configure_opts} --with-platform=emu --disable-grub-emu-usb"
./configure ${_emu_configure_opts}
echo
CFLAGS="" make
echo
}
build() {
_update_bzr
echo
if [[ "$CARCH" == 'i686' ]]; then
_build_bios
fi
echo
if [[ "$CARCH" == 'x86_64' ]]; then
_build_uefi_x86_64
fi
echo
if [[ "${_mk_burg_emu}" == 'y' ]]; then
_build_emu
fi
echo
}
package() {
cd "${srcdir}/${_builddir}/"
make DESTDIR="${pkgdir}/" install
echo
if [[ "${_mk_burg_emu}" == 'y' ]]; then
install -D -m0755 "${srcdir}/${_builddir_emu}/grub-emu" "${pkgdir}/bin/burg-emu"
fi
# install /etc/default/burg(needed config file)
install -D -m0644 "${srcdir}/burg.default" "${pkgdir}/etc/default/burg"
# install update-burg script
install -D -m0755 "${srcdir}/update-burg" "${pkgdir}/sbin/update-burg"
# install memtest config detection
install -D -m0755 "${srcdir}/20_memtest86+" "${pkgdir}/etc/burg.d/20_memtest86+"
if [[ "${_rm_build_dirs}" == 'y' ]]; then
_build_dir -r
if [[ "${_mk_burg_emu}" == 'y' ]]; then
_build_dir -r emu
fi
fi
echo
cd ${pkgdir}/sbin
patch -Np0 -i ${srcdir}/resume-hook.patch
}