From f6f621b9a170bc177222fb46f428c467762a4383 Mon Sep 17 00:00:00 2001 From: Ricardo Pardini Date: Thu, 6 Apr 2023 19:32:31 +0200 Subject: [PATCH] extensions: don't `export`, `declare -g` --- extensions/c-plus-plus-compiler.sh | 2 +- extensions/cleanup-space-final-image.sh | 2 +- extensions/flash-kernel.sh | 30 ++++++------- extensions/gen-sample-extension-docs.sh | 18 ++++---- extensions/grub-riscv64.sh | 28 ++++++------ extensions/grub-sbc-media.sh | 36 +++++++-------- extensions/grub.sh | 58 ++++++++++++------------- extensions/image-output-ovf.sh | 10 ++--- extensions/image-output-qcow2.sh | 4 +- extensions/image-output-utm.sh | 10 ++--- extensions/nvidia.sh | 2 +- extensions/zfs.sh | 2 +- 12 files changed, 101 insertions(+), 101 deletions(-) diff --git a/extensions/c-plus-plus-compiler.sh b/extensions/c-plus-plus-compiler.sh index bebe85e99ce9..835549e6878f 100644 --- a/extensions/c-plus-plus-compiler.sh +++ b/extensions/c-plus-plus-compiler.sh @@ -3,5 +3,5 @@ function add_host_dependencies__add_arm64_c_plus_plus_compiler() { display_alert "Adding arm64 c++ compiler to host dependencies" "g++" "debug" - export EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} g++-aarch64-linux-gnu g++" # @TODO: convert to array later + declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} g++-aarch64-linux-gnu g++" # @TODO: convert to array later } diff --git a/extensions/cleanup-space-final-image.sh b/extensions/cleanup-space-final-image.sh index a85e2e6a565b..c6e288274a15 100644 --- a/extensions/cleanup-space-final-image.sh +++ b/extensions/cleanup-space-final-image.sh @@ -1,5 +1,5 @@ function add_host_dependencies__cleanup_space_final_image_zerofree() { - export EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} zerofree" + declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} zerofree" } function post_customize_image__998_cleanup_apt_stuff() { diff --git a/extensions/flash-kernel.sh b/extensions/flash-kernel.sh index 583a76719cf8..594499c8a213 100644 --- a/extensions/flash-kernel.sh +++ b/extensions/flash-kernel.sh @@ -2,25 +2,25 @@ # This runs *after* user_config. Don't change anything not coming from other variables or meant to be configured by the user. function extension_prepare_config__prepare_flash_kernel() { # Configuration defaults, or lack thereof. - export FK__TOOL_PACKAGE="${FK__TOOL_PACKAGE:-flash-kernel}" - export FK__PUBLISHED_KERNEL_VERSION="${FK__PUBLISHED_KERNEL_VERSION:-undefined-flash-kernel-version}" - export FK__EXTRA_PACKAGES="${FK__EXTRA_PACKAGES:-undefined-flash-kernel-kernel-package}" - export FK__KERNEL_PACKAGES="${FK__KERNEL_PACKAGES:-}" - export FK__MACHINE_MODEL="${FK__MACHINE_MODEL:-Undefined Flash-Kernel Machine}" + declare -g FK__TOOL_PACKAGE="${FK__TOOL_PACKAGE:-flash-kernel}" + declare -g FK__PUBLISHED_KERNEL_VERSION="${FK__PUBLISHED_KERNEL_VERSION:-undefined-flash-kernel-version}" + declare -g FK__EXTRA_PACKAGES="${FK__EXTRA_PACKAGES:-undefined-flash-kernel-kernel-package}" + declare -g FK__KERNEL_PACKAGES="${FK__KERNEL_PACKAGES:-}" + declare -g FK__MACHINE_MODEL="${FK__MACHINE_MODEL:-Undefined Flash-Kernel Machine}" # Override certain variables. A case of "this extension knows better and modifies user configurable stuff". - export BOOTCONFIG="none" # To try and convince lib/ to not build or install u-boot. - unset BOOTSOURCE # To try and convince lib/ to not build or install u-boot. - export UEFISIZE=256 # in MiB. Not really UEFI, but partition layout is the same. - export BOOTSIZE=0 # No separate /boot, flash-kernel will "flash" the kernel+initrd to the firmware part. - export UEFI_MOUNT_POINT="/boot/firmware" # mount uefi partition at /boot/firmware - export CLOUD_INIT_CONFIG_LOCATION="/boot/firmware" # use /boot/firmware for cloud-init as well - export IMAGE_INSTALLED_KERNEL_VERSION="${FK__PUBLISHED_KERNEL_VERSION}" # For the VERSION - export EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-fk${FK__PUBLISHED_KERNEL_VERSION}" # Unique bsp name. + declare -g BOOTCONFIG="none" # To try and convince lib/ to not build or install u-boot. + unset BOOTSOURCE # To try and convince lib/ to not build or install u-boot. + declare -g UEFISIZE=256 # in MiB. Not really UEFI, but partition layout is the same. + declare -g BOOTSIZE=0 # No separate /boot, flash-kernel will "flash" the kernel+initrd to the firmware part. + declare -g UEFI_MOUNT_POINT="/boot/firmware" # mount uefi partition at /boot/firmware + declare -g CLOUD_INIT_CONFIG_LOCATION="/boot/firmware" # use /boot/firmware for cloud-init as well + declare -g IMAGE_INSTALLED_KERNEL_VERSION="${FK__PUBLISHED_KERNEL_VERSION}" # For the VERSION + declare -g EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-fk${FK__PUBLISHED_KERNEL_VERSION}" # Unique bsp name. } function post_install_kernel_debs__install_kernel_and_flash_packages() { - export INSTALL_ARMBIAN_FIRMWARE="no" # Disable Armbian-firmware install, which would happen after this method. + declare -g INSTALL_ARMBIAN_FIRMWARE="no" # Disable Armbian-firmware install, which would happen after this method. if [[ "${FK__EXTRA_PACKAGES}" != "" ]]; then display_alert "Installing flash-kernel extra packages" "${FK__EXTRA_PACKAGES}" @@ -80,7 +80,7 @@ function pre_update_initramfs__setup_flash_kernel() { chroot_custom "$chroot_target" chmod -v -x "/etc/kernel/postinst.d/initramfs-tools" chroot_custom "$chroot_target" chmod -v -x "/etc/initramfs/post-update.d/flash-kernel" - export FIRMWARE_DIR="${MOUNT}"/boot/firmware + declare -g FIRMWARE_DIR="${MOUNT}"/boot/firmware call_extension_method "pre_initramfs_flash_kernel" <<- 'PRE_INITRAMFS_FLASH_KERNEL' *prepare to update-initramfs before flashing kernel via flash_kernel* A good spot to write firmware config to ${FIRMWARE_DIR} (/boot/firmware) before flash-kernel actually runs. diff --git a/extensions/gen-sample-extension-docs.sh b/extensions/gen-sample-extension-docs.sh index cea24205de10..826684bf7171 100644 --- a/extensions/gen-sample-extension-docs.sh +++ b/extensions/gen-sample-extension-docs.sh @@ -17,23 +17,23 @@ function extension_metadata_ready__docs_sample_extension() { ### Common stuff function read_common_data() { - export HOOK_POINT_CALLS_COUNT=$(wc -l < "${EXTENSION_MANAGER_TMP_DIR}/hook_point_calls.txt") - export HOOK_POINT_CALLS_UNIQUE_COUNT=$(sort < "${EXTENSION_MANAGER_TMP_DIR}/hook_point_calls.txt" | uniq | wc -l) - export HOOK_POINTS_WITH_MULTIPLE_CALLS="" + declare -g HOOK_POINT_CALLS_COUNT=$(wc -l < "${EXTENSION_MANAGER_TMP_DIR}/hook_point_calls.txt") + declare -g HOOK_POINT_CALLS_UNIQUE_COUNT=$(sort < "${EXTENSION_MANAGER_TMP_DIR}/hook_point_calls.txt" | uniq | wc -l) + declare -g HOOK_POINTS_WITH_MULTIPLE_CALLS="" # Read the hook_points (main, official names) from the hook point ordering file. - export ALL_HOOK_POINT_CALLS=$(xargs echo -n < "${EXTENSION_MANAGER_TMP_DIR}/hook_point_calls.txt") + declare -g ALL_HOOK_POINT_CALLS=$(xargs echo -n < "${EXTENSION_MANAGER_TMP_DIR}/hook_point_calls.txt") } function loop_over_hook_points_and_call() { local callback="$1" HOOK_POINT_COUNTER=0 for one_hook_point in ${ALL_HOOK_POINT_CALLS}; do - export HOOK_POINT_COUNTER=$((HOOK_POINT_COUNTER + 1)) - export HOOK_POINT="${one_hook_point}" - export MARKDOWN_HEAD="$(head -1 "${EXTENSION_MANAGER_TMP_DIR}/${one_hook_point}.orig.md")" - export MARKDOWN_BODY="$(tail -n +2 "${EXTENSION_MANAGER_TMP_DIR}/${one_hook_point}.orig.md")" - export COMPATIBILITY_NAMES="$(xargs echo -n < "${EXTENSION_MANAGER_TMP_DIR}/${one_hook_point}.compat")" + declare -g HOOK_POINT_COUNTER=$((HOOK_POINT_COUNTER + 1)) + declare -g HOOK_POINT="${one_hook_point}" + declare -g MARKDOWN_HEAD="$(head -1 "${EXTENSION_MANAGER_TMP_DIR}/${one_hook_point}.orig.md")" + declare -g MARKDOWN_BODY="$(tail -n +2 "${EXTENSION_MANAGER_TMP_DIR}/${one_hook_point}.orig.md")" + declare -g COMPATIBILITY_NAMES="$(xargs echo -n < "${EXTENSION_MANAGER_TMP_DIR}/${one_hook_point}.compat")" ${callback} done } diff --git a/extensions/grub-riscv64.sh b/extensions/grub-riscv64.sh index a15e8d33a8d3..6fd505be0427 100644 --- a/extensions/grub-riscv64.sh +++ b/extensions/grub-riscv64.sh @@ -3,21 +3,21 @@ function extension_prepare_config__prepare_grub-riscv64() { display_alert "Prepare config" "${EXTENSION}" "info" # Extension configuration defaults. - export DISTRO_GENERIC_KERNEL=${DISTRO_GENERIC_KERNEL:-no} # if yes, does not build our own kernel, instead, uses generic one from distro - export UEFI_GRUB_TERMINAL="${UEFI_GRUB_TERMINAL:-serial console}" # 'serial' forces grub menu on serial console. empty to not include - export UEFI_GRUB_DISABLE_OS_PROBER="${UEFI_GRUB_DISABLE_OS_PROBER:-}" # 'true' will disable os-probing, useful for SD cards. - export UEFI_GRUB_DISTRO_NAME="${UEFI_GRUB_DISTRO_NAME:-Armbian}" # Will be used on grub menu display - export UEFI_GRUB_TIMEOUT=${UEFI_GRUB_TIMEOUT:-0} # Small timeout by default - export GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:-""}" # Cmdline by default + declare -g DISTRO_GENERIC_KERNEL=${DISTRO_GENERIC_KERNEL:-no} # if yes, does not build our own kernel, instead, uses generic one from distro + declare -g UEFI_GRUB_TERMINAL="${UEFI_GRUB_TERMINAL:-serial console}" # 'serial' forces grub menu on serial console. empty to not include + declare -g UEFI_GRUB_DISABLE_OS_PROBER="${UEFI_GRUB_DISABLE_OS_PROBER:-}" # 'true' will disable os-probing, useful for SD cards. + declare -g UEFI_GRUB_DISTRO_NAME="${UEFI_GRUB_DISTRO_NAME:-Armbian}" # Will be used on grub menu display + declare -g UEFI_GRUB_TIMEOUT=${UEFI_GRUB_TIMEOUT:-0} # Small timeout by default + declare -g GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:-""}" # Cmdline by default # User config overrides. - export BOOTCONFIG="none" # To try and convince lib/ to not build or install u-boot. - unset BOOTSOURCE # To try and convince lib/ to not build or install u-boot. - export IMAGE_PARTITION_TABLE="gpt" # GPT partition table is essential for many UEFI-like implementations, eg Apple+Intel stuff. - export UEFISIZE=256 # in MiB - grub EFI is tiny - but some EFI BIOSes ignore small too small EFI partitions - export BOOTSIZE=0 # No separate /boot when using UEFI. - export CLOUD_INIT_CONFIG_LOCATION="${CLOUD_INIT_CONFIG_LOCATION:-/boot/efi}" # use /boot/efi for cloud-init as default when using Grub. - export EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-grub" # Unique bsp name. - export UEFI_GRUB_TARGET="riscv64-efi" # Default for x86_64 + declare -g BOOTCONFIG="none" # To try and convince lib/ to not build or install u-boot. + unset BOOTSOURCE # To try and convince lib/ to not build or install u-boot. + declare -g IMAGE_PARTITION_TABLE="gpt" # GPT partition table is essential for many UEFI-like implementations, eg Apple+Intel stuff. + declare -g UEFISIZE=256 # in MiB - grub EFI is tiny - but some EFI BIOSes ignore small too small EFI partitions + declare -g BOOTSIZE=0 # No separate /boot when using UEFI. + declare -g CLOUD_INIT_CONFIG_LOCATION="${CLOUD_INIT_CONFIG_LOCATION:-/boot/efi}" # use /boot/efi for cloud-init as default when using Grub. + declare -g EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-grub" # Unique bsp name. + declare -g UEFI_GRUB_TARGET="riscv64-efi" # Default for x86_64 if [[ "${DISTRIBUTION}" != "Ubuntu" && "${BUILDING_IMAGE}" == "yes" ]]; then exit_with_error "${DISTRIBUTION} is not supported yet" diff --git a/extensions/grub-sbc-media.sh b/extensions/grub-sbc-media.sh index d1179bbc50a5..7a93cbcda897 100644 --- a/extensions/grub-sbc-media.sh +++ b/extensions/grub-sbc-media.sh @@ -3,25 +3,25 @@ function extension_prepare_config__prepare_grub-sbc-media() { display_alert "Prepare config" "${EXTENSION}" "info" # Extension configuration defaults. - export DISTRO_GENERIC_KERNEL=${DISTRO_GENERIC_KERNEL:-no} # if yes, does not build our own kernel, instead, uses generic one from distro - export UEFI_GRUB_DISABLE_OS_PROBER="${UEFI_GRUB_DISABLE_OS_PROBER:-}" # 'true' will disable os-probing, useful for SD cards. - export UEFI_GRUB_DISTRO_NAME="${UEFI_GRUB_DISTRO_NAME:-Armbian}" # Will be used on grub menu display - export UEFI_GRUB_TIMEOUT=${UEFI_GRUB_TIMEOUT:-3} # Small timeout by default - export UEFI_GRUB_RECORDFAIL_TIMEOUT=${UEFI_GRUB_RECORDFAIL_TIMEOUT:-3} - export GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:-}" # Cmdline by default - export UEFI_ENABLE_BIOS_AMD64="${UEFI_ENABLE_BIOS_AMD64:-no}" # Enable BIOS too if target is amd64 + declare -g DISTRO_GENERIC_KERNEL=${DISTRO_GENERIC_KERNEL:-no} # if yes, does not build our own kernel, instead, uses generic one from distro + declare -g UEFI_GRUB_DISABLE_OS_PROBER="${UEFI_GRUB_DISABLE_OS_PROBER:-}" # 'true' will disable os-probing, useful for SD cards. + declare -g UEFI_GRUB_DISTRO_NAME="${UEFI_GRUB_DISTRO_NAME:-Armbian}" # Will be used on grub menu display + declare -g UEFI_GRUB_TIMEOUT=${UEFI_GRUB_TIMEOUT:-3} # Small timeout by default + declare -g UEFI_GRUB_RECORDFAIL_TIMEOUT=${UEFI_GRUB_RECORDFAIL_TIMEOUT:-3} + declare -g GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:-}" # Cmdline by default + declare -g UEFI_ENABLE_BIOS_AMD64="${UEFI_ENABLE_BIOS_AMD64:-no}" # Enable BIOS too if target is amd64 # User config overrides. - export IMAGE_PARTITION_TABLE="gpt" # GPT partition table is essential for many UEFI-like implementations, eg Apple+Intel stuff. - export UEFISIZE=256 # in MiB - grub EFI is tiny - but some EFI BIOSes ignore small too small EFI partitions - export BOOTSIZE=0 # No separate /boot when using UEFI. - export CLOUD_INIT_CONFIG_LOCATION="${CLOUD_INIT_CONFIG_LOCATION:-/boot/efi}" # use /boot/efi for cloud-init as default when using Grub. - export EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-grub" # Unique bsp name. - export UEFI_GRUB_TARGET_BIOS="" # Target for BIOS GRUB install, set to i386-pc when UEFI_ENABLE_BIOS_AMD64=yes and target is amd64 - local uefi_packages="efibootmgr efivar" # Use growroot, add some efi-related packages - uefi_packages="os-prober grub-efi-${ARCH}-bin ${uefi_packages}" # This works for Ubuntu and Debian, by sheer luck; common for EFI and BIOS - - [[ "${ARCH}" == "arm64" ]] && export uefi_packages="${uefi_packages} grub-efi-${ARCH}" - [[ "${ARCH}" == "arm64" ]] && export UEFI_GRUB_TARGET="arm64-efi" # Default for arm64-efi + declare -g IMAGE_PARTITION_TABLE="gpt" # GPT partition table is essential for many UEFI-like implementations, eg Apple+Intel stuff. + declare -g UEFISIZE=256 # in MiB - grub EFI is tiny - but some EFI BIOSes ignore small too small EFI partitions + declare -g BOOTSIZE=0 # No separate /boot when using UEFI. + declare -g CLOUD_INIT_CONFIG_LOCATION="${CLOUD_INIT_CONFIG_LOCATION:-/boot/efi}" # use /boot/efi for cloud-init as default when using Grub. + declare -g EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-grub" # Unique bsp name. + declare -g UEFI_GRUB_TARGET_BIOS="" # Target for BIOS GRUB install, set to i386-pc when UEFI_ENABLE_BIOS_AMD64=yes and target is amd64 + local uefi_packages="efibootmgr efivar" # Use growroot, add some efi-related packages + uefi_packages="os-prober grub-efi-${ARCH}-bin ${uefi_packages}" # This works for Ubuntu and Debian, by sheer luck; common for EFI and BIOS + + [[ "${ARCH}" == "arm64" ]] && declare -g uefi_packages="${uefi_packages} grub-efi-${ARCH}" + [[ "${ARCH}" == "arm64" ]] && declare -g UEFI_GRUB_TARGET="arm64-efi" # Default for arm64-efi DISTRO_KERNEL_PACKAGES="" DISTRO_FIRMWARE_PACKAGES="" diff --git a/extensions/grub.sh b/extensions/grub.sh index 2d955f12026b..0bda2fcfa6cd 100644 --- a/extensions/grub.sh +++ b/extensions/grub.sh @@ -2,44 +2,44 @@ # This runs *after* user_config. Don't change anything not coming from other variables or meant to be configured by the u ser. function extension_prepare_config__prepare_grub_standard() { # Extension configuration defaults. - export DISTRO_GENERIC_KERNEL=${DISTRO_GENERIC_KERNEL:-no} # if yes, does not build our own kernel, instead, uses generic one from distro - export UEFI_GRUB_TERMINAL="${UEFI_GRUB_TERMINAL:-serial console}" # 'serial' forces grub menu on serial console. empty to not include - export UEFI_GRUB_DISABLE_OS_PROBER="${UEFI_GRUB_DISABLE_OS_PROBER:-}" # 'true' will disable os-probing, useful for SD cards. - export UEFI_GRUB_DISTRO_NAME="${UEFI_GRUB_DISTRO_NAME:-Armbian}" # Will be used on grub menu display - export UEFI_GRUB_TIMEOUT=${UEFI_GRUB_TIMEOUT:-0} # Small timeout by default - export GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:-}" # Cmdline by default - export UEFI_ENABLE_BIOS_AMD64="${UEFI_ENABLE_BIOS_AMD64:-yes}" # Enable BIOS too if target is amd64 - export UEFI_EXPORT_KERNEL_INITRD="${UEFI_EXPORT_KERNEL_INITRD:-no}" # Export kernel and initrd for direct kernel boot "kexec" + declare -g DISTRO_GENERIC_KERNEL=${DISTRO_GENERIC_KERNEL:-no} # if yes, does not build our own kernel, instead, uses generic one from distro + declare -g UEFI_GRUB_TERMINAL="${UEFI_GRUB_TERMINAL:-serial console}" # 'serial' forces grub menu on serial console. empty to not include + declare -g UEFI_GRUB_DISABLE_OS_PROBER="${UEFI_GRUB_DISABLE_OS_PROBER:-}" # 'true' will disable os-probing, useful for SD cards. + declare -g UEFI_GRUB_DISTRO_NAME="${UEFI_GRUB_DISTRO_NAME:-Armbian}" # Will be used on grub menu display + declare -g UEFI_GRUB_TIMEOUT=${UEFI_GRUB_TIMEOUT:-0} # Small timeout by default + declare -g GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT:-}" # Cmdline by default + declare -g UEFI_ENABLE_BIOS_AMD64="${UEFI_ENABLE_BIOS_AMD64:-yes}" # Enable BIOS too if target is amd64 + declare -g UEFI_EXPORT_KERNEL_INITRD="${UEFI_EXPORT_KERNEL_INITRD:-no}" # export kernel and initrd for direct kernel boot "kexec" if [[ "${UEFI_GRUB}" != "skip" ]]; then # User config overrides for GRUB. - export BOOTCONFIG="none" # To try and convince lib/ to not build or install u-boot. - unset BOOTSOURCE # To try and convince lib/ to not build or install u-boot. - export IMAGE_PARTITION_TABLE="gpt" # GPT partition table is essential for many UEFI-like implementations, eg Apple+Intel stuff. - export UEFISIZE=256 # in MiB - grub EFI is tiny - but some EFI BIOSes ignore small too small EFI partitions - export BOOTSIZE=0 # No separate /boot when using UEFI. - export CLOUD_INIT_CONFIG_LOCATION="${CLOUD_INIT_CONFIG_LOCATION:-/boot/efi}" # use /boot/efi for cloud-init as default when using Grub. - export EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-grub" # Unique bsp name. - export UEFI_GRUB_TARGET_BIOS="" # Target for BIOS GRUB install, set to i386-pc when UEFI_ENABLE_BIOS_AMD64=yes and target is amd64 - local uefi_packages="" # Use growroot, add some efi-related packages + declare -g BOOTCONFIG="none" # To try and convince lib/ to not build or install u-boot. + unset BOOTSOURCE # To try and convince lib/ to not build or install u-boot. + declare -g IMAGE_PARTITION_TABLE="gpt" # GPT partition table is essential for many UEFI-like implementations, eg Apple+Intel stuff. + declare -g UEFISIZE=256 # in MiB - grub EFI is tiny - but some EFI BIOSes ignore small too small EFI partitions + declare -g BOOTSIZE=0 # No separate /boot when using UEFI. + declare -g CLOUD_INIT_CONFIG_LOCATION="${CLOUD_INIT_CONFIG_LOCATION:-/boot/efi}" # use /boot/efi for cloud-init as default when using Grub. + declare -g EXTRA_BSP_NAME="${EXTRA_BSP_NAME}-grub" # Unique bsp name. + declare -g UEFI_GRUB_TARGET_BIOS="" # Target for BIOS GRUB install, set to i386-pc when UEFI_ENABLE_BIOS_AMD64=yes and target is amd64 + local uefi_packages="" # Use growroot, add some efi-related packages uefi_packages="efibootmgr efivar cloud-initramfs-growroot" # Use growroot, add some efi-related packages uefi_packages="os-prober grub-efi-${ARCH}-bin ${uefi_packages}" # This works for Ubuntu and Debian, by sheer luck; common for EFI and BIOS # BIOS-compatibility for amd64 if [[ "${ARCH}" == "amd64" ]]; then - export UEFI_GRUB_TARGET="x86_64-efi" # Default for x86_64 + declare -g UEFI_GRUB_TARGET="x86_64-efi" # Default for x86_64 if [[ "${UEFI_ENABLE_BIOS_AMD64}" == "yes" ]]; then - export uefi_packages="${uefi_packages} grub-pc-bin grub-pc" - export UEFI_GRUB_TARGET_BIOS="i386-pc" - export BIOSSIZE=4 # 4 MiB BIOS partition + declare -g uefi_packages="${uefi_packages} grub-pc-bin grub-pc" + declare -g UEFI_GRUB_TARGET_BIOS="i386-pc" + declare -g BIOSSIZE=4 # 4 MiB BIOS partition else - export uefi_packages="${uefi_packages} grub-efi-${ARCH}" + declare -g uefi_packages="${uefi_packages} grub-efi-${ARCH}" fi fi - [[ "${ARCH}" == "arm64" ]] && export uefi_packages="${uefi_packages} grub-efi-${ARCH}" - [[ "${ARCH}" == "arm64" ]] && export UEFI_GRUB_TARGET="arm64-efi" # Default for arm64-efi + [[ "${ARCH}" == "arm64" ]] && declare -g uefi_packages="${uefi_packages} grub-efi-${ARCH}" + [[ "${ARCH}" == "arm64" ]] && declare -g UEFI_GRUB_TARGET="arm64-efi" # Default for arm64-efi fi if [[ "${DISTRIBUTION}" == "Ubuntu" ]]; then @@ -53,16 +53,16 @@ function extension_prepare_config__prepare_grub_standard() { # Debian's prebuilt kernels dont support hvc0, hack. if [[ "${SERIALCON}" == "hvc0" ]]; then display_alert "Debian's kernels don't support hvc0, changing to ttyS0" "${DISTRIBUTION}" "wrn" - export SERIALCON="ttyS0" + declare -g SERIALCON="ttyS0" fi fi if [[ "${DISTRO_GENERIC_KERNEL}" == "yes" ]]; then - export IMAGE_INSTALLED_KERNEL_VERSION="${DISTRO_KERNEL_VER}" - unset KERNELSOURCE # This should make Armbian skip most stuff. At least, I hacked it to. - export INSTALL_ARMBIAN_FIRMWARE=no # Should skip build and install of Armbian-firmware. + declare -g IMAGE_INSTALLED_KERNEL_VERSION="${DISTRO_KERNEL_VER}" + unset KERNELSOURCE # This should make Armbian skip most stuff. At least, I hacked it to. + declare -g INSTALL_ARMBIAN_FIRMWARE=no # Should skip build and install of Armbian-firmware. else - export KERNELDIR="linux-uefi-${LINUXFAMILY}" # Avoid sharing a source tree with others, until we know it's safe. + declare -g KERNELDIR="linux-uefi-${LINUXFAMILY}" # Avoid sharing a source tree with others, until we know it's safe. # Don't install anything. Armbian handles everything. DISTRO_KERNEL_PACKAGES="" DISTRO_FIRMWARE_PACKAGES="" diff --git a/extensions/image-output-ovf.sh b/extensions/image-output-ovf.sh index 8fbaeefe34da..eea4305802a4 100644 --- a/extensions/image-output-ovf.sh +++ b/extensions/image-output-ovf.sh @@ -2,15 +2,15 @@ enable_extension "image-output-qcow2" #### *run before installing host dependencies* function add_host_dependencies__ovf_host_deps() { - export EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} qemu-utils" + declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} qemu-utils" } #### *allow extensions to prepare their own config, after user config is done* function extension_prepare_config__prepare_ovf_config() { - export OVF_VM_CPUS="${OVF_VM_CPUS:-4}" # Number of CPUs - export OVF_VM_RAM_GB="${OVF_VM_RAM_GB:-4}" # RAM in Gigabytes - export OVF_KEEP_QCOW2="${OVF_KEEP_QCOW2:-no}" # keep the qcow2 image after conversion to OVF - export OVF_KEEP_IMG="${OVF_KEEP_IMG:-no}" # keep the .img image after conversion to OVF + declare -g OVF_VM_CPUS="${OVF_VM_CPUS:-4}" # Number of CPUs + declare -g OVF_VM_RAM_GB="${OVF_VM_RAM_GB:-4}" # RAM in Gigabytes + declare -g OVF_KEEP_QCOW2="${OVF_KEEP_QCOW2:-no}" # keep the qcow2 image after conversion to OVF + declare -g OVF_KEEP_IMG="${OVF_KEEP_IMG:-no}" # keep the .img image after conversion to OVF } #### *custom post build hook* diff --git a/extensions/image-output-qcow2.sh b/extensions/image-output-qcow2.sh index 60fd5b61b118..d4f33ea39ee9 100644 --- a/extensions/image-output-qcow2.sh +++ b/extensions/image-output-qcow2.sh @@ -1,13 +1,13 @@ function add_host_dependencies__qcow2_host_deps() { [[ "${SKIP_QCOW2}" == "yes" ]] && return 0 - export EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} qemu-utils" + declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} qemu-utils" } function post_build_image__900_convert_to_qcow2_img() { [[ "${SKIP_QCOW2}" == "yes" ]] && return 0 [[ -z $version ]] && exit_with_error "version is not set" display_alert "Converting image to qcow2" "${EXTENSION}" "info" - export QCOW2_IMAGE_FILE="${DESTIMG}/${version}.img.qcow2" + declare -g QCOW2_IMAGE_FILE="${DESTIMG}/${version}.img.qcow2" run_host_command_logged qemu-img convert -f raw -O qcow2 "${DESTIMG}/${version}.img" "${QCOW2_IMAGE_FILE}" run_host_command_logged qemu-img info "${QCOW2_IMAGE_FILE}" if [[ "${QCOW2_RESIZE_AMOUNT}" != "" ]]; then diff --git a/extensions/image-output-utm.sh b/extensions/image-output-utm.sh index efa7b239d463..f800fb160e94 100644 --- a/extensions/image-output-utm.sh +++ b/extensions/image-output-utm.sh @@ -2,15 +2,15 @@ enable_extension "image-output-qcow2" #### *allow extensions to prepare their own config, after user config is done* function extension_prepare_config__prepare_utm_config() { - export UTM_VM_CPUS="${UTM_VM_CPUS:-4}" # Number of CPUs - export UTM_VM_RAM_GB="${UTM_VM_RAM_GB:-16}" # RAM in Gigabytes - export UTM_KEEP_QCOW2="${UTM_KEEP_QCOW2:-no}" # keep the qcow2 image after conversion to UTM - export UTM_KEEP_IMG="${UTM_KEEP_IMG:-no}" # keep the .img image after conversion to UTM + declare -g UTM_VM_CPUS="${UTM_VM_CPUS:-4}" # Number of CPUs + declare -g UTM_VM_RAM_GB="${UTM_VM_RAM_GB:-16}" # RAM in Gigabytes + declare -g UTM_KEEP_QCOW2="${UTM_KEEP_QCOW2:-no}" # keep the qcow2 image after conversion to UTM + declare -g UTM_KEEP_IMG="${UTM_KEEP_IMG:-no}" # keep the .img image after conversion to UTM } function user_config__metadata_cloud_config() { display_alert "Preparing UTM config" "${EXTENSION}" "info" - export SERIALCON="ttyS0" # UTM's serial at ttyS0, for x86 @TODO: arm64? ttyAML0? + declare -g SERIALCON="ttyS0" # UTM's serial at ttyS0, for x86 @TODO: arm64? ttyAML0? display_alert "Prepared UTM config" "${EXTENSION}: SERIALCON: '${SERIALCON}'" "debug" } diff --git a/extensions/nvidia.sh b/extensions/nvidia.sh index fe9cdf089518..4c70a92865f8 100644 --- a/extensions/nvidia.sh +++ b/extensions/nvidia.sh @@ -4,7 +4,7 @@ function extension_finish_config__build_nvidia_kernel_module() { display_alert "Kernel version has no working headers package" "skipping nVidia for kernel v${KERNEL_MAJOR_MINOR}" "warn" return 0 fi - export INSTALL_HEADERS="yes" + declare -g INSTALL_HEADERS="yes" declare -g NVIDIA_DRIVER_VERSION="${NVIDIA_DRIVER_VERSION:-"510"}" # @TODO: this might vary per-release and Debian/Ubuntu display_alert "Forcing INSTALL_HEADERS=yes; using nVidia driver version ${NVIDIA_DRIVER_VERSION}" "${EXTENSION}" "debug" } diff --git a/extensions/zfs.sh b/extensions/zfs.sh index cd110fbdcbcb..2a469f9c381b 100644 --- a/extensions/zfs.sh +++ b/extensions/zfs.sh @@ -3,7 +3,7 @@ function extension_finish_config__build_zfs_kernel_module() { display_alert "Kernel version has no working headers package" "skipping ZFS for kernel v${KERNEL_MAJOR_MINOR}" "warn" return 0 fi - export INSTALL_HEADERS="yes" + declare -g INSTALL_HEADERS="yes" display_alert "Forcing INSTALL_HEADERS=yes; for use with ZFS" "${EXTENSION}" "debug" }