core/grub2/PKGBUILD

202 lines
6.9 KiB
Bash
Raw Normal View History

2010-11-14 06:20:42 +08:00
#
# Core Packages for Chakra, part of chakra-project.org
#
2011-06-12 21:55:37 +08:00
# maintainer: Phil Miller <philm[at]chakra-project[dot]org
2010-11-14 06:20:42 +08:00
2011-06-12 21:55:37 +08:00
# _grub2_rev=3238
2010-11-14 06:20:42 +08:00
2011-06-12 21:55:37 +08:00
_grub2_lua_ver=20
_grub2_gpxe_ver=12
_grub2_ntldr_ver=17
_grub2_915_ver=7
2011-06-17 19:26:50 +08:00
pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-x32')
2011-06-12 21:55:37 +08:00
pkgbase="grub2"
pkgver='1.99'
pkgrel=2
2010-11-14 06:20:42 +08:00
url="http://www.gnu.org/software/grub/"
arch=('i686' 'x86_64')
license=('GPL3')
2011-06-12 21:55:37 +08:00
makedepends=('bdf-unifont' 'python2' 'xz' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper')
options=(strip purge docs zipman !emptydirs)
# "http://alpha.gnu.org/gnu/grub/grub-${pkgver}.tar.xz"
source=("ftp://ftp.gnu.org/gnu/grub/grub-1.99.tar.xz"
2011-06-17 16:58:55 +08:00
"http://chakra-project.org/sources/${pkgbase}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz"
"http://chakra-project.org/sources/${pkgbase}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz"
"http://chakra-project.org/sources/${pkgbase}/grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz"
"http://chakra-project.org/sources/${pkgbase}/grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz"
2011-06-12 21:55:37 +08:00
'chakra_grub2_mkconfig_fixes.patch'
'grub.default'
'grub.cfg'
'20_memtest86+')
noextract=("grub2_extras_lua_r${_grub2_lua_ver}.tar.xz"
"grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz"
"grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz"
"grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz")
sha1sums=('a5ae9558f30ce7757a76aa130088b053a87e2fb6'
'd21ca5033f7069cbb36934cdb71f57a1c7829234'
'6c58eee654fa4eb7f057275b330710ffd4a9e989'
'0e50955141a45918fcf56f3a5e15fb477f0448a7'
'f2a5f1d5b75bd3286b63aefaf5e6553aa03e772b'
'9334c23b9d5525e24c204ab45f9de253809d8fbc'
'717bba46ea5c9903ccbb9b1486ff594b66dbe359'
'6d4f4a3899a0a343771e258cfb3f86172791e7e9'
'82a27eca5277218cf57c6c5767e0b17a72f62229')
2010-11-14 06:20:42 +08:00
build() {
2011-06-12 21:55:37 +08:00
# set architecture dependent variables
if [ "${CARCH}" = "x86_64" ] ; then
_EFIEMU="--enable-efiemu"
else
_EFIEMU="--disable-efiemu"
fi
_HOST="${CARCH}"
2010-11-14 06:20:42 +08:00
2011-06-12 21:55:37 +08:00
build_grub2-common_and_bios
build_grub2-efi
2010-11-14 06:20:42 +08:00
}
2011-06-12 21:55:37 +08:00
build_grub2-common_and_bios() {
# copy the source for building the common/bios package
cp -r ${srcdir}/grub-${pkgver} ${srcdir}/grub2_bios-${pkgver}
## Apply Archlinux specific fixes to enable grub2-mkconfig detect Arch kernels and initramfs
cd ${srcdir}/grub2_bios-${pkgver}
patch -Np1 -i ${srcdir}/chakra_grub2_mkconfig_fixes.patch
2010-11-14 06:20:42 +08:00
2011-06-12 21:55:37 +08:00
# add the grub-extra sources
export GRUB_CONTRIB=${srcdir}/grub2_bios-${pkgver}/grub2-extras/
install -d ${srcdir}/grub2_bios-${pkgver}/grub2-extras
bsdtar xf ${srcdir}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz \
-C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
bsdtar xf ${srcdir}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz \
-C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
bsdtar xf ${srcdir}/grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz \
-C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
bsdtar xf ${srcdir}/grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz \
-C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
## Need to use python2
sed -i 's|python|python2|' ${srcdir}/grub2_bios-${pkgver}/autogen.sh
2010-11-14 06:20:42 +08:00
2011-06-12 21:55:37 +08:00
# start the actual build process
cd ${srcdir}/grub2_bios-${pkgver}
./autogen.sh
## fix unifont.bdf location so grub-mkfont can create *.pf2 files
sed -i 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|' ${srcdir}/grub2_bios-${pkgver}/configure
# mkdir ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS
# cd ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS
CFLAGS="" ./configure \
--with-platform=pc --enable-mm-debug \
${_EFIEMU} --host=${CARCH}-unknown-linux-gnu \
--enable-grub-mkfont --prefix=/usr \
--bindir=/bin --sbindir=/sbin \
--mandir=/usr/share/man --infodir=/usr/share/info \
--sysconfdir=/etc --enable-nls \
--program-transform-name=s,grub,grub,
CFLAGS="" make
}
2010-11-14 06:20:42 +08:00
2011-06-12 21:55:37 +08:00
build_grub2-efi() {
# copy the source for building the efi package
cp -r ${srcdir}/grub-${pkgver} ${srcdir}/grub2_efi-${pkgver}
# add the grub-extra sources
export GRUB_CONTRIB=${srcdir}/grub2_efi-${pkgver}/grub2-extras/
install -d ${srcdir}/grub2_efi-${pkgver}/grub2-extras
bsdtar xf ${srcdir}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz \
-C ${srcdir}/grub2_efi-${pkgver}/grub2-extras
bsdtar xf ${srcdir}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz \
-C ${srcdir}/grub2_efi-${pkgver}/grub2-extras
## Need to use python2
sed -i 's|python|python2|' ${srcdir}/grub2_efi-${pkgver}/autogen.sh
# start the actual build process
cd ${srcdir}/grub2_efi-${pkgver}
./autogen.sh
CFLAGS="" ./configure \
--with-platform=efi --target=i386 \
--enable-mm-debug --disable-efiemu \
--host=${CARCH}-unknown-linux-gnu \
--prefix=/usr --bindir=/bin \
--sbindir=/sbin --mandir=/usr/share/man \
--infodir=/usr/share/info --sysconfdir=/etc \
--enable-nls --program-transform-name=s,grub,grub,
CFLAGS="" make
2010-11-14 06:20:42 +08:00
}
2011-06-12 21:55:37 +08:00
package_grub2-common() {
pkgdesc="The GNU GRand Unified Bootloader version 2 - Files common for all platforms"
install="grub2.install"
depends=('xz' 'freetype2' 'device-mapper' 'gettext' 'texinfo')
conflicts=('grub')
backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom')
cd ${srcdir}/grub2_bios-${pkgver}
make DESTDIR=${pkgdir} install
install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_bios-install
install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_efi_x86_64-install
install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_efi_i386-install
sed -i "s|^\(target_cpu\)=.*|\1=i386|; \
s|^\(platform\)=.*|\1=pc|" \
${pkgdir}/sbin/grub_bios-install
sed -i "s|^\(target_cpu\)=.*|\1=x86_64|; \
s|^\(platform\)=.*|\1=efi|" \
${pkgdir}/sbin/grub_efi_x86_64-install
sed -i "s|^\(target_cpu\)=.*|\1=i386|; \
s|^\(platform\)=.*|\1=efi|" \
${pkgdir}/sbin/grub_efi_i386-install
## install extra /etc/grub.d/ files
install -Dm755 ${srcdir}/20_memtest86+ ${pkgdir}/etc/grub.d/20_memtest86+
## install /etc/default/grub (used by grub-mkconfig)
install -Dm644 ${srcdir}/grub.default ${pkgdir}/etc/default/grub
## install grub.cfg (needed so it doesn't get removed on upgrading because it was previously here)
install -Dm644 ${srcdir}/grub.cfg ${pkgdir}/boot/grub/grub.cfg
# remove platform specific files
rm -rf ${pkgdir}/usr/lib/grub/i386-pc/
}
package_grub2-bios() {
pkgdesc="The GNU GRand Unified Bootloader version 2 - Built for PC BIOS"
depends=(grub2-common=${pkgver})
replaces=('grub2')
provides=('grub2')
cd ${srcdir}/grub2_bios-${pkgver}
make DESTDIR=${pkgdir} install
## remove non platform-specific files
rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share}
rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib}
}
2011-06-17 19:26:50 +08:00
package_grub2-efi-x32() {
2011-06-12 21:55:37 +08:00
2011-06-17 19:26:50 +08:00
pkgdesc="The GNU GRand Unified Bootloader version 2 - 32bit UEFI version"
2011-06-12 21:55:37 +08:00
depends=("grub2-common=${pkgver}" 'dosfstools' 'efibootmgr')
optdepends=('mtools')
2011-06-17 19:26:50 +08:00
replaces=('grub2-efi-i386')
2011-06-12 21:55:37 +08:00
cd ${srcdir}/grub2_efi-${pkgver}
make DESTDIR=${pkgdir} install
## remove non platform-specific files
rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share}
rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib}
}