diff --git a/public/uk/build-firefox-from-source-on-fedora-linux.gmi b/public/uk/build-firefox-from-source-on-fedora-linux.gmi new file mode 100644 index 0000000..32e24e2 --- /dev/null +++ b/public/uk/build-firefox-from-source-on-fedora-linux.gmi @@ -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 зі свого комп'ютера \ No newline at end of file diff --git a/public/uk/build-firefox-from-source-on-fedora-linux/FIREFOX_ESR_115-tags.png b/public/uk/build-firefox-from-source-on-fedora-linux/FIREFOX_ESR_115-tags.png new file mode 100644 index 0000000..4084234 Binary files /dev/null and b/public/uk/build-firefox-from-source-on-fedora-linux/FIREFOX_ESR_115-tags.png differ diff --git a/public/uk/index.gmi b/public/uk/index.gmi index 7b4f8f2..c88c973 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -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 diff --git a/public/uk/left-oriented-close-tab-button-in-firefox.gmi b/public/uk/left-oriented-close-tab-button-in-firefox.gmi index 9dd6ee0..279e8ce 100644 --- a/public/uk/left-oriented-close-tab-button-in-firefox.gmi +++ b/public/uk/left-oriented-close-tab-button-in-firefox.gmi @@ -88,4 +88,5 @@ ## Дивіться також -=> left-oriented-close-tab-button-in-thunderbird.gmi Ліво-стороння орієнтація кнопки "закрити вкладку" в Thunderbird \ No newline at end of file +=> left-oriented-close-tab-button-in-thunderbird.gmi Ліво-стороння орієнтація кнопки "закрити вкладку" в Thunderbird +=> build-firefox-from-source-on-fedora-linux.gmi Збірка Firefox з початкового коду в Linux / Fedora 43 \ No newline at end of file diff --git a/public/uk/my-personal-i2pdbrowser-fork-for-privacy-oriented-web.gmi b/public/uk/my-personal-i2pdbrowser-fork-for-privacy-oriented-web.gmi index 7c8cb50..32d2d91 100644 --- a/public/uk/my-personal-i2pdbrowser-fork-for-privacy-oriented-web.gmi +++ b/public/uk/my-personal-i2pdbrowser-fork-for-privacy-oriented-web.gmi @@ -24,4 +24,8 @@ => https://github.com/YGGverse/i2pdbrowser/tree/ps -P.S. Особисто мені було приємно повернутись на старий фокс без вікон авторизації, круглядських табів, ші, груповух і невбиваємих попапів аптейтів. Рекомендую, бо єдиний відомий мені кандидат Librewolf - ставить з коробки uBlock а це великий гріх. Всі інші Dillo, NetSurf - інша опера, і не про сучасний Веб. \ No newline at end of file +P.S. Особисто мені було приємно повернутись на старий фокс без вікон авторизації, круглядських табів, ші, груповух і невбиваємих попапів аптейтів. Рекомендую, бо єдиний відомий мені кандидат Librewolf - ставить з коробки uBlock а це великий гріх. Всі інші Dillo, NetSurf - інша опера, і не про сучасний Веб. + +## Дивіться також + +=> build-firefox-from-source-on-fedora-linux.gmi Збірка Firefox з початкового коду в Linux / Fedora 43 \ No newline at end of file