mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-04-01 05:05:27 +00:00
add build-firefox-from-source-on-fedora-linux.gmi
This commit is contained in:
parent
b7a75acae0
commit
7625d09c93
5 changed files with 118 additions and 2 deletions
110
public/uk/build-firefox-from-source-on-fedora-linux.gmi
Normal file
110
public/uk/build-firefox-from-source-on-fedora-linux.gmi
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
# Збірка Firefox з початкового коду в Linux / Fedora 43
|
||||
|
||||
Нарешті, знайшов час підстригти лисиці хвоста. Зокрема тому, що віднедавна відкрив для себе збірку i2pdbrowser: на базі консервативного і мабуть, останнього адекватного релізу ESR 115 - без "соціалізації" та заокруглення Мозілою колись цікавого (в першу чергу для гіків) браузеру:
|
||||
|
||||
=> my-personal-i2pdbrowser-fork-for-privacy-oriented-web.gmi Мій форк i2pdbrowser для приватно-орієнтованого Веб
|
||||
|
||||
По суті, білд вище - просто задає свою політику для готових офіційних бінарників цієї версії. В ній нормально відображається сучасний Веб; це не якийсь там Dillo чи NetSurf а повноцінний браузер.
|
||||
|
||||
Чому мене не влаштували архівні бінарники?
|
||||
|
||||
* Я користуюсь багатьма браузерами одночасно для різних мереж (Інтернет, Yggdrasil, Mycelium, Tor, I2P, тощо) і через слабке залізо не користуюсь Flatpak - мені треба якось змінити системний ідентифікатор програми для ізоляції профілів, не використовуючи контейнери;
|
||||
* В мене давно крались плани покопирсатись у вихідному коді FF і точково адаптувати його під себе. Раніше, такими нюансами була не можливість вимкнення сповіщень про оновлення, які я випиляв тільки даунгрейдом з підтримкою потрібної опції в about:config;
|
||||
* Також, моїй параної буде спокійніше, враховуючи що я бачу на поточному 149.0 купу заблокованих (завдяки самопалу psocks) спроб телеметрії на домени Mozilla. Хочу бути впевненим, що браузер відповідає задекларованим комітам і не намагається "дбайливо" тягнути мою історію переглядів на свої сервери, під виглядом "синхронізації профілю" чи "Mozilla VPN".
|
||||
|
||||
## Збірка
|
||||
|
||||
Офіційна інструкція:
|
||||
|
||||
=> https://firefox-source-docs.mozilla.org/setup/linux_build.html Building Firefox On Linux
|
||||
|
||||
Розмір репозиторію складає ~5 GB, також на (Fedora 43) довстановив:
|
||||
|
||||
``` bash
|
||||
sudo dnf install perl clang-devel llvm-devel
|
||||
```
|
||||
* ймовірно, скрипт інсталяції ту команду запропонує автоматично
|
||||
* `clang-devel llvm-devel` не потрібні, якщо ви збиратиметесь з артефактів
|
||||
|
||||
Вся "офіційна" процедура нового встановлення зводиться до чотирьох команд:
|
||||
|
||||
``` bash
|
||||
curl -LO https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/main/python/mozboot/bin/bootstrap.py
|
||||
python3 bootstrap.py
|
||||
./mach build
|
||||
./mach run
|
||||
```
|
||||
* при наступних збірках, команда `python3 bootstrap.py` замінюється на `./mach bootstrap`
|
||||
* також, перед повторними білдами, варто підтягнути оновлення з `git pull`
|
||||
* збірка з артефактами "Firefox for Desktop Artifact Mode [default]" триває швидко - через підвантаження бінарних наборів
|
||||
|
||||
### ESR 115
|
||||
|
||||
> Зауважу, що на Fedora 43 мені так і не вдалося розв'язати всі застарілі залежності. Можливо, тут варто спробувати статичний білд на віртуалці або з використанням контейнерів. Планую доповнити згодом, а поки - лишаю нотатки для ESR 115 як є.
|
||||
|
||||
В гілці master буде відповідно остання версія Nightly з усіма навісами. Тому я буду збирати собі ESR 115 за образом і подобою i2pdbrowser, бо точно не знаю з якої точно версії Firefox зкурвився.
|
||||
|
||||
Офіційний гайд я тут ігнорую і збираюсь так:
|
||||
|
||||
``` bash
|
||||
git clone https://github.com/mozilla-firefox/firefox.git
|
||||
cd firefox
|
||||
```
|
||||
* `git clone` - можливо потребує `--recursive` (не перевіряв, бо просто перехожу в клонований раніше репозиторій)
|
||||
|
||||
Тепер потрібно перемкнутись на тег або гілку:
|
||||
|
||||
=> build-firefox-from-source-on-fedora-linux/FIREFOX_ESR_115-tags.png Вибір тега на GitHub (скріншот)
|
||||
|
||||
``` bash
|
||||
git checkout ВАШ_ВИБІР
|
||||
```
|
||||
* особисто вирішив спробувати тег FIREFOX_115_34_0esr_RELEASE, бо (на момент допису) він оновився лише два тижні тому - можливо наявні критичні виправлення безпеки і я не бачу для себе очевидних причин фрізитись саме на FIREFOX_115_20_0esr_RELEASE; думаю, що ESR 115.20 в i2pdbrowser використовується лише тому, що розробники просто зробили для неї ініціальний пресет і втратили інтерес до супроводу.
|
||||
|
||||
Після перемикання гілки (це займе деякий час) я створив файл `mozconfig` наступного вмісту:
|
||||
|
||||
``` mozconfig
|
||||
ac_add_options --with-libclang-path=/usr/lib64
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
```
|
||||
|
||||
Зробив даунгрейд Rust:
|
||||
|
||||
``` bash
|
||||
rustup install 1.70.0
|
||||
rustup default 1.70.0
|
||||
rustc --version
|
||||
```
|
||||
* можливо й новіші працюють, не перевіряв
|
||||
* переключитись назад можна командою `rustup default stable`
|
||||
=> install-latest-rust-version-on-linux.gmi Встановлення останньої версії Rust в Linux
|
||||
|
||||
Також, збірка буде вимагати ~ Python 3.11:
|
||||
|
||||
``` bash
|
||||
sudo dnf install python3.11-devel
|
||||
```
|
||||
|
||||
і додаткові аргументи середовища:
|
||||
|
||||
``` bash
|
||||
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
|
||||
```
|
||||
* на етапі `bootstrap` я обираю "Firefox for Desktop"
|
||||
* аргумент `--no-system-changes` потрібен, щоб не ставити watchman
|
||||
|
||||
У разі зміни конфігурації і перед повторним білдом, варто почистити кеш:
|
||||
|
||||
``` bash
|
||||
rm -rf ~/.mozbuild
|
||||
rm -rf obj-*
|
||||
```
|
||||
|
||||
Все інше, якщо збірка вдалась - вже підганяємо під своє середовище робочого столу або збираємо пакет rmp/deb.
|
||||
|
||||
## Дивіться також
|
||||
|
||||
=> left-oriented-close-tab-button-in-firefox.gmi Ліво-стороння орієнтація кнопки "закрити вкладку" в Firefox
|
||||
=> goodbye-flatpak.gmi Видаляю Flatpak зі свого комп'ютера
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 57 KiB |
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
### Нотатки
|
||||
|
||||
=> build-firefox-from-source-on-fedora-linux.gmi 2026-03-28 Збірка Firefox з початкового коду в Linux / Fedora 43
|
||||
=> psocks-v0.5.0-release-with-multi-list-features.gmi 2026-03-28 Реліз psocks v0.5.0 з підтримкою мульти-списків
|
||||
=> my-solution-for-icecast-m3u-xspf-vclt-buttons-in-multi-host-mode.gmi 2026-03-28 Моє "виправлення" кнопок M3U/XSPF/VCLT Icecast при роботі в мульти-хост режимі
|
||||
=> icecast-http-over-tor-socks.gmi 2026-03-25 Прокидання потоку Icecast/HTTP через Tor/SOCKS з socat
|
||||
|
|
|
|||
|
|
@ -88,4 +88,5 @@
|
|||
|
||||
## Дивіться також
|
||||
|
||||
=> left-oriented-close-tab-button-in-thunderbird.gmi Ліво-стороння орієнтація кнопки "закрити вкладку" в Thunderbird
|
||||
=> left-oriented-close-tab-button-in-thunderbird.gmi Ліво-стороння орієнтація кнопки "закрити вкладку" в Thunderbird
|
||||
=> build-firefox-from-source-on-fedora-linux.gmi Збірка Firefox з початкового коду в Linux / Fedora 43
|
||||
|
|
@ -24,4 +24,8 @@
|
|||
|
||||
=> https://github.com/YGGverse/i2pdbrowser/tree/ps
|
||||
|
||||
P.S. Особисто мені було приємно повернутись на старий фокс без вікон авторизації, круглядських табів, ші, груповух і невбиваємих попапів аптейтів. Рекомендую, бо єдиний відомий мені кандидат Librewolf - ставить з коробки uBlock а це великий гріх. Всі інші Dillo, NetSurf - інша опера, і не про сучасний Веб.
|
||||
P.S. Особисто мені було приємно повернутись на старий фокс без вікон авторизації, круглядських табів, ші, груповух і невбиваємих попапів аптейтів. Рекомендую, бо єдиний відомий мені кандидат Librewolf - ставить з коробки uBlock а це великий гріх. Всі інші Dillo, NetSurf - інша опера, і не про сучасний Веб.
|
||||
|
||||
## Дивіться також
|
||||
|
||||
=> build-firefox-from-source-on-fedora-linux.gmi Збірка Firefox з початкового коду в Linux / Fedora 43
|
||||
Loading…
Add table
Add a link
Reference in a new issue