dd1d2c
%global disable_toolsets  0
dd1d2c
f3b160
%ifarch %{ix86}
f3b160
  # no debug package for the i686 because oom on i686 with debuginfos
f3b160
  #FIXME revise if still necessary
f3b160
  %global debug_package %{nil}
dd1d2c
%endif
dd1d2c
eddfb3
%{lua:
eddfb3
function dist_to_rhel_minor(str, start)
eddfb3
  match = string.match(str, ".module%+el8.%d+")
eddfb3
  if match then
eddfb3
     return string.sub(match, 13)
eddfb3
  end
eddfb3
  match = string.match(str, ".el8_%d+")
eddfb3
  if match then
eddfb3
     return string.sub(match, 6)
eddfb3
  end
eddfb3
  match = string.match(str, ".el8")
eddfb3
  if match then
fee2b5
     return 7
eddfb3
  end
eddfb3
  return -1
eddfb3
end}
eddfb3
eddfb3
%global rhel_minor_version %{lua:print(dist_to_rhel_minor(rpm.expand("%dist")))}
f3b160
%global build_with_clang  0
dd1d2c
dd1d2c
%global system_nss        1
dd1d2c
%global bundle_nss        0
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
f3b160
  %if %{rhel_minor_version} < 3
f3b160
    %global bundle_nss        1
f3b160
    %global system_nss        1
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
%define use_bundled_ffi   0
dd1d2c
f3b160
%global use_llvmts        0
f3b160
%global use_nodejsts      0
f3b160
%if 0%{?rhel} < 8
f3b160
%global use_llvmts        1
f3b160
%global use_nodejsts      1
dd1d2c
%endif
dd1d2c
f3b160
%global nodejs_rb         nodejs
f3b160
%global llvm_version      7.0
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
f3b160
%global llvm_version      6.0
dd1d2c
%endif
dd1d2c
f3b160
%if 0%{?rhel} == 7
f3b160
  %global use_dts         1
f3b160
  %global nodejs_rb       rh-nodejs10-nodejs
f3b160
  %global llvm_version    11.0
dd1d2c
%endif
dd1d2c
dd1d2c
%global use_rustts        1
f3b160
%if 0%{?rhel} >= 9
f3b160
  %global use_rustts      0
dd1d2c
%endif
dd1d2c
f3b160
%global dts_version       10
f3b160
%global rust_version      1.52
f3b160
dd1d2c
%if 0%{?disable_toolsets}
dd1d2c
%global use_rustts        0
dd1d2c
%global use_dts           0
dd1d2c
%global use_llvmts        0
dd1d2c
%endif
dd1d2c
dd1d2c
# Big endian platforms
dd1d2c
%ifarch ppc64 s390x
dd1d2c
# Javascript Intl API is not supported on big endian platforms right now:
dd1d2c
# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212
dd1d2c
%global big_endian        1
dd1d2c
%endif
dd1d2c
dd1d2c
# Hardened build?
dd1d2c
%global hardened_build    1
dd1d2c
dd1d2c
%ifarch %{ix86} x86_64
dd1d2c
%global run_tests         0
dd1d2c
%else
dd1d2c
%global run_tests         0
dd1d2c
%endif
dd1d2c
dd1d2c
# Build as a debug package?
dd1d2c
%global debug_build       0
dd1d2c
f3b160
# We need to use full path because of flatpak where datadir is /app/share
dd1d2c
%global default_bookmarks_file  /usr/share/bookmarks/default-bookmarks.html
dd1d2c
%global firefox_app_id  \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
dd1d2c
# Minimal required versions
dd1d2c
dd1d2c
%if 0%{?system_nss}
f3b160
%global nspr_version 4.32
dd1d2c
# NSS/NSPR quite often ends in build override, so as requirement the version
dd1d2c
# we're building against could bring us some broken dependencies from time to time.
f3b160
#%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
dd1d2c
%global nspr_build_version %{nspr_version}
f3b160
%global nss_version 3.67
f3b160
#%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
dd1d2c
%global nss_build_version %{nss_version}
dd1d2c
%endif
dd1d2c
dd1d2c
# GTK3 bundling
dd1d2c
%define avoid_bundled_rebuild   0
dd1d2c
f3b160
%define bundled_install_path %{mozappdir}/bundled
dd1d2c
dd1d2c
# We could use %%include, but in %%files, %%post and other sections, but in these
dd1d2c
# sections it could lead to syntax errors about unclosed %%if. Work around it by
dd1d2c
# using the following macro
dd1d2c
%define include_file() %{expand:%(cat '%1')}
dd1d2c
dd1d2c
%global mozappdir     %{_libdir}/%{name}
dd1d2c
%global mozappdirdev  %{_libdir}/%{name}-devel-%{version}
b2d3a8
%global langpackdir   %{mozappdir}/browser/extensions
dd1d2c
%global tarballdir    %{name}-%{version}
dd1d2c
%global pre_version   esr
dd1d2c
dd1d2c
%global official_branding       1
dd1d2c
%global build_langpacks         1
dd1d2c
fee2b5
# Workaround the dreaded "upstream source file changed content" rpmdiff failure that only secalert can waive.
fee2b5
# If set to .b2 or .b3 ... the processed source file needs to be renamed before upload, e.g.
fee2b5
# firefox-91.9.0esr.b2.processed-source.tar.xz
fee2b5
# With does_not_exist it's empty and source file name as is.
fee2b5
#global buildnum %{?does_not_exist}
fee2b5
%global buildnum %{?does_not_exist}
fee2b5
dd1d2c
Summary:        Mozilla Firefox Web browser
dd1d2c
Name:           firefox
c3beec
Version:        91.12.0
c3beec
Release:        2%{?dist}
dd1d2c
URL:            https://www.mozilla.org/firefox/
dd1d2c
License:        MPLv1.1 or GPLv2+ or LGPLv2+
f3b160
%if 0%{?rhel} == 9
f3b160
ExcludeArch:    %{ix86}
f3b160
%endif
f3b160
%if 0%{?rhel} == 8
d60ec2
  %if %{rhel_minor_version} == 1
d60ec2
ExcludeArch:    %{ix86} aarch64 s390x
d60ec2
  %else
f3b160
ExcludeArch:    %{ix86}
d60ec2
  %endif
f3b160
%endif
dd1d2c
%if 0%{?rhel} == 7
d60ec2
ExcludeArch:    aarch64 s390 ppc
dd1d2c
%endif
dd1d2c
f3b160
# We can't use the official tarball as it contains some test files that use
f3b160
# licenses that are rejected by Red Hat Legal.
f3b160
# The official tarball has to be always processed by the process-official-tarball
f3b160
# script.
f3b160
# Link to official tarball: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%%{version}%%{?pre_version}.source.tar.xz
fee2b5
Source0:        firefox-%{version}%{?pre_version}%{?buildnum}.processed-source.tar.xz
dd1d2c
%if %{build_langpacks}
c3beec
Source1:        firefox-langpacks-%{version}%{?pre_version}-20220721.tar.xz
b2d3a8
dd1d2c
%endif
f3b160
Source2:        cbindgen-vendor.tar.xz
f3b160
Source3:        process-official-tarball
dd1d2c
Source10:       firefox-mozconfig
dd1d2c
%if 0%{?centos}
dd1d2c
Source12:       firefox-centos-default-prefs.js
dd1d2c
%else
dd1d2c
Source12:       firefox-redhat-default-prefs.js
dd1d2c
%endif
dd1d2c
Source20:       firefox.desktop
dd1d2c
Source21:       firefox.sh.in
dd1d2c
Source23:       firefox.1
dd1d2c
Source24:       mozilla-api-key
dd1d2c
Source25:       firefox-symbolic.svg
dd1d2c
Source26:       distribution.ini
dd1d2c
Source27:       google-api-key
dd1d2c
Source28:       node-stdout-nonblocking-wrapper
dd1d2c
f3b160
Source403:      nss-3.67.0-7.el8_1.src.rpm
dd1d2c
Source401:      nss-setup-flags-env.inc
f3b160
Source402:      nspr-4.32.0-1.el8_1.src.rpm
f3b160
dd1d2c
# Build patches
dd1d2c
Patch1001:      build-ppc64le-inline.patch
f3b160
Patch1008:        build-rhel7-nasm-dwarf.patch
f3b160
Patch1009:        build-debuginfo-fix.patch
dd1d2c
# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374
dd1d2c
Patch4:         build-mozconfig-fix.patch
dd1d2c
Patch6:         build-nss-version.patch
dd1d2c
dd1d2c
# Fedora/RHEL specific patches
dd1d2c
Patch215:        firefox-enable-addons.patch
dd1d2c
Patch219:        rhbz-1173156.patch
dd1d2c
Patch224:        mozilla-1170092.patch
db788a
Patch225:        firefox-nss-addon-hack.patch
dd1d2c
dd1d2c
# Upstream patches
dd1d2c
dd1d2c
Patch503:        mozilla-s390-context.patch
dd1d2c
Patch505:        mozilla-bmo1005535.patch
dd1d2c
Patch506:        mozilla-bmo1504834-part1.patch
dd1d2c
Patch507:        mozilla-bmo1504834-part2.patch
dd1d2c
Patch508:        mozilla-bmo1504834-part3.patch
dd1d2c
Patch509:        mozilla-bmo1504834-part4.patch
dd1d2c
Patch510:        mozilla-bmo1554971.patch
dd1d2c
Patch511:        mozilla-bmo1602730.patch
dd1d2c
Patch512:        mozilla-bmo849632.patch
dd1d2c
Patch513:        mozilla-bmo998749.patch
fee2b5
#Patch514:        mozilla-s390x-skia-gradient.patch
dd1d2c
Patch515:        mozilla-bmo1626236.patch
72d64d
Patch518:        D110204-fscreen.diff
b2d3a8
Patch519:        expat-CVE-2022-25235.patch
b2d3a8
Patch520:        expat-CVE-2022-25236.patch
b2d3a8
Patch521:        expat-CVE-2022-25315.patch
dd1d2c
dd1d2c
# Flatpak patches
dd1d2c
dd1d2c
%if %{?system_nss}
dd1d2c
%if !0%{?bundle_nss}
dd1d2c
BuildRequires:  pkgconfig(nspr) >= %{nspr_version}
dd1d2c
BuildRequires:  pkgconfig(nss) >= %{nss_version}
dd1d2c
BuildRequires:  nss-static >= %{nss_version}
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
BuildRequires:  pkgconfig(libpng)
dd1d2c
BuildRequires:  xz
dd1d2c
BuildRequires:  libXt-devel
dd1d2c
BuildRequires:  mesa-libGL-devel
dd1d2c
Requires:       liberation-fonts-common
dd1d2c
Requires:       liberation-sans-fonts
dd1d2c
BuildRequires:  libjpeg-devel
dd1d2c
BuildRequires:  zip
dd1d2c
BuildRequires:  bzip2-devel
dd1d2c
BuildRequires:  pkgconfig(zlib)
f3b160
#BuildRequires:  pkgconfig(libIDL-2.0)
dd1d2c
BuildRequires:  pkgconfig(gtk+-2.0)
dd1d2c
BuildRequires:  krb5-devel
dd1d2c
BuildRequires:  pkgconfig(pango)
f3b160
BuildRequires:  pkgconfig(freetype2) >= 2.1.9
dd1d2c
BuildRequires:  pkgconfig(xt)
dd1d2c
BuildRequires:  pkgconfig(xrender)
dd1d2c
BuildRequires:  pkgconfig(libstartup-notification-1.0)
dd1d2c
BuildRequires:  pkgconfig(libnotify)
dd1d2c
BuildRequires:  pkgconfig(dri)
dd1d2c
BuildRequires:  pkgconfig(libcurl)
dd1d2c
BuildRequires:  dbus-glib-devel
f3b160
BuildRequires:  m4
f3b160
dd1d2c
BuildRequires:  pkgconfig(libpulse)
dd1d2c
dd1d2c
%if 0%{?use_dts}
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-gcc-c++
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-gcc
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-libatomic-devel
dd1d2c
%endif
f3b160
%if 0%{?rhel} == 9
f3b160
BuildRequires:  gcc
f3b160
BuildRequires:  gcc-c++
f3b160
BuildRequires:  cargo
f3b160
BuildRequires:  rust
f3b160
BuildRequires:  clang clang-libs llvm
dd1d2c
%endif
dd1d2c
dd1d2c
BuildRequires:  scl-utils
dd1d2c
BuildRequires:  findutils
dd1d2c
f3b160
BuildRequires:  %{nodejs_rb} >= 10.21
f3b160
BuildRequires:  python3
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
BuildRequires:  cargo
dd1d2c
BuildRequires:  rust >= %{rust_version}
dd1d2c
BuildRequires:  llvm >= %{llvm_version}
dd1d2c
BuildRequires:  llvm-devel >= %{llvm_version}
dd1d2c
BuildRequires:  clang >= %{llvm_version}
dd1d2c
BuildRequires:  clang-devel >= %{llvm_version}
dd1d2c
BuildRequires:  rustfmt >= %{rust_version}
dd1d2c
%else
dd1d2c
%if 0%{?use_rustts}
f3b160
BuildRequires:  rust-toolset-%{rust_version}
dd1d2c
%endif
dd1d2c
%if 0%{?use_llvmts}
dd1d2c
BuildRequires:  llvm-toolset-%{llvm_version}
dd1d2c
BuildRequires:  llvm-toolset-%{llvm_version}-llvm-devel
f3b160
BuildRequires:  llvm-toolset-%{llvm_version}-clang
f3b160
BuildRequires:  llvm-toolset-%{llvm_version}-clang-devel
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
f3b160
BuildRequires:  nasm
f3b160
%if %{build_with_clang}
f3b160
BuildRequires:  lld
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
eddfb3
  %if %{rhel_minor_version} >= 3
dd1d2c
BuildRequires:  pkgconfig(libpipewire-0.3)
dd1d2c
  %else
dd1d2c
BuildRequires:  pipewire-devel
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
BuildRequires:        gtk3-devel
dd1d2c
BuildRequires:        glib2-devel
f3b160
BuildRequires:        perl-interpreter
dd1d2c
dd1d2c
# Bundled nss/nspr requirement
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
BuildRequires:    nss-softokn
dd1d2c
BuildRequires:    sqlite-devel
dd1d2c
BuildRequires:    zlib-devel
dd1d2c
BuildRequires:    pkgconfig
dd1d2c
BuildRequires:    gawk
dd1d2c
BuildRequires:    psmisc
dd1d2c
BuildRequires:    perl-interpreter
dd1d2c
BuildRequires:    gcc-c++
dd1d2c
BuildRequires:    xmlto
dd1d2c
%endif
dd1d2c
f3b160
BuildRequires:    libstdc++-static
f3b160
dd1d2c
Requires:       mozilla-filesystem
dd1d2c
Requires:       p11-kit-trust
dd1d2c
%if %{?system_nss}
dd1d2c
%if !0%{?bundle_nss}
dd1d2c
Requires:       nspr >= %{nspr_build_version}
dd1d2c
Requires:       nss >= %{nss_build_version}
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
BuildRequires:  desktop-file-utils
dd1d2c
BuildRequires:  system-bookmarks
dd1d2c
Requires:       redhat-indexhtml
dd1d2c
dd1d2c
%if %{?run_tests}
dd1d2c
BuildRequires:  xorg-x11-server-Xvfb
dd1d2c
%endif
dd1d2c
dd1d2c
BuildRequires:  pkgconfig(libffi)
dd1d2c
dd1d2c
%if 0%{?big_endian}
dd1d2c
  %if 0%{?flatpak}
dd1d2c
BuildRequires:  icu
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
Obsoletes:      mozilla <= 37:1.7.13
dd1d2c
Provides:       webclient
dd1d2c
f3b160
# Bundled libraries
f3b160
Provides: bundled(angle)
f3b160
Provides: bundled(cairo)
f3b160
Provides: bundled(graphite2)
f3b160
Provides: bundled(harfbuzz)
f3b160
Provides: bundled(ots)
f3b160
Provides: bundled(sfntly)
f3b160
Provides: bundled(skia)
f3b160
Provides: bundled(thebes)
f3b160
Provides: bundled(WebRender)
f3b160
Provides: bundled(audioipc-2)
f3b160
Provides: bundled(ffvpx)
f3b160
Provides: bundled(kissfft)
f3b160
Provides: bundled(libaom)
f3b160
Provides: bundled(libcubeb)
f3b160
Provides: bundled(libdav1d)
f3b160
Provides: bundled(libjpeg)
f3b160
Provides: bundled(libmkv)
f3b160
Provides: bundled(libnestegg)
f3b160
Provides: bundled(libogg)
f3b160
Provides: bundled(libopus)
f3b160
Provides: bundled(libpng)
f3b160
Provides: bundled(libsoundtouch)
f3b160
Provides: bundled(libspeex_resampler)
f3b160
Provides: bundled(libtheora)
f3b160
Provides: bundled(libtremor)
f3b160
Provides: bundled(libvorbis)
f3b160
Provides: bundled(libvpx)
f3b160
Provides: bundled(libwebp)
f3b160
Provides: bundled(libyuv)
f3b160
Provides: bundled(mp4parse-rust)
f3b160
Provides: bundled(mtransport)
f3b160
Provides: bundled(openmax_dl)
f3b160
Provides: bundled(double-conversion)
f3b160
Provides: bundled(brotli)
f3b160
Provides: bundled(fdlibm)
f3b160
Provides: bundled(freetype2)
f3b160
Provides: bundled(libmar)
f3b160
Provides: bundled(woff2)
f3b160
Provides: bundled(xz-embedded)
f3b160
Provides: bundled(zlib)
f3b160
Provides: bundled(expat)
f3b160
Provides: bundled(msgpack-c)
f3b160
Provides: bundled(libprio)
f3b160
Provides: bundled(rlbox_sandboxing_api)
f3b160
Provides: bundled(sqlite3)
f3b160
f3b160
%if 0%{?bundle_nss}
f3b160
Provides: bundled(nss) = 3.67.0
f3b160
Provides: bundled(nspr) = 4.32.0
f3b160
%endif
f3b160
dd1d2c
%description
dd1d2c
Mozilla Firefox is an open-source web browser, designed for standards
dd1d2c
compliance, performance and portability.
dd1d2c
dd1d2c
%if %{run_tests}
dd1d2c
%global testsuite_pkg_name mozilla-%{name}-testresults
dd1d2c
%package -n %{testsuite_pkg_name}
dd1d2c
Summary: Results of testsuite
dd1d2c
%description -n %{testsuite_pkg_name}
dd1d2c
This package contains results of tests executed during build.
dd1d2c
%files -n %{testsuite_pkg_name}
dd1d2c
/test_results
dd1d2c
%endif
dd1d2c
dd1d2c
#---------------------------------------------------------------------
dd1d2c
%prep
dd1d2c
echo "Build environment"
dd1d2c
echo "dist                  %{?dist}"
eddfb3
echo "RHEL 8 minor version: %{rhel_minor_version}"
dd1d2c
echo "use_bundled_ffi       %{?use_bundled_ffi}"
dd1d2c
echo "bundle_nss            %{?bundle_nss}"
dd1d2c
echo "system_nss            %{?system_nss}"
dd1d2c
echo "use_rustts            %{?use_rustts}"
dd1d2c
dd1d2c
dd1d2c
%setup -q -n %{tarballdir}
dd1d2c
# Build patches, can't change backup suffix from default because during build
dd1d2c
# there is a compare of config and js/config directories and .orig suffix is
dd1d2c
# ignored during this compare.
dd1d2c
dd1d2c
%patch4  -p1 -b .build-mozconfig-fix
f3b160
%patch6  -p1 -b .nss-version
dd1d2c
dd1d2c
# Fedora patches
dd1d2c
%patch215 -p1 -b .addons
dd1d2c
%patch219 -p1 -b .rhbz-1173156
dd1d2c
%patch224 -p1 -b .1170092
dd1d2c
fee2b5
# Enable workaround for RHEL >= 8: rhbz#2043303
fee2b5
%if 0%{?rhel} == 8 || 0%{?rhel} >= 9
db788a
%patch225 -p1 -b .firefox-nss-addon-hack
db788a
%endif
db788a
dd1d2c
# Patch for big endian platforms only
dd1d2c
%if 0%{?big_endian}
dd1d2c
%endif
dd1d2c
dd1d2c
%patch503 -p1 -b .mozilla-s390-context
dd1d2c
%patch505 -p1 -b .mozilla-bmo1005535
dd1d2c
%patch506 -p1 -b .mozilla-bmo1504834-part1
dd1d2c
%patch507 -p1 -b .mozilla-bmo1504834-part2
dd1d2c
%patch508 -p1 -b .mozilla-bmo1504834-part3
dd1d2c
%patch509 -p1 -b .mozilla-bmo1504834-part4
dd1d2c
%patch510 -p1 -b .mozilla-bmo1554971
dd1d2c
%patch511 -p1 -b .mozilla-bmo1602730
dd1d2c
%patch512 -p1 -b .mozilla-bmo849632
dd1d2c
%patch513 -p1 -b .mozilla-bmo998749
f3b160
#%patch514 -p1 -b .mozilla-s390x-skia-gradient
dd1d2c
%patch515 -p1 -b .mozilla-bmo1626236
72d64d
%patch518 -p1 -b .D110204-fscreen.diff
b2d3a8
%patch519 -p1 -b .expat-CVE-2022-25235
b2d3a8
%patch520 -p1 -b .expat-CVE-2022-25236
b2d3a8
%patch521 -p1 -b .expat-CVE-2022-25315
dd1d2c
dd1d2c
dd1d2c
%patch1001 -p1 -b .ppc64le-inline
f3b160
%if 0%{?rhel} == 7
f3b160
# fix the /usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character
f3b160
%patch1009 -p1 -b .build-debuginfo-fix
f3b160
  %ifarch %{ix86}
f3b160
# -F dwarf not available in RHEL7's nasm
f3b160
%patch1008 -p1 -b .build-rhel7-nasm-dwarf
f3b160
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
%{__rm} -f .mozconfig
dd1d2c
%{__cp} %{SOURCE10} .mozconfig
dd1d2c
%if %{official_branding}
dd1d2c
echo "ac_add_options --enable-official-branding" >> .mozconfig
dd1d2c
%endif
dd1d2c
%{__cp} %{SOURCE24} mozilla-api-key
dd1d2c
%{__cp} %{SOURCE27} google-api-key
dd1d2c
dd1d2c
%if %{?system_nss}
dd1d2c
echo "ac_add_options --with-system-nspr" >> .mozconfig
dd1d2c
echo "ac_add_options --with-system-nss" >> .mozconfig
dd1d2c
%else
dd1d2c
echo "ac_add_options --without-system-nspr" >> .mozconfig
dd1d2c
echo "ac_add_options --without-system-nss" >> .mozconfig
dd1d2c
%endif
dd1d2c
f3b160
%ifarch %{ix86} x86_64
dd1d2c
echo "ac_add_options --disable-elf-hack" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?debug_build}
dd1d2c
echo "ac_add_options --enable-debug" >> .mozconfig
dd1d2c
echo "ac_add_options --disable-optimize" >> .mozconfig
dd1d2c
%else
dd1d2c
%global optimize_flags "-g -O2"
f3b160
%ifarch s390x
dd1d2c
%global optimize_flags "-g -O1"
dd1d2c
%endif
dd1d2c
%ifarch ppc64le aarch64
dd1d2c
%global optimize_flags "-g -O2"
dd1d2c
%endif
dd1d2c
%if %{optimize_flags} != "none"
dd1d2c
echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig
dd1d2c
%else
dd1d2c
echo 'ac_add_options --enable-optimize' >> .mozconfig
dd1d2c
%endif
dd1d2c
echo "ac_add_options --disable-debug" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
# Second arches fail to start with jemalloc enabled
dd1d2c
%ifnarch %{ix86} x86_64
dd1d2c
echo "ac_add_options --disable-jemalloc" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%ifnarch %{ix86} x86_64
dd1d2c
echo "ac_add_options --disable-webrtc" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?run_tests}
dd1d2c
echo "ac_add_options --enable-tests" >> .mozconfig
dd1d2c
%endif
dd1d2c
f3b160
%ifarch s390x
dd1d2c
echo "ac_add_options --disable-jit" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%ifnarch %{ix86}
dd1d2c
%if !0%{?debug_build}
dd1d2c
echo "ac_add_options --disable-debug-symbols" >> .mozconfig
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
f3b160
# AV1 requires newer nasm that was rebased in 8.4
f3b160
%if 0%{?rhel} == 7 || (0%{?rhel} == 8 && %{rhel_minor_version} < 4)
f3b160
echo "ac_add_options --disable-av1" >> .mozconfig
f3b160
%endif
f3b160
dd1d2c
echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig
dd1d2c
dd1d2c
# Remove executable bit to make brp-mangle-shebangs happy.
dd1d2c
chmod -x third_party/rust/itertools/src/lib.rs
dd1d2c
chmod a-x third_party/rust/gfx-backend-vulkan/src/*.rs
dd1d2c
chmod a-x third_party/rust/gfx-hal/src/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/ext/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/khr/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/mvk/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/nv/*.rs
dd1d2c
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%build
f3b160
# Disable LTO to work around rhbz#1883904
f3b160
%define _lto_cflags %{nil}
dd1d2c
ulimit -a
dd1d2c
free
dd1d2c
#set -e
dd1d2c
# Hack for missing shell when building in brew on RHEL6
dd1d2c
dd1d2c
%if ! 0%{?avoid_bundled_rebuild}
dd1d2c
    rm -rf %{_buildrootdir}/*
dd1d2c
%endif
dd1d2c
export PATH="%{_buildrootdir}/bin:$PATH"
dd1d2c
dd1d2c
function install_rpms_to_current_dir() {
dd1d2c
    PACKAGE_RPM=$(eval echo $1)
dd1d2c
    PACKAGE_DIR=%{_rpmdir}
dd1d2c
dd1d2c
    if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
dd1d2c
        # Hack for tps tests
dd1d2c
        ARCH_STR=%{_arch}
f3b160
        %ifarch %{ix86}
dd1d2c
            ARCH_STR="i?86"
dd1d2c
        %endif
f3b160
        PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
dd1d2c
     fi
dd1d2c
dd1d2c
     for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM)
dd1d2c
     do
dd1d2c
         echo "$package"
dd1d2c
         rpm2cpio "$package" | cpio -idu
dd1d2c
     done
dd1d2c
}
dd1d2c
dd1d2c
function build_bundled_package() {
dd1d2c
  PACKAGE_RPM=$1
dd1d2c
  PACKAGE_FILES=$2
dd1d2c
  PACKAGE_SOURCE=$3
dd1d2c
  PACKAGE_BUILD_OPTIONS=$4
dd1d2c
  export PACKAGE_DIR="%{_topdir}/RPMS"
dd1d2c
dd1d2c
  PACKAGE_ALREADY_BUILD=0
dd1d2c
  %if %{?avoid_bundled_rebuild}
dd1d2c
    if ls $PACKAGE_DIR/$PACKAGE_RPM; then
dd1d2c
      PACKAGE_ALREADY_BUILD=1
dd1d2c
    fi
dd1d2c
    if ls $PACKAGE_DIR/%{_arch}/$PACKAGE_RPM; then
dd1d2c
      PACKAGE_ALREADY_BUILD=1
dd1d2c
    fi
dd1d2c
  %endif
dd1d2c
  if [ $PACKAGE_ALREADY_BUILD == 0 ]; then
dd1d2c
    echo "Rebuilding $PACKAGE_RPM from $PACKAGE_SOURCE"; echo "==============================="
dd1d2c
    rpmbuild --nodeps $PACKAGE_BUILD_OPTIONS --rebuild $PACKAGE_SOURCE
dd1d2c
    cat /var/tmp/rpm-tmp*
dd1d2c
  fi
dd1d2c
dd1d2c
  find $PACKAGE_DIR
dd1d2c
  if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
dd1d2c
    # Hack for tps tests
dd1d2c
    ARCH_STR=%{_arch}
f3b160
    %ifarch %{ix86}
dd1d2c
    ARCH_STR="i?86"
dd1d2c
    %endif
f3b160
    export PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
dd1d2c
  fi
dd1d2c
  pushd $PACKAGE_DIR
dd1d2c
dd1d2c
  echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "==============================="
dd1d2c
  pwd
dd1d2c
  PACKAGE_LIST=$(echo $PACKAGE_DIR/$PACKAGE_RPM | tr " " "\n")
dd1d2c
  for PACKAGE in $PACKAGE_LIST
dd1d2c
  do
dd1d2c
      rpm2cpio $PACKAGE | cpio -iduv
dd1d2c
  done
dd1d2c
dd1d2c
  PATH=$PACKAGE_DIR/usr/bin:$PATH
dd1d2c
  export PATH
dd1d2c
  LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib}:$LD_LIBRARY_PATH
dd1d2c
  export LD_LIBRARY_PATH
dd1d2c
dd1d2c
  # Clean rpms to avoid including them to package
dd1d2c
  %if ! 0%{?avoid_bundled_rebuild}
dd1d2c
    rm -f $PACKAGE_FILES
dd1d2c
  %endif
dd1d2c
dd1d2c
  popd
dd1d2c
}
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
f3b160
  rpm -ivh %{SOURCE402}
f3b160
  #rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec
f3b160
  rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nspr.spec
f3b160
  pushd %{_buildrootdir}
f3b160
  install_rpms_to_current_dir nspr-4*.rpm
f3b160
  install_rpms_to_current_dir nspr-devel*.rpm
f3b160
  popd
f3b160
  echo "Setting nspr flags"
f3b160
  # nss-setup-flags-env.inc
f3b160
  sed -i 's@%{bundled_install_path}@%{_buildrootdir}%{bundled_install_path}@g' %{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig/nspr*.pc
f3b160
f3b160
  export LDFLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
f3b160
  export LDFLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $LDFLAGS"
f3b160
  export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $LDFLAGS"
f3b160
  export PKG_CONFIG_PATH=%{_buildrootdir}%{bundled_install_path}/%{_lib}/pkgconfig
f3b160
  export PATH="{_buildrootdir}%{bundled_install_path}/bin:$PATH"
dd1d2c
f3b160
  export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH
f3b160
  echo $PKG_CONFIG_PATH
f3b160
f3b160
  rpm -ivh %{SOURCE403}
db788a
  rpmbuild --nodeps --define '_prefix %{bundled_install_path}' --without=tests -ba %{_specdir}/nss.spec
f3b160
  pushd %{_buildrootdir}
f3b160
  #cleanup
f3b160
  #rm -rf {_buildrootdir}/usr/lib/debug/*
f3b160
  #rm -rf {_buildrootdir}/usr/lib/.build-id
f3b160
  install_rpms_to_current_dir nss-3*.rpm
f3b160
  install_rpms_to_current_dir nss-devel*.rpm
f3b160
  install_rpms_to_current_dir nss-pkcs11-devel*.rpm
f3b160
  install_rpms_to_current_dir nss-softokn-3*.rpm
f3b160
  install_rpms_to_current_dir nss-softokn-devel*.rpm
f3b160
  install_rpms_to_current_dir nss-softokn-freebl-3*.rpm
f3b160
  install_rpms_to_current_dir nss-softokn-freebl-devel*.rpm
f3b160
  install_rpms_to_current_dir nss-util-3*.rpm
f3b160
  install_rpms_to_current_dir nss-util-devel*.rpm
f3b160
  popd
f3b160
  %filter_provides_in %{bundled_install_path}/%{_lib}
f3b160
  %filter_requires_in %{bundled_install_path}/%{_lib}
dd1d2c
  %filter_from_requires /libnss3.so.*/d
dd1d2c
  %filter_from_requires /libsmime3.so.*/d
dd1d2c
  %filter_from_requires /libssl3.so.*/d
dd1d2c
  %filter_from_requires /libnssutil3.so.*/d
dd1d2c
  %filter_from_requires /libnspr4.so.*/d
f3b160
  find %{_buildrootdir}
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{use_bundled_ffi}
dd1d2c
  # Install libraries to the predefined location to later add them to the Firefox libraries
dd1d2c
  rpm -ivh %{SOURCE303}
f3b160
  rpmbuild --nodeps --define '_prefix %{bundled_install_path}' -ba %{_specdir}/libffi.spec
dd1d2c
  pushd %{_buildrootdir}
dd1d2c
  install_rpms_to_current_dir 'libffi*.rpm'
dd1d2c
  popd
dd1d2c
  %filter_from_requires /libffi.so.6/d
dd1d2c
%endif
dd1d2c
%filter_setup
dd1d2c
dd1d2c
function replace_prefix() {
dd1d2c
  FILE_NAME=$1
dd1d2c
  PKG_CONFIG_PREFIX=$2
dd1d2c
dd1d2c
  cat $FILE_NAME | tail -n +2 > tmp.txt
dd1d2c
  echo "$PKG_CONFIG_PREFIX" > $FILE_NAME
dd1d2c
  cat tmp.txt >> $FILE_NAME
dd1d2c
  rm -rf tmp.txt
dd1d2c
}
dd1d2c
dd1d2c
# We need to disable exit on error temporarily for the following scripts:
dd1d2c
set +e
dd1d2c
%if 0%{?use_dts}
dd1d2c
source scl_source enable devtoolset-%{dts_version}
dd1d2c
%endif
dd1d2c
%if 0%{?use_rustts}
f3b160
source scl_source enable rust-toolset-%{rust_version}
f3b160
%endif
f3b160
%if 0%{?use_nodejsts}
f3b160
source scl_source enable rh-nodejs10
dd1d2c
%endif
dd1d2c
dd1d2c
env
dd1d2c
which gcc
dd1d2c
which c++
dd1d2c
which g++
dd1d2c
which ld
f3b160
which nasm
dd1d2c
# Build and install local node if needed
dd1d2c
# ======================================
f3b160
export MOZ_NODEJS=`which node`
dd1d2c
dd1d2c
mkdir -p my_rust_vendor
dd1d2c
cd my_rust_vendor
dd1d2c
%{__tar} xf %{SOURCE2}
dd1d2c
cd -
dd1d2c
mkdir -p .cargo
dd1d2c
cat > .cargo/config <
dd1d2c
[source.crates-io]
dd1d2c
replace-with = "vendored-sources"
dd1d2c
dd1d2c
[source.vendored-sources]
dd1d2c
directory = "`pwd`/my_rust_vendor"
dd1d2c
EOL
dd1d2c
dd1d2c
export CARGO_HOME=.cargo
dd1d2c
cargo install cbindgen
dd1d2c
export PATH=`pwd`/.cargo/bin:$PATH
dd1d2c
export CBINDGEN=`pwd`/.cargo/bin/cbindgen
dd1d2c
dd1d2c
# debug missing sqlite3 python module
f3b160
export MACH_USE_SYSTEM_PYTHON=1
dd1d2c
./mach python -c "import sys;print(sys.path)"
dd1d2c
dd1d2c
mkdir %{_buildrootdir}/bin || :
dd1d2c
cp %{SOURCE28} %{_buildrootdir}/bin || :
dd1d2c
chmod +x %{_buildrootdir}/bin/node-stdout-nonblocking-wrapper
dd1d2c
dd1d2c
# Update the various config.guess to upstream release for aarch64 support
dd1d2c
find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
dd1d2c
dd1d2c
# -fpermissive is needed to build with gcc 4.6+ which has become stricter
dd1d2c
#
dd1d2c
# Mozilla builds with -Wall with exception of a few warnings which show up
dd1d2c
# everywhere in the code; so, don't override that.
dd1d2c
#
dd1d2c
# Disable C++ exceptions since Mozilla code is not exception-safe
dd1d2c
#
dd1d2c
MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//')
dd1d2c
#rhbz#1037063
dd1d2c
# -Werror=format-security causes build failures when -Wno-format is explicitly given
dd1d2c
# for some sources
dd1d2c
# Explicitly force the hardening flags for Firefox so it passes the checksec test;
dd1d2c
# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages
dd1d2c
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
f3b160
dd1d2c
%if %{?hardened_build}
f3b160
  MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
f3b160
  %endif
dd1d2c
%if %{?debug_build}
f3b160
  MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
dd1d2c
%endif
dd1d2c
dd1d2c
# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss
dd1d2c
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT"
dd1d2c
f3b160
%if !%{build_with_clang}
f3b160
  %ifarch aarch64 %{ix86} x86_64 s390x
f3b160
    MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
f3b160
  %endif
f3b160
  %ifarch %{ix86}
f3b160
    MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--strip-debug"
f3b160
    echo "ac_add_options --enable-linker=gold" >> .mozconfig
f3b160
  %endif
dd1d2c
%endif
f3b160
f3b160
%if 0%{?bundle_nss}
f3b160
  mkdir -p %{_buildrootdir}%{bundled_install_path}/%{_lib}
f3b160
  MOZ_LINK_FLAGS="-L%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS"
f3b160
  MOZ_LINK_FLAGS="-Wl,-rpath,%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS"
f3b160
  MOZ_LINK_FLAGS="-Wl,-rpath-link,%{_buildrootdir}%{bundled_install_path}/%{_lib} $MOZ_LINK_FLAGS"
dd1d2c
%endif
dd1d2c
f3b160
%ifarch %{ix86}
f3b160
  export RUSTFLAGS="-Cdebuginfo=0"
f3b160
  echo 'export RUSTFLAGS="-Cdebuginfo=0"' >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
export PREFIX='%{_prefix}'
dd1d2c
export LIBDIR='%{_libdir}'
dd1d2c
export CC=gcc
dd1d2c
export CXX=g++
f3b160
echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig
f3b160
echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig
f3b160
echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig
f3b160
f3b160
%if %{build_with_clang}
f3b160
  echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig
f3b160
  echo "export AR=\"llvm-ar\"" >> .mozconfig
f3b160
  echo "export NM=\"llvm-nm\"" >> .mozconfig
f3b160
  echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig
f3b160
  echo "ac_add_options --enable-linker=lld" >> .mozconfig
f3b160
%else
f3b160
  echo "export CC=gcc" >> .mozconfig
f3b160
  echo "export CXX=g++" >> .mozconfig
f3b160
  echo "export AR=\"gcc-ar\"" >> .mozconfig
f3b160
  echo "export NM=\"gcc-nm\"" >> .mozconfig
f3b160
  echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig
f3b160
%endif
dd1d2c
dd1d2c
MOZ_SMP_FLAGS=-j1
dd1d2c
# More than two build tasks can lead to OOM gcc crash.
dd1d2c
%if 0%{?rhel} < 8
f3b160
  [ -z "$RPM_BUILD_NCPUS" ] && \
f3b160
       RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
f3b160
  [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
dd1d2c
%else
f3b160
  %ifarch %{ix86} x86_64 ppc64 ppc64le aarch64
f3b160
  [ -z "$RPM_BUILD_NCPUS" ] && \
f3b160
       RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
f3b160
    [ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
f3b160
    [ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j3
f3b160
    [ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j3
f3b160
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
cat /proc/meminfo
dd1d2c
dd1d2c
# Free memory in kB
dd1d2c
if grep -q MemAvailable /proc/meminfo; then
dd1d2c
    MEM_AVAILABLE=$(grep MemAvailable /proc/meminfo | awk '{ print $2 }')
dd1d2c
else
dd1d2c
    MEM_AVAILABLE=$(grep MemFree /proc/meminfo | awk '{ print $2 }')
dd1d2c
fi
dd1d2c
dd1d2c
# Usually the compiler processes can take 2 GB of memory at peaks
dd1d2c
TASK_SIZE=4000000
dd1d2c
MEM_CONSTRAINED_JOBS=$(( MEM_AVAILABLE / TASK_SIZE ))
dd1d2c
dd1d2c
if [ $MEM_CONSTRAINED_JOBS -le 0 ]; then
dd1d2c
  MEM_CONSTRAINED_JOBS=1
dd1d2c
fi
dd1d2c
dd1d2c
CPU_AVAILABLE=$(/usr/bin/getconf _NPROCESSORS_ONLN)
dd1d2c
# Pick the minimum from available CPUs or memory constrained number of jobs
dd1d2c
MOZ_SMP_FLAGS=-j$([ "$CPU_AVAILABLE" -le "$MEM_CONSTRAINED_JOBS" ] && echo "$CPU_AVAILABLE" || echo "$MEM_CONSTRAINED_JOBS")
dd1d2c
f3b160
# override smp flags to the rpmbuild defaults ATM
f3b160
%ifnarch ppc64le
f3b160
MOZ_SMP_FLAGS=%{_smp_mflags}
f3b160
%endif
f3b160
f3b160
%ifarch s390x
f3b160
MOZ_SMP_FLAGS=-j2
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
f3b160
  echo "Setting nss flags"
f3b160
  # nss-setup-flags-env.inc
f3b160
  %include_file %{SOURCE401}
f3b160
  export PATH=%{_buildrootdir}/%{bundled_install_path}/bin:$PATH
f3b160
  echo $PKG_CONFIG_PATH
dd1d2c
%endif
dd1d2c
dd1d2c
export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
dd1d2c
export MOZ_SERVICES_SYNC="1"
dd1d2c
# we need to strip the sources on i686 because to we don't use rpm to generate debugsymbols because of oom
f3b160
%ifnarch %{ix86}
f3b160
  export STRIP=/bin/true
dd1d2c
%endif
dd1d2c
which node
dd1d2c
echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"'
dd1d2c
env
dd1d2c
ls %{_buildrootdir}
dd1d2c
f3b160
export MACH_USE_SYSTEM_PYTHON=1
dd1d2c
%if 0%{?use_llvmts}
f3b160
  #scl enable llvm-toolset-%{llvm_version} './mach build -v'
b2d3a8
  ./mach build -v || exit 1
dd1d2c
%else
b2d3a8
  ./mach build -v || exit 1
dd1d2c
%endif
f3b160
# Look for the reason we get: /usr/lib/rpm/debugedit: canonicalization unexpectedly shrank by one character
f3b160
readelf -wl objdir/dist/bin/libxul.so | grep "/"
dd1d2c
dd1d2c
%if %{?run_tests}
f3b160
  %if %{?system_nss}
f3b160
    ln -s /usr/bin/certutil objdir/dist/bin/certutil
f3b160
    ln -s /usr/bin/pk12util objdir/dist/bin/pk12util
f3b160
  %endif
f3b160
  mkdir test_results
f3b160
  ./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true
f3b160
  ./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true
f3b160
  ./mach --log-no-times cppunittest &> test_results/cppunittest || true
f3b160
  xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true
f3b160
  ./mach --log-no-times gtest &> test_results/gtest || true
f3b160
  xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true
f3b160
  # not working right now ./mach marionette-test &> test_results/marionette-test || true
f3b160
  xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true
f3b160
  xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true
f3b160
  xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true
f3b160
  xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true
f3b160
  xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true
f3b160
  xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true
f3b160
  xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true
f3b160
  xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true
f3b160
  ./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true
f3b160
  xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true
f3b160
  %if %{?system_nss}
f3b160
    rm -f  objdir/dist/bin/certutil
f3b160
    rm -f  objdir/dist/bin/pk12util
f3b160
  %endif
dd1d2c
%endif
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%install
f3b160
export MACH_USE_SYSTEM_PYTHON=1
dd1d2c
function install_rpms_to_current_dir() {
dd1d2c
    PACKAGE_RPM=$(eval echo $1)
dd1d2c
    PACKAGE_DIR=%{_rpmdir}
dd1d2c
dd1d2c
    if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
dd1d2c
        # Hack for tps tests
dd1d2c
        ARCH_STR=%{_arch}
f3b160
        %ifarch %{ix86}
dd1d2c
            ARCH_STR="i?86"
dd1d2c
        %endif
f3b160
        PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
dd1d2c
     fi
dd1d2c
dd1d2c
     for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM)
dd1d2c
     do
dd1d2c
         echo "$package"
dd1d2c
         rpm2cpio "$package" | cpio -idu
dd1d2c
     done
dd1d2c
}
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
  pushd %{buildroot}
dd1d2c
  #install_rpms_to_current_dir nss-*.rpm
dd1d2c
  install_rpms_to_current_dir nspr-4*.rpm
dd1d2c
  install_rpms_to_current_dir nss-3*.rpm
dd1d2c
  install_rpms_to_current_dir nss-softokn-3*.rpm
dd1d2c
  install_rpms_to_current_dir nss-softokn-freebl-3*.rpm
dd1d2c
  install_rpms_to_current_dir nss-util-3*.rpm
f3b160
dd1d2c
  # cleanup unecessary nss files
f3b160
  #rm -rf %{_buildrootdir}/%{bundled_install_path}/bin
f3b160
  #rm -rf %{_buildrootdir}/%{bundled_install_path}/include
f3b160
  rm -rf %{buildroot}/%{bundled_install_path}/lib/dracut
f3b160
  rm -rf %{buildroot}/%{bundled_install_path}/%{_lib}/nss
f3b160
  #rm -rf %{_buildrootdir}/%{bundled_install_path}/%{_lib}/pkgconfig
f3b160
  rm -rf %{buildroot}/%{bundled_install_path}/%{_lib}/share
f3b160
  rm -rf %{buildroot}/%{bundled_install_path}/share
dd1d2c
  rm -rf %{buildroot}/etc/pki
dd1d2c
  rm -rf %{buildroot}/usr/lib/.build-id
dd1d2c
  rm -rf %{buildroot}/etc/crypto-policies
dd1d2c
  popd
dd1d2c
%endif
dd1d2c
dd1d2c
# Install bundled libffi
dd1d2c
%if %{use_bundled_ffi}
dd1d2c
  pushd %{buildroot}
dd1d2c
  install_rpms_to_current_dir libffi-3*.rpm
dd1d2c
  popd
dd1d2c
%endif
dd1d2c
dd1d2c
# set up our default bookmarks
dd1d2c
%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html
dd1d2c
dd1d2c
# Make sure locale works for langpacks
dd1d2c
%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF
dd1d2c
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
dd1d2c
EOF
dd1d2c
dd1d2c
DESTDIR=%{buildroot} make -C objdir install
dd1d2c
dd1d2c
%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications}
dd1d2c
dd1d2c
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20}
dd1d2c
dd1d2c
# set up the firefox start script
dd1d2c
%{__rm} -rf %{buildroot}%{_bindir}/firefox
dd1d2c
%{__cat} %{SOURCE21} > %{buildroot}%{_bindir}/firefox
dd1d2c
sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{_bindir}/firefox
dd1d2c
sed -i -e 's|%RHEL_ENV_VARS%||' %{buildroot}%{_bindir}/firefox
dd1d2c
dd1d2c
%{__chmod} 755 %{buildroot}%{_bindir}/firefox
dd1d2c
dd1d2c
%{__install} -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/firefox.1
dd1d2c
dd1d2c
%{__rm} -f %{buildroot}/%{mozappdir}/firefox-config
dd1d2c
%{__rm} -f %{buildroot}/%{mozappdir}/update-settings.ini
dd1d2c
dd1d2c
for s in 16 22 24 32 48 256; do
dd1d2c
    %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps
dd1d2c
    %{__cp} -p browser/branding/official/default${s}.png \
dd1d2c
               %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png
dd1d2c
done
dd1d2c
dd1d2c
# Install hight contrast icon
dd1d2c
%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
dd1d2c
%{__cp} -p %{SOURCE25} \
dd1d2c
           %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
dd1d2c
dd1d2c
# Register as an application to be visible in the software center
dd1d2c
#
dd1d2c
# NOTE: It would be *awesome* if this file was maintained by the upstream
dd1d2c
# project, translated and installed into the right place during `make install`.
dd1d2c
#
dd1d2c
# See http://www.freedesktop.org/software/appstream/docs/ for more details.
dd1d2c
#
dd1d2c
%{__mkdir_p} %{buildroot}%{_datadir}/appdata
dd1d2c
cat > %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml <
dd1d2c
dd1d2c
dd1d2c
dd1d2c
BugReportURL: https://bugzilla.mozilla.org/show_bug.cgi?id=1071061
dd1d2c
SentUpstream: 2014-09-22
dd1d2c
-->
dd1d2c
<application>
dd1d2c
  <id type="desktop">firefox.desktop</id>
dd1d2c
  <metadata_license>CC0-1.0</metadata_license>
72d64d
  <project_license>MPLv1.1 or GPLv2+ or LGPLv2+</project_license>
dd1d2c
  <description>
dd1d2c
    

dd1d2c
      Bringing together all kinds of awesomeness to make browsing better for you.
dd1d2c
      Get to your favorite sites quickly – even if you don’t remember the URLs.
dd1d2c
      Type your term into the location bar (aka the Awesome Bar) and the autocomplete
dd1d2c
      function will include possible matches from your browsing history, bookmarked
dd1d2c
      sites and open tabs.
dd1d2c
    

dd1d2c
    
dd1d2c
  </description>
dd1d2c
  <url type="homepage">http://www.mozilla.org/</url>
dd1d2c
  <screenshots>
dd1d2c
    <screenshot type="default">https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/a.png</screenshot>
dd1d2c
    <screenshot>https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/b.png</screenshot>
dd1d2c
    <screenshot>https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/firefox/c.png</screenshot>
dd1d2c
  </screenshots>
dd1d2c
  
dd1d2c
  <updatecontact>someone_who_cares@upstream_project.org</updatecontact>
dd1d2c
   -->
dd1d2c
</application>
dd1d2c
EOF
dd1d2c
dd1d2c
echo > %{name}.lang
dd1d2c
%if %{build_langpacks}
dd1d2c
# Extract langpacks, make any mods needed, repack the langpack, and install it.
dd1d2c
%{__mkdir_p} %{buildroot}%{langpackdir}
dd1d2c
%{__tar} xf %{SOURCE1}
dd1d2c
for langpack in `ls firefox-langpacks/*.xpi`; do
dd1d2c
  language=`basename $langpack .xpi`
dd1d2c
  extensionID=langpack-$language@firefox.mozilla.org
dd1d2c
  %{__mkdir_p} $extensionID
dd1d2c
  unzip -qq $langpack -d $extensionID
dd1d2c
  find $extensionID -type f | xargs chmod 644
dd1d2c
dd1d2c
  cd $extensionID
dd1d2c
  zip -qq -r9mX ../${extensionID}.xpi *
dd1d2c
  cd -
dd1d2c
dd1d2c
  %{__install} -m 644 ${extensionID}.xpi %{buildroot}%{langpackdir}
dd1d2c
  language=`echo $language | sed -e 's/-/_/g'`
dd1d2c
  echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> %{name}.lang
dd1d2c
done
dd1d2c
%{__rm} -rf firefox-langpacks
dd1d2c
dd1d2c
# Install langpack workaround (see #707100, #821169)
dd1d2c
function create_default_langpack() {
dd1d2c
language_long=$1
dd1d2c
language_short=$2
dd1d2c
cd %{buildroot}%{langpackdir}
dd1d2c
ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi
dd1d2c
cd -
dd1d2c
echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> %{name}.lang
dd1d2c
}
dd1d2c
dd1d2c
# Table of fallbacks for each language
dd1d2c
# please file a bug at bugzilla.redhat.com if the assignment is incorrect
dd1d2c
create_default_langpack "es-AR" "es"
dd1d2c
create_default_langpack "fy-NL" "fy"
dd1d2c
create_default_langpack "ga-IE" "ga"
dd1d2c
create_default_langpack "gu-IN" "gu"
dd1d2c
create_default_langpack "hi-IN" "hi"
dd1d2c
create_default_langpack "hy-AM" "hy"
dd1d2c
create_default_langpack "nb-NO" "nb"
dd1d2c
create_default_langpack "nn-NO" "nn"
dd1d2c
create_default_langpack "pa-IN" "pa"
dd1d2c
create_default_langpack "pt-PT" "pt"
dd1d2c
create_default_langpack "sv-SE" "sv"
dd1d2c
create_default_langpack "zh-TW" "zh"
dd1d2c
%endif
dd1d2c
dd1d2c
# Keep compatibility with the old preference location.
dd1d2c
%{__mkdir_p} %{buildroot}%{mozappdir}/defaults/preferences
dd1d2c
%{__mkdir_p} %{buildroot}%{mozappdir}/browser/defaults
dd1d2c
ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences
dd1d2c
# Default preferences
dd1d2c
%{__cp} %{SOURCE12} %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js
dd1d2c
sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js
f3b160
# Enable modern crypto for the key export on the RHEL9 only (rhbz#1764205)
f3b160
%if 0%{?rhel} == 9
f3b160
  echo 'pref("security.pki.use_modern_crypto_with_pkcs12", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js
f3b160
%endif
f3b160
f3b160
%ifarch s390x ppc64
f3b160
  echo 'pref("gfx.webrender.force-disabled", true);' >> %{buildroot}%{mozappdir}/defaults/preferences/all-redhat.js
f3b160
%endif
f3b160
dd1d2c
dd1d2c
# System config dir
dd1d2c
%{__mkdir_p} %{buildroot}/%{_sysconfdir}/%{name}/pref
dd1d2c
dd1d2c
# System extensions
dd1d2c
%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_app_id}
dd1d2c
%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_app_id}
dd1d2c
dd1d2c
# Copy over the LICENSE
dd1d2c
%{__install} -p -c -m 644 LICENSE %{buildroot}/%{mozappdir}
dd1d2c
dd1d2c
# Use the system hunspell dictionaries
dd1d2c
%{__rm} -rf %{buildroot}%{mozappdir}/dictionaries
dd1d2c
ln -s %{_datadir}/myspell %{buildroot}%{mozappdir}/dictionaries
dd1d2c
dd1d2c
%if %{run_tests}
dd1d2c
# Add debuginfo for crash-stats.mozilla.com
dd1d2c
%{__mkdir_p} %{buildroot}/test_results
dd1d2c
%{__cp} test_results/* %{buildroot}/test_results
dd1d2c
%endif
dd1d2c
dd1d2c
dd1d2c
# Copy over run-mozilla.sh
dd1d2c
%{__cp} build/unix/run-mozilla.sh %{buildroot}%{mozappdir}
dd1d2c
dd1d2c
# Add distribution.ini
dd1d2c
%{__mkdir_p} %{buildroot}%{mozappdir}/distribution
dd1d2c
%{__cp} %{SOURCE26} %{buildroot}%{mozappdir}/distribution
dd1d2c
dd1d2c
%if 0%{?centos}
dd1d2c
sed -i -e 's|Red Hat Enterprise|CentOS|' %{buildroot}%{mozappdir}/distribution/distribution.ini
dd1d2c
%endif
dd1d2c
dd1d2c
# Remove copied libraries to speed up build
dd1d2c
rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozjs.so
dd1d2c
rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libmozalloc.so
dd1d2c
rm -f %{buildroot}%{mozappdirdev}/sdk/lib/libxul.so
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%preun
dd1d2c
# is it a final removal?
dd1d2c
if [ $1 -eq 0 ]; then
dd1d2c
  %{__rm} -rf %{mozappdir}/components
dd1d2c
  %{__rm} -rf %{mozappdir}/extensions
dd1d2c
  %{__rm} -rf %{mozappdir}/plugins
dd1d2c
fi
dd1d2c
dd1d2c
%clean
dd1d2c
rm -rf %{_srcrpmdir}/libffi*.src.rpm
dd1d2c
find %{_rpmdir} -name "libffi*.rpm" -delete
dd1d2c
rm -rf %{_srcrpmdir}/openssl*.src.rpm
dd1d2c
find %{_rpmdir} -name "openssl*.rpm" -delete
dd1d2c
rm -rf %{_srcrpmdir}/nss*.src.rpm
dd1d2c
find %{_rpmdir} -name "nss*.rpm" -delete
dd1d2c
rm -rf %{_srcrpmdir}/nspr*.src.rpm
dd1d2c
find %{_rpmdir} -name "nspr*.rpm" -delete
dd1d2c
dd1d2c
%post
dd1d2c
update-desktop-database &> /dev/null || :
dd1d2c
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
dd1d2c
dd1d2c
%postun
dd1d2c
update-desktop-database &> /dev/null || :
dd1d2c
if [ $1 -eq 0 ] ; then
dd1d2c
    touch --no-create %{_datadir}/icons/hicolor &>/dev/null
dd1d2c
    gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
dd1d2c
fi
dd1d2c
dd1d2c
%posttrans
dd1d2c
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
dd1d2c
dd1d2c
%files -f %{name}.lang
dd1d2c
%{_bindir}/firefox
dd1d2c
%{mozappdir}/firefox
dd1d2c
%{mozappdir}/firefox-bin
dd1d2c
%doc %{_mandir}/man1/*
dd1d2c
%dir %{_sysconfdir}/%{name}
dd1d2c
%dir %{_sysconfdir}/%{name}/*
dd1d2c
%dir %{_datadir}/mozilla/extensions/*
dd1d2c
%dir %{_libdir}/mozilla/extensions/*
dd1d2c
%{_datadir}/appdata/*.appdata.xml
dd1d2c
%{_datadir}/applications/*.desktop
dd1d2c
%dir %{mozappdir}
dd1d2c
%doc %{mozappdir}/LICENSE
dd1d2c
%{mozappdir}/browser/chrome
dd1d2c
%{mozappdir}/defaults/preferences/*
dd1d2c
%{mozappdir}/browser/defaults/preferences
dd1d2c
%{mozappdir}/browser/features/*.xpi
dd1d2c
%{mozappdir}/distribution/distribution.ini
dd1d2c
%if %{build_langpacks}
dd1d2c
%dir %{langpackdir}
dd1d2c
%endif
dd1d2c
%{mozappdir}/browser/omni.ja
dd1d2c
%{mozappdir}/run-mozilla.sh
dd1d2c
%{mozappdir}/application.ini
dd1d2c
%{mozappdir}/pingsender
dd1d2c
%exclude %{mozappdir}/removed-files
dd1d2c
%{_datadir}/icons/hicolor/16x16/apps/firefox.png
dd1d2c
%{_datadir}/icons/hicolor/22x22/apps/firefox.png
dd1d2c
%{_datadir}/icons/hicolor/24x24/apps/firefox.png
dd1d2c
%{_datadir}/icons/hicolor/256x256/apps/firefox.png
dd1d2c
%{_datadir}/icons/hicolor/32x32/apps/firefox.png
dd1d2c
%{_datadir}/icons/hicolor/48x48/apps/firefox.png
dd1d2c
%{_datadir}/icons/hicolor/symbolic/apps/firefox-symbolic.svg
dd1d2c
%{mozappdir}/*.so
dd1d2c
%{mozappdir}/defaults/pref/channel-prefs.js
dd1d2c
%{mozappdir}/dependentlibs.list
dd1d2c
%{mozappdir}/dictionaries
dd1d2c
%{mozappdir}/omni.ja
dd1d2c
%{mozappdir}/platform.ini
dd1d2c
%{mozappdir}/plugin-container
dd1d2c
%{mozappdir}/gmp-clearkey
dd1d2c
%{mozappdir}/fonts/*.ttf
dd1d2c
%if !%{?system_nss}
dd1d2c
%exclude %{mozappdir}/libnssckbi.so
dd1d2c
%endif
dd1d2c
%if 0%{use_bundled_ffi}
dd1d2c
%{mozappdir}/bundled/%{_lib}/libffi.so*
dd1d2c
%exclude %{_datadir}/doc/libffi*
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
%{mozappdir}/bundled/%{_lib}/libfreebl*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libnss3*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libnssdbm3*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libnssutil3*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libsmime3*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libsoftokn*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libssl3*
dd1d2c
%{mozappdir}/bundled/%{_lib}/libnspr4.so
dd1d2c
%{mozappdir}/bundled/%{_lib}/libplc4.so
dd1d2c
%{mozappdir}/bundled/%{_lib}/libplds4.so
dd1d2c
%endif
dd1d2c
dd1d2c
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%changelog
c3beec
* Thu Jul 21 2022 Eike Rathke <erack@redhat.com> - 91.12.0-1
c3beec
- Update to 91.12.0 build1
c3beec
c3beec
* Thu Jun 23 2022 Eike Rathke <erack@redhat.com> - 91.11.0-2
c3beec
- Update to 91.11.0 build2
c3beec
c3beec
* Tue Jun 21 2022 Eike Rathke <erack@redhat.com> - 91.11.0-1
c3beec
- Update to 91.11.0 build1
9d9ff6
fee2b5
* Tue May 24 2022 Eike Rathke <erack@redhat.com> - 91.10.0-1
fee2b5
- Update to 91.10.0 build1
fee2b5
fee2b5
* Fri May 20 2022 Jan Horak <jhorak@redhat.com> - 91.9.1-1
fee2b5
- Update to 91.9.1 build1
fee2b5
fee2b5
* Tue Apr 26 2022 Eike Rathke <erack@redhat.com> - 91.9.0-1
fee2b5
- Update to 91.9.0
0399ae
bc6030
* Tue Apr 05 2022 Eike Rathke <erack@redhat.com> - 91.8.0-1
bc6030
- Update to 91.8.0
9017b9
b2d3a8
* Mon Mar 07 2022 Eike Rathke <erack@redhat.com> - 91.7.0-3
b2d3a8
- Update to 91.7.0 build3
b2d3a8
b2d3a8
* Wed Mar 02 2022 Jan Horak <jhorak@redhat.com> - 91.7.0-2
b2d3a8
- Added expat backports of CVE-2022-25235, CVE-2022-25236 and CVE-2022-25315
b2d3a8
b2d3a8
* Tue Mar 01 2022 Eike Rathke <erack@redhat.com> - 91.7.0-1
b2d3a8
- Update to 91.7.0 build2
b2d3a8
b2d3a8
* Fri Feb 25 2022 Jan Horak <jhorak@redhat.com> - 91.6.0-2
b2d3a8
- Install langpacks to the browser/extensions to make them available in UI:
b2d3a8
  rhbz#2030190
7a130b
db788a
* Wed Feb 02 2022 Eike Rathke <erack@redhat.com> - 91.6.0-1
db788a
- Update to 91.6.0 build1
db788a
db788a
* Wed Feb 02 2022 Jan Horak <jhorak@redhat.com> - 91.5.0-2
db788a
- Use default update channel to fix non working enterprise policies:
db788a
  rhbz#2044667
2a6ded
d60ec2
* Thu Jan 06 2022 Eike Rathke <erack@redhat.com> - 91.5.0-1
d60ec2
- Update to 91.5.0 build1
042fb3
db788a
* Mon Dec 13 2021 Jan Horak <jhorak@redhat.com> - 91.4.0-2
db788a
- Added fix for failing addons signatures.
db788a
f3b160
* Wed Dec 01 2021 Eike Rathke <erack@redhat.com> - 91.4.0-1
f3b160
- Update to 91.4.0 build1
f3b160
f3b160
* Mon Nov 01 2021 Eike Rathke <erack@redhat.com> - 91.3.0-1
f3b160
- Update to 91.3.0 build1
f3b160
f3b160
* Thu Oct 21 2021 Jan Horak <jhorak@redhat.com> - 91.2.0-5
f3b160
- Fixed crashes when FIPS is enabled.
f3b160
f3b160
* Mon Oct 04 2021 Jan Horak <jhorak@redhat.com> - 91.2.0-4
f3b160
- Disable webrender on the s390x due to wrong colors: rhbz#2009503
f3b160
f3b160
* Wed Sep 29 2021 Jan Horak <jhorak@redhat.com> - 91.2.0-3
f3b160
- Update to 91.2.0 build1
f3b160
f3b160
* Wed Sep 15 2021 Jan Horak <jhorak@redhat.com> - 91.1.0-1
f3b160
- Update to 91.1.0 build1
cae526
f3b160
* Tue Aug 17 2021 Jan Horak <jhorak@redhat.com>
f3b160
- Update to 91.0.1 build1
296b3f
f3b160
* Tue Aug 10 2021 Jan Horak <jhorak@redhat.com> - 91.0-1
f3b160
- Update to 91.0 ESR
296b3f
f3b160
* Thu Jul 29 2021 Jan Horak <jhorak@redhat.com> - 91.0-1
f3b160
- Update to 91.0b8
479362
eddfb3
* Fri Jul 16 2021 Jan Horak <jhorak@redhat.com> - 78.12.0-2
eddfb3
- Rebuild to pickup older nss
eddfb3
eddfb3
* Wed Jul 07 2021 Eike Rathke <erack@redhat.com> - 78.12.0-1
eddfb3
- Update to 78.12.0 build1
cbf65f
72d64d
* Mon May 31 2021 Eike Rathke <erack@redhat.com> - 78.11.0-3
72d64d
- Update to 78.11.0 build2 (release)
72d64d
72d64d
* Thu May 27 2021 Eike Rathke <erack@redhat.com> - 78.11.0-2
72d64d
- Fix rhel_minor_version for dist .el8_4 and .el8
72d64d
72d64d
* Tue May 25 2021 Eike Rathke <erack@redhat.com> - 78.11.0-1
72d64d
- Update to 78.11.0 build1
72d64d
72d64d
* Tue Apr 20 2021 Eike Rathke <erack@redhat.com> - 78.10.0-1
72d64d
- Update to 78.10.0
72d64d
72d64d
* Wed Mar 17 2021 Eike Rathke <erack@redhat.com> - 78.9.0-1
72d64d
- Update to 78.9.0 build1
6ab2cc
dd5426
* Wed Feb 17 2021 Eike Rathke <erack@redhat.com> - 78.8.0-1
dd5426
- Update to 78.8.0 build2
938829
dd1d2c
* Tue Feb 09 2021 Eike Rathke <erack@redhat.com> - 78.7.1-1
dd1d2c
- Update to 78.7.1
dd1d2c
dd1d2c
* Tue Feb 09 2021 Jan Horak <jhorak@redhat.com> - 78.7.0-3
dd1d2c
- Fixing install prefix for the homepage
dd1d2c
dd1d2c
* Fri Jan 22 2021 Eike Rathke <erack@redhat.com> - 78.7.0-2
dd1d2c
- Update to 78.7.0 build2
dd1d2c
dd1d2c
* Wed Jan 20 2021 Eike Rathke <erack@redhat.com> - 78.7.0-1
dd1d2c
- Update to 78.7.0 build1
dd1d2c
dd1d2c
* Wed Jan  6 2021 Eike Rathke <erack@redhat.com> - 78.6.1-1
dd1d2c
- Update to 78.6.1 build1
dd1d2c
dd1d2c
* Thu Dec 10 2020 Jan Horak <jhorak@redhat.com> - 78.6.0-1
dd1d2c
- Update to 78.6.0 build1
dd1d2c
dd1d2c
* Wed Nov 18 2020 Jan Horak <jhorak@redhat.com> - 78.5.0-1
dd1d2c
- Update to 78.5.0 build1
dd1d2c
dd1d2c
* Tue Nov 10 2020 erack@redhat.com - 78.4.1-1
dd1d2c
- Update to 78.4.1
dd1d2c
dd1d2c
* Tue Nov 10 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-3
dd1d2c
- Fixing flatpak build, fixing firefox.sh.in to not disable langpacks loading
dd1d2c
dd1d2c
* Thu Oct 29 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-2
dd1d2c
- Enable addon sideloading
dd1d2c
dd1d2c
* Fri Oct 16 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-1
dd1d2c
- Update to 78.4.0 build2
dd1d2c
dd1d2c
* Fri Sep 18 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 78.3.0 build1
dd1d2c
dd1d2c
* Tue Aug 18 2020 Jan Horak <jhorak@redhat.com> - 78.2.0-3
dd1d2c
- Update to 78.2.0 build1
dd1d2c
dd1d2c
* Fri Jul 24 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.11.0 build1
dd1d2c
dd1d2c
* Fri Jun 26 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.10.0 build1
dd1d2c
dd1d2c
* Fri May 29 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.9.0 build1
dd1d2c
- Added patch for pipewire 0.3
dd1d2c
dd1d2c
* Mon May 11 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Added s390x specific patches
dd1d2c
dd1d2c
* Wed Apr 29 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.8.0 build1
dd1d2c
dd1d2c
* Thu Apr 23 2020 Martin Stransky <stransky@redhat.com> - 68.7.0-3
dd1d2c
- Added fix for rhbz#1821418
dd1d2c
dd1d2c
* Tue Apr 07 2020 Jan Horak <jhorak@redhat.com> - 68.7.0-2
dd1d2c
- Update to 68.7.0 build3
dd1d2c
dd1d2c
* Mon Apr  6 2020 Jan Horak <jhorak@redhat.com> - 68.6.1-1
dd1d2c
- Update to 68.6.1 ESR
dd1d2c
dd1d2c
* Wed Mar 04 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.6.0 build1
dd1d2c
dd1d2c
* Mon Feb 24 2020 Martin Stransky <stransky@redhat.com> - 68.5.0-3
dd1d2c
- Added fix for rhbz#1805667
dd1d2c
- Enabled mzbz@1170092 - Firefox prefs at /etc
dd1d2c
dd1d2c
* Fri Feb 07 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.5.0 build2
dd1d2c
dd1d2c
* Wed Feb 05 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.5.0 build1
dd1d2c
dd1d2c
* Wed Jan 08 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.4.1esr build1
dd1d2c
dd1d2c
* Fri Jan 03 2020 Jan Horak <jhorak@redhat.com>
dd1d2c
- Update to 68.4.0esr build1
dd1d2c
dd1d2c
* Wed Dec 18 2019 Jan Horak <jhorak@redhat.com>
dd1d2c
- Fix for wrong intl.accept_lang when using non en-us langpack
dd1d2c
dd1d2c
* Wed Nov 27 2019 Martin Stransky <stransky@redhat.com> - 68.3.0-1
dd1d2c
- Update to 68.3.0 ESR
dd1d2c
dd1d2c
* Thu Oct 24 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-4
dd1d2c
- Added patch for TLS 1.3 support.
dd1d2c
dd1d2c
* Wed Oct 23 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-3
dd1d2c
- Rebuild
dd1d2c
dd1d2c
* Mon Oct 21 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-2
dd1d2c
- Rebuild
dd1d2c
dd1d2c
* Thu Oct 17 2019 Martin Stransky <stransky@redhat.com> - 68.2.0-1
dd1d2c
- Update to 68.2.0 ESR
dd1d2c
dd1d2c
* Thu Oct 10 2019 Martin Stransky <stransky@redhat.com> - 68.1.0-6
dd1d2c
- Enable system nss on RHEL6
dd1d2c
dd1d2c
* Thu Sep  5 2019 Jan Horak <jhorak@redhat.com> - 68.1.0-2
dd1d2c
- Enable building langpacks
dd1d2c
dd1d2c
* Wed Aug 28 2019 Jan Horak <jhorak@redhat.com> - 68.1.0-1
dd1d2c
- Update to 68.1.0 ESR
dd1d2c
dd1d2c
* Mon Aug 5 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-4
dd1d2c
- Enable system nss
dd1d2c
dd1d2c
* Mon Jul 29 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-3
dd1d2c
- Enable official branding
dd1d2c
dd1d2c
* Fri Jul 26 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-2
dd1d2c
- Enabled PipeWire on RHEL8
dd1d2c
dd1d2c
* Fri Jul 26 2019 Martin Stransky <stransky@redhat.com> - 68.0.1-1
dd1d2c
- Updated to 68.0.1 ESR
dd1d2c
dd1d2c
* Tue Jul 16 2019 Jan Horak <jhorak@redhat.com> - 68.0-0.11
dd1d2c
- Update to 68.0 ESR
dd1d2c
dd1d2c
* Tue Jun 25 2019 Martin Stransky <stransky@redhat.com> - 68.0-0.10
dd1d2c
- Updated to 68.0 alpha 13
dd1d2c
- Enabled second arches
dd1d2c
dd1d2c
* Fri Mar 22 2019 Martin Stransky <stransky@redhat.com> - 68.0-0.1
dd1d2c
- Updated to 68.0 alpha
dd1d2c
dd1d2c
* Fri Mar 15 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-3
dd1d2c
- Added Google API keys (mozbz#1531176)
dd1d2c
dd1d2c
* Thu Mar 14 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-2
dd1d2c
- Update to 60.6.0 ESR (Build 2)
dd1d2c
dd1d2c
* Wed Mar 13 2019 Martin Stransky <stransky@redhat.com> - 60.6.0-1
dd1d2c
- Update to 60.6.0 ESR (Build 1)
dd1d2c
dd1d2c
* Wed Feb 13 2019 Jan Horak <jhorak@redhat.com> - 60.5.1-1
dd1d2c
- Update to 60.5.1 ESR
dd1d2c
dd1d2c
* Wed Feb 6 2019 Martin Stransky <stransky@redhat.com> - 60.5.0-3
dd1d2c
- Added fix for rhbz#1672424 - Firefox crashes on NFS drives.
dd1d2c
dd1d2c
* Fri Jan 25 2019 Martin Stransky <stransky@redhat.com> - 60.5.0-2
dd1d2c
- Updated to 60.5.0 ESR build2
dd1d2c
dd1d2c
* Tue Jan 22 2019 Martin Stransky <stransky@redhat.com> - 60.5.0-1
dd1d2c
- Updated to 60.5.0 ESR build1
dd1d2c
dd1d2c
* Thu Jan 10 2019 Jan Horak <jhorak@redhat.com> - 60.4.0-3
dd1d2c
- Fixing fontconfig warnings (rhbz#1601475)
dd1d2c
dd1d2c
* Wed Jan  9 2019 Jan Horak <jhorak@redhat.com> - 60.4.0-2
dd1d2c
- Added pipewire patch from Tomas Popela (rhbz#1664270)
dd1d2c
dd1d2c
* Wed Dec  5 2018 Jan Horak <jhorak@redhat.com> - 60.4.0-1
dd1d2c
- Update to 60.4.0 ESR
dd1d2c
dd1d2c
* Tue Dec  4 2018 Jan Horak <jhorak@redhat.com> - 60.3.0-2
dd1d2c
- Added firefox-gnome-shell-extension
dd1d2c
dd1d2c
* Fri Oct 19 2018 Jan Horak <jhorak@redhat.com> - 60.3.0-1
dd1d2c
- Update to 60.3.0 ESR
dd1d2c
dd1d2c
* Wed Oct 10 2018 Jan Horak <jhorak@redhat.com> - 60.2.2-2
dd1d2c
- Added patch for rhbz#1633932
dd1d2c
dd1d2c
* Tue Oct  2 2018 Jan Horak <jhorak@redhat.com> - 60.2.2-1
dd1d2c
- Update to 60.2.2 ESR
dd1d2c
dd1d2c
* Mon Sep 24 2018 Jan Horak <jhorak@redhat.com> - 60.2.1-1
dd1d2c
- Update to 60.2.1 ESR
dd1d2c
dd1d2c
* Fri Aug 31 2018 Jan Horak <jhorak@redhat.com> - 60.2.0-1
dd1d2c
- Update to 60.2.0 ESR
dd1d2c
dd1d2c
* Tue Aug 28 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-9
dd1d2c
- Do not set user agent (rhbz#1608065)
dd1d2c
- GTK dialogs are localized now (rhbz#1619373)
dd1d2c
- JNLP association works again (rhbz#1607457)
dd1d2c
dd1d2c
* Thu Aug 16 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-8
dd1d2c
- Fixed homepage and bookmarks (rhbz#1606778)
dd1d2c
- Fixed missing file associations in RHEL6 (rhbz#1613565)
dd1d2c
dd1d2c
* Thu Jul 12 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-7
dd1d2c
- Run at-spi-bus if not running already (for the bundled gtk3)
dd1d2c
dd1d2c
* Mon Jul  9 2018 Jan Horak <jhorak@redhat.com> - 60.1.0-6
dd1d2c
- Fix for missing schemes for bundled gtk3
dd1d2c
dd1d2c
* Mon Jun 25 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-5
dd1d2c
- Added mesa-libEGL dependency to gtk3/rhel6
dd1d2c
dd1d2c
* Sun Jun 24 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-4
dd1d2c
- Disabled jemalloc on all second arches
dd1d2c
dd1d2c
* Fri Jun 22 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-3
dd1d2c
- Updated to 60.1.0 ESR build2
dd1d2c
dd1d2c
* Thu Jun 21 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-2
dd1d2c
- Disabled jemalloc on second arches
dd1d2c
dd1d2c
* Wed Jun 20 2018 Martin Stransky <stransky@redhat.com> - 60.1.0-1
dd1d2c
- Updated to 60.1.0 ESR
dd1d2c
dd1d2c
* Wed Jun 13 2018 Jan Horak <jhorak@redhat.com> - 60.0-12
dd1d2c
- Fixing bundled libffi issues
dd1d2c
- Readded some requirements
dd1d2c
dd1d2c
* Mon Jun 11 2018 Martin Stransky <stransky@redhat.com> - 60.0-10
dd1d2c
- Added fix for mozilla BZ#1436242 - IPC crashes.
dd1d2c
dd1d2c
* Mon Jun 11 2018 Jan Horak <jhorak@redhat.com> - 60.0-9
dd1d2c
- Bundling libffi for the sec-arches
dd1d2c
- Added openssl-devel for the Python
dd1d2c
- Fixing bundled gtk3
dd1d2c
dd1d2c
* Fri May 18 2018 Martin Stransky <stransky@redhat.com> - 60.0-8
dd1d2c
- Added fix for mozilla BZ#1458492
dd1d2c
dd1d2c
* Wed May 16 2018 Martin Stransky <stransky@redhat.com> - 60.0-7
dd1d2c
- Added patch from rhbz#1498561 to fix ppc64(le) crashes.
dd1d2c
dd1d2c
* Wed May 16 2018 Martin Stransky <stransky@redhat.com> - 60.0-6
dd1d2c
- Disabled jemalloc on second arches
dd1d2c
dd1d2c
* Sun May  6 2018 Jan Horak <jhorak@redhat.com> - 60.0-4
dd1d2c
- Update to 60.0 ESR
dd1d2c
dd1d2c
* Thu Mar  8 2018 Jan Horak <jhorak@redhat.com> - 52.7.0-1
dd1d2c
- Update to 52.7.0 ESR
dd1d2c
dd1d2c
* Mon Jan 29 2018 Martin Stransky <stransky@redhat.com> - 52.6.0-2
dd1d2c
- Build Firefox for desktop arches only (x86_64 and ppc64le)
dd1d2c
dd1d2c
* Thu Jan 18 2018 Martin Stransky <stransky@redhat.com> - 52.6.0-1
dd1d2c
- Update to 52.6.0 ESR
dd1d2c
dd1d2c
* Thu Nov  9 2017 Jan Horak <jhorak@redhat.com> - 52.5.0-1
dd1d2c
- Update to 52.5.0 ESR
dd1d2c
dd1d2c
* Mon Sep 25 2017 Jan Horak <jhorak@redhat.com> - 52.4.0-1
dd1d2c
- Update to 52.4.0 ESR
dd1d2c
dd1d2c
* Thu Aug  3 2017 Jan Horak <jhorak@redhat.com> - 52.3.0-3
dd1d2c
- Update to 52.3.0 ESR (b2)
dd1d2c
- Require correct nss version
dd1d2c
dd1d2c
* Tue Jun 13 2017 Jan Horak <jhorak@redhat.com> - 52.2.0-1
dd1d2c
- Update to 52.2.0 ESR
dd1d2c
dd1d2c
* Wed May 24 2017 Jan Horak <jhorak@redhat.com> - 52.1.2-1
dd1d2c
- Update to 52.1.2 ESR
dd1d2c
dd1d2c
* Wed May 24 2017 Jan Horak <jhorak@redhat.com> - 52.0-7
dd1d2c
- Added fix for accept language (rhbz#1454322)
dd1d2c
dd1d2c
* Wed Mar 22 2017 Jan Horak <jhorak@redhat.com> - 52.0-6
dd1d2c
- Removing patch required for older NSS from RHEL 7.3
dd1d2c
- Added patch for rhbz#1414564
dd1d2c
dd1d2c
* Fri Mar 17 2017 Martin Stransky <stransky@redhat.com> - 52.0-5
dd1d2c
- Added fix for mozbz#1348168/CVE-2017-5428
dd1d2c
dd1d2c
* Mon Mar  6 2017 Jan Horak <jhorak@redhat.com> - 52.0-4
dd1d2c
- Update to 52.0 ESR (b4)
dd1d2c
dd1d2c
* Thu Mar 2 2017 Martin Stransky <stransky@redhat.com> - 52.0-3
dd1d2c
- Added fix for rhbz#1423012 - ppc64 gfx crashes
dd1d2c
dd1d2c
* Wed Mar  1 2017 Jan Horak <jhorak@redhat.com> - 52.0-2
dd1d2c
- Enable system nss
dd1d2c
dd1d2c
* Tue Feb 28 2017 Martin Stransky <stransky@redhat.com> - 52.0-1
dd1d2c
- Update to 52.0ESR (B1)
dd1d2c
- Build RHEL7 package for Gtk3
dd1d2c
dd1d2c
* Mon Feb 27 2017 Martin Stransky <stransky@redhat.com> - 52.0-0.13
dd1d2c
- Added fix for rhbz#1414535
dd1d2c
dd1d2c
* Tue Feb 21 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.12
dd1d2c
- Update to 52.0b8
dd1d2c
dd1d2c
* Tue Feb  7 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.11
dd1d2c
- Readded addons patch
dd1d2c
dd1d2c
* Mon Feb  6 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.10
dd1d2c
- Update to 52.0b3
dd1d2c
dd1d2c
* Tue Jan 31 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.9
dd1d2c
- Update to 52.0b2
dd1d2c
dd1d2c
* Fri Jan 27 2017 Jan Horak <jhorak@redhat.com> - 52.0-0.8
dd1d2c
- Update to 52.0b1
dd1d2c
dd1d2c
* Thu Dec  8 2016 Jan Horak <jhorak@redhat.com> - 52.0-0.5
dd1d2c
- Firefox Aurora 52 testing build