aboutsummaryrefslogtreecommitdiff
path: root/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'firefox')
-rw-r--r--firefox/.checksum3
-rw-r--r--firefox/.files47
-rw-r--r--firefox/abuild99
-rw-r--r--firefox/depends12
-rw-r--r--firefox/fix-target-detection.patch19
-rw-r--r--firefox/visibility.patch13
6 files changed, 193 insertions, 0 deletions
diff --git a/firefox/.checksum b/firefox/.checksum
new file mode 100644
index 00000000..ff1464c3
--- /dev/null
+++ b/firefox/.checksum
@@ -0,0 +1,3 @@
+f6aaa01f576b07f9c9bc112517161e5fb917b4b6dafeb27ae547ab4337fa88ae firefox-138.0.4.source.tar.xz
+3e4e722acd2ab2e38a16ec23b29296318d77cc54f034d4b21d91bde085e26bc0 fix-target-detection.patch
+30889a96df16927cca69826f3ca94b9f751819c2fcae07001a7108847ff25cb6 visibility.patch
diff --git a/firefox/.files b/firefox/.files
new file mode 100644
index 00000000..24018859
--- /dev/null
+++ b/firefox/.files
@@ -0,0 +1,47 @@
+drwxr-xr-x root/root usr/
+drwxr-xr-x root/root usr/bin/
+lrwxrwxrwx root/root usr/bin/firefox -> /usr/lib/firefox/firefox
+drwxr-xr-x root/root usr/lib/
+drwxr-xr-x root/root usr/lib/firefox/
+-rw-r--r-- root/root usr/lib/firefox/application.ini
+drwxr-xr-x root/root usr/lib/firefox/browser/
+drwxr-xr-x root/root usr/lib/firefox/browser/chrome/
+drwxr-xr-x root/root usr/lib/firefox/browser/chrome/icons/
+drwxr-xr-x root/root usr/lib/firefox/browser/chrome/icons/default/
+-rw-r--r-- root/root usr/lib/firefox/browser/chrome/icons/default/default128.png
+-rw-r--r-- root/root usr/lib/firefox/browser/chrome/icons/default/default16.png
+-rw-r--r-- root/root usr/lib/firefox/browser/chrome/icons/default/default32.png
+-rw-r--r-- root/root usr/lib/firefox/browser/chrome/icons/default/default48.png
+-rw-r--r-- root/root usr/lib/firefox/browser/chrome/icons/default/default64.png
+-rw-r--r-- root/root usr/lib/firefox/browser/omni.ja
+drwxr-xr-x root/root usr/lib/firefox/defaults/
+drwxr-xr-x root/root usr/lib/firefox/defaults/pref/
+-rw-r--r-- root/root usr/lib/firefox/defaults/pref/channel-prefs.js
+-rw-r--r-- root/root usr/lib/firefox/dependentlibs.list
+-rwxr-xr-x root/root usr/lib/firefox/firefox
+drwxr-xr-x root/root usr/lib/firefox/fonts/
+-rw-r--r-- root/root usr/lib/firefox/fonts/TwemojiMozilla.ttf
+-rwxr-xr-x root/root usr/lib/firefox/glxtest
+drwxr-xr-x root/root usr/lib/firefox/gmp-clearkey/
+drwxr-xr-x root/root usr/lib/firefox/gmp-clearkey/0.1/
+-rwxr-xr-x root/root usr/lib/firefox/gmp-clearkey/0.1/libclearkey.so
+-rw-r--r-- root/root usr/lib/firefox/gmp-clearkey/0.1/manifest.json
+-rwxr-xr-x root/root usr/lib/firefox/libgkcodecs.so
+-rwxr-xr-x root/root usr/lib/firefox/liblgpllibs.so
+-rwxr-xr-x root/root usr/lib/firefox/libmozavcodec.so
+-rwxr-xr-x root/root usr/lib/firefox/libmozavutil.so
+-rwxr-xr-x root/root usr/lib/firefox/libmozgtk.so
+-rwxr-xr-x root/root usr/lib/firefox/libmozsandbox.so
+-rwxr-xr-x root/root usr/lib/firefox/libmozsqlite3.so
+-rwxr-xr-x root/root usr/lib/firefox/libmozwayland.so
+-rwxr-xr-x root/root usr/lib/firefox/libxul.so
+-rw-r--r-- root/root usr/lib/firefox/omni.ja
+-rwxr-xr-x root/root usr/lib/firefox/pingsender
+-rw-r--r-- root/root usr/lib/firefox/platform.ini
+-rw-r--r-- root/root usr/lib/firefox/removed-files
+-rwxr-xr-x root/root usr/lib/firefox/vaapitest
+drwxr-xr-x root/root usr/share/
+drwxr-xr-x root/root usr/share/applications/
+-rw-r--r-- root/root usr/share/applications/firefox.desktop
+drwxr-xr-x root/root usr/share/pixmaps/
+lrwxrwxrwx root/root usr/share/pixmaps/firefox.png -> /usr/lib/firefox/browser/chrome/icons/default/default128.png
diff --git a/firefox/abuild b/firefox/abuild
new file mode 100644
index 00000000..6c2bf0a2
--- /dev/null
+++ b/firefox/abuild
@@ -0,0 +1,99 @@
+name=firefox
+version=138.0.4
+release=1
+source="https://ftp.mozilla.org/pub/${name}/releases/${version}/source/${name}-${version}.source.tar.xz
+ visibility.patch
+ fix-target-detection.patch"
+
+build() {
+ cat > .mozconfig << EOF
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+ac_add_options --enable-strip
+ac_add_options --enable-release
+ac_add_options --enable-rust-simd
+ac_add_options --enable-audio-backends=alsa
+ac_add_options --enable-install-strip
+ac_add_options --enable-official-branding
+ac_add_options --enable-application=browser
+ac_add_options --enable-optimize
+ac_add_options --with-system-ffi
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-libvpx
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-pixman
+ac_add_options --with-system-png
+ac_add_options --with-system-webp
+ac_add_options --with-system-zlib
+ac_add_options --without-wasm-sandboxed-libraries
+ac_add_options --disable-eme
+#ac_add_options --disable-dbus
+ac_add_options --disable-tests
+ac_add_options --disable-vtune
+ac_add_options --disable-updater
+ac_add_options --disable-jemalloc
+ac_add_options --disable-elf-hack
+ac_add_options --disable-callgrind
+ac_add_options --disable-profiling
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-crashreporter
+ac_add_options --disable-accessibility
+ac_add_options --disable-debug
+ac_add_options --disable-debug-symbols
+ac_add_options --disable-parental-controls
+ac_add_options --disable-system-extension-dirs
+ac_add_options --disable-default-browser-agent
+ac_add_options --disable-backgroundtasks
+ac_add_options --disable-webspeech
+EOF
+
+ if [ -f $SPM_PKGDB/libx11 ] && [ ! -f $SPM_PKGDB/wayland ]; then
+ echo "ac_add_options --enable-default-toolkit=cairo-gtk3-x11-only" >> .mozconfig
+ elif [ -f $SPM_PKGDB/wayland ] && [ ! -f $SPM_PKGDB/libx11 ]; then
+ echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland-only" >> .mozconfig
+ fi
+
+ if [ -e '/usr/bin/ccache' ]; then
+ echo 'ac_add_options --enable-ccache' >> .mozconfig
+ PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
+ fi
+
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
+ export MOZBUILD_STATE_PATH=${PWD}/mozbuild
+
+ export CFLAGS="$CFLAGS -w"
+ export CXXFLAGS="$CXXFLAGS -w"
+ export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox,--enable-new-dtags"
+ export RUSTFLAGS="$RUSTFLAGS -Cdebuginfo=0"
+ export MOZ_DEBUG_FLAGS=-g0
+ export MOZ_NOSPAM=1
+ export CXXSTDLIB=c++
+
+ ./mach build
+ ./mach install
+
+ mkdir -pv $PKG/usr/share/applications
+ mkdir -pv $PKG/usr/share/pixmaps
+
+ cat > $PKG/usr/share/applications/firefox.desktop << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Name=Firefox Web Browser
+Comment=Browse the World Wide Web
+GenericName=Web Browser
+Exec=firefox %u
+Terminal=false
+Type=Application
+Icon=firefox
+Categories=GNOME;GTK;Network;WebBrowser;
+MimeType=text/xml;text/mml;text/html;application/xhtml+xml;application/vnd.mozilla.xul+xml;x-scheme-handler/http;x-scheme-handler/https
+StartupNotify=true
+EOF
+
+ mkdir -p $PKG/usr/share/pixmaps
+ ln -sfv /usr/lib/firefox/browser/chrome/icons/default/default128.png \
+ $PKG/usr/share/pixmaps/firefox.png
+
+ rm $PKG/usr/lib/firefox/firefox-bin
+}
diff --git a/firefox/depends b/firefox/depends
new file mode 100644
index 00000000..5779e9b1
--- /dev/null
+++ b/firefox/depends
@@ -0,0 +1,12 @@
+alsa-utils
+cbindgen
+nodejs
+gtk3
+libwebp
+libvpx
+nss
+libevent
+libxcomposite
+libxcursor
+libxdamage
+libsm
diff --git a/firefox/fix-target-detection.patch b/firefox/fix-target-detection.patch
new file mode 100644
index 00000000..8e115a3d
--- /dev/null
+++ b/firefox/fix-target-detection.patch
@@ -0,0 +1,19 @@
+diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
+index 7a2fd1a..ba5ba62 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -403,9 +403,13 @@ def detect_rustc_target(
+ ]
+ if len(narrowed) == 1:
+ return narrowed[0].rust_target
++ elif narrowed:
++ candidates = narrowed
++
++ aliased_vendor = "unknown" if host_or_target.vendor == "pc" else host_or_target.vendor
+
+ # Finally, see if the vendor can be used to disambiguate.
+- narrowed = [c for c in candidates if c.target.vendor == host_or_target.vendor]
++ narrowed = [c for c in candidates if c.target.vendor == aliased_vendor]
+ if len(narrowed) == 1:
+ return narrowed[0].rust_target
+
diff --git a/firefox/visibility.patch b/firefox/visibility.patch
new file mode 100644
index 00000000..5084ae90
--- /dev/null
+++ b/firefox/visibility.patch
@@ -0,0 +1,13 @@
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -2186,7 +2186,7 @@
+-@depends(target, build_environment)
++@depends(target, c_compiler, build_environment)
+-def visibility_flags(target, env):
++def visibility_flags(target, c_compiler, env):
+ if target.os != "WINNT":
+- if target.kernel == "Darwin":
++ if target.kernel == "Darwin" or c_compiler.type == "clang":
+ return ("-fvisibility=hidden", "-fvisibility-inlines-hidden")
+ return (
+ "-I%s/system_wrappers" % os.path.join(env.dist),