dd1d2c
# Set for local builds only
dd1d2c
%global disable_toolsets  0
dd1d2c
dd1d2c
%ifarch i686
dd1d2c
# no debug package for the i686 because oom on i686 with debuginfos
dd1d2c
%global debug_package %{nil}
dd1d2c
%endif
dd1d2c
dd1d2c
%global rhel_minor_version -1
dd1d2c
%if 0%{?flatpak:1}
dd1d2c
%global rhel_minor_version 4
dd1d2c
%endif
dd1d2c
%if "%{?dist}" == ".el8"
dd1d2c
%global rhel_minor_version 4
dd1d2c
%endif
dd1d2c
%if "%{?dist}" == ".el8_3"
dd1d2c
%global rhel_minor_version 3
dd1d2c
%endif
dd1d2c
%if "%{?dist}" == ".el8_2"
dd1d2c
%global rhel_minor_version 2
dd1d2c
%endif
dd1d2c
%if "%{?dist}" == ".el8_1"
dd1d2c
%global rhel_minor_version 1
dd1d2c
%endif
dd1d2c
%if "%{?dist}" == ".el8_0"
dd1d2c
%global rhel_minor_version 0
dd1d2c
%endif
dd1d2c
dd1d2c
%global system_nss        1
dd1d2c
%global bundle_nss        0
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
  %if 0%{?rhel_minor_version} < 2
dd1d2c
%global bundle_nss        1
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
%global system_nss        0
dd1d2c
%endif
dd1d2c
dd1d2c
%define use_bundled_ffi   0
dd1d2c
dd1d2c
%define use_bundled_python_2 1
dd1d2c
%define use_bundled_python_3 1
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
%define use_bundled_python_2 1
dd1d2c
%define use_bundled_python_3 0
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 7
dd1d2c
%define use_bundled_python_2 0
dd1d2c
%define use_bundled_python_3 0
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?flatpak:1}
dd1d2c
%define use_bundled_python_2 1
dd1d2c
%endif
dd1d2c
dd1d2c
# we need python2 because of icu data gen
dd1d2c
%define use_bundled_python_2 1
dd1d2c
dd1d2c
%define bundle_gnome_extension 0
dd1d2c
dd1d2c
# Don't use system hunspell for now
dd1d2c
%global system_hunspell   0
dd1d2c
%global system_sqlite     0
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
%global use_llvmts        0
dd1d2c
%else
dd1d2c
%global use_llvmts        1
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} > 6
dd1d2c
%global system_ffi        1
dd1d2c
%else
dd1d2c
%global system_ffi        0
dd1d2c
%endif
dd1d2c
%if 0%{?rhel} < 8
dd1d2c
%global use_dts           1
dd1d2c
%endif
dd1d2c
dd1d2c
%global use_rustts        1
dd1d2c
%global dts_version       8
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
%global dts_version       8
dd1d2c
%endif
dd1d2c
%global rust_version         1.41
dd1d2c
%global rust_toolset_version 1.41
dd1d2c
%global llvm_version      7.0
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
%global llvm_version      6.0
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?disable_toolsets}
dd1d2c
%global use_rustts        0
dd1d2c
%global use_dts           0
dd1d2c
%global use_llvmts        0
dd1d2c
%endif
dd1d2c
dd1d2c
# Use system cairo?
dd1d2c
%global system_cairo      0
dd1d2c
dd1d2c
# Use system libvpx?
dd1d2c
%global system_libvpx     0
dd1d2c
dd1d2c
# Use system libicu?
dd1d2c
%global system_libicu     0
dd1d2c
dd1d2c
# Big endian platforms
dd1d2c
%ifarch ppc64 s390x
dd1d2c
# Javascript Intl API is not supported on big endian platforms right now:
dd1d2c
# https://bugzilla.mozilla.org/show_bug.cgi?id=1322212
dd1d2c
%global big_endian        1
dd1d2c
%endif
dd1d2c
dd1d2c
# Hardened build?
dd1d2c
%global hardened_build    1
dd1d2c
dd1d2c
%global system_jpeg       1
dd1d2c
dd1d2c
%ifarch %{ix86} x86_64
dd1d2c
%global run_tests         0
dd1d2c
%else
dd1d2c
%global run_tests         0
dd1d2c
%endif
dd1d2c
dd1d2c
# Build as a debug package?
dd1d2c
%global debug_build       0
dd1d2c
dd1d2c
#%global default_bookmarks_file  %{_datadir}/bookmarks/default-bookmarks.html
dd1d2c
# need to use full path because of flatpak where datadir is /app/share
dd1d2c
%global default_bookmarks_file  /usr/share/bookmarks/default-bookmarks.html
dd1d2c
%global firefox_app_id  \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
dd1d2c
# Minimal required versions
dd1d2c
%global cairo_version 1.13.1
dd1d2c
%global freetype_version 2.1.9
dd1d2c
%if %{?system_libvpx}
dd1d2c
%global libvpx_version 1.4.0
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?system_nss}
dd1d2c
%global nspr_version 4.25
dd1d2c
# NSS/NSPR quite often ends in build override, so as requirement the version
dd1d2c
# we're building against could bring us some broken dependencies from time to time.
dd1d2c
#%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
dd1d2c
%global nspr_build_version %{nspr_version}
dd1d2c
%global nss_version 3.53.1
dd1d2c
#%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
dd1d2c
%global nss_build_version %{nss_version}
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?system_sqlite}
dd1d2c
%global sqlite_version 3.8.4.2
dd1d2c
# The actual sqlite version (see #480989):
dd1d2c
%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
dd1d2c
%endif
dd1d2c
dd1d2c
%define bundled_python_version_2 2.7.13
dd1d2c
%define bundled_python_version_3 3.6.8
dd1d2c
%define use_bundled_openssl     0
dd1d2c
%define use_bundled_nodejs      0
dd1d2c
%define use_bundled_yasm        0
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
  %if 0%{?rhel_minor_version} <= 2
dd1d2c
%define use_bundled_nodejs      1
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 7
dd1d2c
%define use_bundled_nodejs      1
dd1d2c
%define use_bundled_yasm        1
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
%define use_bundled_nodejs      1
dd1d2c
%define use_bundled_openssl     1
dd1d2c
%define use_bundled_yasm        1
dd1d2c
%define bundle_gtk3             1
dd1d2c
# In-tree libffi is able to build on following platforms, we have to bundle it for the rest
dd1d2c
%ifnarch x86_64 i686 aarch64
dd1d2c
%define use_bundled_ffi         1
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
# GTK3 bundling
dd1d2c
%define avoid_bundled_rebuild   0
dd1d2c
dd1d2c
%define gtk3_nvr 3.22.26-1
dd1d2c
%define gtk3_install_path %{mozappdir}/bundled
dd1d2c
dd1d2c
# We could use %%include, but in %%files, %%post and other sections, but in these
dd1d2c
# sections it could lead to syntax errors about unclosed %%if. Work around it by
dd1d2c
# using the following macro
dd1d2c
%define include_file() %{expand:%(cat '%1')}
dd1d2c
dd1d2c
%global mozappdir     %{_libdir}/%{name}
dd1d2c
%global mozappdirdev  %{_libdir}/%{name}-devel-%{version}
dd1d2c
%global langpackdir   %{mozappdir}/langpacks
dd1d2c
%global tarballdir    %{name}-%{version}
dd1d2c
%global pre_version   esr
dd1d2c
#global pre_tag       alpha
dd1d2c
dd1d2c
%global official_branding       1
dd1d2c
%global build_langpacks         1
dd1d2c
dd1d2c
%global enable_mozilla_crashreporter       0
dd1d2c
%if !%{debug_build}
dd1d2c
%ifarch %{ix86} x86_64
dd1d2c
%global enable_mozilla_crashreporter       0
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
Summary:        Mozilla Firefox Web browser
dd1d2c
Name:           firefox
dd1d2c
Version:        78.7.1
dd1d2c
Release:        1%{?dist}
dd1d2c
URL:            https://www.mozilla.org/firefox/
dd1d2c
License:        MPLv1.1 or GPLv2+ or LGPLv2+
dd1d2c
%if 0%{?rhel} == 7
dd1d2c
ExcludeArch:    s390 ppc
dd1d2c
%endif
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
ExclusiveArch:  i686 x86_64 ppc64 s390x
dd1d2c
%endif
dd1d2c
dd1d2c
Source0:        https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz
dd1d2c
%if %{build_langpacks}
dd1d2c
Source1:        firefox-langpacks-%{version}%{?pre_version}-20210209.tar.xz
dd1d2c
%endif
dd1d2c
Source2:        cbindgen-vendor-0.14.3.tar.xz
dd1d2c
Source10:       firefox-mozconfig
dd1d2c
%if 0%{?centos}
dd1d2c
Source12:       firefox-centos-default-prefs.js
dd1d2c
%else
dd1d2c
Source12:       firefox-redhat-default-prefs.js
dd1d2c
%endif
dd1d2c
Source20:       firefox.desktop
dd1d2c
Source21:       firefox.sh.in
dd1d2c
Source23:       firefox.1
dd1d2c
Source24:       mozilla-api-key
dd1d2c
Source25:       firefox-symbolic.svg
dd1d2c
Source26:       distribution.ini
dd1d2c
Source27:       google-api-key
dd1d2c
Source28:       node-stdout-nonblocking-wrapper
dd1d2c
dd1d2c
Source200:      gtk3-private-%{gtk3_nvr}.el6.src.rpm
dd1d2c
Source201:      gtk3-private-%{gtk3_nvr}-post.inc
dd1d2c
Source202:      gtk3-private-%{gtk3_nvr}-postun.inc
dd1d2c
Source203:      gtk3-private-%{gtk3_nvr}-posttrans.inc
dd1d2c
Source204:      gtk3-private-%{gtk3_nvr}-files.inc
dd1d2c
Source205:      gtk3-private-%{gtk3_nvr}-setup-flags-env.inc
dd1d2c
Source206:      gtk3-private-%{gtk3_nvr}-requires-provides-filter.inc
dd1d2c
Source301:      yasm-1.2.0-3.el5.src.rpm
dd1d2c
Source303:      libffi-3.0.13-18.el7_3.src.rpm
dd1d2c
Source304:      nodejs-10.21.0-5.fc32.src.rpm
dd1d2c
Source305:      openssl-1.0.2k-19.6.bundle.el7_7.src.rpm
dd1d2c
dd1d2c
Source403:      nss-3.53.1-3.fc32.src.rpm
dd1d2c
Source401:      nss-setup-flags-env.inc
dd1d2c
Source402:      nspr-4.25.0-1.el8_0.src.rpm 
dd1d2c
#Python
dd1d2c
%if 0%{?use_bundled_python_2}
dd1d2c
Source100:      https://www.python.org/ftp/python/%{bundled_python_version_2}/Python-%{bundled_python_version_2}.tar.xz
dd1d2c
%endif
dd1d2c
%if 0%{?use_bundled_python_3}
dd1d2c
Source101:      https://www.python.org/ftp/python/%{bundled_python_version_3}/Python-%{bundled_python_version_3}.tar.xz
dd1d2c
%endif
dd1d2c
# Build patches
dd1d2c
Patch1000:      python-2.7.patch
dd1d2c
Patch1001:      build-ppc64le-inline.patch
dd1d2c
Patch1002:      python-2.7-gcc8-fix.patch
dd1d2c
Patch1003:      python-missing-utimensat.patch
dd1d2c
Patch1004:      build-icu-make.patch
dd1d2c
# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1699374
dd1d2c
Patch4:         build-mozconfig-fix.patch
dd1d2c
Patch6:         build-nss-version.patch
dd1d2c
Patch7:         firefox-debugedits-error.patch
dd1d2c
dd1d2c
# Fedora/RHEL specific patches
dd1d2c
Patch215:        firefox-enable-addons.patch
dd1d2c
Patch219:        rhbz-1173156.patch
dd1d2c
Patch224:        mozilla-1170092.patch
dd1d2c
#ARM run-time patch
dd1d2c
Patch231:        firefox-pipewire.patch
dd1d2c
Patch232:        firefox-rhel6-hugepage.patch
dd1d2c
Patch233:        firefox-rhel6-nss-tls1.3.patch
dd1d2c
Patch234:        rhbz-1821418.patch
dd1d2c
Patch235:        firefox-pipewire-0-3.patch
dd1d2c
dd1d2c
# Upstream patches
dd1d2c
Patch402:        mozilla-1196777.patch
dd1d2c
dd1d2c
Patch501:        python-encode.patch
dd1d2c
Patch503:        mozilla-s390-context.patch
dd1d2c
Patch505:        mozilla-bmo1005535.patch
dd1d2c
Patch506:        mozilla-bmo1504834-part1.patch
dd1d2c
Patch507:        mozilla-bmo1504834-part2.patch
dd1d2c
Patch508:        mozilla-bmo1504834-part3.patch
dd1d2c
Patch509:        mozilla-bmo1504834-part4.patch
dd1d2c
Patch510:        mozilla-bmo1554971.patch
dd1d2c
Patch511:        mozilla-bmo1602730.patch
dd1d2c
Patch512:        mozilla-bmo849632.patch
dd1d2c
Patch513:        mozilla-bmo998749.patch
dd1d2c
Patch514:        mozilla-s390x-skia-gradient.patch
dd1d2c
Patch515:        mozilla-bmo1626236.patch
dd1d2c
Patch516:        D87019-thin-vec-big-endian.diff
dd1d2c
dd1d2c
dd1d2c
# CentOS patches
dd1d2c
%if 0%{?centos}
dd1d2c
Patch10000:      Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
dd1d2c
Patch10001:      Bug-1526653---fix_user_vfp_armv7.patch
dd1d2c
%endif
dd1d2c
dd1d2c
# RHEL6 patches
dd1d2c
Patch600:        rhel6-dbusver.patch
dd1d2c
Patch601:        rhel6-kernel.patch
dd1d2c
Patch602:        rhel6-mach-fail.patch
dd1d2c
Patch603:        rhel6-zconst.patch
dd1d2c
Patch604:        rhel6-auxvh.patch
dd1d2c
Patch605:        rhel6-abiv2-mozbz1642174.patch
dd1d2c
Patch607:        rhel6-at-no-automount.patch
dd1d2c
dd1d2c
# Flatpak patches
dd1d2c
dd1d2c
%if %{?system_nss}
dd1d2c
%if !0%{?bundle_nss}
dd1d2c
BuildRequires:  pkgconfig(nspr) >= %{nspr_version}
dd1d2c
BuildRequires:  pkgconfig(nss) >= %{nss_version}
dd1d2c
BuildRequires:  nss-static >= %{nss_version}
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
%if %{?system_cairo}
dd1d2c
BuildRequires:  pkgconfig(cairo) >= %{cairo_version}
dd1d2c
%endif
dd1d2c
BuildRequires:  pkgconfig(libpng)
dd1d2c
BuildRequires:  xz
dd1d2c
BuildRequires:  libXt-devel
dd1d2c
BuildRequires:  mesa-libGL-devel
dd1d2c
Requires:       liberation-fonts-common
dd1d2c
Requires:       liberation-sans-fonts
dd1d2c
%if %{?system_jpeg}
dd1d2c
BuildRequires:  libjpeg-devel
dd1d2c
%endif
dd1d2c
BuildRequires:  zip
dd1d2c
BuildRequires:  bzip2-devel
dd1d2c
BuildRequires:  pkgconfig(zlib)
dd1d2c
BuildRequires:  pkgconfig(libIDL-2.0)
dd1d2c
BuildRequires:  pkgconfig(gtk+-2.0)
dd1d2c
BuildRequires:  krb5-devel
dd1d2c
BuildRequires:  pkgconfig(pango)
dd1d2c
BuildRequires:  pkgconfig(freetype2) >= %{freetype_version}
dd1d2c
BuildRequires:  pkgconfig(xt)
dd1d2c
BuildRequires:  pkgconfig(xrender)
dd1d2c
%if %{?system_hunspell}
dd1d2c
BuildRequires:  hunspell-devel
dd1d2c
%endif
dd1d2c
BuildRequires:  pkgconfig(libstartup-notification-1.0)
dd1d2c
BuildRequires:  pkgconfig(libnotify)
dd1d2c
BuildRequires:  pkgconfig(dri)
dd1d2c
BuildRequires:  pkgconfig(libcurl)
dd1d2c
BuildRequires:  dbus-glib-devel
dd1d2c
%if %{?system_libvpx}
dd1d2c
BuildRequires:  libvpx-devel >= %{libvpx_version}
dd1d2c
%endif
dd1d2c
BuildRequires:  autoconf213
dd1d2c
BuildRequires:  pkgconfig(libpulse)
dd1d2c
BuildRequires:  pkgconfig(gconf-2.0)
dd1d2c
dd1d2c
%if 0%{?use_dts}
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-gcc-c++
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-gcc
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-binutils
dd1d2c
BuildRequires:  devtoolset-%{dts_version}-libatomic-devel
dd1d2c
%if 0%{?use_llvmts}
dd1d2c
BuildRequires:  llvm-toolset-%{llvm_version}
dd1d2c
BuildRequires:  llvm-toolset-%{llvm_version}-llvm-devel
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
BuildRequires:  scl-utils
dd1d2c
BuildRequires:  findutils
dd1d2c
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
BuildRequires:  cargo
dd1d2c
BuildRequires:  rust >= %{rust_version}
dd1d2c
BuildRequires:  llvm >= %{llvm_version}
dd1d2c
BuildRequires:  llvm-devel >= %{llvm_version}
dd1d2c
BuildRequires:  clang >= %{llvm_version}
dd1d2c
BuildRequires:  clang-devel >= %{llvm_version}
dd1d2c
BuildRequires:  rustfmt >= %{rust_version}
dd1d2c
BuildRequires:  python3
dd1d2c
BuildRequires:  nodejs >= 10.21
dd1d2c
%else
dd1d2c
%if 0%{?use_rustts}
dd1d2c
BuildRequires:  rust-toolset-%{rust_toolset_version}
dd1d2c
%endif
dd1d2c
%if 0%{?rhel} == 7
dd1d2c
#BuildRequires:  rh-nodejs12
dd1d2c
%endif
dd1d2c
%if 0%{?use_llvmts}
dd1d2c
BuildRequires:  llvm-toolset-%{llvm_version}
dd1d2c
BuildRequires:  llvm-toolset-%{llvm_version}-llvm-devel
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
%if ! 0%{?use_bundled_yasm}
dd1d2c
BuildRequires:  yasm
dd1d2c
%endif
dd1d2c
dd1d2c
dd1d2c
%if 0%{?use_bundled_python_2}
dd1d2c
# Needed for Python in RHEL6
dd1d2c
BuildRequires:  openssl-devel
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
  %if 0%{?rhel_minor_version} >= 3
dd1d2c
BuildRequires:  pkgconfig(libpipewire-0.3)
dd1d2c
  %else
dd1d2c
BuildRequires:  pipewire-devel
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_gtk3}
dd1d2c
BuildRequires:        automake
dd1d2c
BuildRequires:        autoconf
dd1d2c
BuildRequires:        cups-devel
dd1d2c
BuildRequires:        dbus-devel
dd1d2c
BuildRequires:        desktop-file-utils
dd1d2c
BuildRequires:        expat-devel
dd1d2c
BuildRequires:        fontpackages-devel
dd1d2c
BuildRequires:        gamin-devel
dd1d2c
BuildRequires:        gettext-devel
dd1d2c
BuildRequires:        git
dd1d2c
BuildRequires:        intltool
dd1d2c
BuildRequires:        jasper-devel
dd1d2c
BuildRequires:        libepoxy-devel
dd1d2c
BuildRequires:        libcroco-devel
dd1d2c
BuildRequires:        libffi-devel
dd1d2c
BuildRequires:        libpng-devel
dd1d2c
BuildRequires:        libtiff-devel
dd1d2c
BuildRequires:        libtool
dd1d2c
BuildRequires:        libxml2-devel
dd1d2c
BuildRequires:        libX11-devel
dd1d2c
BuildRequires:        libXcomposite-devel
dd1d2c
BuildRequires:        libXcursor-devel
dd1d2c
BuildRequires:        libXinerama-devel
dd1d2c
BuildRequires:        libXevie-devel
dd1d2c
BuildRequires:        libXrandr-devel
dd1d2c
BuildRequires:        libXrender-devel
dd1d2c
BuildRequires:        libXtst-devel
dd1d2c
BuildRequires:        mesa-libGL-devel
dd1d2c
BuildRequires:        mesa-libEGL-devel
dd1d2c
BuildRequires:        pixman-devel
dd1d2c
BuildRequires:        rest-devel
dd1d2c
BuildRequires:        readline-devel
dd1d2c
# TODO: We miss that dependency in our bundled gtk3 package.
dd1d2c
# As a hotfix we put it here and fix gtk3 in next release.
dd1d2c
Requires:             mesa-libEGL%{?_isa}
dd1d2c
Requires:             libcroco%{?_isa}
dd1d2c
Requires:             mesa-libGL%{?_isa}
dd1d2c
Requires:             bzip2-libs%{?_isa}
dd1d2c
Requires:             libXtst%{?_isa}
dd1d2c
%else
dd1d2c
BuildRequires:        gtk3-devel
dd1d2c
BuildRequires:        glib2-devel
dd1d2c
%endif
dd1d2c
dd1d2c
# Bundled nss/nspr requirement
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
BuildRequires:    nss-softokn
dd1d2c
BuildRequires:    sqlite-devel
dd1d2c
BuildRequires:    zlib-devel
dd1d2c
BuildRequires:    pkgconfig
dd1d2c
BuildRequires:    gawk
dd1d2c
BuildRequires:    psmisc
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
BuildRequires:    perl
dd1d2c
%else
dd1d2c
BuildRequires:    perl-interpreter
dd1d2c
%endif
dd1d2c
BuildRequires:    gcc-c++
dd1d2c
BuildRequires:    xmlto
dd1d2c
%endif
dd1d2c
dd1d2c
Requires:       mozilla-filesystem
dd1d2c
Requires:       p11-kit-trust
dd1d2c
%if %{?system_nss}
dd1d2c
%if !0%{?bundle_nss}
dd1d2c
Requires:       nspr >= %{nspr_build_version}
dd1d2c
Requires:       nss >= %{nss_build_version}
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
BuildRequires:  desktop-file-utils
dd1d2c
BuildRequires:  system-bookmarks
dd1d2c
Requires:       redhat-indexhtml
dd1d2c
#for the python2
dd1d2c
BuildRequires:  pkgconfig(sqlite3)
dd1d2c
%if %{?system_sqlite}
dd1d2c
BuildRequires:  pkgconfig(sqlite3) >= %{sqlite_version}
dd1d2c
Requires:       sqlite >= %{sqlite_build_version}
dd1d2c
%endif
dd1d2c
dd1d2c
dd1d2c
%if %{?run_tests}
dd1d2c
BuildRequires:  xorg-x11-server-Xvfb
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?system_ffi}
dd1d2c
  %if !%{use_bundled_ffi}0
dd1d2c
BuildRequires:  pkgconfig(libffi)
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?use_bundled_nodejs}
dd1d2c
%if !0%{?use_bundled_python_3}
dd1d2c
BuildRequires: python3-devel
dd1d2c
%endif
dd1d2c
BuildRequires: zlib-devel
dd1d2c
#BuildRequires: brotli-devel
dd1d2c
#BuildRequires: gcc >= 4.9.4
dd1d2c
#BuildRequires: gcc-c++ >= 4.9.4
dd1d2c
BuildRequires: chrpath
dd1d2c
BuildRequires: libatomic
dd1d2c
BuildRequires: openssl-devel
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?big_endian}
dd1d2c
  %if 0%{?flatpak}
dd1d2c
BuildRequires:  icu
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
Obsoletes:      mozilla <= 37:1.7.13
dd1d2c
Provides:       webclient
dd1d2c
dd1d2c
%description
dd1d2c
Mozilla Firefox is an open-source web browser, designed for standards
dd1d2c
compliance, performance and portability.
dd1d2c
dd1d2c
%if %{enable_mozilla_crashreporter}
dd1d2c
%global moz_debug_prefix %{_prefix}/lib/debug
dd1d2c
%global moz_debug_dir %{moz_debug_prefix}%{mozappdir}
dd1d2c
%global uname_m %(uname -m)
dd1d2c
%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip
dd1d2c
%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name}
dd1d2c
%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list
dd1d2c
%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo
dd1d2c
%package -n %{crashreporter_pkg_name}
dd1d2c
Summary: Debugging symbols used by Mozilla's crash reporter servers
dd1d2c
%description -n %{crashreporter_pkg_name}
dd1d2c
This package provides debug information for Firefox, for use by
dd1d2c
Mozilla's crash reporter servers.  If you are trying to locally
dd1d2c
debug %{name}, you want to install %{name}-debuginfo instead.
dd1d2c
%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{run_tests}
dd1d2c
%global testsuite_pkg_name mozilla-%{name}-testresults
dd1d2c
%package -n %{testsuite_pkg_name}
dd1d2c
Summary: Results of testsuite
dd1d2c
%description -n %{testsuite_pkg_name}
dd1d2c
This package contains results of tests executed during build.
dd1d2c
%files -n %{testsuite_pkg_name}
dd1d2c
/test_results
dd1d2c
%endif
dd1d2c
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%if %{?bundle_gnome_extension}
dd1d2c
%package        -n firefox-gnome-shell-extension
dd1d2c
%global         firefox_gnome_shell_addon_name addon-751081-latest.xpi
dd1d2c
Summary:        Support for managing GNOME Shell Extensions through web browsers
dd1d2c
Requires:       %{name}%{?_isa} = %{version}-%{release}
dd1d2c
dd1d2c
License:        GPLv3+
dd1d2c
URL:            https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome
dd1d2c
Source2:        https://addons.mozilla.org/firefox/downloads/latest/gnome-shell-integration/platform:2/%{firefox_gnome_shell_addon_name}
dd1d2c
dd1d2c
Requires:       dbus
dd1d2c
Requires:       gnome-icon-theme
dd1d2c
Requires:       gnome-shell
dd1d2c
Requires:       hicolor-icon-theme
dd1d2c
Requires:       mozilla-filesystem
dd1d2c
dd1d2c
%description -n firefox-gnome-shell-extension
dd1d2c
Browser extension for Firefox and native host messaging connector that provides
dd1d2c
integration with GNOME Shell and the corresponding extensions repository
dd1d2c
https://extensions.gnome.org.
dd1d2c
dd1d2c
%files -n firefox-gnome-shell-extension
dd1d2c
%{mozappdir}/distribution/extensions/chrome-gnome-shell@gnome.org.xpi
dd1d2c
%endif
dd1d2c
dd1d2c
%prep
dd1d2c
echo "Build environment"
dd1d2c
echo "dist                  %{?dist}"
dd1d2c
echo "RHEL 8 minor version: %{?rhel_minor_version}"
dd1d2c
echo "use_bundled_ffi       %{?use_bundled_ffi}"
dd1d2c
echo "use_bundled_python_2  %{?use_bundled_python_2}"
dd1d2c
echo "use_bundled_python_3  %{?use_bundled_python_3}"
dd1d2c
echo "bundle_nss            %{?bundle_nss}"
dd1d2c
echo "system_nss            %{?system_nss}"
dd1d2c
echo "use_rustts            %{?use_rustts}"
dd1d2c
echo "use_bundled_nodejs    %{?use_bundled_nodejs}"
dd1d2c
echo "use_bundled_openssl   %{?use_bundled_openssl}"
dd1d2c
echo "use_bundled_yasm      %{?use_bundled_yasm}"
dd1d2c
dd1d2c
dd1d2c
%if 0%{?use_bundled_python_2}
dd1d2c
%setup -q -T -c -n python2 -a 100
dd1d2c
%patch1000 -p0 -b .build
dd1d2c
%patch1002 -p0 -b .gcc8
dd1d2c
%endif
dd1d2c
%if 0%{?use_bundled_python_3}
dd1d2c
%setup -q -T -c -n python3 -a 101
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
%patch1003 -p0 -b .missing-utimensat.patch
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
%setup -q -n %{tarballdir}
dd1d2c
# Build patches, can't change backup suffix from default because during build
dd1d2c
# there is a compare of config and js/config directories and .orig suffix is
dd1d2c
# ignored during this compare.
dd1d2c
%patch7 -p1 -b .debugedits-error
dd1d2c
%ifarch %{ix86} %{arm} ppc
dd1d2c
# binary check fails OOM on 32bit arches
dd1d2c
%endif
dd1d2c
dd1d2c
%patch4  -p1 -b .build-mozconfig-fix
dd1d2c
#%patch6  -p1 -b .nss-version
dd1d2c
dd1d2c
# Fedora patches
dd1d2c
%patch215 -p1 -b .addons
dd1d2c
%patch219 -p1 -b .rhbz-1173156
dd1d2c
%patch224 -p1 -b .1170092
dd1d2c
dd1d2c
# fixing /usr/include in the patch for the flatpak build
dd1d2c
%if 0%{?flatpak}
dd1d2c
sed -ie 's|/usr/include|/app/include|' %_sourcedir/firefox-pipewire-0-3.patch
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 8
dd1d2c
  %if 0%{?rhel_minor_version} >= 3
dd1d2c
%patch235 -p1 -b .pipewire-0-3
dd1d2c
  %else
dd1d2c
%patch231 -p1 -b .pipewire
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
%patch232 -p1 -b .hugepage
dd1d2c
%patch233 -p1 -b .rhel6-nss-tls1.3
dd1d2c
%endif
dd1d2c
%patch234 -p1 -b .rhbz-1821418
dd1d2c
dd1d2c
%patch402 -p1 -b .1196777
dd1d2c
dd1d2c
# Patch for big endian platforms only
dd1d2c
%if 0%{?big_endian}
dd1d2c
%endif
dd1d2c
dd1d2c
%patch501 -p1 -b .python-encode
dd1d2c
%patch503 -p1 -b .mozilla-s390-context
dd1d2c
%patch505 -p1 -b .mozilla-bmo1005535
dd1d2c
%patch506 -p1 -b .mozilla-bmo1504834-part1
dd1d2c
%patch507 -p1 -b .mozilla-bmo1504834-part2
dd1d2c
%patch508 -p1 -b .mozilla-bmo1504834-part3
dd1d2c
%patch509 -p1 -b .mozilla-bmo1504834-part4
dd1d2c
%patch510 -p1 -b .mozilla-bmo1554971
dd1d2c
%patch511 -p1 -b .mozilla-bmo1602730
dd1d2c
%patch512 -p1 -b .mozilla-bmo849632
dd1d2c
%patch513 -p1 -b .mozilla-bmo998749
dd1d2c
%patch514 -p1 -b .mozilla-s390x-skia-gradient
dd1d2c
%patch515 -p1 -b .mozilla-bmo1626236
dd1d2c
%patch516 -p1 -b .D87019-thin-vec-big-endian.diff
dd1d2c
dd1d2c
dd1d2c
%patch1001 -p1 -b .ppc64le-inline
dd1d2c
%patch1004 -p1 -b .icu-make
dd1d2c
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
%patch600 -p1 -b .rhel6-dbusver
dd1d2c
%patch601 -p1 -b .rhel6-kernel
dd1d2c
%patch602 -p1 -b .rhel6-mach-fail
dd1d2c
%patch603 -p1 -b .rhel6-zconst
dd1d2c
%patch604 -p1 -b .rhel6-auxvh
dd1d2c
%patch605 -p1 -b .rhel6-abiv2-mozbz1642174
dd1d2c
%patch607 -R -p1 -b .rhel6-at-no-automount
dd1d2c
%endif
dd1d2c
dd1d2c
# CentOS patches
dd1d2c
%if 0%{?centos}
dd1d2c
%patch10000 -p1 -b .mozilla-1238661
dd1d2c
%patch10001 -p1 -b .mozilla-1526653
dd1d2c
%endif
dd1d2c
dd1d2c
%{__rm} -f .mozconfig
dd1d2c
%{__cp} %{SOURCE10} .mozconfig
dd1d2c
%if %{official_branding}
dd1d2c
echo "ac_add_options --enable-official-branding" >> .mozconfig
dd1d2c
%endif
dd1d2c
%{__cp} %{SOURCE24} mozilla-api-key
dd1d2c
%{__cp} %{SOURCE27} google-api-key
dd1d2c
dd1d2c
%if %{?system_nss}
dd1d2c
echo "ac_add_options --with-system-nspr" >> .mozconfig
dd1d2c
echo "ac_add_options --with-system-nss" >> .mozconfig
dd1d2c
%else
dd1d2c
echo "ac_add_options --without-system-nspr" >> .mozconfig
dd1d2c
echo "ac_add_options --without-system-nss" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?system_cairo}
dd1d2c
echo "ac_add_options --enable-system-cairo" >> .mozconfig
dd1d2c
%else
dd1d2c
echo "ac_add_options --disable-system-cairo" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?use_bundled_ffi}
dd1d2c
echo "ac_add_options --enable-system-ffi" >> .mozconfig
dd1d2c
%endif
dd1d2c
%if 0%{?system_ffi}
dd1d2c
echo "ac_add_options --enable-system-ffi" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%ifarch %{arm} %{ix86} x86_64
dd1d2c
echo "ac_add_options --disable-elf-hack" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?system_hunspell}
dd1d2c
echo "ac_add_options --enable-system-hunspell" >> .mozconfig
dd1d2c
%else
dd1d2c
# not available?
dd1d2c
#echo "ac_add_options --disable-system-hunspell" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?debug_build}
dd1d2c
echo "ac_add_options --enable-debug" >> .mozconfig
dd1d2c
echo "ac_add_options --disable-optimize" >> .mozconfig
dd1d2c
%else
dd1d2c
%global optimize_flags "-g -O2"
dd1d2c
%ifarch s390 s390x
dd1d2c
%global optimize_flags "-g -O1"
dd1d2c
%endif
dd1d2c
%ifarch armv7hl
dd1d2c
# ARMv7 need that (rhbz#1426850)
dd1d2c
%global optimize_flags "-g -O2 -fno-schedule-insns"
dd1d2c
%endif
dd1d2c
%ifarch ppc64le aarch64
dd1d2c
%global optimize_flags "-g -O2"
dd1d2c
%endif
dd1d2c
%if %{optimize_flags} != "none"
dd1d2c
echo 'ac_add_options --enable-optimize=%{?optimize_flags}' >> .mozconfig
dd1d2c
%else
dd1d2c
echo 'ac_add_options --enable-optimize' >> .mozconfig
dd1d2c
%endif
dd1d2c
echo "ac_add_options --disable-debug" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
# Second arches fail to start with jemalloc enabled
dd1d2c
%ifnarch %{ix86} x86_64
dd1d2c
echo "ac_add_options --disable-jemalloc" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%ifnarch %{ix86} x86_64
dd1d2c
echo "ac_add_options --disable-webrtc" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if !%{enable_mozilla_crashreporter}
dd1d2c
echo "ac_add_options --disable-crashreporter" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?run_tests}
dd1d2c
echo "ac_add_options --enable-tests" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if !%{?system_jpeg}
dd1d2c
echo "ac_add_options --without-system-jpeg" >> .mozconfig
dd1d2c
%else
dd1d2c
echo "ac_add_options --with-system-jpeg" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?system_libvpx}
dd1d2c
echo "ac_add_options --with-system-libvpx" >> .mozconfig
dd1d2c
%else
dd1d2c
echo "ac_add_options --without-system-libvpx" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?system_libicu}
dd1d2c
echo "ac_add_options --with-system-icu" >> .mozconfig
dd1d2c
%else
dd1d2c
echo "ac_add_options --without-system-icu" >> .mozconfig
dd1d2c
%endif
dd1d2c
%ifarch s390 s390x
dd1d2c
echo "ac_add_options --disable-jit" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%ifnarch %{ix86}
dd1d2c
%if !0%{?debug_build}
dd1d2c
echo "ac_add_options --disable-debug-symbols" >> .mozconfig
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig
dd1d2c
dd1d2c
# Remove executable bit to make brp-mangle-shebangs happy.
dd1d2c
chmod -x third_party/rust/itertools/src/lib.rs
dd1d2c
chmod a-x third_party/rust/gfx-backend-vulkan/src/*.rs
dd1d2c
chmod a-x third_party/rust/gfx-hal/src/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/ext/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/khr/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/mvk/*.rs
dd1d2c
chmod a-x third_party/rust/ash/src/extensions/nv/*.rs
dd1d2c
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%build
dd1d2c
ulimit -a
dd1d2c
free
dd1d2c
#set -e
dd1d2c
# Hack for missing shell when building in brew on RHEL6
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
export SHELL=/bin/sh
dd1d2c
%endif
dd1d2c
dd1d2c
%if ! 0%{?avoid_bundled_rebuild}
dd1d2c
    rm -rf %{_buildrootdir}/*
dd1d2c
%endif
dd1d2c
export PATH="%{_buildrootdir}/bin:$PATH"
dd1d2c
dd1d2c
function install_rpms_to_current_dir() {
dd1d2c
    PACKAGE_RPM=$(eval echo $1)
dd1d2c
    PACKAGE_DIR=%{_rpmdir}
dd1d2c
dd1d2c
    if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
dd1d2c
        # Hack for tps tests
dd1d2c
        ARCH_STR=%{_arch}
dd1d2c
        %ifarch i386 i686
dd1d2c
            ARCH_STR="i?86"
dd1d2c
        %endif
dd1d2c
        %if 0%{?rhel} > 6
dd1d2c
          PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
dd1d2c
        %endif
dd1d2c
     fi
dd1d2c
dd1d2c
     for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM)
dd1d2c
     do
dd1d2c
         echo "$package"
dd1d2c
         rpm2cpio "$package" | cpio -idu
dd1d2c
     done
dd1d2c
}
dd1d2c
dd1d2c
function build_bundled_package() {
dd1d2c
  PACKAGE_RPM=$1
dd1d2c
  PACKAGE_FILES=$2
dd1d2c
  PACKAGE_SOURCE=$3
dd1d2c
  PACKAGE_BUILD_OPTIONS=$4
dd1d2c
  export PACKAGE_DIR="%{_topdir}/RPMS"
dd1d2c
dd1d2c
  PACKAGE_ALREADY_BUILD=0
dd1d2c
  %if %{?avoid_bundled_rebuild}
dd1d2c
    if ls $PACKAGE_DIR/$PACKAGE_RPM; then
dd1d2c
      PACKAGE_ALREADY_BUILD=1
dd1d2c
    fi
dd1d2c
    if ls $PACKAGE_DIR/%{_arch}/$PACKAGE_RPM; then
dd1d2c
      PACKAGE_ALREADY_BUILD=1
dd1d2c
    fi
dd1d2c
  %endif
dd1d2c
  if [ $PACKAGE_ALREADY_BUILD == 0 ]; then
dd1d2c
    echo "Rebuilding $PACKAGE_RPM from $PACKAGE_SOURCE"; echo "==============================="
dd1d2c
    rpmbuild --nodeps $PACKAGE_BUILD_OPTIONS --rebuild $PACKAGE_SOURCE
dd1d2c
    cat /var/tmp/rpm-tmp*
dd1d2c
  fi
dd1d2c
dd1d2c
  find $PACKAGE_DIR
dd1d2c
  if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
dd1d2c
    # Hack for tps tests
dd1d2c
    ARCH_STR=%{_arch}
dd1d2c
    %ifarch i386 i686
dd1d2c
    ARCH_STR="i?86"
dd1d2c
    %endif
dd1d2c
    %if 0%{?rhel} > 6
dd1d2c
      export PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
dd1d2c
    %endif
dd1d2c
  fi
dd1d2c
  pushd $PACKAGE_DIR
dd1d2c
dd1d2c
  echo "Installing $PACKAGE_DIR/$PACKAGE_RPM"; echo "==============================="
dd1d2c
  pwd
dd1d2c
  PACKAGE_LIST=$(echo $PACKAGE_DIR/$PACKAGE_RPM | tr " " "\n")
dd1d2c
  for PACKAGE in $PACKAGE_LIST
dd1d2c
  do
dd1d2c
      rpm2cpio $PACKAGE | cpio -iduv
dd1d2c
  done
dd1d2c
dd1d2c
  PATH=$PACKAGE_DIR/usr/bin:$PATH
dd1d2c
  export PATH
dd1d2c
  LD_LIBRARY_PATH=$PACKAGE_DIR/usr/%{_lib}:$LD_LIBRARY_PATH
dd1d2c
  export LD_LIBRARY_PATH
dd1d2c
dd1d2c
  # Clean rpms to avoid including them to package
dd1d2c
  %if ! 0%{?avoid_bundled_rebuild}
dd1d2c
    rm -f $PACKAGE_FILES
dd1d2c
  %endif
dd1d2c
dd1d2c
  popd
dd1d2c
}
dd1d2c
dd1d2c
# Build and install local yasm if needed
dd1d2c
# ======================================
dd1d2c
%if 0%{?use_bundled_yasm}
dd1d2c
  build_bundled_package 'yasm-1*.rpm' 'yasm-*.rpm' '%{SOURCE301}'
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
   rpm -ivh %{SOURCE402}
dd1d2c
   #rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' --without=tests -ba %{_specdir}/nspr.spec
dd1d2c
   rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/nspr.spec
dd1d2c
   pushd %{_buildrootdir}
dd1d2c
   install_rpms_to_current_dir nspr-4*.rpm
dd1d2c
   install_rpms_to_current_dir nspr-devel*.rpm
dd1d2c
   popd
dd1d2c
   echo "Setting nspr flags"
dd1d2c
   # nss-setup-flags-env.inc
dd1d2c
   sed -i 's@%{gtk3_install_path}@%{_buildrootdir}%{gtk3_install_path}@g' %{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig/nspr*.pc
dd1d2c
dd1d2c
   export LDFLAGS="-L%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS"
dd1d2c
   export LDFLAGS="-Wl,-rpath,%{gtk3_install_path}/%{_lib} $LDFLAGS"
dd1d2c
   export LDFLAGS="-Wl,-rpath-link,%{_buildrootdir}%{gtk3_install_path}/%{_lib} $LDFLAGS"
dd1d2c
   export PKG_CONFIG_PATH=%{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig
dd1d2c
   export PATH="{_buildrootdir}%{gtk3_install_path}/bin:$PATH"
dd1d2c
dd1d2c
   export PATH=%{_buildrootdir}/%{gtk3_install_path}/bin:$PATH
dd1d2c
   echo $PKG_CONFIG_PATH
dd1d2c
dd1d2c
   rpm -ivh %{SOURCE403}
dd1d2c
   rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/nss.spec
dd1d2c
   pushd %{_buildrootdir}
dd1d2c
   #cleanup
dd1d2c
   #rm -rf {_buildrootdir}/usr/lib/debug/*
dd1d2c
   #rm -rf {_buildrootdir}/usr/lib/.build-id
dd1d2c
   #install_rpms_to_current_dir nss-%{gtk3_nvr}*.rpm
dd1d2c
   #install_rpms_to_current_dir nss-devel-%{gtk3_nvr}*.rpm
dd1d2c
   install_rpms_to_current_dir nss-3*.rpm
dd1d2c
   install_rpms_to_current_dir nss-devel*.rpm
dd1d2c
   install_rpms_to_current_dir nss-pkcs11-devel*.rpm
dd1d2c
   install_rpms_to_current_dir nss-softokn-3*.rpm
dd1d2c
   install_rpms_to_current_dir nss-softokn-devel*.rpm
dd1d2c
   install_rpms_to_current_dir nss-softokn-freebl-3*.rpm
dd1d2c
   install_rpms_to_current_dir nss-softokn-freebl-devel*.rpm
dd1d2c
   install_rpms_to_current_dir nss-util-3*.rpm
dd1d2c
   install_rpms_to_current_dir nss-util-devel*.rpm
dd1d2c
   popd
dd1d2c
  %filter_provides_in %{gtk3_install_path}/%{_lib}
dd1d2c
  %filter_requires_in %{gtk3_install_path}/%{_lib}
dd1d2c
  %filter_from_requires /libnss3.so.*/d
dd1d2c
  %filter_from_requires /libsmime3.so.*/d
dd1d2c
  %filter_from_requires /libssl3.so.*/d
dd1d2c
  %filter_from_requires /libnssutil3.so.*/d
dd1d2c
  %filter_from_requires /libnspr4.so.*/d
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
  %filter_from_requires /libnss3.so.*/d
dd1d2c
  %filter_from_requires /libsmime3.so.*/d
dd1d2c
  %filter_from_requires /libssl3.so.*/d
dd1d2c
  %filter_from_requires /libnssutil3.so.*/d
dd1d2c
  %filter_from_requires /libnspr4.so.*/d
dd1d2c
  %filter_from_provides /libnss3.so.*/d
dd1d2c
  %filter_from_provides /libsmime3.so.*/d
dd1d2c
  %filter_from_provides /libssl3.so.*/d
dd1d2c
  %filter_from_provides /libnssutil3.so.*/d
dd1d2c
  %filter_from_provides /libnspr4.so.*/d
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_gtk3}
dd1d2c
   %if ! 0%{?avoid_bundled_rebuild}
dd1d2c
    rpm -ivh %{SOURCE200}
dd1d2c
    rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/gtk3-private.spec
dd1d2c
   %endif
dd1d2c
   pushd %{_buildrootdir}
dd1d2c
   install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm
dd1d2c
   install_rpms_to_current_dir gtk3-private-devel-%{gtk3_nvr}*.rpm
dd1d2c
   install_rpms_to_current_dir gtk3-private-rpm-scripts-%{gtk3_nvr}*.rpm
dd1d2c
   popd
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_gtk3}
dd1d2c
# gtk3-private-3.22.26.el6-1-requires-provides-filter.inc
dd1d2c
%include_file %{SOURCE206}
dd1d2c
%endif
dd1d2c
%if 0%{use_bundled_ffi}
dd1d2c
  # Install libraries to the predefined location to later add them to the Firefox libraries
dd1d2c
  rpm -ivh %{SOURCE303}
dd1d2c
  rpmbuild --nodeps --define '_prefix %{gtk3_install_path}' -ba %{_specdir}/libffi.spec
dd1d2c
  pushd %{_buildrootdir}
dd1d2c
  install_rpms_to_current_dir 'libffi*.rpm'
dd1d2c
  popd
dd1d2c
  %filter_from_requires /libffi.so.6/d
dd1d2c
%endif
dd1d2c
%filter_setup
dd1d2c
dd1d2c
# If needed build the bundled python 2.7 and 3.6 and put it in the PATH
dd1d2c
%if 0%{?use_bundled_python_3}
dd1d2c
    pushd %{_builddir}/python3/Python-%{bundled_python_version_3}
dd1d2c
    ./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib" || cat config.log
dd1d2c
    make %{?_smp_mflags} install V=1 -j1
dd1d2c
    cp Tools/scripts/pathfix.py %{_buildrootdir}/bin
dd1d2c
    popd
dd1d2c
%endif
dd1d2c
%if 0%{?use_bundled_python_2}
dd1d2c
    pushd %{_builddir}/python2/Python-%{bundled_python_version_2}
dd1d2c
    ./configure --prefix="%{_buildrootdir}" --exec-prefix="%{_buildrootdir}" --libdir="%{_buildrootdir}/lib" || cat config.log
dd1d2c
    make %{?_smp_mflags} install V=1
dd1d2c
    popd    
dd1d2c
%endif
dd1d2c
dd1d2c
function replace_prefix() {
dd1d2c
  FILE_NAME=$1
dd1d2c
  PKG_CONFIG_PREFIX=$2
dd1d2c
dd1d2c
  cat $FILE_NAME | tail -n +2 > tmp.txt
dd1d2c
  echo "$PKG_CONFIG_PREFIX" > $FILE_NAME
dd1d2c
  cat tmp.txt >> $FILE_NAME
dd1d2c
  rm -rf tmp.txt
dd1d2c
}
dd1d2c
dd1d2c
# Build and install local openssl if needed
dd1d2c
# =========================================
dd1d2c
%if 0%{?use_bundled_openssl}
dd1d2c
  rpm -ivh %{SOURCE305}
dd1d2c
  rpmbuild --nodeps -ba %{_specdir}/openssl.spec
dd1d2c
  pushd %{_buildrootdir}
dd1d2c
  install_rpms_to_current_dir openssl-1.0.2k*.rpm
dd1d2c
  install_rpms_to_current_dir openssl-libs-1.0.2k*.rpm
dd1d2c
  install_rpms_to_current_dir openssl-devel-1.0.2k*.rpm
dd1d2c
  install_rpms_to_current_dir openssl-static-1.0.2k*.rpm
dd1d2c
  # openssl is installed to %{_buildrootdir}/usr/lib(64)/...
dd1d2c
  export PKG_CONFIG_PATH=%{_buildrootdir}/%{_libdir}/pkgconfig/:$PKG_CONFIG_PATH
dd1d2c
  replace_prefix %{_buildrootdir}/%{_libdir}/pkgconfig/libcrypto.pc prefix=%{_buildrootdir}/usr
dd1d2c
  replace_prefix %{_buildrootdir}/%{_libdir}/pkgconfig/libssl.pc prefix=%{_buildrootdir}/usr
dd1d2c
  replace_prefix %{_buildrootdir}/%{_libdir}/pkgconfig/openssl.pc prefix=%{_buildrootdir}/usr
dd1d2c
  cat  %{_buildrootdir}/%{_libdir}/pkgconfig/libcrypto.pc
dd1d2c
  cat  %{_buildrootdir}/%{_libdir}/pkgconfig/libssl.pc
dd1d2c
  cat  %{_buildrootdir}/%{_libdir}/pkgconfig/openssl.pc
dd1d2c
  pushd %{_rpmdir}
dd1d2c
  rm -f openssl-*.rpm
dd1d2c
  popd
dd1d2c
  popd
dd1d2c
%endif
dd1d2c
dd1d2c
# We need to disable exit on error temporarily for the following scripts:
dd1d2c
set +e
dd1d2c
%if 0%{?use_dts}
dd1d2c
source scl_source enable devtoolset-%{dts_version}
dd1d2c
%endif
dd1d2c
%if 0%{?use_rustts}
dd1d2c
source scl_source enable rust-toolset-%{rust_toolset_version}
dd1d2c
%endif
dd1d2c
dd1d2c
env
dd1d2c
which gcc
dd1d2c
which c++
dd1d2c
which g++
dd1d2c
which ld
dd1d2c
# Build and install local node if needed
dd1d2c
# ======================================
dd1d2c
%if %{use_bundled_nodejs}
dd1d2c
  build_bundled_package 'nodejs-10*.rpm' 'nodejs-*.rpm npm-*.rpm' %{SOURCE304} "--with bootstrap"
dd1d2c
  export MOZ_NODEJS=$PACKAGE_DIR/usr/bin/node
dd1d2c
%else
dd1d2c
  export MOZ_NODEJS=/usr/bin/node
dd1d2c
%endif
dd1d2c
dd1d2c
mkdir -p my_rust_vendor
dd1d2c
cd my_rust_vendor
dd1d2c
%{__tar} xf %{SOURCE2}
dd1d2c
cd -
dd1d2c
mkdir -p .cargo
dd1d2c
cat > .cargo/config <
dd1d2c
[source.crates-io]
dd1d2c
replace-with = "vendored-sources"
dd1d2c
dd1d2c
[source.vendored-sources]
dd1d2c
directory = "`pwd`/my_rust_vendor"
dd1d2c
EOL
dd1d2c
dd1d2c
export CARGO_HOME=.cargo
dd1d2c
cargo install cbindgen
dd1d2c
export PATH=`pwd`/.cargo/bin:$PATH
dd1d2c
export CBINDGEN=`pwd`/.cargo/bin/cbindgen
dd1d2c
dd1d2c
dd1d2c
%if %{?system_sqlite}
dd1d2c
# Do not proceed with build if the sqlite require would be broken:
dd1d2c
# make sure the minimum requirement is non-empty, ...
dd1d2c
sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1
dd1d2c
# ... and that major number of the computed build-time version matches:
dd1d2c
case "%{sqlite_build_version}" in
dd1d2c
  "$sqlite_version"*) ;;
dd1d2c
  *) exit 1 ;;
dd1d2c
esac
dd1d2c
%endif
dd1d2c
dd1d2c
# debug missing sqlite3 python module
dd1d2c
./mach python -c "import sys;print(sys.path)"
dd1d2c
dd1d2c
%if 0%{?big_endian}
dd1d2c
  %if 0%{?flatpak}
dd1d2c
echo "Generate big endian version of config/external/icu/data/icud58l.dat"
dd1d2c
icupkg -tb config/external/icu/data/icudt67l.dat config/external/icu/data/icudt67b.dat
dd1d2c
ls -l config/external/icu/data
dd1d2c
rm -f config/external/icu/data/icudt*l.dat
dd1d2c
  %else
dd1d2c
echo "Generate big endian version of config/external/icu/data/icud64l.dat"
dd1d2c
 ./mach python intl/icu_sources_data.py .
dd1d2c
 rm -f config/external/icu/data/icudt*l.dat
dd1d2c
# mv config/external/icu/data/icudt64l.dat config/external/icu/data/icudt64b.dat
dd1d2c
 ls -l config/external/icu/data
dd1d2c
 cat /tmp/icu-make*
dd1d2c
  %endif
dd1d2c
%endif
dd1d2c
dd1d2c
mkdir %{_buildrootdir}/bin || :
dd1d2c
cp %{SOURCE28} %{_buildrootdir}/bin || :
dd1d2c
chmod +x %{_buildrootdir}/bin/node-stdout-nonblocking-wrapper
dd1d2c
dd1d2c
# Update the various config.guess to upstream release for aarch64 support
dd1d2c
find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
dd1d2c
dd1d2c
# -fpermissive is needed to build with gcc 4.6+ which has become stricter
dd1d2c
#
dd1d2c
# Mozilla builds with -Wall with exception of a few warnings which show up
dd1d2c
# everywhere in the code; so, don't override that.
dd1d2c
#
dd1d2c
# Disable C++ exceptions since Mozilla code is not exception-safe
dd1d2c
#
dd1d2c
MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//')
dd1d2c
#rhbz#1037063
dd1d2c
# -Werror=format-security causes build failures when -Wno-format is explicitly given
dd1d2c
# for some sources
dd1d2c
# Explicitly force the hardening flags for Firefox so it passes the checksec test;
dd1d2c
# See also https://fedoraproject.org/wiki/Changes/Harden_All_Packages
dd1d2c
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
dd1d2c
%if 0%{?fedora} > 23
dd1d2c
# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045)
dd1d2c
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks"
dd1d2c
%endif
dd1d2c
# Use hardened build?
dd1d2c
%if %{?hardened_build}
dd1d2c
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
dd1d2c
%endif
dd1d2c
%if %{?debug_build}
dd1d2c
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
dd1d2c
%endif
dd1d2c
%ifarch s390
dd1d2c
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
dd1d2c
# If MOZ_DEBUG_FLAGS is empty, firefox's build will default it to "-g" which
dd1d2c
# overrides the -g1 from line above and breaks building on s390
dd1d2c
# (OOM when linking, rhbz#1238225)
dd1d2c
export MOZ_DEBUG_FLAGS=" "
dd1d2c
%endif
dd1d2c
dd1d2c
# We don't wantfirefox to use CK_GCM_PARAMS_V3 in nss
dd1d2c
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -DNSS_PKCS11_3_0_STRICT"
dd1d2c
dd1d2c
%ifarch s390 %{arm} ppc aarch64 i686 x86_64 s390x
dd1d2c
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
dd1d2c
%endif
dd1d2c
%ifarch %{arm} i686
dd1d2c
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--strip-debug"
dd1d2c
echo "ac_add_options --enable-linker=gold" >> .mozconfig
dd1d2c
%endif
dd1d2c
dd1d2c
%ifarch %{arm} i686
dd1d2c
export RUSTFLAGS="-Cdebuginfo=0"
dd1d2c
%endif
dd1d2c
export CFLAGS=$MOZ_OPT_FLAGS
dd1d2c
export CXXFLAGS=$MOZ_OPT_FLAGS
dd1d2c
export LDFLAGS=$MOZ_LINK_FLAGS
dd1d2c
dd1d2c
export PREFIX='%{_prefix}'
dd1d2c
export LIBDIR='%{_libdir}'
dd1d2c
export CC=gcc
dd1d2c
export CXX=g++
dd1d2c
dd1d2c
MOZ_SMP_FLAGS=-j1
dd1d2c
# More than two build tasks can lead to OOM gcc crash.
dd1d2c
%if 0%{?rhel} < 8
dd1d2c
[ -z "$RPM_BUILD_NCPUS" ] && \
dd1d2c
     RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
dd1d2c
[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
dd1d2c
%else
dd1d2c
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
dd1d2c
[ -z "$RPM_BUILD_NCPUS" ] && \
dd1d2c
     RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
dd1d2c
[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
dd1d2c
[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j3
dd1d2c
[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j3
dd1d2c
%endif
dd1d2c
%endif
dd1d2c
dd1d2c
cat /proc/meminfo
dd1d2c
dd1d2c
# Free memory in kB
dd1d2c
if grep -q MemAvailable /proc/meminfo; then
dd1d2c
    MEM_AVAILABLE=$(grep MemAvailable /proc/meminfo | awk '{ print $2 }')
dd1d2c
else
dd1d2c
    MEM_AVAILABLE=$(grep MemFree /proc/meminfo | awk '{ print $2 }')
dd1d2c
fi
dd1d2c
dd1d2c
# Usually the compiler processes can take 2 GB of memory at peaks
dd1d2c
TASK_SIZE=4000000
dd1d2c
MEM_CONSTRAINED_JOBS=$(( MEM_AVAILABLE / TASK_SIZE ))
dd1d2c
dd1d2c
if [ $MEM_CONSTRAINED_JOBS -le 0 ]; then
dd1d2c
  MEM_CONSTRAINED_JOBS=1
dd1d2c
fi
dd1d2c
dd1d2c
CPU_AVAILABLE=$(/usr/bin/getconf _NPROCESSORS_ONLN)
dd1d2c
# Pick the minimum from available CPUs or memory constrained number of jobs
dd1d2c
MOZ_SMP_FLAGS=-j$([ "$CPU_AVAILABLE" -le "$MEM_CONSTRAINED_JOBS" ] && echo "$CPU_AVAILABLE" || echo "$MEM_CONSTRAINED_JOBS")
dd1d2c
dd1d2c
%if 0%{?bundle_gtk3}
dd1d2c
# gtk3-private-setup-flags-env.inc
dd1d2c
%include_file %{SOURCE205}
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
echo "Setting nss flags"
dd1d2c
# nss-setup-flags-env.inc
dd1d2c
%include_file %{SOURCE401}
dd1d2c
export PATH=%{_buildrootdir}/%{gtk3_install_path}/bin:$PATH
dd1d2c
echo $PKG_CONFIG_PATH
dd1d2c
%endif
dd1d2c
dd1d2c
export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
dd1d2c
export MOZ_SERVICES_SYNC="1"
dd1d2c
# we need to strip the sources on i686 because to we don't use rpm to generate debugsymbols because of oom
dd1d2c
%ifnarch i686 i386
dd1d2c
export STRIP=/bin/true
dd1d2c
%endif
dd1d2c
which node
dd1d2c
echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"'
dd1d2c
env
dd1d2c
ls %{_buildrootdir}
dd1d2c
dd1d2c
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
export POLICY_FILE="rhel6.config"
dd1d2c
export POLICT_PATH="/etc/pki/nss-legacy"
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?use_llvmts}
dd1d2c
scl enable llvm-toolset-%{llvm_version} './mach build -v'
dd1d2c
%else
dd1d2c
./mach build -v
dd1d2c
%endif
dd1d2c
dd1d2c
# create debuginfo for crash-stats.mozilla.com
dd1d2c
%if %{enable_mozilla_crashreporter}
dd1d2c
#cd %{moz_objdir}
dd1d2c
make -C objdir buildsymbols
dd1d2c
%endif
dd1d2c
dd1d2c
%if %{?run_tests}
dd1d2c
%if %{?system_nss}
dd1d2c
ln -s /usr/bin/certutil objdir/dist/bin/certutil
dd1d2c
ln -s /usr/bin/pk12util objdir/dist/bin/pk12util
dd1d2c
dd1d2c
%endif
dd1d2c
mkdir test_results
dd1d2c
./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true
dd1d2c
./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true
dd1d2c
./mach --log-no-times cppunittest &> test_results/cppunittest || true
dd1d2c
xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true
dd1d2c
./mach --log-no-times gtest &> test_results/gtest || true
dd1d2c
xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true
dd1d2c
# not working right now ./mach marionette-test &> test_results/marionette-test || true
dd1d2c
xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true
dd1d2c
xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true
dd1d2c
xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true
dd1d2c
xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true
dd1d2c
xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true
dd1d2c
xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true
dd1d2c
xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true
dd1d2c
xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true
dd1d2c
./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true
dd1d2c
xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true
dd1d2c
%if %{?system_nss}
dd1d2c
rm -f  objdir/dist/bin/certutil
dd1d2c
rm -f  objdir/dist/bin/pk12util
dd1d2c
%endif
dd1d2c
dd1d2c
%endif
dd1d2c
#---------------------------------------------------------------------
dd1d2c
dd1d2c
%install
dd1d2c
%if 0%{?rhel} == 6
dd1d2c
export SHELL=/bin/sh
dd1d2c
%endif
dd1d2c
dd1d2c
function install_rpms_to_current_dir() {
dd1d2c
    PACKAGE_RPM=$(eval echo $1)
dd1d2c
    PACKAGE_DIR=%{_rpmdir}
dd1d2c
dd1d2c
    if [ ! -f $PACKAGE_DIR/$PACKAGE_RPM ]; then
dd1d2c
        # Hack for tps tests
dd1d2c
        ARCH_STR=%{_arch}
dd1d2c
        %ifarch i386 i686
dd1d2c
            ARCH_STR="i?86"
dd1d2c
        %endif
dd1d2c
        %if 0%{?rhel} > 6
dd1d2c
          PACKAGE_DIR="$PACKAGE_DIR/$ARCH_STR"
dd1d2c
        %endif
dd1d2c
     fi
dd1d2c
dd1d2c
     for package in $(ls $PACKAGE_DIR/$PACKAGE_RPM)
dd1d2c
     do
dd1d2c
         echo "$package"
dd1d2c
         rpm2cpio "$package" | cpio -idu
dd1d2c
     done
dd1d2c
}
dd1d2c
dd1d2c
%if 0%{?bundle_gtk3}
dd1d2c
pushd %{buildroot}
dd1d2c
# Install gtk3-private again to the buildroot, but without devel subpackage
dd1d2c
install_rpms_to_current_dir gtk3-private-%{gtk3_nvr}*.rpm
dd1d2c
install_rpms_to_current_dir gtk3-private-rpm-scripts-%{gtk3_nvr}*.rpm
dd1d2c
popd
dd1d2c
%endif
dd1d2c
dd1d2c
%if 0%{?bundle_nss}
dd1d2c
  pushd %{buildroot}
dd1d2c
  #install_rpms_to_current_dir nss-*.rpm
dd1d2c
  install_rpms_to_current_dir nspr-4*.rpm
dd1d2c
  install_rpms_to_current_dir nss-3*.rpm
dd1d2c
  install_rpms_to_current_dir nss-softokn-3*.rpm
dd1d2c
  install_rpms_to_current_dir nss-softokn-freebl-3*.rpm
dd1d2c
  install_rpms_to_current_dir nss-util-3*.rpm
dd1d2c
 
dd1d2c
  # cleanup unecessary nss files
dd1d2c
  #rm -rf %{_buildrootdir}/%{gtk3_install_path}/bin
dd1d2c
  #rm -rf %{_buildrootdir}/%{gtk3_install_path}/include
dd1d2c
  rm -rf %{buildroot}/%{gtk3_install_path}/lib/dracut
dd1d2c
  rm -rf %{buildroot}/%{gtk3_install_path}/%{_lib}/nss
dd1d2c
  #rm -rf %{_buildrootdir}/%{gtk3_install_path}/%{_lib}/pkgconfig
dd1d2c
  rm -rf %{buildroot}/%{gtk3_install_path}/%{_lib}/share
dd1d2c
  rm -rf %{buildroot}/%{gtk3_install_path}/share
dd1d2c
  rm -rf %{buildroot}/etc/pki
dd1d2c
  rm -rf %{buildroot}/usr/lib/.build-id
dd1d2c
  rm -rf %{buildroot}/etc/crypto-policies
dd1d2c
  popd
dd1d2c
%endif
dd1d2c
dd1d2c
# Install bundled libffi
dd1d2c
%if %{use_bundled_ffi}
dd1d2c
  pushd %{buildroot}
dd1d2c
  install_rpms_to_current_dir libffi-3*.rpm
dd1d2c
  popd
dd1d2c
%endif
dd1d2c
dd1d2c
# set up our default bookmarks
dd1d2c
%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/chrome/en-US/locale/browser/bookmarks.html
dd1d2c
dd1d2c
# Make sure locale works for langpacks
dd1d2c
%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF
dd1d2c
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
dd1d2c
EOF
dd1d2c
dd1d2c
DESTDIR=%{buildroot} make -C objdir install
dd1d2c
dd1d2c
%{__mkdir_p} %{buildroot}{%{_libdir},%{_bindir},%{_datadir}/applications}
dd1d2c
dd1d2c
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE20}
dd1d2c
dd1d2c
# set up the firefox start script
dd1d2c
%{__rm} -rf %{buildroot}%{_bindir}/firefox
dd1d2c
%{__cat} %{SOURCE21} > %{buildroot}%{_bindir}/firefox
dd1d2c
sed -i -e 's|%PREFIX%|%{_prefix}|' %{buildroot}%{_bindir}/firefox
dd1d2c
%if 0%{?bundle_gtk3}
dd1d2c
sed -i -e 's|%RHEL_ENV_VARS%|export XDG_DATA_DIRS="$MOZ_LIB_DIR/firefox/bundled/share:/usr/share:$XDG_DATA_DIRS"\nexport FONTCONFIG_FILE="$MOZ_LIB_DIR/firefox/bundled/etc/fonts/fonts.conf"|' %{buildroot}%{_bindir}/firefox
dd1d2c
%else
dd1d2c
sed -i -e 's|%RHEL_ENV_VARS%||' %{buildroot}%{_bindir}/firefox
dd1d2c
%endif
dd1d2c
dd1d2c
%{__chmod} 755 %{buildroot}%{_bindir}/firefox
dd1d2c
dd1d2c
%{__install} -p -D -m 644 %{SOURCE23} %{buildroot}%{_mandir}/man1/firefox.1
dd1d2c
dd1d2c
%{__rm} -f %{buildroot}/%{mozappdir}/firefox-config
dd1d2c
%{__rm} -f %{buildroot}/%{mozappdir}/update-settings.ini
dd1d2c
dd1d2c
for s in 16 22 24 32 48 256; do
dd1d2c
    %{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps
dd1d2c
    %{__cp} -p browser/branding/official/default${s}.png \
dd1d2c
               %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png
dd1d2c
done
dd1d2c
dd1d2c
# Install hight contrast icon
dd1d2c
%{__mkdir_p} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
dd1d2c
%{__cp} -p %{SOURCE25} \
dd1d2c
           %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
dd1d2c
dd1d2c
# Register as an application to be visible in the software center
dd1d2c
#
dd1d2c
# NOTE: It would be *awesome* if this file was maintained by the upstream
dd1d2c
# project, translated and installed into the right place during `make install`.
dd1d2c
#
dd1d2c
# See http://www.freedesktop.org/software/appstream/docs/ for more details.
dd1d2c
#
dd1d2c
%{__mkdir_p} %{buildroot}%{_datadir}/appdata
dd1d2c
cat > %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml <
dd1d2c
dd1d2c
dd1d2c
dd1d2c
BugReportURL: https://bugzilla.mozilla.org/show_bug.cgi?id=1071061
dd1d2c
SentUpstream: 2014-09-22
dd1d2c
-->
dd1d2c
<application>
dd1d2c
  <id type="desktop">firefox.desktop</id>
dd1d2c
  <metadata_license>CC0-1.0</metadata_license>
dd1d2c
  <description>
dd1d2c
    

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

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