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

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

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