Több alternatív Firefox fork is van, ami a régi irányt célozza, de igazából mind a PaleMoon körül csoportosulnak, viszont az nagyon régi Firefoxra (28) épül. Az Iceweasel-UXP ezzel szemben az 52-esre (az utolsó ESR, mielőtt kidobták volna a XUL-t, az NPAPI-t, az ALSA-t és a GTK2-őt). Az Iceweasel-UXP-t a Hyperbola jegyzi, akik ugyan szoktak bináris csomagot is adni, de itt ugye az volna a lényeg, hogy úgy rakjuk össze, hogy nekünk legyen jó. Egyébként az összes PaleMoon körül csoportosuló böngészőnek az az alapvető célja, hogy XUL alapú böngészőt építsenek (innen a név: Unified XUL Platform), mert a WebExtension nem csak, hogy rugalmatlanabb és erőforrásigényesebb, de ráadásul súlyos privacy problémákat is jelenthet. (#1, #2, #3)
Akkor buildeljük le. Ehhez első lépésben magát az UXP-t kell lerántanunk a PaleMoon-tól:
git clone https://github.com/MoonchildProductions/UXP
ha a legfrissebb forrásokat akarjuk, vagy, ha stable release-t, akkor pl.:
wget https://github.com/MoonchildProductions/UXP/archive/PM28.7.2_Release.tar.gz
tar xzf PM28.7.2_Release.tar.gz
rm PM28.7.2_Release.tar.gz
mv UXP-PM28.7.2_Release UXP
Ha megvagyunk be kell mászni az UXP/application
könyvtárba
cd UXP/application/
aztán
git clone https://git.hyperbola.info:50100/software/iceweasel-uxp.git
ha a legfrissebb forrás kell az Iceweasel-ből, vagy, ha stable release, akkor pl.:
wget https://repo.hyperbola.info:50000/other/iceweasel-uxp/iceweasel-uxp-2.7.tar.gz
tar xzf iceweasel-uxp-2.7.tar.gz
rm iceweasel-uxp-2.7.tar.gz
mv iceweasel-uxp-2.7 iceweasel-uxp
Ha ez megvan, akkor át kell állítani a vendort és a productot, mert különben össze fog ütközni a gépre telepített Firefox-szal, vagy a régebbi (38-as) Iceweasellel:
sed -i 's/Vendor=Mozilla/Vendor=Hyperbola/g' iceweasel-uxp/app/application.ini
sed -i 's/Name=Firefox/Name=Iceweasel-UXP/g' iceweasel-uxp/app/application.ini
Másszunk vissza egy szintet az UXP
könyvtárba
cd ..
majd nekiállhatunk összerakni a .mozconfig
-ot.
--------
Update: Illetve, amennyiben nem x86 - pontosabban: nem SSE2-képes - platformon vagyunk, futtassuk le a következő két parancsot is:
sed -i 's/-msse2//g' build/autoconf/compiler-opts.m4
sed -i 's/-mfpmath=sse//g' build/autoconf/compiler-opts.m4
Update again: A 28.7.2-es UXP-ben ezt fixálták.
Update yet again: Viszont ez még él, az egyik fájlban manuálisan kell átírni két nem létező függvényt, amennyiben ARM-on vagyunk:
sed -i 's/isMarkable/isGCThing/g' ./js/src/jit/arm/MacroAssembler-arm.cpp
sed -i 's/toMarkablePointer/toGCThing/g' ./js/src/jit/arm/MacroAssembler-arm.cpp
Egyébként az érkező 28.8-ban ez is fixálva van már.
--------
Először kapcsoljuk le a felülírásokért való reklamációt:
echo 'mk_add_options AUTOCLOBBER=1' >> .mozconfig
Aztán, aki akarja, beállíthatja, hogy több magon dolgozzon majd a builder:
echo 'mk_add_options MOZ_MAKE_FLAGS="-j7"' >> .mozconfig
(Aki eddig nem találkozott ezzel: make -j#
esetén #
mondja meg a felhasználható magok számát; itt pl. 7 magon fog dolgozni.)
Kapcsoljuk be, hogy az Iceweasel-UXP-t buildelje:
echo 'ac_add_options --enable-application=iceweasel-uxp' >> .mozconfig
Utána állítsuk át GTK2-re, hogy a gyengébb/régebbi gépek (pl. RPi 1, PoweMac G4) is boldoguljanak a böngészővel és ne haljon meg az egész rendszer, ha elindítjuk:
echo 'ac_add_options --enable-default-toolkit=cairo-gtk2' >> .mozconfig
Kapcsoljuk le a PulseAudio-t és engedélyezzük az ALSA-t, ne kínozza a gépet, meg a fülünket:
echo 'ac_add_options --enable-alsa' >> .mozconfig
echo 'ac_add_options --disable-pulseaudio' >> .mozconfig
Update: Az ALSA természetesen csak a Linuxra vonatkozik. (A pulse tiltása nem!) Még nem tudom pontosan milyen opciók vannak hangügyben FreeBSD-re, stay tuned for more update...
Utána jöhet a binárisok strippelése, optimalizálása:
echo 'ac_add_options --enable-optimize=-O2' >> .mozconfig
echo 'ac_add_options --enable-strip' >> .mozconfig
echo 'ac_add_options --disable-debug' >> .mozconfig
echo 'ac_add_options --enable-release' >> .mozconfig
Azt egyébként maga a csapat is elismeri, hogy bloated a program (naná, Firefox), de dolgoznak az ügyön.
Kapcsoljuk le a syncinget, mert a Hyperbolának nincs sync-servere és így elpusztulna a végén a packaging.
echo 'ac_add_options --disable-sync' >> .mozconfig
Végül kapcsoljuk ki a Firefox hazaköszöngetős vackait:
echo 'ac_add_options --disable-verify-mar' >> .mozconfig
echo 'ac_add_options --disable-updater' >> .mozconfig
echo 'ac_add_options --disable-crashreporter' >> .mozconfig
echo 'ac_add_options --disable-maintenance-service' >> .mozconfig
echo 'ac_add_options --disable-tests' >> .mozconfig
echo 'ac_add_options --disable-ipdl-tests' >> .mozconfig
A telemetriát még nem takarították ki belőle, de ezen is dolgoznak. Addig marad az about:config
-ban történő kikapcsolgatás.
--------
Még egy update: ARM-on kell még egy sor a konfigba, mert különben a packaging elhasal "Error while running startup cache precompilation" hibával.
echo 'ac_add_options --disable-precompiled-startupcache' >> .mozconfig
--------
Miután minden megvan, build és package:
./mach build
./mach package
Ez sokáig is eltarthat (FX-8350, 7 mag => cca. 20 perec), de utána megjelenik egy obj-*
könyvtár (pl. itt obj-x86_64-pc-linux-gnu
), azon belül dist
és azon belül lesz egy iceweasel-uxp-*.tar.bz2
csomag. Ezt lehet kicsomagolni, ahova akarjuk (pl. /opt/
) és meg is vagyunk.
Még takarítás gyanánt lehet gyalulni
cd ..
rm -rf ./UXP
de ha valaki a git
repository-kból szedte le, akkor akár meg is tarthatja, legközelebb már csak updatelni kell.
Még annyit, hogy a Hyperbola karbantart egy adag XUL bővítményt (pl. uBlock Origin-Libre, NoScript Classic, Greasemonkey, stb.), de a Legacy Collector viszont komplett gyűjteménnyel bír, még a különféle verziókból is. (Pl. Firebugot innen lehet újítani.)
(Amúgy jó lenne, ha ezt a site-ot minél többen letükröznék...)
Nos, asszem ennyi. Remélem lesz, aki hasznát veszi.
(Update: FreeBSD alatt ne felejtsük el felpakolni a zip
, gmake
, gconf
, yasm
toolokat.)
(Update #2: A jelek szerint minimum GCC 6 kell a forgatáshoz és legalább 4 GB RAM.)
(Update #3: A GCC 6 maximum x86-on fogja leforgatni, amúgy az UXP fejlesztők szerint avoid kategória. Tehát minimum GCC 7.)
- TCH blogja
- A hozzászóláshoz be kell jelentkezni
- 707 megtekintés
Hozzászólások
Nagyon köszi, hogy rámutattál erre a lehetőségre.., majd BSD-re összpontosítva kipróbálom, - lassan muszáj lesz frissítenem, - ha gondom lesz, kérdezek.. :)
- A hozzászóláshoz be kell jelentkezni
Közben én nekiálltam FreeBSD-re leforgatni. Az ALSA-t lecseréltem --enable-sndio
-ra, de arra azt köpte vissza, hogy no such option, pedig van sndio FreeBSD-re és fel is van rakva. Az OSS-nek nyomát sem látom a forrásokban, szerintem nem támogatja. Esetleg alsaemuval lehet FreeBSD alatt okoskodni valamit? OpenBSD alatt elméletileg OOB a sndio, mert ott mondani sem kell neki, a script magától csinálja.
Egyelőre csak tiltottam a pulse-ot és nem állítottam be más hangszervert. Most vagy fallbackelt valamire, vagy nem lesz sound, de igazából még nem tudom, mert a latest release elpusztul buildelés közben, úgyhogy most latest git forrásokkal próbálom újra. Ha azzal is ugyanaz a baj, akkor reportolom, mint bugot. Ha többet tudok, írok.
Update:
Így is eltaknyol. Ha pedig a reklamált parancsot lefuttatom, akkor ezt kapom: az UXP/obj-x86_64-unknown-freebsd11.2/dist/include/mozilla/throw_gcc.h
reklamálja a snprintf()
hiányát, meg, hogy húzzam be a <cstdio>
-t, amit nem igazán értek, mert amióta az eszemet tudom, az a <stdio.h>
-ban van, de egyébként a FreeBSD manual is ezt mondja. Mindenesetre egy
#ifdef __FreeBSD__
#include <cstdio>
#endif
beszúrása orvosolta a problémát. A build ekkor olyan 30-40 percnél tartott ill. annyi idő után hasalt el. Javítás után folytatta, ahol abbahagyta és már megint 30 perce megy és tovább nyúlik...a jövő héten majd mondom mi lett az eredmény. :P
Update #2:
Így is felfordult, nem le. Az érintett parancs eredménye meg ez. A jelek szerint pont az okozta, amivel a másikat javítottam körbetaknyoltam. Öröm és boldogság. És bugreport.
Update #3:
Aki érintett, ebben a két topicban követheti az eseményeket:
https://forums.hyperbola.info/viewtopic.php?id=272
https://forums.hyperbola.info/viewtopic.php?id=273
- A hozzászóláshoz be kell jelentkezni