[packages/firefox52-esr] - initial, ESR release based on FF 52

adwol adwol at pld-linux.org
Sat Jun 24 00:58:35 CEST 2017


commit a4803e5e2df14c46d31c4dcab99e39fe1e48e7e7
Author: Adam Osuchowski <adwol at pld-linux.org>
Date:   Sat Jun 24 00:56:28 2017 +0200

    - initial, ESR release based on FF 52

 firefox-Disable-Firefox-Health-Report.patch |  12 +
 firefox-middle_click_paste.patch            |  19 +
 firefox-no-subshell.patch                   |  11 +
 firefox-pld-bookmarks.patch                 |  18 +
 firefox-prefs.patch                         |  65 ++++
 firefox-system-virtualenv.patch             |  12 +
 firefox.desktop                             |  80 +++++
 firefox.sh                                  |  40 +++
 firefox52-esr.spec                          | 523 ++++++++++++++++++++++++++++
 freetype.patch                              |  10 +
 idl-parser.patch                            |  27 ++
 vendor-ac.js                                |  10 +
 vendor.js                                   |  10 +
 xulrunner-new-libxul.patch                  |  12 +
 xulrunner-paths.patch                       |  17 +
 xulrunner-pc.patch                          | 140 ++++++++
 16 files changed, 1006 insertions(+)
---
diff --git a/firefox52-esr.spec b/firefox52-esr.spec
new file mode 100644
index 0000000..15799e0
--- /dev/null
+++ b/firefox52-esr.spec
@@ -0,0 +1,523 @@
+# TODO:
+# - consider --enable-libproxy
+#
+# Conditional build:
+%bcond_with	tests		# enable tests (whatever they check)
+%bcond_without	gtk3		# GTK+ 3.x instead of 2.x
+%bcond_without	kerberos	# disable krb5 support
+%bcond_without	official	# official Firefox branding
+%bcond_without	pgo		# PGO-enabled build (requires working $DISPLAY == :100)
+# - disabled shared_js - https://bugzilla.mozilla.org/show_bug.cgi?id=1039964
+%bcond_with	shared_js	# shared libmozjs library [broken]
+%bcond_with	system_icu	# build with system ICU (disabled due to crashes with system icu 58.2)
+
+# On updating version, grab CVE links from:
+# https://www.mozilla.org/security/known-vulnerabilities/firefox.html
+# Release Notes:
+# https://developer.mozilla.org/en-US/Firefox/Releases
+
+# The actual sqlite version (see RHBZ#480989):
+%define		sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
+
+%define		_basename	firefox
+%define		nspr_ver	4.13.1
+%define		nss_ver		3.28.1
+
+Summary:	Firefox web browser
+Summary(hu.UTF-8):	Firefox web böngésző
+Summary(pl.UTF-8):	Firefox - przeglądarka WWW
+Name:		firefox52-esr
+Version:	52.2.0
+Release:	1
+License:	MPL v2.0
+Group:		X11/Applications/Networking
+Source0:	http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}esr/source/firefox-%{version}esr.source.tar.xz
+# Source0-md5:	512594d84c9aec3fb094eb4bba10e441
+Source3:	%{_basename}.desktop
+Source4:	%{_basename}.sh
+Source5:	vendor.js
+Source6:	vendor-ac.js
+Patch0:		idl-parser.patch
+Patch1:		xulrunner-new-libxul.patch
+Patch2:		xulrunner-paths.patch
+Patch3:		xulrunner-pc.patch
+Patch4:		%{_basename}-prefs.patch
+Patch5:		%{_basename}-pld-bookmarks.patch
+Patch6:		%{_basename}-no-subshell.patch
+Patch7:		%{_basename}-middle_click_paste.patch
+Patch8:		%{_basename}-system-virtualenv.patch
+Patch9:		%{_basename}-Disable-Firefox-Health-Report.patch
+Patch10:	freetype.patch
+URL:		https://www.mozilla.org/firefox/
+BuildRequires:	OpenGL-devel
+BuildRequires:	alsa-lib-devel
+BuildRequires:	automake
+BuildRequires:	autoconf2_13
+BuildRequires:	bzip2-devel
+BuildRequires:	cairo-devel >= 1.10.2-5
+BuildRequires:	dbus-glib-devel >= 0.60
+BuildRequires:	fontconfig-devel >= 1:2.7.0
+BuildRequires:	freetype-devel >= 1:2.1.8
+BuildRequires:	gcc-c++ >= 6:4.4
+BuildRequires:	glib2-devel >= 1:2.22
+BuildRequires:	gstreamer-devel >= 1.0
+BuildRequires:	gstreamer-plugins-base-devel >= 1.0
+%{!?with_gtk3:BuildRequires:	gtk+2-devel >= 2:2.18.0}
+%{?with_gtk3:BuildRequires:	gtk+3-devel >= 3.4.0}
+%{?with_kerberos:BuildRequires:	heimdal-devel >= 0.7.1}
+BuildRequires:	hunspell-devel >= 1.2.3
+BuildRequires:	libIDL-devel >= 0.8.0
+# DECnet (dnprogs.spec), not dummy net (libdnet.spec)
+#BuildRequires:	libdnet-devel
+BuildRequires:	libevent-devel >= 1.4.7
+# standalone libffi 3.0.9 or gcc's from 4.5(?)+
+BuildRequires:	libffi-devel >= 6:3.0.9
+%{?with_system_icu:BuildRequires:	libicu-devel >= 58.1}
+# requires libjpeg-turbo implementing at least libjpeg 6b API
+BuildRequires:	libjpeg-devel >= 6b
+BuildRequires:	libjpeg-turbo-devel
+BuildRequires:	libpng(APNG)-devel >= 0.10
+BuildRequires:	libpng-devel >= 2:1.6.25
+BuildRequires:	libstdc++-devel >= 6:4.4
+BuildRequires:	libvpx-devel >= 1.5.0
+BuildRequires:	nspr-devel >= 1:%{nspr_ver}
+BuildRequires:	nss-devel >= 1:%{nss_ver}
+BuildRequires:	pango-devel >= 1:1.22.0
+BuildRequires:	pixman-devel >= 0.19.2
+BuildRequires:	perl-modules >= 5.004
+BuildRequires:	pkgconfig
+BuildRequires:	pkgconfig(libffi) >= 3.0.9
+BuildRequires:	pulseaudio-devel
+BuildRequires:	python-modules >= 1:2.5
+%{?with_pgo:BuildRequires:	python-modules-sqlite}
+BuildRequires:	python-simplejson
+BuildRequires:	python-virtualenv >= 15
+BuildRequires:	readline-devel
+BuildRequires:	rpm >= 4.4.9-56
+BuildRequires:	rpmbuild(macros) >= 1.601
+BuildRequires:	sed >= 4.0
+BuildRequires:	sqlite3-devel >= 3.17.0
+BuildRequires:	startup-notification-devel >= 0.8
+BuildRequires:	xorg-lib-libX11-devel
+BuildRequires:	xorg-lib-libXScrnSaver-devel
+BuildRequires:	xorg-lib-libXcomposite-devel
+BuildRequires:	xorg-lib-libXdamage-devel
+BuildRequires:	xorg-lib-libXext-devel
+BuildRequires:	xorg-lib-libXfixes-devel
+BuildRequires:	xorg-lib-libXinerama-devel
+BuildRequires:	xorg-lib-libXt-devel
+%{?with_pgo:BuildRequires:	xorg-xserver-Xvfb}
+%ifarch %{x8664}
+BuildRequires:	yasm >= 1.0.1
+%endif
+BuildRequires:	zip
+BuildRequires:	zlib-devel >= 1.2.3
+BuildConflicts:	%{name}-devel < %{version}
+Requires(post):	mktemp >= 1.5-18
+Requires:	browser-plugins >= 2.0
+Requires:	desktop-file-utils
+Requires:	hicolor-icon-theme
+Requires:	myspell-common
+Requires:	nspr >= 1:%{nspr_ver}
+Requires:	nss >= 1:%{nss_ver}
+Requires:	%{name}-libs = %{version}-%{release}
+Provides:	wwwbrowser
+Obsoletes:	iceweasel
+Obsoletes:	mozilla-firebird
+Obsoletes:	mozilla-firefox
+Obsoletes:	mozilla-firefox-lang-en < 2.0.0.8-3
+Obsoletes:	mozilla-firefox-libs
+Obsoletes:	xulrunner
+Obsoletes:	xulrunner-gnome
+Conflicts:	firefox-lang-resources < %{version}
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define		filterout_cpp		-D_FORTIFY_SOURCE=[0-9]+
+
+# don't satisfy other packages
+%define		_noautoprovfiles	%{_libdir}/%{name}
+
+# and as we don't provide them, don't require either
+%define		_noautoreq	libmozjs.so libxul.so
+
+%description
+Firefox is an open-source web browser, designed for standards
+compliance, performance and portability.
+
+%description -l hu.UTF-8
+Firefox egy nyílt forrású webböngésző, hatékonyságra és
+hordozhatóságra tervezve.
+
+%description -l pl.UTF-8
+Firefox jest przeglądarką WWW rozpowszechnianą zgodnie z ideami
+ruchu otwartego oprogramowania oraz tworzoną z myślą o zgodności ze
+standardami, wydajnością i przenośnością.
+
+%package libs
+Summary:	Firefox shared libraries
+Summary(pl.UTF-8):	Biblioteki współdzielone Firefoxa
+Group:		X11/Libraries
+Requires:	cairo >= 1.10.2-5
+Requires:	dbus-glib >= 0.60
+Requires:	fontconfig-libs >= 1:2.7.0
+Requires:	glib2 >= 1:2.22
+%{!?with_gtk3:Requires:	gtk+2 >= 2:2.18.0}
+%{?with_gtk3:Requires:	gtk+3 >= 3.4.0}
+Requires:	libjpeg-turbo
+Requires:	libpng >= 2:1.6.25
+Requires:	libpng(APNG) >= 0.10
+Requires:	libvpx >= 1.5.0
+Requires:	pango >= 1:1.22.0
+Requires:	sqlite3 >= %{sqlite_build_version}
+Requires:	startup-notification >= 0.8
+Provides:	xulrunner-libs = 2:%{version}-%{release}
+Obsoletes:	iceweasel-libs
+Obsoletes:	xulrunner-libs
+
+%description libs
+XULRunner shared libraries.
+
+%description libs -l pl.UTF-8
+Biblioteki współdzielone XULRunnera.
+
+%package devel
+Summary:	Headers for developing programs that will use Firefox
+Summary(pl.UTF-8):	Pliki nagłówkowe do tworzenia programów używających Firefox
+Group:		X11/Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+Requires:	nspr-devel >= 1:%{nspr_ver}
+Requires:	nss-devel >= 1:%{nss_ver}
+Requires:	python-ply
+Provides:	xulrunner-devel = 2:%{version}-%{release}
+Obsoletes:	iceweasel-devel
+Obsoletes:	mozilla-devel
+Obsoletes:	mozilla-firefox-devel
+Obsoletes:	seamonkey-devel
+Obsoletes:	xulrunner-devel
+
+%description devel
+Firefox development package.
+
+%description devel -l pl.UTF-8
+Pakiet programistyczny Firefoxa.
+
+%prep
+%setup -q -n %{_basename}-%{version}esr
+
+# avoid using included headers (-I. is before HUNSPELL_CFLAGS)
+%{__rm} extensions/spellcheck/hunspell/src/{*.hxx,hunspell.h}
+# hunspell needed for factory including mozHunspell.h
+echo 'LOCAL_INCLUDES += $(MOZ_HUNSPELL_CFLAGS)' >> extensions/spellcheck/src/Makefile.in
+
+%patch0 -p2
+%patch1 -p1
+%patch2 -p2
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p2
+%patch7 -p1
+%patch8 -p2
+%patch9 -p1
+%patch10 -p2
+
+%{__sed} -i -e '1s,/usr/bin/env python,%{__python},' xpcom/typelib/xpt/tools/xpt.py xpcom/idl-parser/xpidl/xpidl.py
+
+%if %{with pgo}
+%{__sed} -i -e 's at __BROWSER_PATH__@"../../dist/bin/firefox-bin"@' build/automation.py.in
+%endif
+
+%build
+cp -p %{_datadir}/automake/config.* build/autoconf
+
+cat << 'EOF' > .mozconfig
+. $topsrcdir/browser/config/mozconfig
+
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-%{_target_cpu}
+
+# Options for 'configure' (same as command-line options).
+ac_add_options --host=%{_target_platform}
+ac_add_options --prefix=%{_prefix}
+%if %{?debug:1}0
+ac_add_options --disable-optimize
+ac_add_options --enable-debug
+ac_add_options --enable-debug-modules
+ac_add_options --enable-debugger-info-modules
+ac_add_options --enable-crash-on-assert
+%else
+ac_add_options --disable-debug
+ac_add_options --enable-optimize="%{rpmcflags} -Os"
+%endif
+ac_add_options --disable-strip
+ac_add_options --disable-install-strip
+%if %{with tests}
+ac_add_options --enable-tests
+ac_add_options --enable-mochitest
+%else
+%if %{with pgo}
+ac_add_options --enable-tests
+%else
+ac_add_options --disable-tests
+%endif
+%endif
+ac_add_options --disable-crashreporter
+ac_add_options --disable-gconf
+ac_add_options --disable-gnomeui
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-updater
+ac_add_options --enable-alsa
+ac_add_options --enable-chrome-format=omni
+ac_add_options --enable-default-toolkit=%{?with_gtk3:cairo-gtk3}%{!?with_gtk3:cairo-gtk2}
+ac_add_options --enable-extensions=default
+ac_add_options --enable-gio
+ac_add_options --enable-readline
+ac_add_options --enable-safe-browsing
+%{?with_shared_js:ac_add_options --enable-shared-js}
+ac_add_options --enable-startup-notification
+ac_add_options --enable-system-cairo
+ac_add_options --enable-system-ffi
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-url-classifier
+%{?with_official:ac_add_options --enable-official-branding}
+ac_add_options --with-default-mozilla-five-home=%{_libdir}/%{name}
+ac_add_options --with-distribution-id=org.pld-linux
+ac_add_options --with-pthreads
+ac_add_options --with-system-bz2
+ac_add_options --with%{!?with_system_icu:out}-system-icu
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-libevent
+ac_add_options --with-system-libvpx
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-png
+ac_add_options --with-system-zlib
+ac_add_options --with-x
+EOF
+
+%if %{with pgo}
+D=$(( RANDOM % (200 - 100 + 1 ) + 5 ))
+/usr/bin/Xvfb :${D} &
+XVFB_PID=$!
+[ -n "$XVFB_PID" ] || exit 1
+export DISPLAY=:${D}
+%{__make} -j1 -f client.mk profiledbuild \
+	AUTOCONF=/usr/bin/autoconf2_13 \
+	DESTDIR=obj-%{_target_cpu}/dist \
+	MOZ_MAKE_FLAGS="%{_smp_mflags}"
+kill $XVFB_PID
+%else
+%{__make} -j1 -f client.mk build \
+	AUTOCONF=/usr/bin/autoconf2_13 \
+	MOZ_MAKE_FLAGS="%{_smp_mflags}"
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d \
+	$RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_libdir}} \
+	$RPM_BUILD_ROOT%{_desktopdir} \
+	$RPM_BUILD_ROOT%{_datadir}/%{name}/browser \
+	$RPM_BUILD_ROOT%{_libdir}/%{name}/browser/plugins \
+	$RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/{lib,bin} \
+	$RPM_BUILD_ROOT%{_includedir}/%{name} \
+	$RPM_BUILD_ROOT%{_datadir}/idl/%{name} \
+	$RPM_BUILD_ROOT%{_pkgconfigdir}
+
+%browser_plugins_add_browser %{name} -p %{_libdir}/%{name}/browser/plugins
+
+cd obj-%{_target_cpu}
+%{__make} -C browser/installer stage-package libxul.pc libxul-embedding.pc mozilla-js.pc mozilla-plugin.pc \
+	DESTDIR=$RPM_BUILD_ROOT \
+	installdir=%{_libdir}/%{name} \
+	INSTALL_SDK=1 \
+	PKG_SKIP_STRIP=1
+
+cp -aL browser/installer/*.pc $RPM_BUILD_ROOT%{_pkgconfigdir}
+cp -aL dist/firefox/* $RPM_BUILD_ROOT%{_libdir}/%{name}/
+cp -aL dist/idl/* $RPM_BUILD_ROOT%{_datadir}/idl/%{name}
+cp -aL dist/include/* $RPM_BUILD_ROOT%{_includedir}/%{name}
+cp -aL dist/include/xpcom-config.h $RPM_BUILD_ROOT%{_libdir}/%{name}-devel
+cp -aL dist/sdk/lib/* $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib
+cp -aL dist/sdk/bin/* $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/bin
+find $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk -name "*.pyc" | xargs rm -f
+
+ln -s %{_libdir}/%{name} $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/bin
+ln -s %{_includedir}/%{name} $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/include
+ln -s %{_datadir}/idl/%{name} $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/idl
+ln -s %{_libdir}/%{name}-devel/sdk/lib $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/lib
+
+# replace copies with symlinks
+%{?with_shared_js:ln -sf %{_libdir}/%{name}/libmozjs.so $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib/libmozjs.so}
+ln -sf %{_libdir}/%{name}/libxul.so $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/lib/libxul.so
+# temp fix for https://bugzilla.mozilla.org/show_bug.cgi?id=63955
+chmod a+rx $RPM_BUILD_ROOT%{_libdir}/%{name}-devel/sdk/bin/xpt.py
+
+# move arch independant ones to datadir
+mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/chrome $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/chrome
+mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/extensions $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/extensions
+mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/icons $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/icons
+mv $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults
+mv $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/{pref,preferences}
+
+ln -s ../../../share/%{name}/browser/chrome $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/chrome
+ln -s ../../../share/%{name}/browser/defaults $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/defaults
+ln -s ../../../share/%{name}/browser/extensions $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/extensions
+ln -s ../../../share/%{name}/browser/icons $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/icons
+
+%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
+ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
+
+sed 's, at LIBDIR@,%{_libdir},;s, at NAME@,%{name},' %{SOURCE4} > $RPM_BUILD_ROOT%{_bindir}/%{name}
+chmod 755 $RPM_BUILD_ROOT%{_bindir}/%{name}
+
+# install icons and desktop file
+for i in 16 32 48 %{?with_official:22 24 256}; do
+	install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps
+	cp -a ../browser/branding/%{!?with_official:un}official/default${i}.png \
+		$RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/%{name}.png
+done
+
+cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
+
+# install our settings
+%if "%{pld_release}" == "ac"
+cp -a %{SOURCE6} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js
+%else
+cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/preferences/vendor.js
+%endif
+
+cat << 'EOF' > $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate
+#!/bin/sh
+umask 022
+rm -f %{_libdir}/%{name}/browser/components/{compreg,xpti}.dat
+
+# it attempts to touch files in $HOME/.mozilla
+# beware if you run this with sudo!!!
+export HOME=$(mktemp -d)
+# also TMPDIR could be pointing to sudo user's homedir
+unset TMPDIR TMP || :
+
+%{_libdir}/%{name}/firefox -register
+
+rm -rf $HOME
+EOF
+chmod 755 $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+%{_sbindir}/%{name}-chrome+xpcom-generate
+%update_browser_plugins
+%update_icon_cache hicolor
+%update_desktop_database
+
+%postun
+if [ "$1" = 0 ]; then
+	%update_browser_plugins
+	%update_icon_cache hicolor
+fi
+
+%files
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/%{name}
+%attr(755,root,root) %{_sbindir}/%{name}-chrome+xpcom-generate
+
+%{_desktopdir}/%{name}.desktop
+%{_iconsdir}/hicolor/*/apps/%{name}.png
+
+# browser plugins v2
+%{_browserpluginsconfdir}/browsers.d/%{name}.*
+%config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
+
+%dir %{_libdir}/%{name}/browser
+%dir %{_libdir}/%{name}/browser/plugins
+%dir %{_libdir}/%{name}/browser/features
+
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/browser
+%dir %{_datadir}/%{name}/browser/extensions
+%{_datadir}/%{name}/browser/chrome
+%{_datadir}/%{name}/browser/defaults
+%{_datadir}/%{name}/browser/icons
+
+# symlinks
+%{_libdir}/%{name}/browser/extensions
+%{_libdir}/%{name}/browser/chrome
+%{_libdir}/%{name}/browser/icons
+%{_libdir}/%{name}/browser/defaults
+
+%attr(755,root,root) %{_libdir}/%{name}/firefox
+%attr(755,root,root) %{_libdir}/%{name}/firefox-bin
+%attr(755,root,root) %{_libdir}/%{name}/run-mozilla.sh
+%{_libdir}/%{name}/application.ini
+%{_libdir}/%{name}/chrome.manifest
+%{_libdir}/%{name}/browser/blocklist.xml
+%{_libdir}/%{name}/browser/chrome.manifest
+# the signature of the default theme
+%{_datadir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
+%{_libdir}/%{name}/browser/omni.ja
+
+%{_libdir}/%{name}/browser/features/aushelper at mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/e10srollout at mozilla.org.xpi
+%{_libdir}/%{name}/browser/features/firefox at getpocket.com.xpi
+%{_libdir}/%{name}/browser/features/webcompat at mozilla.org.xpi
+
+%attr(755,root,root) %{_libdir}/%{name}/plugin-container
+%{_libdir}/%{name}/dictionaries
+
+%dir %{_libdir}/%{name}/fonts
+%{_libdir}/%{name}/fonts/EmojiOneMozilla.ttf
+
+%dir %{_libdir}/%{name}/gmp-clearkey
+%dir %{_libdir}/%{name}/gmp-clearkey/0.1
+%{_libdir}/%{name}/gmp-clearkey/0.1/clearkey.info
+%attr(755,root,root) %{_libdir}/%{name}/gmp-clearkey/0.1/libclearkey.so
+%{!?with_system_icu:%{_libdir}/%{name}//icudt58l.dat}
+
+%files libs
+%defattr(644,root,root,755)
+%dir %{_libdir}/%{name}
+%{_libdir}/%{name}/platform.ini
+%{?with_shared_js:%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so}
+%attr(755,root,root) %{_libdir}/%{name}/liblgpllibs.so
+%attr(755,root,root) %{_libdir}/%{name}/libxul.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozavcodec.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozavutil.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozsandbox.so
+%{_libdir}/%{name}/dependentlibs.list
+%{_libdir}/%{name}/omni.ja
+%if %{with gtk3}
+%dir %{_libdir}/%{name}/gtk2
+%attr(755,root,root) %{_libdir}/%{name}/gtk2/libmozgtk.so
+%attr(755,root,root) %{_libdir}/%{name}/libmozgtk.so
+%endif
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/%{name}
+%{_datadir}/idl/%{name}
+%dir %{_libdir}/%{name}-devel
+%{_libdir}/%{name}-devel/bin
+%{_libdir}/%{name}-devel/idl
+%{_libdir}/%{name}-devel/lib
+%{_libdir}/%{name}-devel/include
+%{_libdir}/%{name}-devel/*.h
+%dir %{_libdir}/%{name}-devel/sdk
+%{_libdir}/%{name}-devel/sdk/lib
+%dir %{_libdir}/%{name}-devel/sdk/bin
+%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/header.py
+%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/run-mozilla.sh
+%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/typelib.py
+%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/xpcshell
+%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/xpidl.py
+%{_libdir}/%{name}-devel/sdk/bin/xpidllex.py
+%{_libdir}/%{name}-devel/sdk/bin/xpidlyacc.py
+%attr(755,root,root) %{_libdir}/%{name}-devel/sdk/bin/xpt.py
+%{_libdir}/%{name}-devel/sdk/bin/ply
+
+%{_pkgconfigdir}/libxul.pc
+%{_pkgconfigdir}/libxul-embedding.pc
+%{_pkgconfigdir}/mozilla-js.pc
+%{_pkgconfigdir}/mozilla-plugin.pc
diff --git a/firefox-Disable-Firefox-Health-Report.patch b/firefox-Disable-Firefox-Health-Report.patch
new file mode 100644
index 0000000..7edc4ba
--- /dev/null
+++ b/firefox-Disable-Firefox-Health-Report.patch
@@ -0,0 +1,12 @@
+--- firefox-49.0.1/toolkit/components/telemetry/healthreport-prefs.js~	2016-06-01 06:11:41.000000000 +0200
++++ firefox-49.0.1/toolkit/components/telemetry/healthreport-prefs.js	2016-10-02 09:39:52.367936470 +0200
+@@ -4,7 +4,7 @@
+ 
+ pref("datareporting.healthreport.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#health-report");
+ 
+-// Health Report is enabled by default on all channels.
+-pref("datareporting.healthreport.uploadEnabled", true);
++// Health Report is disabled by default on all channels.
++pref("datareporting.healthreport.uploadEnabled", false);
+ 
+ pref("datareporting.healthreport.about.reportUrl", "https://fhr.cdn.mozilla.net/%LOCALE%/v4/");
diff --git a/firefox-middle_click_paste.patch b/firefox-middle_click_paste.patch
new file mode 100644
index 0000000..d857fba
--- /dev/null
+++ b/firefox-middle_click_paste.patch
@@ -0,0 +1,19 @@
+diff -ruNp firefox-45.0.2.orig/browser/base/content/browser.js firefox-45.0.2/browser/base/content/browser.js
+--- firefox-45.0.2.orig/browser/base/content/browser.js	2016-04-08 01:54:45.000000000 +0200
++++ firefox-45.0.2/browser/base/content/browser.js	2016-04-24 04:35:13.146499537 +0200
+@@ -5646,12 +5646,9 @@ function middleMousePaste(event) {
+   }
+ 
+   getShortcutOrURIAndPostData(clipboard).then(data => {
+-    try {
+-      makeURI(data.url);
+-    } catch (ex) {
+-      // Not a valid URI.
+-      return;
+-    }
++    var URIFixup = Components.classes["@mozilla.org/docshell/urifixup;1"].getService(Components.interfaces.nsIURIFixup);
++    data.url = URIFixup.createFixupURI(data.url, 1).spec;
++    // 1 is FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP
+ 
+     try {
+       addToUrlbarHistory(data.url);
diff --git a/firefox-no-subshell.patch b/firefox-no-subshell.patch
new file mode 100644
index 0000000..2378566
--- /dev/null
+++ b/firefox-no-subshell.patch
@@ -0,0 +1,11 @@
+--- iceweasel-3.0.10/mozilla/build/unix/run-mozilla.sh~	2007-09-04 20:09:31.000000000 +0300
++++ iceweasel-3.0.10/mozilla/build/unix/run-mozilla.sh	2009-05-05 19:20:55.718561642 +0300
+@@ -438,7 +438,7 @@
+ then
+ 	moz_debug_program ${1+"$@"}
+ else
+-	moz_run_program ${1+"$@"}
++	exec "$MOZ_PROGRAM" ${1+"$@"}
+ fi
+ 
+ exit $exitcode
diff --git a/firefox-pld-bookmarks.patch b/firefox-pld-bookmarks.patch
new file mode 100644
index 0000000..afbb230
--- /dev/null
+++ b/firefox-pld-bookmarks.patch
@@ -0,0 +1,18 @@
+diff -ruN firefox-52.0.orig/browser/locales/generic/profile/bookmarks.html.in firefox-52.0/browser/locales/generic/profile/bookmarks.html.in
+--- firefox-52.0.orig/browser/locales/generic/profile/bookmarks.html.in	2017-02-27 17:10:58.000000000 +0100
++++ firefox-52.0/browser/locales/generic/profile/bookmarks.html.in	2017-03-09 10:43:14.423697112 +0100
+@@ -38,6 +38,14 @@
+             <dt><a href="https://www.mozilla.org/@AB_CD@/contribute/" icon="@mozilla_icon@">@firefox_community@</a>
+             <dt><a href="https://www.mozilla.org/@AB_CD@/about/" icon="@mozilla_icon@">@firefox_about@</a>
+         </dl>
++    <p><dt><h3>PLD Linux Distribution</h3></dt>
++        <dl><p>
++	    <dt><a href="http://www.pld-linux.org/" icon_uri="http://www.pld-linux.org/favicon.ico" icon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHUlEQVQ4jc1SwWqDQBB91pyFpsWLSGklRVHw7CnJLyTpzaMf4Dck5Feay4bc96T4BQkevCTiXc0nTA9lxbIJ2FP7YFh2Zt+bN8MCfw1lyKPmWhNjDACwWq3w9Pjc8UZDBBhj4JxjPB5j97n7UXu4RTjlR2quNYk75xwA0LYtJu8T9GsSNts1KSrIcW3aHxg115oM0yDHtUlRQcuPxX2ywGw+JUUFGaZBaZaQoqKLQQKiq3DSF0iz5L7AKT92RTFKPxzXlsjdEtMsId/3ISzqui41iONYyo2E5eViiSiKEIYhLMui8/l802VZXUjTNOR5Ds/zvhOb7ZrK6iLZ2x8YzeZTMkxDOsWSlbK60OvL26Af2R+3KAoEQfAb2n/FF3KJkR/xf7tGAAAAAElFTkSuQmCC">PLD Home Page</a>
++            <dt><a href="http://www.pld-users.org/" icon_uri="http://www.pld-linux.org/favicon.ico" icon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHUlEQVQ4jc1SwWqDQBB91pyFpsWLSGklRVHw7CnJLyTpzaMf4Dck5Feay4bc96T4BQkevCTiXc0nTA9lxbIJ2FP7YFh2Zt+bN8MCfw1lyKPmWhNjDACwWq3w9Pjc8UZDBBhj4JxjPB5j97n7UXu4RTjlR2quNYk75xwA0LYtJu8T9GsSNts1KSrIcW3aHxg115oM0yDHtUlRQcuPxX2ywGw+JUUFGaZBaZaQoqKLQQKiq3DSF0iz5L7AKT92RTFKPxzXlsjdEtMsId/3ISzqui41iONYyo2E5eViiSiKEIYhLMui8/l802VZXUjTNOR5Ds/zvhOb7ZrK6iLZ2x8YzeZTMkxDOsWSlbK60OvL26Af2R+3KAoEQfAb2n/FF3KJkR/xf7tGAAAAAElFTkSuQmCC">PLD Users Wiki</a>
++            <dt><a href="http://docs.pld-linux.org/" icon_uri="http://www.pld-linux.org/favicon.ico" icon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHUlEQVQ4jc1SwWqDQBB91pyFpsWLSGklRVHw7CnJLyTpzaMf4Dck5Feay4bc96T4BQkevCTiXc0nTA9lxbIJ2FP7YFh2Zt+bN8MCfw1lyKPmWhNjDACwWq3w9Pjc8UZDBBhj4JxjPB5j97n7UXu4RTjlR2quNYk75xwA0LYtJu8T9GsSNts1KSrIcW3aHxg115oM0yDHtUlRQcuPxX2ywGw+JUUFGaZBaZaQoqKLQQKiq3DSF0iz5L7AKT92RTFKPxzXlsjdEtMsId/3ISzqui41iONYyo2E5eViiSiKEIYhLMui8/l802VZXUjTNOR5Ds/zvhOb7ZrK6iLZ2x8YzeZTMkxDOsWSlbK60OvL26Af2R+3KAoEQfAb2n/FF3KJkR/xf7tGAAAAAElFTkSuQmCC">PLD Documentation in English</a>
++            <dt><a href="http://pl.docs.pld-linux.org/" icon_uri="http://www.pld-linux.org/favicon.ico" icon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHUlEQVQ4jc1SwWqDQBB91pyFpsWLSGklRVHw7CnJLyTpzaMf4Dck5Feay4bc96T4BQkevCTiXc0nTA9lxbIJ2FP7YFh2Zt+bN8MCfw1lyKPmWhNjDACwWq3w9Pjc8UZDBBhj4JxjPB5j97n7UXu4RTjlR2quNYk75xwA0LYtJu8T9GsSNts1KSrIcW3aHxg115oM0yDHtUlRQcuPxX2ywGw+JUUFGaZBaZaQoqKLQQKiq3DSF0iz5L7AKT92RTFKPxzXlsjdEtMsId/3ISzqui41iONYyo2E5eViiSiKEIYhLMui8/l802VZXUjTNOR5Ds/zvhOb7ZrK6iLZ2x8YzeZTMkxDOsWSlbK60OvL26Af2R+3KAoEQfAb2n/FF3KJkR/xf7tGAAAAAElFTkSuQmCC">PLD Documentation in Polish</a>
++            <dt><a href="http://planet.pld-linux.org/" icon_uri="http://www.pld-linux.org/favicon.ico" icon="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABHUlEQVQ4jc1SwWqDQBB91pyFpsWLSGklRVHw7CnJLyTpzaMf4Dck5Feay4bc96T4BQkevCTiXc0nTA9lxbIJ2FP7YFh2Zt+bN8MCfw1lyKPmWhNjDACwWq3w9Pjc8UZDBBhj4JxjPB5j97n7UXu4RTjlR2quNYk75xwA0LYtJu8T9GsSNts1KSrIcW3aHxg115oM0yDHtUlRQcuPxX2ywGw+JUUFGaZBaZaQoqKLQQKiq3DSF0iz5L7AKT92RTFKPxzXlsjdEtMsId/3ISzqui41iONYyo2E5eViiSiKEIYhLMui8/l802VZXUjTNOR5Ds/zvhOb7ZrK6iLZ2x8YzeZTMkxDOsWSlbK60OvL26Af2R+3KAoEQfAb2n/FF3KJkR/xf7tGAAAAAElFTkSuQmCC">Planet PLD</a>
++        </dl>
+ #else
+         <dl>
+             <p><dt><a href="https://www.mozilla.org/@AB_CD@/contribute/" icon="@mozilla_icon@">@firefox_community@</a>
diff --git a/firefox-prefs.patch b/firefox-prefs.patch
new file mode 100644
index 0000000..b3d6f73
--- /dev/null
+++ b/firefox-prefs.patch
@@ -0,0 +1,65 @@
+diff -ur mozilla.orig/browser/app/profile/firefox.js mozilla/browser/app/profile/firefox.js
+--- mozilla.orig/browser/app/profile/firefox.js	2008-06-21 12:55:30.000000000 +0200
++++ mozilla/browser/app/profile/firefox.js	2008-06-21 15:25:48.000000000 +0200
+@@ -94,7 +94,7 @@ pref("extensions.hotfix.certs.1.sha1Fingerprint", "F1:DB:F9:6A:7B:B8:04:FA:48:3C
+ 
+ // Disable add-ons that are not installed by the user in all scopes by default.
+ // See the SCOPE constants in AddonManager.jsm for values to use here.
+-pref("extensions.autoDisableScopes", 15);
++pref("extensions.autoDisableScopes", 3);
+ 
+ // Dictionary download preference
+ pref("browser.dictionaries.download.url", "https://addons.mozilla.org/%LOCALE%/firefox/dictionaries/");
+@@ -157,12 +157,12 @@
+ pref("app.update.cert.checkAttributes", false);
+ 
+ // Whether or not app updates are enabled
+-pref("app.update.enabled", true);
++pref("app.update.enabled", false);
+ 
+ // If set to true, the Update Service will automatically download updates when
+ // app updates are enabled per the app.update.enabled preference and if the user
+ // can apply updates.
+-pref("app.update.auto", true);
++pref("app.update.auto", false);
+ 
+ // If set to true, the Update Service will present no UI for any event.
+ pref("app.update.silent", false);
+@@ -252,7 +252,7 @@
+ pref("general.useragent.complexOverride.moodle", false); // bug 797703
+ 
+ // At startup, check if we're the default browser and prompt user if not.
+-pref("browser.shell.checkDefaultBrowser", true);
++pref("browser.shell.checkDefaultBrowser", false);
+ pref("browser.shell.shortcutFavicons",true);
+ 
+ // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session
+@@ -448,6 +448,8 @@
+ //  0: no backups created (and deletes all existing backups)
+ pref("browser.bookmarks.max_backups",             10);
+ 
++pref("intl.locale.matchOS", true);
++
+ // Scripts & Windows prefs
+ pref("dom.disable_open_during_load",              true);
+ pref("javascript.options.showInConsole",          true);
+@@ -574,7 +576,7 @@
+ pref("alerts.totalOpenTime", 4000);
+ 
+ pref("browser.xul.error_pages.enabled", true);
+-pref("browser.xul.error_pages.expert_bad_cert", false);
++pref("browser.xul.error_pages.expert_bad_cert", true);
+ 
+ // Work Offline is best manually managed by the user.
+ pref("network.manage-offline-status", false);
+--- a/modules/libpref/init/all.js
++++ b/modules/libpref/init/all.js
+@@ -1510,7 +1510,7 @@ pref("layout.css.visited_links_enabled", true);
+ // A value of 0 means use the system DPI. A positive value is used as the DPI.
+ // This sets the physical size of a device pixel and thus controls the
+ // interpretation of physical units such as "pt".
+-pref("layout.css.dpi", -1);
++pref("layout.css.dpi", 0);
+ 
+ // Set the number of device pixels per CSS pixel. A value <= 0 means choose
+ // automatically based on user settings for the platform (e.g., "UI scale factor"
diff --git a/firefox-system-virtualenv.patch b/firefox-system-virtualenv.patch
new file mode 100644
index 0000000..c97400c
--- /dev/null
+++ b/firefox-system-virtualenv.patch
@@ -0,0 +1,12 @@
+--- xulrunner-27.0/mozilla/python/mozbuild/mozbuild/virtualenv.py~	2013-05-11 21:19:23.000000000 +0200
++++ xulrunner-27.0/mozilla/python/mozbuild/mozbuild/virtualenv.py	2013-05-14 22:51:32.136719267 +0200
+@@ -37,8 +37,7 @@
+     @property
+     def virtualenv_script_path(self):
+         """Path to virtualenv's own populator script."""
+-        return os.path.join(self.topsrcdir, 'python', 'virtualenv',
+-            'virtualenv.py')
++        return '/usr/bin/virtualenv-2'
+ 
+     @property
+     def python_path(self):
diff --git a/firefox.desktop b/firefox.desktop
new file mode 100644
index 0000000..c515b2c
--- /dev/null
+++ b/firefox.desktop
@@ -0,0 +1,80 @@
+[Desktop Entry]
+Name=Firefox
+Name[pl]=Firefox
+GenericName=Web Browser
+GenericName[af]=Web Blaaier
+GenericName[ar]=متصفح ويب
+GenericName[az]=Veb Səyyahı
+GenericName[bg]=Браузър
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[br]=Furcher ar Gwiad
+GenericName[bs]=WWW Preglednik
+GenericName[ca]=Fullejador web
+GenericName[cs]=WWW prohlížeč
+GenericName[cy]=Porydd Gwe
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής Ιστού
+GenericName[eo]=TTT-legilo
+GenericName[es]=Navegador web
+GenericName[et]=Veebilehitseja
+GenericName[eu]=Web arakatzailea
+GenericName[fa]=مرورگر وب
+GenericName[fi]=WWW-selain
+GenericName[fo]=Alnótsfar
+GenericName[fr]=Navigateur web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[is]=Vafri
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[lo]=ເວັບບຣາວເຊີ
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Web Pārlūks
+GenericName[mk]=Прелистувач на Интернет
+GenericName[mn]=Веб-Хөтөч
+GenericName[nb]=Nettleser
+GenericName[nds]=Nettkieker
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[nso]=Seinyakisi sa Web
+GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt_BR]=Navegador Web
+GenericName[pt]=Navegador Web
+GenericName[ro]=Navigator de web
+GenericName[ru]=Веб-браузер
+GenericName[se]=Fierpmádatlogan
+GenericName[sk]=Webový prehliadač
+GenericName[sl]=Spletni brskalnik
+GenericName[sr at latin]=Veb pretraživač
+GenericName[sr]=Веб претраживач
+GenericName[ss]=Ibrawuza yeWeb
+GenericName[sv]=Webbläsare
+GenericName[ta]=வலை உலாவி
+GenericName[tg]=Тафсиргари вэб
+GenericName[th]=เว็บบราวเซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[uz]=Веб-браузер
+GenericName[ven]=Buronza ya Webu
+GenericName[vi]=Trình duyệt Web
+GenericName[wa]=Betchteu waibe
+GenericName[xh]=Umkhangeli zincwadi we Web
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_TW]=網頁瀏覽器
+GenericName[zu]=Umcingi we-Web
+Comment=Browse the Web powered by Mozilla technology
+Comment[pl]=Przeglądarka WWW oparta o technologię Mozilli
+Exec=firefox %u
+Icon=firefox
+Terminal=false
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
+Type=Application
+StartupNotify=true
+Categories=GTK;Network;WebBrowser;
+# vi: encoding=utf-8
diff --git a/firefox.sh b/firefox.sh
new file mode 100644
index 0000000..b0041e6
--- /dev/null
+++ b/firefox.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+# based on script by (c) vip at linux.pl, wolf at pld-linux.org
+
+LIBDIR="@LIBDIR@/@NAME@"
+
+# copy profile from Iceweasel if its available and if no Firefox
+# profile exists
+if [ ! -d $HOME/.mozilla/firefox ]; then
+	if [ -d $HOME/.iceweasel ]; then
+		echo "Copying profile from Iceweasel"
+		cp -rf $HOME/.iceweasel $HOME/.mozilla/firefox
+	fi
+fi
+
+# compreg.dat and/or chrome.rdf will screw things up if it's from an
+# older version.  http://bugs.gentoo.org/show_bug.cgi?id=63999
+for f in ~/.mozilla/firefox/*/{compreg.dat,chrome.rdf,XUL.mfasl}; do
+	if [[ -f ${f} && ${f} -ot /usr/bin/firefox ]]; then
+		echo "Removing ${f} leftover from older firefox"
+		rm -f "${f}"
+	fi
+done
+
+FIREFOX="$LIBDIR/firefox"
+PWD=${PWD:-$(pwd)}
+
+if [ -z "$1" ]; then
+	exec $FIREFOX
+else
+	if [ -f "$PWD/$1" ]; then
+		URL="file://$PWD/$1"
+	else
+		URL="$1"
+	fi
+	if ! grep -q browser.tabs.opentabfor.middleclick.*false ~/.firefox/*/prefs.js; then
+		exec $FIREFOX -new-tab "$URL"
+	else
+		exec $FIREFOX -new-window "$URL"
+	fi
+fi
diff --git a/freetype.patch b/freetype.patch
new file mode 100644
index 0000000..b68208e
--- /dev/null
+++ b/freetype.patch
@@ -0,0 +1,10 @@
+--- iceweasel-41.0.1/mozilla/config/system-headers~	2015-09-29 23:44:56.000000000 +0200
++++ iceweasel-41.0.1/mozilla/config/system-headers	2015-10-13 22:19:29.758370730 +0200
+@@ -454,6 +454,7 @@
+ frame/log.h
+ frame/req.h
+ freetype/freetype.h
++freetype/ftfntfmt.h
+ freetype/ftcache.h
+ freetype/ftglyph.h
+ freetype/ftsynth.h
diff --git a/idl-parser.patch b/idl-parser.patch
new file mode 100644
index 0000000..6ac5679
--- /dev/null
+++ b/idl-parser.patch
@@ -0,0 +1,27 @@
+--- xulrunner-10.0/mozilla/xpcom/idl-parser/xpidl/typelib.py.wiget	2012-02-09 16:31:01.826758036 +0100
++++ xulrunner-10.0/mozilla/xpcom/idl-parser/xpidl/typelib.py	2012-02-09 16:32:26.473475659 +0100
+@@ -276,7 +276,7 @@ if __name__ == '__main__':
+     o = OptionParser()
+     o.add_option('-I', action='append', dest='incdirs', default=['.'],
+                  help="Directory to search for imported files")
+-    o.add_option('--cachedir', dest='cachedir', default=None,
++    o.add_option('--cachedir', dest='cachedir', default='',
+                  help="Directory in which to cache lex/parse tables.")
+     o.add_option('-o', dest='outfile', default=None,
+                  help="Output file")
+@@ -287,13 +287,13 @@ if __name__ == '__main__':
+     options, args = o.parse_args()
+     file = args[0] if args else None
+ 
+-    if options.cachedir is not None:
++    if options.cachedir != '':
+         if not os.path.isdir(options.cachedir):
+             os.mkdir(options.cachedir)
+         sys.path.append(options.cachedir)
+ 
+     if options.regen:
+-        if options.cachedir is None:
++        if options.cachedir == '':
+             print >>sys.stderr, "--regen requires --cachedir"
+             sys.exit(1)
+ 
diff --git a/vendor-ac.js b/vendor-ac.js
new file mode 100644
index 0000000..9312cb3
--- /dev/null
+++ b/vendor-ac.js
@@ -0,0 +1,10 @@
+pref("general.useragent.vendor", "PLD");
+pref("general.useragent.vendorSub", "2.0");
+pref("general.useragent.vendorComment", "Ac");
+
+pref("general.useragent.compatMode.firefox", true);
+pref("distribution.searchplugins.defaultLocale", "en-US");
+// Forbid application updates
+lockPref("app.update.enabled", false);
+// POODLE protection, CVE-2014-3566
+pref("security.tls.version.min", 1);
diff --git a/vendor.js b/vendor.js
new file mode 100644
index 0000000..6bf1b78
--- /dev/null
+++ b/vendor.js
@@ -0,0 +1,10 @@
+pref("general.useragent.vendor", "PLD");
+pref("general.useragent.vendorSub", "3.0");
+pref("general.useragent.vendorComment", "Th");
+
+pref("general.useragent.compatMode.firefox", true);
+pref("distribution.searchplugins.defaultLocale", "en-US");
+// Forbid application updates
+lockPref("app.update.enabled", false);
+// POODLE protection, CVE-2014-3566
+pref("security.tls.version.min", 1);
diff --git a/xulrunner-new-libxul.patch b/xulrunner-new-libxul.patch
new file mode 100644
index 0000000..f4a527c
--- /dev/null
+++ b/xulrunner-new-libxul.patch
@@ -0,0 +1,12 @@
+diff -ruNp mozilla.orig/toolkit/mozapps/installer/packager.py mozilla/toolkit/mozapps/installer/packager.py
+--- mozilla.orig/toolkit/mozapps/installer/packager.py	2015-04-03 04:30:06.000000000 +0200
++++ mozilla/toolkit/mozapps/installer/packager.py	2015-04-10 14:52:45.133163567 +0200
+@@ -152,7 +152,7 @@ def precompile_cache(formatter, source_p
+     os.remove(cache)
+ 
+     try:
+-        extra_env = {'MOZ_STARTUP_CACHE': cache}
++        extra_env = {'MOZ_STARTUP_CACHE': cache, 'LD_PRELOAD': os.path.join(gre_path, 'libxul.so')}
+         if buildconfig.substs.get('MOZ_TSAN'):
+             extra_env['TSAN_OPTIONS'] = 'report_bugs=0'
+         if launcher.launch(['xpcshell', '-g', gre_path, '-a', app_path,
diff --git a/xulrunner-paths.patch b/xulrunner-paths.patch
new file mode 100644
index 0000000..8064c68
--- /dev/null
+++ b/xulrunner-paths.patch
@@ -0,0 +1,17 @@
+--- xulrunner-29.0/mozilla/config/baseconfig.mk~	2012-10-10 23:42:45.000000000 +0200
++++ xulrunner-29.0/mozilla/config/baseconfig.mk	2012-10-23 23:56:58.222368136 +0200
+@@ -2,10 +2,10 @@
+ # directly in python/mozbuild/mozbuild/base.py for gmake validation.
+ # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
+ # whether a normal build is happening or whether the check is running.
+-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+-sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
++includedir := $(includedir)/$(MOZ_APP_NAME)
++idldir = $(datadir)/idl/$(MOZ_APP_NAME)
++installdir = $(libdir)/$(MOZ_APP_NAME)
++sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel
+ ifeq (.,$(DEPTH))
+ DIST = dist
+ else
diff --git a/xulrunner-pc.patch b/xulrunner-pc.patch
new file mode 100644
index 0000000..55bffef
--- /dev/null
+++ b/xulrunner-pc.patch
@@ -0,0 +1,140 @@
+--- firefox-47.0/browser/installer/Makefile.in.orig	2016-06-01 06:11:40.000000000 +0200
++++ firefox-47.0/browser/installer/Makefile.in	2016-06-08 09:04:03.153657968 +0200
+@@ -160,6 +160,57 @@
+ 	-diff -u $(DIST)/pack-list.txt $(DIST)/bin-list.txt
+ 	rm -f $(DIST)/pack-list.txt $(DIST)/bin-list.txt
+ 
++# Add pkg-config files to the install:: target
++pkg_config_files = \
++	libxul.pc \
++	libxul-embedding.pc \
++	mozilla-js.pc \
++	mozilla-plugin.pc \
++	$(NULL)
++
++ifdef MOZ_NATIVE_NSPR
++NSPR_NAME=nspr
++NSPR_VERSION=$(shell $(NSPR_CONFIG) --version)
++else
++pkg_config_files += mozilla-nspr.pc
++NSPR_NAME=mozilla-nspr
++FULL_NSPR_CFLAGS=-I\$${includedir}
++FULL_NSPR_LIBS=$(subst $(prefix),\$${sdkdir},$(shell $(DEPTH)/nsprpub/config/nspr-config --libs))
++NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
++endif
++
++MOZ_XUL_LINK = -lxpcomglue_s -lxul
++ifdef JS_SHARED_LIBRARY
++MOZ_JS_LINK = -lmozjs
++else
++FINDPATH=bin
++MOZ_JS_LINK = $(MOZ_XUL_LINK)
++endif
++
++%.pc: $(srcdir)/%.pc.in $(GLOBAL_DEPS)
++	cat $< | sed \
++	-e "s|%prefix%|$(prefix)|" \
++	-e "s|%includedir%|$(includedir)|" \
++	-e "s|%idldir%|$(idldir)|" \
++	-e "s|%sdkdir%|$(sdkdir)|" \
++	-e "s|%libdir%|$(installdir)|" \
++	-e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
++	-e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
++	-e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
++	-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
++	-e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
++	-e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
++	-e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \
++	-e "s|%MOZ_XUL_LINK%|$(MOZ_XUL_LINK)|" \
++	-e "s|%MOZ_JS_LINK%|$(MOZ_JS_LINK)|" > $@
++	chmod 644 $@
++
++install:: $(pkg_config_files)
++	@echo pkg_config_file: $(pkg_config_files)
++	$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(libdir)/pkgconfig
++
++GARBAGE += $(pkg_config_files)
++
+ installer::
+ ifdef INSTALLER_DIR
+ 	$(MAKE) -C $(INSTALLER_DIR)
+--- /dev/null	2016-06-08 08:45:36.745941113 +0200
++++ firefox-47.0/browser/installer/libxul-embedding.pc.in	2016-06-08 09:03:04.106295573 +0200
+@@ -0,0 +1,11 @@
++prefix=%prefix%
++sdkdir=%sdkdir%
++includedir=%includedir%
++idldir=%idldir%
++
++Name: libxul-embedding
++Description: Static library for version-independent embedding of the Mozilla runtime
++Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
++Libs: -L${sdkdir}/lib -lxpcomglue -ldl
++Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+--- /dev/null	2016-06-08 08:45:36.745941113 +0200
++++ firefox-47.0/browser/installer/libxul.pc.in	2016-06-08 09:03:44.546774985 +0200
+@@ -0,0 +1,12 @@
++prefix=%prefix%
++sdkdir=%sdkdir%
++libdir=%libdir%
++includedir=%includedir%
++idldir=%idldir%
++
++Name: libxul
++Description: The Mozilla Runtime and Embedding Engine
++Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
++Libs: -L${sdkdir}/lib %MOZ_XUL_LINK%
++Cflags: -I${includedir} %WCHAR_CFLAGS%
+--- /dev/null	2016-06-08 08:45:36.745941113 +0200
++++ firefox-47.0/browser/installer/mozilla-js.pc.in	2016-06-08 09:03:36.890018556 +0200
+@@ -0,0 +1,10 @@
++prefix=%prefix%
++sdkdir=%sdkdir%
++includedir=%includedir%
++
++Name: JavaScript
++Description: The Mozilla JavaScript Library
++Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
++Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX
+--- /dev/null	2016-06-08 08:45:36.745941113 +0200
++++ firefox-47.0/browser/installer/mozilla-nspr.pc.in	2016-05-03 07:31:12.000000000 +0200
+@@ -0,0 +1,11 @@
++prefix=%prefix%
++sdkdir=%sdkdir%
++includedir=%includedir%/nspr
++
++Name: NSPR
++Description: The Netscape Portable Runtime
++Version: %NSPR_VERSION%
++Libs: %FULL_NSPR_LIBS%
++Cflags: %FULL_NSPR_CFLAGS%
++
++
+--- /dev/null	2016-06-08 08:45:36.745941113 +0200
++++ firefox-47.0/browser/installer/mozilla-nss.pc.in	2016-05-03 07:31:12.000000000 +0200
+@@ -0,0 +1,10 @@
++prefix=%prefix%
++sdkdir=%sdkdir%
++includedir=%includedir%/nss
++
++Name: NSS
++Description: Mozilla Network Security Services
++Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
++Libs: -L${sdkdir}/lib -lsmime3 -lssl3 -lnss3 -lnssutil3
++Cflags: -I${includedir}
+--- /dev/null	2016-06-08 08:45:36.745941113 +0200
++++ firefox-47.0/browser/installer/mozilla-plugin.pc.in	2016-05-03 07:31:12.000000000 +0200
+@@ -0,0 +1,8 @@
++prefix=%prefix%
++sdkdir=%sdkdir%
++includedir=%includedir%
++
++Name: Mozilla Plug-In API
++Description: Mozilla Plug-In API
++Version: %MOZILLA_VERSION%
++Cflags: -I${includedir} -DXP_UNIX
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/firefox52-esr.git/commitdiff/a4803e5e2df14c46d31c4dcab99e39fe1e48e7e7




More information about the pld-cvs-commit mailing list