Збірка Firefox з початкового коду в Linux / Fedora 43


Нарешті, знайшов час підстригти лисиці хвоста. Зокрема тому, що віднедавна відкрив для себе збірку i2pdbrowser: на базі консервативного і мабуть, останнього адекватного релізу ESR 115 - без "соціалізації" та заокруглення Мозілою колись цікавого (в першу чергу для гіків) браузеру:


Мій форк i2pdbrowser для приватно-орієнтованого Веб


По суті, білд вище - просто задає свою політику для готових офіційних бінарників цієї версії. В ній нормально відображається сучасний Веб; це не якийсь там Dillo чи NetSurf а повноцінний браузер.


Чому мене не влаштували архівні бінарники?



Збірка


Офіційна інструкція:


Building Firefox On Linux


Розмір репозиторію складає ~5 GB, також на (Fedora 43) довстановив:


sudo dnf install perl clang-devel llvm-devel

Вся "офіційна" процедура нового встановлення зводиться до чотирьох команд:


curl -LO https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/main/python/mozboot/bin/bootstrap.py
python3 bootstrap.py
./mach build
./mach run

ESR 115


Зауважу, що на Fedora 43 мені так і не вдалося розв'язати всі застарілі залежності. Можливо, тут варто спробувати статичний білд на віртуалці або з використанням контейнерів. Планую доповнити згодом, а поки - лишаю нотатки для ESR 115 як є.


В гілці master буде відповідно остання версія Nightly з усіма навісами. Тому я буду збирати собі ESR 115 за образом і подобою i2pdbrowser, бо точно не знаю з якої точно версії Firefox зкурвився.


Офіційний гайд я тут ігнорую і збираюсь так:


git clone https://github.com/mozilla-firefox/firefox.git
cd firefox

Тепер потрібно перемкнутись на тег або гілку:


Вибір тега на GitHub (скріншот)


git checkout ВАШ_ВИБІР

Після перемикання гілки (це займе деякий час) я створив файл `mozconfig` наступного вмісту:


ac_add_options --with-libclang-path=/usr/lib64
ac_add_options --without-wasm-sandboxed-libraries

Зробив даунгрейд Rust:


rustup install 1.70.0
rustup default 1.70.0
rustc --version

Встановлення останньої версії Rust в Linux


Також, збірка буде вимагати ~ Python 3.11:


sudo dnf install python3.11-devel

і додаткові аргументи середовища:


python3.11 ./mach bootstrap --no-system-changes
LDFLAGS="-Wl,--allow-shlib-undefined" HOST_LDFLAGS="-Wl,--allow-shlib-undefined" python3.11 ./mach build
python3.11 ./mach run

У разі зміни конфігурації і перед повторним білдом, варто почистити кеш:


rm -rf ~/.mozbuild
rm -rf obj-*

Все інше, якщо збірка вдалась - вже підганяємо під своє середовище робочого столу або збираємо пакет rmp/deb.


Дивіться також


Окремі профілі Firefox на базі спільного релізу

Ліво-стороння орієнтація кнопки "закрити вкладку" в Firefox

Видаляю Flatpak зі свого комп'ютера



/uk/