# Maintainer (Arch): Tobias Powalowski # Maintainer (Arch): Ronald van Haren # Contributor (Arch): Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) (gemmaeiil) (ddoott) (ccoomm)> # Maintainer: André Silva # Contributor: Márcio Silva ### ARM_UBOOT - loadaddr ### # 0x00007fc0 - versatile[versatile_ab/versatile_pb] # 0x00100000 - snowball/u8500_href # 0x00800000 - dns325/highbank/wireless_space # 0x02000000 - zynq[zynq_microzed/zynq_picozed/zynq_zc702/zynq_zc706/zynq_zc70x/zynq_zc770[zynq_zc770_xm010/zynq_zc770_xm012/zynq_zc770_xm013]/zynq_zed/zynq_zybo] # 0x08000000 - grub # 0x10800000 - cm_fx6 # 0x12000000 - aristainetos[aristainetos/aristainetos2]/mx6[mx6slevk/mx6sxsabresd] # 0x40007000 - origen # 0x43e00000 - origen # 0x60008000 - vexpress_ca9x4 # 0x70800000 - ima3-mx53/mx53evk/mx53smd # 0x72000000 - mx53ard/mx53loco # 0x80000000 - am335x_bur[kwb/tseries]/am3517[am3517_crane/am3517_evm]/mcx # 0x80007fc0 - am335x_ti[pcm051] # 0x80008000 - vexpress_ca9x4/vexpress[vexpress_ca15_tc2/vexpress_ca5x2](extended-mem) # 0x80100000 - am335x_bur[kwb]/ls2085a[ls2085a_emu/ls2085a_simu/ls2085aqds/ls2085ardb] # 0x80200000 - am335x_bur[tseries]/am335x_ti[am335x_evm/omap3_beagle/pengwyn]/ti814x_evm # 0x80800000 - * flea3/mx31ads/mx35pdk/qong/woodburn/woodburn_sd # 0x81000000 - ti814x_evm * mx25pdk/omap3_logic/ti816x_evm/tx25 # 0x82000000 - am335x_ti[am335x_evm/omap3_beagle/pcm051/pengwyn]/am3517[am3517_crane/am3517_evm]/mcx # /mx6[gw_ventana[gwventana]/mx6cuboxi/mx6qarm2[mx6dlarm2]/mx6qsabreauto[mx6dlsabreauto]/mx6sabresd[mx6dlsabresd/mx6qsabresd]] # /omap3_ti[devkit8000] # * bav335x/cm_t335/cm_t3517/dig297/omap3_evm/omap3_igep00x0/omap3_mvblx/omap3_sdp3430/omap3_zoom1/tao3530 # 0x84000000 - am335x_baltos # 0x90000000 - vexpress64_base[vexpress_aemv8a_semi]/vexpress64_juno[vexpress_aemv8a_juno] # 0x90000000UL - ls2085a[ls2085a_emu/ls2085a_simu/ls2085aqds/ls2085ardb] # 0x90800000 - vision2 # 0x92000000 - mx51evk # 0xa0008000 - vexpress[vexpress_ca15_tc2/vexpress_ca5x2](extended-mem) # 0xa0800000 - imx27lite # 0xc0000014 - davinci[ea20] # 0xc0700000 - davinci[ea20] # alt # am335x_igep0033 # am43xx_evm # apalis_t30 # apf27 # apx4devkit # armadillo-800eva # arndale # aspenite # at91rm9200ek # at91sam9260ek at91sam9g20ek/at91sam9xeek # at91sam9261ek at91sam9g10ek # at91sam9263ek # at91sam9m10g45ek # at91sam9n12ek # at91sam9rlek # at91sam9x5ek # balloon3 # bav335x birdland_bav335a/birdland_bav335b # bcm28155_ap bcm11130/bcm28155_w1d # bcmcygnus bcm911360/bcm911360k/bcm958300k/bcm958305k # bcmnsp bcm958622hr # beagle_x15 # beaver # bg0900 # calimain # cam_enc_4xx # cardhu # cgtqmx6eval cgtqmx6qeval # cm_t335 # cm_t3517 # cm_t35 # cm_t54 # colibri_pxa270 # colibri_t20 # colibri_t30 # colibri_vf # corvus # cpu9260 cpu9G20 # cpuat91 # da830evm # da850evm da850_am18xxevm # dalmore # davinci_dm355evm # davinci_dm355leopard # davinci_dm365evm # davinci_dm6467evm davinci_dm6467Tevm # davinci_dvevm # davinci_schmoogie # davinci_sffsdr # davinci_sonata # db-88f6820-gp # db-mv784mp-gp # devkit3250 # devkit8000 # dig297 # dockstar # dra7xx_evm # draco # dreamplug # duovero # eb_cpux9k2 # eco5pk # edb93xx edb9315a # edminiv2 # embestmx6boards marsboard/riotboard # enbw_cmc # ethernut5 # flea3 # goflexhome # gose # gplugd # guruplug # h2200 # harmony # ib62x0 # iconnect # imx27lite # imx31_litekit # imx31_phycore # integrator_ap integratorap_cm720t/integratorap_cm920t/integratorap_cm926ej_s/integratorap_cm946es # integrator_cp integratorcp_cm1136/integratorcp_cm920t/integratorcp_cm926ej_s/integratorcp_cm946es # ipam390 # jetson-tk1 # jornada # k2e_evm # k2hk_evm # k2l_evm # km_kirkwood kmcoge5un/kmnusa/kmsugp1/kmsuv31/mgcoge3un/portl2 # koelsch # kosagi_novena novena # kzm9g # lager # lp8x4x # ls1021aqds # ls1021atwr # lsxl lschlv2/lsxhl # magnesium # maxbcm # mcx # medcom-wide # meesc # m28evk # m53evk # mt_ventoux # mv88f6281gtw_ge # mx23_olinuxino # mx23evk # mx25pdk # mx28evk # mx31ads # mx31pdk # mx35pdk # mx51_efikamx mx51_efikasb # mx51evk # nas220 # net2big_v2 d2net_v2 # netspace_v2 inetspace_v2/netspace_lite_v2/netspace_max_v2/netspace_mini_v2 # nitrogen6x mx6qsabrelite/nitrogen6dl2g/nitrogen6dl/nitrogen6q2g/nitrogen6q/nitrogen6s1g/nitrogen6s # nokia_rx51 # nomadik_nhk8815 # nyan-big # odroid # odroid-xu3 # omap3_beagle # omap3_cairo cairo # omap3_evm # omap3_evm_quick # omap3_igep00x0 igep0020/igep0030/igep0032 # omap3_logic # omap3_mvblx # omap3_overo # omap3_pandora # omap3_sdp3430 # omap3_zoom1 # omap4_panda # omap4_sdp4430 # omap5_uevm # omapl138_lcdk # openrd # origen # ot1200 # otc570 # palmld # palmtreo680 # paz00 # peach-pi # peach-pit # pengwyn # pepper # platinum_picon # platinum_titanium # plutux # pm9261 # pm9263 # pm9g45 # pogo_e02 # porter # pxa255_idp # pxm2 # qong # rastaban # rd6281a # rpi_2 # rpi # rut # s5p_goni # s5pc210_universal # sama5d3_xplained # sama5d3xek # sama5d4_xplained # sama5d4ek # sansa_fuze_plus # sc_sps_1 # scb9328 # seaboard # secomx6 secomx6quq7 # sheevaplug # silk # smdk2410 # smdk5250 # smdk5420 # smdkc100 # smdkv310 # snapper9260 snapper9g20 # snow # socfpga_arria5 # socfpga_cyclone5 socfpga_socrates # spear300 # spear310 # spear320 # spear600 # stamp9g20 portuxg20 # stm32f429-discovery # stv0991 # sun4i-a10-a1000(mele) # sun4i-a10-ba10-tvbox # sun4i-a10-chuwi-v7-cw0825 # sun4i-a10-cubieboard # sun4i-a10-gemei-g9 # sun4i-a10-hyundai-a7hd # sun4i-a10-inet-3f # sun4i-a10-inet-3w # sun4i-a10-jesurun-q5 # sun4i-a10-marsboard # sun4i-a10-mini-xplus # sun4i-a10-mk802 # sun4i-a10-mk802ii # sun4i-a10-olinuxino-lime # sun4i-a10-pcduino # sun5i-a10s-auxtek-t004 # sun5i-a10s-mk802 # sun5i-a10s-olinuxino-micro # sun5i-a10s-r7-tv-dongle # sun5i-a13-ampe-a76 # sun5i-a13-forfun-q88db # sun5i-a13-inet-86vs # sun5i-a13-olinuxino # sun5i-a13-olinuxino-micro # sun5i-a13-tzx-q8-713b7 # sun5i-a13-utoo-p66 # sun6i-a31-colombus # sun6i-a31-hummingbird # sun6i-a31-i7(mele) # sun6i-a31-m9(mele) # sun6i-a31-mele-a1000g-quad # sun6i-a31-mixtile-loftq # sun6i-a31s-cs908 # sun6i-a31s-primo81(msi) # sun7i-a20-ainol-aw1 # sun7i-a20-bananapi # sun7i-a20-bananapro # sun7i-a20-cubieboard2 # sun7i-a20-cubietruck # sun7i-a20-i12-tvbox # sun7i-a20-m3(mele) # sun7i-a20-m5(mele) # sun7i-a20-mk808c # sun7i-a20-olinuxino-lime # sun7i-a20-olinuxino-lime2 # sun7i-a20-olinuxino-micro # sun7i-a20-orangepi # sun7i-a20-orangepi-mini # sun7i-a20-pcduino3 # sun7i-a20-pcduino3-nano # sun7i-a20-primo73(msi) # sun7i-a20-wexler-tab7200 # sun7i-a20-wits-pro-a20-dkt # sun7i-a20-yones-toptech-bd1078 # sun8i-a23-ippo-q8h-v1.2 # sun8i-a23-ippo-q8h-v5 # sun8i-a33-et-q8-v1.6 # sun8i-a33-ga10h-v1.1 # sun8i-a33-ippo-q8h-v1.2 # sun8i-a33-sinlinx-sina33 # sun9i-a80-optimus(merri) # tao3530 omap3_ha # taurus axm # tbs2910 # tec # tec-ng # thuban # ti814x_evm # ti816x_evm # titanium # tk71 # tqma6 tqma6q_mba6/tqma6s_mba6 # trats # trats2 # tricorder # trimslice # trizepsiv polaris # tseries # tt01 # twister # tx25 # udoo udoo_quad # uniphier-ph1-ld4-ref # uniphier-ph1-pro4-ref # uniphier-ph1-sld8-ref # usb_a9263 # usbarmory # VCMA9 # venice2 # ventana # vf610twr # vl_ma2sc # vpac270 # wandboard # warp # whistler # woodburn # woodburn_sd # work_92105 # x600 # xaeniax # xfi3 # xilinx_zynqmp # zipitz2 # zmx25 ## '1' to enable IA32-EFI build in Arch x86_64, '0' to disable _IA32_EFI_IN_ARCH_X64='1' ## '1' to enable IA32-XEN build in Arch x86_64, "0" to disable _IA32_XEN_IN_ARCH_X64='1' ## '1' to enable EMU build (x86_64 and i686 only), "0" to disable _GRUB_EMU_BUILD='0' _pkgver='2.02' _GRUB_GIT_TAG='grub-2.02-beta2' _UNIFONT_VER='6.3.20131217' [[ "${CARCH}" = 'armv7h' ]] && _EFI_ARCH='arm' [[ "${CARCH}" = 'x86_64' ]] && _EFI_ARCH='x86_64' [[ "${CARCH}" = 'i686' ]] && _EFI_ARCH='i386' [[ "${CARCH}" = 'x86_64' ]] && _XEN_ARCH='x86_64' [[ "${CARCH}" = 'i686' ]] && _XEN_ARCH='i386' [[ "${CARCH}" = 'armv7h' ]] && _EMU_ARCH='arm' [[ "${CARCH}" = 'x86_64' ]] && _EMU_ARCH='x86_64' [[ "${CARCH}" = 'i686' ]] && _EMU_ARCH='i386' pkgbase='grub' pkgname=('grub') [[ $CARCH = armv7h ]] && pkgname+=('grub-am335x_bone') pkgdesc='GNU GRand Unified Bootloader (2), (Parabola rebranded)' pkgver='2.02.beta2' pkgrel='5.parabola7' epoch='1' url='https://www.gnu.org/software/grub/' arch=('x86_64' 'i686' 'armv7h') license=('GPL3') backup=('etc/default/grub' 'etc/grub.d/40_custom') install="${pkgname}.install" options=('!makeflags') depends=('sh' 'xz' 'gettext' 'device-mapper') makedepends=('git' 'rsync' 'xz' 'freetype2' 'ttf-dejavu' 'python' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper' 'fuse') if [[ "${CARCH}" = 'x86_64' ]] || [[ "${CARCH}" = 'i686' ]]; then makedepends+=('xen') fi if [[ "${_GRUB_EMU_BUILD}" = '1' ]]; then makedepends+=('libusbx' 'sdl') fi optdepends=('freetype2: For grub-mkfont usage' 'fuse: For grub-mount usage' 'dosfstools: For grub-mkrescue FAT FS and EFI support' 'efibootmgr: For grub-install EFI support' 'libisoburn: Provides xorriso for generating grub rescue iso using grub-mkrescue' 'os-prober: To detect other OSes when generating grub.cfg in BIOS systems' 'mtools: For grub-mkrescue FAT FS support') if [[ "${CARCH}" = 'x86_64' ]] || [[ "${CARCH}" = 'i686' ]]; then provides=('grub-common' 'grub-bios' 'grub-emu' "grub-efi-${_EFI_ARCH}") conflicts=('grub-common' 'grub-bios' 'grub-emu' "grub-efi-${_EFI_ARCH}" 'grub-legacy' 'grub-parabola') replaces=('grub-common' 'grub-bios' 'grub-emu' "grub-efi-${_EFI_ARCH}" 'grub-parabola') elif [[ "$CARCH" = 'armv7h' ]]; then provides=('grub-common' 'grub-emu' "grub-efi-${_EFI_ARCH}") conflicts=('grub-common' 'grub-emu' "grub-efi-${_EFI_ARCH}") replaces=('grub-common' 'grub-emu' "grub-efi-${_EFI_ARCH}") fi source=("grub-${_pkgver}::git+git://git.sv.gnu.org/grub.git#tag=${_GRUB_GIT_TAG}" "grub-extras::git+git://git.sv.gnu.org/grub-extras.git#branch=master" "http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz" "http://ftp.gnu.org/gnu/unifont/unifont-${_UNIFONT_VER}/unifont-${_UNIFONT_VER}.bdf.gz.sig" 'grub-10_linux-20_linux_xen-detect-parabola-initramfs.patch' 'grub-add-GRUB_COLOR_variables.patch' '60_memtest86+' 'grub.default' 'grub-10_linux-20_linux_xen-detect-am335x_bone+am335x_boneblack-devicetree-file.patch' 'grub-10_linux-20_linux_xen-rebrand-free-distros.patch') md5sums=('SKIP' 'SKIP' '728b7439ac733a7c0d56049adec364c7' 'SKIP' '3a9bb9bafe0062388e11f72f0e80ba7e' 'e506ae4a9f9f7d1b765febfa84e10d48' 'be55eabc102f2c60b38ed35c203686d6' '8d1dd54ae4a1b550c097e056892ce953' '36b2a7531b615d5b8658a709b8104148' 'e0133ad89ab3014210d4599f396a556e') validpgpkeys=('95D2E9AB8740D8046387FD151A09227B1F435A33') #Paul Hardy _pkgver() { cd "${srcdir}/grub-${_pkgver}/" echo "$(git describe --tags)" | sed -e 's|grub.||g' -e 's|-|\.|g' } prepare() { cd "${srcdir}/grub-${_pkgver}/" msg 'Patch to detect of Parabola GNU/Linux-libre initramfs images by grub-mkconfig' patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-parabola-initramfs.patch" msg 'Patch to enable GRUB_COLOR_* variables in grub-mkconfig' ## Based on http://lists.gnu.org/archive/html/grub-devel/2012-02/msg00021.html patch -Np1 -i "${srcdir}/grub-add-GRUB_COLOR_variables.patch" msg 'Fix DejaVuSans.ttf location so that grub-mkfont can create *.pf2 files for starfield theme' sed 's|/usr/share/fonts/dejavu|/usr/share/fonts/dejavu /usr/share/fonts/TTF|g' -i "${srcdir}/grub-${_pkgver}/configure.ac" msg 'Rebranding for some free distros' patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-rebrand-free-distros.patch" msg "Fix mkinitcpio 'rw' FS#36275" sed 's| ro | rw |g' -i "${srcdir}/grub-${_pkgver}/util/grub.d/10_linux.in" # msg 'autogen.sh requires python (2/3). since bzr is in makedepends, use python2 and no need to pull python3' # sed 's|python |python2 |g' -i "${srcdir}/grub-${_pkgver}/autogen.sh" msg 'Pull in latest language files' ./linguas.sh msg 'Remove not working langs which need LC_ALL=C.UTF-8' sed -e 's#en@cyrillic en@greek##g' -i "${srcdir}/grub-${_pkgver}/po/LINGUAS" msg 'Avoid problem with unifont during compile of grub, http://savannah.gnu.org/bugs/?40330 and https://bugs.archlinux.org/task/37847' cp "${srcdir}/unifont-${_UNIFONT_VER}.bdf" "${srcdir}/grub-${_pkgver}/unifont.bdf" # DISABLED TEMPORARY, due fail to build. # msg "Add the grub-extra sources for BIOS build" # install -d "${srcdir}/grub-${_pkgver}/grub-extras" # cp -r "${srcdir}/grub-extras/915resolution" "${srcdir}/grub-${_pkgver}/grub-extras/915resolution" # failed in compilation # export GRUB_CONTRIB="${srcdir}/grub-${_pkgver}/grub-extras/" } _build_grub-efi() { msg "Copy the source for building the ${_EFI_ARCH} EFI part" cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}" cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/" msg "Unset all compiler FLAGS for ${_EFI_ARCH} EFI build" unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/" msg 'Run autogen.sh for ${_EFI_ARCH} EFI build' ./autogen.sh msg "Run ./configure for ${_EFI_ARCH} EFI build" ./configure \ --with-platform="efi" \ --target="${_EFI_ARCH}" \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix="/usr" \ --bindir="/usr/bin" \ --sbindir="/usr/bin" \ --mandir="/usr/share/man" \ --infodir="/usr/share/info" \ --datarootdir="/usr/share" \ --sysconfdir="/etc" \ --program-prefix="" \ --with-bootdir="/boot" \ --with-grubdir="grub" \ --disable-silent-rules \ --disable-werror msg "Run make for ${_EFI_ARCH} EFI build" make } _build_grub-xen() { msg "Copy the source for building the ${_XEN_ARCH} XEN part" cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-xen-${_XEN_ARCH}" cd "${srcdir}/grub-${_pkgver}-xen-${_XEN_ARCH}/" msg "Unset all compiler FLAGS for ${_XEN_ARCH} XEN build" unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-xen-${_XEN_ARCH}/" msg "Run autogen.sh for ${_XEN_ARCH} XEN build" ./autogen.sh msg "Run ./configure for ${_XEN_ARCH} XEN build" ./configure \ --with-platform='xen' \ --target="${_XEN_ARCH}" \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg "Run make for ${_XEN_ARCH} XEN build" make } _build_grub-bios() { msg 'Set ARCH dependent variables for BIOS build' if [[ "${CARCH}" = 'x86_64' ]]; then _EFIEMU='--enable-efiemu' else _EFIEMU='--disable-efiemu' fi msg 'Copy the source for building the BIOS part' cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-bios" cd "${srcdir}/grub-${_pkgver}-bios/" msg 'Unset all compiler FLAGS for BIOS build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-bios/" msg 'Run autogen.sh for BIOS build' ./autogen.sh msg 'Run ./configure for BIOS build' ./configure \ --with-platform='pc' \ --target='i386' \ "${_EFIEMU}" \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for BIOS build' make } _build_grub-qemu() { msg 'Copy the source for building the QEMU part' cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-qemu" cd "${srcdir}/grub-${_pkgver}-qemu/" msg 'Unset all compiler FLAGS for QEMU build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-qemu/" msg 'Run autogen.sh for QEMU build' ./autogen.sh msg 'Run ./configure for QEMU build' ./configure \ --with-platform='qemu' \ --target='i386' \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for QEMU build' make } _build_grub-ieee1275() { msg 'Copy the source for building the IEEE1275 (OpenFirmware) part' cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-ieee1275" cd "${srcdir}/grub-${_pkgver}-ieee1275/" msg 'Unset all compiler FLAGS for IEEE1275 (OpenFirmware) build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-ieee1275/" msg 'Run autogen.sh for IEEE1275 (OpenFirmware) build' ./autogen.sh msg 'Run ./configure for IEEE1275 (OpenFirmware) build' ./configure \ --with-platform='ieee1275' \ --target='i386' \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for IEEE1275 (OpenFirmware) build' make } _build_grub-libreboot() { msg 'Copy the source for building the Libreboot part' cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-libreboot" cd "${srcdir}/grub-${_pkgver}-libreboot/" msg 'Unset all compiler FLAGS for Libreboot build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-libreboot/" msg 'Run autogen.sh for Libreboot build' ./autogen.sh msg 'Run ./configure for Libreboot build' ./configure \ --with-platform='coreboot' \ --target='i386' \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for Libreboot build' make } _build_grub-multiboot() { msg 'Copy the source for building the Multiboot part' cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-multiboot" cd "${srcdir}/grub-${_pkgver}-multiboot/" msg 'Unset all compiler FLAGS for Multiboot build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-multiboot/" msg 'Run autogen.sh for Multiboot build' ./autogen.sh msg 'Run ./configure for Multiboot build' ./configure \ --with-platform='multiboot' \ --target='i386' \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for Multiboot build' make } _build_grub-emu() { msg 'Copy the source for building the emu part' cp -r "${srcdir}/grub-${_pkgver}/" "${srcdir}/grub-${_pkgver}-emu/" msg 'Unset all compiler FLAGS for emu build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-emu/" msg 'Run autogen.sh for emu build' ./autogen.sh msg 'Run ./configure for emu build' ./configure \ --with-platform='emu' \ --target="${_EMU_ARCH}" \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-grub-mkfont \ --enable-grub-mount \ --enable-grub-emu-usb=no \ --enable-grub-emu-sdl=no \ --disable-grub-emu-pci \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for emu build' make } _build_grub-uboot_am335x-bone() { msg "Copy the source for building the U-Boot (am335x-bone) part" cp -r "${srcdir}/grub-${_pkgver}" "${srcdir}/grub-${_pkgver}-uboot_am335x-bone" cd "${srcdir}/grub-${_pkgver}-uboot_am335x-bone/" msg 'Patch to detect am335x-bone device tree blob file (dtb)' patch -Np1 -i "${srcdir}/grub-10_linux-20_linux_xen-detect-devicetree-dir.patch" msg 'change memory adapted for am335x-bone support' sed -i '\|arm_uboot_ldflags| s|0x08000000|0x82000000| \|GRUB_KERNEL_ARM_UBOOT_LINK_ADDR| s|0x08000000|0x82000000| ' grub-core/Makefile.core.def \ include/grub/offsets.h msg 'Unset all compiler FLAGS for U-Boot (am335x-bone) build' unset CFLAGS unset CPPFLAGS unset CXXFLAGS unset LDFLAGS unset MAKEFLAGS cd "${srcdir}/grub-${_pkgver}-uboot/" msg 'Run autogen.sh for U-Boot (am335x-bone) build' ./autogen.sh msg 'Run ./configure for U-Boot (am335x-bone) build' ./configure \ --with-platform='uboot' \ --target='arm' \ --disable-efiemu \ --enable-mm-debug \ --enable-nls \ --enable-device-mapper \ --enable-cache-stats \ --enable-boot-time \ --enable-grub-mkfont \ --enable-grub-mount \ --prefix='/usr' \ --bindir='/usr/bin' \ --sbindir='/usr/bin' \ --mandir='/usr/share/man' \ --infodir='/usr/share/info' \ --datarootdir='/usr/share' \ --sysconfdir='/etc' \ --program-prefix='' \ --with-bootdir='/boot' \ --with-grubdir='grub' \ --disable-silent-rules \ --disable-werror msg 'Run make for U-Boot (am335x-bone) build' make } build() { cd "${srcdir}/grub-${_pkgver}/" if [[ "${CARCH}" = 'x86_64' ]] || [[ "${CARCH}" = 'i686' ]] || [[ "${CARCH}" = 'armv7h' ]]; then msg "Build grub ${_EFI_ARCH} EFI stuff" _build_grub-efi if [[ "${CARCH}" = 'x86_64' ]] && [[ "${_IA32_EFI_IN_ARCH_X64}" = '1' ]]; then msg 'Build grub i386 EFI stuff' _EFI_ARCH='i386' _build_grub-efi fi fi if [[ "${CARCH}" = 'x86_64' ]] || [[ "${CARCH}" = 'i686' ]]; then msg "Build grub ${_XEN_ARCH} XEN stuff" _build_grub-xen if [[ "${CARCH}" = 'x86_64' ]] && [[ "${_IA32_XEN_IN_ARCH_X64}" = '1' ]]; then msg 'Build grub i386 XEN stuff' _XEN_ARCH='i386' _build_grub-xen fi msg 'Build grub BIOS stuff' _build_grub-bios msg 'Build grub QEMU stuff' _build_grub-qemu msg 'Build grub IEEE1275 (OpenFirmware) stuff' _build_grub-ieee1275 msg 'Build grub Libreboot stuff' _build_grub-libreboot msg 'Build grub Multiboot stuff' _build_grub-multiboot msg "Build grub ${_XEN_ARCH} XEN stuff" _build_grub-xen elif [[ "${CARCH}" = 'armv7h' ]]; then msg 'Build grub U-Boot for BeagleBone and BeagleBone Black (am335x-bone) stuff' _build_grub-uboot_am335x-bone fi if [[ "${_GRUB_EMU_BUILD}" = '1' ]]; then msg 'Build grub emu stuff' _build_grub-emu fi } _package_grub-efi() { cd "${srcdir}/grub-${_pkgver}-efi-${_EFI_ARCH}/" msg "Run make install for ${_EFI_ARCH} EFI build" make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg "Remove gdb debugging related files for ${_EFI_ARCH} EFI build" rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.module || true rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/*.image || true rm -f "${pkgdir}/usr/lib/grub/${_EFI_ARCH}-efi"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-xen() { cd "${srcdir}/grub-${_pkgver}-xen-${_XEN_ARCH}/" msg "Run make install for ${_XEN_ARCH} XEN build" make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg "Remove gdb debugging related files for ${_XEN_ARCH} XEN build" rm -f "${pkgdir}/usr/lib/grub/${_XEN_ARCH}-xen"/*.module || true rm -f "${pkgdir}/usr/lib/grub/${_XEN_ARCH}-xen"/*.image || true rm -f "${pkgdir}/usr/lib/grub/${_XEN_ARCH}-xen"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-bios() { cd "${srcdir}/grub-${_pkgver}-bios/" msg 'Run make install for BIOS build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for BIOS build' rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.module || true rm -f "${pkgdir}/usr/lib/grub/i386-pc"/*.image || true rm -f "${pkgdir}/usr/lib/grub/i386-pc"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-qemu() { cd "${srcdir}/grub-${_pkgver}-qemu/" msg 'Run make install for QEMU build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for QEMU build' rm -f "${pkgdir}/usr/lib/grub/i386-qemu"/*.module || true rm -f "${pkgdir}/usr/lib/grub/i386-qemu"/*.image || true rm -f "${pkgdir}/usr/lib/grub/i386-qemu"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-ieee1275() { cd "${srcdir}/grub-${_pkgver}-ieee1275/" msg 'Run make install for IEEE1275 (OpenFirmware) build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for IEEE1275 (OpenFirmware) build' rm -f "${pkgdir}/usr/lib/grub/i386-ieee1275"/*.module || true rm -f "${pkgdir}/usr/lib/grub/i386-ieee1275"/*.image || true rm -f "${pkgdir}/usr/lib/grub/i386-ieee1275"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-libreboot() { cd "${srcdir}/grub-${_pkgver}-libreboot/" msg 'Run make install for Libreboot build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for Libreboot build' rm -f "${pkgdir}/usr/lib/grub/i386-coreboot"/*.module || true rm -f "${pkgdir}/usr/lib/grub/i386-coreboot"/*.image || true rm -f "${pkgdir}/usr/lib/grub/i386-coreboot"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-multiboot() { cd "${srcdir}/grub-${_pkgver}-multiboot/" msg 'Run make install for Multiboot build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for Multiboot build' rm -f "${pkgdir}/usr/lib/grub/i386-multiboot"/*.module || true rm -f "${pkgdir}/usr/lib/grub/i386-multiboot"/*.image || true rm -f "${pkgdir}/usr/lib/grub/i386-multiboot"/{kernel.exec,gdb_grub,gmodule.pl} || true } _package_grub-emu() { cd "${srcdir}/grub-${_pkgver}-emu/" msg 'Run make install for emu build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for emu build' rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.module || true rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/*.image || true rm -f "${pkgdir}/usr/lib/grub/${_EMU_ARCH}-emu"/{kernel.exec,gdb_grub,gmodule.pl} || true } package_grub() { if [[ "${CARCH}" = 'i686' ]]; then optdepends+=('linux-libre-xen: For boot support into XEN server') fi if [[ "${_GRUB_EMU_BUILD}" = '1' ]]; then optdepends+=('libusbx: For grub-emu USB support' 'sdl: For grub-emu SDL support') fi cd "${srcdir}/grub-${_pkgver}/" if [[ "${CARCH}" = 'x86_64' ]] || [[ "${CARCH}" = 'i686' ]] || [[ "${CARCH}" = 'armv7h' ]]; then msg "Package grub ${_EFI_ARCH} EFI stuff" _package_grub-efi if [[ "${CARCH}" = 'x86_64' ]] && [[ "${_IA32_EFI_IN_ARCH_X64}" = '1' ]]; then msg 'Package grub i386 EFI stuff' _EFI_ARCH='i386' _package_grub-efi fi fi if [[ "${CARCH}" = 'x86_64' ]] || [[ "${CARCH}" = 'i686' ]]; then msg "Package grub ${_XEN_ARCH} XEN stuff" _package_grub-xen if [[ "${CARCH}" = 'x86_64' ]] && [[ "${_IA32_XEN_IN_ARCH_X64}" = '1' ]]; then msg 'Package grub i386 XEN stuff' _XEN_ARCH='i386' _package_grub-xen fi msg 'Package grub BIOS stuff' _package_grub-bios msg 'Package grub QEMU stuff' _package_grub-qemu msg 'Package grub IEEE1275 (OpenFirmware) stuff' _package_grub-ieee1275 msg 'Package grub Libreboot stuff' _package_grub-libreboot msg 'Package grub Multiboot stuff' _package_grub-multiboot msg 'Install extra /etc/grub.d/ files' install -D -m0755 "${srcdir}/60_memtest86+" "${pkgdir}/etc/grub.d/60_memtest86+" fi if [[ "${_GRUB_EMU_BUILD}" = '1' ]]; then msg 'Package grub emu stuff' _package_grub-emu fi msg 'Install /etc/default/grub (used by grub-mkconfig)' install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" } package_grub-am335x_bone() { pkgdesc='GNU GRand Unified Bootloader (2) for BeagleBone and BeagleBone Black (am335x-bone), (Parabola rebranded)' provides+=('grub') conflicts+=('grub') cd "${srcdir}/grub-${_pkgver}-uboot_am335x-bone/" msg 'Package grub U-Boot stuff' msg 'Run make install for U-Boot build' make DESTDIR="${pkgdir}/" bashcompletiondir="/usr/share/bash-completion/completions" install msg 'Remove gdb debugging related files for U-Boot build' rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.module || true rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/*.image || true rm -f "${pkgdir}/usr/lib/grub/arm-uboot"/{kernel.exec,gdb_grub,gmodule.pl} || true msg 'Install /etc/default/grub (used by grub-mkconfig)' install -D -m0644 "${srcdir}/grub.default" "${pkgdir}/etc/default/grub" }