27a326dafb
As of grub2 >= 2.02-95 on redhat family distros, calling grub2-install on an EFI partition will fail with: "this utility cannot be used for EFI platforms because it does not support UEFI Secure Boot." This version of grub is now in centos8-stream and non-eus repos of RHEL-8. It is not currently possible to build whole-disk UEFI images on these distros, and when this package is promoted this will also affect centos8 and RHEL-8 eus. The grub maintainers made this change because the grub2-install generated /boot/efi/EFI/BOOT/BOOTX64.EFI will never be capable of booting with Secure Boot. This change defines a $EFI_BOOT_DIR for every distro element. When directory /boot/efi/$EFI_BOOT_DIR exists a grub.cfg file in will be generated there. This change also installs the shim package on redhat family distros, which installs a copy of the shim bootloader to /boot/efi/EFI/BOOT/BOOTX64.EFI. Using centos as an example, this allows UEFI to boot the shim /boot/efi/EFI/BOOT/BOOTX64.EFI which then chains to /boot/efi/EFI/centos/grubx64.efi. If /boot/efi/$EFI_BOOT_DIR doesn't exist (such as for Ubuntu, /boot/efi/EFI/ubuntu) the current behaviour of running grub-install to generate /boot/efi/EFI/BOOT/BOOTX64.EFI will continue. For distros such as Ubutnu where packaging does not populate /boot/efi/EFI/ubuntu with .efi files, secure boot can be added in the future by copying .efi files to /boot/efi/EFI/ubuntu and copying the shim file to /boot/efi/EFI/BOOT/BOOTX64.EFI. Change-Id: I90925218ff2aa4c4daffcf86e686b6d98d6b0f21
29 lines
1.4 KiB
Bash
29 lines
1.4 KiB
Bash
export DIB_RELEASE=gentoo
|
|
export DISTRO_NAME=gentoo
|
|
export EFI_BOOT_DIR="EFI/gentoo"
|
|
export GENTOO_PROFILE=${GENTOO_PROFILE:-'default/linux/amd64/17.1'}
|
|
export GENTOO_PORTAGE_CLEANUP=${GENTOO_PORTAGE_CLEANUP:-'True'}
|
|
export GENTOO_PYTHON_TARGETS=${GENTOO_PYTHON_TARGETS:-'python3_8'}
|
|
export GENTOO_OVERLAYS=${GENTOO_OVERLAYS:-''}
|
|
export GENTOO_EMERGE_DEFAULT_OPTS=${GENTOO_EMERGE_DEFAULT_OPTS:-"--binpkg-respect-use --rebuilt-binaries=y --usepkg=y --with-bdeps=y --binpkg-changed-deps=y --quiet --jobs=2 --autounmask=n"}
|
|
|
|
# set the default bash array if GENTOO_EMERGE_ENV is not defined as an array
|
|
if ! declare -p GENTOO_EMERGE_ENV 2> /dev/null | grep -q '^declare \-a'; then
|
|
declare -a GENTOO_EMERGE_ENV
|
|
GENTOO_EMERGE_ENV+=("USE=\"-build\"")
|
|
GENTOO_EMERGE_ENV+=("FEATURES=\"binpkg-multi-instance buildpkg parallel-fetch parallel-install\"")
|
|
GENTOO_EMERGE_ENV+=("PKGDIR=\"/tmp/portage-pkgdir\"")
|
|
GENTOO_EMERGE_ENV+=("DISTDIR=\"/tmp/portage-distdir\"")
|
|
GENTOO_EMERGE_ENV+=("PORTDIR=\"/tmp/portage-portdir\"")
|
|
export GENTOO_EMERGE_ENV
|
|
fi
|
|
# itterate over the array, exporting each 'line'
|
|
for (( i=0; i<${#GENTOO_EMERGE_ENV[@]}; i++ )); do
|
|
eval export "${GENTOO_EMERGE_ENV[i]}"
|
|
done
|
|
|
|
if [[ "${GENTOO_PROFILE}" == *"systemd"* ]]; then
|
|
export DIB_INIT_SYSTEM=${DIB_INIT_SYSTEM:-'systemd'}
|
|
else
|
|
export DIB_INIT_SYSTEM=${DIB_INIT_SYSTEM:-'openrc'}
|
|
fi
|