Package Details: floorp 11.24.0-1

Git Clone URL: https://aur.archlinux.org/floorp.git (read-only, click to copy)
Package Base: floorp
Description: Firefox-based web browser focused on performance and customizability
Upstream URL: https://github.com/Floorp-Projects/Floorp
Licenses: MPL-2.0
Submitter: nsk1010
Maintainer: nsk1010 (xiota)
Last Packager: xiota
Votes: 22
Popularity: 0.83
First Submitted: 2022-06-30 09:53 (UTC)
Last Updated: 2025-03-05 21:54 (UTC)

Dependencies (48)

Required by (1)

Sources (4)

Pinned Comments

xiota commented on 2024-06-13 08:25 (UTC) (edited on 2024-08-21 11:23 (UTC) by xiota)

Building this package takes a very long time. To avoid excessive rebuilds, updates will be delayed until the weekend following releases. aur/floorp-bin will be updated more quickly.

This package cannot be updated on the basis of blog posts. Wait until an actual release is available before flagging: https://github.com/Floorp-Projects/Floorp/releases/

If you have problems building this package, read and follow instructions in the other pinned comment.

xiota commented on 2024-01-17 22:35 (UTC) (edited on 2024-08-03 15:04 (UTC) by xiota)

aur/floorp now builds from source. Binary package available at aur/floorp-bin.

  • If you have problems building:

    • Try clearing cached sources.
    • Try building in a clean chroot.
    • Provide details needed to reproduce the problem: build environment, computer specs, graphics card, desktop environment, commands used to build, etc.
    • Provide the full log in a pastebin.
  • Some options are available by setting environment variables:

    • _build_pgo=false: Don't use profile-guided optimization (PGO). (Builds faster, but runs slower.)
    • _build_pgo_reuse=false: Make new PGO profile.
    • _build_pgo_xvfb=true: Profile with xvfb-run instead of wlheadless-run.
  • To reduce rebuild times, this package attempts to save and reuse PGO profiles for patch-level releases. Profiles are regenerated for new major and minor releases. (major.minor.patch)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 Next › Last »

jahiy commented on 2024-02-17 00:29 (UTC)

It is successful to compile it with pkgctl build (in Arch clean chroot) by using xvfb-run instead of wlheadless-run, but still with git repo.

Updated PKGBUILD here: https://gist.github.com/JaHIY/81cdb2bc36510f777ef3e7a3782cac64

jahiy commented on 2024-02-16 00:42 (UTC)

@xiota OK, I'll try to compile it again without sccache. And perhaps you are right. It is not the better way to use git repo instead of tar.gz.

xiota commented on 2024-02-15 22:10 (UTC)

@jahiy sccache is not useful with PGO. The cache prevents optimization or has to be discarded for the recompilation stage. Your build probably "succeeded" by silently disabling PGO.

Shallow clones have to be redownloaded, so waste bandwidth on rebuild, relative to the tarball. Shallow clones have to be setup by the user in makepkg.conf.

Your PKGBUILD also discards and redownloads submodules on rebuild, wasting more bandwidth.

jahiy commented on 2024-02-15 08:28 (UTC) (edited on 2024-02-15 08:29 (UTC) by jahiy)

@xiota

The bandwidth usage you mentioned cannot be ignored. Using git repo requires downloading about 4GB of data, while downloading tar.gz only requires 700MB. However, using git repo allows for the synchronization of submodules using git submodule, which is very convenient. Perhaps we can use the git clone -b <tagname> --depth 1 <repository> to obtain a shallow copy of the repo.

There's one more thing I almost forgot to mention. I also set --with-ccache=sccache in mozconfig, but I don't know whether it really speed up compilation.

xiota commented on 2024-02-15 07:25 (UTC) (edited on 2024-02-15 22:11 (UTC) by xiota)

@jahiy Thanks. I'll take a look. The problem with MOZ_PGO=1 is it previously didn't work in Arch clean chroot. This will probably take some time to solve.

The problem with using the git repo is it uses more bandwidth up front. With Floorp, you would probably make it up after [6] builds without clearing cache. For Firefox, probably over 15 builds would be required. I'll think about it more after I figure out the PGO issue.

jahiy commented on 2024-02-15 06:50 (UTC)

I rewrote the PKGBUILD, mainly in build() part. You can checkout it here. https://gist.github.com/JaHIY/81cdb2bc36510f777ef3e7a3782cac64

The following page introduced how to compile firefox with PGO. It works for me. https://firefox-source-docs.mozilla.org/build/buildsystem/pgo.html

The PGO method in official firefox PKGBUILD doesn't work for me. https://gitlab.archlinux.org/archlinux/packaging/packages/firefox/-/blob/main/PKGBUILD?ref_type=heads

And I also use git repo (tag) instead of tar.gz file.

jahiy commented on 2024-02-14 09:14 (UTC)

@xiota After set export XDG_RUNTIME_DIR="$srcdir/xdg" in prepare() , I got another error:

(/build/floorp/src/Floorp-11.9.0/obj/dist/floorp/floorp:25014): Gdk-CRITICAL **: 17:11:03.314: gdk_seat_get_keyboard: assertion 'GDK_IS_SEAT (seat)' failed
[Child 25016, Main Thread] WARNING: gdk_seat_get_keyboard: assertion 'GDK_IS_SEAT (seat)' failed: 'glib warning', file /build/floorp/src/Floorp-11.9.0/toolkit/xre/nsSigHandlers.cpp:167

(/build/floorp/src/Floorp-11.9.0/obj/dist/floorp/floorp:25016): Gdk-CRITICAL **: 17:11:03.330: gdk_seat_get_keyboard: assertion 'GDK_IS_SEAT (seat)' failed
console.error: ({})
JavaScript error: resource:///modules/sessionstore/TabState.sys.mjs, line 110: Error: Failed to load resource://floorp/modules/WorkspacesService.sys.mjs
JavaScript error: resource:///modules/sessionstore/TabState.sys.mjs, line 110: Error: Failed to load resource://floorp/modules/WorkspacesService.sys.mjs
JavaScript error: resource:///modules/sessionstore/TabState.sys.mjs, line 110: Error: Failed to load resource://floorp/modules/WorkspacesService.sys.mjs
JavaScript error: resource:///modules/sessionstore/SessionSaver.sys.mjs, line 55: Error: TelemetryStopwatch: key "FX_SESSION_RESTORE_COLLECT_DATA_MS" was already initialized
JavaScript error: resource:///modules/sessionstore/SessionSaver.sys.mjs, line 55: Error: TelemetryStopwatch: finishing nonexisting stopwatch. Histogram: "FX_SESSION_RESTORE_COLLECT_DATA_MS", key: ""
WARNING: At least one completion condition is taking too long to complete. Conditions: [{"name":"CrashMonitor: Writing notifications to file after receiving profile-before-change and awaiting all checkpoints written","state":{"profile-after-change":true,"final-ui-startup":true,"sessionstore-windows-restored":true,"quit-application-granted":true,"quit-application":true,"profile-change-net-teardown":true,"profile-change-teardown":true,"profile-before-change":true},"filename":"resource://gre/modules/CrashMonitor.sys.mjs","lineNumber":168,"stack":["resource://gre/modules/CrashMonitor.sys.mjs:init:168","resource://gre/modules/nsCrashMonitor.sys.mjs:observe:20"]}] Barrier: IOUtils: waiting for profileBeforeChange IO to complete
WARNING: At least one completion condition is taking too long to complete. Conditions: [{"name":"IOUtils Blocker (profile-before-change)","state":"(none)","filename":"/build/floorp/src/Floorp-11.9.0/dom/system/IOUtils.cpp","lineNumber":2232,"stack":"IOUtils::EventQueue::SetShutdownHooks"}] Barrier: profile-before-change
FATAL ERROR: AsyncShutdown timeout in IOUtils: waiting for profileBeforeChange IO to complete Conditions: [{"name":"CrashMonitor: Writing notifications to file after receiving profile-before-change and awaiting all checkpoints written","state":{"profile-after-change":true,"final-ui-startup":true,"sessionstore-windows-restored":true,"quit-application-granted":true,"quit-application":true,"profile-change-net-teardown":true,"profile-change-teardown":true,"profile-before-change":true},"filename":"resource://gre/modules/CrashMonitor.sys.mjs","lineNumber":168,"stack":["resource://gre/modules/CrashMonitor.sys.mjs:init:168","resource://gre/modules/nsCrashMonitor.sys.mjs:observe:20"]}] At least one completion condition failed to complete within a reasonable amount of time. Causing a crash to ensure that we do not leave the user with an unresponsive process draining resources.
WARNING: No crash reporter available
[Parent 24852, Main Thread] ###!!! ABORT: file resource://gre/modules/CrashMonitor.sys.mjs:168
Firefox exited with code -11 during profile initialization
Site not up-to-date reason: "/build/floorp/src/Floorp-11.9.0/obj/_virtualenvs/common" does not exist
[17:12:08.485] caught signal 15
[17:12:08.486] no-op renderer SHM seed: 192
==> ERROR: A failure occurred in build().
    Aborting...
==> ERROR: Build failed, check /var/lib/archbuild/extra-x86_64/jahiy-3/build

xiota commented on 2024-02-14 02:56 (UTC)

@Thr0TT1e @jahiy If not already set, XDG_RUNTIME_DIR is set to $srcdir/xdg in prepare(). Let me know if there are any other problems.

jahiy commented on 2024-02-13 09:21 (UTC)

I ran the command pkgctl build -I ~/.cache/yay/xwayland-run-git/xwayland-run-git-0.0.2.r3.gc5846be-1-x86_64.pkg.tar.zst , but I got the error:

 0:44.68 make[4]: Leaving directory '/build/floorp/src/Floorp-11.9.0/obj/browser/locales'
 0:44.68 make[4]: Entering directory '/build/floorp/src/Floorp-11.9.0/obj/browser/locales'
 0:45.06 make[4]: Leaving directory '/build/floorp/src/Floorp-11.9.0/obj/browser/locales'
 0:45.06 make[3]: Leaving directory '/build/floorp/src/Floorp-11.9.0/obj/browser/locales'
 0:45.06 make[2]: Leaving directory '/build/floorp/src/Floorp-11.9.0/obj/browser/installer'
 0:45.07 make[1]: Leaving directory '/build/floorp/src/Floorp-11.9.0/obj/browser/installer'
 0:45.07 make: Leaving directory '/build/floorp/src/Floorp-11.9.0/obj'
  Parallelism determined by memory: using 4 jobs for 4 cores based on 22.4 GiB RAM and estimated job size of 1.0 GiB
Date: 2024-02-13 CST
[15:43:02.567] weston 13.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: 13.0.0
[15:43:02.567] Command line: weston --no-config --backend headless --width=1920 --height=1080 --socket wayland-24788
[15:43:02.567] OS: Linux, 6.7.4-x64v3-xanmod1-1-edge, #1 SMP PREEMPT_DYNAMIC Sat, 10 Feb 2024 03:30:17 +0000, x86_64
[15:43:02.567] Flight recorder: enabled
[15:43:02.567] fatal: environment variable XDG_RUNTIME_DIR is not set.
Refer to your distribution on how to get it, or
http://www.freedesktop.org/wiki/Specifications/basedir-spec
on how to implement it.
Failed to connect to the compositor!

==> ERROR: A failure occurred in build().
    Aborting...
==> ERROR: Build failed, check /var/lib/archbuild/extra-x86_64/jahiy-1/build