firefox-esr68/firefox.spec

424 lines
15 KiB
RPMSpec
Raw Normal View History

#
# WARNING, READ FIRST:
#
# This is a special package that needs special treatment. Due to the amount of
# security updates it needs, it's common to ship new upstream versions instead of patching.
# That means this package MUST be BUILDABLE for stable official releases.
# This also means only STABLE upstream releases, NO betas.
# This is a discussed topic. Please, do not flame it again.
2015-01-20 08:49:47 +03:00
%define major 35.0
%define ff_epoch 0
# (tpg) set version HERE !!!
%define realver %{major}
%define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
2012-02-01 14:23:54 +04:00
# (tpg) MOZILLA_FIVE_HOME
%define mozillalibdir %{_libdir}/%{name}-%{major}
2012-02-01 14:23:54 +04:00
%define pluginsdir %{_libdir}/mozilla/plugins
2012-02-01 15:22:14 +04:00
# this seems fragile, so require the exact version or later (#58754)
%define sqlite3_version %(pkg-config --modversion sqlite3 &>/dev/null && pkg-config --modversion sqlite3 2>/dev/null || echo 0)
%define nss_version %(pkg-config --modversion nss &>/dev/null && pkg-config --modversion nss 2>/dev/null || echo 0)
%define nspr_version %(pkg-config --modversion nspr &>/dev/null && pkg-config --modversion nspr 2>/dev/null |sed -e 's!\.0!!' || echo 0)
%define _use_syshunspell 0
2012-02-01 15:22:14 +04:00
%define update_channel release
Summary: Next generation web browser
2012-02-01 14:23:54 +04:00
Name: firefox
Version: %{major}
Epoch: %{ff_epoch}
2014-12-16 17:27:35 +04:00
Release: 2
2012-02-01 14:23:54 +04:00
License: MPLv1+
Group: Networking/WWW
Url: http://www.mozilla.com/firefox/
%if 0%{?prel}
Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}%prel.source.tar.bz2
%else
Source0: ftp://ftp.mozilla.org/pub/mozilla.org/%{name}/releases/%{realver}/source/%{name}-%{realver}.source.tar.bz2
%endif
Source4: %{name}.desktop
2012-10-05 22:14:04 +04:00
Source5: firefox-searchengines-jamendo.xml
Source6: firefox-searchengines-exalead.xml
Source8: firefox-searchengines-askcom.xml
2012-02-01 14:23:54 +04:00
Source9: kde.js
2012-10-05 22:14:04 +04:00
Source10: firefox-searchengines-yandex.xml
Source11: firefox-searchengines-google.xml
Source12: firefox-searchengines-bing.xml
Patch1: firefox-6.0-lang.patch
Patch2: firefox-vendor.patch
2013-11-05 14:20:13 +04:00
Patch8: firefox-25.0-disable-check-default-browser.patch
Patch10: firefox-3.5.3-default-mail-handler.patch
# Patches for kde integration of FF
2015-01-20 08:52:20 +03:00
Patch11: firefox-35-kde.patch
Patch12: mozilla-35-kde.patch
#Patch13: mozilla-kde-background.patch
Patch34: xulrunner_nojit.patch
2013-02-15 16:06:39 +04:00
# Fedora specific patches
# Unable to install addons from https pages
Patch204: rhbz-966424.patch
Patch215: firefox-enable-addons.patch
Patch217: firefox-baseline-disable.patch
# Upstream patches
Patch300: mozilla-858919.patch
Patch301: mozilla-1097550-dict-fix.patch
2012-02-01 14:23:54 +04:00
BuildRequires: gtk+2-devel
BuildRequires: unzip
BuildRequires: zip
2013-05-13 14:05:37 +04:00
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xscrnsaver)
2013-10-31 14:16:04 +04:00
BuildRequires: jpeg-devel
BuildRequires: zlib-devel
BuildRequires: glib2-devel
2013-05-13 14:05:37 +04:00
BuildRequires: pkgconfig(libIDL-2.0)
2012-02-01 14:23:54 +04:00
BuildRequires: makedepend
2014-08-05 10:00:51 +04:00
BuildRequires: nss-devel >= 2:3.16.2
BuildRequires: nss-static-devel
2014-06-10 16:54:13 +04:00
BuildRequires: nspr-devel >= 2:4.10.6
BuildRequires: startup-notification-devel
BuildRequires: dbus-glib-devel
2012-02-01 14:23:54 +04:00
BuildRequires: python
2014-06-10 17:34:15 +04:00
BuildRequires: sqlite3-devel >= 3.8.4.1
%ifnarch %arm %mips
2012-02-01 14:23:54 +04:00
BuildRequires: valgrind
BuildRequires: java-rpmbuild
2014-12-01 17:24:26 +03:00
BuildRequires: java-1.7.0-openjdk-devel
BuildRequires: yasm >= 1.0.1
%endif
%ifarch %arm
BuildRequires: libffi-devel
%endif
BuildRequires: rootcerts >= 1:20110830.00
2013-05-13 14:05:37 +04:00
BuildRequires: pkgconfig(xt)
%if %_use_syshunspell
BuildRequires: hunspell-devel
%endif
BuildRequires: doxygen
# BuildRequires: xulrunner-devel >= %xulrunner_version%{?prel:-0.%prel}
BuildRequires: pkgconfig(libproxy-1.0)
BuildRequires: pkgconfig(alsa)
2012-02-01 14:23:54 +04:00
BuildRequires: wget
2013-05-13 14:05:37 +04:00
BuildRequires: pkgconfig(libnotify)
2012-02-01 14:23:54 +04:00
BuildRequires: cairo-devel >= 1.10
2012-09-19 07:36:21 +00:00
BuildRequires: pkgconfig(gl)
2013-05-13 14:05:37 +04:00
BuildRequires: pkgconfig(vpx)
BuildRequires: autoconf2.1
BuildRequires: libiw-devel
BuildRequires: python-virtualenv
2014-06-10 16:43:04 +04:00
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(opus)
2014-03-19 17:07:59 +04:00
BuildRequires: pkgconfig(libpulse)
2014-02-11 18:11:29 +04:00
BuildRequires: bzip2-devel
2014-12-16 13:44:35 +03:00
BuildRequires: pkgconfig(theoradec)
BuildRequires: pkgconfig(vorbis)
%if 0%{?prel}
Provides: %{name} = %{epoch}:%{realver}-0.%{prel}
%else
Provides: %{name} = %{epoch}:%{realver}
%endif
Provides: mozilla-firefox = %{epoch}:%{version}-%{release}
2012-02-01 14:23:54 +04:00
Provides: webclient
Requires: %{mklibname sqlite3_ 0} >= %{sqlite3_version}
Requires: %{mklibname nss 3} >= 2:%{nss_version}
Requires: %{mklibname nspr 4} >= 2:%{nspr_version}
Requires: indexhtml
2012-02-01 14:23:54 +04:00
Requires: xdg-utils
# fixes bug #42096
Requires: mailcap
%if %_use_syshunspell
Suggests: hunspell-en
%endif
Suggests: %{_lib}canberra0
Suggests: %{_lib}cups2
Obsoletes: firefox-ext-weave-sync
Obsoletes: firefox-beta < 11
2012-02-01 14:23:54 +04:00
%description
2012-10-22 10:39:31 +00:00
The award-winning Web browser is now faster, more secure, and fully
customizable to your online life. With Firefox(R), we've added powerful new
features that make your online experience even better. It is an 'open source'
product which is freely available, and is acquiring a growing proportion of
international web browser usage.
Firefox claims to offer a more secure web browsing experience than other
products, with better protection against spyware and other Internet-based
security threats. It includes all the standard features of a modern web
browser, like Internet searching, tracking recently visited sites, setting up
shortcuts to favourite sites, customising the software behaviour and so on.
Firefox also includes features like 'tabbed browsing' (opening several web
sites as sections within the same window) and methods for controlling pop-up
windows, cookies and downloaded files.
2012-02-01 14:23:54 +04:00
%package devel
Summary: Development files for %{name}
Group: Development/Other
Obsoletes: firefox-beta-devel < 11
2012-02-01 14:23:54 +04:00
%description devel
Files and macros mainly for building Firefox extensions.
%prep
%setup -qn mozilla-%update_channel
%patch1 -p1 -b .lang
2012-02-01 14:23:54 +04:00
%patch2 -p1 -b .vendor
2013-11-05 14:20:13 +04:00
%patch8 -p1 -b .disable-check
%patch10 -p1 -b .default-mail-handler
2012-02-26 04:57:26 +04:00
2012-02-01 14:23:54 +04:00
## KDE INTEGRATION
# Disable kde integration , need refactoring
%patch11 -p1 -b .kdepatch
%patch12 -p1 -b .kdemoz
2014-12-16 13:20:59 +03:00
#patch13 -p1 -b .kdebackground
2012-02-01 14:23:54 +04:00
%ifarch %arm
%if "%{_target_cpu}" != "armv7l"
%patch34 -p1
%endif
%endif
2012-02-01 14:23:54 +04:00
# Fedora patches
%patch204 -p2 -b .966424
%patch215 -p1 -b .addons
# disable baseline JIT on i686 (rhbz#1047079)
%ifarch %{ix86}
%patch217 -p2 -b .baseline
%endif
2013-02-15 16:06:39 +04:00
# Upstream patches
%patch300 -p1 -b .858919
%patch301 -p1 -b .1097550-dict-fix
pushd js/src
autoconf-2.13
popd
autoconf-2.13
# needed to regenerate certdata.c
pushd security/nss/lib/ckfw/builtins
perl ./certdata.perl < /etc/pki/tls/mozilla/certdata.txt
popd
2012-02-01 14:23:54 +04:00
%build
2012-02-01 15:22:14 +04:00
export MOZCONFIG=`pwd`/mozconfig
2012-02-01 14:23:54 +04:00
cat << EOF > $MOZCONFIG
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MAKE_FLAGS="%{_smp_mflags}"
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
ac_add_options --host=%{_host}
ac_add_options --target=%{_target_platform}
2014-02-13 12:15:36 +04:00
ac_add_options --enable-optimize
2012-02-01 14:23:54 +04:00
ac_add_options --prefix="%{_prefix}"
ac_add_options --libdir="%{_libdir}"
ac_add_options --sysconfdir="%{_sysconfdir}"
ac_add_options --mandir="%{_mandir}"
ac_add_options --includedir="%{_includedir}"
ac_add_options --datadir="%{_datadir}"
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-zlib
2012-02-01 15:22:14 +04:00
ac_add_options --with-system-libvpx
2014-02-11 18:11:29 +04:00
ac_add_options --with-system-bz2
ac_add_options --enable-libnotify
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --enable-webm
ac_add_options --enable-gio
ac_add_options --disable-gnomevfs
2012-02-01 14:23:54 +04:00
ac_add_options --disable-updater
ac_add_options --disable-tests
ac_add_options --disable-debug
#ac_add_options --enable-chrome-format=jar
#ac_add_options --enable-update-channel=beta
2012-02-01 14:23:54 +04:00
ac_add_options --enable-official-branding
ac_add_options --enable-libproxy
ac_add_options --with-system-jpeg
2012-02-01 14:23:54 +04:00
ac_add_options --enable-system-cairo
ac_add_options --enable-system-sqlite
2012-02-26 04:57:26 +04:00
ac_add_options --enable-startup-notification
ac_add_options --enable-xinerama
ac_add_options --with-distribution-id=org.rosa
ac_add_options --disable-crashreporter
ac_add_options --enable-update-channel=%{update_channel}
2014-12-16 13:45:56 +03:00
ac_add_options --enable-gstreamer=1.0
%ifarch %arm
%if "%{_target_cpu}" != "armv7l"
ac_add_options --disable-methodjit
ac_add_options --disable-tracejit
2012-05-15 04:44:00 +04:00
%endif
ac_add_options --enable-system-ffi
%endif
%ifnarch %arm %mips
ac_add_options --with-valgrind
ac_add_options --with-java-include-path=%{java_home}/include
ac_add_options --with-java-bin-path=%{java_home}/bin
ac_add_options --enable-opus
2012-02-28 14:08:45 +04:00
%endif
EOF
2012-02-01 14:23:54 +04:00
%__perl -p -i -e 's|\-0|\-9|g' config/make-jars.pl
export LDFLAGS="%ldflags"
make -f client.mk build
2012-02-01 14:23:54 +04:00
%install
rm -rf %{buildroot}
# Make sure locale works for langpacks
%{__cat} > %{_builddir}/obj/dist/bin/browser/defaults/preferences/firefox-l10n.js << EOF
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
EOF
make -C %{_builddir}/obj/browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
2012-02-01 14:23:54 +04:00
# Copy files to buildroot
%{__mkdir_p} %{buildroot}%{mozillalibdir}
cp -rf %{_builddir}/obj/dist/firefox/* %{buildroot}%{mozillalibdir}
2012-02-01 14:23:54 +04:00
%{__mkdir_p} %{buildroot}%{_bindir}
ln -sf %{mozillalibdir}/firefox %{buildroot}%{_bindir}/firefox
pushd %{buildroot}%{_bindir}
ln -sf firefox mozilla-firefox
2012-02-28 14:08:45 +04:00
popd
mkdir -p %{buildroot}%{mozillalibdir}/defaults/preferences/
install -m 644 %{SOURCE9} %{buildroot}%{mozillalibdir}/defaults/preferences/kde.js
2012-02-01 14:23:54 +04:00
# Create and own %_libdir/mozilla/plugins & firefox extensions directories
%{__mkdir_p} %{buildroot}%{pluginsdir}
%{__mkdir_p} %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
%{__mkdir_p} %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
2012-02-01 14:23:54 +04:00
# (tpg) desktop entry
%{__mkdir_p} %{buildroot}%{_datadir}/applications
install -m 644 %{SOURCE4} %{buildroot}%{_datadir}/applications/%{name}.desktop
2012-02-01 14:23:54 +04:00
# (tpg) icons
2013-05-20 15:29:24 +04:00
%{__cp} %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}/%{mozillalibdir}/browser/icons/
for i in 16 22 24 32 48 256; do
# (cg) Not all icon sizes are installed with make install, so just redo it here.
2013-05-20 17:50:47 +04:00
%{__install} -m 644 browser/branding/official/default$i.png %{buildroot}%{mozillalibdir}/browser/chrome/icons/default/default$i.png
2012-02-01 14:23:54 +04:00
%{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps
2013-05-20 17:50:47 +04:00
ln -sf %{mozillalibdir}/browser/chrome/icons/default/default$i.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png ;
2012-02-01 14:23:54 +04:00
done
%{__mkdir_p} %{buildroot}{%{_liconsdir},%{_iconsdir},%{_miconsdir}}
2013-05-20 12:33:14 +04:00
ln -sf %{mozillalibdir}/browser/chrome/icons/default/default48.png %{buildroot}%{_liconsdir}/%{name}.png
ln -sf %{mozillalibdir}/browser/chrome/icons/default/default32.png %{buildroot}%{_iconsdir}/%{name}.png
ln -sf %{mozillalibdir}/browser/chrome/icons/default/default16.png %{buildroot}%{_miconsdir}/%{name}.png
2012-02-01 14:23:54 +04:00
# exclusions
rm -f %{buildroot}%{mozillalibdir}/README.txt
rm -f %{buildroot}%{mozillalibdir}/removed-files
rm -f %{buildroot}%{mozillalibdir}/precomplete
2014-04-18 20:51:41 +04:00
cat << EOF >> %{buildroot}%{mozillalibdir}/firefox.cfg
#code
pref("browser.rights.3.shown", false);
2014-04-22 19:44:44 +04:00
defaultPref("browser.startup.homepage", "data:text/html,browser.startup.homepage=file:///usr/share/doc/HTML/index.html");
2014-04-18 20:51:41 +04:00
pref("browser.shell.checkDefaultBrowser", false);
pref("browser.startup.homepage_override.mstone", "ignore");
pref("browser.ctrlTab.previews", true);
pref("browser.tabs.insertRelatedAfterCurrent", false);
pref("browser.backspace_action", 2);
pref("browser.display.use_system_colors", true);
pref("browser.download.folderList", 1);
pref("browser.link.open_external", 3);
pref("app.update.auto", false);
pref("app.update.enabled", false);
pref("app.update.autoInstallEnabled", false);
pref("security.ssl.require_safe_negotiation", false);
pref("dom.ipc.plugins.enabled.nswrapper*", false);
pref("extensions.autoDisableScopes", 0);
pref("extensions.shownSelectionUI", true);
pref("network.manage-offline-status", true);
EOF
cat << EOF >> %{buildroot}%{mozillalibdir}/defaults/pref/config-prefs.js
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0); // use this to disable the byte-shift
2012-10-09 07:46:34 +00:00
EOF
# display icon for Firefox button
%{__mkdir_p} %{buildroot}%{mozillalibdir}/defaults/profile/chrome
cat << EOF > %{buildroot}%{mozillalibdir}/defaults/profile/chrome/userChrome.css
#appmenu-toolbar-button {
list-style-image: url("chrome://branding/content/icon16.png");
}
2012-02-01 15:22:14 +04:00
EOF
# use the system myspell dictionaries
rm -fr %{buildroot}%{mozillalibdir}/dictionaries
#ln -s %{_datadir}/hunspell %{buildroot}%{mozillalibdir}/dictionaries
ln -s %{_datadir}/dict/mozilla/ %{buildroot}%{mozillalibdir}/dictionaries
2012-02-01 14:23:54 +04:00
# (lm) touch and %ghost bookmarks.html to a proper uninstall
touch %{buildroot}%{mozillalibdir}/defaults/profile/bookmarks.html
2012-10-05 22:14:04 +04:00
# search engines
2013-05-21 11:25:44 +04:00
rm -f %{buildroot}%{mozillalibdir}/browser/searchplugins/*
cp -f %{SOURCE5} %{buildroot}%{mozillalibdir}/browser/searchplugins/jamendo.xml
cp -f %{SOURCE6} %{buildroot}%{mozillalibdir}/browser/searchplugins/exalead.xml
cp -f %{SOURCE8} %{buildroot}%{mozillalibdir}/browser/searchplugins/askcom.xml
cp -f %{SOURCE10} %{buildroot}%{mozillalibdir}/browser/searchplugins/yandex.xml
cp -f %{SOURCE11} %{buildroot}%{mozillalibdir}/browser/searchplugins/google.xml
cp -f %{SOURCE12} %{buildroot}%{mozillalibdir}/browser/searchplugins/bing.xml
2012-10-05 22:14:04 +04:00
# Correct distro values on search engines
2013-05-21 11:25:44 +04:00
sed -i 's/@DISTRO_VALUE@/ffx/' %{buildroot}%{mozillalibdir}/browser/searchplugins/askcom.xml
sed -i 's/@DISTRO_VALUE@//' %{buildroot}%{mozillalibdir}/browser/searchplugins/exalead.xml
2012-10-05 22:14:04 +04:00
2012-02-01 14:23:54 +04:00
mkdir -p %{buildroot}%{_sys_macros_dir}
cat <<FIN >%{buildroot}%{_sys_macros_dir}/%{name}.macros
# Macros from %{name} package
%%firefox_major %{major}
%%firefox_epoch %{ff_epoch}
%%firefox_version %{major}%{?prel:-0.%prel}
2012-02-01 14:23:54 +04:00
%%firefox_mozillapath %{mozillalibdir}
%%firefox_pluginsdir %{pluginsdir}
%%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
%%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
FIN
2013-02-13 14:54:40 +04:00
# Fix libxpcom.so rights
2013-06-26 13:04:08 +04:00
#chmod 755 $RPM_BUILD_ROOT/%{mozillalibdir}/libxpcom.so
2013-02-13 14:54:40 +04:00
%pre
2013-05-21 11:25:44 +04:00
if [ -d %{mozillalibdir}/browser/dictionaries ]; then
rm -fr %{mozillalibdir}/browser/dictionaries
fi
2012-02-28 14:08:45 +04:00
2012-02-01 14:23:54 +04:00
%post
if [ ! -r /etc/sysconfig/oem ]; then
case `grep META_CLASS /etc/sysconfig/system` in
*powerpack) bookmark="mozilla-powerpack.html" ;;
*desktop) bookmark="mozilla-one.html";;
*) bookmark="mozilla-download.html";;
esac
ln -s -f ../../../../share/mdk/bookmarks/mozilla/$bookmark %{mozillalibdir}/defaults/profile/bookmarks.html
2012-02-01 14:23:54 +04:00
fi
2012-09-04 17:57:47 +04:00
%files
%{_bindir}/%{name}
%{_bindir}/mozilla-firefox
2012-02-01 14:23:54 +04:00
%{_iconsdir}/hicolor/*/apps/*.png
%{_miconsdir}/%{name}.png
%{_iconsdir}/%{name}.png
%{_liconsdir}/%{name}.png
2012-02-01 14:23:54 +04:00
%{_datadir}/applications/*.desktop
%{_libdir}/%{name}-%{major}*
2012-09-04 19:27:40 +04:00
#% ghost %{mozillalibdir}/defaults/profile/bookmarks.html
2012-02-01 14:23:54 +04:00
%dir %{_libdir}/mozilla
2013-02-13 14:54:40 +04:00
%dir %{_libdir}/mozilla/extensions
2012-02-01 14:23:54 +04:00
%dir %{pluginsdir}
%dir %{_libdir}/mozilla/extensions/%{firefox_appid}
%dir %{_datadir}/mozilla/extensions/%{firefox_appid}
2012-02-01 14:23:54 +04:00
%files devel
%{_sys_macros_dir}/%{name}.macros