Package Details: icecat 115.10.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: 1.00
First Submitted: 2007-12-09 10:12 (UTC)
Last Updated: 2024-04-19 02:20 (UTC)

Dependencies (51)

Sources (3)

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 is false.

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 when makeicecat 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:

  • 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.

Test builds can be expedited by:

  • Using prepatched sources by setting _build_prepatched=true
  • Using a premade profile.

Notes:

  • 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.

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 .. 84 Next › Last »

xiota commented on 2024-02-20 02:36 (UTC)

Memory needed to build IceCat depends on number of cores and baseline memory usage. An absolute value, like 16GB or even 64GB, may be sufficient on some systems, but not others. zswap, zram, and tmpfs may reduce the amount of memory available for use during compilation.

@figue Firefox ESR 115.8.0 download link seems to be active now, but I don't see any official release announcement. Download links on the website still redirect to 115.7.0.

Several sed commands in prepare() are no longer needed or relevant.

  • _SPEED/_LOCALE settings fail.
  • brand.dtd is no longer referenced in makeicecat.
  • $(libdir)/$(MOZ_APP_NAME) is the default install path.

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