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

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

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