X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=blobdiff_plain;f=lfs%2Fgrub;h=811c2f745e267e5ff6c246b66bc5f2196e12b780;hp=04aaa0b2542b283918f0628e167fdf06588aa3b3;hb=HEAD;hpb=0e331dd73b89f397f893c51447a5237935459fbb diff --git a/lfs/grub b/lfs/grub index 04aaa0b254..bcc6ac4ab7 100644 --- a/lfs/grub +++ b/lfs/grub @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2014 IPFire Team # +# Copyright (C) 2007-2024 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,17 +24,32 @@ include Config -VER = 2.00 +VER = 2.12 THISAPP = grub-$(VER) DL_FILE = $(THISAPP).tar.xz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -SUP_ARCH = i586 +#SUP_ARCH = aarch64 x86_64 -CFLAGS = -CXXFLAGS = +ifeq "$(BUILD_ARCH)" "x86_64" + BUILD_PC = 1 +endif + +BUILD_EFI = $(EFI) + +DIR_APP_PC = $(DIR_APP)-pc +DIR_APP_EFI = $(DIR_APP)-efi + +# Don't use our CFLAGS for boot code +export HOST_CFLAGS = $(CFLAGS) +export HOST_LDFLAGS = $(LDFLAGS) + +CONFIGURE_ARGS = \ + --prefix=/usr \ + --sysconfdir=/etc \ + --disable-werror ############################################################################### # Top-level Rules @@ -46,8 +61,8 @@ objects = $(DL_FILE) \ $(DL_FILE) = $(DL_FROM)/$(DL_FILE) unifont-7.0.03.pcf.gz = $(DL_FROM)/unifont-7.0.03.pcf.gz -$(DL_FILE)_MD5 = a1043102fbc7bcedbf53e7ee3d17ab91 -unifont-7.0.03.pcf.gz_MD5 = f6903ac8c1caeeb30c1e9a2975028401 +$(DL_FILE)_BLAKE2 = a678f7fafb945d325c8cf47aa086f48357a8f6335b762f77038c30a3896b3b05491598d9931d5335841d224fffcbe4a9a43ca1479057c1f1ce52b8d2a952c431 +unifont-7.0.03.pcf.gz_BLAKE2 = fb96c1786fcc8c77796c90ce30a2b7d544013bd62cedbf7b027e1894fe75cdbd2044717796cb0e3150db1457fcb58076491d9c0b855621b652fb9a52c0793469 install : $(TARGET) @@ -55,10 +70,10 @@ check : $(patsubst %,$(DIR_CHK)/%,$(objects)) download :$(patsubst %,$(DIR_DL)/%,$(objects)) -md5 : $(subst %,%_MD5,$(objects)) +b2 : $(subst %,%_BLAKE2,$(objects)) ############################################################################### -# Downloading, checking, md5sum +# Downloading, checking, b2sum ############################################################################### $(patsubst %,$(DIR_CHK)/%,$(objects)) : @@ -67,8 +82,8 @@ $(patsubst %,$(DIR_CHK)/%,$(objects)) : $(patsubst %,$(DIR_DL)/%,$(objects)) : @$(LOAD) -$(subst %,%_MD5,$(objects)) : - @$(MD5) +$(subst %,%_BLAKE2,$(objects)) : + @$(B2SUM) ############################################################################### # Installation Details @@ -76,37 +91,46 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-2.00_disable_vga_fallback.patch - cd $(DIR_APP) && \ - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --with-platform=pc \ - --with-grubdir=grub \ - --program-transform-name=s,grub,grub, \ - --disable-grub-mount \ - --disable-werror - cd $(DIR_APP) && make $(MAKETUNING) - cd $(DIR_APP) && make install - + @rm -rf $(DIR_APP) $(DIR_APP_EFI) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.06-remove_os_prober_disabled_warning.patch + cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub/grub-2.02_disable_vga_fallback.patch + cd $(DIR_APP) && [ ! -e grub-core/extra_deps.lst ] && echo 'depends bli part_gpt' > grub-core/extra_deps.lst + cd $(DIR_APP) && autoreconf -vfi + + # Install unifont + cp -v $(DIR_DL)/unifont-7.0.03.pcf.gz $(DIR_APP)/unifont.pcf.gz + +ifeq "$(BUILD_EFI)" "1" + cp -r $(DIR_APP) $(DIR_APP_EFI) + cd $(DIR_APP_EFI) && ./configure $(CONFIGURE_ARGS) \ + --with-platform=efi CFLAGS= LDFLAGS= + cd $(DIR_APP_EFI) && make $(MAKETUNING) + cd $(DIR_APP_EFI) && make install +endif + +ifeq "$(BUILD_PC)" "1" + cp -r $(DIR_APP) $(DIR_APP_PC) + cd $(DIR_APP_PC) && ./configure $(CONFIGURE_ARGS) \ + --with-platform=pc --disable-efiemu CFLAGS= LDFLAGS= + cd $(DIR_APP_PC) && make $(MAKETUNING) + cd $(DIR_APP_PC) && make install + + # Install empty configuration file -mkdir -pv /boot/grub touch /boot/grub/grub.cfg - ln -svf ../boot/grub/grub.cfg /etc/grub2.cfg +endif + + # Install our own helpers + install -v -m 755 $(DIR_SRC)/config/grub2/00_cloud \ + /etc/grub.d + + # Install background image + -mkdir -pv /boot/grub install -m 644 $(DIR_SRC)/config/grub2/splash.png /boot/grub/splash.png + # Install default configuration -mkdir -pv /etc/default install -m 644 $(DIR_SRC)/config/grub2/default /etc/default/grub - # Disable hardening. - paxctl -mpes /usr/sbin/grub-bios-setup /usr/sbin/grub-probe - - # We don't need to install unifont just to generate a grub2 compatible - # font archive for the graphical boot menu. The following command only - # converts Latin-1, Latin Extended A+B, Arrows, Box and Block characters. - /usr/bin/grub-mkfont --output /boot/grub/unifont.pf2 \ - --range=0x0000-0x0241,0x2190-0x21FF,0x2500-0x259f \ - $(DIR_DL)/unifont-7.0.03.pcf.gz - - @rm -rf $(DIR_APP) + @rm -rf $(DIR_APP) $(DIR_APP_PC) $(DIR_APP_EFI) @$(POSTBUILD)