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