firefox/firefox.spec

1160 lines
37 KiB
RPMSpec

# Use system nspr/nss?
%define system_nss 1
# Use system sqlite?
%if 0%{?fedora} < 20
%define system_sqlite 0
%define system_ffi 0
%else
%define system_sqlite 1
%define system_ffi 1
%endif
# Build for Gtk3?
%if 0%{?fedora} <= 21
%define toolkit_gtk3 0
%else
%define toolkit_gtk3 1
%endif
# Use system cairo?
%define system_cairo 0
# Gtk3 needs system cairo
%if %{toolkit_gtk3}
%define system_cairo 1
%endif
%define enable_gstreamer 1
# Separated plugins are supported on x86(64) only
%ifarch %{ix86} x86_64
%define separated_plugins 1
%else
%define separated_plugins 0
%endif
%ifarch %{ix86} x86_64
%define run_tests 0
%else
%define run_tests 0
%endif
# Build as a debug package?
%define debug_build 0
%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
%define firefox_app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
# Minimal required versions
%global cairo_version 1.13.1
%global freetype_version 2.1.9
%global libnotify_version 0.7.0
%global libvpx_version 1.3.0
%if %{?system_nss}
%global nspr_version 4.10.6
%global nspr_build_version %(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
%global nss_version 3.16.2
%global nss_build_version %(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
%endif
%if %{?system_sqlite}
%global sqlite_version 3.8.4.2
# The actual sqlite version (see #480989):
%global sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo 65536)
%endif
# gecko_dir_ver should be set to the version in our directory names
# alpha_version should be set to the alpha number if using an alpha, 0 otherwise
# beta_version should be set to the beta number if using a beta, 0 otherwise
# rc_version should be set to the RC number if using an RC, 0 otherwise
%global gecko_dir_ver %{version}
%global alpha_version 0
%global beta_version 0
%global rc_version 0
%global mozappdir %{_libdir}/%{name}
%global mozappdirdev %{_libdir}/%{name}-devel-%{version}
%global langpackdir %{mozappdir}/langpacks
%global tarballdir mozilla-release
%define official_branding 1
%define build_langpacks 1
%ifarch %{ix86} x86_64
%define enable_mozilla_crashreporter 1
%else
%define enable_mozilla_crashreporter 0
%endif
%if %{alpha_version} > 0
%global pre_version a%{alpha_version}
%global tarballdir mozilla-beta
%endif
%if %{beta_version} > 0
%global pre_version b%{beta_version}
%global pre_name beta%{beta_version}
%global tarballdir mozilla-beta
%endif
%if %{rc_version} > 0
%global pre_version rc%{rc_version}
%global pre_name rc%{rc_version}
%global tarballdir mozilla-release
%endif
Summary: Mozilla Firefox Web browser
Name: firefox
Version: 33.0
Release: 3%{?pre_tag}%{?dist}
URL: http://www.mozilla.org/projects/firefox/
License: MPLv1.1 or GPLv2+ or LGPLv2+
Group: Applications/Internet
Source0: ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.bz2
%if %{build_langpacks}
Source1: firefox-langpacks-%{version}%{?pre_version}-20141014.tar.xz
%endif
Source10: firefox-mozconfig
Source11: firefox-mozconfig-branded
Source12: firefox-redhat-default-prefs.js
Source20: firefox.desktop
Source21: firefox.sh.in
Source23: firefox.1
Source24: mozilla-api-key
#Build patches
Patch0: firefox-install-dir.patch
Patch1: firefox-build.patch
Patch3: mozilla-build-arm.patch
Patch4: mozilla-build-arm-webrtc.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=814879#c3
Patch18: xulrunner-24.0-jemalloc-ppc.patch
# workaround linking issue on s390 (JSContext::updateMallocCounter(size_t) not found)
Patch19: xulrunner-24.0-s390-inlines.patch
Patch20: firefox-build-prbool.patch
Patch21: firefox-mozstub-build.patch
# Fedora specific patches
# Unable to install addons from https pages
Patch204: rhbz-966424.patch
Patch215: firefox-enable-addons.patch
Patch216: firefox-duckduckgo.patch
Patch217: firefox-baseline-disable.patch
# Upstream patches
Patch300: mozilla-858919.patch
Patch301: mozilla-858919-2.patch
Patch302: mozilla-858919-3.patch
Patch310: mozilla-1042889.patch
# Gtk3 upstream patches
Patch402: mozilla-gtk3-tab-size.patch
%if %{official_branding}
# Required by Mozilla Corporation
%else
# Not yet approved by Mozillla Corporation
%endif
%if %{?system_nss}
BuildRequires: nspr-devel >= %{nspr_version}
BuildRequires: nss-devel >= %{nss_version}
BuildRequires: nss-static >= %{nss_version}
%endif
%if %{?system_cairo}
BuildRequires: cairo-devel >= %{cairo_version}
%endif
BuildRequires: libpng-devel
BuildRequires: libjpeg-devel
BuildRequires: zip
BuildRequires: bzip2-devel
BuildRequires: zlib-devel
BuildRequires: libIDL-devel
%if %{toolkit_gtk3}
BuildRequires: gtk3-devel
%endif
BuildRequires: gtk2-devel
BuildRequires: krb5-devel
BuildRequires: pango-devel
BuildRequires: freetype-devel >= %{freetype_version}
BuildRequires: libXt-devel
BuildRequires: libXrender-devel
BuildRequires: hunspell-devel
BuildRequires: startup-notification-devel
BuildRequires: alsa-lib-devel
BuildRequires: libnotify-devel >= %{libnotify_version}
BuildRequires: mesa-libGL-devel
BuildRequires: libcurl-devel
BuildRequires: libvpx-devel >= %{libvpx_version}
BuildRequires: autoconf213
BuildRequires: pulseaudio-libs-devel
BuildRequires: libicu-devel
Requires: mozilla-filesystem
%if %{?system_nss}
Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
BuildRequires: desktop-file-utils
BuildRequires: system-bookmarks
%if %{?enable_gstreamer}
BuildRequires: gstreamer1-devel
BuildRequires: gstreamer1-plugins-base-devel
%endif
%if %{?system_sqlite}
BuildRequires: sqlite-devel >= %{sqlite_version}
Requires: sqlite >= %{sqlite_build_version}
%endif
%if %{?system_ffi}
BuildRequires: libffi-devel
%endif
Requires: system-bookmarks
%if %{?run_tests}
BuildRequires: xorg-x11-server-Xvfb
%endif
Obsoletes: mozilla <= 37:1.7.13
Provides: webclient
%description
Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability.
%if %{enable_mozilla_crashreporter}
%global moz_debug_prefix %{_prefix}/lib/debug
%global moz_debug_dir %{moz_debug_prefix}%{mozappdir}
%global uname_m %(uname -m)
%global symbols_file_name %{name}-%{version}.en-US.%{_os}-%{uname_m}.crashreporter-symbols.zip
%global symbols_file_path %{moz_debug_dir}/%{symbols_file_name}
%global _find_debuginfo_opts -p %{symbols_file_path} -o debugcrashreporter.list
%global crashreporter_pkg_name mozilla-crashreporter-%{name}-debuginfo
%package -n %{crashreporter_pkg_name}
Summary: Debugging symbols used by Mozilla's crash reporter servers
Group: Development/Debug
%description -n %{crashreporter_pkg_name}
This package provides debug information for Firefox, for use by
Mozilla's crash reporter servers. If you are trying to locally
debug %{name}, you want to install %{name}-debuginfo instead.
%files -n %{crashreporter_pkg_name} -f debugcrashreporter.list
%defattr(-,root,root)
%endif
%if %{run_tests}
%global testsuite_pkg_name mozilla-%{name}-testresults
%package -n %{testsuite_pkg_name}
Summary: Results of testsuite
Group: Development/Debug
%description -n %{testsuite_pkg_name}
This package contains results of tests executed during build.
%files -n %{testsuite_pkg_name}
/test_results
%defattr(-,root,root)
%endif
#---------------------------------------------------------------------
%prep
%setup -q -c
cd %{tarballdir}
# Build patches, can't change backup suffix from default because during build
# there is a compare of config and js/config directories and .orig suffix is
# ignored during this compare.
%patch0 -p1
%patch1 -p2 -b .build
%ifarch %{arm}
%patch3 -p2 -b .arm
%patch4 -p2 -b .arm
%endif
%patch18 -p2 -b .jemalloc-ppc
%patch19 -p2 -b .s390-inlines
%patch20 -p1 -b .prbool
%patch21 -p2 -b .mozstub
# For branding specific patches.
# Fedora patches
%patch204 -p2 -b .966424
%patch215 -p1 -b .addons
%patch216 -p1 -b .duckduckgo
# disable baseline JIT on i686 (rhbz#1047079)
%ifarch %{ix86}
%patch217 -p2 -b .baseline
%endif
# Upstream patches
%patch300 -p1 -b .858919
%patch301 -p1 -b .858919
%patch302 -p1 -b .858919
%patch310 -p1 -b .1042889
%if %{toolkit_gtk3}
%patch402 -p1 -b .gtk3-tab-size
%endif
%if %{official_branding}
# Required by Mozilla Corporation
%else
# Not yet approved by Mozilla Corporation
%endif
%{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig
%if %{official_branding}
%{__cat} %{SOURCE11} >> .mozconfig
%endif
%{__cp} %{SOURCE24} mozilla-api-key
%if %{toolkit_gtk3}
echo "ac_add_options --enable-default-toolkit=cairo-gtk3" >> .mozconfig
%else
echo "ac_add_options --enable-default-toolkit=cairo-gtk2" >> .mozconfig
%endif
%if %{?system_nss}
echo "ac_add_options --with-system-nspr" >> .mozconfig
echo "ac_add_options --with-system-nss" >> .mozconfig
%else
echo "ac_add_options --without-system-nspr" >> .mozconfig
echo "ac_add_options --without-system-nss" >> .mozconfig
%endif
%if %{?system_sqlite}
echo "ac_add_options --enable-system-sqlite" >> .mozconfig
%else
echo "ac_add_options --disable-system-sqlite" >> .mozconfig
%endif
%if %{?system_cairo}
echo "ac_add_options --enable-system-cairo" >> .mozconfig
%else
echo "ac_add_options --disable-system-cairo" >> .mozconfig
%endif
%if %{?system_ffi}
echo "ac_add_options --enable-system-ffi" >> .mozconfig
%endif
%if %{?enable_gstreamer}
echo "ac_add_options --enable-gstreamer=1.0" >> .mozconfig
%else
echo "ac_add_options --disable-gstreamer" >> .mozconfig
%endif
%if !%{?separated_plugins}
echo "ac_add_options --disable-ipc" >> .mozconfig
%endif
%ifarch %{arm}
echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%if %{?debug_build}
echo "ac_add_options --enable-debug" >> .mozconfig
echo "ac_add_options --disable-optimize" >> .mozconfig
echo "ac_add_options --enable-dtrace" >> .mozconfig
%else
echo "ac_add_options --disable-debug" >> .mozconfig
echo "ac_add_options --enable-optimize" >> .mozconfig
%endif
# s390(x) fails to start with jemalloc enabled
%ifarch s390 s390x
echo "ac_add_options --disable-jemalloc" >> .mozconfig
%endif
%ifarch armv7hl
echo "ac_add_options --with-arch=armv7-a" >> .mozconfig
echo "ac_add_options --with-float-abi=hard" >> .mozconfig
echo "ac_add_options --with-fpu=vfpv3-d16" >> .mozconfig
echo "ac_add_options --disable-elf-hack" >> .mozconfig
%endif
%ifarch armv7hnl
echo "ac_add_options --with-arch=armv7-a" >> .mozconfig
echo "ac_add_options --with-float-abi=hard" >> .mozconfig
echo "ac_add_options --with-fpu=neon" >> .mozconfig
echo "ac_add_options --disable-elf-hack" >> .mozconfig
echo "ac_add_options --disable-ion" >> .mozconfig
echo "ac_add_options --disable-yarr-jit" >> .mozconfig
%endif
%ifarch armv5tel
echo "ac_add_options --with-arch=armv5te" >> .mozconfig
echo "ac_add_options --with-float-abi=soft" >> .mozconfig
echo "ac_add_options --disable-elf-hack" >> .mozconfig
echo "ac_add_options --disable-ion" >> .mozconfig
echo "ac_add_options --disable-yarr-jit" >> .mozconfig
%endif
%ifnarch %{ix86} x86_64
echo "ac_add_options --disable-webrtc" >> .mozconfig
%endif
%if !%{enable_mozilla_crashreporter}
echo "ac_add_options --disable-crashreporter" >> .mozconfig
%endif
%if %{?run_tests}
echo "ac_add_options --enable-tests" >> .mozconfig
%endif
#---------------------------------------------------------------------
%build
%if %{?system_sqlite}
# Do not proceed with build if the sqlite require would be broken:
# make sure the minimum requirement is non-empty, ...
sqlite_version=$(expr "%{sqlite_version}" : '\([0-9]*\.\)[0-9]*\.') || exit 1
# ... and that major number of the computed build-time version matches:
case "%{sqlite_build_version}" in
"$sqlite_version"*) ;;
*) exit 1 ;;
esac
%endif
cd %{tarballdir}
# Update the various config.guess to upstream release for aarch64 support
find ./ -name config.guess -exec cp /usr/lib/rpm/config.guess {} ';'
# -fpermissive is needed to build with gcc 4.6+ which has become stricter
#
# Mozilla builds with -Wall with exception of a few warnings which show up
# everywhere in the code; so, don't override that.
#
# Disable C++ exceptions since Mozilla code is not exception-safe
#
MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-Wall//')
#rhbz#1037063
# -Werror=format-security causes build failures when -Wno-format is explicitly given
# for some sources
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
%if %{?debug_build}
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
%endif
%ifarch s390
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
%endif
%ifarch s390 %{arm} ppc aarch64
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS=$MOZ_OPT_FLAGS
export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}'
export LIBDIR='%{_libdir}'
MOZ_SMP_FLAGS=-j1
# On x86 architectures, Mozilla can build up to 4 jobs at once in parallel,
# however builds tend to fail on other arches when building in parallel.
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
[ -z "$RPM_BUILD_NCPUS" ] && \
RPM_BUILD_NCPUS="`/usr/bin/getconf _NPROCESSORS_ONLN`"
[ "$RPM_BUILD_NCPUS" -ge 2 ] && MOZ_SMP_FLAGS=-j2
[ "$RPM_BUILD_NCPUS" -ge 4 ] && MOZ_SMP_FLAGS=-j4
[ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8
%endif
#export LDFLAGS="-Wl,-rpath,%{mozappdir}"
make -f client.mk build STRIP="/bin/true" MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" MOZ_SERVICES_SYNC="1"
# create debuginfo for crash-stats.mozilla.com
%if %{enable_mozilla_crashreporter}
#cd %{moz_objdir}
make -C objdir buildsymbols
%endif
%if %{?run_tests}
%if %{?system_nss}
ln -s /usr/bin/certutil objdir/dist/bin/certutil
ln -s /usr/bin/pk12util objdir/dist/bin/pk12util
%endif
mkdir test_results
./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey || true
./mach --log-no-times check-spidermonkey &> test_results/check-spidermonkey-2nd-run || true
./mach --log-no-times cppunittest &> test_results/cppunittest || true
xvfb-run ./mach --log-no-times crashtest &> test_results/crashtest || true
./mach --log-no-times gtest &> test_results/gtest || true
xvfb-run ./mach --log-no-times jetpack-test &> test_results/jetpack-test || true
# not working right now ./mach marionette-test &> test_results/marionette-test || true
xvfb-run ./mach --log-no-times mochitest-a11y &> test_results/mochitest-a11y || true
xvfb-run ./mach --log-no-times mochitest-browser &> test_results/mochitest-browser || true
xvfb-run ./mach --log-no-times mochitest-chrome &> test_results/mochitest-chrome || true
xvfb-run ./mach --log-no-times mochitest-devtools &> test_results/mochitest-devtools || true
xvfb-run ./mach --log-no-times mochitest-plain &> test_results/mochitest-plain || true
xvfb-run ./mach --log-no-times reftest &> test_results/reftest || true
xvfb-run ./mach --log-no-times webapprt-test-chrome &> test_results/webapprt-test-chrome || true
xvfb-run ./mach --log-no-times webapprt-test-content &> test_results/webapprt-test-content || true
./mach --log-no-times webidl-parser-test &> test_results/webidl-parser-test || true
xvfb-run ./mach --log-no-times xpcshell-test &> test_results/xpcshell-test || true
%if %{?system_nss}
rm -f objdir/dist/bin/certutil
rm -f objdir/dist/bin/pk12util
%endif
%endif
#---------------------------------------------------------------------
%install
cd %{tarballdir}
# set up our prefs and add it to the package manifest file, so it gets pulled in
# to omni.jar which gets created during make install
%{__cp} %{SOURCE12} objdir/dist/bin/browser/defaults/preferences/all-redhat.js
# This sed call "replaces" firefox.js with all-redhat.js, newline, and itself (&)
# having the net effect of prepending all-redhat.js above firefox.js
#%{__sed} -i -e\
# 's|@BINPATH@/browser/@PREF_DIR@/firefox.js|@BINPATH@/browser/@PREF_DIR@/all-redhat.js\n&|' \
# browser/installer/package-manifest.in
# set up our default bookmarks
%{__cp} -p %{default_bookmarks_file} objdir/dist/bin/browser/defaults/profile/bookmarks.html
# Make sure locale works for langpacks
%{__cat} > objdir/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
EOF
DESTDIR=$RPM_BUILD_ROOT make -C objdir install
%{__mkdir_p} $RPM_BUILD_ROOT{%{_libdir},%{_bindir},%{_datadir}/applications}
%if 0%{?fedora} <= 16
desktop-file-install --vendor mozilla --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE20}
%else
desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE20}
%endif
# set up the firefox start script
%{__rm} -rf $RPM_BUILD_ROOT%{_bindir}/firefox
%{__cat} %{SOURCE21} > $RPM_BUILD_ROOT%{_bindir}/firefox
%{__chmod} 755 $RPM_BUILD_ROOT%{_bindir}/firefox
%{__install} -p -D -m 644 %{SOURCE23} $RPM_BUILD_ROOT%{_mandir}/man1/firefox.1
%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/firefox-config
%{__rm} -f $RPM_BUILD_ROOT/%{mozappdir}/update-settings.ini
for s in 16 22 24 32 48 256; do
%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps
%{__cp} -p browser/branding/official/default${s}.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/firefox.png
done
echo > ../%{name}.lang
%if %{build_langpacks}
# Extract langpacks, make any mods needed, repack the langpack, and install it.
%{__mkdir_p} $RPM_BUILD_ROOT%{langpackdir}
%{__tar} xf %{SOURCE1}
for langpack in `ls firefox-langpacks/*.xpi`; do
language=`basename $langpack .xpi`
extensionID=langpack-$language@firefox.mozilla.org
%{__mkdir_p} $extensionID
unzip -qq $langpack -d $extensionID
find $extensionID -type f | xargs chmod 644
cd $extensionID
zip -qq -r9mX ../${extensionID}.xpi *
cd -
%{__install} -m 644 ${extensionID}.xpi $RPM_BUILD_ROOT%{langpackdir}
language=`echo $language | sed -e 's/-/_/g'`
echo "%%lang($language) %{langpackdir}/${extensionID}.xpi" >> ../%{name}.lang
done
%{__rm} -rf firefox-langpacks
# Install langpack workaround (see #707100, #821169)
function create_default_langpack() {
language_long=$1
language_short=$2
cd $RPM_BUILD_ROOT%{langpackdir}
ln -s langpack-$language_long@firefox.mozilla.org.xpi langpack-$language_short@firefox.mozilla.org.xpi
cd -
echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@firefox.mozilla.org.xpi" >> ../%{name}.lang
}
# Table of fallbacks for each language
# please file a bug at bugzilla.redhat.com if the assignment is incorrect
create_default_langpack "bn-IN" "bn"
create_default_langpack "es-AR" "es"
create_default_langpack "fy-NL" "fy"
create_default_langpack "ga-IE" "ga"
create_default_langpack "gu-IN" "gu"
create_default_langpack "hi-IN" "hi"
create_default_langpack "hy-AM" "hy"
create_default_langpack "nb-NO" "nb"
create_default_langpack "nn-NO" "nn"
create_default_langpack "pa-IN" "pa"
create_default_langpack "pt-PT" "pt"
create_default_langpack "sv-SE" "sv"
create_default_langpack "zh-TW" "zh"
%endif # build_langpacks
# Keep compatibility with the old preference location
# on Fedora 18 and earlier
%if 0%{?fedora} < 19
%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/defaults/preferences
%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults
ln -s %{mozappdir}/defaults/preferences $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences
%else
%{__mkdir_p} $RPM_BUILD_ROOT/%{mozappdir}/browser/defaults/preferences
%endif
# System extensions
%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/mozilla/extensions/%{firefox_app_id}
%{__mkdir_p} $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/%{firefox_app_id}
# Copy over the LICENSE
%{__install} -p -c -m 644 LICENSE $RPM_BUILD_ROOT/%{mozappdir}
# Use the system hunspell dictionaries
%{__rm} -rf ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries
ln -s %{_datadir}/myspell ${RPM_BUILD_ROOT}%{mozappdir}/dictionaries
# Enable crash reporter for Firefox application
%if %{enable_mozilla_crashreporter}
sed -i -e "s/\[Crash Reporter\]/[Crash Reporter]\nEnabled=1/" $RPM_BUILD_ROOT/%{mozappdir}/application.ini
# Add debuginfo for crash-stats.mozilla.com
%{__mkdir_p} $RPM_BUILD_ROOT/%{moz_debug_dir}
%{__cp} objdir/dist/%{symbols_file_name} $RPM_BUILD_ROOT/%{moz_debug_dir}
%endif
%if %{run_tests}
# Add debuginfo for crash-stats.mozilla.com
%{__mkdir_p} $RPM_BUILD_ROOT/test_results
%{__cp} test_results/* $RPM_BUILD_ROOT/test_results
%endif
# Default
%{__cp} %{SOURCE12} ${RPM_BUILD_ROOT}%{mozappdir}/browser/defaults/preferences
# Remove copied libraries to speed up build
rm -f ${RPM_BUILD_ROOT}%{mozappdirdev}/sdk/lib/libmozjs.so
rm -f ${RPM_BUILD_ROOT}%{mozappdirdev}/sdk/lib/libmozalloc.so
rm -f ${RPM_BUILD_ROOT}%{mozappdirdev}/sdk/lib/libxul.so
#---------------------------------------------------------------------
# Moves defaults/preferences to browser/defaults/preferences in Fedora 19+
%if 0%{?fedora} >= 19
%pretrans -p <lua>
require 'posix'
require 'os'
if (posix.stat("%{mozappdir}/browser/defaults/preferences", "type") == "link") then
posix.unlink("%{mozappdir}/browser/defaults/preferences")
posix.mkdir("%{mozappdir}/browser/defaults/preferences")
if (posix.stat("%{mozappdir}/defaults/preferences", "type") == "directory") then
for i,filename in pairs(posix.dir("%{mozappdir}/defaults/preferences")) do
os.rename("%{mozappdir}/defaults/preferences/"..filename, "%{mozappdir}/browser/defaults/preferences/"..filename)
end
f = io.open("%{mozappdir}/defaults/preferences/README","w")
if f then
f:write("Content of this directory has been moved to %{mozappdir}/browser/defaults/preferences.")
f:close()
end
end
end
%endif
%preun
# is it a final removal?
if [ $1 -eq 0 ]; then
%{__rm} -rf %{mozappdir}/components
%{__rm} -rf %{mozappdir}/extensions
%{__rm} -rf %{mozappdir}/plugins
%{__rm} -rf %{langpackdir}
fi
%post
update-desktop-database &> /dev/null || :
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun
update-desktop-database &> /dev/null || :
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir}/icons/hicolor &>/dev/null
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%files -f %{name}.lang
%defattr(-,root,root,-)
%{_bindir}/firefox
%{mozappdir}/firefox
%{mozappdir}/firefox-bin
%doc %{_mandir}/man1/*
%dir %{_datadir}/mozilla/extensions/%{firefox_app_id}
%dir %{_libdir}/mozilla/extensions/%{firefox_app_id}
%{_datadir}/applications/*.desktop
%dir %{mozappdir}
%doc %{mozappdir}/LICENSE
%{mozappdir}/browser/chrome
%{mozappdir}/browser/chrome.manifest
%dir %{mozappdir}/browser/components
%{mozappdir}/browser/components/*.so
%{mozappdir}/browser/components/components.manifest
%{mozappdir}/browser/defaults/preferences/firefox-redhat-default-prefs.js
%attr(644, root, root) %{mozappdir}/browser/blocklist.xml
%dir %{mozappdir}/browser/extensions
%{mozappdir}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
%if %{build_langpacks}
%dir %{langpackdir}
%endif
%{mozappdir}/browser/omni.ja
%{mozappdir}/browser/icons
%{mozappdir}/browser/searchplugins
%{mozappdir}/run-mozilla.sh
%{mozappdir}/application.ini
%exclude %{mozappdir}/removed-files
%{_datadir}/icons/hicolor/16x16/apps/firefox.png
%{_datadir}/icons/hicolor/22x22/apps/firefox.png
%{_datadir}/icons/hicolor/24x24/apps/firefox.png
%{_datadir}/icons/hicolor/256x256/apps/firefox.png
%{_datadir}/icons/hicolor/32x32/apps/firefox.png
%{_datadir}/icons/hicolor/48x48/apps/firefox.png
%{mozappdir}/webapprt-stub
%dir %{mozappdir}/webapprt
%{mozappdir}/webapprt/omni.ja
%{mozappdir}/webapprt/webapprt.ini
%if %{enable_mozilla_crashreporter}
%{mozappdir}/crashreporter
%{mozappdir}/crashreporter.ini
%{mozappdir}/Throbber-small.gif
%{mozappdir}/browser/crashreporter-override.ini
%endif
%{mozappdir}/*.so
%{mozappdir}/chrome.manifest
%{mozappdir}/components
%{mozappdir}/defaults/pref/channel-prefs.js
%{mozappdir}/dependentlibs.list
%{mozappdir}/dictionaries
%{mozappdir}/mozilla-xremote-client
%{mozappdir}/omni.ja
%{mozappdir}/platform.ini
%{mozappdir}/plugin-container
%exclude %{_includedir}
%exclude %{_libdir}/firefox-devel-%{version}
%exclude %{_datadir}/idl
%if !%{?system_nss}
%{mozappdir}/libfreebl3.chk
%{mozappdir}/libnssdbm3.chk
%{mozappdir}/libsoftokn3.chk
%endif
#---------------------------------------------------------------------
%changelog
* Mon Nov 3 2014 Martin Stransky <stransky@redhat.com> - 33.0-3
- Added Gtk3 support
* Wed Oct 15 2014 Martin Stransky <stransky@redhat.com> - 33.0-2
- Added patches from mozbz#858919
* Tue Oct 14 2014 Martin Stransky <stransky@redhat.com> - 33.0-1
- Update to 33.0 build 2
* Fri Sep 19 2014 Jan Horak <jhorak@redhat.com> - 32.0.2-2
- Added support for Mozilla tests
* Thu Sep 18 2014 Martin Stransky <stransky@redhat.com> - 32.0.2-1
- Update to 32.0.2 build 1
* Tue Sep 16 2014 Martin Stransky <stransky@redhat.com> - 32.0.1-2
- disable baseline JIT on i686 (rhbz#1047079)
* Mon Sep 15 2014 Martin Stransky <stransky@redhat.com> - 32.0.1-1
- Update to 32.0.1 build 2
- Patch from rhbz#1140157
* Wed Sep 10 2014 Jan Horak <jhorak@redhat.com> - 32.0-2
- Fix for geolocation API (rhbz#1063739)
* Tue Aug 26 2014 Martin Stransky <stransky@redhat.com> - 32.0-1
- Update to 32.0 build 1
* Tue Aug 26 2014 David Tardon <dtardon@redhat.com> - 31.0-4
- rebuild for ICU 53.1
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 31.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jul 30 2014 Martin Stransky <stransky@redhat.com> - 31.0-2
- Added patch for mozbz#858919
* Thu Jul 17 2014 Martin Stransky <stransky@redhat.com> - 31.0-1
- Update to 31.0 build 2
* Wed Jun 11 2014 Martin Stransky <stransky@redhat.com> - 30.0-4
- Updated NSPR version
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 30.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Thu Jun 5 2014 Martin Stransky <stransky@redhat.com> - 30.0-2
- Enable gstreamer 1.0
* Wed Jun 4 2014 Martin Stransky <stransky@redhat.com> - 30.0-1
- Update to 30.0 build 1
* Fri May 23 2014 Martin Stransky <stransky@redhat.com> - 29.0.1-5
- Added a build fix for ppc64 - rhbz#1100495
* Tue May 20 2014 Martin Stransky <stransky@redhat.com> - 29.0.1-4
- Enabled necko-wifi
* Thu May 15 2014 Peter Robinson <pbrobinson@fedoraproject.org> 29.0.1-3
- Add upstream patches for aarch64 support
* Thu May 15 2014 Martin Stransky <stransky@redhat.com> - 29.0.1-2
- Fixed rhbz#1098090 - Enable plugin-container for nspluginwrapper
* Wed May 14 2014 Martin Stransky <stransky@redhat.com> - 29.0.1-1
- Update to 29.0.1
* Mon Apr 28 2014 Martin Stransky <stransky@redhat.com> - 29.0-5
- An updated ppc64le patch (rhbz#1091054)
* Mon Apr 28 2014 Martin Stransky <stransky@redhat.com> - 29.0-4
- Arm build fixes
* Fri Apr 25 2014 Martin Stransky <stransky@redhat.com> - 29.0-3
- Build with system ICU
* Thu Apr 24 2014 Martin Stransky <stransky@redhat.com> - 29.0-2
- Removed unused patch
* Tue Apr 22 2014 Martin Stransky <stransky@redhat.com> - 29.0-1
- Update to 29.0 Build 1
* Tue Apr 8 2014 Jan Horak <jhorak@redhat.com> - 28.0-4
- Support for ppc64le architecture
* Wed Mar 19 2014 Martin Stransky <stransky@redhat.com> - 28.0-3
- Arm build fix
* Wed Mar 19 2014 Martin Stransky <stransky@redhat.com> - 28.0-2
- NSS version up, disable arm for now
* Tue Mar 18 2014 Martin Stransky <stransky@redhat.com> - 28.0-1
- Update to 28.0
* Thu Mar 6 2014 Martin Stransky <stransky@redhat.com> - 27.0.1-2
- Removed needless build patch
* Mon Feb 24 2014 Martin Stransky <stransky@redhat.com> - 27.0.1-1
- Update to 27.0.1
* Mon Feb 3 2014 Martin Stransky <stransky@redhat.com> - 27.0-1
- Update to 27.0
* Thu Jan 30 2014 Jan Horak <jhorak@redhat.com> - 26.0-7
- Set default homepage to about:newtab and make start.fedoraproject.org page pinned on it
- Disable system cairo because of rhbz#1059076
* Mon Jan 20 2014 Jan Horak <jhorak@redhat.com> - 26.0-6
- Fixed langpack installation
* Thu Jan 9 2014 Jan Horak <jhorak@redhat.com> - 26.0-5
- Build standalone firefox package without dependency on xulrunner
* Tue Dec 17 2013 Martin Stransky <stransky@redhat.com> - 26.0-4
- Added fix for rhbz#1007603 - NSS and cert9 (sql): firefox crash
on exit with https-everywhere installed (edit)
* Fri Dec 13 2013 Martin Stransky <stransky@redhat.com> - 26.0-3
- Build with -Werror=format-security (rhbz#1037063)
* Mon Dec 9 2013 Martin Stransky <stransky@redhat.com> - 26.0-2
- Update to 26.0 Build 2
* Wed Oct 30 2013 Martin Stransky <stransky@redhat.com> - 25.0-3
- Update to 25.0 Build 3
* Thu Oct 24 2013 Martin Stransky <stransky@redhat.com> - 25.0-2
- Fixed xulrunner dependency
* Thu Oct 24 2013 Martin Stransky <stransky@redhat.com> - 25.0-1
- Update to 25.0 Build 2
* Thu Oct 17 2013 Martin Stransky <stransky@redhat.com> - 24.0-2
- Fixed rhbz#1005611 - BEAST workaround not enabled in Firefox
* Fri Sep 13 2013 Martin Stransky <stransky@redhat.com> - 24.0-1
- Update to 24.0
* Tue Sep 3 2013 Jan Horak <jhorak@redhat.com> - 23.0.1-5
- Fixing rhbz#1003691
* Fri Aug 30 2013 Martin Stransky <stransky@redhat.com> - 23.0.1-3
- Spec tweak (rhbz#991493)
* Fri Aug 30 2013 Jan Horak <jhorak@redhat.com> - 23.0.1-2
- Homepage moved to pref file
- Fixed migration from F18 -> F19 (rhbz#976420)
* Mon Aug 19 2013 Jan Horak <jhorak@redhat.com> - 23.0.1-1
- Update to 23.0.1
* Mon Aug 5 2013 Martin Stransky <stransky@redhat.com> - 23.0-1
- Updated to latest upstream (23.0 Build 2)
* Thu Jul 25 2013 Martin Stransky <stransky@redhat.com> - 22.0-3
- Fixed rhbz#988363 - firefox-redhat-default-prefs.js is not used
* Fri Jun 28 2013 Jan Horak <jhorak@redhat.com> - 22.0-2
- Fixed crashreporter for third arch
* Fri Jun 21 2013 Martin Stransky <stransky@redhat.com> - 22.0-1
- Updated to latest upstream (22.0)
* Thu Jun 13 2013 Jan Horak <jhorak@redhat.com> - 21.0-5
- Enable Mozilla crash report tool
* Thu May 23 2013 Jan Horak <jhorak@redhat.com> - 21.0-4
- Do not override user defined TMPDIR variable
* Thu May 16 2013 Martin Stransky <stransky@redhat.com> - 21.0-3
- Fixed extension compatibility dialog (rhbz#963422)
* Wed May 15 2013 Martin Stransky <stransky@redhat.com> - 21.0-2
- Keep compatibility with old preference dir
* Tue May 14 2013 Martin Stransky <stransky@redhat.com> - 21.0-1
- Updated to latest upstream (21.0)
* Thu May 9 2013 Martin Stransky <stransky@redhat.com> - 20.0-5
- Removed firstrun page (rhbz#864793)
- Made zip/unzip quiet in langpacks processing
* Thu Apr 18 2013 Martin Stransky <stransky@redhat.com> - 20.0-4
- Updated xulrunner check
* Thu Apr 18 2013 Martin Stransky <stransky@redhat.com> - 20.0-3
- Added a workaround for rhbz#907424 - textarea redrawn wrongly
during edit
* Thu Apr 18 2013 Jan Horak <jhorak@redhat.com> - 20.0-2
- Updated manual page
* Mon Apr 1 2013 Martin Stransky <stransky@redhat.com> - 20.0-1
- Updated to 20.0
* Mon Mar 18 2013 Martin Stransky <stransky@redhat.com> - 19.0.2-2
- Added fix for mozbz#239254 - local cache dir
* Mon Mar 11 2013 Jan Horak <jhorak@redhat.com> - 19.0.2-1
- Update to 19.0.2
* Tue Feb 19 2013 Jan Horak <jhorak@redhat.com> - 19.0-1
- Update to 19.0
* Wed Feb 6 2013 Jan Horak <jhorak@redhat.com> - 18.0.2-1
- Update to 18.0.2
* Fri Jan 25 2013 Jan Horak <jhorak@redhat.com> - 18.0.1-1
- Update to 18.0.1
* Wed Jan 9 2013 Martin Stransky <stransky@redhat.com> - 18.0-1
- Update to 18.0
* Tue Dec 18 2012 Martin Stransky <stransky@redhat.com> - 17.0.1-2
- Fix bug 878831 - Please enable gfx.color_management.enablev4=true
* Thu Nov 29 2012 Jan Horak <jhorak@redhat.com> - 17.0.1-1
- Update to 17.0.1
* Mon Nov 19 2012 Martin Stransky <stransky@redhat.com> - 17.0-1
- Update to 17.0
* Thu Nov 15 2012 Martin Stransky <stransky@redhat.com> - 17.0-0.1b6
- Update to 17.0 Beta 6
* Wed Nov 7 2012 Jan Horak <jhorak@redhat.com> - 16.0.2-4
- Added duckduckgo.com search engine
* Thu Nov 1 2012 Jan Horak <jhorak@redhat.com> - 16.0.2-3
- Added keywords to desktop file (871900)
* Tue Oct 30 2012 Martin Stransky <stransky@redhat.com> - 16.0.2-2
- Updated man page (#800234)
* Fri Oct 26 2012 Jan Horak <jhorak@redhat.com> - 16.0.2-1
- Update to 16.0.2
* Thu Oct 11 2012 Martin Stransky <stransky@redhat.com> - 16.0.1-1
- Update to 16.0.1
* Thu Oct 11 2012 Martin Stransky <stransky@redhat.com> - 16.0.1-1
- Update to 16.0.1
* Mon Oct 8 2012 Jan Horak <jhorak@redhat.com> - 16.0-1
- Update to 16.0
- Use /var/tmp instead of /tmp (rhbz#860814)
* Tue Sep 11 2012 Jan Horak <jhorak@redhat.com> - 15.0.1-1
- Update to 15.0.1
* Tue Aug 28 2012 Martin Stransky <stransky@redhat.com> - 15.0-2
- Added fix for rhbz#851722 - conflict with incompatible xulrunner
* Mon Aug 27 2012 Martin Stransky <stransky@redhat.com> - 15.0-1
- Update to 15.0
* Wed Aug 22 2012 Dan Horák <dan[at]danny.cz> - 14.0.1-3
- add fix for secondary arches from xulrunner
* Wed Aug 1 2012 Martin Stransky <stransky@redhat.com> - 14.0.1-2
- removed StartupWMClass (rhbz#844860)
* Mon Jul 16 2012 Martin Stransky <stransky@redhat.com> - 14.0.1-1
- Update to 14.0.1
* Tue Jul 10 2012 Martin Stransky <stransky@redhat.com> - 13.0.1-2
- Fixed rhbz#707100, rhbz#821169
* Sat Jun 16 2012 Jan Horak <jhorak@redhat.com> - 13.0.1-1
- Update to 13.0.1
* Tue Jun 5 2012 Martin Stransky <stransky@redhat.com> - 13.0-1
- Update to 13.0
* Tue Apr 24 2012 Martin Stransky <stransky@redhat.com> - 12.0-1
- Update to 12.0
* Thu Mar 15 2012 Martin Stransky <stransky@redhat.com> - 11.0-2
- Switched dependency to xulrunner (rhbz#803471)
* Tue Mar 13 2012 Martin Stransky <stransky@redhat.com> - 11.0-1
- Update to 11.0
- Fixed rhbz#800622 - make default home page of fedoraproject.org conditional
- Fixed rhbz#801796 - enable debug build by some simple way
* Mon Feb 27 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 10.0.1-2
- Add ARM config options to fix compile
* Thu Feb 9 2012 Jan Horak <jhorak@redhat.com> - 10.0.1-1
- Update to 10.0.1
* Fri Feb 3 2012 Jan Horak <jhorak@redhat.com> - 10.0-2
- Fixed rhbz#786983
* Tue Jan 31 2012 Jan Horak <jhorak@redhat.com> - 10.0-1
- Update to 10.0
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 9.0.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Fri Dec 23 2011 Jan Horak <jhorak@redhat.com> - 9.0.1-1
- Update to 9.0.1
* Wed Dec 21 2011 Jan Horak <jhorak@redhat.com> - 9.0-3
- Update to 9.0
* Thu Dec 15 2011 Jan Horak <jhorak@redhat.com> - 9.0-1.beta5
- Update to 9.0 Beta 5
* Tue Nov 15 2011 Martin Stransky <stransky@redhat.com> - 8.0-3
- Disabled addon check UI (#753551)
* Tue Nov 15 2011 Martin Stransky <stransky@redhat.com> - 8.0-2
- Temporary workaround for langpacks (#753551)
* Tue Nov 8 2011 Jan Horak <jhorak@redhat.com> - 8.0-1
- Update to 8.0
* Mon Oct 24 2011 Martin Stransky <stransky@redhat.com> - 7.0.1-3
- reverted the desktop file name for Fedora15 & 16
* Mon Oct 24 2011 Martin Stransky <stransky@redhat.com> - 7.0.1-2
- renamed mozilla-firefox.desktop to firefox.desktop (#736558)
- nspluginwrapper is not run in plugin-container (#747981)
* Fri Sep 30 2011 Jan Horak <jhorak@redhat.com> - 7.0.1-1
- Update to 7.0.1
* Tue Sep 27 2011 Jan Horak <jhorak@redhat.com> - 7.0
- Update to 7.0
* Tue Sep 6 2011 Jan Horak <jhorak@redhat.com> - 6.0.2-1
- Update to 6.0.2
* Tue Aug 16 2011 Martin Stransky <stransky@redhat.com> - 6.0-1
- Update to 6.0
* Fri Jun 24 2011 Bill Nottingham <notting@redhat.com> - 5.0-2
- Fix an issue with a stray glyph in the window title
* Tue Jun 21 2011 Martin Stransky <stransky@redhat.com> - 5.0-1
- Update to 5.0
* Tue May 10 2011 Martin Stransky <stransky@redhat.com> - 4.0.1-2
- Fixed rhbz#676183 - "firefox -g" is broken
* Thu Apr 28 2011 Christopher Aillon <caillon@redhat.com> - 4.0.1-1
- Update to 4.0.1
* Thu Apr 21 2011 Christopher Aillon <caillon@redhat.com> - 4.0-4
- Spec file cleanups
* Mon Apr 4 2011 Christopher Aillon <caillon@redhat.com> - 4.0-3
- Updates for NetworkManager 0.9
- Updates for GNOME 3
* Tue Mar 22 2011 Christopher Aillon <caillon@redhat.com> - 4.0-2
- Rebuild
* Tue Mar 22 2011 Christopher Aillon <caillon@redhat.com> - 4.0-1
- Firefox 4
* Fri Mar 18 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.21
- Firefox 4.0 RC 2
* Thu Mar 17 2011 Jan Horak <jhorak@redhat.com> - 4.0-0.20
- Rebuild against xulrunner with disabled gnomevfs and enabled gio
* Wed Mar 9 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.19
- Firefox 4.0 RC 1
* Sat Feb 26 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.18b12
- Switch to using the omni chrome file format
* Fri Feb 25 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.17b12
- Firefox 4.0 Beta 12
* Thu Feb 10 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.16b11
- Update gecko-{libs,devel} requires
* Tue Feb 08 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.15b11
- Firefox 4.0 Beta 11
* Mon Feb 07 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.14b10
- Bring back the default browser check
* Tue Jan 25 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.13b10
- Firefox 4.0 Beta 10
* Fri Jan 14 2011 Christopher Aillon <caillon@redhat.com> - 4.0-0.12b9
- Firefox 4.0 Beta 9
* Thu Jan 6 2011 Dan Horák <dan[at]danny.cz> - 4.0-0.11b8
- disable ipc on non-x86 arches to match xulrunner
* Thu Jan 6 2011 Martin Stransky <stransky@redhat.com> - 4.0-0.10b8
- application.ini permission check fix
* Thu Jan 6 2011 Martin Stransky <stransky@redhat.com> - 4.0-0.9b8
- Fixed rhbz#667477 - broken launch script
* Tue Jan 4 2011 Martin Stransky <stransky@redhat.com> - 4.0-0.8b8
- Fixed rhbz#664877 - Cannot read application.ini