# Minimal Firefox RPM Spec File - Wayland Only %global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} %global mozappdir %{_libdir}/firefox Summary: Mozilla Firefox Web browser (Wayland-only) Name: firefox Version: 147.0.1 Release: 1%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 OR GPL-2.0-or-later OR LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz # Core build tools BuildRequires: autoconf213 BuildRequires: rust BuildRequires: cargo BuildRequires: cbindgen BuildRequires: clang BuildRequires: clang-devel BuildRequires: llvm BuildRequires: lld BuildRequires: wasi-libc-devel BuildRequires: nasm BuildRequires: desktop-file-utils BuildRequires: python3-devel BuildRequires: nodejs BuildRequires: perl-interpreter # Graphics and UI (Wayland-focused) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(dri) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(pango) # Audio BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(libpulse) # Crypto and networking BuildRequires: pkgconfig(nspr) BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(libcurl) BuildRequires: pkgconfig(krb5) # Compression and images BuildRequires: zip BuildRequires: bzip2-devel BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(libpng) BuildRequires: libjpeg-devel # System integration BuildRequires: dbus-glib-devel Requires: mozilla-filesystem Requires: nspr Requires: nss %description Mozilla Firefox is an open-source web browser, designed for standards compliance, performance and portability. This build is configured for Wayland display protocol only (no X11 support). %prep %setup -q -n firefox-%{version} %build # Create minimal mozconfig with Wayland backend cat > .mozconfig << EOF ac_add_options --prefix="%{_prefix}" ac_add_options --libdir="%{_libdir}" ac_add_options --enable-optimize ac_add_options --disable-debug ac_add_options --enable-official-branding ac_add_options --with-system-nspr ac_add_options --with-system-nss ac_add_options --disable-crashreporter ac_add_options --disable-tests # Wayland-only configuration ac_add_options --enable-default-toolkit=cairo-gtk3-wayland mk_add_options MOZ_MAKE_FLAGS="-j%{_smp_build_ncpus}" export STRIP=/bin/true EOF # Point to libclang using llvm-config echo "ac_add_options --with-libclang-path=$(llvm-config --libdir)" >> .mozconfig # Build Firefox ./mach build -v %install # Install Firefox DESTDIR=%{buildroot} make -C objdir install # Create directories mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_datadir}/applications # Install desktop file cat > %{buildroot}%{_datadir}/applications/firefox.desktop << EOF [Desktop Entry] Name=Firefox (Wayland) GenericName=Web Browser Comment=Browse the Web (Wayland native) Exec=firefox %u Icon=firefox Type=Application Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml; EOF # Create launcher script that ensures Wayland cat > %{buildroot}%{_bindir}/firefox << 'EOF' #!/bin/sh # Force Wayland backend export MOZ_ENABLE_WAYLAND=1 exec %{mozappdir}/firefox "$@" EOF chmod 755 %{buildroot}%{_bindir}/firefox %files %{_bindir}/firefox %{mozappdir}/ %{_datadir}/applications/firefox.desktop %changelog * Tue Jan 28 2025 Minimal Build - 147.0.1-1 - Minimal Firefox build with Wayland-only support