@figue Worked with 4GB+30GiB swap, will probably work for you too
real 168m38.694s
user 443m5.238s
sys 36m15.910s
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: | 251 |
Popularity: | 1.02 |
First Submitted: | 2007-12-09 10:12 (UTC) |
Last Updated: | 2024-04-19 02:20 (UTC) |
« First ‹ Previous 1 2 3 4 5 6 7 8 .. 84 Next › Last »
@figue Worked with 4GB+30GiB swap, will probably work for you too
real 168m38.694s
user 443m5.238s
sys 36m15.910s
I am not using Icecat but maybe you want to read this: https://bbs.archlinux.org/viewtopic.php?id=290946
I want to apologize. _only-compile was a test and I forgot to remove it (I have a new charge in the company I work and I'm a bit busy).
I have removed _only-compile. Changed enable-lto=cross.
Would you mind to test it again? I'll test it too (I have 16 Gb RAM here with 10 GB swap, should be enough?)
Think it's best to add a flag so that PGO can be optional
It's already in the PKGBUILD near the beginning (lines 9-10). To disable PGO, set an environment variable: _build_pgo=false makepkg
Most Firefox-based browsers currently have PGO enabled without option to disable (eg, firefox-nightly
). I suppose users who bother to build them are assumed to have the resources to do so. I tried measuring memory usage for both normal and PGO builds, and they both appear to use about the same amount of memory. In the logs, there are lines that look like:
Parallelism determined by memory: using 128 jobs for 128 cores based on 251.5 GiB RAM and estimated job size of 1.0 GiB
On machines with different number of cores and RAM that I tried, looks like the 1 GiB/job estimate is reasonably accurate. That usage is above baseline. So a system with 16 GiB baseline usage, 32 cores, 32 GiB RAM will run out of memory with 32 jobs. This scenario would need over 48 GiB. I would allocate double the GiB as cores to be "safe".
@figue Successfully built on my stronger pc with ~50GB swap (probably didn't need this much but previously ~30GB swap failed), not sure exactly how long it took because I had to leave it on overnight but it was still 4 hours + some. I can easily say that for any modern laptop this is still going to take over 20hrs to compile.
Think it's best to add a flag so that PGO can be optional as it won't be practical to build for most people, e.g env _PGO=true _SPEED=Y _LOCALE=en-CA makepkg -sirc
@rev.cressy The output folder is supposed to be created by makeicecat
on line 109. However, _only-compile
is an invalid variable name, which prevents the block from being run.
There is no directory "output" which is mentioned in PKGBUILD on line 159
@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
@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:
The PKGBUILD has been constructed to save the profile to reduce time for subsequent rebuilds by skipping to the last step.
@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
Pinned Comments
xiota commented on 2024-02-27 10:57 (UTC) (edited on 2024-02-27 10:59 (UTC) by xiota)
icecatbrowser.org
is unofficial, separate from GNU, which is stated at the site itself.classictetris.net
is used by the site owner to serve the prepatched sources. They are used only when_build_prepatched=true
to save time by skipping the patching step. The default isfalse
.The site was created to fill the gap after GNU stopped distributing prepatched sources and binaries. As far as I can tell, the
makeicecat
script is run without any modification, while this PKGBUILD does make some changes. For version 115.8.0, the only differences between the prepatched sources and a fresh patch from this PKGBUILD are:services/settings/dumps/monitor/changes
– "last_modified" and "collection" entries are different. This is expected because timestamps differ based on whenmakeicecat
is run.Some different
l10n
files (translations). This is also somewhat expected because the latest commit is checked out prior to patching. Exact contents can differ based on when the script is run..hg*
files and directories. They are not needed, and this PKGBUILD deletes them.xiota commented on 2024-02-26 07:32 (UTC) (edited on 2024-03-13 20:04 (UTC) by xiota)
PKGBUILD has been updated. Major changes:
Test builds can be expedited by:
_build_prepatched=true
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.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.