# vim: syn=sh ft=sh et sw=2 sts=2 ts=2 tw=0: #Packager: Dimitris Tzemos pkgname=grub pkgver=2.06 _unifontver=13.0.06 _dejavuver=2.37 pkgrel=1dj source=( "grub-default" "salix.png" "update-grub" "windows_uefi" "setup.grubconfig" "grubconfig" "initrd_naming.patch.gz" "0198-align-struct-efi_variable-better.patch.gz" "grub.dejavusansmono.gfxterm.font.diff.gz" "a4b495520e4dc41a896a8b916a64eda9970c50ea.patch.gz" "0001-skip-new-files-in-etc-grub.d.patch.gz" "ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-$pkgver.tar.xz" ) docs=("readme" "install" "copying" "changelog" "authors" "news" "todo") url=http://www.gnu.org/software/grub/ options=('noextract' 'nostrip' 'noautodotnew') dotnew=('etc/default/grub' 'etc/grub.d/00_header' 'etc/grub.d/10_linux' 'etc/grub.d/20_linux_xen' 'etc/grub.d/30_os-prober' 'etc/grub.d/40_custom' 'etc/grub.d/41_custom') slackdesc=\ ( #|-----handy-ruler------------------------------------------------------| "$pkgname (the second GNU GRand Unified Bootloader)" "GRUB 2 has been rewritten from scratch to clean up everything for" "modularity and portability." "Features are: Scripting support, Graphical interface, Rescue mode," "cross-platform and many more" "Briefly, boot loader is the first software program that runs when a" "computer starts. It is responsible for loading and transferring" "control to the operating system kernel software (such as the Hurd or" "the Linux). The kernel initializes the rest of the operating system." "* gettextvar, eval, getdate commands added." ) build() { # Don't use icecream: PATH=$(echo $PATH | sed "s|/usr/libexec/icecc/bin||g" | tr -s : | sed "s/^://g" | sed "s/:$//g") # CFLAGS and CXXFLAGS should not contains fPIC or compile will fail export CFLAGS=" -Os " export CFLAGS=$(echo "$CFLAGS"|sed 's/-fPIC/-fno-PIC/') export CXXFLAGS=$(echo "$CXXFLAGS"|sed 's/-fPIC/-fno-PIC/') cd $SRC || return 1 tar xf grub-$pkgver.tar.xz || return 1 cd grub-$pkgver || return 1 # Use /boot/initrd.gz as a valid initrd name: zcat $SRC/initrd_naming.patch | patch -p1 --verbose || exit 1 # Support DejaVuSansMono font (dejavusansmono.pf2) by default: zcat $SRC/grub.dejavusansmono.gfxterm.font.diff.gz | patch -p1 --verbose || exit 1 # Fix alignment error with gcc8: zcat $SRC/0198-align-struct-efi_variable-better.patch.gz | patch -p1 --verbose || exit 1 # Fix unreadable XFS filesystem with v4 superblock: zcat $SRC/a4b495520e4dc41a896a8b916a64eda9970c50ea.patch.gz | patch -p1 --verbose || exit 1 # Skip processing any files in /etc/grub.d/ that end in .new: zcat $SRC/0001-skip-new-files-in-etc-grub.d.patch.gz | patch -p1 --verbose || exit 1 autoreconf -vif ./configure \ --with-platform="pc" \ --target="i386" \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --localstatedir=/var \ --sysconfdir=/etc \ --mandir=/usr/man \ --infodir=/usr/share/info \ --docdir=/usr/doc/$pkgname-$pkgver \ --program-prefix= \ --enable-cache-stats \ --enable-boot-time \ --enable-device-mapper \ $([ $ARCH = x86_64 ] && echo '--enable-efiemu' || echo '--disable-efiemu') \ --enable-grub-emu-usb \ --enable-grub-mkfont \ --enable-grub-mount \ --enable-nls \ --with-bootdir="/boot" \ --with-grubdir="grub" \ --disable-silent-rules \ --disable-werror \ --build=$arch-slackware-linux || return 1 make -j $numjobs || return 1 make install DESTDIR=$PKG || return 1 # Add fonts, if found on the system: FONT_SIZE=${FONT_SIZE:-19} if [ -r /usr/share/fonts/TTF/unifont.ttf ]; then $PKG/usr/bin/grub-mkfont -o $PKG/usr/share/grub/unifont.pf2 -abv \ -s $FONT_SIZE /usr/share/fonts/TTF/unifont.ttf fi if [ -r /usr/share/fonts/TTF/DejaVuSansMono.ttf ]; then $PKG/usr/bin/grub-mkfont -o $PKG/usr/share/grub/dejavusansmono.pf2 -abv \ -s $FONT_SIZE /usr/share/fonts/TTF/DejaVuSansMono.ttf fi install -D -m644 $SRC/grub-default $PKG/etc/default/grub || return 1 install -D -m644 $SRC/salix.png $PKG/boot/grub/salix.png || return 1 install -D -m755 $SRC/update-grub $PKG/usr/sbin/update-grub || return 1 install -D -m755 $SRC/windows_uefi $PKG/usr/sbin/windows_uefi || return 1 install -D -m755 $SRC/grubconfig $PKG/sbin/grubconfig || return 1 install -D -m755 $SRC/setup.grubconfig $PKG/var/log/setup/setup.grubconfig || return 1 }