@xiota I see... Regarding the memory usage though, I don't think there is any other option, compilation time and resources are growing more and more especially with firefox over the years, previously I used 8GB+4GiB swap for compiling icecat on lower versions, then slowly it needed to be raised to 8GB+8GiB swap, at this rate the whole system is going to be needed for compiling, maybe compiling on laptops is not going to be possible anymore haha
Search Criteria
Package Details: icecat 115.17.0-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/icecat.git (read-only, click to copy) |
---|---|
Package Base: | icecat |
Description: | GNU version of the Firefox ESR browser |
Upstream URL: | https://git.savannah.gnu.org/cgit/gnuzilla.git |
Keywords: | browser esr gnuzilla web |
Licenses: | MPL-2.0 |
Submitter: | None |
Maintainer: | figue (xiota) |
Last Packager: | xiota |
Votes: | 250 |
Popularity: | 0.37 |
First Submitted: | 2007-12-09 10:12 (UTC) |
Last Updated: | 2024-11-04 00:48 (UTC) |
Dependencies (51)
- dbus-glib
- ffmpeg (ffmpeg-nvcodec-11-1-gitAUR, ffmpeg-ffplayoutAUR, ffmpeg-amd-full-gitAUR, ffmpeg-cudaAUR, ffmpeg-full-gitAUR, ffmpeg-gitAUR, ffmpeg-libfdk_aacAUR, ffmpeg-fullAUR, ffmpeg-decklinkAUR, ffmpeg-headlessAUR, ffmpeg-obsAUR, ffmpeg-amd-fullAUR)
- gtk3 (gtk3-no_deadkeys_underlineAUR, gtk3-classicAUR, gtk3-classic-xfceAUR, gtk3-patched-filechooser-icon-viewAUR)
- libevent (libevent-gitAUR)
- libjpeg (mozjpeg-gitAUR, libjpeg-turbo-gitAUR, mozjpegAUR, libjpeg-turbo)
- libpulse (pulseaudio-dummyAUR, libpulse-gitAUR)
- libvpx.so (libvpx-full-gitAUR, libvpx-gitAUR, lib32-libvpx, lib32-libvpx1.3, libvpx, libvpx1.3)
- libwebp.so (lib32-libwebp, libwebp)
- libxss
- libxt
- mime-types (mailcap)
- nspr (nspr-hgAUR)
- nss (nss-hgAUR)
- pipewire (pipewire-gitAUR, pipewire-full-gitAUR)
- ttf-font (neuropol-ttfAUR, ttf-win7-fontsAUR, ttf-ms-win8AUR, ttf-ms-win8-arabicAUR, ttf-ms-win8-hebrewAUR, ttf-ms-win8-seaAUR, ttf-ms-win8-indicAUR, ttf-ms-win8-japaneseAUR, ttf-ms-win8-koreanAUR, ttf-ms-win8-zh_cnAUR, ttf-ms-win8-zh_twAUR, ttf-ms-win8-thaiAUR, ttf-ms-win8-otherAUR, ttf-kidsAUR, ttf-liberation-sans-narrowAUR, ttf-cavafy-scriptAUR, ttf-ms-fontsAUR, ttf-dejavu-ibAUR, ttf-zeldaAUR, ttf-oxygenAUR, ttf-oxygen-gfAUR, ttf-share-gfAUR, ttf-gostAUR, otf-inconsolata-dzAUR, ttf-d2codingAUR, ttf-agaveAUR, ttf-caracteresAUR, ttf-cuprumAUR, ttf-autour-oneAUR, ttf-impallari-milongaAUR, ttf-impallari-miltonianAUR, ttf-clarity-cityAUR, ttf-ms-win10AUR, ttf-ms-win10-japaneseAUR, ttf-ms-win10-koreanAUR, ttf-ms-win10-seaAUR, ttf-ms-win10-thaiAUR, ttf-ms-win10-zh_cnAUR, ttf-ms-win10-zh_twAUR, ttf-ms-win10-otherAUR, ttf-win10AUR, ttf-bmonoAUR, ttf-pt-astra-factAUR, ttf-weblysleekuiAUR, ttf-pt-astra-sansAUR, ttf-pt-astra-serifAUR, ttf-pt-sansAUR, ttf-pt-serifAUR, ttf-pt-monoAUR, ttf-pt-root_uiAUR, ttf-xo-fontsAUR, noto-fonts-liteAUR, ttf-paratypeAUR, ttf-plemoljp-binAUR, ttf-dejavu-emojilessAUR, noto-fonts-variable-liteAUR, ttf-lucida-fontsAUR, ttf-plemoljpAUR, ttf-juiseeAUR, ttf-ms-win10-autoAUR, ttf-karlaAUR, noto-fonts-latin-greek-cyrillicAUR, apple-fontsAUR, ttf-noto-sans-vfAUR, ttf-noto-serif-vfAUR, ttf-noto-sans-mono-vfAUR, ttf-ms-win11AUR, ttf-ms-win11-japaneseAUR, ttf-ms-win11-koreanAUR, ttf-ms-win11-seaAUR, ttf-ms-win11-thaiAUR, ttf-ms-win11-zh_cnAUR, ttf-ms-win11-zh_twAUR, ttf-ms-win11-otherAUR, ttf-ms-win11-autoAUR, ttf-ms-win10-cdnAUR, gnu-free-fonts, noto-fonts, ttf-bitstream-vera, ttf-croscore, ttf-dejavu, ttf-droid, ttf-ibm-plex, ttf-input, ttf-input-nerd, ttf-liberation)
- zlib (zlib-ng-compat-gitAUR, zlib-gitAUR, zlib-ng-compat)
- cargo (rustup-gitAUR, rust-nightly-binAUR, rust-gitAUR, rust-beta-binAUR, rust, rustup) (make)
- cbindgen (make)
- clang17AUR (clang17-binAUR) (make)
- diffutils (make)
- dump_syms (dump_syms-gitAUR) (make)
- git (git-gitAUR, git-glAUR) (make)
- imake (make)
- inetutils (inetutils-gitAUR, busybox-coreutilsAUR) (make)
- jackAUR (jack2-gitAUR, pipewire-jack-gitAUR, pipewire-full-jack-gitAUR, jack2, pipewire-jack) (make)
- lld17AUR (make)
- llvm17AUR (make)
- m4 (m4-gitAUR) (make)
- mercurial (mercurial-hgAUR, mercurial-stable-hgAUR) (make)
- mesa (mesa-minimal-gitAUR, mesa-gitAUR, mesa-wsl2-gitAUR, amdonly-gaming-mesa-gitAUR, mesa-amd-bc250AUR, mesa-amber) (make)
- nasm (nasm-gitAUR) (make)
- nodejs (nodejs-lts-fermiumAUR, nodejs-gitAUR, python-nodejs-wheelAUR, nodejs-lts-hydrogen, nodejs-lts-iron) (make)
- python (python37AUR, python311AUR, python310AUR) (make)
- python-jsonschema (make)
- python-psutil (make)
- python-setuptools (make)
- rustup (rustup-gitAUR) (make)
- unzip (unzip-natspecAUR, unzip-zstdAUR) (make)
- wasi-compiler-rt17AUR (make)
- wasi-libc (wasi-libc-gitAUR) (make)
- wasi-libc++ (make)
- wasi-libc++abi (make)
- wget (wget-gitAUR, wurlAUR) (make)
- xorg-server-xvfb (xorg-server-xvfb-gitAUR) (make)
- yasm (yasm-gitAUR) (make)
- zip (zip-natspecAUR) (make)
- hunspell-dictionary (hunspell-lbAUR, hunspell-be-taraskAUR, hunspell-de, hunspell-el, hunspell-en_au, hunspell-en_ca, hunspell-en_gb, hunspell-en_us, hunspell-es_any, hunspell-es_ar, hunspell-es_bo, hunspell-es_cl, hunspell-es_co, hunspell-es_cr, hunspell-es_cu, hunspell-es_do, hunspell-es_ec, hunspell-es_es, hunspell-es_gt, hunspell-es_hn, hunspell-es_mx, hunspell-es_ni, hunspell-es_pa, hunspell-es_pe, hunspell-es_pr, hunspell-es_py, hunspell-es_sv, hunspell-es_uy, hunspell-es_ve, hunspell-fr, hunspell-he, hunspell-hu, hunspell-it, hunspell-nl, hunspell-pl, hunspell-ro, hunspell-ru) (optional) – Spell checking
- libnotify (libnotify-gitAUR) (optional) – Notification integration
- networkmanager (networkmanager-gitAUR, networkmanager-iwdAUR) (optional) – Location detection via available WiFi networks
- speech-dispatcher (speech-dispatcher-gitAUR) (optional) – Text-to-Speech
- xdg-desktop-portal (xdg-desktop-portal-gitAUR) (optional) – Screensharing with Wayland
Required by (1)
Sources (10)
- 0004-Bug-1912663-d2127a9.patch
- 18d19413472f-24a6ea8.patch
- b1cc62489fae-24a6ea8.patch
- https://archive.mozilla.org/pub/firefox/releases/115.17.0esr/source/firefox-115.17.0esr.source.tar.xz
- https://archive.mozilla.org/pub/firefox/releases/115.17.0esr/source/firefox-115.17.0esr.source.tar.xz.asc
- https://git.savannah.gnu.org/cgit/gnuzilla.git/snapshot/gnuzilla-a0b1a124e8e063a35389e1f20653047f37ca069b.tar.gz
- patch-python3.12-bug1831512-3d03cbf.patch
- patch-python3.12-bug1860051-3d03cbf.patch
- patch-python3.12-bug1866829-3d03cbf.patch
- patch-python3.12-bug1874280-3d03cbf.patch
Latest Comments
« First ‹ Previous 1 2 3 4 5 6 7 8 9 10 .. 86 Next › Last »
Ningen commented on 2024-02-12 14:16 (UTC)
xiota commented on 2024-02-12 14:01 (UTC) (edited on 2024-02-12 14:06 (UTC) by xiota)
@Ningen
allocate large swap file like in my previous comment
Not appropriate to change system parameters like that inside of PKGBUILDs.
mk_add_options MOZ_PARALLEL_BUILD=4
Not needed. mach
sets an appropriate value based on available cores.
ac_add_options MOZ_PGO=1
Not suitable for PKGBUILDs because doesn't work in clean chroot.
PGO makes building almost 3-5x longer
That is normal. PGO has three stages:
- Instrumented build.
- Profiling.
- Optimized build.
The PKGBUILD has been constructed to save the profile to reduce time for subsequent rebuilds by skipping to the last step.
Ningen commented on 2024-02-12 13:47 (UTC)
@xiota Yes I am using that option right now compiling on my more powerful pc, however looking at the memory requirements it's most likely still going to be going over any normal laptop memory + swap space, so in that case I think it's actually better to just leave as ac_add_options --enable-lto=full
actually and just allocate large swap file like in my previous comment.
I am going to be trying two different PKGBUILDS to see if I notice any improvements, because currently even on a good pc PGO makes building almost 3-5x longer. Namely, I was browsing the mozilla build docs and found that the option mk_add_options MOZ_PARALLEL_BUILD=4
could be used but isn't in the PKGBUILD, also, they don't really specify much about PGO on the docs so I am going to just try remove a large portion of the build() section replaced with the option ac_add_options MOZ_PGO=1
as they specify on the docs, not sure if it will work though
Ningen commented on 2024-02-12 10:36 (UTC)
Tried to build on my laptop with ~30GB of ram and it just failed before compiling toolkit/library/build/libxul.so
which were one of the last few components, very annoying. Retrying build with ~50GB ram on a more powerful computer.
@texer22 In the PKGBUILD on line 85 change if [ "${_only-compile}q" = q ]; then
to if [ 1 ]; then
. I would also not recommend building until someone figures out whether the PGO build really requires a lot of ram or there is an issue somewhere
texer22 commented on 2024-02-12 09:58 (UTC) (edited on 2024-02-12 09:58 (UTC) by texer22)
Cannot build...
==> Starting build()...
/home/user/.cache/paru/clone/icecat/PKGBUILD: line 195: cd: gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0: No such file or directory
==> ERROR: A failure occurred in build().
Aborting...
Ningen commented on 2024-02-12 05:20 (UTC)
@figue You're right it seems to be much more resource intensive than before PGO, I can't compile natively with 8GB ram and 8GiB swap space. That said, perhaps the only option is to make a very large swap file and use that temporarily for compile time such as https://files.catbox.moe/56bafh.sh I included this as the first line under prepare() before cd gnuzilla-${_commit}
, running it now and will let you know how it goes...
figue commented on 2024-02-11 15:25 (UTC) (edited on 2024-02-11 15:25 (UTC) by figue)
@xiota thank you for your PKGBUILD. I've merged a few things.
@Ningen 115.7.0 pushed
Ningen commented on 2024-02-11 09:14 (UTC)
@figue Ohh I see. Would you mind pushing the PKGBUILD for 115.7.0 anyway and I will see if I can compile?
I have currently tried your PKGBUILD here https://gist.github.com/figue/4a407a15e0eedfc2e88eb5de431b69f7 but there are weird things going on outside of your mentioned issue, so I would like to just try to build the regular way if you can push the updates and investigate
Pinned Comments
xiota commented on 2024-02-26 07:32 (UTC) (edited on 2024-08-08 03:44 (UTC) by xiota)
PKGBUILD has been updated. Major changes:
Notes:
_build_pgo_xvfb=false
. This will usexwayland-run
for profiling._build_pgo=false
.mk_add_options MOZ_PARALLEL_BUILD=___
around line 300. Pick a value less than number of cores and free RAM in GB. For example, on a system with 8 cores, 64GB total RAM, but only 6 GB free, the value should be set to 4 or 5.libxul.so
. Leave a comment if you have a potential solution.Having problems? Please provide details: processor make and model, number of cores,
free -m
, full log in pastebin, whether using AUR helper/makepkg/clean chroot, etc.