mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-03 09:07:14 +08:00
295 lines
6.5 KiB
Bash
Executable File
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
|
|
}
|
|
|