[packages/firefox] - back to Firefox name, obsolete Iceweasel - updated to 45.0, spec based on iceweasel.spec - rationa

baggins baggins at pld-linux.org
Sat Mar 12 10:58:20 CET 2016


commit 54d6358a91f22be9dba00b04f820cbe56c4bf927
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sat Mar 12 10:56:53 2016 +0100

    - back to Firefox name, obsolete Iceweasel
    - updated to 45.0, spec based on iceweasel.spec
    - rationale: follow Debian https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815006

 ... => firefox-Disable-Firefox-Health-Report.patch |   0
 ...paste.patch => firefox-middle_click_paste.patch |   0
 ...-no-subshell.patch => firefox-no-subshell.patch |   0
 ...x-branding.patch => firefox-pld-bookmarks.patch |  13 -
 mozilla-firefox-prefs.patch => firefox-prefs.patch |   0
 ...ualenv.patch => firefox-system-virtualenv.patch |   0
 mozilla-firefox.desktop => firefox.desktop         |   8 +-
 firefox.sh                                         |  40 +++
 mozilla-firefox.spec => firefox.spec               | 359 +++++++++++++--------
 freetype.patch                                     |  10 +
 idl-parser.patch                                   |  56 ++++
 install-pc-files.patch                             |  59 ++++
 mozilla-firefox-packaging.patch                    | 310 ------------------
 mozilla-firefox.sh                                 |  47 ---
 vendor-ac.js                                       |   2 +
 vendor.js                                          |   2 +
 xulrunner-new-libxul.patch                         |  12 +
 xulrunner-paths.patch                              |  17 +
 xulrunner-pc.patch                                 |  40 +++
 19 files changed, 470 insertions(+), 505 deletions(-)
---
diff --git a/mozilla-firefox.spec b/firefox.spec
similarity index 61%
rename from mozilla-firefox.spec
rename to firefox.spec
index f58ee95..586174f 100644
--- a/mozilla-firefox.spec
+++ b/firefox.spec
@@ -1,47 +1,56 @@
-# NOTE: PLD distributes iceweasel instead
-#
 # TODO:
-# - (12:22:58)  patrys:  can you also move _libdir/mozilla-firefox to just _libdir/firefox?
-#   (12:23:25)  patrys:  it's not like we ship official firefox
-# - fix wrapper script to allow playing with profiles (must not use -remote)
+# - consider --enable-libproxy
 #
 # Conditional build:
 %bcond_with	tests		# enable tests (whatever they check)
 %bcond_with	gtk3		# GTK+ 3.x instead of 2.x
 %bcond_without	kerberos	# disable krb5 support
-%bcond_with	xulrunner	# system xulrunner [no longer supported]
-%bcond_with	shared_js	# shared libmozjs library
+%bcond_with	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]
+
+# 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
 
-%if %{without xulrunner}
 # The actual sqlite version (see RHBZ#480989):
 %define		sqlite_build_version %(pkg-config --silence-errors --modversion sqlite3 2>/dev/null || echo ERROR)
-%endif
 
 %define		nspr_ver	4.10.8
-%define		nss_ver		3.18.1
-
-Summary:	Firefox Community Edition web browser
-Summary(pl.UTF-8):	Firefox Community Edition - przeglądarka WWW
-Name:		mozilla-firefox
-Version:	38.0.1
-Release:	1
+%define		nss_ver		3.19.2
+
+Summary:	Firefox web browser
+Summary(hu.UTF-8):	Firefox web böngésző
+Summary(pl.UTF-8):	Firefox - przeglądarka WWW
+Name:		firefox
+Version:	45.0
+Release:	0.1
 License:	MPL v2.0
 Group:		X11/Applications/Networking
-Source0:	http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}.source.tar.bz2
-# Source0-md5:	3c496e4ec072327b1ef2b820f15dff26
+Source0:	http://releases.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/source/firefox-%{version}.source.tar.xz
+# Source0-md5:	09cbada824841f9e1d77f095e7cd02c1
 Source3:	%{name}.desktop
 Source4:	%{name}.sh
 Source5:	vendor.js
 Source6:	vendor-ac.js
-Patch0:		%{name}-branding.patch
-Patch7:		%{name}-prefs.patch
-Patch9:		%{name}-no-subshell.patch
-Patch11:	%{name}-middle_click_paste.patch
-Patch12:	%{name}-packaging.patch
-Patch13:	%{name}-system-virtualenv.patch
-Patch15:	%{name}-Disable-Firefox-Health-Report.patch
-URL:		http://www.mozilla.org/projects/firefox/
+Patch1:		idl-parser.patch
+Patch2:		xulrunner-new-libxul.patch
+Patch3:		xulrunner-paths.patch
+Patch4:		xulrunner-pc.patch
+Patch5:		install-pc-files.patch
+Patch6:		%{name}-prefs.patch
+Patch7:		%{name}-pld-bookmarks.patch
+Patch8:		%{name}-no-subshell.patch
+Patch9:		%{name}-middle_click_paste.patch
+Patch11:	%{name}-system-virtualenv.patch
+Patch12:	%{name}-Disable-Firefox-Health-Report.patch
+Patch14:	freetype.patch
+URL:		https://www.mozilla.org/firefox/
 BuildRequires:	OpenGL-devel
+BuildRequires:	ImageMagick
+BuildRequires:	ImageMagick-coder-png
+BuildRequires:	ImageMagick-coder-svg
 BuildRequires:	alsa-lib-devel
 BuildRequires:	automake
 BuildRequires:	bzip2-devel
@@ -66,10 +75,13 @@ BuildRequires:	libicu-devel >= 50.1
 # requires libjpeg-turbo implementing at least libjpeg 6b API
 BuildRequires:	libjpeg-devel >= 6b
 BuildRequires:	libjpeg-turbo-devel
+# for rsvg-convert
+BuildRequires:	librsvg
 BuildRequires:	libpng(APNG)-devel >= 0.10
 BuildRequires:	libpng-devel >= 2:1.6.16
 BuildRequires:	libstdc++-devel >= 6:4.4
 BuildRequires:	libvpx-devel >= 1.3.0
+BuildRequires:	libxslt-progs >= 1.1.28
 BuildRequires:	nspr-devel >= 1:%{nspr_ver}
 BuildRequires:	nss-devel >= 1:%{nss_ver}
 BuildRequires:	pango-devel >= 1:1.22.0
@@ -79,86 +91,140 @@ 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 >= 1.9.1-4
 BuildRequires:	readline-devel
 BuildRequires:	rpm >= 4.4.9-56
 BuildRequires:	rpmbuild(macros) >= 1.601
-BuildRequires:	sqlite3-devel >= 3.8.9
+BuildRequires:	sed >= 4.0
+BuildRequires:	sqlite3-devel >= 3.8.11.1-3
 BuildRequires:	startup-notification-devel >= 0.8
+BuildRequires:	virtualenv
 BuildRequires:	xorg-lib-libXScrnSaver-devel
 BuildRequires:	xorg-lib-libXext-devel
 BuildRequires:	xorg-lib-libXinerama-devel
 BuildRequires:	xorg-lib-libXt-devel
-%if %{with xulrunner}
-BuildRequires:	xulrunner-devel >= 2:%{version}
-%endif
+%{?with_pgo:BuildRequires:	xorg-xserver-Xvfb}
 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
-%if %{with xulrunner}
-%requires_eq_to	xulrunner xulrunner-devel
-%else
-Requires:	cairo >= 1.10.2-5
-Requires:	dbus-glib >= 0.60
-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.16
-Requires:	libpng(APNG) >= 0.10
-Requires:	libvpx >= 1.3.0
 Requires:	myspell-common
 Requires:	nspr >= 1:%{nspr_ver}
 Requires:	nss >= 1:%{nss_ver}
-Requires:	pango >= 1:1.22.0
-Requires:	sqlite3 >= %{sqlite_build_version}
-Requires:	startup-notification >= 0.8
-%endif
+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
-Conflicts:	mozilla-firefox-lang-resources < %{version}
+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 (don't use %{name} here)
-%define		_noautoprovfiles	%{_libdir}/mozilla-firefox
-%if %{without xulrunner}
+# don't satisfy other packages
+%define		_noautoprovfiles	%{_libdir}/%{name}
+
 # and as we don't provide them, don't require either
-%define		_noautoreq	libmozalloc.so libmozjs.so libxul.so
-%endif
+%define		_noautoreq	libmozjs.so libxul.so
 
 %description
-Firefox Community Edition is an open-source web browser, designed for
-standards compliance, performance and portability.
+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 Community Edition 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ą.
+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:	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.16
+Requires:	libpng(APNG) >= 0.10
+Requires:	libvpx >= 1.3.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 -qc
-mv -f mozilla-release mozilla
-cd mozilla
-
-%patch0 -p1
+%setup -q
+
+# 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
+
+%patch1 -p2
+%patch2 -p1
+%patch3 -p2
+%patch4 -p1
+%patch5 -p2
+%patch6 -p1
 %patch7 -p1
-%patch9 -p2
+%patch8 -p2
+#%patch9 -p2
 %patch11 -p2
 %patch12 -p1
-%patch13 -p2
-%patch15 -p1
+%patch14 -p2
+
+cp -a xulrunner/installer/*.pc.in browser/installer/
+
+%if %{with pgo}
+sed -i -e 's at __BROWSER_PATH__@"../../dist/bin/firefox-bin"@' build/automation.py.in
+%endif
 
 %build
-cd mozilla
-cp -pf %{_datadir}/automake/config.* build/autoconf
+cp -p %{_datadir}/automake/config.* build/autoconf
 
 cat << 'EOF' > .mozconfig
 . $topsrcdir/browser/config/mozconfig
@@ -190,7 +256,6 @@ ac_add_options --enable-crash-on-assert
 %else
 ac_add_options --disable-debug
 ac_add_options --disable-debug-modules
-ac_add_options --disable-logging
 ac_add_options --enable-optimize="%{rpmcflags} -Os"
 %endif
 ac_add_options --disable-strip
@@ -200,7 +265,11 @@ ac_add_options --disable-install-strip
 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
 ac_add_options --disable-mochitest
 %endif
 ac_add_options --disable-cpp-exceptions
@@ -236,11 +305,9 @@ ac_add_options --enable-system-hunspell
 ac_add_options --enable-system-sqlite
 ac_add_options --enable-url-classifier
 ac_add_options --enable-xinerama
+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
-%if %{with xulrunner}
-ac_add_options --with-libxul-sdk=$(pkg-config --variable=sdkdir libxul)
-%endif
 ac_add_options --with-pthreads
 ac_add_options --with-system-bz2
 ac_add_options --with-system-icu
@@ -255,66 +322,89 @@ 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 \
+	DESTDIR=obj-%{_target_cpu}/dist \
+	CC="%{__cc}" \
+	CXX="%{__cxx}" \
+	MOZ_MAKE_FLAGS="%{_smp_mflags}"
+kill $XVFB_PID
+%else
 %{__make} -j1 -f client.mk build \
 	CC="%{__cc}" \
 	CXX="%{__cxx}" \
 	MOZ_MAKE_FLAGS="%{_smp_mflags}"
+%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
-cd mozilla
 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}/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
 
-%{__make} -C obj-%{_target_cpu}/browser/installer stage-package \
+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 -a obj-%{_target_cpu}/dist/firefox/* $RPM_BUILD_ROOT%{_libdir}/%{name}/
-
-%if %{with xulrunner}
-# >= 5.0 seems to require this
-ln -s ../xulrunner $RPM_BUILD_ROOT%{_libdir}/%{name}/xulrunner
-%endif
+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}/browser/searchplugins $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/searchplugins
-%if %{without xulrunner}
 mv $RPM_BUILD_ROOT%{_libdir}/%{name}/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults
 mv $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults/{pref,preferences}
-%else
-mv $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/defaults $RPM_BUILD_ROOT%{_datadir}/%{name}/browser/defaults
-%endif
 
 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
-ln -s ../../../share/%{name}/browser/searchplugins $RPM_BUILD_ROOT%{_libdir}/%{name}/browser/searchplugins
 
-%if %{without xulrunner}
 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
 ln -s %{_datadir}/myspell $RPM_BUILD_ROOT%{_libdir}/%{name}/dictionaries
-%endif
 
-sed 's, at LIBDIR@,%{_libdir},' %{SOURCE4} > $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox
-chmod 755 $RPM_BUILD_ROOT%{_bindir}/mozilla-firefox
-ln -s mozilla-firefox $RPM_BUILD_ROOT%{_bindir}/firefox
+sed 's, at LIBDIR@,%{_libdir},' %{SOURCE4} > $RPM_BUILD_ROOT%{_bindir}/firefox
+chmod 755 $RPM_BUILD_ROOT%{_bindir}/firefox
 
 # install icons and desktop file
-for i in 48 64; do
+for i in 16 22 24 32 48 256; do
 	install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps
-	cp -a browser/branding/unofficial/content/icon${i}.png \
-		$RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/mozilla-firefox.png
+	cp -a ../browser/branding/official/default${i}.png \
+		$RPM_BUILD_ROOT%{_iconsdir}/hicolor/${i}x${i}/apps/firefox.png
 done
 
 cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}/%{name}.desktop
@@ -350,19 +440,6 @@ chmod 755 $RPM_BUILD_ROOT%{_sbindir}/%{name}-chrome+xpcom-generate
 %clean
 rm -rf $RPM_BUILD_ROOT
 
-%pretrans
-if [ -d %{_libdir}/%{name}/browser/extensions ] && [ ! -L %{_libdir}/%{name}/browser/extensions ]; then
-	install -d %{_datadir}/%{name}/browser
-	if [ -e %{_datadir}/%{name}/browser/extensions ]; then
-		mv %{_datadir}/%{name}/browser/extensions{,.rpmsave}
-	fi
-	mv -v %{_libdir}/%{name}/browser/extensions %{_datadir}/%{name}/browser/extensions
-fi
-if [ -d %{_libdir}/%{name}/dictionaries ] && [ ! -L %{_libdir}/%{name}/dictionaries ]; then
-	mv -v %{_libdir}/%{name}/dictionaries{,.rpmsave}
-fi
-exit 0
-
 %post
 %{_sbindir}/%{name}-chrome+xpcom-generate
 %update_browser_plugins
@@ -378,20 +455,19 @@ fi
 %files
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/%{name}
-%attr(755,root,root) %{_bindir}/firefox
 %attr(755,root,root) %{_sbindir}/%{name}-chrome+xpcom-generate
 
-%{_desktopdir}/mozilla-firefox.desktop
-%{_iconsdir}/hicolor/*/apps/mozilla-firefox.png
+%{_desktopdir}/firefox.desktop
+%{_iconsdir}/hicolor/*/apps/firefox.png
 
 # browser plugins v2
 %{_browserpluginsconfdir}/browsers.d/%{name}.*
 %config(noreplace) %verify(not md5 mtime size) %{_browserpluginsconfdir}/blacklist.d/%{name}.*.blacklist
 
-%dir %{_libdir}/%{name}
 %dir %{_libdir}/%{name}/browser
 %dir %{_libdir}/%{name}/browser/components
 %dir %{_libdir}/%{name}/browser/plugins
+%dir %{_libdir}/%{name}/browser/features
 
 %dir %{_datadir}/%{name}
 %dir %{_datadir}/%{name}/browser
@@ -399,16 +475,11 @@ fi
 %{_datadir}/%{name}/browser/chrome
 %{_datadir}/%{name}/browser/defaults
 %{_datadir}/%{name}/browser/icons
-%{_datadir}/%{name}/browser/searchplugins
 
 # symlinks
 %{_libdir}/%{name}/browser/extensions
 %{_libdir}/%{name}/browser/chrome
 %{_libdir}/%{name}/browser/icons
-%{_libdir}/%{name}/browser/searchplugins
-%if %{with xulrunner}
-%{_libdir}/%{name}/xulrunner
-%endif
 %{_libdir}/%{name}/browser/defaults
 
 %attr(755,root,root) %{_libdir}/%{name}/firefox
@@ -420,33 +491,59 @@ fi
 %{_libdir}/%{name}/browser/components/components.manifest
 %attr(755,root,root) %{_libdir}/%{name}/browser/components/libbrowsercomps.so
 # the signature of the default theme
-%{_datadir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
+%{_datadir}/%{name}/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
 %{_libdir}/%{name}/browser/omni.ja
 %{_libdir}/%{name}/webapprt
 %attr(755,root,root) %{_libdir}/%{name}/webapprt-stub
 
+%{_libdir}/%{name}/browser/features/loop at mozilla.org.xpi
+
 # files created by firefox -register
 %ghost %{_libdir}/%{name}/browser/components/compreg.dat
 %ghost %{_libdir}/%{name}/browser/components/xpti.dat
 
-%if %{without xulrunner}
-# private xulrunner instance
-%{_libdir}/%{name}/dependentlibs.list
-%{_libdir}/%{name}/platform.ini
-%dir %{_libdir}/%{name}/components
-%{_libdir}/%{name}/components/components.manifest
-%attr(755,root,root) %{_libdir}/%{name}/components/libdbusservice.so
-%attr(755,root,root) %{_libdir}/%{name}/components/libmozgnome.so
-%attr(755,root,root) %{_libdir}/%{name}/libmozalloc.so
-%{?with_shared_js:%attr(755,root,root) %{_libdir}/%{name}/libmozjs.so}
-%attr(755,root,root) %{_libdir}/%{name}/libxul.so
 %attr(755,root,root) %{_libdir}/%{name}/plugin-container
 %{_libdir}/%{name}/dictionaries
-%{_libdir}/%{name}/chrome.manifest
-%{_libdir}/%{name}/omni.ja
 
 %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
-%endif
+
+%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
+%{_libdir}/%{name}/dependentlibs.list
+%{_libdir}/%{name}/omni.ja
+
+%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/mozilla-firefox-Disable-Firefox-Health-Report.patch b/firefox-Disable-Firefox-Health-Report.patch
similarity index 100%
rename from mozilla-firefox-Disable-Firefox-Health-Report.patch
rename to firefox-Disable-Firefox-Health-Report.patch
diff --git a/mozilla-firefox-middle_click_paste.patch b/firefox-middle_click_paste.patch
similarity index 100%
rename from mozilla-firefox-middle_click_paste.patch
rename to firefox-middle_click_paste.patch
diff --git a/mozilla-firefox-no-subshell.patch b/firefox-no-subshell.patch
similarity index 100%
rename from mozilla-firefox-no-subshell.patch
rename to firefox-no-subshell.patch
diff --git a/mozilla-firefox-branding.patch b/firefox-pld-bookmarks.patch
similarity index 93%
rename from mozilla-firefox-branding.patch
rename to firefox-pld-bookmarks.patch
index 24833e2..4c5b955 100644
--- a/mozilla-firefox-branding.patch
+++ b/firefox-pld-bookmarks.patch
@@ -1,16 +1,3 @@
---- mozilla/build/application.ini.orig	2015-01-30 17:01:10.960362325 +0100
-+++ mozilla/build/application.ini	2015-01-30 17:20:49.073646218 +0100
-@@ -16,8 +16,8 @@
- #endif
- #filter substitution
- [App]
--Vendor=@MOZ_APP_VENDOR@
--Name=@MOZ_APP_BASENAME@
-+Vendor=
-+Name=Firefox Community Edition
- RemotingName=@MOZ_APP_REMOTINGNAME@
- #ifdef MOZ_APP_DISPLAYNAME
- CodeName=@MOZ_APP_DISPLAYNAME@
 --- mozilla.orig/browser/locales/generic/profile/bookmarks.html.in	2009-06-24 10:20:29.000000000 +0200
 +++ mozilla/browser/locales/generic/profile/bookmarks.html.in	2009-06-28 15:29:30.000000000 +0200
 @@ -24,4 +24,12 @@
diff --git a/mozilla-firefox-prefs.patch b/firefox-prefs.patch
similarity index 100%
rename from mozilla-firefox-prefs.patch
rename to firefox-prefs.patch
diff --git a/mozilla-firefox-system-virtualenv.patch b/firefox-system-virtualenv.patch
similarity index 100%
rename from mozilla-firefox-system-virtualenv.patch
rename to firefox-system-virtualenv.patch
diff --git a/mozilla-firefox.desktop b/firefox.desktop
similarity index 96%
rename from mozilla-firefox.desktop
rename to firefox.desktop
index d7a120a..c515b2c 100644
--- a/mozilla-firefox.desktop
+++ b/firefox.desktop
@@ -1,6 +1,6 @@
 [Desktop Entry]
-Name=Firefox Community Edition
-Name[pl]=Firefox Community Edition
+Name=Firefox
+Name[pl]=Firefox
 GenericName=Web Browser
 GenericName[af]=Web Blaaier
 GenericName[ar]=متصفح ويب
@@ -70,8 +70,8 @@ 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=mozilla-firefox %u
-Icon=mozilla-firefox
+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
diff --git a/firefox.sh b/firefox.sh
new file mode 100644
index 0000000..e9a11de
--- /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@/firefox"
+
+# 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/.iceweasek $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..b5aa30d
--- /dev/null
+++ b/idl-parser.patch
@@ -0,0 +1,56 @@
+--- xulrunner-10.0/mozilla/xpcom/idl-parser/xpidl/header.py.wiget	2012-02-09 16:26:27.074098583 +0100
++++ xulrunner-10.0/mozilla/xpcom/idl-parser/xpidl/header.py	2012-02-09 16:28:01.250436455 +0100
+@@ -477,7 +477,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 (default is stdout)")
+@@ -488,7 +488,7 @@ 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)
+@@ -498,7 +498,7 @@ if __name__ == '__main__':
+ 
+     # The only thing special about a regen is that there are no input files.
+     if options.regen:
+-        if options.cachedir is None:
++        if options.cachedir == '':
+             print >>sys.stderr, "--regen useless without --cachedir"
+         sys.exit(0)
+ 
+--- 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/install-pc-files.patch b/install-pc-files.patch
new file mode 100644
index 0000000..99fb843
--- /dev/null
+++ b/install-pc-files.patch
@@ -0,0 +1,59 @@
+--- iceweasel-33.1.1/mozilla/browser/installer/Makefile.in.orig	2014-11-13 23:49:48.000000000 +0100
++++ iceweasel-33.1.1/mozilla/browser/installer/Makefile.in	2014-11-26 21:30:58.839109076 +0100
+@@ -160,6 +160,56 @@
+ 	rm -f $(DIST)/pack-list.txt $(DIST)/bin-list.txt
+ endif
+ 
++# 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|%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)
diff --git a/mozilla-firefox-packaging.patch b/mozilla-firefox-packaging.patch
deleted file mode 100644
index 6d43f06..0000000
--- a/mozilla-firefox-packaging.patch
+++ /dev/null
@@ -1,310 +0,0 @@
-diff -ruN mozilla-release.orig/browser/installer/package-manifest.in mozilla-release/browser/installer/package-manifest.in
---- mozilla-release.orig/browser/installer/package-manifest.in	2015-04-03 04:30:05.000000000 +0200
-+++ mozilla-release/browser/installer/package-manifest.in	2015-04-12 16:46:15.409547636 +0200
-@@ -44,14 +44,18 @@
- [@AB_CD@]
- @RESPATH@/browser/chrome/@AB_CD@@JAREXT@
- @RESPATH@/browser/chrome/@AB_CD at .manifest
-+#ifndef LIBXUL_SDK
- @RESPATH@/chrome/@AB_CD@@JAREXT@
- @RESPATH@/chrome/@AB_CD at .manifest
-+#endif
- @RESPATH@/browser/defaults/profile/bookmarks.html
- @RESPATH@/browser/defaults/profile/chrome/*
- @RESPATH@/browser/defaults/profile/localstore.rdf
- @RESPATH@/browser/defaults/profile/mimeTypes.rdf
-+#ifndef LIBXUL_SDK
- @RESPATH@/dictionaries/*
- @RESPATH@/hyphenation/*
-+#endif
- @RESPATH@/browser/@PREF_DIR@/firefox-l10n.js
- @RESPATH@/browser/searchplugins/*
- #ifdef XP_WIN32
-@@ -63,7 +67,9 @@
- #endif
- 
- [xpcom]
-+#ifndef LIBXUL_SDK
- @RESPATH@/dependentlibs.list
-+#endif
- #ifdef GKMEDIAS_SHARED_LIBRARY
- @BINPATH@/@DLL_PREFIX at gkmedias@DLL_SUFFIX@
- #endif
-@@ -72,8 +78,10 @@
- @BINPATH@/@DLL_PREFIX at mozglue@DLL_SUFFIX@
- #endif
- #ifndef MOZ_STATIC_JS
-+#ifndef LIBXUL_SDK
- @BINPATH@/@DLL_PREFIX at mozjs@DLL_SUFFIX@
- #endif
-+#endif
- #ifdef MOZ_DMD
- @BINPATH@/@DLL_PREFIX at dmd@DLL_SUFFIX@
- #endif
-@@ -84,17 +92,23 @@
- @BINPATH@/@DLL_PREFIX at plds4@DLL_SUFFIX@
- #endif
- #endif
-+#ifndef LIBXUL_SDK
- #ifdef XP_MACOSX
- @BINPATH@/XUL
- #else
-+#ifndef LIBXUL_SDK
- @BINPATH@/@DLL_PREFIX at xul@DLL_SUFFIX@
- #endif
-+#endif
-+#endif
- #ifdef XP_MACOSX
- @BINPATH@/@MOZ_CHILD_PROCESS_NAME at .app/
- @BINPATH@/@DLL_PREFIX at plugin_child_interpose@DLL_SUFFIX@
- #else
-+#ifndef LIBXUL_SDK
- @BINPATH@/@MOZ_CHILD_PROCESS_NAME@
- #endif
-+#endif
- #ifdef XP_WIN32
- @BINPATH@/plugin-hang-ui at BIN_SUFFIX@
- #if MOZ_PACKAGE_MSVC_DLLS
-@@ -141,7 +155,9 @@
- #ifdef MOZ_UPDATER
- @RESPATH@/update-settings.ini
- #endif
-+#ifndef LIBXUL_SDK
- @RESPATH@/platform.ini
-+#endif
- #ifndef MOZ_NATIVE_SQLITE
- #ifndef MOZ_FOLD_LIBS
- @BINPATH@/@DLL_PREFIX at mozsqlite3@DLL_SUFFIX@
-@@ -156,6 +172,7 @@
- 
- ; [Components]
- @RESPATH@/browser/components/components.manifest
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/alerts.xpt
- #ifdef ACCESSIBILITY
- #ifdef XP_WIN32
-@@ -167,10 +184,12 @@
- @RESPATH@/components/appstartup.xpt
- @RESPATH@/components/autocomplete.xpt
- @RESPATH@/components/autoconfig.xpt
-+#endif
- @RESPATH@/components/browser-element.xpt
- @RESPATH@/browser/components/browsercompsbase.xpt
- @RESPATH@/browser/components/browser-feeds.xpt
- @RESPATH@/browser/components/browsermodules.manifest
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/caps.xpt
- @RESPATH@/components/chrome.xpt
- @RESPATH@/components/commandhandler.xpt
-@@ -249,7 +268,9 @@
- @RESPATH@/components/filepicker.xpt
- #endif
- @RESPATH@/components/find.xpt
-+#endif
- @RESPATH@/browser/components/fuel.xpt
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/gfx.xpt
- @RESPATH@/components/html5.xpt
- @RESPATH@/components/htmlparser.xpt
-@@ -270,7 +291,9 @@
- @RESPATH@/components/layout_xul.xpt
- @RESPATH@/components/locale.xpt
- @RESPATH@/components/lwbrk.xpt
-+#endif
- @RESPATH@/browser/components/migration.xpt
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/mimetype.xpt
- @RESPATH@/components/mozfind.xpt
- @RESPATH@/components/necko_about.xpt
-@@ -307,12 +330,16 @@
- @RESPATH@/components/rdf.xpt
- @RESPATH@/components/satchel.xpt
- @RESPATH@/components/saxparser.xpt
-+#endif
- @RESPATH@/browser/components/sessionstore.xpt
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/services-crypto-component.xpt
- #ifdef MOZ_CAPTIVEDETECT
- @RESPATH@/components/captivedetect.xpt
- #endif
-+#endif
- @RESPATH@/browser/components/shellservice.xpt
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/shistory.xpt
- @RESPATH@/components/spellchecker.xpt
- @RESPATH@/components/storage.xpt
-@@ -354,8 +381,10 @@
- @RESPATH@/components/xultmpl.xpt
- @RESPATH@/components/zipwriter.xpt
- @RESPATH@/components/telemetry.xpt
-+#endif
- 
- ; JavaScript components
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/ChromeNotifications.js
- @RESPATH@/components/ChromeNotifications.manifest
- @RESPATH@/components/ConsoleAPI.manifest
-@@ -364,6 +393,7 @@
- @RESPATH@/components/BrowserElementParent.js
- @RESPATH@/components/FeedProcessor.manifest
- @RESPATH@/components/FeedProcessor.js
-+#endif
- @RESPATH@/browser/components/BrowserFeeds.manifest
- @RESPATH@/browser/components/FeedConverter.js
- @RESPATH@/browser/components/FeedWriter.js
-@@ -385,6 +415,7 @@
- @RESPATH@/browser/components/Experiments.manifest
- @RESPATH@/browser/components/ExperimentsService.js
- @RESPATH@/browser/components/translation.manifest
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/Downloads.manifest
- @RESPATH@/components/DownloadLegacy.js
- @RESPATH@/components/BrowserPageThumbs.manifest
-@@ -436,12 +469,16 @@
- @RESPATH@/components/ProcessSingleton.manifest
- @RESPATH@/components/MainProcessSingleton.js
- @RESPATH@/components/ContentProcessSingleton.js
-+#endif
- @RESPATH@/browser/components/nsSessionStore.manifest
- @RESPATH@/browser/components/nsSessionStartup.js
- @RESPATH@/browser/components/nsSessionStore.js
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/nsURLFormatter.manifest
- @RESPATH@/components/nsURLFormatter.js
-+#endif
- @RESPATH@/browser/components/@DLL_PREFIX at browsercomps@DLL_SUFFIX@
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/txEXSLTRegExFunctions.manifest
- @RESPATH@/components/txEXSLTRegExFunctions.js
- @RESPATH@/components/toolkitplaces.manifest
-@@ -476,6 +515,7 @@
- @RESPATH@/components/FormAutofillStartup.js
- @RESPATH@/components/contentAreaDropListener.manifest
- @RESPATH@/components/contentAreaDropListener.js
-+#endif
- @RESPATH@/browser/components/BrowserProfileMigrators.manifest
- @RESPATH@/browser/components/ProfileMigrator.js
- @RESPATH@/browser/components/ChromeProfileMigrator.js
-@@ -487,6 +527,7 @@
- #ifdef XP_MACOSX
- @RESPATH@/browser/components/SafariProfileMigrator.js
- #endif
-+#ifndef LIBXUL_SDK
- #ifdef MOZ_ENABLE_DBUS
- @RESPATH@/components/@DLL_PREFIX at dbusservice@DLL_SUFFIX@
- #endif
-@@ -612,19 +653,24 @@
- @RESPATH@/components/TestInterfaceJS.js
- @RESPATH@/components/TestInterfaceJS.manifest
- #endif
-+#endif
- 
- ; Modules
- @RESPATH@/browser/modules/*
-+#ifndef LIBXUL_SDK
- @RESPATH@/modules/*
-+#endif
- 
- ; Safe Browsing
- #ifdef MOZ_URL_CLASSIFIER
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/nsURLClassifier.manifest
- @RESPATH@/components/nsUrlClassifierHashCompleter.js
- @RESPATH@/components/nsUrlClassifierListManager.js
- @RESPATH@/components/nsUrlClassifierLib.js
- @RESPATH@/components/url-classifier.xpt
- #endif
-+#endif
- 
- ; ANGLE GLES-on-D3D rendering library
- #ifdef MOZ_ANGLE_RENDERER
-@@ -652,10 +698,12 @@
- #endif
- @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/install.rdf
- @RESPATH@/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}/icon.png
-+#ifndef LIBXUL_SDK
- @RESPATH@/chrome/toolkit at JAREXT@
- @RESPATH@/chrome/toolkit.manifest
- @RESPATH@/chrome/recording.manifest
- @RESPATH@/chrome/recording/*
-+#endif
- #ifdef MOZ_GTK
- @RESPATH@/browser/chrome/icons/default/default16.png
- @RESPATH@/browser/chrome/icons/default/default32.png
-@@ -683,9 +731,11 @@
- ; All the pref files must be part of base to prevent migration bugs
- @RESPATH@/browser/@PREF_DIR@/firefox.js
- @RESPATH@/browser/@PREF_DIR@/firefox-branding.js
-+#ifndef LIBXUL_SDK
- @RESPATH@/greprefs.js
- @RESPATH@/defaults/autoconfig/platform.js
- @RESPATH@/defaults/autoconfig/prefcalls.js
-+#endif
- @RESPATH@/browser/defaults/profile/prefs.js
- 
- #ifndef LIBXUL_SDK
-@@ -695,7 +745,7 @@
- @RESPATH@/defaults/pref/channel-prefs.js
- #else
- ; For Fx-on-xr, channel-prefs lives with the app preferences. (Bug 762588)
-- at RESPATH@/@PREF_DIR@/channel-prefs.js
-+ at RESPATH@/browser/@PREF_DIR@/channel-prefs.js
- #endif
- 
- ; Services (gre) prefs
-@@ -703,11 +753,14 @@
- @RESPATH@/defaults/pref/services-notifications.js
- #endif
- #ifdef MOZ_SERVICES_SYNC
-+#ifndef LIBXUL_SDK
- @RESPATH@/defaults/pref/services-sync.js
- #endif
-+#endif
- 
- ; [Layout Engine Resources]
- ; Style Sheets, Graphics and other Resources used by the layout engine.
-+#ifndef LIBXUL_SDK
- @RESPATH@/res/EditorOverride.css
- @RESPATH@/res/contenteditable.css
- @RESPATH@/res/designmode.css
-@@ -745,11 +798,14 @@
- #ifdef XP_MACOSX
- @RESPATH@/res/MainMenu.nib/
- #endif
-+#endif
- 
- ; svg
-+#ifndef LIBXUL_SDK
- @RESPATH@/res/svg.css
- @RESPATH@/components/dom_svg.xpt
- @RESPATH@/components/dom_smil.xpt
-+#endif
- 
- ; [Personal Security Manager]
- ;
-@@ -770,11 +826,13 @@
- #endif
- @BINPATH@/@DLL_PREFIX at softokn3@DLL_SUFFIX@
- #endif
-+#ifndef LIBXUL_SDK
- @RESPATH@/chrome/pippki at JAREXT@
- @RESPATH@/chrome/pippki.manifest
- @RESPATH@/components/pipboot.xpt
- @RESPATH@/components/pipnss.xpt
- @RESPATH@/components/pippki.xpt
-+#endif
- 
- ; For process sandboxing
- #if defined(MOZ_SANDBOX)
-@@ -887,9 +945,11 @@
- @RESPATH@/metro/modules
- #endif
- 
-+#ifndef LIBXUL_SDK
- @RESPATH@/components/DataStore.manifest
- @RESPATH@/components/DataStoreImpl.js
- @RESPATH@/components/dom_datastore.xpt
-+#endif
- 
- ; Shutdown Terminator
- @RESPATH@/components/nsTerminatorTelemetry.js
diff --git a/mozilla-firefox.sh b/mozilla-firefox.sh
deleted file mode 100644
index 870f875..0000000
--- a/mozilla-firefox.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-# based on script by (c) vip at linux.pl, wolf at pld-linux.org
-
-LIBDIR="@LIBDIR@/mozilla-firefox"
-
-# 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/mozilla-firefox ]]; then
-		echo "Removing ${f} leftover from older firefox"
-		rm -f "${f}"
-	fi
-done
-
-FIREFOX="$LIBDIR/firefox"
-PWD=${PWD:-$(pwd)}
-
-if [ "$1" = "-remote" ]; then
-	exec $FIREFOX "$@"
-else
-	if ! $FIREFOX -remote 'ping()' 2>/dev/null; then
-		if [ -f "$PWD/$1" ]; then
-			exec $FIREFOX "file://$PWD/$1"
-		else
-			exec $FIREFOX "$@"
-		fi
-	else
-		if [ -z "$1" ]; then
-			exec $FIREFOX -remote 'xfeDoCommand(openBrowser)'
-		elif [ "$1" = "-mail" ]; then
-			exec $FIREFOX -remote 'xfeDoCommand(openInbox)'
-		elif [ "$1" = "-compose" ]; then
-			exec $FIREFOX -remote 'xfeDoCommand(composeMessage)'
-		else
-			if [ -f "$PWD/$1" ]; then
-				URL="file://$PWD/$1"
-			else
-				URL="$1"
-			fi
-			if ! grep -q 'browser\.tabs\.opentabfor\.middleclick.*false' ~/.mozilla/firefox/*/prefs.js ; then
-				exec $FIREFOX -new-tab "$URL"
-			else
-				exec $FIREFOX -new-window "$URL"
-			fi
-		fi
-	fi
-fi
diff --git a/vendor-ac.js b/vendor-ac.js
index 2b4cf82..9312cb3 100644
--- a/vendor-ac.js
+++ b/vendor-ac.js
@@ -6,3 +6,5 @@ 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
index 2eabbe1..6bf1b78 100644
--- a/vendor.js
+++ b/vendor.js
@@ -6,3 +6,5 @@ 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..0314e66
--- /dev/null
+++ b/xulrunner-pc.patch
@@ -0,0 +1,40 @@
+diff -urN mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in mozilla-2.0.new/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in	2011-03-19 00:34:14.000000000 +0100
++++ mozilla-2.0.new/xulrunner/installer/libxul-embedding.pc.in	2011-03-23 16:24:51.283327032 +0100
+@@ -6,5 +6,6 @@
+ 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%
+diff -urN mozilla-2.0/xulrunner/installer/libxul.pc.in mozilla-2.0.new/xulrunner/installer/libxul.pc.in
+--- mozilla-2.0/xulrunner/installer/libxul.pc.in	2011-03-19 00:34:14.000000000 +0100
++++ mozilla-2.0.new/xulrunner/installer/libxul.pc.in	2011-03-23 16:25:09.856665406 +0100
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+ 
+diff -urN mozilla-2.0/xulrunner/installer/Makefile.in mozilla-2.0.new/xulrunner/installer/Makefile.in
+--- mozilla-2.0/xulrunner/installer/Makefile.in	2011-03-19 00:34:14.000000000 +0100
++++ mozilla-2.0.new/xulrunner/installer/Makefile.in	2011-03-23 16:24:31.433331250 +0100
+@@ -121,6 +121,7 @@
+ 	-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)|" \
+diff -urN mozilla-2.0/xulrunner/installer/mozilla-js.pc.in mozilla-2.0.new/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-2.0/xulrunner/installer/mozilla-js.pc.in	2011-03-19 00:34:14.000000000 +0100
++++ mozilla-2.0.new/xulrunner/installer/mozilla-js.pc.in	2011-03-23 16:26:25.390008869 +0100
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
+-Cflags: -I${includedir} -DXP_UNIX
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/firefox.git/commitdiff/9b34cc8cdc33524229058464a5ac87d4ba8d232e




More information about the pld-cvs-commit mailing list