Files
IronFox/scripts/bootstrap.sh
celenity b9dd3e60bc IronFox v147.0.4
ironfox-oss/IronFox!125
# IronFox 147.0.4
____

## Changes

- Updated to Firefox [`147.0.4`](https://firefox.com/firefox/android/147.0.4/releasenotes/).
- Updated to Phoenix [`2026.02.16.1`](https://codeberg.org/celenity/Phoenix/releases/tag/2026.02.16.1).
- Updated to microG [`v0.3.13.250932`](https://github.com/microg/GmsCore/releases/tag/v0.3.13.250932).
- Updated to Rust [`1.93.1`](https://releases.rs/docs/1.93.1/).
- Disabled the [Date Decoder *(RDD)* process](https://firefox-source-docs.mozilla.org/dom/ipc/process_model.html#data-decoder-rdd-process) by default, due to potential [memory safety issues](https://codeberg.org/ironfox-oss/IronFox/issues/94).
    - This means that when isolated content process support is enabled, media playback will not work properly for many websites.
    - As a result, we've unfortunately disabled isolated content process support by default for now - but it can still be enabled from secret settings if desired, at the cost of breakage for media playback on certain websites. We hope to enable it again by default in the near future.
- [Enabled canvas randomization for solid colors](e8e5976010).
    - Adapted from [LibreWolf](343645241e) - thanks to [any1here](https://codeberg.org/any1here)! <3
- [Removed the OpenAI backend](ecc15b7d11).
- Various improvements to the overall build process.
- Other minor tweaks, fixes, and enhancements.

MR-author: celenity <celenity@celenity.dev>
Co-authored-by: Weblate <hosted@weblate.org>
Co-authored-by: Akash Yadav <contact@itsaky.com>
Approved-by: Akash Yadav <itsaky01@gmail.com>
Merged-by: celenity <celenity@celenity.dev>
2026-02-17 07:45:17 +00:00

204 lines
5.7 KiB
Bash
Executable File

#!/bin/bash
# Script to assist with creation of an IronFox build environment
set -euo pipefail
# Set-up our environment
bash -x $(dirname $0)/env.sh
source $(dirname $0)/env.sh
# Get our platform, OS, and architecture
source "${IRONFOX_ENV_HELPERS}"
error_fn() {
echo
echo -e "\033[31mSomething went wrong! The script failed.\033[0m"
echo -e "\033[31mPlease report this (with the output message) to https://gitlab.com/ironfox-oss/IronFox/-/issues\033[0m"
echo
exit 1
}
# Install dependencies
echo_green_text "Installing dependencies..."
echo_green_text "Detected operating system: ${IRONFOX_OS}"
# macOS, secureblue
## (Both use Homebrew)
if [[ "${IRONFOX_OS}" == 'osx' ]] || [[ "${IRONFOX_OS}" == 'secureblue' ]]; then
# Ensure Homebrew is installed
if [[ -z "${HOMEBREW_PREFIX+x}" ]]; then
echo_red_text "Homebrew is not installed! Aborting..."
echo_red_text "Please install Homebrew and try again..."
echo_green_text "https://brew.sh/"
exit 1
fi
export HOMEBREW_ASK=0
# Ensure we're up to date
brew update --force || error_fn
echo
brew upgrade --greedy || error_fn
echo
if [[ "${IRONFOX_OS}" == 'osx' ]]; then
# Ensure Xcode command line tools are installed
if ! /usr/bin/xcode-select -p &> /dev/null; then
/usr/bin/xcode-select --install || error_fn
echo
fi
# Install OS X dependencies
brew install \
coreutils \
gawk \
git \
gnu-sed \
gnu-tar \
m4 \
make \
temurin@17 \
xz \
zlib || error_fn
echo
fi
# Install our dependencies...
brew install \
cmake \
jq \
nasm \
ninja \
node \
perl \
python@3.9 \
yq || error_fn
echo
# For secureblue, we also need to install our JDKs,
## which we unfortunately can't just get from Homebrew like we do for OS X
## We also need clang and zlib-devel
if [[ "${IRONFOX_OS}" == 'secureblue' ]]; then
# Ensure we're up to date
/usr/bin/rpm-ostree refresh-md --force || error_fn
echo
/usr/bin/ujust update-system || error_fn
echo
# Install clang and zlib-devel
/usr/bin/rpm-ostree install \
clang \
zlib-devel || error_fn
echo
# Now, add + enable the Adoptium Working Group's repository
/usr/bin/run0 /usr/bin/curl ${IRONFOX_CURL_FLAGS} --output-dir "/etc/yum.repos.d/" --remote-name https://src.fedoraproject.org/rpms/adoptium-temurin-java-repository/raw/6a468beba6d45d2b29e729196a8dbb12e96e3c33/f/adoptium-temurin-java-repository.repo || error_fn
echo
/usr/bin/run0 /usr/bin/chmod 644 /etc/yum.repos.d/adoptium-temurin-java-repository.repo || error_fn
echo
/usr/bin/run0 "${IRONFOX_SED}" -i -e '/enabled/s/0/1/' /etc/yum.repos.d/adoptium-temurin-java-repository.repo || error_fn
echo
/usr/bin/rpm-ostree refresh-md --force || error_fn
echo
# Install our JDKs
/usr/bin/rpm-ostree install \
temurin-8-jdk \
temurin-17-jdk || error_fn
echo
# We now unfortunately have to restart the system :/
echo_red_text "To apply the clang, JDK, and zlib installations, your system will now reboot."
/usr/bin/sleep 5 || error_fn
echo
echo_green_text "Press enter to continue."
read
/usr/bin/systemctl reboot || error_fn
echo
fi
# Fedora
elif [[ "${IRONFOX_OS}" == 'fedora' ]]; then
# Ensure we're up to date
sudo dnf update -y --refresh || error_fn
echo
# Add + enable the Adoptium Working Group's repository
sudo dnf install -y adoptium-temurin-java-repository || error_fn
echo
sudo dnf config-manager setopt adoptium-temurin-java-repository.enabled=1 || error_fn
echo
sudo dnf makecache || error_fn
echo
# Install our dependencies...
sudo dnf install -y \
cmake \
clang \
gawk \
git \
jq \
m4 \
make \
nasm \
ninja-build \
patch \
perl \
python3.9 \
shasum \
temurin-8-jdk \
temurin-17-jdk \
xz \
yq \
zlib-devel || error_fn
echo
# Ubuntu
elif [[ "${IRONFOX_OS}" == 'ubuntu' ]]; then
# Ensure we're up to date
sudo apt update || error_fn
echo
sudo apt upgrade || error_fn
echo
# Add the deadsnakes PPA
sudo add-apt-repository ppa:deadsnakes/ppa || error_fn
echo
# Add + enable the Adoptium Working Group's repository
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null || error_fn
echo
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | tee /etc/apt/sources.list.d/adoptium.list || error_fn
echo
sudo apt update || error_fn
echo
sudo apt install -y \
apt-transport-https \
cmake \
clang-18 \
git \
gpg \
make \
nasm \
ninja-build \
patch \
perl \
python3.9 \
tar \
temurin-8-jdk \
temurin-17-jdk \
unzip \
xz-utils \
yq \
zlib1g-dev || error_fn
echo
else
echo_red_text "Apologies, your operating system is currently not supported."
echo_red_text "If you think this is a mistake, please let us know!"
echo_green_text "https://gitlab.com/ironfox-oss/IronFox/-/issues"
echo_red_text "Otherwise, please try again on a system running the latest version of Fedora, macOS, secureblue, or Ubuntu."
exit 1
fi