summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO68
-rw-r--r--PKGBUILD116
-rw-r--r--enable-x86_64-tracemonkey.patch25
-rw-r--r--file_descriptor_set_posix.patch12
-rw-r--r--file_util.patch14
-rw-r--r--file_util_linux.patch12
-rw-r--r--fix-mozilla-launcher.patch23
-rw-r--r--fixWformat.patch50
-rw-r--r--message_pump_libevent.patch19
-rw-r--r--mozconfig52
-rw-r--r--mozilla-pkgconfig.patch60
-rw-r--r--offsetof.patch11
-rw-r--r--python2.7.patch11
-rw-r--r--scopefixes.patch153
-rw-r--r--time_posix.patch12
-rw-r--r--xulrunner-png14.patch11
-rw-r--r--xulrunner-png15.patch83
-rw-r--r--xulrunner-version.patch13
18 files changed, 745 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..33455dd1ce20
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,68 @@
+pkgbase = xulrunner192
+ pkgdesc = Mozilla Runtime Environment
+ pkgver = 1.9.2.28
+ pkgrel = 4
+ url = http://wiki.mozilla.org/XUL:Xul_Runner
+ arch = i686
+ arch = x86_64
+ license = MPL
+ license = GPL
+ license = LGPL
+ makedepends = zip
+ makedepends = pkg-config
+ makedepends = diffutils
+ makedepends = libgnomeui
+ makedepends = python2
+ makedepends = wireless_tools
+ makedepends = autoconf2.13
+ depends = gtk2
+ depends = gcc-libs
+ depends = libidl2
+ depends = mozilla-common
+ depends = nss
+ depends = libxt
+ depends = hunspell
+ depends = startup-notification
+ depends = mime-types
+ depends = dbus-glib
+ depends = alsa-lib
+ depends = libevent
+ depends = sqlite>=3.7.4
+ depends = libnotify>=0.4
+ source = ftp://mirrors.kernel.org/slackware/slackware-13.1/patches/source/mozilla-firefox/firefox-3.6.28.source.tar.bz2
+ source = mozconfig
+ source = mozilla-pkgconfig.patch
+ source = fix-mozilla-launcher.patch
+ source = xulrunner-version.patch
+ source = xulrunner-png14.patch
+ source = xulrunner-png15.patch
+ source = enable-x86_64-tracemonkey.patch
+ source = offsetof.patch
+ source = python2.7.patch
+ source = file_util.patch
+ source = message_pump_libevent.patch
+ source = file_descriptor_set_posix.patch
+ source = file_util_linux.patch
+ source = time_posix.patch
+ source = scopefixes.patch
+ source = fixWformat.patch
+ md5sums = 175fea06e1af7c76992e23865e4456eb
+ md5sums = 3ba733b226dfaa89f193822d1e2abc35
+ md5sums = d839d1c4ef736e6d89ccf91b23b965a4
+ md5sums = 63eee2d1da3b43c9d604f2253f242f40
+ md5sums = 371303c5bdc4fa0d955d14521b93b69d
+ md5sums = 3bd0566180ad2daa32743b3ce58b2095
+ md5sums = 65eaf73452b1d974aa1065022d693132
+ md5sums = cbd938cd1fb8210cd8a2c41833489af9
+ md5sums = c39773f884c79773db10a1216722441e
+ md5sums = ab3dc9aecae7f08b9492fb3c00a5fd28
+ md5sums = 26be7284706ff5f740deb3e83e6cf29c
+ md5sums = 187ec32c67744df73bb76fd5057a06a6
+ md5sums = 2352dcccac6c0913d5f68c4e6236af50
+ md5sums = 642a2fcc49e160385707ff903e17a25a
+ md5sums = b3c4fc2396635efc38d4c649ca054ed8
+ md5sums = 59f00e0e6e7454e788c9e19dd9090c4e
+ md5sums = 7ba6f9e9421533151bb60ec1caf7a695
+
+pkgname = xulrunner192
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..678a0e20c51c
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,116 @@
+# Maintainer: Matt Parnell/ilikenwf <parwok@gmail.com>
+# Thanks to loki for fixes!
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: David Roheim <david dot roheim at gmail dot com>
+pkgname=xulrunner192
+pkgver=1.9.2.28
+_ffoxver=3.6.28
+pkgrel=4
+pkgdesc="Mozilla Runtime Environment"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL' 'LGPL')
+depends=('gtk2' 'gcc-libs' 'libidl2' 'mozilla-common' 'nss' 'libxt' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite>=3.7.4' 'libnotify>=0.4')
+makedepends=('zip' 'pkg-config' 'diffutils' 'libgnomeui' 'python2' 'wireless_tools' 'autoconf2.13')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+
+source=(ftp://mirrors.kernel.org/slackware/slackware-13.1/patches/source/mozilla-firefox/firefox-${_ffoxver}.source.tar.bz2
+ mozconfig
+ mozilla-pkgconfig.patch
+ fix-mozilla-launcher.patch
+ xulrunner-version.patch
+ xulrunner-png14.patch
+ xulrunner-png15.patch
+ enable-x86_64-tracemonkey.patch
+ offsetof.patch
+ python2.7.patch
+ file_util.patch
+ message_pump_libevent.patch
+ file_descriptor_set_posix.patch
+ file_util_linux.patch
+ time_posix.patch
+ scopefixes.patch
+ fixWformat.patch
+ )
+md5sums=('175fea06e1af7c76992e23865e4456eb'
+ '3ba733b226dfaa89f193822d1e2abc35'
+ 'd839d1c4ef736e6d89ccf91b23b965a4'
+ '63eee2d1da3b43c9d604f2253f242f40'
+ '371303c5bdc4fa0d955d14521b93b69d'
+ '3bd0566180ad2daa32743b3ce58b2095'
+ '65eaf73452b1d974aa1065022d693132'
+ 'cbd938cd1fb8210cd8a2c41833489af9'
+ 'c39773f884c79773db10a1216722441e'
+ 'ab3dc9aecae7f08b9492fb3c00a5fd28'
+ '26be7284706ff5f740deb3e83e6cf29c'
+ '187ec32c67744df73bb76fd5057a06a6'
+ '2352dcccac6c0913d5f68c4e6236af50'
+ '642a2fcc49e160385707ff903e17a25a'
+ 'b3c4fc2396635efc38d4c649ca054ed8'
+ '59f00e0e6e7454e788c9e19dd9090c4e'
+ '7ba6f9e9421533151bb60ec1caf7a695'
+ )
+
+prepare() {
+ cd "${srcdir}/mozilla-1.9.2"
+ cp "${srcdir}/mozconfig" .mozconfig
+
+ patch -Np1 -i "${srcdir}/offsetof.patch"
+
+ # Fix C++ 4.7 compile errors
+ patch -Np1 -i "${srcdir}/file_util.patch"
+ patch -Np1 -i "${srcdir}/message_pump_libevent.patch"
+ patch -Np1 -i "${srcdir}/file_descriptor_set_posix.patch"
+ patch -Np1 -i "${srcdir}/file_util_linux.patch"
+ patch -Np1 -i "${srcdir}/time_posix.patch"
+ patch -Np0 -i "${srcdir}/scopefixes.patch"
+
+ # fix libdir/sdkdir - fedora
+ patch -Np1 -i "${srcdir}/mozilla-pkgconfig.patch"
+
+ # Fix stub launcher - archlinux
+ patch -Np0 -i "${srcdir}/fix-mozilla-launcher.patch"
+
+ # Force installation to the same path for every version
+ patch -Np1 -i "${srcdir}/xulrunner-version.patch"
+
+ # Fix compile with libpng 1.4
+ patch -Np0 -i "${srcdir}/xulrunner-png14.patch"
+
+ # Fix compile with libpng 1.5
+ patch -Np0 -i "${srcdir}/xulrunner-png15.patch"
+
+ # Tracemonkey for x86_64
+ patch -Np0 -i "${srcdir}/enable-x86_64-tracemonkey.patch"
+
+ # python2.7
+ patch -Np0 -i "${srcdir}/python2.7.patch"
+
+ # security warns
+ patch -Np3 -i "${srcdir}/fixWformat.patch"
+
+ # fix freetype headers
+ sed -i 's/freetype\///g' config/system-headers
+ sed -i 's/freetype\///g' gfx/thebes/src/gfxPangoFonts.cpp
+
+ unset CFLAGS
+ unset CXXFLAGS
+}
+
+build()
+{
+ cd "${srcdir}/mozilla-1.9.2"
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "${srcdir}/mozilla-1.9.2"
+ make -j1 DESTDIR="${pkgdir}" install
+
+ # Remove included dictionaries, add symlink to system myspell path.
+ # Note: this will cause file conflicts when users have installed dictionaries in the old location
+ rm -rf "${pkgdir}/usr/lib/xulrunner-1.9.2/dictionaries"
+ ln -sf /usr/share/myspell/dicts "${pkgdir}/usr/lib/xulrunner-1.9.2/dictionaries"
+
+ rm -f "${pkgdir}/usr/bin/xulrunner"
+ rm -rf "${pkgdir}/usr/lib/pkgconfig"
+}
diff --git a/enable-x86_64-tracemonkey.patch b/enable-x86_64-tracemonkey.patch
new file mode 100644
index 000000000000..b72ad76b450e
--- /dev/null
+++ b/enable-x86_64-tracemonkey.patch
@@ -0,0 +1,25 @@
+--- js/src/configure.in.old 2009-11-08 19:50:54.299642792 -0500
++++ js/src/configure.in 2009-11-08 19:57:49.235621814 -0500
+@@ -2465,6 +2465,10 @@
+ ENABLE_JIT=1
+ NANOJIT_ARCH=i386
+ ;;
++x86_64*-*)
++ ENABLE_JIT=1
++ NANOJIT_ARCH=X64
++ ;;
+ arm*-*)
+ ENABLE_JIT=1
+ NANOJIT_ARCH=ARM
+@@ -2488,7 +2492,10 @@
+ i?86-*)
+ AC_DEFINE(AVMPLUS_IA32)
+ ;;
+-
++x86_64*-*)
++ AC_DEFINE(AVMPLUS_AMD64)
++ AC_DEFINE(AVMPLUS_64BIT)
++ ;;
+ arm*-*)
+ AC_DEFINE(AVMPLUS_ARM)
+ ;;
diff --git a/file_descriptor_set_posix.patch b/file_descriptor_set_posix.patch
new file mode 100644
index 000000000000..735bef5512de
--- /dev/null
+++ b/file_descriptor_set_posix.patch
@@ -0,0 +1,12 @@
+*** mozilla-1.9.2/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc 2012-03-06 16:45:29.000000000 +0200
+--- mozilla-1.9.2/ipc/chromium/src/chrome/common/file_descriptor_set_posix.cc 2012-05-03 17:47:27.863199542 +0300
+***************
+*** 2,7 ****
+--- 2,8 ----
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+
++ #include <unistd.h>
+ #include "chrome/common/file_descriptor_set_posix.h"
+
+ #include "base/eintr_wrapper.h"
diff --git a/file_util.patch b/file_util.patch
new file mode 100644
index 000000000000..1e9d1842dd76
--- /dev/null
+++ b/file_util.patch
@@ -0,0 +1,14 @@
+*** mozilla-1.9.2/ipc/chromium/src/base/file_util.cc 2012-03-06 16:45:29.000000000 +0200
+--- mozilla-1.9.2/ipc/chromium/src/base/file_util.cc 2012-05-02 14:47:02.694747962 +0300
+***************
+*** 9,14 ****
+--- 9,17 ----
+ #endif
+ #include <stdio.h>
+
++ #if defined(OS_POSIX)
++ #include <unistd.h>
++ #endif
+ #include <fstream>
+
+ #include "base/file_path.h"
diff --git a/file_util_linux.patch b/file_util_linux.patch
new file mode 100644
index 000000000000..1b049202f32b
--- /dev/null
+++ b/file_util_linux.patch
@@ -0,0 +1,12 @@
+*** mozilla-1.9.2/ipc/chromium/src/base/file_util_linux.cc 2012-03-06 16:45:29.000000000 +0200
+--- mozilla-1.9.2/ipc/chromium/src/base/file_util_linux.cc 2012-05-03 18:24:36.346333860 +0300
+***************
+*** 4,9 ****
+--- 4,10 ----
+
+ #include "base/file_util.h"
+
++ #include <unistd.h>
+ #include <fcntl.h>
+
+ #include <string>
diff --git a/fix-mozilla-launcher.patch b/fix-mozilla-launcher.patch
new file mode 100644
index 000000000000..de64e4cee237
--- /dev/null
+++ b/fix-mozilla-launcher.patch
@@ -0,0 +1,23 @@
+--- xulrunner/stub/nsXULStub.cpp 2008-07-17 21:43:11.000000000 +0200
++++ xulrunner/stub/nsXULStub.cpp 2008-07-17 21:47:04.000000000 +0200
+@@ -208,8 +208,10 @@
+ // 3) give up
+
+ struct stat fileStat;
++ char *testp;
+
+- if (!realpath(argv[0], iniPath) || stat(iniPath, &fileStat)) {
++ testp = realpath(argv[0], iniPath);
++ if (!(testp != NULL && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) || (testp != NULL && stat(iniPath, &fileStat))) {
+ const char *path = getenv("PATH");
+ if (!path)
+ return 1;
+@@ -222,7 +224,7 @@
+ char *token = strtok(pathdup, ":");
+ while (token) {
+ sprintf(tmpPath, "%s/%s", token, argv[0]);
+- if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0) {
++ if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) {
+ found = PR_TRUE;
+ break;
+ }
diff --git a/fixWformat.patch b/fixWformat.patch
new file mode 100644
index 000000000000..b7680a7f3045
--- /dev/null
+++ b/fixWformat.patch
@@ -0,0 +1,50 @@
+From 4f8f9f17dae461aa40d1b3519c1921648df18fd4 Mon Sep 17 00:00:00 2001
+From: darealshinji <djcj@gmx.de>
+Date: Tue, 25 Nov 2014 13:03:22 +0100
+Subject: [PATCH] fix some -Wformat-security warnings for gcc
+
+---
+ mozilla-1.9.2/mozilla/js/src/xpconnect/shell/xpcshell.cpp | 2 +-
+ mozilla-1.9.2/mozilla/toolkit/xre/nsSigHandlers.cpp | 2 +-
+ mozilla-1.9.2/mozilla/xpcom/base/nsTraceRefcntImpl.cpp | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mozilla-1.9.2/mozilla/js/src/xpconnect/shell/xpcshell.cpp b/mozilla-1.9.2/mozilla/js/src/xpconnect/shell/xpcshell.cpp
+index 99ee4f8..7783448 100644
+--- a/mozilla-1.9.2/mozilla/js/src/xpconnect/shell/xpcshell.cpp
++++ b/mozilla-1.9.2/mozilla/js/src/xpconnect/shell/xpcshell.cpp
+@@ -267,7 +267,7 @@ GetLine(JSContext *cx, char *bufp, FILE *file, const char *prompt) {
+ #endif
+ {
+ char line[256];
+- fprintf(gOutFile, prompt);
++ fprintf(gOutFile, "%s", prompt);
+ fflush(gOutFile);
+ if (!fgets(line, sizeof line, file))
+ return JS_FALSE;
+diff --git a/mozilla-1.9.2/mozilla/toolkit/xre/nsSigHandlers.cpp b/mozilla-1.9.2/mozilla/toolkit/xre/nsSigHandlers.cpp
+index b928d66..8e85cec 100644
+--- a/mozilla-1.9.2/mozilla/toolkit/xre/nsSigHandlers.cpp
++++ b/mozilla-1.9.2/mozilla/toolkit/xre/nsSigHandlers.cpp
+@@ -136,7 +136,7 @@ static void PrintStackFrame(void *aPC, void *aClosure)
+
+ NS_DescribeCodeAddress(aPC, &details);
+ NS_FormatCodeAddressDetails(aPC, &details, buf, sizeof(buf));
+- fprintf(stdout, buf);
++ fprintf(stdout, "%s", buf);
+ }
+
+ }
+diff --git a/mozilla-1.9.2/mozilla/xpcom/base/nsTraceRefcntImpl.cpp b/mozilla-1.9.2/mozilla/xpcom/base/nsTraceRefcntImpl.cpp
+index 032bbff..608ee3f 100644
+--- a/mozilla-1.9.2/mozilla/xpcom/base/nsTraceRefcntImpl.cpp
++++ b/mozilla-1.9.2/mozilla/xpcom/base/nsTraceRefcntImpl.cpp
+@@ -872,7 +872,7 @@ static void PrintStackFrame(void *aPC, void *aClosure)
+
+ NS_DescribeCodeAddress(aPC, &details);
+ NS_FormatCodeAddressDetails(aPC, &details, buf, sizeof(buf));
+- fprintf(stream, buf);
++ fprintf(stream, "%s", buf);
+ }
+
+ }
diff --git a/message_pump_libevent.patch b/message_pump_libevent.patch
new file mode 100644
index 000000000000..69a63262b13a
--- /dev/null
+++ b/message_pump_libevent.patch
@@ -0,0 +1,19 @@
+*** mozilla-1.9.2/ipc/chromium/src/base/message_pump_libevent.cc 2012-03-06 16:45:29.000000000 +0200
+--- mozilla-1.9.2/ipc/chromium/src/base/message_pump_libevent.cc 2012-05-03 02:57:20.771136443 +0300
+***************
+*** 3,9 ****
+ // found in the LICENSE file.
+
+ #include "base/message_pump_libevent.h"
+!
+ #include <errno.h>
+ #include <fcntl.h>
+
+--- 3,9 ----
+ // found in the LICENSE file.
+
+ #include "base/message_pump_libevent.h"
+! #include <unistd.h>
+ #include <errno.h>
+ #include <fcntl.h>
+
diff --git a/mozconfig b/mozconfig
new file mode 100644
index 000000000000..fd269dca32fa
--- /dev/null
+++ b/mozconfig
@@ -0,0 +1,52 @@
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+#disabled: mozilla is broken with cairo 1.10
+#ac_add_options --enable-system-cairo
+ac_add_options --with-pthreads
+ac_add_options --enable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-mochitest
+ac_add_options --disable-installer
+ac_add_options --disable-debug
+ac_add_options --enable-optimize
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-pango
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-safe-browsing
+ac_add_options --disable-url-classifier
+ac_add_options --disable-crashreporter
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-startup-notification
+ac_add_options --enable-extensions=default
+ac_add_options --enable-optimize="-O2 -fomit-frame-pointer -pipe"
+ac_add_options --disable-crashreporter
+ac_add_options --disable-necko-wifi
+ac_add_options --enable-update-packaging
+ac_add_options --disable-dbus
+ac_add_options --enable-jemalloc
+
+ac_add_options --enable-application=xulrunner
+ac_add_options --with-xulrunner-stub-name=xulrunner-stub
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+
+
+# hardening flags
+export CFLAGS="-gstabs+ -fstack-protector --param=ssp-buffer-size=4"
+export CXXFLAGS="-gstabs+ -O2 -fomit-frame-pointer -pipe"
+export CPPFLAGS=""
+export LDFLAGS="-Wl,-z,now -Wl,-z,relro"
diff --git a/mozilla-pkgconfig.patch b/mozilla-pkgconfig.patch
new file mode 100644
index 000000000000..9331e0489786
--- /dev/null
+++ b/mozilla-pkgconfig.patch
@@ -0,0 +1,60 @@
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-1.9.2/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/libxul-embedding.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/libxul-embedding.pc.in 2010-01-21 22:27:17.000000000 +0200
+@@ -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
+ Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/libxul.pc.in mozilla-1.9.2/xulrunner/installer/libxul.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/libxul.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/libxul.pc.in 2010-01-21 22:27:56.000000000 +0200
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/Makefile.in mozilla-1.9.2/xulrunner/installer/Makefile.in
+--- mozilla-1.9.2.orig/xulrunner/installer/Makefile.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/Makefile.in 2010-01-21 22:25:04.000000000 +0200
+@@ -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 -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2010-01-21 22:28:15.000000000 +0200
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-gtkmozembed.pc.in 2010-01-21 22:28:27.000000000 +0200
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-1.9.2.orig/xulrunner/installer/mozilla-js.pc.in mozilla-1.9.2/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-1.9.2.orig/xulrunner/installer/mozilla-js.pc.in 2010-01-21 05:31:27.000000000 +0200
++++ mozilla-1.9.2/xulrunner/installer/mozilla-js.pc.in 2010-01-21 22:29:30.000000000 +0200
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lmozjs
+-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE
diff --git a/offsetof.patch b/offsetof.patch
new file mode 100644
index 000000000000..be6b3002199f
--- /dev/null
+++ b/offsetof.patch
@@ -0,0 +1,11 @@
+--- mozilla-1.9.2/gfx/ots/src/os2.cc.1 2011-10-20 14:32:27.000000000 +0400
++++ mozilla-1.9.2/gfx/ots/src/os2.cc 2011-10-20 14:29:24.000000000 +0400
+@@ -6,6 +6,8 @@
+
+ #include "head.h"
+
++#include <stddef.h>
++
+ // OS/2 - OS/2 and Windows Metrics
+ // http://www.microsoft.com/opentype/otspec/os2.htm
+
diff --git a/python2.7.patch b/python2.7.patch
new file mode 100644
index 000000000000..05a3e91a051b
--- /dev/null
+++ b/python2.7.patch
@@ -0,0 +1,11 @@
+--- configure.in 2010-10-12 10:44:37.000000000 -0700
++++ configure.in~ 2010-10-19 09:51:49.660019364 -0700
+@@ -811,7 +811,7 @@
+ AC_MSG_RESULT([yes])
+ fi
+
+-MOZ_PATH_PROGS(PYTHON, $PYTHON python2.5 python2.4 python)
++MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.5 python2.4 python)
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([python was not found in \$PATH])
+ fi
diff --git a/scopefixes.patch b/scopefixes.patch
new file mode 100644
index 000000000000..49d11b7ff7f5
--- /dev/null
+++ b/scopefixes.patch
@@ -0,0 +1,153 @@
+--- xpcom/glue/nsTPtrArray.h.orig 2012-12-30 21:20:47.000000000 -0600
++++ xpcom/glue/nsTPtrArray.h 2012-12-30 21:20:33.000000000 -0600
+@@ -64,7 +64,7 @@
+
+ // Initialize this array and pre-allocate some number of elements.
+ explicit nsTPtrArray(size_type capacity) {
+- SetCapacity(capacity);
++ this->SetCapacity(capacity);
+ }
+
+ // The array's copy-constructor performs a 'deep' copy of the given array.
+
+
+--- xpcom/base/nsAutoRef.h.orig 2012-12-30 20:32:30.000000000 -0600
++++ xpcom/base/nsAutoRef.h 2012-12-30 20:33:39.000000000 -0600
+@@ -323,7 +323,7 @@
+ void SafeAddRef()
+ {
+ if (this->HaveResource())
+- AddRef(this->get());
++ this->AddRef(this->get());
+ }
+ };
+
+@@ -690,7 +690,7 @@
+ void SafeRelease()
+ {
+ if (this->HaveResource())
+- Release(this->get());
++ this->Release(this->get());
+ }
+ };
+
+
+--- ipc/chromium/src/base/task.h.orig 2012-12-30 20:19:40.000000000 -0600
++++ ipc/chromium/src/base/task.h 2012-12-30 20:19:47.000000000 -0600
+@@ -296,7 +296,7 @@
+ public:
+ RunnableMethod(T* obj, Method meth, const Params& params)
+ : obj_(obj), meth_(meth), params_(params) {
+- RetainCallee(obj_);
++ this->RetainCallee(obj_);
+ }
+ ~RunnableMethod() {
+ ReleaseCallee();
+
+--- xpcom/glue/nsBaseHashtable.h 2005-09-27 12:44:20.000000000 -0300
++++ xpcom/glue/nsBaseHashtable.h 2012-07-02 07:27:03.872079682 -0300
+@@ -123,7 +123,7 @@ public:
+ */
+ PRBool Get(KeyType aKey, UserDataType* pData) const
+ {
+- EntryType* ent = GetEntry(aKey);
++ EntryType* ent = this->GetEntry(aKey);
+
+ if (!ent)
+ return PR_FALSE;
+@@ -142,7 +142,7 @@ public:
+ */
+ PRBool Put(KeyType aKey, UserDataType aData)
+ {
+- EntryType* ent = PutEntry(aKey);
++ EntryType* ent = this->PutEntry(aKey);
+
+ if (!ent)
+ return PR_FALSE;
+@@ -156,7 +156,7 @@ public:
+ * remove the data for the associated key
+ * @param aKey the key to remove from the hashtable
+ */
+- void Remove(KeyType aKey) { RemoveEntry(aKey); }
++ void Remove(KeyType aKey) { this->RemoveEntry(aKey); }
+
+ /**
+ * function type provided by the application for enumeration.
+--- xpcom/glue/nsClassHashtable.h 2005-08-11 16:42:37.000000000 -0300
++++ xpcom/glue/nsClassHashtable.h 2012-07-02 07:27:24.649081115 -0300
+@@ -98,7 +98,7 @@ PRBool
+ nsClassHashtable<KeyClass,T>::Get(KeyType aKey, T** retVal) const
+ {
+ typename nsBaseHashtable<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -126,7 +126,7 @@ nsClassHashtableMT<KeyClass,T>::Get(KeyT
+ PR_Lock(this->mLock);
+
+ typename nsBaseHashtableMT<KeyClass,nsAutoPtr<T>,T*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+--- xpcom/glue/nsInterfaceHashtable.h 2005-08-11 16:42:48.000000000 -0300
++++ xpcom/glue/nsInterfaceHashtable.h 2012-07-02 07:26:54.023079003 -0300
+@@ -111,7 +111,7 @@ nsInterfaceHashtable<KeyClass,Interface>
+ (KeyType aKey, UserDataType* pInterface) const
+ {
+ typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -139,7 +139,7 @@ nsInterfaceHashtable<KeyClass,Interface>
+ (KeyType aKey, PRBool* aFound) const
+ {
+ typename nsBaseHashtable<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -167,7 +167,7 @@ nsInterfaceHashtableMT<KeyClass,Interfac
+ PR_Lock(this->mLock);
+
+ typename nsBaseHashtableMT<KeyClass, nsCOMPtr<Interface>, Interface*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+--- xpcom/glue/nsRefPtrHashtable.h 2005-08-11 16:42:51.000000000 -0300
++++ xpcom/glue/nsRefPtrHashtable.h 2012-07-02 07:27:04.145079700 -0300
+@@ -112,7 +112,7 @@ nsRefPtrHashtable<KeyClass,RefPtr>::Get
+ (KeyType aKey, UserDataType* pRefPtr) const
+ {
+ typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -140,7 +140,7 @@ nsRefPtrHashtable<KeyClass,RefPtr>::GetW
+ (KeyType aKey, PRBool* aFound) const
+ {
+ typename nsBaseHashtable<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
+@@ -168,7 +168,7 @@ nsRefPtrHashtableMT<KeyClass,RefPtr>::Ge
+ PR_Lock(this->mLock);
+
+ typename nsBaseHashtableMT<KeyClass, nsRefPtr<RefPtr>, RefPtr*>::EntryType* ent =
+- GetEntry(aKey);
++ this->GetEntry(aKey);
+
+ if (ent)
+ {
diff --git a/time_posix.patch b/time_posix.patch
new file mode 100644
index 000000000000..9d10c70e7630
--- /dev/null
+++ b/time_posix.patch
@@ -0,0 +1,12 @@
+*** mozilla-1.9.2/ipc/chromium/src/base/time_posix.cc 2012-03-06 16:45:29.000000000 +0200
+--- mozilla-1.9.2/ipc/chromium/src/base/time_posix.cc 2012-05-03 18:32:05.376293760 +0300
+***************
+*** 8,13 ****
+--- 8,14 ----
+ #include <mach/mach_time.h>
+ #endif
+ #include <sys/time.h>
++ #include <unistd.h>
+ #include <time.h>
+
+ #include <limits>
diff --git a/xulrunner-png14.patch b/xulrunner-png14.patch
new file mode 100644
index 000000000000..f512416ad951
--- /dev/null
+++ b/xulrunner-png14.patch
@@ -0,0 +1,11 @@
+--- modules/libpr0n/encoders/png/nsPNGEncoder.cpp.orig 2010-01-17 00:15:53.979744638 +0100
++++ modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-01-17 00:16:07.855993411 +0100
+@@ -135,7 +135,7 @@
+
+ // initialize
+ mPNG = png_create_write_struct(PNG_LIBPNG_VER_STRING,
+- png_voidp_NULL,
++ NULL,
+ ErrorCallback,
+ ErrorCallback);
+ if (! mPNG)
diff --git a/xulrunner-png15.patch b/xulrunner-png15.patch
new file mode 100644
index 000000000000..cf3a7454c96b
--- /dev/null
+++ b/xulrunner-png15.patch
@@ -0,0 +1,83 @@
+--- modules/libpr0n/decoders/png/nsPNGDecoder.cpp.orig 2011-03-03 11:42:44.000000000 +0000
++++ modules/libpr0n/decoders/png/nsPNGDecoder.cpp 2011-04-17 19:22:15.597110133 +0100
+@@ -116,7 +116,7 @@
+ nsresult rv = mImage->AppendFrame(x_offset, y_offset, width, height, format,
+ &mImageData, &imageDataLength);
+ if (NS_FAILED(rv))
+- longjmp(mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+
+ mFrameRect.x = x_offset;
+ mFrameRect.y = y_offset;
+@@ -371,7 +371,7 @@
+ }
+
+ // we need to do the setjmp here otherwise bad things will happen
+- if (setjmp(decoder->mPNG->jmpbuf)) {
++ if (setjmp(png_jmpbuf(decoder->mPNG))) {
+ png_destroy_read_struct(&decoder->mPNG, &decoder->mInfo, NULL);
+
+ decoder->mError = PR_TRUE;
+@@ -438,7 +438,8 @@
+ // First try to see if iCCP chunk is present
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP)) {
+ png_uint_32 profileLen;
+- char *profileData, *profileName;
++ png_bytep profileData;
++ png_charp profileName;
+ int compression;
+
+ png_get_iCCP(png_ptr, info_ptr, &profileName, &compression,
+@@ -546,7 +547,7 @@
+ /* limit image dimensions (bug #251381) */
+ #define MOZ_PNG_MAX_DIMENSION 1000000L
+ if (width > MOZ_PNG_MAX_DIMENSION || height > MOZ_PNG_MAX_DIMENSION)
+- longjmp(decoder->mPNG->jmpbuf, 1);
++ longjmp(png_jmpbuf(decoder->mPNG), 1);
+ #undef MOZ_PNG_MAX_DIMENSION
+
+ if (color_type == PNG_COLOR_TYPE_PALETTE)
+@@ -662,7 +663,7 @@
+ // the image hasn't been inited yet
+ decoder->mImage->Init(width, height, decoder->mObserver);
+ } else if (containerWidth != PRInt32(width) || containerHeight != PRInt32(height)) {
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_UNEXPECTED
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_UNEXPECTED
+ }
+
+ if (decoder->mObserver)
+@@ -688,14 +689,14 @@
+ decoder->mCMSLine =
+ (PRUint8 *)nsMemory::Alloc(bpp[channels] * width);
+ if (!decoder->mCMSLine)
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+ }
+
+ if (interlace_type == PNG_INTERLACE_ADAM7) {
+ if (height < PR_INT32_MAX / (width * channels))
+ decoder->interlacebuf = (PRUint8 *)nsMemory::Alloc(channels * width * height);
+ if (!decoder->interlacebuf) {
+- longjmp(decoder->mPNG->jmpbuf, 5); // NS_ERROR_OUT_OF_MEMORY
++ longjmp(png_jmpbuf(decoder->mPNG), 5); // NS_ERROR_OUT_OF_MEMORY
+ }
+ }
+
+@@ -717,7 +718,7 @@
+ * successfully decoded) before bailing, but it's simpler to just bail
+ * out with an error message.
+ */
+- png_set_crc_action(png_ptr, NULL, PNG_CRC_ERROR_QUIT);
++ png_set_crc_action(png_ptr, PNG_CRC_NO_CHANGE, PNG_CRC_ERROR_QUIT);
+
+ return;
+ }
+@@ -915,7 +916,7 @@
+ error_callback(png_structp png_ptr, png_const_charp error_msg)
+ {
+ PR_LOG(gPNGLog, PR_LOG_ERROR, ("libpng error: %s\n", error_msg));
+- longjmp(png_ptr->jmpbuf, 1);
++ longjmp(png_jmpbuf(png_ptr), 1);
+ }
+
+
diff --git a/xulrunner-version.patch b/xulrunner-version.patch
new file mode 100644
index 000000000000..418b7c75851b
--- /dev/null
+++ b/xulrunner-version.patch
@@ -0,0 +1,13 @@
+diff -up mozilla/toolkit/mozapps/update/src/updater/module.ver mozilla/toolkit/mozapps/update/src/updater/module
+diff -up mozilla/xulrunner/installer/Makefile.in.ver mozilla/xulrunner/installer/Makefile.in
+--- mozilla/xulrunner/installer/Makefile.in.ver 2007-12-14 09:51:34.000000000 +0100
++++ mozilla/xulrunner/installer/Makefile.in 2007-12-14 09:52:03.000000000 +0100
+@@ -44,6 +44,8 @@ VPATH = @srcdir@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="1.9.2"
++
+ NO_PKG_FILES = \
+ xulrunner-config \
+ regchrome* \