Package Details: icecat 115.18.0-1

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: 0.78
First Submitted: 2007-12-09 10:12 (UTC)
Last Updated: 2024-11-30 19:41 (UTC)

Dependencies (51)

Sources (10)

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:

  • Downloads Firefox ESR and localization using the source array. Files are saved for reuse.
  • Saves freshly patched IceCat sources in a tarball for reuse.
  • Saves the PGO profile for reuse.

Notes:

  • Currently requires clang/llvm 17, which has to be built from AUR.
  • Wayland users, consider setting _build_pgo_xvfb=false. This will use xwayland-run for profiling.
  • PGO should work now, but if it doesn't and you're willing to go without, try _build_pgo=false.
  • Running out of RAM? Try adding 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.
    • If a few people can confirm this is helpful, I will consider adding it as an additional option.
    • Main resource hog seems to be linking 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.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 .. 86 Next › Last »

agapito commented on 2024-02-20 00:24 (UTC) (edited on 2024-02-20 00:26 (UTC) by agapito)

PGO is not the problem, LTO is.

Building FF/Icecat with "ac_add_options --enable-lto=cross,full" needs 64G of RAM or 32G + a really big swap partition.

"ac_add_options --enable-lto=cross" needs less memory.

I guess, avoiding LTO is the solution here for people with 16G of memory or less.

figue commented on 2024-02-19 14:02 (UTC)

For those who have resource issues (code dumps, OOM kill, etc) try this PKGUILD and build IceCat this way:

https://gist.github.com/figue/1bb711434e92fc3d146e49679e77453a

env _build_pgo=false _build_pgo_reuse=false makepkg -sicC

figue commented on 2024-02-18 22:10 (UTC) (edited on 2024-02-18 22:10 (UTC) by figue)

@Rnek0 "Started Process Core Dump" means your computer can't build IceCat with PGO enabled (probably because insufficient memory). I'm testing a new approach with this package.

Rnek0 commented on 2024-02-17 22:33 (UTC)

Test with 115.7.0-2

Crash on compilation:

https://paste.sr.ht/~rnek0/155182515eb7b0be4e7286419c881c985595b1b2

Thanks for your work, it's great.

jghodd commented on 2024-02-17 00:38 (UTC)

Firefox's version has changed apparently, so not only does it not build, but I'll have to flag this out of date.


Downloading Firefox tarball
https://ftp.mozilla.org/pub/firefox/releases/115.8.0esr/source/firefox-115.8.0esr.source.tar.xz:
2024-02-16 19:33:51 ERROR 404: Not Found.
==> ERROR: A failure occurred in prepare().
    Aborting...

figue commented on 2024-02-16 20:48 (UTC)

@texer22 I'm not sure why paru are failing to build. Can you try with devtools extra-x86_64-build ?

texer22 commented on 2024-02-14 13:48 (UTC)

Cannot build.


The error occurred in mach itself. This is likely a bug in mach itself or a
fundamental problem with a loaded module.

You can invoke ``./mach busted`` to check if this issue is already on file. If it
isn't, please use ``./mach busted file general`` to report it. If ``./mach busted`` is
misbehaving, you can also inspect the dependencies of bug 1543241.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

mozbuild.mozconfig.MozconfigLoadException: Error loading mozconfig: /home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/.mozconfig

Evaluation of your mozconfig exited with an error. This could be triggered
by a command inside your mozconfig failing. Please change your mozconfig
to not error and/or to catch errors in executed commands.

mozconfig output:

/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/.mozconfig: line 1: _add_options: command not found


  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mach/mach/main.py", line 397, in run
    return self._run(argv)
           ^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mach/mach/main.py", line 486, in _run
    report_invocation_metrics(context.telemetry, handler.name)
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mach/mach/telemetry.py", line 85, in report_invocation_metrics
    filter_args(command, sys.argv, instance.topsrcdir, instance.topobjdir)
                                                       ^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/base.py", line 248, in topobjdir
    self._topobjdir = self.resolve_mozconfig_topobjdir(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/base.py", line 190, in resolve_mozconfig_topobjdir
    topobjdir = self.mozconfig.get("topobjdir") or default
                ^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/base.py", line 345, in mozconfig
    return self.base_mozconfig_info["mozconfig"]
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/base.py", line 335, in base_mozconfig_info
    return self.get_base_mozconfig_info(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/util.py", line 1054, in __call__
    self[args] = self.func(*args)
                 ^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/base.py", line 320, in get_base_mozconfig_info
    sandbox._value_for(sandbox["mozconfig_options"])
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 613, in _value_for
    return self._value_for_depends(self._depends[obj])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/util.py", line 1063, in method_call
    cache[args] = self.func(instance, *args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 625, in _value_for_depends
    value = obj.result()
            ^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/util.py", line 1063, in method_call
    cache[args] = self.func(instance, *args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 160, in result
    resolved_args = [self.sandbox._value_for(d) for d in self.dependencies]
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 160, in <listcomp>
    resolved_args = [self.sandbox._value_for(d) for d in self.dependencies]
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 616, in _value_for
    return self._value_for_depends(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/util.py", line 1063, in method_call
    cache[args] = self.func(instance, *args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 625, in _value_for_depends
    value = obj.result()
            ^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/util.py", line 1063, in method_call
    cache[args] = self.func(instance, *args)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 161, in result
    return self._func(*resolved_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/configure/__init__.py", line 1308, in wrapped
    return new_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/build/moz.configure/init.configure", line 117, in mozconfig
    mozconfig = loader.read_mozconfig(mozconfig)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/.cache/paru/clone/icecat/src/gnuzilla-dbe6da400cf4f28e5e893d0acb5022e23cf3afcf/output/icecat-115.7.0/python/mozbuild/mozbuild/mozconfig.py", line 185, in read_mozconfig
    raise MozconfigLoadException(path, MOZCONFIG_BAD_EXIT_CODE, lines)
==> ERROR: A failure occurred in build().
    Aborting...
error: failed to build 'icecat-115.7.0-2': 
error: packages failed to build: icecat-115.7.0-2


Ningen commented on 2024-02-14 08:13 (UTC)

@figue Worked with 4GB+30GiB swap, will probably work for you too

real 168m38.694s user 443m5.238s sys 36m15.910s