The officially official Devuan Forum!

You are not logged in.

#1 2025-10-16 16:39:04

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

How to disable pulse-rust backend in Firefox

In Rust We Trust?!?!

This repo implemented a working Spectre V1 for the Rust language. Using our Spectre V1 transient execution attack, the attack code is able to force a bounds-checked Rust array variable access to read any byte in the Rust application's memory. This attack should be of interest to Rust developers, since Rust is a memory-safe language, and this attack performs an arbitrary buffer overread, thereby demonstrating a vulnerability in Rusts' ability to stop memory access errors.
_https://github.com/toddmaustin/spectre-rust

$ firefox --version
Mozilla Firefox 140.3.1esr

NOTE: In "Firefox ESR," ESR stands for Extended Support Release. Debian's Firefox has an "extended support" largely because, perhaps, Debian source packages of Firefox are a sort of broken. They have unsatisfiable build dependencies. While Firefox ESR is supposed to receive crucial security and stability updates, it doesn't get the new feature updates. It is only beginning of troubles, of course.

The phrase "A spectre is haunting Linux - the spectre of Rust" is a play on the opening line of The Communist Manifesto, using the "spectre of Rust" to describe the growing but controversial integration of the Rust programming language into the Linux kernel. This "haunting" refers to the significant debate and resistance among some kernel developers regarding the introduction of a new language, not just Rust itself, which they fear will complicate maintenance, increase the burden on developers, and potentially fragment the codebase. The controversy stems from concerns about the long-term maintainability of a multi-language project and resistance to replacing or modifying core components written in C...
The phrase highlights the tension between the Rust-for-Linux initiative and established kernel maintainers who prefer to keep the kernel primarily in C for maintainability and searchability, particularly in core subsystems like DMA.
Rust's integration into the kernel is happening gradually, with foundational support merged in Linux 6.1 and projects like the uutils (command-line utilities) being rewritten in Rust as potential drop-in replacements for C-based versions.

Rust for Linux
Rust for Linux is the project adding support for the Rust language to the Linux kernel.
_https://rust-for-linux.com/

"Hmm, this sounds familiar...", a sort of new cargo cult, perhaps (think of pulseaudo, systemd, etc.). It seems that they are going to integrate a sort of pulseaudio into the Linux kernel.

Firefox ESR (Devuan/Debian) has both ALSA and pulse-rust backends.
The pulse-rust backend can be disabled in the "hidden preferences" of Firefox.

Configuration Editor for Firefox
_https://support.mozilla.org/en-US/kb/about-config-editor-firefox

1. Run Firefox with apulse

apulse firefox

2. Type about:support in the address bar

Application Basics
Name 	Firefox
Version 	140.3.1esr
...
Media
Audio Backend	pulse-rust

3. Open new tab

Type about:config in the address bar

Type into "Search preference name"

media.cubeb.backend

Select "string"
Press "+"
Type "alsa" then Enter

As a result, you have a new entry in Firefox's "hidden preferences"

media.cubeb.backend		alsa

Quit Firefox and start it again with apulse

apulse firefox

Type about:support in the address bar, and you will see alsa backend instead of pulse-rust

Application Basics
Name 	Firefox
Version 	140.3.1esr
Build ID 	20250922173505
...
Media
Audio Backend	alsa

If you do not suffer from dementia, try to compile the newest version of Firefox without pulseaudio. It is not difficult. A manual for Ubuntu newbies is available here:
_https://firefox-source-docs.mozilla.org/setup/linux_build.html

ac_add_options --enable-audio-backends=alsa
$ firefox-nightly --version
Mozilla Firefox Nightly 146.0a1

Last edited by igorzwx (2025-10-16 20:19:43)

Offline

#2 2025-10-16 21:46:08

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

think this kubuntu / ubuntu is pushing this rust also;

now to get this to function >
ac_add_options --enable-audio-backends=alsa

is it mandatory  to uninstall pipewire/pulse?

since tried this here, and the "pulse-rust" would persist, even after inserting "media.cubeb.backend alsa"

maybe just did it wrong (first seuccusful compile)

for kubuntu 24.04

./mach run --version
 0:00.13 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox --version -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default
[73542] Sandbox: CanCreateUserNamespace() unshare(CLONE_NEWPID): EPERM
Mozilla Firefox 146.0a1
apulse ./mach run
 0:00.16 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default
[71741] Sandbox: CanCreateUserNamespace() unshare(CLONE_NEWPID): EPERM
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device
 (t=0.0968895) [GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device

JavaScript warning: resource://gre/modules/Troubleshoot.sys.mjs, line 726: WebGL context was lost.
JavaScript warning: resource://gre/modules/Troubleshoot.sys.mjs, line 726: WebGL context was lost.
ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
[apulse] [error] do_connect_pcm: can't open playback device "default". Error code -2 (No such file or directory)
[apulse] [error] do_connect_pcm: failed to open ALSA device. Apulse does no resampling or format conversion, leaving that task to ALSA plugins. Ensure that selected device is capable of playing a particular sample format at a particular rate. They have to be supported by either hardware directly, or by "plug" and "dmix" ALSA plugins which will perform required conversions on CPU.
ALSA lib pcm_dsnoop.c:567:(snd_pcm_dsnoop_open) unable to open slave
[apulse] [error] do_connect_pcm: can't open capture device "default". Error code -2 (No such file or directory)
[apulse] [error] do_connect_pcm: failed to open ALSA device. Apulse does no resampling or format conversion, leaving that task to ALSA plugins. Ensure that selected device is capable of playing a particular sample format at a particular rate. They have to be supported by either hardware directly, or by "plug" and "dmix" ALSA plugins which will perform required conversions on CPU.
JavaScript error: resource:///modules/AboutNewTab.sys.mjs, line 242: NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIObserverService.removeObserver]
JavaScript error: resource://gre/modules/JSONFile.sys.mjs, line 432: TypeError: can't access property "toJSONSafe", this._data is null
rich@rich-x670p:~/Programs/firefox$ apulse ./mach run
 0:00.16 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default
[72475] Sandbox: CanCreateUserNamespace() unshare(CLONE_NEWPID): EPERM
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device
 (t=0.0918407) [GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device

JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval, line 6489: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval line 1 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval line 1 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval line 1 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval line 1 > eval line 1 > eval, line 1: unreachable code after return statement
JavaScript warning: https://www.google.com/search?client=firefox-b-d&q=alsa+dev1+galaxy line 2 > eval line 6489 > eval line 1 > eval line 1 > eval, line 1: unreachable code after return statement
JavaScript warning: resource://gre/modules/Troubleshoot.sys.mjs, line 726: WebGL context was lost.
JavaScript warning: resource://gre/modules/Troubleshoot.sys.mjs, line 726: WebGL context was lost.
ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
[apulse] [error] do_connect_pcm: can't open playback device "default". Error code -2 (No such file or directory)
[apulse] [error] do_connect_pcm: failed to open ALSA device. Apulse does no resampling or format conversion, leaving that task to ALSA plugins. Ensure that selected device is capable of playing a particular sample format at a particular rate. They have to be supported by either hardware directly, or by "plug" and "dmix" ALSA plugins which will perform required conversions on CPU.
ALSA lib pcm_dsnoop.c:567:(snd_pcm_dsnoop_open) unable to open slave
[apulse] [error] do_connect_pcm: can't open capture device "default". Error code -2 (No such file or directory)
[apulse] [error] do_connect_pcm: failed to open ALSA device. Apulse does no resampling or format conversion, leaving that task to ALSA plugins. Ensure that selected device is capable of playing a particular sample format at a particular rate. They have to be supported by either hardware directly, or by "plug" and "dmix" ALSA plugins which will perform required conversions on CPU.
console.error: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "<unknown>"  data: no]

Offline

#3 2025-10-16 22:49:42

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

Is it your build of Firefox? If it is your build it is a success.
Although there are still some minor problems to fix.

Mozilla Firefox 146.0a1 was compiled with default configuration, that is, with pulseaudio and without ALSA.

kapqa wrote:

the "pulse-rust" would persist, even after inserting "media.cubeb.backend alsa"

"pulse-rust" persists simply because ALSA backend is not available - your Firefox was compiled without ALSA backend.

The next step is create "mozconfig" and recompile Firefox.

To use apulse without problems, you have to install and configure the fftrate plugin.

Read the output of your terminal:

$ apulse ./mach run
ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
[apulse] [error] do_connect_pcm: failed to open ALSA device. Apulse does no resampling or format conversion, leaving that task to ALSA plugins. Ensure that selected device is capable of playing a particular sample format at a particular rate. They have to be supported by either hardware directly, or by "plug" and "dmix" ALSA plugins which will perform required conversions on CPU.
ALSA lib pcm_dsnoop.c:567:(snd_pcm_dsnoop_open) unable to open slave

This means that you have to create ALSA config with arateconf.

Another option is to compile Firefox with ALSA and without pulseaudio (without "pulse-rust").
In this case, you can use Firefox without apulse.
But a simple ALSA config might be needed (default pcm, etc.) You have already tried such ALSA configs for your RaspberryPI.

It is not mandatory to uninstall pipewire/pulse, but it is advisable.
KDE depends on pipewire. Why not remove them both together with Ubuntu?

I will post a detailed instruction for Firefox with "mozconfig".

Last edited by igorzwx (2025-10-17 04:13:36)

Offline

#4 2025-10-17 01:41:05

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

kapqa wrote:
./mach run --version
 0:00.13 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox --version -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default
[73542] Sandbox: CanCreateUserNamespace() unshare(CLONE_NEWPID): EPERM
Mozilla Firefox 146.0a1

Ubuntu blocks UserNamespace by default with AppArmor unless specific binary is in allowlist.
_https://bugzilla.mozilla.org/show_bug.cgi?id=1981001

It is Ubuntu specific. I do not have such Sandbox messages on Devuan.
Why do you need Ubuntu, if you can install Devuan? Are you a masochist?

To add a binary to the AppArmor allowlist, you need to create or modify an AppArmor profile for that binary, specifying the necessary permissions. This typically involves editing the profile file located in /etc/apparmor.d/ and adding the appropriate rules, then reloading the AppArmor profiles with sudo systemctl reload apparmor.

One may enjoy this sort of masochism. It seems very promising.

kapqa wrote:
./mach run --version
 0:00.13 /home/rich/Programs/firefox/objdir-frontend/dist/bin/firefox --version -profile /home/rich/Programs/firefox/objdir-frontend/tmp/profile-default

This means:
sourcedir  - firefox
builddir   - firefox/objdir-frontend

To create mozconfig, run

mousepad /home/rich/Programs/firefox/.mozconfig

Copy and past:

# file: .mozconfig (in sourcedir)

# For old computers -j2 or -j3
# If you need it, uncomment the following line
# mk_add_options MOZ_MAKE_FLAGS=-j3

# Rename Firefox to "Firefox Nightly"
mk_add_options MOZ_APP_DISPLAYNAME="Firefox Nightly"
mk_add_options MOZ_SIMPLE_PACKAGE_NAME=firefox-nightly
ac_add_options --with-app-basename="Firefox Nightly"

ac_add_options --enable-project=browser
ac_add_options --with-app-name=firefox-nightly
ac_add_options --prefix=/usr

# Enable ALSA instead of "pulse-rust"
ac_add_options --enable-audio-backends=alsa

and save it.

cd to sourcedir

cd /home/rich/Programs/firefox 

Export the LDFLAGS+

export LDFLAGS+=" -Wl,--no-keep-memory"

Build Firefox

./mach build -v --priority normal

Test

./mach run 

If it works, install it to a folder debdir

DESTDIR="$(dirname $(pwd))"/debdir ./mach install

It will be installed into the folder /home/rich/Programs/debdir
The firefox-nightly binary (executable) will be inside the folder
debdir/usr/lib/firefox-nightly/

Test run

/home/rich/Programs/debdir/usr/lib/firefox-nightly/firefox-nightly
/home/rich/Programs/debdir/usr/lib/firefox-nightly/firefox-nightly --version

If it works, you can make a Debian package of debdir.

A detailed step by step manual "how to create a Debian package of debdir" is here:
_https://dev1galaxy.org/viewtopic.php?id=7214

Last edited by igorzwx (2025-10-17 04:19:05)

Offline

#5 2025-10-17 11:52:16

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

-------

the install of firefox had already .mozconfig since it is mentioned in the beginner instructions,
just added your line and went with it.

# Automatically download and use compiled C++ components:
ac_add_options --enable-artifact-builds
ac_add_options --enable-audio-backends=alsa
# Write build artifacts to:
mk_add_options MOZ_OBJDIR=./objdir-frontend

thought it would take hourse to build but apparently it went through quick.

with your new instructions .mozconfig am getting a lot of error,
so maybe need to adapt;

first if says no "rustc" present whereas previously didnt ask for,
and after installing it via

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

there is other error

0:37.96        ../../../dist/include ../../../dist/xpcrs . \
 0:37.96        xulapp /home/rich/Programs/firefox/toolkit/xre/nsINativeAppSupport.idl /home/rich/Programs/firefox/toolkit/xre/nsIXREDirProvider.idl
 0:37.96 /home/rich/.mozbuild/srcdirs/firefox-d0ddc02d7b04/_virtualenvs/build/bin/python /home/rich/Programs/firefox/python/mozbuild/mozbuild/action/xpidl-process.py --depsdir .deps \
 0:37.96        --bindings-conf /home/rich/Programs/firefox/dom/bindings/Bindings.conf \
 0:37.98        -I /home/rich/Programs/firefox/accessible/interfaces -I /home/rich/Programs/firefox/browser/components -I /home/rich/Programs/firefox/browser/components/migration -I /home/rich/Programs/firefox/browser/components/shell -I /home/rich/Programs/firefox/caps -I /home/rich/Programs/firefox/chrome -I /home/rich/Programs/firefox/devtools/platform -I /home/rich/Programs/firefox/docshell/base -I /home/rich/Programs/firefox/docshell/shistory -I /home/rich/Programs/firefox/dom/audiochannel -I /home/rich/Programs/firefox/dom/base -I /home/rich/Programs/firefox/dom/bindings -I /home/rich/Programs/firefox/dom/commandhandler -I /home/rich/Programs/firefox/dom/console -I /home/rich/Programs/firefox/dom/events -I /home/rich/Programs/firefox/dom/file/ipc -I /home/rich/Programs/firefox/dom/indexedDB -I /home/rich/Programs/firefox/dom/interfaces/base -I /home/rich/Programs/firefox/dom/interfaces/events -I /home/rich/Programs/firefox/dom/interfaces/geolocation -I /home/rich/Programs/firefox/dom/interfaces/notification -I /home/rich/Programs/firefox/dom/interfaces/payments -I /home/rich/Programs/firefox/dom/interfaces/push -I /home/rich/Programs/firefox/dom/interfaces/security -I /home/rich/Programs/firefox/dom/interfaces/sidebar -I /home/rich/Programs/firefox/dom/interfaces/storage -I /home/rich/Programs/firefox/dom/interfaces/xul -I /home/rich/Programs/firefox/dom/ipc -I /home/rich/Programs/firefox/dom/localstorage -I /home/rich/Programs/firefox/dom/media -I /home/rich/Programs/firefox/dom/media/autoplay -I /home/rich/Programs/firefox/dom/media/bridge -I /home/rich/Programs/firefox/dom/media/gmp -I /home/rich/Programs/firefox/dom/media/test/rdd_process_xpcom -I /home/rich/Programs/firefox/dom/media/webspeech/recognition -I /home/rich/Programs/firefox/dom/media/webspeech/synth -I /home/rich/Programs/firefox/dom/media/webvtt -I /home/rich/Programs/firefox/dom/network/interfaces -I /home/rich/Programs/firefox/dom/notification -I /home/rich/Programs/firefox/dom/power -I /home/rich/Programs/firefox/dom/privateattribution -I /home/rich/Programs/firefox/dom/quota -I /home/rich/Programs/firefox/dom/security -I /home/rich/Programs/firefox/dom/serializers -I /home/rich/Programs/firefox/dom/simpledb -I /home/rich/Programs/firefox/dom/storage -I /home/rich/Programs/firefox/dom/system -I /home/rich/Programs/firefox/dom/webauthn -I /home/rich/Programs/firefox/dom/webbrowserpersist -I /home/rich/Programs/firefox/dom/workers -I /home/rich/Programs/firefox/dom/xslt/xslt -I /home/rich/Programs/firefox/dom/xul -I /home/rich/Programs/firefox/editor -I /home/rich/Programs/firefox/editor/composer -I /home/rich/Programs/firefox/editor/spellchecker -I /home/rich/Programs/firefox/editor/txmgr -I /home/rich/Programs/firefox/extensions/permissions -I /home/rich/Programs/firefox/extensions/spellcheck/idl -I /home/rich/Programs/firefox/gfx/src -I /home/rich/Programs/firefox/gfx/thebes -I /home/rich/Programs/firefox/image -I /home/rich/Programs/firefox/intl/locale -I /home/rich/Programs/firefox/intl/strres -I /home/rich/Programs/firefox/intl/uconv -I /home/rich/Programs/firefox/ipc/glue/test/utility_process_xpcom -I /home/rich/Programs/firefox/js/xpconnect/idl -I /home/rich/Programs/firefox/js/xpconnect/tests/idl -I /home/rich/Programs/firefox/layout/base -I /home/rich/Programs/firefox/layout/inspector -I /home/rich/Programs/firefox/layout/style -I /home/rich/Programs/firefox/layout/xul/tree -I /home/rich/Programs/firefox/modules/libjar -I /home/rich/Programs/firefox/modules/libjar/zipwriter -I /home/rich/Programs/firefox/modules/libpref -I /home/rich/Programs/firefox/netwerk/base -I /home/rich/Programs/firefox/netwerk/base/http-sfv -I /home/rich/Programs/firefox/netwerk/cache2 -I /home/rich/Programs/firefox/netwerk/cookie -I /home/rich/Programs/firefox/netwerk/dns -I /home/rich/Programs/firefox/netwerk/mime -I /home/rich/Programs/firefox/netwerk/protocol/about -I /home/rich/Programs/firefox/netwerk/protocol/data -I /home/rich/Programs/firefox/netwerk/protocol/file -I /home/rich/Programs/firefox/netwerk/protocol/http -I /home/rich/Programs/firefox/netwerk/protocol/res -I /home/rich/Programs/firefox/netwerk/protocol/viewsource -I /home/rich/Programs/firefox/netwerk/protocol/websocket -I /home/rich/Programs/firefox/netwerk/protocol/webtransport -I /home/rich/Programs/firefox/netwerk/socket -I /home/rich/Programs/firefox/netwerk/streamconv -I /home/rich/Programs/firefox/netwerk/streamconv/converters -I /home/rich/Programs/firefox/netwerk/test/httpserver -I /home/rich/Programs/firefox/netwerk/url-classifier -I /home/rich/Programs/firefox/netwerk/wifi -I /home/rich/Programs/firefox/parser/html -I /home/rich/Programs/firefox/parser/htmlparser -I /home/rich/Programs/firefox/remote/components -I /home/rich/Programs/firefox/security/manager/ssl -I /home/rich/Programs/firefox/security/sandbox/common -I /home/rich/Programs/firefox/security/sandbox/linux/interfaces -I /home/rich/Programs/firefox/services/interfaces -I /home/rich/Programs/firefox/startupcache -I /home/rich/Programs/firefox/storage -I /home/rich/Programs/firefox/toolkit/components/alerts -I /home/rich/Programs/firefox/toolkit/components/antitracking -I /home/rich/Programs/firefox/toolkit/components/antitracking/bouncetrackingprotection -I /home/rich/Programs/firefox/toolkit/components/asyncshutdown -I /home/rich/Programs/firefox/toolkit/components/autocomplete -I /home/rich/Programs/firefox/toolkit/components/backgroundhangmonitor -I /home/rich/Programs/firefox/toolkit/components/backgroundtasks -I /home/rich/Programs/firefox/toolkit/components/bitsdownload -I /home/rich/Programs/firefox/toolkit/components/browser -I /home/rich/Programs/firefox/toolkit/components/captivedetect -I /home/rich/Programs/firefox/toolkit/components/cascade_bloom_filter -I /home/rich/Programs/firefox/toolkit/components/cleardata -I /home/rich/Programs/firefox/toolkit/components/commandlines -I /home/rich/Programs/firefox/toolkit/components/contentanalysis -I /home/rich/Programs/firefox/toolkit/components/cookiebanners -I /home/rich/Programs/firefox/toolkit/components/crashes -I /home/rich/Programs/firefox/toolkit/components/credentialmanagement -I /home/rich/Programs/firefox/toolkit/components/downloads -I /home/rich/Programs/firefox/toolkit/components/enterprisepolicies -I /home/rich/Programs/firefox/toolkit/components/extensions -I /home/rich/Programs/firefox/toolkit/components/finalizationwitness -I /home/rich/Programs/firefox/toolkit/components/find -I /home/rich/Programs/firefox/toolkit/components/glean/xpcom -I /home/rich/Programs/firefox/toolkit/components/kvstore -I /home/rich/Programs/firefox/toolkit/components/media -I /home/rich/Programs/firefox/toolkit/components/ml -I /home/rich/Programs/firefox/toolkit/components/mozintl -I /home/rich/Programs/firefox/toolkit/components/parentalcontrols -I /home/rich/Programs/firefox/toolkit/components/passwordmgr -I /home/rich/Programs/firefox/toolkit/components/places -I /home/rich/Programs/firefox/toolkit/components/processtools -I /home/rich/Programs/firefox/toolkit/components/remote -I /home/rich/Programs/firefox/toolkit/components/reputationservice -I /home/rich/Programs/firefox/toolkit/components/resistfingerprinting -I /home/rich/Programs/firefox/toolkit/components/satchel -I /home/rich/Programs/firefox/toolkit/components/search -I /home/rich/Programs/firefox/toolkit/components/sessionstore -I /home/rich/Programs/firefox/toolkit/components/shell -I /home/rich/Programs/firefox/toolkit/components/startup/public -I /home/rich/Programs/firefox/toolkit/components/telemetry/core -I /home/rich/Programs/firefox/toolkit/components/telemetry/dap -I /home/rich/Programs/firefox/toolkit/components/terminator -I /home/rich/Programs/firefox/toolkit/components/thumbnails -I /home/rich/Programs/firefox/toolkit/components/timermanager -I /home/rich/Programs/firefox/toolkit/components/typeaheadfind -I /home/rich/Programs/firefox/toolkit/components/url-classifier -I /home/rich/Programs/firefox/toolkit/components/urlformatter -I /home/rich/Programs/firefox/toolkit/components/windowcreator -I /home/rich/Programs/firefox/toolkit/components/windowwatcher -I /home/rich/Programs/firefox/toolkit/components/xulstore -I /home/rich/Programs/firefox/toolkit/modules -I /home/rich/Programs/firefox/toolkit/mozapps/extensions -I /home/rich/Programs/firefox/toolkit/mozapps/update -I /home/rich/Programs/firefox/toolkit/profile -I /home/rich/Programs/firefox/toolkit/xre -I /home/rich/Programs/firefox/tools/profiler/gecko -I /home/rich/Programs/firefox/uriloader/base -I /home/rich/Programs/firefox/uriloader/exthandler -I /home/rich/Programs/firefox/uriloader/prefetch -I /home/rich/Programs/firefox/widget -I /home/rich/Programs/firefox/xpcom/base -I /home/rich/Programs/firefox/xpcom/components -I /home/rich/Programs/firefox/xpcom/ds -I /home/rich/Programs/firefox/xpcom/io -I /home/rich/Programs/firefox/xpcom/system -I /home/rich/Programs/firefox/xpcom/tests -I /home/rich/Programs/firefox/xpcom/threads -I /home/rich/Programs/firefox/xpfe/appshell \
 0:37.98        ../../../dist/include ../../../dist/xpcrs . \
 0:37.98        zipwriter /home/rich/Programs/firefox/modules/libjar/zipwriter/nsIZipWriter.idl
 0:37.98 config/makefiles/xpidl/xptdata.stub
 0:37.99 /home/rich/.mozbuild/srcdirs/firefox-d0ddc02d7b04/_virtualenvs/build/bin/python /home/rich/Programs/firefox/xpcom/reflect/xptinfo/xptcodegen.py /home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu/xpcom/reflect/xptinfo/xptdata.cpp ../../../dist/include/xptdata.h Bits.xpt accessibility.xpt alerts.xpt appshell.xpt appstartup.xpt autocomplete.xpt autoplay.xpt backgroundhangmonitor.xpt browsercompsbase.xpt caps.xpt captivedetect.xpt cascade_bindings.xpt chrome.xpt commandhandler.xpt commandlines.xpt composer.xpt content_events.xpt content_geckomediaplugins.xpt docshell.xpt dom.xpt dom_audiochannel.xpt dom_base.xpt dom_bindings.xpt dom_events.xpt dom_geolocation.xpt dom_identitycredential.xpt dom_indexeddb.xpt dom_localstorage.xpt dom_media.xpt dom_network.xpt dom_notification.xpt dom_payments.xpt dom_power.xpt dom_push.xpt dom_quota.xpt dom_security.xpt dom_serializers.xpt dom_sidebar.xpt dom_simpledb.xpt dom_storage.xpt dom_system.xpt dom_webauthn.xpt dom_webspeechrecognition.xpt dom_webspeechsynth.xpt dom_workers.xpt dom_xslt.xpt dom_xul.xpt downloads.xpt editor.xpt enterprisepolicies.xpt extensions.xpt exthandler.xpt fastfind.xpt fog.xpt gfx.xpt html5.xpt htmlparser.xpt http-sfv.xpt imglib2.xpt inspector.xpt intl.xpt jar.xpt jsdevtools.xpt kvstore.xpt layout_base.xpt layout_style.xpt layout_xul_tree.xpt locale.xpt loginmgr.xpt migration.xpt mimetype.xpt ml.xpt mozfind.xpt mozintl.xpt necko.xpt necko_about.xpt necko_cache2.xpt necko_cookie.xpt necko_dns.xpt necko_file.xpt necko_http.xpt necko_res.xpt necko_socket.xpt necko_strconv.xpt necko_viewsource.xpt necko_websocket.xpt necko_webtransport.xpt necko_wifi.xpt parentalcontrols.xpt peerconnection.xpt permissions.xpt pipnss.xpt places.xpt pref.xpt prefetch.xpt privateattribution.xpt profiler.xpt rdd_process_xpcom_test.xpt remote.xpt reputationservice.xpt sandbox.xpt satchel.xpt services.xpt sessionstore.xpt shellservice.xpt shistory.xpt spellchecker.xpt startupcache.xpt storage.xpt telemetry.xpt test_necko.xpt thumbnails.xpt toolkit_antitracking.xpt toolkit_asyncshutdown.xpt toolkit_backgroundtasks.xpt toolkit_cleardata.xpt toolkit_contentanalysis.xpt toolkit_cookiebanners.xpt toolkit_crashservice.xpt toolkit_finalizationwitness.xpt toolkit_media.xpt toolkit_modules.xpt toolkit_processtools.xpt toolkit_resistfingerprinting.xpt toolkit_search.xpt toolkit_shell.xpt toolkit_terminator.xpt toolkit_xulstore.xpt toolkitprofile.xpt toolkitremote.xpt txmgr.xpt txtsvc.xpt uconv.xpt update.xpt uriloader.xpt url-classifier.xpt urlformatter.xpt utility_process_xpcom_test.xpt webBrowser_core.xpt webbrowserpersist.xpt webextensions.xpt webvtt.xpt widget.xpt windowcreator.xpt windowwatcher.xpt xpcom_base.xpt xpcom_components.xpt xpcom_ds.xpt xpcom_io.xpt xpcom_system.xpt xpcom_threads.xpt xpcomtest.xpt xpconnect.xpt xpctest.xpt xul.xpt xulapp.xpt zipwriter.xpt
 0:37.99 gmake[5]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu/config/makefiles/xpidl'
 0:37.99 gmake[4]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu/xpcom/xpidl'
 0:37.99 gmake[4]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu/dom/bindings'
 0:38.21 touch ipdl.track
 0:38.21 gmake[4]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu/ipc/ipdl'
 0:38.21 gmake[3]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu'
 0:38.21 gmake[2]: *** [/home/rich/Programs/firefox/config/recurse.mk:34: export] Error 2
 0:38.21 gmake[2]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu'
 0:38.21 gmake[1]: *** [/home/rich/Programs/firefox/config/rules.mk:359: default] Error 2
 0:38.21 gmake[1]: Leaving directory '/home/rich/Programs/firefox/obj-x86_64-pc-linux-gnu'
 0:38.21 gmake: *** [client.mk:60: build] Error 2
 0:38.31 W 0 compiler warnings present.

since have problem also with wayland for some handling of PiP,
might ditch it altogether Ubuntu,
and use for the moment Linux Mint, since from what heard it does not force Wayland or Rust?
or maybe i am mistaken,
also there are no Snap present, which is rather painful on Ubuntu if you want another firefox than snap.

Thank you again for the help, greatly appreciated;
wanted to build firefox on a Powerpc g5, since it runs still debian 7, but never got to it really, so this is really the first attempt to firefox build.

0:13.24 ./application.ini.h.stub
 0:14.37 warning: patch for `init_rust_components` uses the features mechanism. default-features and features will not take effect because the patch dependency does not support this mechanism
 0:14.37 warning: patch for `logins` uses the features mechanism. default-features and features will not take effect because the patch dependency does not support this mechanism
 0:14.37 error: failed to select a version for the requirement `serde = "^1"` (locked to 1.0.228)
 0:14.37 candidate versions found which didn't match: 1.0.227
 0:14.37 location searched: directory source `/home/rich/Programs/firefox/third_party/rust` (which is replacing registry `crates-io`)
 0:14.37 required by package `nmhproxy v0.1.0 (/home/rich/Programs/firefox/browser/app/nmhproxy)`
 0:14.37 perhaps a crate was updated and forgotten to be re-vendored?
 0:14.37 As a reminder, you're using offline mode (--frozen) which can sometimes cause surprising resolution failures, if this error is too confusing you may wish to retry without `--frozen`.
 0:14.38 gmake[3]: *** [backend.mk:1227: config/.deps/cbindgen-metadata.json.stub] Error 101
 0:14.38 gmake[3]: *** Waiting for unfinished jobs....
 0:14.45 gmake[2]: *** [/home/rich/Programs/firefox/config/recurse.mk:34: export] Error 2
 0:14.45 gmake[1]: *** [/home/rich/Programs/firefox/config/rules.mk:359: default] Error 2
 0:14.45 gmake: *** [client.mk:60: build] Error 2
 0:14.55 W 0 compiler warnings present.

Last edited by kapqa (2025-10-24 12:39:38)

Offline

#6 2025-10-17 12:14:27

stargate-sg1-cheyenne-mtn
Member
Registered: 2023-11-27
Posts: 394  

Re: How to disable pulse-rust backend in Firefox

looked at this webpage briefly and it seems like it might have some value in your apple mac endeavours

https://lowendmac.com/2018/installing-linux-on-powerpc-macs/


Be Excellent to each other and Party On!
https://www.youtube.com/watch?v=rph_1DODXDU
https://en.wikipedia.org/wiki/Bill_%26_Ted%27s_Excellent_Adventure
Do unto others as you would have them do instantaneously back to you!

Offline

#7 2025-10-17 12:21:27

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

@stargate, yehyeh, know this site, have consulted it many times.
but since stalled the efforts since have spent many hours and the payback on powerpc g5 with newer linux has been poor; but there are others who have ventured far better; i am stuck at debian 7, but for the moment that is enough, just cannot run the latest software on it.

Offline

#8 2025-10-17 14:02:56

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

@kapqa

Your build failed, because pre-built Artifacts are not supposed to be modified and recompiled.

You installed the wrong thing, because ...<censored>
because you are always trying to minimize "thinking and making".

Just as muscles degrade from disuse, the brain also degrades if it is not stimulated or "trained". The brain is not a muscle, but it functions on a similar "use it or lose it" principle, where a lack of activity leads to a loss of function and neural pathways. Training the brain, like exercising the body, strengthens its neural connections, improving cognitive function and protecting against decline and progressive dementia.

Dementia is always progressive.

_https://firefox-source-docs.mozilla.org/setup/linux_build.html
Choosing a build type
If you aren’t modifying the Firefox backend, then select one of the Artifact Mode options.

You should select 2. Firefox for Desktop

Note on Artifact Mode:

Artifact builds download prebuilt C++ components rather than building
them locally. Artifact builds are faster!

Artifact builds are recommended for people working on Firefox or
Firefox for Android frontends, or the GeckoView Java API. They are unsuitable
for those working on C++ code. For more information see:
https://firefox-source-docs.mozilla.org/contributing/build/artifact_builds.html.

Please choose the version of Firefox you want to build (see note above):
  1. Firefox for Desktop Artifact Mode [default]
  2. Firefox for Desktop
  3. GeckoView/Firefox for Android Artifact Mode
  4. GeckoView/Firefox for Android
  5. SpiderMonkey JavaScript engine
Your choice: 2 

You have to start from the very beginning
1. Create a new folder
2. Download bootstrap.py
and so on

_https://firefox-source-docs.mozilla.org/setup/linux_build.html
2. Bootstrap a copy of the Firefox source code

Now that your system is ready, we can download the source code and have Firefox automatically download the other dependencies it needs. The below command will download a lot of data (years of Firefox history!) then guide you through the interactive setup process.

curl -LO https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/main/python/mozboot/bin/bootstrap.py

python3 bootstrap.py

Edit:

It is very probable that the same pre-built Artifact will be automatically downloaded.
The easiest way to fix the problem is to remove your Ubuntu together with KDE and pipewire

Is it so difficult to save a copy of terminal output?

The following directory will be created:

  /home/rich/.mozbuild

If you would like to use a different directory, rename or move it to your
desired location, and set the MOZBUILD_STATE_PATH environment variable
accordingly.

You may also try to remove /home/rich/.mozbuild and set the MOZBUILD_STATE_PATH environment variable

export MOZBUILD_STATE_PATH=/home/rich/mumu

Last edited by igorzwx (2025-10-17 15:28:45)

Offline

#9 2025-10-17 14:49:04

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

hello igorzxx, it is funny with you smile
yes, i chose "1" articfacts, but it would not fail.

now will select "2" and learn to behave.

or even better, will remove kubuntu and check for devuan 6 or linux mint (again: ubuntu?)

thanks for educating me, very much appreciated.
( im bit wary to read from computer screens nowadays.)

Offline

#10 2025-10-17 14:59:37

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

Add mate-sensors-applet to panel, and watch processor temperature
_https://help.ubuntu.com/community/SensorInstallHowto#sensors-applet

EDIT:
A manual for Ubuntu newbies is available here:
Building Firefox On Linux
_https://firefox-source-docs.mozilla.org/setup/linux_build.html

To fix problems, you can simply re-bootstrap

cd firefox        # cd sourcedir
./mach bootstrap

It will open a dialogue:

Please choose the version of Firefox you want to build (see note above):
  1. Firefox for Desktop Artifact Mode [default]
  2. Firefox for Desktop
  3. GeckoView/Firefox for Android Artifact Mode
  4. GeckoView/Firefox for Android
  5. SpiderMonkey JavaScript engine
Your choice: 2 

and you can choose 2. Firefox for Desktop

Create .mozconfig

➤ cat firefox/.mozconfig
# The default mozconfig is located here: sourcedir/browser/config/mozconfig
# It specifies the build flags for Firefox. 
# You can use it by adding:
#  . $topsrcdir/browser/config/mozconfig
# to the top of your own  sourcedir/.mozconfig file.

  . $topsrcdir/browser/config/mozconfig

# Restrict the number of parallel jobs to reduce the chance of build failure 
# For old computers -j2 of j3, for new ones -j10
mk_add_options MOZ_MAKE_FLAGS=-j4

mk_add_options MOZ_OBJDIR="$(dirname $topsrcdir)"/build_dir
mk_add_options MOZ_APP_DISPLAYNAME="Firefox Nightly"
mk_add_options MOZ_SIMPLE_PACKAGE_NAME=firefox-nightly

ac_add_options --with-app-basename="Firefox Nightly"
ac_add_options --with-app-name=firefox-nightly
ac_add_options --prefix=/usr
ac_add_options --enable-audio-backends=alsa

Then, you may try to build

cd firefox     # cd sourcedir
git pull           # update source code
export LDFLAGS+=" -Wl,--no-keep-memory"   # to reduce the chance of build failure during linking due to running out of memory
./mach build -v --priority normal

Test

./mach run 

It should open your Firefox Nightly. If it works, install it to a folder debdir

DESTDIR="$(dirname $(pwd))"/debdir ./mach install

and create a Debian package for it. A detailed step by step manual "how to create a Debian package of debdir" is here:
_https://dev1galaxy.org/viewtopic.php?id=7214

Firefox Nightly is quasi portable. You can make a Debian package for Firefox Nightly on Devuan and install it on Linux Mint (and other way round).

You can build the fftrate Debian packages on Devuan, or Linux Mint, or Ubuntu, and install them on other Debian based distros.

But the Raspberry Pi is based on the ARM architecture, you may try to build the fftrate plugin on Raspberry Pi.

Last edited by igorzwx (2025-10-20 19:34:09)

Offline

#11 2025-10-17 15:27:21

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

Already on 'main'
Your branch is up to date with 'origin/main'.
Clone complete.
If you need to run the tooling bootstrapping again, then consider running './mach bootstrap' instead.
Unless you are going to have more local copies of Firefox source code, this 'bootstrap.py' file is no longer needed and can be deleted. Clean up the bootstrap.py file? (Y/n)
Unless you are going to have more local copies of Firefox source code, this 'bootstrap.py' file is no longer needed and can be deleted. Clean up the bootstrap.py file? (Y/n)
Running `/usr/bin/python3 mach bootstrap`
Creating local state directory: /home/rich/.mozbuild/srcdirs/firefox-9d461fa480b2
Creating the 'mach' site at /home/rich/.mozbuild/srcdirs/firefox-9d461fa480b2/_virtualenvs/mach
Creating the 'common' site at /home/rich/.mozbuild/srcdirs/firefox-9d461fa480b2/_virtualenvs/common

Note on Artifact Mode:

Artifact builds download prebuilt C++ components rather than building
them locally. Artifact builds are faster!

Artifact builds are recommended for people working on Firefox or
Firefox for Android frontends, or the GeckoView Java API. They are unsuitable
for those working on C++ code. For more information see:
https://firefox-source-docs.mozilla.org/contributing/build/artifact_builds.html.

Please choose the version of Firefox you want to build (see note above):
  1. Firefox for Desktop Artifact Mode [default]
  2. Firefox for Desktop
  3. GeckoView/Firefox for Android Artifact Mode
  4. GeckoView/Firefox for Android
  5. SpiderMonkey JavaScript engine
Your choice: 2
ould you like to run a few configuration steps to ensure Git is
optimally configured? (Yn): 
Configuring git...
Set git config: "core.untrackedCache = true"
Unset git config: `core.fsmonitor`
Ensuring watchman is properly configured...
Copying /home/rich/firefox/firefox/.git/hooks/fsmonitor-watchman.sample to /home/rich/firefox/firefox/.git/hooks/query-watchman
Set git config: "core.fsmonitor = /home/rich/firefox/firefox/.git/hooks/query-watchman"
Setting up artifact sccache.tar.zst
Downloading artifact to local cache: /home/rich/.mozbuild/toolchains/a5456653f6003945-sccache.tar.zst
Downloading... 0.0 %
Downloading... 100.0 %
untarring "/home/rich/.mozbuild/sccache.tar.zst"
Setting up artifact clang-tidy.tar.zst
Downloading artifact to local cache: /home/rich/.mozbuild/toolchains/6351d89729166013-clang-tidy.tar.zst
Downloading... 0.0 %
Downloading... 27.3 %
Downloading... 54.7 %
Downloading... 82.0 %
Downloading... 100.0 %
untarring "/home/rich/.mozbuild/clang-tools/clang-tidy.tar.zst"

Your system should be ready to build Firefox for Desktop!
nano .mozconfig

# file: .mozconfig (in sourcedir)

# For old computers -j2 or -j3
# If you need it, uncomment the following line
# mk_add_options MOZ_MAKE_FLAGS=-j3

# Rename Firefox to "Firefox Nightly"
mk_add_options MOZ_APP_DISPLAYNAME="Firefox Nightly"
mk_add_options MOZ_SIMPLE_PACKAGE_NAME=firefox-nightly
ac_add_options --with-app-basename="Firefox Nightly"

ac_add_options --enable-project=browser
ac_add_options --with-app-name=firefox-nightly
ac_add_options --prefix=/usr

# Enable ALSA instead of "pulse-rust"
ac_add_options --enable-audio-backends=alsa

export MOZBUILD_STATE_PATH=/home/rich/mumu
export LDFLAGS+=" -Wl,--no-keep-memory"
./mach build -v --priority normal
./mach build -v --priority normal
Creating global state directory from environment variable: /home/rich/mumu
Creating local state directory: /home/rich/mumu/srcdirs/firefox-9d461fa480b2
Creating the 'mach' site at /home/rich/mumu/srcdirs/firefox-9d461fa480b2/_virtualenvs/mach
Creating the 'build' site at /home/rich/mumu/srcdirs/firefox-9d461fa480b2/_virtualenvs/build
os.nice(0)
 0:00.18 W Clobber not needed.
 Config object not found by mach.
 0:00.27 Using Python 3.12.3 from /home/rich/mumu/srcdirs/firefox-9d461fa480b2/_virtualenvs/build/bin/python
 0:00.27 Adding configure options from /home/rich/firefox/firefox/.mozconfig
 0:00.27   --with-app-basename=Firefox Nightly
 0:00.27   --enable-project=browser
 0:00.27   --with-app-name=firefox-nightly
 0:00.27   --prefix=/usr
 0:00.27   --enable-audio-backends=alsa
 0:00.27 checking for vcs source checkout... git
 0:00.28 checking for a shell... /usr/bin/sh
 0:00.30 checking for host system type... x86_64-pc-linux-gnu
 0:00.30 checking for target system type... x86_64-pc-linux-gnu
 0:00.40 checking whether cross compiling... no
 0:00.43 checking if configuration file confvars.sh exists... /home/rich/firefox/firefox/browser/confvars.sh
 0:00.43 checking if configuration file configure.sh exists... /home/rich/firefox/firefox/browser/branding/unofficial/configure.sh
TIER: configure
 1:53.79 Installing bootstrapped toolchain in /home/rich/mumu/clang
TIER: configure

EDIT:
now it functions, somehow, thanks alot!
will need arateconf etc. but gonna still switch OS.
best of wishes.

22:00.09 W 189 compiler warnings present.
22:00.44 W Overall system resources - Wall time: 1320s; CPU: 62%; Read bytes: 12904594432; Write bytes: 30568136704; Read time: 37744; Write time: 1436320
22:00.44 W Swap in/out (MB): 0.65234375/0.77734375
22:00.45 W (suppressed 183 warnings in third-party code)
22:00.45 W (suppressed 2 warnings in accessible/atk)
22:00.45 W (suppressed 1 warnings in browser/components/shell)
22:00.45 W warning: obj-x86_64-pc-linux-gnu/dist/include/MicroGeckoProfiler.h:66:45 [-Wvisibility] declaration of 'struct UprofilerFuncPtrs' will not be visible outside of this function
22:00.45 W warning: obj-x86_64-pc-linux-gnu/dist/include/MicroGeckoProfiler.h:70:41 [-Wvisibility] declaration of 'struct UprofilerFuncPtrs' will not be visible outside of this function
22:00.45 W warning: obj-x86_64-pc-linux-gnu/dist/include/mozilla/cxxalloc.h:53:34 [-Wunknown-warning-option] unknown warning group '-Walloc-size-larger-than=', ignored
22:00.45 /usr/bin/notify-send '--app-name=Mozilla Build System' 'Mozilla Build System' 'Build complete'
To view a profile of the build, run |mach resource-usage|.
22:00.47 We know it took a while, but your build finally finished successfully!
22:00.47 If you are building Firefox often, SCCache can save you a lot of time. You can learn more here: https://firefox-source-docs.mozilla.org/setup/configuring_build_options.html#sccache
To take your build for a test drive, run: |mach run|
For more information on what to do now, see https://firefox-source-docs.mozilla.org/setup/contributing_code.html

https://ibb.co/BhXx2fG

Last edited by kapqa (2025-10-17 15:51:37)

Offline

#12 2025-10-17 15:51:38

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

This was wrong:

export MOZBUILD_STATE_PATH=/home/rich/mumu

It was not needed.

SCCache can save you a lot of time

SCCache is a trouble maker!!!

22:00.44 W Overall system resources - Wall time: 1320s; CPU: 62%; Read bytes: 12904594432; Write bytes: 30568136704; Read time: 37744; Write time: 1436320
22:00.44 W Swap in/out (MB): 0.65234375/0.77734375
Wall time: 1320s;

Firefox was built in 22 minutes.

Check about:support

It should show:

Application Basics
Name 	Firefox Nightly
Version 	146.0a1
...
Media
Audio Backend	alsa

with apulse and without apulse

apulse ./mach run
./mach run

When it is built with ALSA, you should see on terminal (configure stage) something like this:

 1:14.72 checking for alsa... yes
 1:14.72 checking MOZ_ALSA_CFLAGS... -I/home/rich/mumu/sysroot-x86_64-linux-gnu/usr/include -I/home/rich/mumu/sysroot-x86_64-linux-gnu/usr/include/alsa
 1:14.72 checking MOZ_ALSA_LIBS... -L/home/rich/mumu/sysroot-x86_64-linux-gnu/usr/lib/x86_64-linux-gnu -lasound
 1:14.74 checking for rustc... /home/rich/.cargo/bin/rustc
 1:14.74 checking for cargo... /home/rich/.cargo/bin/cargo
 1:16.25 Actually using '/home/rich/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc'
 1:16.69 Actually using '/home/rich/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/cargo'
 1:16.75 checking rustc version... 1.90.0
 1:16.80 checking cargo version... 1.90.0

Notice cargo and rustc

-----------------

Other options to try: 

ac_add_options --enable-release
ac_add_options --disable-tests

It may fail on very old computers.

    --disable-tests           Do not build test libraries & programs
    --enable-release          Build with more conservative, release engineering-oriented options. This may slow down builds. 

We relish talking about cargo cults because we can imagine ourselves as cargo cultists. Besides, the fact that we are the real cargo cultists is no longer latent or suppressed. Nowadays, so we say, we find that the cargo cult more and more is erupting in the West.

Lamont Lindstrom, Cargo Cult: Strange Stories of Desire from Melanesia and Beyond, 1993.
_https://www.jstor.org/stable/j.ctv9zcktq

Last edited by igorzwx (2025-10-17 18:49:34)

Offline

#13 2025-10-17 20:04:56

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

tried once more from clean mint installatin,

this time it should have performed

https://pastebin.ubuntu.com/p/xxtNB8B4Sr/

https://ibb.co/93kbbvLT

happy weekend!

Offline

#14 2025-10-17 21:00:44

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

Now you can install it to "debdir"

DESTDIR="$(dirname $(pwd))"/debdir ./mach install

and create a Debian package for Firefox Nightly

The manual is here:
_https://dev1galaxy.org/viewtopic.php?pid=58648#p58648

Desktop launcher for Firefox Nightly:

$ cat ~/.local/share/applications/firefox-nightly.desktop
[Desktop Entry]
Name=Firefox Nightly Web Browser
Name[en_US]=Firefox Nightly Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
X-GNOME-FullName=Firefox Nightly Web Browser
Exec=/usr/lib/firefox-nightly/firefox-nightly %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox-nightly
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=firefox-nightly
StartupNotify=true
Actions=new-window;new-private-window;open-profile-manager;
Keywords=Internet;WWW;Browser;Web;Explorer;

[Desktop Action new-window]
Exec=/usr/lib/firefox-nightly/firefox --new-window %u
Name=New Window
Name[en_US]=New Window

[Desktop Action new-private-window]
Exec=/usr/lib/firefox-nightly/firefox --private-window %u
Name=New Private Window
Name[en_US]=New Private Window

[Desktop Action open-profile-manager]
Exec=/usr/lib/firefox-nightly/firefox --ProfileManager
Name=Open Profile Manager
Name[en_US]=Open Profile Manager

The Last Cargo Cult Interviews
_https://www.youtube.com/watch?v=YB-26XqDZj8
_https://youtu.be/YB-26XqDZj8

Dec 3, 2009
In THE LAST CARGO CULT, groundbreaking monologist Mike Daisey (If You See Something Say Something) returns to The Public with the story of his journey to a remote South Pacific island whose people worship America and its cargo. This narrative is woven against a searing examination of the international financial crisis that gripped the globe at the same moment. Confronting the financial system that dominates our world, Daisey wrestles with the largest questions of what the collapse means, and what it can tell us about our deepest values. Part adventure story and part memoir, he explores each culture to unearth a human truth between the seemingly primitive and achingly modern.

Native cargo cultists could easily imagine cargo planes because they had witnessed the arrival of real military aircraft during World War II, which delivered supplies and goods seemingly from the sky.

It should not be difficult, therefore, to imagine a Devuan wiki with all the knowledge you need.

Native cargo cultists typically obtain their knowledge of "the true secret of cargo" through dreams or visions, which are considered revelations from ancestral spirits or deities. These prophetic experiences are central to the formation of cargo cults, as a charismatic leader often claims to have received a vision or "myth-dream" that foretells the return of ancestors or a messianic figure who will bring abundant goods... The dream or vision legitimizes the leader's authority and serves as the foundation for the movement's rituals and expectations.

You may also try to read a secret Devuan wiki in your dreams.

Last edited by igorzwx (2025-10-20 19:37:32)

Offline

#15 2025-10-20 17:32:53

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

dear igor,

found the .debdir instruictions fuzzy, so just went a lazy way and copied the files over
like so

sudo cp   -a usr/. /usr/

and for the firefox.desktop adapted a oneliner from antix-forum

cat /usr/share/applications/firefox.desktop |sed "s/Exec=.*/Exec=apulse firefox %u/ig" > ~/.local/share/applications/firefox.desktop && sudo desktop-menu --write-out-globalcat /usr/share/applications/firefox.desktop |sed "s/Exec=.*/Exec=apulse firefox %u/ig" > ~/.local/share/applications/firefox.desktop && sudo desktop-menu --write-out-global

where adapted to nightly seemed to function just fine.

the browser function well so far;
however benchmark wants to tell me have lost 50% performance when compared to snap-version smile
but for better audio,  am glad to take the performance-hit.

Offline

#16 2025-10-20 17:51:00

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

What do mean by "performance-hit"?

about:processes Task Manager - see whether tabs or extensions are slowing down Firefox
_https://support.mozilla.org/en-US/kb/task-manager-tabs-or-extensions-are-slowing-firefox

apulse firefox

apulse is not needed because your Firefox does not have "pulse-rust" backend.
It does not make any harm, but you may better remove it from your Firefox launcher.

$ file /usr/bin/firefox-nightly
/usr/bin/firefox-nightly: symbolic link to /usr/lib/firefox-nightly/firefox-nightly
kapqa wrote:

found the .debdir instruictions fuzzy, so just went a lazy way...

Try to improve them. Compile Audacious, and write a manual for Devuan wiki.

Last edited by igorzwx (2025-10-20 18:44:49)

Offline

#17 2025-10-20 20:03:31

kapqa
Member
Registered: 2019-01-02
Posts: 475  

Re: How to disable pulse-rust backend in Firefox

will check with the extensions , but the firefox is sufficiently fluid for me, not slow at atll;
yes, since few weeks use (mozilla acocount sync) so make it easy for them to track me.
but it should nopt slow that much.

also, the benchmark is bit unfair , between mint and ubuntu snap (ubuntu probably heavily tweaked).
the benchmark was from here , with nightly around result 20, with snap version is lot higher
https://browserbench.org/Speedometer3.1/

thanks for the help with linux,
will see what i can contribute;

have just yesterday or  other day installed audacity on old powermac g5, it is nice program, but why would you want me to compile it? it is easy to install via pacakge manager?

best of wishes.

Last edited by kapqa (2025-10-20 20:04:11)

Offline

#18 2025-10-20 21:39:32

igorzwx
Member
Registered: 2024-05-06
Posts: 342  

Re: How to disable pulse-rust backend in Firefox

Try Speedometer with Brave browser

Audacious and Audacity are different applications, despite their similar names. Audacious is a lightweight and versatile audio player designed for POSIX-compatible Unix-like operating systems, with limited support for Microsoft Windows, and it is known for its support of Winamp skins and a media library. It began as a fork of Beep Media Player, which itself is a fork of XMMS.
On the other hand, Audacity is an audio editor used for recording, editing, and producing audio files, supporting a wide range of audio formats and offering features like noise reduction and time-stretching.
While both are free and open-source software with similar licensing (GNU General Public License v3.0 or later), they serve distinct purposes: Audacious for playback and Audacity for audio editing.
The confusion between the two is common, but they are separate projects with different development histories and functionalities.

There are many reasons to compile Audacious.
Most important, you can learn how to compile and make Debian packages.
You can also learn how to calculate dependencies.

You can compile Audacious (and plugins) with meson and ninja

1. Setup the build system

arch-meson audacious build 

2. Compile

meson compile -C build

3. Install to debdir

meson install -C build --destdir "$(dirname $(pwd))"/debdir

Ninja is almost invisible, as the name suggest. For example:

$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/.../Audacious-git/Builds/build
ninja: Entering directory `/home/.../Audacious-git/Builds/build'
[171/171] Linking target src/audacious/audacious
$ cat arch-meson
#!/bin/bash -ex
# Meson wrapper for Arch Linux packaging

exec meson setup \
  --prefix         /usr \
  --libdir         /usr/lib \
  --libexecdir     /usr/lib \
  --bindir         /usr/bin \
  --sbindir        /usr/bin \
  --includedir     /usr/include \
  --datadir        /usr/share \
  --mandir         /usr/share/man \
  --infodir        /usr/share/info \
  --localedir      /usr/share/locale \
  --sysconfdir     /etc \
  --localstatedir  /var \
  --sharedstatedir /var/lib \
  --buildtype      release \
  --wrap-mode      nofallback \
  "$@" \
  -D               b_lto=true

 
How to compile Audacious
_https://dev1galaxy.org/viewtopic.php?id=7214

Portable Ninja is available here:
_https://github.com/ninja-build/ninja
Portable Meson is available here:
_https://github.com/mesonbuild/meson
arch-meson is available here:
_https://aur.archlinux.org/cgit/aur.git/snapshot/meson-git.tar.gz

Offline

Board footer