2021-04-26 10:31:06 +00:00
%global disable_toolsets 0
2022-09-26 13:40:00 +00:00
# Produce a build suitable for release, i.e. use PGO/LTO. You can turn it off
# when building locally to reduce build time.
%global release_build 1
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
# Run Mozilla test suite as a part of compile rpm section. Turn off when
# building locally and don't want to spend 24 hours waiting for results.
%global run_firefox_tests 0
%ifarch x86_64 %{ix86}
%global run_firefox_tests 0
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
# Don't create debuginfo rpm packages. It reduces build time as
# exctracting debuginfo takes long time.
%global create_debuginfo 1
2021-07-15 10:52:31 +00:00
%{lua:
function dist_to_rhel_minor(str, start)
match = string.match(str, " . m o d u l e % + e l 8 . % d + " )
if match then
return string.sub(match, 13)
end
match = string.match(str, " . e l 8 _ % d + " )
if match then
return string.sub(match, 6)
end
2021-07-16 20:35:45 +00:00
match = string.match(str, " . e l 8 " )
if match then
2022-05-04 11:06:12 +00:00
return 7
2021-07-16 20:35:45 +00:00
end
2021-07-15 10:52:31 +00:00
return -1
end}
%global rhel_minor_version %{lua:print(dist_to_rhel_minor(rpm.expand(" % d i s t " )))}
2022-09-26 13:40:00 +00:00
# Produce debug (non-optimized) package build. Suitable for debugging only
# as the build is *very* slow.
%global debug_build 0
2021-04-26 10:31:06 +00:00
2021-09-15 09:07:23 +00:00
%global dist %{?dist} .alma
2021-04-26 10:31:06 +00:00
%global system_nss 1
%global bundle_nss 0
%if 0%{?rhel} == 8
2022-09-26 13:40:00 +00:00
%if %{rhel_minor_version} <= 4
2021-10-11 07:52:43 +00:00
%global bundle_nss 1
%global system_nss 1
2021-04-26 10:31:06 +00:00
%endif
%endif
2022-09-26 13:40:00 +00:00
%global build_with_asan 0
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
%global use_llvmts 0
%global use_nodejsts 0
%if 0%{?rhel} < 8
%global use_llvmts 1
%global use_nodejsts 1
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if %{run_firefox_tests}
%global test_on_wayland 1
%endif
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
%global nodejs_rb nodejs
%global llvm_version 7.0
2022-09-26 13:40:00 +00:00
%if "%{toolchain}" == "clang"
%global build_with_clang 1
%else
%global build_with_clang 0
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%ifarch armv7hl
%global create_debuginfo 0
%endif
2021-10-11 07:52:43 +00:00
%if 0%{?rhel} == 7
%global use_dts 1
%global nodejs_rb rh-nodejs10-nodejs
%global llvm_version 11.0
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
# Temporary disabled due to
# https://bugzilla.redhat.com/show_bug.cgi?id=1951606
%global enable_mozilla_crashreporter 0
%global system_ffi 1
%ifarch armv7hl
%global system_libvpx 1
%else
%global system_libvpx 0
%endif
%global hardened_build 1
%global system_jpeg 1
%global disable_elfhack 1
%global use_bundled_cbindgen 1
%if %{debug_build}
%global release_build 0
%endif
# Build PGO+LTO on x86_64 only due to build issues
# on other arches.
%global build_with_pgo 0
%ifarch x86_64
%if %{release_build}
%global build_with_pgo 0
%endif
%endif
2021-04-26 10:31:06 +00:00
%global use_rustts 1
2022-09-26 13:40:00 +00:00
%global dts_version 10
%global rust_version 1.62
%if 0%{?rhel} >= 8
2021-10-11 07:52:43 +00:00
%global use_rustts 0
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if 0%{?flatpak}
%global build_with_pgo 0
%endif
2021-10-11 07:52:43 +00:00
2021-04-26 10:31:06 +00:00
%if 0%{?disable_toolsets}
%global use_rustts 0
%global use_dts 0
%global use_llvmts 0
2022-09-26 13:40:00 +00:00
%global use_nodejsts 0
%global nodejs_rb nodejs
2021-04-26 10:31:06 +00:00
%endif
# Big endian platforms
%ifarch ppc64 s390x
%global big_endian 1
%endif
2022-09-26 13:40:00 +00:00
%if 0%{?build_with_pgo}
%global use_xvfb 1
%global build_tests 1
%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
%if 0%{?run_firefox_tests}
%global use_xvfb 1
%global build_tests 1
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%global launch_wayland_compositor 0
%if %{build_with_pgo} && 0%{?test_on_wayland}
%global launch_wayland_compositor 1
%endif
%if %{run_firefox_tests} && 0%{?test_on_wayland}
%global launch_wayland_compositor 1
%endif
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
# We need to use full path because of flatpak where datadir is /app/share
2021-04-26 10:31:06 +00:00
%global default_bookmarks_file /usr/share/bookmarks/default-bookmarks.html
%global firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
# Minimal required versions
2022-09-26 13:40:00 +00:00
%global cairo_version 1.13.1
%global freetype_version 2.1.9
%global libnotify_version 0.7.0
%if %{?system_libvpx}
%global libvpx_version 1.8.2
%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
%if %{?system_nss}
%global nspr_version 4.34
2021-04-26 10:31:06 +00:00
%global nspr_build_version %{nspr_version}
2022-09-26 13:40:00 +00:00
%global nss_version 3.79
2021-04-26 10:31:06 +00:00
%global nss_build_version %{nss_version}
%endif
2022-09-26 13:40:00 +00:00
%global mozappdir %{_libdir} /firefox
%global mozappdirdev %{_libdir} /firefox-devel-%{version}
%global langpackdir %{mozappdir} /browser/extensions
%global tarballdir firefox-%{version}
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
%define bundled_install_path %{mozappdir}/bundled
2022-09-26 13:40:00 +00:00
%global official_branding 1
2021-04-26 10:31:06 +00:00
# We could use %%include, but in %%files, %%post and other sections, but in these
# sections it could lead to syntax errors about unclosed %%if. Work around it by
# using the following macro
%define include_file() %{expand:%(cat '%1')}
2022-09-26 13:40:00 +00:00
%bcond_without langpacks
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
%global pre_version esr
%if !%{release_build}
%global pre_tag .npgo
%endif
%if %{build_with_clang}
%global pre_tag .clang
%endif
%if %{build_with_asan}
%global pre_tag .asan
%global build_with_pgo 0
%endif
%if !%{system_nss}
%global nss_tag .nss
%endif
%if %{debug_build}
%global pre_tag .debug
%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
# Exclude private libraries from autogenerated provides and requires
%global __provides_exclude_from ^%{mozappdir}
%global __requires_exclude ^(%%(find %{buildroot} %{mozappdir} -name '*.so' | xargs -n1 basename | sort -u | paste -s -d '|' -))
2022-05-26 11:07:16 +00:00
2021-04-26 10:31:06 +00:00
Summary : Mozilla Firefox Web browser
Name : firefox
2022-12-15 15:33:28 +00:00
Version : 102.6.0
2022-10-20 14:32:14 +00:00
Release : 1%{?dist}
2021-04-26 10:31:06 +00:00
URL : https://www.mozilla.org/firefox/
License : MPLv1.1 or GPLv2+ or LGPLv2+
2022-09-26 13:40:00 +00:00
2021-10-11 07:52:43 +00:00
%if 0%{?rhel} == 9
ExcludeArch : %{ix86}
%endif
%if 0%{?rhel} == 8
2022-01-12 11:31:42 +00:00
%if %{rhel_minor_version} == 1
ExcludeArch : %{ix86} aarch64 s390x
%else
2021-10-11 07:52:43 +00:00
ExcludeArch : %{ix86}
2022-01-12 11:31:42 +00:00
%endif
2021-10-11 07:52:43 +00:00
%endif
2021-04-26 10:31:06 +00:00
%if 0%{?rhel} == 7
2022-01-12 11:31:42 +00:00
ExcludeArch : aarch64 s390 ppc
2021-04-26 10:31:06 +00:00
%endif
2021-10-11 07:52:43 +00:00
# We can't use the official tarball as it contains some test files that use
# licenses that are rejected by Red Hat Legal.
# The official tarball has to be always processed by the process-official-tarball
2022-09-26 13:40:00 +00:00
# script
# Link to original tarball: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz
Source0 : firefox-%{version} %{?pre_version} .processed-source.tar.xz
%if %{with langpacks}
2022-12-15 15:33:28 +00:00
Source1 : firefox-langpacks-%{version} %{?pre_version} -20221206.tar.xz
2021-04-26 10:31:06 +00:00
%endif
2021-10-11 07:52:43 +00:00
Source2 : cbindgen-vendor.tar.xz
Source3 : process-official-tarball
2021-04-26 10:31:06 +00:00
Source10 : firefox-mozconfig
2021-09-15 09:07:23 +00:00
Source12 : firefox-almalinux-default-prefs.js
2021-04-26 10:31:06 +00:00
Source20 : firefox.desktop
Source21 : firefox.sh.in
Source23 : firefox.1
Source24 : mozilla-api-key
Source25 : firefox-symbolic.svg
Source26 : distribution.ini
Source27 : google-api-key
2022-09-26 13:40:00 +00:00
Source32 : node-stdout-nonblocking-wrapper
Source33 : firefox.appdata.xml.in
Source34 : firefox-search-provider.ini
Source35 : google-loc-api-key
Source37 : mochitest-python.tar.gz
Source38 : print_results
Source39 : print-errors
Source40 : run-tests-x11
Source41 : run-tests-wayland
Source42 : psummary
Source43 : print_failures
Source44 : print-error-reftest
Source45 : run-wayland-compositor
Source403 : nss-3.79.0-6.el8_1.src.rpm
2021-04-26 10:31:06 +00:00
Source401 : nss-setup-flags-env.inc
2022-09-26 13:40:00 +00:00
Source402 : nspr-4.34.0-3.el8_1.src.rpm
2021-10-11 07:52:43 +00:00
2021-04-26 10:31:06 +00:00
# Build patches
2022-09-26 13:40:00 +00:00
Patch3 : mozilla-build-arm.patch
Patch25 : rhbz-1219542-s390-build.patch
# Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x)
Patch40 : build-aarch64-skia.patch
Patch41 : build-disable-elfhack.patch
Patch44 : build-arm-libopus.patch
Patch47 : fedora-shebang-build.patch
Patch49 : build-arm-libaom.patch
Patch53 : firefox-gcc-build.patch
Patch54 : mozilla-1669639.patch
Patch71 : 0001-GLIBCXX-fix-for-GCC-12.patch
Patch72 : build-remove-dav1d-from-wayland-dep.patch
Patch73 : build-ascii-decode-fail-rhel7.patch
Patch75 : build-big-endian-errors.patch
Patch76 : firefox-nss-version.patch
Patch77 : mozilla-1775202.patch
2022-11-21 12:38:23 +00:00
Patch78 : build-rhel7-lower-node-min-version.patch
2022-09-26 13:40:00 +00:00
# Test patches
# Generate without context by
# GENDIFF_DIFF_ARGS=-U0 gendiff firefox-xxxx .firefox-tests-xpcshell
# GENDIFF_DIFF_ARGS=-U0 gendiff firefox-xxxx .firefox-tests-reftest
Patch102 : firefox-tests-xpcshell-freeze.patch
# Fedora specific patches
2021-04-26 10:31:06 +00:00
Patch215 : firefox-enable-addons.patch
Patch219 : rhbz-1173156.patch
Patch224 : mozilla-1170092.patch
2022-09-26 13:40:00 +00:00
#ARM run-time patch
Patch226 : rhbz-1354671.patch
Patch228 : disable-openh264-download.patch
Patch229 : firefox-nss-addon-hack.patch
Patch230 : D110204-fscreen.diff
2022-10-18 18:16:40 +00:00
Patch231 : webrtc-nss-fix.patch
2022-12-15 15:33:28 +00:00
# Backported WebRTC changes for PipeWire/Wayland screen sharing support
Patch232 : libwebrtc-screen-cast-sync.patch
2021-04-26 10:31:06 +00:00
# Upstream patches
2022-09-26 13:40:00 +00:00
Patch415 : mozilla-1670333.patch
Patch416 : mozilla-bmo1005535.patch
Patch417 : mozilla-bmo1504834-part1.patch
Patch418 : mozilla-bmo1504834-part3.patch
Patch419 : mozilla-bmo849632.patch
Patch420 : mozilla-bmo998749.patch
Patch421 : mozilla-s390x-skia-gradient.patch
Patch422 : one_swizzle_to_rule_them_all.patch
Patch423 : svg-rendering.patch
2022-10-18 18:16:40 +00:00
Patch424 : D158770.diff
2022-09-26 13:40:00 +00:00
# PGO/LTO patches
Patch600 : pgo.patch
Patch602 : mozilla-1516803.patch
Patch1008 : build-rhel7-nasm-dwarf.patch
2021-04-26 10:31:06 +00:00
%if %{?system_nss}
%if !0%{?bundle_nss}
BuildRequires : pkgconfig(nspr) >= %{nspr_version}
BuildRequires : pkgconfig(nss) >= %{nss_version}
BuildRequires : nss-static >= %{nss_version}
%endif
%endif
BuildRequires : pkgconfig(libpng)
2022-09-26 13:40:00 +00:00
%if %{?system_jpeg}
2021-04-26 10:31:06 +00:00
BuildRequires : libjpeg-devel
2022-09-26 13:40:00 +00:00
%endif
2021-04-26 10:31:06 +00:00
BuildRequires : zip
BuildRequires : bzip2-devel
BuildRequires : pkgconfig(zlib)
2022-09-26 13:40:00 +00:00
BuildRequires : pkgconfig(gtk+-3.0)
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(gtk+-2.0)
2022-09-26 13:40:00 +00:00
BuildRequires : pkgconfig(krb5)
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(pango)
2022-09-26 13:40:00 +00:00
BuildRequires : pkgconfig(freetype2) >= %{freetype_version}
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(xt)
2022-09-26 13:40:00 +00:00
BuildRequires : pkgconfig(xtst)
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(xrender)
BuildRequires : pkgconfig(libstartup-notification-1.0)
2022-09-26 13:40:00 +00:00
BuildRequires : pkgconfig(libnotify) >= %{libnotify_version}
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(dri)
BuildRequires : pkgconfig(libcurl)
2022-09-26 13:40:00 +00:00
BuildRequires : pkgconfig(alsa)
BuildRequires : libstdc++-devel
BuildRequires : libstdc++-static
2021-04-26 10:31:06 +00:00
BuildRequires : dbus-glib-devel
2022-09-26 13:40:00 +00:00
%if %{?system_libvpx}
BuildRequires : libvpx-devel >= %{libvpx_version}
%endif
2021-10-11 07:52:43 +00:00
BuildRequires : m4
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(libpulse)
%if 0%{?use_dts}
BuildRequires : devtoolset-%{dts_version} -gcc-c++
BuildRequires : devtoolset-%{dts_version} -gcc
BuildRequires : devtoolset-%{dts_version} -libatomic-devel
%endif
2021-10-11 07:52:43 +00:00
%if 0%{?rhel} == 9
BuildRequires : gcc
BuildRequires : gcc-c++
BuildRequires : cargo
BuildRequires : rust
BuildRequires : clang clang-libs llvm
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
BuildRequires : %{nodejs_rb} >= 10.21
%if 0%{?rhel} == 7
2021-04-26 10:31:06 +00:00
BuildRequires : scl-utils
BuildRequires : findutils
2022-09-26 13:40:00 +00:00
%endif
2021-04-26 10:31:06 +00:00
%if 0%{?rhel} == 8
BuildRequires : cargo
BuildRequires : rust >= %{rust_version}
BuildRequires : llvm >= %{llvm_version}
BuildRequires : llvm-devel >= %{llvm_version}
BuildRequires : clang >= %{llvm_version}
BuildRequires : clang-devel >= %{llvm_version}
BuildRequires : rustfmt >= %{rust_version}
2022-09-26 13:40:00 +00:00
%endif
2021-04-26 10:31:06 +00:00
%if 0%{?use_rustts}
2021-10-11 07:52:43 +00:00
BuildRequires : rust-toolset-%{rust_version}
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
2021-04-26 10:31:06 +00:00
%if 0%{?use_llvmts}
BuildRequires : llvm-toolset-%{llvm_version}
BuildRequires : llvm-toolset-%{llvm_version} -llvm-devel
2021-10-11 07:52:43 +00:00
BuildRequires : llvm-toolset-%{llvm_version} -clang
BuildRequires : llvm-toolset-%{llvm_version} -clang-devel
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if 0%{?rhel} > 7
2021-04-26 10:31:06 +00:00
BuildRequires : pipewire-devel
%endif
2022-09-26 13:40:00 +00:00
%if !0%{?use_bundled_cbindgen}
BuildRequires : cbindgen
%endif
BuildRequires : nasm >= 1.13
BuildRequires : libappstream-glib
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
%if 0%{?big_endian}
BuildRequires : icu
%endif
2021-04-26 10:31:06 +00:00
# Bundled nss/nspr requirement
%if 0%{?bundle_nss}
BuildRequires : nss-softokn
BuildRequires : sqlite-devel
BuildRequires : zlib-devel
BuildRequires : pkgconfig
BuildRequires : gawk
BuildRequires : psmisc
BuildRequires : perl-interpreter
BuildRequires : gcc-c++
BuildRequires : xmlto
%endif
Requires : mozilla-filesystem
2022-09-26 13:40:00 +00:00
#not known or rhel7
#Recommends: mozilla-openh264 >= 2.1.1
#Recommends: libva
2021-04-26 10:31:06 +00:00
Requires : p11-kit-trust
2022-09-26 13:40:00 +00:00
Requires : pciutils-libs
2021-04-26 10:31:06 +00:00
%if %{?system_nss}
%if !0%{?bundle_nss}
Requires : nspr >= %{nspr_build_version}
Requires : nss >= %{nss_build_version}
%endif
%endif
2022-09-26 13:40:00 +00:00
BuildRequires : python3-devel
BuildRequires : python3-setuptools
2021-04-26 10:31:06 +00:00
BuildRequires : desktop-file-utils
Requires : redhat-indexhtml
2022-09-26 13:40:00 +00:00
%if !0%{?flatpak}
#TODO
BuildRequires : system-bookmarks
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if %{?system_ffi}
2021-04-26 10:31:06 +00:00
BuildRequires : pkgconfig(libffi)
2022-09-26 13:40:00 +00:00
%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
%if 0%{?use_xvfb}
BuildRequires : xorg-x11-server-Xvfb
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if %{build_with_asan}
BuildRequires : libasan
BuildRequires : libasan-static
%endif
BuildRequires : perl-interpreter
#BuildRequires: fdk-aac-free-devel not on rhel8
%if 0%{?test_on_wayland}
BuildRequires : mutter
BuildRequires : gsettings-desktop-schemas
BuildRequires : gnome-settings-daemon
BuildRequires : mesa-dri-drivers
BuildRequires : xorg-x11-server-Xwayland
BuildRequires : dbus-x11
BuildRequires : gnome-keyring
%endif
%if 0%{?run_firefox_tests}
BuildRequires : procps-ng
BuildRequires : nss-tools
BuildRequires : dejavu-sans-mono-fonts
BuildRequires : dejavu-sans-fonts
BuildRequires : dejavu-serif-fonts
BuildRequires : dbus-x11
BuildRequires : gnome-keyring
BuildRequires : mesa-dri-drivers
# ----------------------------------------
BuildRequires : liberation-fonts-common
BuildRequires : liberation-mono-fonts
BuildRequires : liberation-sans-fonts
BuildRequires : liberation-serif-fonts
# ----------------------------------
# Missing on f32
%if 0%{?fedora} > 33
BuildRequires : google-carlito-fonts
%endif
BuildRequires : google-droid-sans-fonts
BuildRequires : google-noto-fonts-common
BuildRequires : google-noto-cjk-fonts-common
BuildRequires : google-noto-sans-cjk-ttc-fonts
BuildRequires : google-noto-sans-gurmukhi-fonts
BuildRequires : google-noto-sans-fonts
BuildRequires : google-noto-emoji-color-fonts
BuildRequires : google-noto-sans-sinhala-vf-fonts
# -----------------------------------
BuildRequires : thai-scalable-fonts-common
BuildRequires : thai-scalable-waree-fonts
BuildRequires : khmeros-base-fonts
BuildRequires : jomolhari-fonts
# ----------------------------------
BuildRequires : lohit-tamil-fonts
BuildRequires : lohit-telugu-fonts
# ----------------------------------
BuildRequires : paktype-naskh-basic-fonts
# faild to build in Koji / f32
%if 0%{?fedora} > 33
BuildRequires : pt-sans-fonts
%endif
BuildRequires : smc-meera-fonts
BuildRequires : stix-fonts
BuildRequires : abattis-cantarell-fonts
BuildRequires : xorg-x11-fonts-ISO8859-1-100dpi
BuildRequires : xorg-x11-fonts-misc
%endif
BuildRequires : make
BuildRequires : pciutils-libs
2021-04-26 10:31:06 +00:00
Obsoletes : mozilla <= 37:1.7.13
Provides : webclient
2022-09-26 13:40:00 +00:00
%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6
%ifarch aarch64
BuildRequires : gcc-toolset-12-annobin-plugin-gcc
%endif
%endif
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
# Bundled libraries
Provides : bundled(angle)
2022-10-18 18:16:40 +00:00
Provides : bundled(audioipc-2)
Provides : bundled(brotli)
2021-10-11 07:52:43 +00:00
Provides : bundled(cairo)
2022-10-18 18:16:40 +00:00
Provides : bundled(cfworker)
Provides : bundled(d3.js)
Provides : bundled(double-conversion)
Provides : bundled(expat)
Provides : bundled(fdlibm)
Provides : bundled(ffvpx)
Provides : bundled(freetype2)
2021-10-11 07:52:43 +00:00
Provides : bundled(graphite2)
Provides : bundled(harfbuzz)
2022-10-18 18:16:40 +00:00
Provides : bundled(highway)
Provides : bundled(intgemm)
2021-10-11 07:52:43 +00:00
Provides : bundled(kissfft)
Provides : bundled(libaom)
Provides : bundled(libcubeb)
Provides : bundled(libdav1d)
Provides : bundled(libjpeg)
2022-10-18 18:16:40 +00:00
Provides : bundled(libjxl)
Provides : bundled(libjxl)
Provides : bundled(libmar)
2021-10-11 07:52:43 +00:00
Provides : bundled(libmkv)
Provides : bundled(libnestegg)
Provides : bundled(libogg)
Provides : bundled(libopus)
Provides : bundled(libpng)
2022-10-18 18:16:40 +00:00
Provides : bundled(libprio)
2021-10-11 07:52:43 +00:00
Provides : bundled(libsoundtouch)
Provides : bundled(libspeex_resampler)
2022-10-18 18:16:40 +00:00
Provides : bundled(libsrtp)
2021-10-11 07:52:43 +00:00
Provides : bundled(libtheora)
Provides : bundled(libtremor)
Provides : bundled(libvorbis)
Provides : bundled(libvpx)
Provides : bundled(libwebp)
2022-10-18 18:16:40 +00:00
Provides : bundled(libwebrtc)
2021-10-11 07:52:43 +00:00
Provides : bundled(libyuv)
Provides : bundled(mp4parse-rust)
2022-10-18 18:16:40 +00:00
Provides : bundled(mp4parse-rust)
Provides : bundled(msgpack-c)
Provides : bundled(msgpack-c)
2021-10-11 07:52:43 +00:00
Provides : bundled(mtransport)
Provides : bundled(openmax_dl)
2022-10-18 18:16:40 +00:00
Provides : bundled(openmax_il)
Provides : bundled(openmax_il)
Provides : bundled(ots)
Provides : bundled(qcms)
Provides : bundled(rlbox_sandboxing_api)
Provides : bundled(sfntly)
Provides : bundled(sipcc)
Provides : bundled(skia)
Provides : bundled(sqlite3)
Provides : bundled(thebes)
Provides : bundled(wasm2c)
Provides : bundled(WebRender)
2021-10-11 07:52:43 +00:00
Provides : bundled(woff2)
Provides : bundled(xz-embedded)
2022-10-18 18:16:40 +00:00
Provides : bundled(ycbcr)
2021-10-11 07:52:43 +00:00
Provides : bundled(zlib)
%if 0%{?bundle_nss}
2022-09-26 13:40:00 +00:00
Provides : bundled(nss) = 3.79.0
Provides : bundled(nspr) = 4.34.0
2021-10-11 07:52:43 +00:00
%endif
2021-04-26 10:31:06 +00:00
%description
Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability.
2022-09-26 13:40:00 +00:00
%if 0%{?run_firefox_tests}
%global testsuite_pkg_name %{name} -testresults
2021-04-26 10:31:06 +00:00
%package -n %{testsuite_pkg_name}
Summary : Results of testsuite
%description -n %{testsuite_pkg_name}
This package contains results of tests executed during build.
%files -n %{testsuite_pkg_name}
2022-09-26 13:40:00 +00:00
/%{version} -%{release} /test_results
/%{version} -%{release} /test_summary.txt
/%{version} -%{release} /failures-*
2021-04-26 10:31:06 +00:00
%endif
#---------------------------------------------------------------------
2022-09-26 13:40:00 +00:00
2021-04-26 10:31:06 +00:00
%prep
echo " B u i l d e n v i r o n m e n t "
echo " d i s t %{?dist} "
2022-09-26 13:40:00 +00:00
echo " R H E L 8 m i n o r v e r s i o n : %{?rhel_minor_version} "
2021-04-26 10:31:06 +00:00
echo " u s e _ b u n d l e d _ f f i %{?use_bundled_ffi} "
echo " b u n d l e _ n s s %{?bundle_nss} "
echo " s y s t e m _ n s s %{?system_nss} "
echo " u s e _ r u s t t s %{?use_rustts} "
%setup -q -n %{tarballdir}
2022-09-26 13:40:00 +00:00
2021-04-26 10:31:06 +00:00
# Build patches, can't change backup suffix from default because during build
# there is a compare of config and js/config directories and .orig suffix is
# ignored during this compare.
2022-09-26 13:40:00 +00:00
%ifarch s390
%patch25 -p1 -b .rhbz-1219542-s390
%endif
%patch40 -p1 -b .aarch64-skia
%if 0%{?disable_elfhack}
%patch41 -p1 -b .disable-elfhack
%endif
%patch3 -p1 -b .arm
%patch44 -p1 -b .build-arm-libopus
%patch47 -p1 -b .fedora-shebang
%patch49 -p1 -b .build-arm-libaom
%patch53 -p1 -b .firefox-gcc-build
%patch54 -p1 -b .1669639
%patch71 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
%patch72 -p1 -b .build-remove-dav1d-from-wayland-dep
%patch75 -p1 -b .build-big-endian-errors
%patch76 -p1 -b .firefox-nss-version
#ppc64le build failure because of webrtc
%patch77 -p1 -b .mozilla-1775202
%patch73 -p1 -b .build-ascii-decode-fail-rhel7
2022-11-21 12:38:23 +00:00
%if 0%{?rhel} == 7
%patch78 -p1 -b .build-rhel7-lower-node-min-version
%endif
2022-09-26 13:40:00 +00:00
# Test patches
%patch102 -p1 -b .firefox-tests-xpcshell-freeze
2021-04-26 10:31:06 +00:00
# Fedora patches
%patch215 -p1 -b .addons
%patch219 -p1 -b .rhbz-1173156
%patch224 -p1 -b .1170092
2022-09-26 13:40:00 +00:00
#ARM run-time patch
%ifarch aarch64
%patch226 -p1 -b .1354671
%endif
%patch228 -p1 -b .disable-openh264-download
%patch229 -p1 -b .firefox-nss-addon-hack
%patch230 -p1 -b .D110204-fscreen.diff
2022-10-18 18:16:40 +00:00
%patch231 -p1 -b .webrtc-nss-fix
2022-12-15 15:33:28 +00:00
%patch232 -p1 -b .libwebrtc-screen-cast-sync
2022-09-26 13:40:00 +00:00
%patch415 -p1 -b .1670333
%patch416 -p1 -b .mozilla-bmo1005535
%patch417 -p1 -b .mozilla-bmo1504834-part1
%patch418 -p1 -b .mozilla-bmo1504834-part3
%patch419 -p1 -b .mozilla-bmo849632
%patch420 -p1 -b .mozilla-bmo998749
%patch421 -p1 -b .mozilla-s390x-skia-gradient
%patch422 -p1 -b .one_swizzle_to_rule_them_all
%patch423 -p1 -b .svg-rendering
2022-10-18 18:16:40 +00:00
%patch424 -p1 -b .D158770.diff
2022-09-26 13:40:00 +00:00
# PGO patches
%if %{build_with_pgo}
%if !%{build_with_clang}
%patch600 -p1 -b .pgo
%patch602 -p1 -b .1516803
2022-02-14 08:16:12 +00:00
%endif
2021-04-26 10:31:06 +00:00
%endif
2021-10-11 07:52:43 +00:00
%if 0%{?rhel} == 7
%ifarch %{ix86}
# -F dwarf not available in RHEL7's nasm
%patch1008 -p1 -b .build-rhel7-nasm-dwarf
%endif
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
2021-04-26 10:31:06 +00:00
%{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig
2022-09-26 13:40:00 +00:00
echo " a c _ a d d _ o p t i o n s - - e n a b l e - d e f a u l t - t o o l k i t = c a i r o - g t k 3 - w a y l a n d " >> .mozconfig
2021-04-26 10:31:06 +00:00
%if %{official_branding}
echo " a c _ a d d _ o p t i o n s - - e n a b l e - o f f i c i a l - b r a n d i n g " >> .mozconfig
%endif
%{__cp} %{SOURCE24} mozilla-api-key
%{__cp} %{SOURCE27} google-api-key
2022-09-26 13:40:00 +00:00
%{__cp} %{SOURCE35} google-loc-api-key
echo " a c _ a d d _ o p t i o n s - - p r e f i x = \" %{_prefix} \" " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - l i b d i r = \" %{_libdir} \" " >> .mozconfig
2021-04-26 10:31:06 +00:00
%if %{?system_nss}
echo " a c _ a d d _ o p t i o n s - - w i t h - s y s t e m - n s p r " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - w i t h - s y s t e m - n s s " >> .mozconfig
%else
echo " a c _ a d d _ o p t i o n s - - w i t h o u t - s y s t e m - n s p r " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - w i t h o u t - s y s t e m - n s s " >> .mozconfig
%endif
2022-09-26 13:40:00 +00:00
%if %{?system_ffi}
echo " a c _ a d d _ o p t i o n s - - e n a b l e - s y s t e m - f f i " >> .mozconfig
%endif
%ifarch %{arm}
2021-04-26 10:31:06 +00:00
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - e l f - h a c k " >> .mozconfig
%endif
%if %{?debug_build}
echo " a c _ a d d _ o p t i o n s - - e n a b l e - d e b u g " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - o p t i m i z e " >> .mozconfig
%else
2022-09-26 13:40:00 +00:00
%global optimize_flags " n o n e "
2021-10-11 07:52:43 +00:00
%ifarch s390x
2021-04-26 10:31:06 +00:00
%global optimize_flags " - g - O 1 "
%endif
%ifarch ppc64le aarch64
%global optimize_flags " - g - O 2 "
%endif
%if %{optimize_flags} != "none"
echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig
%else
echo 'ac_add_options --enable-optimize' >> .mozconfig
%endif
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - d e b u g " >> .mozconfig
%endif
# Second arches fail to start with jemalloc enabled
%ifnarch %{ix86} x86_64
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - j e m a l l o c " >> .mozconfig
%endif
2022-09-26 13:40:00 +00:00
%if 0%{?build_tests}
echo " a c _ a d d _ o p t i o n s - - e n a b l e - t e s t s " >> .mozconfig
%else
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - t e s t s " >> .mozconfig
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if !%{?system_jpeg}
echo " a c _ a d d _ o p t i o n s - - w i t h o u t - s y s t e m - j p e g " >> .mozconfig
%else
echo " a c _ a d d _ o p t i o n s - - w i t h - s y s t e m - j p e g " >> .mozconfig
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if %{?system_libvpx}
echo " a c _ a d d _ o p t i o n s - - w i t h - s y s t e m - l i b v p x " >> .mozconfig
%else
echo " a c _ a d d _ o p t i o n s - - w i t h o u t - s y s t e m - l i b v p x " >> .mozconfig
%endif
%ifarch s390 s390x
2021-04-26 10:31:06 +00:00
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - j i t " >> .mozconfig
%endif
2022-09-26 13:40:00 +00:00
%if %{build_with_asan}
echo " a c _ a d d _ o p t i o n s - - e n a b l e - a d d r e s s - s a n i t i z e r " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - j e m a l l o c " >> .mozconfig
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if !%{enable_mozilla_crashreporter}
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - c r a s h r e p o r t e r " >> .mozconfig
2021-04-26 10:31:06 +00:00
%endif
2021-10-11 07:52:43 +00:00
# AV1 requires newer nasm that was rebased in 8.4
%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && %{rhel_minor_version} < 4)
echo " a c _ a d d _ o p t i o n s - - d i s a b l e - a v 1 " >> .mozconfig
%endif
2022-09-26 13:40:00 +00:00
# api keys full path
echo " a c _ a d d _ o p t i o n s - - w i t h - m o z i l l a - a p i - k e y f i l e = ` p w d ` / m o z i l l a - a p i - k e y " >> .mozconfig
# It seems that the api key we have is for the safe browsing only
echo " a c _ a d d _ o p t i o n s - - w i t h - g o o g l e - l o c a t i o n - s e r v i c e - a p i - k e y f i l e = ` p w d ` / g o o g l e - l o c - a p i - k e y " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - w i t h - g o o g l e - s a f e b r o w s i n g - a p i - k e y f i l e = ` p w d ` / g o o g l e - a p i - k e y " >> .mozconfig
2021-04-26 10:31:06 +00:00
echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig
# Remove executable bit to make brp-mangle-shebangs happy.
chmod -x third_party/rust/itertools/src/lib.rs
chmod a-x third_party/rust/ash/src/extensions/ext/*.rs
chmod a-x third_party/rust/ash/src/extensions/khr/*.rs
chmod a-x third_party/rust/ash/src/extensions/nv/*.rs
#---------------------------------------------------------------------
%build
2021-10-11 07:52:43 +00:00
# Disable LTO to work around rhbz#1883904
%define _lto_cflags %{nil}
2021-04-26 10:31:06 +00:00
export PATH=" %{_buildrootdir} / b i n : $ P A T H "
2022-09-26 13:40:00 +00:00
# Cleanup buildroot for existing rpms from bundled nss/nspr and other packages
rm -rf %{_buildrootdir} /*
2021-04-26 10:31:06 +00:00
function install_rpms_to_current_dir() {
PACKAGE_RPM=$(eval echo $1)
PACKAGE_DIR=%{_rpmdir}
if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
# Hack for tps tests
ARCH_STR=%{_arch}
2021-10-11 07:52:43 +00:00
%ifarch %{ix86}
2021-04-26 10:31:06 +00:00
ARCH_STR=" i ? 8 6 "
%endif
2021-10-11 07:52:43 +00:00
PACKAGE_DIR=" $ P A C K A G E _ D I R / $ A R C H _ S T R "
2021-04-26 10:31:06 +00:00
fi
for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM)
do
echo " $ p a c k a g e "
rpm2cpio " $ p a c k a g e " | cpio -idu
done
}
%if 0%{?bundle_nss}
2021-10-11 07:52:43 +00:00
rpm -ivh %{SOURCE402}
#rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec
rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir} /nspr.spec
pushd %{_buildrootdir}
install_rpms_to_current_dir nspr-4*.rpm
install_rpms_to_current_dir nspr-devel*.rpm
popd
echo " S e t t i n g n s p r f l a g s "
# nss-setup-flags-env.inc
sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir} %{bundled_install_path} /%{_lib}/pkgconfig/nspr*.pc
2022-09-26 13:40:00 +00:00
cat %{_buildrootdir} %{bundled_install_path} /%{_lib}/pkgconfig/nspr*.pc
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
export LDFLAGS=" - L %{_buildrootdir} %{bundled_install_path} / % { _ l i b } $ L D F L A G S "
export LDFLAGS=" - W l , - r p a t h , %{bundled_install_path} / % { _ l i b } $ L D F L A G S "
export LDFLAGS=" - W l , - r p a t h - l i n k , %{_buildrootdir} %{bundled_install_path} / % { _ l i b } $ L D F L A G S "
export PKG_CONFIG_PATH=%{_buildrootdir} %{bundled_install_path} /%{_lib}/pkgconfig
2022-09-26 13:40:00 +00:00
pkg-config --libs-only-L nspr
pkg-config --libs nspr
export PATH=" %{_buildrootdir} %{bundled_install_path} / b i n : $ P A T H "
2021-10-11 07:52:43 +00:00
export PATH=%{_buildrootdir} /%{bundled_install_path} /bin:$PATH
echo $PKG_CONFIG_PATH
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
rpm -ivh %{SOURCE403}
2022-03-10 14:38:39 +00:00
rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir} /nss.spec
2021-10-11 07:52:43 +00:00
pushd %{_buildrootdir}
#cleanup
install_rpms_to_current_dir nss-3*.rpm
install_rpms_to_current_dir nss-devel*.rpm
install_rpms_to_current_dir nss-pkcs11-devel*.rpm
install_rpms_to_current_dir nss-softokn-3*.rpm
install_rpms_to_current_dir nss-softokn-devel*.rpm
install_rpms_to_current_dir nss-softokn-freebl-3*.rpm
install_rpms_to_current_dir nss-softokn-freebl-devel*.rpm
install_rpms_to_current_dir nss-util-3*.rpm
install_rpms_to_current_dir nss-util-devel*.rpm
popd
%filter_provides_in %{bundled_install_path} /%{_lib}
%filter_requires_in %{bundled_install_path} /%{_lib}
2021-04-26 10:31:06 +00:00
%filter_from_requires /libnss3.so.*/d
%filter_from_requires /libsmime3.so.*/d
%filter_from_requires /libssl3.so.*/d
%filter_from_requires /libnssutil3.so.*/d
%filter_from_requires /libnspr4.so.*/d
2021-10-11 07:52:43 +00:00
find %{_buildrootdir}
2021-04-26 10:31:06 +00:00
%endif
set +e
2022-09-26 13:40:00 +00:00
%if 0%{?rhel} == 8 && %{rhel_minor_version} < 6
%ifarch aarch64
source scl_source enable gcc-toolset-12
%endif
%endif
2021-04-26 10:31:06 +00:00
%if 0%{?use_dts}
source scl_source enable devtoolset-%{dts_version}
%endif
%if 0%{?use_rustts}
2021-10-11 07:52:43 +00:00
source scl_source enable rust-toolset-%{rust_version}
%endif
%if 0%{?use_nodejsts}
source scl_source enable rh-nodejs10
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if 0%{?use_llvmts}
source scl_source enable llvm-toolset-%{llvm_version}
%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
set -e
2021-04-26 10:31:06 +00:00
env
which gcc
which c++
which g++
which ld
2021-10-11 07:52:43 +00:00
which nasm
2022-09-26 13:40:00 +00:00
which node
%if 0%{?use_bundled_cbindgen}
2021-04-26 10:31:06 +00:00
mkdir -p my_rust_vendor
cd my_rust_vendor
%{__tar} xf %{SOURCE2}
mkdir -p .cargo
cat > .cargo/config <<EOL
[source.crates-io]
replace-with = " v e n d o r e d - s o u r c e s "
[source.vendored-sources]
2022-09-26 13:40:00 +00:00
directory = " ` p w d ` "
2021-04-26 10:31:06 +00:00
EOL
2022-09-26 13:40:00 +00:00
%ifarch aarch64
#export RUSTFLAGS="-Cdebuginfo=0 -Clinker=/opt/rh/gcc-toolset-12/root/usr/bin/gcc"
%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
env CARGO_HOME=.cargo cargo install cbindgen
export PATH=`pwd`/.cargo/bin:$PATH
cd -
%endif
2021-04-26 10:31:06 +00:00
mkdir %{_buildrootdir} /bin || :
2022-09-26 13:40:00 +00:00
cp %{SOURCE32} %{_buildrootdir} /bin || :
2021-04-26 10:31:06 +00:00
# Update the various config.guess to upstream release for aarch64 support
2022-09-26 13:40:00 +00:00
# Do not update config.guess in the ./third_party/rust because that would break checksums
find ./ -path ./third_party/rust -prune -o -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
2021-04-26 10:31:06 +00:00
MOZ_OPT_FLAGS=$(echo " %{optflags} " | %{__sed} -e 's/-Wall//' )
#rhbz#1037063
# -Werror=format-security causes build failures when -Wno-format is explicitly given
# for some sources
# Explicitly force the hardening flags for Firefox so it passes the checksec test;
# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages
2022-09-26 13:40:00 +00:00
%if 0%{?fedora} < 30
2021-04-26 10:31:06 +00:00
MOZ_OPT_FLAGS=" $ M O Z _ O P T _ F L A G S - W f o r m a t - s e c u r i t y - W f o r m a t - W e r r o r = f o r m a t - s e c u r i t y "
2022-09-26 13:40:00 +00:00
%else
# Workaround for mozbz#1531309
MOZ_OPT_FLAGS=$(echo " $ M O Z _ O P T _ F L A G S " | %{__sed} -e 's/-Werror=format-security//' )
%endif
%if 0%{?fedora} > 30
MOZ_OPT_FLAGS=" $ M O Z _ O P T _ F L A G S - f p e r m i s s i v e "
%endif
2021-04-26 10:31:06 +00:00
%if %{?hardened_build}
2022-09-26 13:40:00 +00:00
MOZ_OPT_FLAGS=" $ M O Z _ O P T _ F L A G S - f P I C - W l , - z , r e l r o - W l , - z , n o w "
%endif
2021-04-26 10:31:06 +00:00
%if %{?debug_build}
2022-09-26 13:40:00 +00:00
MOZ_OPT_FLAGS=$(echo " $ M O Z _ O P T _ F L A G S " | %{__sed} -e 's/-O2//' )
%endif
%ifarch s390
MOZ_OPT_FLAGS=$(echo " $ M O Z _ O P T _ F L A G S " | %{__sed} -e 's/-g/-g1/' )
# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which
# overrides the -g1 from line above and breaks building on s390/arm
# (OOM when linking, rhbz#1238225)
export MOZ_DEBUG_FLAGS=" "
%endif
%ifarch %{arm} %{ix86}
MOZ_OPT_FLAGS=$(echo " $ M O Z _ O P T _ F L A G S " | %{__sed} -e 's/-g/-g0/' )
export MOZ_DEBUG_FLAGS=" "
2021-04-26 10:31:06 +00:00
%endif
2021-10-11 07:52:43 +00:00
%if !%{build_with_clang}
2022-09-26 13:40:00 +00:00
%ifarch s390x ppc aarch64 %{ix86}
MOZ_LINK_FLAGS=" - W l , - - n o - k e e p - m e m o r y - W l , - - r e d u c e - m e m o r y - o v e r h e a d s "
%endif
%ifarch %{arm}
MOZ_LINK_FLAGS=" - W l , - - n o - k e e p - m e m o r y - W l , - - s t r i p - d e b u g "
echo " a c _ a d d _ o p t i o n s - - e n a b l e - l i n k e r = g o l d " >> .mozconfig
%endif
%endif
%if 0%{?flatpak}
# Make sure the linker can find libraries in /app/lib64 as we don't use
# __global_ldflags that normally sets this.
MOZ_LINK_FLAGS=" $ M O Z _ L I N K _ F L A G S - L %{_libdir} "
%endif
%ifarch %{arm} %{ix86} %{s390x}
export RUSTFLAGS=" - C d e b u g i n f o = 0 "
echo 'export RUSTFLAGS="-Cdebuginfo=0"' >> .mozconfig
%endif
#%ifarch aarch64
#export RUSTFLAGS="-Cdebuginfo=0 -Clinker=/opt/rh/gcc-toolset-12/root/usr/bin/gcc"
#echo 'export RUSTFLAGS="-Cdebuginfo=0 -Clinker=/opt/rh/gcc-toolset-12/root/usr/bin/gcc"' >> .mozconfig
#%endif
%if %{build_with_asan}
MOZ_OPT_FLAGS=" $ M O Z _ O P T _ F L A G S - f s a n i t i z e = a d d r e s s - D x m a l l o c = m y x m a l l o c "
MOZ_LINK_FLAGS=" $ M O Z _ L I N K _ F L A G S - f s a n i t i z e = a d d r e s s - l d l "
2021-04-26 10:31:06 +00:00
%endif
2021-10-11 07:52:43 +00:00
%if 0%{?bundle_nss}
mkdir -p %{_buildrootdir} %{bundled_install_path} /%{_lib}
MOZ_LINK_FLAGS=" - L %{_buildrootdir} %{bundled_install_path} / % { _ l i b } $ M O Z _ L I N K _ F L A G S "
MOZ_LINK_FLAGS=" - W l , - r p a t h , %{bundled_install_path} / % { _ l i b } $ M O Z _ L I N K _ F L A G S "
MOZ_LINK_FLAGS=" - W l , - r p a t h - l i n k , %{_buildrootdir} %{bundled_install_path} / % { _ l i b } $ M O Z _ L I N K _ F L A G S "
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss
MOZ_OPT_FLAGS=" $ M O Z _ O P T _ F L A G S - D N S S _ P K C S 1 1 _ 3 _ 0 _ S T R I C T "
2021-04-26 10:31:06 +00:00
2021-10-11 07:52:43 +00:00
echo " e x p o r t C F L A G S = \" $ M O Z _ O P T _ F L A G S \" " >> .mozconfig
echo " e x p o r t C X X F L A G S = \" $ M O Z _ O P T _ F L A G S \" " >> .mozconfig
echo " e x p o r t L D F L A G S = \" $ M O Z _ L I N K _ F L A G S \" " >> .mozconfig
%if %{build_with_clang}
2022-09-26 13:40:00 +00:00
echo " e x p o r t L L V M _ P R O F D A T A = \" l l v m - p r o f d a t a \" " >> .mozconfig
echo " e x p o r t A R = \" l l v m - a r \" " >> .mozconfig
echo " e x p o r t N M = \" l l v m - n m \" " >> .mozconfig
echo " e x p o r t R A N L I B = \" l l v m - r a n l i b \" " >> .mozconfig
echo " a c _ a d d _ o p t i o n s - - e n a b l e - l i n k e r = l l d " >> .mozconfig
2021-10-11 07:52:43 +00:00
%else
2022-09-26 13:40:00 +00:00
echo " e x p o r t C C = g c c " >> .mozconfig
echo " e x p o r t C X X = g + + " >> .mozconfig
echo " e x p o r t A R = \" g c c - a r \" " >> .mozconfig
echo " e x p o r t N M = \" g c c - n m \" " >> .mozconfig
echo " e x p o r t R A N L I B = \" g c c - r a n l i b \" " >> .mozconfig
%endif
%if 0%{?build_with_pgo}
echo " a c _ a d d _ o p t i o n s M O Z _ P G O = 1 " >> .mozconfig
# PGO build doesn't work with ccache
export CCACHE_DISABLE=1
2021-10-11 07:52:43 +00:00
%endif
2021-04-26 10:31:06 +00:00
MOZ_SMP_FLAGS=-j1
2022-09-26 13:40:00 +00:00
# On x86_64 architectures, Mozilla can build up to 4 jobs at once in parallel,
# however builds tend to fail on other arches when building in parallel.
#%ifarch %{ix86} s390x %{arm} aarch64 ppc64le
#[ -z "$RPM_BUILD_NCPUS" ] && \
# RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
#[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
#%endif
#%ifarch x86_64 ppc ppc64 ppc64le
[ -z " $RPM_BUILD_NCPUS " ] && \
2021-10-11 07:52:43 +00:00
RPM_BUILD_NCPUS=" ` / u s r / b i n / g e t c o n f _ N P R O C E S S O R S _ O N L N ` "
2022-09-26 13:40:00 +00:00
[ " $RPM_BUILD_NCPUS " -ge 2 ] && MOZ_SMP_FLAGS=-j2
[ " $RPM_BUILD_NCPUS " -ge 4 ] && MOZ_SMP_FLAGS=-j4
[ " $RPM_BUILD_NCPUS " -ge 8 ] && MOZ_SMP_FLAGS=-j8
[ " $RPM_BUILD_NCPUS " -ge 16 ] && MOZ_SMP_FLAGS=-j16
#%endif
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
echo " m k _ a d d _ o p t i o n s M O Z _ M A K E _ F L A G S = \" $ M O Z _ S M P _ F L A G S \" " >> .mozconfig
echo " m k _ a d d _ o p t i o n s M O Z _ S E R V I C E S _ S Y N C = 1 " >> .mozconfig
echo " e x p o r t S T R I P = / b i n / t r u e " >> .mozconfig
#export MACH_USE_SYSTEM_PYTHON=1
2021-04-26 10:31:06 +00:00
2022-09-26 13:40:00 +00:00
%if %{launch_wayland_compositor}
cp %{SOURCE45} .
. ./run-wayland-compositor
2021-04-26 10:31:06 +00:00
%endif
%if 0%{?bundle_nss}
2021-10-11 07:52:43 +00:00
echo " S e t t i n g n s s f l a g s "
# nss-setup-flags-env.inc
%include_file %{SOURCE401}
export PATH=%{_buildrootdir} /%{bundled_install_path} /bin:$PATH
echo $PKG_CONFIG_PATH
2021-04-26 10:31:06 +00:00
%endif
2022-09-26 13:40:00 +00:00
%if %{build_with_pgo}
%if 0%{?test_on_wayland}
env | grep " W A Y L A N D "
MOZ_ENABLE_WAYLAND=1 ./mach build -v 2>&1 || exit 1
%else
xvfb-run ./mach build -v 2>&1 || exit 1
2021-04-26 10:31:06 +00:00
%endif
%else
2022-09-26 13:40:00 +00:00
./mach build -v 2>&1 || exit 1
2021-04-26 10:31:06 +00:00
%endif
#---------------------------------------------------------------------
%install
2021-10-11 07:52:43 +00:00
export MACH_USE_SYSTEM_PYTHON=1
2021-04-26 10:31:06 +00:00
function install_rpms_to_current_dir() {
PACKAGE_RPM=$(eval echo $1)
PACKAGE_DIR=%{_rpmdir}
if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
# Hack for tps tests
ARCH_STR=%{_arch}
2021-10-11 07:52:43 +00:00
%ifarch %{ix86}
2021-04-26 10:31:06 +00:00
ARCH_STR=" i ? 8 6 "
%endif
2021-10-11 07:52:43 +00:00
PACKAGE_DIR=" $ P A C K A G E _ D I R / $ A R C H _ S T R "
2021-04-26 10:31:06 +00:00
fi
for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM)
do
echo " $ p a c k a g e "
rpm2cpio " $ p a c k a g e " | cpio -idu
done
}
%if 0%{?bundle_nss}
pushd %{buildroot}
#install_rpms_to_current_dir nss-*.rpm
install_rpms_to_current_dir nspr-4*.rpm
install_rpms_to_current_dir nss-3*.rpm
install_rpms_to_current_dir nss-softokn-3*.rpm
install_rpms_to_current_dir nss-softokn-freebl-3*.rpm
install_rpms_to_current_dir nss-util-3*.rpm
2021-10-11 07:52:43 +00:00
2021-04-26 10:31:06 +00:00
# cleanup unecessary nss files
2021-10-11 07:52:43 +00:00
#rm -rf %{_buildrootdir}/%{bundled_install_path}/bin
#rm -rf %{_buildrootdir}/%{bundled_install_path}/include
rm -rf %{buildroot} /%{bundled_install_path} /lib/dracut
rm -rf %{buildroot} /%{bundled_install_path} /%{_lib}/nss
#rm -rf %{_buildrootdir}/%{bundled_install_path}/%{_lib}/pkgconfig
rm -rf %{buildroot} /%{bundled_install_path} /%{_lib}/share
rm -rf %{buildroot} /%{bundled_install_path} /share
2021-04-26 10:31:06 +00:00
rm -rf %{buildroot} /etc/pki
rm -rf %{buildroot} /usr/lib/.build-id
rm -rf %{buildroot} /etc/crypto-policies
popd
%endif
2022-09-26 13:40:00 +00:00
# run Firefox test suite
%if %{launch_wayland_compositor}
cp %{SOURCE45} .
. ./run-wayland-compositor
%endif
%if 0%{?run_firefox_tests}
mkdir -p objdir/_virtualenvs/init_py3
%{__cat} > objdir/_virtualenvs/init_py3/pip.conf << EOF
[global]
find-links=`pwd`/mochitest-python
no-index=true
EOF
tar xf %{SOURCE37}
cp %{SOURCE40} %{SOURCE41} %{SOURCE42} %{SOURCE38} %{SOURCE39} %{SOURCE43} %{SOURCE44} .
mkdir -p test_results
%if %{?test_on_wayland}
./run-tests-wayland || true
%else
./run-tests-x11 || true
%endif
./print_results > test_summary.txt 2>&1 || true
./print_failures || true
2021-04-26 10:31:06 +00:00
%endif
# set up our default bookmarks
2022-09-26 13:40:00 +00:00
%if !0%{?flatpak}
%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/browser/content/browser/default-bookmarks.html
%endif
2021-04-26 10:31:06 +00:00
# Make sure locale works for langpacks
%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF
pref(" g e n e r a l . u s e r a g e n t . l o c a l e " , " c h r o m e : / / g l o b a l / l o c a l e / i n t l . p r o p e r t i e s " );
EOF
DESTDIR=%{buildroot} make -C objdir install
%{__mkdir_p} %{buildroot} {%{_libdir} ,%{_bindir} ,%{_datadir} /applications}
desktop-file-install --dir %{buildroot} %{_datadir} /applications %{SOURCE20}
# set up the firefox start script
%{__rm} -rf %{buildroot} %{_bindir} /firefox
2022-09-26 13:40:00 +00:00
%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE21} > %{buildroot} %{_bindir} /firefox
2021-04-26 10:31:06 +00:00
%{__chmod} 755 %{buildroot} %{_bindir} /firefox
2022-09-26 13:40:00 +00:00
%if 0%{?flatpak}
sed -i -e 's|%FLATPAK_ENV_VARS%|export TMPDIR="$XDG_CACHE_HOME/tmp"|' %{buildroot} %{_bindir} /firefox
%else
sed -i -e 's|%FLATPAK_ENV_VARS%||' %{buildroot} %{_bindir} /firefox
%endif
# Run firefox under wayland only on RHEL9 and newer
%if 0%{?rhel} < 9
sed -i -e 's|%DISABLE_WAYLAND_PLACEHOLDER%|export MOZ_DISABLE_WAYLAND=1|' %{buildroot} %{_bindir} /firefox
%else
sed -i -e 's|%DISABLE_WAYLAND_PLACEHOLDER%||' %{buildroot} %{_bindir} /firefox
%endif
2021-04-26 10:31:06 +00:00
%{__install} -p -D -m 644 %{SOURCE23} %{buildroot} %{_mandir} /man1/firefox.1
%{__rm} -f %{buildroot} /%{mozappdir} /firefox-config
%{__rm} -f %{buildroot} /%{mozappdir} /update-settings.ini
for s in 16 22 24 32 48 256; do
%{__mkdir_p} %{buildroot} %{_datadir} /icons/hicolor/${s}x${s}/apps
%{__cp} -p browser/branding/official/default${s}.png \
%{buildroot} %{_datadir} /icons/hicolor/${s}x${s}/apps/firefox.png
done
# Install hight contrast icon
%{__mkdir_p} %{buildroot} %{_datadir} /icons/hicolor/symbolic/apps
%{__cp} -p %{SOURCE25} \
%{buildroot} %{_datadir} /icons/hicolor/symbolic/apps
echo > %{name} .lang
2022-09-26 13:40:00 +00:00
%if %{with langpacks}
2021-04-26 10:31:06 +00:00
# Extract langpacks, make any mods needed, repack the langpack, and install it.
%{__mkdir_p} %{buildroot} %{langpackdir}
%{__tar} xf %{SOURCE1}
for langpack in `ls firefox-langpacks/*.xpi`; do
language=`basename $langpack .xpi`
extensionID=langpack-$language@firefox.mozilla.org
%{__mkdir_p} $extensionID
unzip -qq $langpack -d $extensionID
find $extensionID -type f | xargs chmod 644
cd $extensionID
zip -qq -r9mX ../${extensionID}.xpi *
cd -
%{__install} -m 644 ${extensionID}.xpi %{buildroot} %{langpackdir}
language=`echo $language | sed -e 's/-/_/g' `
2022-09-26 13:40:00 +00:00
%if 0%{?flatpak}
echo " %{langpackdir} / $ { e x t e n s i o n I D } . x p i " >> %{name} .lang
%else
2021-04-26 10:31:06 +00:00
echo " % % l a n g ( $ l a n g u a g e ) %{langpackdir} / $ { e x t e n s i o n I D } . x p i " >> %{name} .lang
2022-09-26 13:40:00 +00:00
%endif
2021-04-26 10:31:06 +00:00
done
%{__rm} -rf firefox-langpacks
# Install langpack workaround (see #707100, #821169)
function create_default_langpack() {
language_long=$1
language_short=$2
cd %{buildroot} %{langpackdir}
ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi
cd -
echo " % % l a n g ( $ l a n g u a g e _ s h o r t ) %{langpackdir} / l a n g p a c k - $ l a n g u a g e _ s h o r t @ f i r e f o x . m o z i l l a . o r g . x p i " >> %{name} .lang
}
# Table of fallbacks for each language
# please file a bug at bugzilla.redhat.com if the assignment is incorrect
2022-09-26 13:40:00 +00:00
#create_default_langpack "bn-IN" "bn"
2021-04-26 10:31:06 +00:00
create_default_langpack " e s - A R " " e s "
create_default_langpack " f y - N L " " f y "
create_default_langpack " g a - I E " " g a "
create_default_langpack " g u - I N " " g u "
create_default_langpack " h i - I N " " h i "
create_default_langpack " h y - A M " " h y "
create_default_langpack " n b - N O " " n b "
create_default_langpack " n n - N O " " n n "
create_default_langpack " p a - I N " " p a "
create_default_langpack " p t - P T " " p t "
create_default_langpack " s v - S E " " s v "
create_default_langpack " z h - T W " " z h "
%endif
# Keep compatibility with the old preference location.
%{__mkdir_p} %{buildroot} %{mozappdir} /defaults/preferences
%{__mkdir_p} %{buildroot} %{mozappdir} /browser/defaults
ln -s %{mozappdir} /defaults/preferences $RPM_BUILD_ROOT /%{mozappdir} /browser/defaults/preferences
# Default preferences
%{__cp} %{SOURCE12} %{buildroot} %{mozappdir} /defaults/preferences/all-redhat.js
sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot} %{mozappdir} /defaults/preferences/all-redhat.js
2021-10-11 07:52:43 +00:00
# Enable modern crypto for the key export on the RHEL9 only (rhbz#1764205)
%if 0%{?rhel} == 9
echo 'pref("security.pki.use_modern_crypto_with_pkcs12", true);' >> %{buildroot} %{mozappdir} /defaults/preferences/all-redhat.js
%endif
2022-09-26 13:40:00 +00:00
%ifarch s390x
2021-10-11 07:52:43 +00:00
echo 'pref("gfx.webrender.force-disabled", true);' >> %{buildroot} %{mozappdir} /defaults/preferences/all-redhat.js
%endif
2022-09-26 13:40:00 +00:00
%ifarch s390x ppc64
echo 'pref("gfx.webrender.force-disabled", true);' >> %{buildroot} %{mozappdir} /defaults/preferences/all-redhat.js
%endif
2021-04-26 10:31:06 +00:00
# System config dir
%{__mkdir_p} %{buildroot} /%{_sysconfdir} /%{name} /pref
# System extensions
%{__mkdir_p} %{buildroot} %{_datadir} /mozilla/extensions/%{firefox_app_id}
%{__mkdir_p} %{buildroot} %{_libdir} /mozilla/extensions/%{firefox_app_id}
# Copy over the LICENSE
%{__install} -p -c -m 644 LICENSE %{buildroot} /%{mozappdir}
# Use the system hunspell dictionaries
%{__rm} -rf %{buildroot} %{mozappdir} /dictionaries
ln -s %{_datadir} /myspell %{buildroot} %{mozappdir} /dictionaries
2022-09-26 13:40:00 +00:00
%if 0%{?run_firefox_tests}
%{__mkdir_p} %{buildroot} /%{version} -%{release} /test_results
%{__cp} test_results/* %{buildroot} /%{version} -%{release} /test_results
%{__cp} test_summary.txt %{buildroot} /%{version} -%{release} /
%{__cp} failures-* %{buildroot} /%{version} -%{release} / || true
2021-04-26 10:31:06 +00:00
%endif
# Copy over run-mozilla.sh
%{__cp} build/unix/run-mozilla.sh %{buildroot} %{mozappdir}
# Add distribution.ini
%{__mkdir_p} %{buildroot} %{mozappdir} /distribution
%{__cp} %{SOURCE26} %{buildroot} %{mozappdir} /distribution
2022-09-26 13:40:00 +00:00
# Install appdata file
mkdir -p %{buildroot} %{_datadir} /metainfo
%{__sed} -e " s / _ _ V E R S I O N _ _ / %{version} / " \
-e " s / _ _ D A T E _ _ / $ ( d a t e ' + % Y - % m - % d ' ) / " \
%{SOURCE33} > %{buildroot} %{_datadir} /metainfo/firefox.appdata.xml
# Install Gnome search provider files
mkdir -p %{buildroot} %{_datadir} /gnome-shell/search-providers
%{__cp} %{SOURCE34} %{buildroot} %{_datadir} /gnome-shell/search-providers
# Remove gtk2 support as flash plugin is no longer supported
rm -rf %{buildroot} %{mozappdir} /gtk2/
2021-04-26 10:31:06 +00:00
# Remove copied libraries to speed up build
rm -f %{buildroot} %{mozappdirdev} /sdk/lib/libmozjs.so
rm -f %{buildroot} %{mozappdirdev} /sdk/lib/libmozalloc.so
rm -f %{buildroot} %{mozappdirdev} /sdk/lib/libxul.so
2022-09-26 13:40:00 +00:00
# Create a symlink to replace libnssckbi.so with p11-kit-client.so
# instead of p11-kit-trust.so, so that Firefox can see the system
# trust store on the host through the p11-kit RPC protocol. A symlink
# to libnss3.so is also needed, because Firefox tries to load
# libnssckbi.so from the same directory where libnss3.so is loaded (as
# of Firefox 89).
%if 0%{?flatpak}
ln -sf /usr/lib64/libnss3.so %{buildroot} %{_libdir} /libnss3.so
ln -sf /usr/lib64/pkcs11/p11-kit-client.so %{buildroot} %{_libdir} /libnssckbi.so
%endif
2021-04-26 10:31:06 +00:00
#---------------------------------------------------------------------
2022-09-26 13:40:00 +00:00
%check
appstream-util validate-relax --nonet %{buildroot} %{_datadir} /metainfo/*.appdata.xml
2021-04-26 10:31:06 +00:00
%preun
# is it a final removal?
if [ $1 -eq 0 ]; then
%{__rm} -rf %{mozappdir} /components
%{__rm} -rf %{mozappdir} /extensions
%{__rm} -rf %{mozappdir} /plugins
fi
%clean
rm -rf %{_srcrpmdir} /libffi*.src.rpm
find %{_rpmdir} -name " l i b f f i * . r p m " -delete
rm -rf %{_srcrpmdir} /openssl*.src.rpm
find %{_rpmdir} -name " o p e n s s l * . r p m " -delete
rm -rf %{_srcrpmdir} /nss*.src.rpm
find %{_rpmdir} -name " n s s * . r p m " -delete
rm -rf %{_srcrpmdir} /nspr*.src.rpm
find %{_rpmdir} -name " n s p r * . r p m " -delete
%post
update-desktop-database &> /dev/null || :
touch --no-create %{_datadir} /icons/hicolor &>/dev/null || :
%postun
update-desktop-database &> /dev/null || :
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir} /icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir} /icons/hicolor &>/dev/null || :
2022-09-26 13:40:00 +00:00
%{__rm} -rf %{langpackdir}
2021-04-26 10:31:06 +00:00
fi
%posttrans
gtk-update-icon-cache %{_datadir} /icons/hicolor &>/dev/null || :
%files -f %{name}.lang
%{_bindir} /firefox
%{mozappdir} /firefox
%{mozappdir} /firefox-bin
%doc %{_mandir} /man1/*
%dir %{_sysconfdir} /%{name}
%dir %{_sysconfdir} /%{name} /*
%dir %{_datadir} /mozilla/extensions/*
%dir %{_libdir} /mozilla/extensions/*
2022-09-26 13:40:00 +00:00
%{_datadir} /applications/%{name} .desktop
%{_datadir} /metainfo/*.appdata.xml
%{_datadir} /gnome-shell/search-providers/*.ini
2021-04-26 10:31:06 +00:00
%dir %{mozappdir}
2022-09-26 13:40:00 +00:00
%license %{mozappdir} /LICENSE
2021-04-26 10:31:06 +00:00
%{mozappdir} /browser/chrome
%{mozappdir} /defaults/preferences/*
%{mozappdir} /browser/defaults/preferences
%{mozappdir} /browser/features/*.xpi
%{mozappdir} /distribution/distribution.ini
2022-09-26 13:40:00 +00:00
# That's Windows only
%ghost %{mozappdir} /browser/features/aushelper@mozilla.org.xpi
%if %{with langpacks}
2021-04-26 10:31:06 +00:00
%dir %{langpackdir}
%endif
%{mozappdir} /browser/omni.ja
%{mozappdir} /run-mozilla.sh
%{mozappdir} /application.ini
%{mozappdir} /pingsender
%exclude %{mozappdir} /removed-files
2022-09-26 13:40:00 +00:00
%if 0%{?flatpak}
%{_libdir} /libnss3.so
%{_libdir} /libnssckbi.so
%endif
2021-04-26 10:31:06 +00:00
%{_datadir} /icons/hicolor/16x16/apps/firefox.png
%{_datadir} /icons/hicolor/22x22/apps/firefox.png
%{_datadir} /icons/hicolor/24x24/apps/firefox.png
%{_datadir} /icons/hicolor/256x256/apps/firefox.png
%{_datadir} /icons/hicolor/32x32/apps/firefox.png
%{_datadir} /icons/hicolor/48x48/apps/firefox.png
%{_datadir} /icons/hicolor/symbolic/apps/firefox-symbolic.svg
2022-09-26 13:40:00 +00:00
%if %{enable_mozilla_crashreporter}
%{mozappdir} /crashreporter
%{mozappdir} /crashreporter.ini
%{mozappdir} /minidump-analyzer
%{mozappdir} /Throbber-small.gif
%{mozappdir} /browser/crashreporter-override.ini
%endif
2021-04-26 10:31:06 +00:00
%{mozappdir} /*.so
%{mozappdir} /defaults/pref/channel-prefs.js
%{mozappdir} /dependentlibs.list
%{mozappdir} /dictionaries
%{mozappdir} /omni.ja
%{mozappdir} /platform.ini
%{mozappdir} /plugin-container
%{mozappdir} /gmp-clearkey
2022-09-26 13:40:00 +00:00
%{mozappdir} /fonts/TwemojiMozilla.ttf
2021-04-26 10:31:06 +00:00
%if !%{?system_nss}
%exclude %{mozappdir} /libnssckbi.so
%endif
2022-09-26 13:40:00 +00:00
%if %{build_with_asan}
%{mozappdir} /llvm-symbolizer
2021-04-26 10:31:06 +00:00
%endif
%if 0%{?bundle_nss}
%{mozappdir} /bundled/%{_lib}/libfreebl*
%{mozappdir} /bundled/%{_lib}/libnss3*
%{mozappdir} /bundled/%{_lib}/libnssdbm3*
%{mozappdir} /bundled/%{_lib}/libnssutil3*
%{mozappdir} /bundled/%{_lib}/libsmime3*
%{mozappdir} /bundled/%{_lib}/libsoftokn*
%{mozappdir} /bundled/%{_lib}/libssl3*
%{mozappdir} /bundled/%{_lib}/libnspr4.so
%{mozappdir} /bundled/%{_lib}/libplc4.so
%{mozappdir} /bundled/%{_lib}/libplds4.so
%endif
#---------------------------------------------------------------------
%changelog
2022-12-15 15:34:20 +00:00
* Thu Dec 15 2022 Eduard Abdullin <eabdullin@almalinux.org> - 102.6.0-1.alma
2022-06-01 15:41:14 +00:00
- Debrand for AlmaLinux
2022-12-15 15:33:28 +00:00
* Tue Dec 06 2022 Eike Rathke <erack@redhat.com> - 102.6.0-1
- Update to 102.6.0 build1
* Fri Nov 25 2022 Jan Horak <jhorak@redhat.com> - 102.5.0-2
- Added libwebrtc screencast patch for newer features
2022-11-21 12:38:23 +00:00
* Wed Nov 09 2022 Eike Rathke <erack@redhat.com> - 102.5.0-1
- Update to 102.5.0 build1
2022-10-20 14:32:14 +00:00
* Wed Oct 12 2022 Eike Rathke <erack@redhat.com> - 102.4.0-1
- Update to 102.4.0 build1
2022-10-18 18:16:40 +00:00
* Tue Oct 11 2022 Jan Horak <jhorak@redhat.com> - 102.3.0-7
- Fix for expat CVE-2022-40674 and non functional webrtc
2022-09-26 13:40:00 +00:00
* Tue Sep 13 2022 Jan Horak <jhorak@redhat.com> - 102.3.0-6
- Update to 102.3.0 build1
2022-08-24 17:01:43 +00:00
2022-08-01 09:03:06 +00:00
* Thu Jul 21 2022 Eike Rathke <erack@redhat.com> - 91.12.0-1
- Update to 91.12.0 build1
2022-06-30 22:28:51 +00:00
* Thu Jun 23 2022 Eike Rathke <erack@redhat.com> - 91.11.0-2
- Update to 91.11.0 build2
* Tue Jun 21 2022 Eike Rathke <erack@redhat.com> - 91.11.0-1
- Update to 91.11.0 build1
2022-06-01 15:27:36 +00:00
* Tue May 24 2022 Eike Rathke <erack@redhat.com> - 91.10.0-1
- Update to 91.10.0 build1
2022-05-26 11:07:16 +00:00
* Fri May 20 2022 Jan Horak <jhorak@redhat.com> - 91.9.1-1
- Update to 91.9.1 build1
2022-05-04 11:06:12 +00:00
* Tue Apr 26 2022 Eike Rathke <erack@redhat.com> - 91.9.0-1
- Update to 91.9.0
2022-04-08 13:41:29 +00:00
* Tue Apr 05 2022 Eike Rathke <erack@redhat.com> - 91.8.0-1
- Update to 91.8.0
2022-03-10 14:38:39 +00:00
* Mon Mar 07 2022 Eike Rathke <erack@redhat.com> - 91.7.0-3
- Update to 91.7.0 build3
* Wed Mar 02 2022 Jan Horak <jhorak@redhat.com> - 91.7.0-2
- Added expat backports of CVE-2022-25235, CVE-2022-25236 and CVE-2022-25315
* Tue Mar 01 2022 Eike Rathke <erack@redhat.com> - 91.7.0-1
- Update to 91.7.0 build2
* Fri Feb 25 2022 Jan Horak <jhorak@redhat.com> - 91.6.0-2
- Install langpacks to the browser/extensions to make them available in UI:
rhbz#2030190
2022-02-14 08:16:12 +00:00
* Wed Feb 02 2022 Eike Rathke <erack@redhat.com> - 91.6.0-1
- Update to 91.6.0 build1
* Wed Feb 02 2022 Jan Horak <jhorak@redhat.com> - 91.5.0-2
- Use default update channel to fix non working enterprise policies:
rhbz#2044667
2022-01-12 11:31:42 +00:00
* Thu Jan 06 2022 Eike Rathke <erack@redhat.com> - 91.5.0-1
- Update to 91.5.0 build1
2022-02-14 08:16:12 +00:00
* Mon Dec 13 2021 Jan Horak <jhorak@redhat.com> - 91.4.0-2
- Added fix for failing addons signatures.
2021-12-08 09:44:40 +00:00
* Wed Dec 01 2021 Eike Rathke <erack@redhat.com> - 91.4.0-1
- Update to 91.4.0 build1
2021-11-03 19:24:38 +00:00
* Mon Nov 01 2021 Eike Rathke <erack@redhat.com> - 91.3.0-1
- Update to 91.3.0 build1
2021-10-25 16:25:51 +00:00
* Thu Oct 21 2021 Jan Horak <jhorak@redhat.com> - 91.2.0-5
- Fixed crashes when FIPS is enabled.
2021-10-11 07:52:43 +00:00
* Mon Oct 04 2021 Jan Horak <jhorak@redhat.com> - 91.2.0-4
- Disable webrender on the s390x due to wrong colors: rhbz#2009503
* Wed Sep 29 2021 Jan Horak <jhorak@redhat.com> - 91.2.0-3
- Update to 91.2.0 build1
* Wed Sep 15 2021 Jan Horak <jhorak@redhat.com> - 91.1.0-1
- Update to 91.1.0 build1
* Tue Aug 17 2021 Jan Horak <jhorak@redhat.com>
- Update to 91.0.1 build1
2021-09-13 07:03:31 +00:00
2021-10-11 07:52:43 +00:00
* Tue Aug 10 2021 Jan Horak <jhorak@redhat.com> - 91.0-1
- Update to 91.0 ESR
2021-08-16 09:11:26 +00:00
2021-10-11 07:52:43 +00:00
* Thu Jul 29 2021 Jan Horak <jhorak@redhat.com> - 91.0-1
- Update to 91.0b8
2021-08-16 09:11:26 +00:00
2021-07-16 20:35:45 +00:00
* Fri Jul 16 2021 Jan Horak <jhorak@redhat.com> - 78.12.0-2
- Rebuild to pickup older nss
2021-07-15 10:52:31 +00:00
* Wed Jul 07 2021 Eike Rathke <erack@redhat.com> - 78.12.0-1
- Update to 78.12.0 build1
2021-06-03 07:55:06 +00:00
* Mon May 31 2021 Eike Rathke <erack@redhat.com> - 78.11.0-3
- Update to 78.11.0 build2 (release)
* Thu May 27 2021 Eike Rathke <erack@redhat.com> - 78.11.0-2
- Fix rhel_minor_version for dist .el8_4 and .el8
* Tue May 25 2021 Eike Rathke <erack@redhat.com> - 78.11.0-1
- Update to 78.11.0 build1
2021-04-26 10:31:06 +00:00
* Tue Apr 20 2021 Eike Rathke <erack@redhat.com> - 78.10.0-1
- Update to 78.10.0
* Wed Mar 17 2021 Eike Rathke <erack@redhat.com> - 78.9.0-1
- Update to 78.9.0 build1
* Wed Feb 17 2021 Eike Rathke <erack@redhat.com> - 78.8.0-1
- Update to 78.8.0 build2
* Tue Feb 09 2021 Eike Rathke <erack@redhat.com> - 78.7.1-1
- Update to 78.7.1
* Tue Feb 09 2021 Jan Horak <jhorak@redhat.com> - 78.7.0-3
- Fixing install prefix for the homepage
* Fri Jan 22 2021 Eike Rathke <erack@redhat.com> - 78.7.0-2
- Update to 78.7.0 build2
* Wed Jan 20 2021 Eike Rathke <erack@redhat.com> - 78.7.0-1
- Update to 78.7.0 build1
* Wed Jan 6 2021 Eike Rathke <erack@redhat.com> - 78.6.1-1
- Update to 78.6.1 build1
* Thu Dec 10 2020 Jan Horak <jhorak@redhat.com> - 78.6.0-1
- Update to 78.6.0 build1
* Wed Nov 18 2020 Jan Horak <jhorak@redhat.com> - 78.5.0-1
- Update to 78.5.0 build1
* Tue Nov 10 2020 erack@redhat.com - 78.4.1-1
- Update to 78.4.1
* Tue Nov 10 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-3
- Fixing flatpak build, fixing firefox.sh.in to not disable langpacks loading
* Thu Oct 29 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-2
- Enable addon sideloading
* Fri Oct 16 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-1
- Update to 78.4.0 build2
* Fri Sep 18 2020 Jan Horak <jhorak@redhat.com>
- Update to 78.3.0 build1
* Tue Aug 18 2020 Jan Horak <jhorak@redhat.com> - 78.2.0-3
- Update to 78.2.0 build1
* Fri Jul 24 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.11.0 build1
* Fri Jun 26 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.10.0 build1
* Fri May 29 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.9.0 build1
- Added patch for pipewire 0.3
* Mon May 11 2020 Jan Horak <jhorak@redhat.com>
- Added s390x specific patches
* Wed Apr 29 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.8.0 build1
* Thu Apr 23 2020 Martin Stransky <stransky@redhat.com> - 68.7.0-3
- Added fix for rhbz#1821418
* Tue Apr 07 2020 Jan Horak <jhorak@redhat.com> - 68.7.0-2
- Update to 68.7.0 build3
* Mon Apr 6 2020 Jan Horak <jhorak@redhat.com> - 68.6.1-1
- Update to 68.6.1 ESR
* Wed Mar 04 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.6.0 build1
* Mon Feb 24 2020 Martin Stransky <stransky@redhat.com> - 68.5.0-3
- Added fix for rhbz#1805667
- Enabled mzbz@1170092 - Firefox prefs at /etc
* Fri Feb 07 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.5.0 build2
* Wed Feb 05 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.5.0 build1
* Wed Jan 08 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.4.1esr build1
* Fri Jan 03 2020 Jan Horak <jhorak@redhat.com>
- Update to 68.4.0esr build1
* Wed Dec 18 2019 Jan Horak <jhorak@redhat.com>
- Fix for wrong intl.accept_lang when using non en-us langpack
* Wed Nov 27 2019 Martin Stransky <stransky@redhat.com> - 68.3.0-1
- Update to 68.3.0 ESR
* Thu Oct 24 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-4
- Added patch for TLS 1.3 support.
* Wed Oct 23 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-3
- Rebuild
* Mon Oct 21 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-2
- Rebuild
* Thu Oct 17 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-1
- Update to 68.2.0 ESR
* Thu Oct 10 2019 Martin Stransky <stransky@redhat.com> - 68.1.0-6
- Enable system nss on RHEL6
* Thu Sep 5 2019 Jan Horak <jhorak@redhat.com> - 68.1.0-2
- Enable building langpacks
* Wed Aug 28 2019 Jan Horak <jhorak@redhat.com> - 68.1.0-1
- Update to 68.1.0 ESR
* Mon Aug 5 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-4
- Enable system nss
* Mon Jul 29 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-3
- Enable official branding
* Fri Jul 26 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-2
- Enabled PipeWire on RHEL8
* Fri Jul 26 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-1
- Updated to 68.0.1 ESR
* Tue Jul 16 2019 Jan Horak <jhorak@redhat.com> - 68.0-0.11
- Update to 68.0 ESR
* Tue Jun 25 2019 Martin Stransky <stransky@redhat.com> - 68.0-0.10
- Updated to 68.0 alpha 13
- Enabled second arches
* Fri Mar 22 2019 Martin Stransky <stransky@redhat.com> - 68.0-0.1
- Updated to 68.0 alpha
* Fri Mar 15 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-3
- Added Google API keys (mozbz#1531176)
* Thu Mar 14 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-2
- Update to 60.6.0 ESR (Build 2)
* Wed Mar 13 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-1
- Update to 60.6.0 ESR (Build 1)
* Wed Feb 13 2019 Jan Horak <jhorak@redhat.com> - 60.5.1-1
- Update to 60.5.1 ESR
* Wed Feb 6 2019 Martin Stransky <stransky@redhat.com> - 60.5.0-3
- Added fix for rhbz#1672424 - Firefox crashes on NFS drives.
* Fri Jan 25 2019 Martin Stransky <stransky@redhat.com> - 60.5.0-2
- Updated to 60.5.0 ESR build2
* Tue Jan 22 2019 Martin Stransky <stransky@redhat.com> - 60.5.0-1
- Updated to 60.5.0 ESR build1
* Thu Jan 10 2019 Jan Horak <jhorak@redhat.com> - 60.4.0-3
- Fixing fontconfig warnings (rhbz#1601475)
* Wed Jan 9 2019 Jan Horak <jhorak@redhat.com> - 60.4.0-2
- Added pipewire patch from Tomas Popela (rhbz#1664270)
* Wed Dec 5 2018 Jan Horak <jhorak@redhat.com> - 60.4.0-1
- Update to 60.4.0 ESR
* Tue Dec 4 2018 Jan Horak <jhorak@redhat.com> - 60.3.0-2
- Added firefox-gnome-shell-extension
* Fri Oct 19 2018 Jan Horak <jhorak@redhat.com> - 60.3.0-1
- Update to 60.3.0 ESR
* Wed Oct 10 2018 Jan Horak <jhorak@redhat.com> - 60.2.2-2
- Added patch for rhbz#1633932
* Tue Oct 2 2018 Jan Horak <jhorak@redhat.com> - 60.2.2-1
- Update to 60.2.2 ESR
* Mon Sep 24 2018 Jan Horak <jhorak@redhat.com> - 60.2.1-1
- Update to 60.2.1 ESR
* Fri Aug 31 2018 Jan Horak <jhorak@redhat.com> - 60.2.0-1
- Update to 60.2.0 ESR
* Tue Aug 28 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-9
- Do not set user agent (rhbz#1608065)
- GTK dialogs are localized now (rhbz#1619373)
- JNLP association works again (rhbz#1607457)
* Thu Aug 16 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-8
- Fixed homepage and bookmarks (rhbz#1606778)
- Fixed missing file associations in RHEL6 (rhbz#1613565)
* Thu Jul 12 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-7
- Run at-spi-bus if not running already (for the bundled gtk3)
* Mon Jul 9 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-6
- Fix for missing schemes for bundled gtk3
* Mon Jun 25 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-5
- Added mesa-libEGL dependency to gtk3/rhel6
* Sun Jun 24 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-4
- Disabled jemalloc on all second arches
* Fri Jun 22 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-3
- Updated to 60.1.0 ESR build2
* Thu Jun 21 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-2
- Disabled jemalloc on second arches
* Wed Jun 20 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-1
- Updated to 60.1.0 ESR
* Wed Jun 13 2018 Jan Horak <jhorak@redhat.com> - 60.0-12
- Fixing bundled libffi issues
- Readded some requirements
* Mon Jun 11 2018 Martin Stransky <stransky@redhat.com> - 60.0-10
- Added fix for mozilla BZ#1436242 - IPC crashes.
* Mon Jun 11 2018 Jan Horak <jhorak@redhat.com> - 60.0-9
- Bundling libffi for the sec-arches
- Added openssl-devel for the Python
- Fixing bundled gtk3
* Fri May 18 2018 Martin Stransky <stransky@redhat.com> - 60.0-8
- Added fix for mozilla BZ#1458492
* Wed May 16 2018 Martin Stransky <stransky@redhat.com> - 60.0-7
- Added patch from rhbz#1498561 to fix ppc64(le) crashes.
* Wed May 16 2018 Martin Stransky <stransky@redhat.com> - 60.0-6
- Disabled jemalloc on second arches
* Sun May 6 2018 Jan Horak <jhorak@redhat.com> - 60.0-4
- Update to 60.0 ESR
* Thu Mar 8 2018 Jan Horak <jhorak@redhat.com> - 52.7.0-1
- Update to 52.7.0 ESR
* Mon Jan 29 2018 Martin Stransky <stransky@redhat.com> - 52.6.0-2
- Build Firefox for desktop arches only (x86_64 and ppc64le)
* Thu Jan 18 2018 Martin Stransky <stransky@redhat.com> - 52.6.0-1
- Update to 52.6.0 ESR
* Thu Nov 9 2017 Jan Horak <jhorak@redhat.com> - 52.5.0-1
- Update to 52.5.0 ESR
* Mon Sep 25 2017 Jan Horak <jhorak@redhat.com> - 52.4.0-1
- Update to 52.4.0 ESR
* Thu Aug 3 2017 Jan Horak <jhorak@redhat.com> - 52.3.0-3
- Update to 52.3.0 ESR (b2)
- Require correct nss version
* Tue Jun 13 2017 Jan Horak <jhorak@redhat.com> - 52.2.0-1
- Update to 52.2.0 ESR
* Wed May 24 2017 Jan Horak <jhorak@redhat.com> - 52.1.2-1
- Update to 52.1.2 ESR
* Wed May 24 2017 Jan Horak <jhorak@redhat.com> - 52.0-7
- Added fix for accept language (rhbz#1454322)
* Wed Mar 22 2017 Jan Horak <jhorak@redhat.com> - 52.0-6
- Removing patch required for older NSS from RHEL 7.3
- Added patch for rhbz#1414564
* Fri Mar 17 2017 Martin Stransky <stransky@redhat.com> - 52.0-5
- Added fix for mozbz#1348168/CVE-2017-5428
* Mon Mar 6 2017 Jan Horak <jhorak@redhat.com> - 52.0-4
- Update to 52.0 ESR (b4)
* Thu Mar 2 2017 Martin Stransky <stransky@redhat.com> - 52.0-3
- Added fix for rhbz#1423012 - ppc64 gfx crashes
* Wed Mar 1 2017 Jan Horak <jhorak@redhat.com> - 52.0-2
- Enable system nss
* Tue Feb 28 2017 Martin Stransky <stransky@redhat.com> - 52.0-1
- Update to 52.0ESR (B1)
- Build RHEL7 package for Gtk3
* Mon Feb 27 2017 Martin Stransky <stransky@redhat.com> - 52.0-0.13
- Added fix for rhbz#1414535
* Tue Feb 21 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.12
- Update to 52.0b8
* Tue Feb 7 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.11
- Readded addons patch
* Mon Feb 6 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.10
- Update to 52.0b3
* Tue Jan 31 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.9
- Update to 52.0b2
* Fri Jan 27 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.8
- Update to 52.0b1
* Thu Dec 8 2016 Jan Horak <jhorak@redhat.com> - 52.0-0.5
- Firefox Aurora 52 testing build
2022-09-26 13:40:00 +00:00