Files
IronFox/scripts/env_external.sh
celenity e57b08039a fix: scripts (for now)
Signed-off-by: celenity <celenity@celenity.dev>
2026-04-02 21:31:13 +00:00

300 lines
8.5 KiB
Bash

# IronFox external environment variables
## This is used for converting IronFox-specific environment variables to ones used in external projects.
## CAUTION: Do NOT source this directly!
## Source 'env.sh' instead.
## CAUTION: Do NOT try to configure any of these environment variables directly!
## Use the IronFox equivalent variables (at `env_common.sh`) instead.
# Compiler flags
export TARGET_CFLAGS="${IRONFOX_COMPILER_FLAGS}"
export TARGET_CXXFLAGS="${IRONFOX_COMPILER_FLAGS}"
# Gradle flags
export GRADLE_FLAGS="${IRONFOX_GRADLE_FLAGS}"
# Rust flags
export CARGO_BUILD_RUSTDOCFLAGS="${IRONFOX_RUST_FLAGS}"
export RUSTDOCFLAGS="${IRONFOX_RUST_FLAGS}"
# Android SDK
## https://developer.android.com/tools/variables
export ANDROID_HOME="${IRONFOX_ANDROID_SDK}"
export ANDROID_SDK_ROOT="${IRONFOX_ANDROID_SDK}"
## Android SDK preferences
export ANDROID_USER_HOME="${IRONFOX_BUILD}/.android"
# Android NDK
export ANDROID_NDK_HOME="${IRONFOX_ANDROID_NDK}"
export ANDROID_NDK_ROOT="${IRONFOX_ANDROID_NDK}"
# Gradle cache
export CACHEDIR="${IRONFOX_GRADLE_CACHE}"
# Gradle home
export GRADLE_USER_HOME="${IRONFOX_GRADLE_HOME}"
# Java home
export JAVA_HOME="${IRONFOX_JAVA_HOME}"
# llvm-profdata
export LLVM_PROFDATA="${IRONFOX_LLVM_PROFDATA}"
# Mach
## https://firefox-source-docs.mozilla.org/mach/usage.html#user-settings
## https://searchfox.org/mozilla-central/rev/f008b9aa/python/mach/mach/telemetry.py#95
## https://searchfox.org/mozilla-central/rev/f008b9aa/python/mach/mach/telemetry.py#284
export DISABLE_TELEMETRY=1
export MACHRC="${IRONFOX_CONFIGS}/mach/machrc"
export MOZCONFIG="${IRONFOX_MOZCONFIGS}/ironfox.mozconfig"
# microG
export GRADLE_MICROG_VERSION_WITHOUT_GIT=1
# mozbuild
export MOZBUILD_STATE_PATH="${IRONFOX_MOZBUILD}"
# No-op Taskcluster
## This should help ensure we don't fetch Mozilla artifacts/prebuilds
export TASKCLUSTER_PROXY_URL='https://noop.invalid'
export TASKCLUSTER_ROOT_URL='https://noop.invalid'
# Node.js
## https://nodejs.org/api/cli.html#environment-variables-1
## Disable compile cache
### https://nodejs.org/api/cli.html#node-disable-compile-cache1
export NODE_DISABLE_COMPILE_CACHE=1
## Disable the system CA root store
### https://nodejs.org/api/cli.html#node-use-system-ca1
export NODE_USE_SYSTEM_CA=0
## Do not attempt to use a system proxy
### https://nodejs.org/api/cli.html#node-use-env-proxy1
export NODE_USE_ENV_PROXY=0
## Enforce certificate validation
### https://nodejs.org/api/cli.html#node-tls-reject-unauthorizedvalue
export NODE_TLS_REJECT_UNAUTHORIZED=1
## Ensure npm always installs production/release modules
export NODE_ENV='production'
## Node options
export NODE_OPTIONS="${IRONFOX_NODE_OPTIONS}"
export npm_config_node_options="${IRONFOX_NODE_OPTIONS}"
# npm
## Always use our npm config file
## https://docs.npmjs.com/cli/v11/using-npm/config#npmrc-files
export NPM_CONFIG_GLOBALCONFIG="${IRONFOX_CONFIGS}/npm/.npmrc"
export npm_config_globalconfig="${IRONFOX_CONFIGS}/npm/.npmrc"
### Always install dependencies properly
export npm_config_install_links='true'
### Disable "funding" nags
export npm_config_fund='false'
### Disable submission of audit reports
export npm_config_audit='false'
### Enable verbose logging
export npm_config_loglevel='verbose'
### Enforce SSL key validation
export npm_config_strict_ssl='true'
### Write exact versions to package.json/package_lock.json
export npm_config_save_exact='true'
### Set cache directory
export npm_config_cache="${IRONFOX_NPM_CACHE}"
# NSS
export NSS_DIR="${IRONFOX_NSS_DIR}"
export NSS_STATIC=1
# nvm
export NVM_DIR="${IRONFOX_NVM}"
## This is necessary to prevent nvm from automatically trying to modify the system PATH
export PROFILE='/dev/null'
# Phoenix
export PHOENIX_ANDROID_ONLY=1
export PHOENIX_AWK="${IRONFOX_AWK}"
export PHOENIX_CURL_FLAGS="${IRONFOX_CURL_FLAGS}"
export PHOENIX_CURL_FLAGS_OVERRIDE=1
export PHOENIX_EXTENDED_ONLY=1
export PHOENIX_EXTRA_CFG=1
export PHOENIX_EXTRA_CFG_FILE="${IRONFOX_BUILD}/tmp/gecko/ironfox-parsed.cfg"
export PHOENIX_EXTRA_CFG_OUTPUT_DIR="${IRONFOX_GECKO}/ironfox/prefs"
export PHOENIX_EXTRA_EXTENDED_OUTPUT_FILENAME_ANDROID='ironfox'
export PHOENIX_EXTRA_POLICIES_ANDROID=1
export PHOENIX_EXTRA_POLICIES_FILE_ANDROID="${IRONFOX_PATCHES}/build/gecko/policies.json"
export PHOENIX_EXTRA_POLICIES_OUTPUT_DIR_ANDROID="${IRONFOX_GECKO}/ironfox/prefs"
export PHOENIX_PYENV_DIR="${IRONFOX_PYENV_DIR}"
export PHOENIX_PYTHON="${IRONFOX_PYTHON}"
export PHOENIX_PYTHON_DIR="${IRONFOX_PYTHON_DIR}"
export PHOENIX_SED="${IRONFOX_SED}"
export PHOENIX_TAR="${IRONFOX_TAR}"
export PHOENIX_UV_CACHE="${IRONFOX_UV_CACHE}"
export PHOENIX_UV_DIR="${IRONFOX_UV_DIR}"
export PHOENIX_UV_LOCAL="${IRONFOX_UV_LOCAL}"
export PHOENIX_UV_PYTHON="${IRONFOX_UV_PYTHON}"
export PHOENIX_UV_TOOLS="${IRONFOX_UV_TOOLS}"
export PHOENIX_SPECS=0
# Python
## https://docs.python.org/3/using/cmdline.html#environment-variables
## Disable JIT
export PYTHON_JIT=0
export PYTHON_PERF_JIT_SUPPORT=0
## Disable remote debugging
export PYTHON_DISABLE_REMOTE_DEBUG=1
## Enable performance optimizations
export PYTHONOPTIMIZE=1
# Python (Glean)
export GLEAN_PYTHON="${IRONFOX_PYTHON}"
export GLEAN_PYTHON_WHEELS_DIR="${IRONFOX_GLEAN_PARSER_WHEELS}"
# Rust (cargo)
export CARGO="${IRONFOX_CARGO}"
export CARGO_HOME="${IRONFOX_CARGO_HOME}"
export CARGO_INSTALL_ROOT="${IRONFOX_CARGO_HOME}"
export RUSTC="${IRONFOX_RUSTC}"
export RUSTDOC="${IRONFOX_RUSTDOC}"
## Disable debug
export CARGO_PROFILE_DEV_DEBUG='false'
export CARGO_PROFILE_DEV_DEBUG_ASSERTIONS='false'
export CARGO_PROFILE_RELEASE_DEBUG='false'
export CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS='false'
## Disable HTTP debugging
export CARGO_HTTP_DEBUG='false'
## Disable incremental compilation
### (Ensures builds are fresh)
### https://doc.rust-lang.org/cargo/reference/profiles.html#incremental
export CARGO_BUILD_INCREMENTAL='false'
export CARGO_INCREMENTAL=0
## Display progress bars
export CARGO_TERM_PROGRESS_WHEN="${IRONFOX_CARGO_PROGRESS_BAR}"
export CARGO_TERM_PROGRESS_WIDTH=80
## Enable certificate revocation checks
export CARGO_HTTP_CHECK_REVOKE='true'
## Enable colored output
export CARGO_TERM_COLOR="${IRONFOX_CARGO_COLORED_OUTPUT}"
## Enable overflow checks
export CARGO_PROFILE_DEV_OVERFLOW_CHECKS='true'
export CARGO_PROFILE_RELEASE_OVERFLOW_CHECKS='true'
## Enable performance optimizations
export CARGO_PROFILE_DEV_LTO='true'
export CARGO_PROFILE_DEV_OPT_LEVEL=3
export CARGO_PROFILE_RELEASE_LTO='true'
export CARGO_PROFILE_RELEASE_OPT_LEVEL=3
## Strip debug info
export CARGO_PROFILE_DEV_STRIP='debuginfo'
export CARGO_PROFILE_RELEASE_STRIP='debuginfo'
# rustup
export RUSTUP_HOME="${IRONFOX_RUSTUP_HOME}"
## Display progress bars
export RUSTUP_TERM_PROGRESS_WHEN="${IRONFOX_RUSTUP_PROGRESS_BAR}"
## Enable colored output
export RUSTUP_TERM_COLOR="${IRONFOX_RUSTUP_COLORED_OUTPUT}"
# UnifiedPush-AC
export UP_AC_GRADLE_USER_HOME="${IRONFOX_GRADLE_HOME}"
# UV
## https://docs.astral.sh/uv/reference/environment/
## Cache directory
export UV_CACHE_DIR="${IRONFOX_UV_LOCAL}/cache"
## Disable cache
export UV_NO_CACHE=1
## Disable the system CA root store
export UV_SYSTEM_CERTS='false'
## Exclude development dependencies
export UV_NO_DEV=1
## Executables directory
export UV_PYTHON_BIN_DIR="${IRONFOX_UV_LOCAL}/bin"
export UV_PYTHON_INSTALL_BIN=1
## Ignore configuration files
export UV_NO_CONFIG=1
## Ignore env files
export UV_NO_ENV_FILE=1
## Location
export UV_INSTALL_DIR="${IRONFOX_UV_DIR}"
## Prevent automatic downloads/updates
export UV_DISABLE_UPDATE=1
export UV_PYTHON_DOWNLOADS='manual'
## Prevent modifying the system PATH
export INSTALLER_NO_MODIFY_PATH=1
export UV_NO_MODIFY_PATH=1
export UV_UNMANAGED_INSTALL="${IRONFOX_UV_DIR}"
## Prevent using the system Python
export UV_MANAGED_PYTHON=1
export UV_SYSTEM_PYTHON='false'
## Python
export UV_PYTHON_CACHE_DIR="${IRONFOX_UV_LOCAL}/python-cache"
export UV_PYTHON_INSTALL_MIRROR="file://${IRONFOX_PYTHON_DIR}"
export UV_PYTHON_INSTALL_DIR="${IRONFOX_UV_LOCAL}/python"
## Python environment
export UV_PROJECT_ENVIRONMENT="${IRONFOX_PYENV_DIR}"
export VIRTUAL_ENV="${IRONFOX_PYENV_DIR}"
## Tools directory
export UV_TOOL_BIN_DIR="${IRONFOX_UV_LOCAL}/tools/bin"
export UV_TOOL_DIR="${IRONFOX_UV_LOCAL}/tools"
# Include version info
source "${IRONFOX_VERSIONS}"
## Pin Python version
export UV_PYTHON_CPYTHON_BUILD="${PYTHON_GIT_RELEASE}"
## Set Node.js bin path
export NVM_BIN="${IRONFOX_NVM}/versions/node/v${NODE_VERSION}/bin"
## Set Node.js version
export NODE_VERSION="${NODE_VERSION}"
## Set Rust version
export RUSTUP_TOOLCHAIN="${RUST_VERSION}"
## Set Rustup version
export RUSTUP_VERSION="${RUSTUP_VERSION}"