Mozilla Firefox is a free and open source web browser descended from the
Mozilla Application Suite. It is small, fast and easy to use, and offers
many advanced features:
o Popup Blocking
o Tabbed Browsing
o Live Bookmarks (ie. RSS)
o Extensions
o Themes
o FastFind
o Improved Security
===> The following configuration options are available for firefox-158.0_1,2:
CANBERRA=off: Sound theme alerts
DBUS=on: D-Bus IPC system support
DEBUG=off: Build with debugging support
FFMPEG=on: FFmpeg support (WMA, AIFF, AC3, APE...)
LIBPROXY=off: Proxy support via libproxy
LTO=off: Use Link-Time Optimization
OPTIMIZED_CFLAGS=on: Use extra compiler optimizations
PROFILE=on: Build with profiling support
TEST=off: Build and/or run tests
====> Extra cubeb audio backends (OSS is always available)
ALSA=off: ALSA audio architecture support
JACK=on: JACK audio server support
PULSEAUDIO=on: PulseAudio sound server support
SNDIO=on: Sndio audio support
===> Use 'make config' to modify these settings
## Missing features
Some features found on Windows, macOS and Linux are not implemented:
- Encrypted Media Extensions (requires Widevine CDM binary)
- Process sandboxing (requires Capsicum backend)
- Reduced memory usage (requires mozjemalloc)
- Crash Reporter (requires Google Breakpad and reproducible builds)
- WebVR (requires open source runtime)
- TCP fast open
- `about:networking#networkid` (requires link state notification)
## Cursors
From Firefox 142 on, this port defaults to using the new (themed)
cursor selection. On the upside, this makes Firefox respect the
desktop environment's theme, on the downside this breaks compatibility
with the legacy X cursor names. If you experience issues (i.e. the
mouse cursor not changing to the pointer ("hand") when hovering over
links), your desktop environment is most likely still set to the legacy
default/builtin "theme". To remedy this, either
- set about:config variable "widget.gtk.legacy-cursors.enabled" to "true"
to re-enable the legacy cursors, or
- use the Xcursor framework to set a cursor theme (e.g. X resource
item Xcursor.theme), see Xcursor(3) for details. The Adwaita theme
will have been installed as a dependency of gtk3 and does work.
The latter option is only available for X environments.
## Audio backend
Currently used audio backend can be inspected on `about:support` page.
Supported backends and default probing order is as follows:
- `pulse-rust` if `pulseaudio` package is installed (PULSEAUDIO option)
- `jack` if `jackit` package is installed (JACK option)
- `sndio` if `sndio` package is installed (SNDIO option)
- `alsa` if `alsa-lib` package is installed (ALSA option)
- `oss` (always available)
To force a specific backend open `about:config` page and create
`media.cubeb.backend` preference.
Microphone selection only works in `oss`, `pulse-rust` backends.
Other backends are limited to `default` which is usually `/dev/dsp`,
so use virtual_oss to reroute microphones from non-default devices.
## Gamepad API
Requires evdev(4) joystick support. On FreeBSD 13 and later enable hgame(4)
while older versions can use sysutils/iichid or multimedia/webcamd.
## smb:// issues
Network group, machine, and share browsing does not work correctly.
## sftp://
Only sftp access using public key authentication works. To easily
setup public key authentication to `remote_host`:
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub | ssh remote_host "cat >> .ssh/authorized_keys"
The SSH server on `remote_host` must allow pub key authentication.
Mk/bsd.gecko.mk, lang/spidermonkey128: use RUST_LIB_BACKTRACE on powerpc64le
rust.mk only exports RUST_BACKTRACE, so RUST_LIB_BACKTRACE=0 from the
environment is enough and the per-port patches can go. spidermonkey128
is hit by the same cargo crash.
mail/thunderbird*, www/firefox*: fix build on powerpc64*
1. On powerpc64 WASI seems to be broken.
2. On powerpc64le without recent LLVM patch, RUST_BACKTRACE is broken.
gecko: declare NOT_FOR_ARCHS=i386
The building and linking of the rust parts on x86 needs a larger
address space than a 32bit platform can provide (at most 4GB).
The gecko ports have been failing for quite a while on the official
builders with an "rustc-LLVM ERROR: out of memory" message, e.g.
https://pkg-status.freebsd.org/beefy18/data/144i386-default/6f1fe399c86f/logs/thunderbird-153.0.2.log
We can as well stop trying to save the CPU cycles leading up to
this error.
www/firefox: add libm to opus linker flags
some combinations of custom CPUTYPE and compiler require special
linker/compiler flags - try to chase this.
PR: 296825
Reported by: Daniel Toschläger
www/firefox: fix build on powerpc64le
Already fixed in upstream xsimd:
In file included from
/wrkdirs/usr/ports/www/firefox/work/.build/gfx/thebes/Unified_cpp_gfx_thebes0.cpp:65:
In file included from
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/gfx/thebes/gfxAlphaRecovery.cpp:12:
In file included from
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/xsimd.hpp:63:
In file included from
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/memory/xsimd_aligned_allocator.hpp:27:
In file included from
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/config/xsimd_arch.hpp:19:
In file included from
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/types/xsimd_all_registers.hpp:51:
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/types/xsimd_vsx_register.hpp:67:61:
error: cannot use 'long' with '__vector bool'
67 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, long);
| ^
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/types/xsimd_vsx_register.hpp:67:55:
warning: use of 'long' with '__vector' is deprecated [-Wdeprecated]
67 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, long);
| ^
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/types/xsimd_vsx_register.hpp:68:52:
error: cannot use 'long' with '__vector bool'
68 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long);
| ^
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/types/xsimd_vsx_register.hpp:68:46:
warning: use of 'long' with '__vector' is deprecated [-Wdeprecated]
68 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long);
| ^
/wrkdirs/usr/ports/www/firefox/work/firefox-152.0.2/third_party/xsimd/include/xsimd/types/xsimd_vsx_register.hpp:70:54:
error: cannot use 'long' with '__vector bool'
70 | XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(double, long);
| ^
5 warnings and 3 errors generated.
wasi/gecko: fix wasi target triple for FreeBSD
Our wasi target triple on "older" LLVM versions (<22) deviates from
the respective LLVM's defaults, so we need to align ports with that.
PR: 295332
wasi/gecko: remove ${REINPLACE_CMD} for unconditional wasm32-wasip1
No longer needed after toolchain.configure was restructured for
gecko 151, with upstream commit backported to the ESR branches in
the linked PR
PR: 295332
www/firefox{,-esr} mail/thunderbird{,-esr}: native DNS HTTPS resolving
This enables the geckos to use the OS' resolver to resolve
DNS HTTPS RRs (see RFC 9460 https://www.rfc-editor.org/rfc/rfc9460
for specs on that)
PR: 294981
Submitted by: Andre Albsmeier
wasi: consistently use the wasm32-wasip1 triple
The WebAssembly community have reclaimed wasm32-wasi, without suffix,
for a future WASI 1.0 standard. The first version of WASI, 0.1, is
now wasm32-wasip1 in triple form, WASI 0.2 is wasm32-wasip2, etc.
Starting LLVM 22 the non-suffixed form is deprecated, aligning with
Rust and Go:
https://github.com/llvm/llvm-project/issues/165344https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets/
The Mozilla build system's WASI checks always pass -Werror so
configure fails when the non-suffixed target/triple is passed using
LLVM 22:
(Only the first 15 lines of the commit message are shown above )