Hello community,

here is the log from the commit of package xulrunner.1211 for 
openSUSE:12.1:Update checked in at 2013-01-11 11:38:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.1:Update/xulrunner.1211 (Old)
 and      /work/SRC/openSUSE:12.1:Update/.xulrunner.1211.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xulrunner.1211", Maintainer is ""

Changes:
--------
New Changes file:

--- /dev/null   2013-01-09 19:40:42.352580873 +0100
+++ /work/SRC/openSUSE:12.1:Update/.xulrunner.1211.new/xulrunner.changes        
2013-01-11 11:38:12.000000000 +0100
@@ -0,0 +1,452 @@
+-------------------------------------------------------------------
+Sat Jan  5 14:46:06 UTC 2013 - w...@rosenauer.org
+
+- update to 17.0.2esr (bnc#796895)
+  * MFSA 2013-01/CVE-2013-0749/CVE-2013-0769/CVE-2013-0770
+    Miscellaneous memory safety hazards
+  * MFSA 2013-02/CVE-2013-0760/CVE-2013-0762/CVE-2013-0766/CVE-2013-0767
+    CVE-2013-0761/CVE-2013-0763/CVE-2013-0771/CVE-2012-5829
+    Use-after-free and buffer overflow issues found using Address Sanitizer
+  * MFSA 2013-03/CVE-2013-0768 (bmo#815795)
+    Buffer Overflow in Canvas
+  * MFSA 2013-04/CVE-2012-0759 (bmo#802026)
+    URL spoofing in addressbar during page loads
+  * MFSA 2013-05/CVE-2013-0744 (bmo#814713)
+    Use-after-free when displaying table with many columns and column groups
+  * MFSA 2013-07/CVE-2013-0764 (bmo#804237)
+    Crash due to handling of SSL on threads
+  * MFSA 2013-08/CVE-2013-0745 (bmo#794158)
+    AutoWrapperChanger fails to keep objects alive during garbage collection
+  * MFSA 2013-09/CVE-2013-0746 (bmo#816842)
+    Compartment mismatch with quickstubs returned values
+  * MFSA 2013-10/CVE-2013-0747 (bmo#733305)
+    Event manipulation in plugin handler to bypass same-origin policy
+  * MFSA 2013-11/CVE-2013-0748 (bmo#806031)
+    Address space layout leaked in XBL objects
+  * MFSA 2013-12/CVE-2013-0750 (bmo#805121)
+    Buffer overflow in Javascript string concatenation
+  * MFSA 2013-13/CVE-2013-0752 (bmo#805024)
+    Memory corruption in XBL with XML bindings containing SVG
+  * MFSA 2013-14/CVE-2013-0757 (bmo#813901)
+    Chrome Object Wrapper (COW) bypass through changing prototype
+  * MFSA 2013-15/CVE-2013-0758 (bmo#813906)
+    Privilege escalation through plugin objects
+  * MFSA 2013-16/CVE-2013-0753 (bmo#814001)
+    Use-after-free in serializeToStream
+  * MFSA 2013-17/CVE-2013-0754 (bmo#814026)
+    Use-after-free in ListenerManager
+  * MFSA 2013-18/CVE-2013-0755 (bmo#814027)
+    Use-after-free in Vibrate
+  * MFSA 2013-19/CVE-2013-0756 (bmo#814029)
+    Use-after-free in Javascript Proxy objects
+- requires NSS 3.14.1 (MFSA 2013-20, CVE-2013-0743)
+- build on SLE11
+  * mozilla-gcc43-enums.patch
+  * mozilla-gcc43-template_hacks.patch
+  * mozilla-gcc43-templates_instantiation.patch
+
+-------------------------------------------------------------------
+Thu Nov 29 20:04:34 UTC 2012 - w...@rosenauer.org
+
+- update to 17.0.1
+  * regression/compatibility fixes
+
+-------------------------------------------------------------------
+Tue Nov 20 20:15:23 UTC 2012 - w...@rosenauer.org
+
+- update to 17.0 (bnc#790140)
+  * MFSA 2012-91/CVE-2012-5842/CVE-2012-5843
+    Miscellaneous memory safety hazards
+  * MFSA 2012-92/CVE-2012-4202 (bmo#758200)
+    Buffer overflow while rendering GIF images
+  * MFSA 2012-93/CVE-2012-4201 (bmo#747607)
+    evalInSanbox location context incorrectly applied
+  * MFSA 2012-94/CVE-2012-5836 (bmo#792857)
+    Crash when combining SVG text on path with CSS
+  * MFSA 2012-95/CVE-2012-4203 (bmo#765628)
+    Javascript: URLs run in privileged context on New Tab page
+  * MFSA 2012-96/CVE-2012-4204 (bmo#778603)
+    Memory corruption in str_unescape
+  * MFSA 2012-97/CVE-2012-4205 (bmo#779821)
+    XMLHttpRequest inherits incorrect principal within sandbox
+  * MFSA 2012-99/CVE-2012-4208 (bmo#798264)
+    XrayWrappers exposes chrome-only properties when not in chrome
+    compartment
+  * MFSA 2012-100/CVE-2012-5841 (bmo#805807)
+    Improper security filtering for cross-origin wrappers
+  * MFSA 2012-101/CVE-2012-4207 (bmo#801681)
+    Improper character decoding in HZ-GB-2312 charset
+  * MFSA 2012-102/CVE-2012-5837 (bmo#800363)
+    Script entered into Developer Toolbar runs with chrome privileges
+  * MFSA 2012-103/CVE-2012-4209 (bmo#792405)
+    Frames can shadow top.location
+  * MFSA 2012-104/CVE-2012-4210 (bmo#796866)
+    CSS and HTML injection through Style Inspector
+  * MFSA 2012-105/CVE-2012-4214/CVE-2012-4215/CVE-2012-4216/
+    CVE-2012-5829/CVE-2012-5839/CVE-2012-5840/CVE-2012-4212/
+    CVE-2012-4213/CVE-2012-4217/CVE-2012-4218
+    Use-after-free and buffer overflow issues found using Address
+    Sanitizer
+  * MFSA 2012-106/CVE-2012-5830/CVE-2012-5833/CVE-2012-5835/CVE-2012-5838
+    Use-after-free, buffer overflow, and memory corruption issues
+    found using Address Sanitizer
+- rebased patches
+- disabled WebRTC since build is broken (bmo#776877)
+
+-------------------------------------------------------------------
+Wed Oct 24 08:28:49 UTC 2012 - w...@rosenauer.org
+
+- update to 16.0.2 (bnc#786522)
+  * MFSA 2012-90/CVE-2012-4194/CVE-2012-4195/CVE-2012-4196
+    (bmo#800666, bmo#793121, bmo#802557)
+    Fixes for Location object issues
+
+-------------------------------------------------------------------
+Thu Oct 11 01:50:19 UTC 2012 - w...@rosenauer.org
+
+- update to 16.0.1 (bnc#783533)
+  * MFSA 2012-88/CVE-2012-4191 (bmo#798045)
+    Miscellaneous memory safety hazards
+  * MFSA 2012-89/CVE-2012-4192/CVE-2012-4193 (bmo#799952, bmo#720619)
+    defaultValue security checks not applied
+
+-------------------------------------------------------------------
+Sun Oct  7 21:41:01 UTC 2012 - w...@rosenauer.org
+
+- update to 16.0 (bnc#783533)
+  * MFSA 2012-74/CVE-2012-3982/CVE-2012-3983
+    Miscellaneous memory safety hazards
+  * MFSA 2012-75/CVE-2012-3984 (bmo#575294)
+    select element persistance allows for attacks
+  * MFSA 2012-76/CVE-2012-3985 (bmo#655649)
+    Continued access to initial origin after setting document.domain
+  * MFSA 2012-77/CVE-2012-3986 (bmo#775868)
+    Some DOMWindowUtils methods bypass security checks
+  * MFSA 2012-79/CVE-2012-3988 (bmo#725770)
+    DOS and crash with full screen and history navigation
+  * MFSA 2012-80/CVE-2012-3989 (bmo#783867)
+    Crash with invalid cast when using instanceof operator
+  * MFSA 2012-81/CVE-2012-3991 (bmo#783260)
+    GetProperty function can bypass security checks
+  * MFSA 2012-82/CVE-2012-3994 (bmo#765527)
+    top object and location property accessible by plugins
+  * MFSA 2012-83/CVE-2012-3993/CVE-2012-4184 (bmo#768101, bmo#780370)
+    Chrome Object Wrapper (COW) does not disallow acces to privileged
+    functions or properties
+  * MFSA 2012-84/CVE-2012-3992 (bmo#775009)
+    Spoofing and script injection through location.hash
+  * MFSA 2012-85/CVE-2012-3995/CVE-2012-4179/CVE-2012-4180/
+    CVE-2012-4181/CVE-2012-4182/CVE-2012-4183
+    Use-after-free, buffer overflow, and out of bounds read issues
+    found using Address Sanitizer
+  * MFSA 2012-86/CVE-2012-4185/CVE-2012-4186/CVE-2012-4187/
+    CVE-2012-4188
+    Heap memory corruption issues found using Address Sanitizer
+  * MFSA 2012-87/CVE-2012-3990 (bmo#787704)
+    Use-after-free in the IME State Manager
+- requires NSPR 4.9.2
+- removed upstreamed mozilla-crashreporter-restart-args.patch
+- updated translations-other with new languages
+
+-------------------------------------------------------------------
+Sun Aug 26 13:48:04 UTC 2012 - w...@rosenauer.org
+
+- update to 15.0 (bnc#777588)
+  * MFSA 2012-57/CVE-2012-1970
+    Miscellaneous memory safety hazards
+  * MFSA 2012-58/CVE-2012-1972/CVE-2012-1973/CVE-2012-1974/CVE-2012-1975
+    CVE-2012-1976/CVE-2012-3956/CVE-2012-3957/CVE-2012-3958/CVE-2012-3959
+    CVE-2012-3960/CVE-2012-3961/CVE-2012-3962/CVE-2012-3963/CVE-2012-3964
+    Use-after-free issues found using Address Sanitizer
+  * MFSA 2012-59/CVE-2012-1956 (bmo#756719)
+    Location object can be shadowed using Object.defineProperty
+  * MFSA 2012-60/CVE-2012-3965 (bmo#769108)
+    Escalation of privilege through about:newtab
+  * MFSA 2012-61/CVE-2012-3966 (bmo#775794, bmo#775793)
+    Memory corruption with bitmap format images with negative height
+  * MFSA 2012-62/CVE-2012-3967/CVE-2012-3968
+    WebGL use-after-free and memory corruption
+  * MFSA 2012-63/CVE-2012-3969/CVE-2012-3970
+    SVG buffer overflow and use-after-free issues
+  * MFSA 2012-64/CVE-2012-3971
+    Graphite 2 memory corruption
+  * MFSA 2012-65/CVE-2012-3972 (bmo#746855)
+    Out-of-bounds read in format-number in XSLT
+  * MFSA 2012-66/CVE-2012-3973 (bmo#757128)
+    HTTPMonitor extension allows for remote debugging without explicit
+    activation
+  * MFSA 2012-68/CVE-2012-3975 (bmo#770684)
+    DOMParser loads linked resources in extensions when parsing
+    text/html
+  * MFSA 2012-69/CVE-2012-3976 (bmo#768568)
+    Incorrect site SSL certificate data display
+  * MFSA 2012-70/CVE-2012-3978 (bmo#770429)
+    Location object security checks bypassed by chrome code
+  * MFSA 2012-72/CVE-2012-3980 (bmo#771859)
+    Web console eval capable of executing chrome-privileged code
+- fix HTML5 video crash with GStreamer enabled (bmo#761030)
+- fixed filelist
+
+-------------------------------------------------------------------
+Fri Aug 17 13:09:49 UTC 2012 - dmuel...@suse.com
+
+- fix build on ARM:
+  * disable crashreporter, it does not build
+  * reduce debuginfo during built to avoid running out of memory
+
+-------------------------------------------------------------------
++++ 255 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.1:Update/.xulrunner.1211.new/xulrunner.changes

New:
----
  add-plugins.sh.in
  baselibs.conf
  compare-locales.tar.bz2
  create-tar.sh
  find-external-requires.sh
  l10n-17.0.2.tar.bz2
  mozilla-gcc43-enums.patch
  mozilla-gcc43-template_hacks.patch
  mozilla-gcc43-templates_instantiation.patch
  mozilla-idldir.patch
  mozilla-language.patch
  mozilla-nongnome-proxies.patch
  mozilla-ntlm-full-path.patch
  mozilla-pkgconfig.patch
  mozilla-ppc.patch
  mozilla-prefer_plugin_pref.patch
  mozilla-sle11.patch
  source-stamp.txt
  toolkit-download-folder.patch
  xulrunner-17.0.2-source.tar.bz2
  xulrunner-openSUSE-prefs.js
  xulrunner-rpmlintrc
  xulrunner.changes
  xulrunner.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xulrunner.spec ++++++
#
# spec file for package xulrunner
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#               2006-2012 Wolfgang Rosenauer
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


Name:           xulrunner
BuildRequires:  Mesa-devel
BuildRequires:  autoconf213
BuildRequires:  dbus-1-glib-devel
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  hunspell-devel
BuildRequires:  libcurl-devel
BuildRequires:  libgnomeui-devel
BuildRequires:  libidl-devel
BuildRequires:  libnotify-devel
BuildRequires:  nss-shared-helper-devel
BuildRequires:  pkg-config
BuildRequires:  python
BuildRequires:  startup-notification-devel
BuildRequires:  unzip
BuildRequires:  xorg-x11-libXt-devel
BuildRequires:  yasm
BuildRequires:  zip
%if %suse_version > 1110
BuildRequires:  libiw-devel
BuildRequires:  libproxy-devel
%else
BuildRequires:  wireless-tools
%endif
BuildRequires:  mozilla-nspr-devel >= 4.9.4
BuildRequires:  mozilla-nss-devel >= 3.14.1
Version:        17.0.2
Release:        0
%define         releasedate 2013010500
%define         version_internal 17.0.2
%define         apiversion 17
%define         uaweight 1700002
Summary:        Mozilla Runtime Environment
License:        MPL-2.0
Group:          Productivity/Other
Url:            http://www.mozilla.org/
Provides:       gecko
%ifarch %ix86
Provides:       xulrunner-32bit = %{version}-%{release}
%endif
Source:         xulrunner-%{version}-source.tar.bz2
Source1:        l10n-%{version}.tar.bz2
Source2:        find-external-requires.sh
Source3:        %{name}-rpmlintrc
Source4:        xulrunner-openSUSE-prefs.js
Source5:        add-plugins.sh.in
Source6:        create-tar.sh
Source7:        baselibs.conf
Source8:        source-stamp.txt
Source9:        compare-locales.tar.bz2
Patch1:         toolkit-download-folder.patch
Patch2:         mozilla-pkgconfig.patch
Patch3:         mozilla-idldir.patch
Patch4:         mozilla-nongnome-proxies.patch
Patch5:         mozilla-prefer_plugin_pref.patch
Patch6:         mozilla-language.patch
Patch7:         mozilla-ntlm-full-path.patch
Patch9:         mozilla-sle11.patch
Patch14:        mozilla-ppc.patch
# SLE11 patches
Patch20:        mozilla-gcc43-enums.patch
Patch21:        mozilla-gcc43-template_hacks.patch
Patch22:        mozilla-gcc43-templates_instantiation.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Requires:       mozilla-js = %{version}
Requires(post):  update-alternatives coreutils
Requires(preun): update-alternatives coreutils
### build configuration ###
%define has_system_nspr  1
%define has_system_nss   1
%define has_system_cairo 0
%define localize 0
%ifarch ppc ppc64 s390 s390x ia64 %arm
%define crashreporter    0
%else
%define crashreporter    1
%endif
### configuration end ###
%define _use_internal_dependency_generator 0
%define __find_requires sh %{SOURCE2}
%global provfind sh -c "grep -Ev 'mozsqlite3|dbusservice|unixprint' | 
%__find_provides"
%global __find_provides %provfind
%if %has_system_nspr
Requires:       mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' 
mozilla-nspr)
%endif
%if %has_system_nss
Requires:       mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
%endif

%description
XULRunner is a single installable package that can be used to bootstrap
multiple XUL+XPCOM applications that are as rich as Firefox and
Thunderbird.


%package -n mozilla-js
Summary:        Mozilla JS engine
Group:          Productivity/Other

%description -n mozilla-js
JavaScript is the Netscape-developed object scripting language used in millions
of web pages and server applications worldwide. Netscape's JavaScript is a
superset of the ECMA-262 Edition 3 (ECMAScript) standard scripting language,
with only mild differences from the published standard.


%package devel
Summary:        XULRunner/Gecko SDK
Group:          Development/Libraries/Other
%if %has_system_nspr
Requires:       mozilla-nspr-devel >= %(rpm -q --queryformat '%{VERSION}' 
mozilla-nspr-devel)
%endif
%if %has_system_nss
Requires:       mozilla-nss-devel >= %(rpm -q --queryformat '%{VERSION}' 
mozilla-nss-devel)
%endif
Requires:       %{name} = %{version}

%description devel
Software Development Kit to embed XUL or Gecko into other applications.

%if %localize

%package translations-common
Summary:        Common translations for XULRunner
Group:          System/Localization
Requires:       %{name} = %{version}
Provides:       
locale(%{name}:ar;ca;cs;da;de;en_GB;es_AR;es_CL;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
Obsoletes:      %{name}-translations < %{version}-%{release}

%description translations-common
XULRunner is a single installable package that can be used to bootstrap
multiple XUL+XPCOM applications that are as rich as Firefox and
Thunderbird.

This package contains the most common languages but en-US which is
delivered in the main package.


%package translations-other
Summary:        Extra translations for XULRunner
Group:          System/Localization
Requires:       %{name} = %{version}
Provides:       
locale(%{name}:ach;af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;el;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
Obsoletes:      %{name}-translations < %{version}-%{release}

%description translations-other
XULRunner is a single installable package that can be used to bootstrap
multiple XUL+XPCOM applications that are as rich as Firefox and
Thunderbird.

This package contains rarely used languages.
%endif

%if %crashreporter

%package buildsymbols
Summary:        Breakpad buildsymbols for %{name}
Group:          Development/Debug

%description buildsymbols
This subpackage contains the Breakpad created and compatible debugging
symbols meant for upload to Mozilla's crash collector database.
%endif

%prep
%setup -n mozilla -q -b 1 -b 9
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%if %suse_version < 1120
%patch9 -p1
%endif
%patch14 -p1
# SLE patches
%if %suse_version <= 1110
%patch20 -p1
%patch21 -p1
%patch22 -p1
%endif

%build
# no need to add build time to binaries
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{name}.changes")"
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
TIME="\"$(date -d "${modified}" "+%%R")\""
find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i 
"s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
#
MOZ_APP_DIR=%{_libdir}/xulrunner-%{version_internal}
export MOZ_BUILD_DATE=%{releasedate}
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
%ifarch ppc64
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
export LDFLAGS=" -Wl,-rpath -Wl,${MOZ_APP_DIR}"
%ifarch %arm
# debug symbols require too much memory during build
export CFLAGS="${CFLAGS/-g/}"
LDFLAGS+="-Wl,--reduce-memory-overheads -Wl,--no-keep-memory"
%endif
export CXXFLAGS="$CFLAGS"
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export MOZ_MILESTONE_RELEASE=1
#
cat << EOF > $MOZCONFIG
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MILESTONE_RELEASE=1
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
. \$topsrcdir/xulrunner/config/mozconfig
ac_add_options --prefix=%{_prefix}
ac_add_options --libdir=%{_libdir}
ac_add_options --sysconfdir=%{_sysconfdir}
ac_add_options --mandir=%{_mandir}
ac_add_options --includedir=%{_includedir}
ac_add_options --enable-optimize
ac_add_options --enable-extensions=default
#ac_add_options --with-system-jpeg # mozilla uses internal libjpeg-turbo now
#ac_add_options --with-system-png  # no APNG support
ac_add_options --with-system-zlib
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
ac_add_options --disable-tests
ac_add_options --disable-mochitest
ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --disable-javaxpcom
ac_add_options --enable-system-hunspell
ac_add_options --enable-startup-notification
ac_add_options --enable-shared-js
ac_add_options --disable-webrtc   # does not build with system NSPR
#ac_add_options --enable-debug
EOF
%if %suse_version > 1130
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gnomevfs
ac_add_options --enable-gio
EOF
%endif
%if %has_system_nspr
cat << EOF >> $MOZCONFIG
ac_add_options --with-system-nspr
EOF
%endif
%if %has_system_nss
cat << EOF >> $MOZCONFIG
ac_add_options --with-system-nss
EOF
%endif
%if %has_system_cairo
cat << EOF >> $MOZCONFIG
ac_add_options --enable-system-cairo
EOF
%endif
%if %suse_version > 1110
cat << EOF >> $MOZCONFIG
ac_add_options --enable-libproxy
EOF
%endif
%if ! %crashreporter
cat << EOF >> $MOZCONFIG
ac_add_options --disable-crashreporter
EOF
%endif
# S/390
%ifarch s390 s390x
cat << EOF >> $MOZCONFIG
ac_add_options --disable-jemalloc
EOF
%endif
# ARM
%ifarch %arm
cat << EOF >> $MOZCONFIG
%ifarch armv7l armv7hl
ac_add_options --with-arch=armv7-a
ac_add_options --with-float-abi=hard
ac_add_options --with-fpu=vfpv3-d16
ac_add_options --with-thumb=yes
ac_add_options --disable-debug
%endif
%ifarch armv5tel
ac_add_options --with-arch=armv5te
ac_add_options --with-float-abi=soft
ac_add_options --with-thumb=no
%endif
EOF
%endif
make -f client.mk build

%install
cd ../obj
# preferences (to package in omni.jar)
cp %{SOURCE4} dist/bin/defaults/pref/all-openSUSE.js
%makeinstall STRIP=/bin/true
# xpt.py is not executable
chmod a+x 
$RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/bin/*.py
# remove some executable permissions
find $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version_internal} \
     -type f -perm -111 -exec chmod a-x {} \;
find $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/ \
     -name "*.js" -o -name "*.xpm" -o -name "*.png" | xargs chmod a-x
# remove mkdir.done files from installed base
find $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal} -name 
".mkdir.done" | xargs rm
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/extensions
# fixing SDK dynamic libs (symlink instead of copy)
rm $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/*.so
ln -sf ../../../xulrunner-%{version_internal}/libmozjs.so \
       $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/
ln -sf ../../../xulrunner-%{version_internal}/libxpcom.so \
       $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/
ln -sf ../../../xulrunner-%{version_internal}/libxul.so \
       $RPM_BUILD_ROOT%{_libdir}/xulrunner-devel-%{version_internal}/sdk/lib/
# include basic buildenv for xulapps to use
mkdir -p $RPM_BUILD_ROOT%{_datadir}/xulrunner-%{version_internal}
pushd ..
# this list has been compiled by trial and error for prism
tar --exclude=*.cpp --exclude=*.mm \
   -cvjf 
$RPM_BUILD_ROOT%{_datadir}/xulrunner-%{version_internal}/mozilla-src.tar.bz2 \
    mozilla/configure.in mozilla/Makefile.in mozilla/client.py 
mozilla/allmakefiles.sh \
    mozilla/config mozilla/client.mk mozilla/aclocal.m4 mozilla/build 
mozilla/js/src/* \
    mozilla/testing mozilla/toolkit/mozapps/installer mozilla/probes 
mozilla/memory \
    mozilla/toolkit/xre mozilla/nsprpub/config mozilla/tools mozilla/xpcom/build
popd
# install add-plugins.sh
sed "s:%%PROGDIR:%{_libdir}/xulrunner-%{version_internal}:g" \
  %{SOURCE5} > 
$RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh
chmod 755 $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh
# ghosts
touch $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/global.reginfo
# install additional locales
%if %localize
rm -f %{_tmppath}/translations.*
touch %{_tmppath}/translations.{common,other}
for locale in $(awk '{ print $1; }' 
../mozilla/browser/locales/shipped-locales); do
  case $locale in
   ja-JP-mac|en-US)
      ;;
   *)
      pushd $RPM_BUILD_DIR/compare-locales
      PYTHONPATH=lib \
        scripts/compare-locales -m ../l10n-merged/$locale \
        ../mozilla/toolkit/locales/l10n.ini ../l10n $locale
      popd
      LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
      make -C toolkit/locales langpack-$locale
      cp dist/xpi-stage/locale-$locale \
         
$RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/extensions/langpack-$loc...@firefox.mozilla.org
      # remove prefs and profile defaults from langpack
      rm -rf 
$RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/extensions/langpack-$loc...@firefox.mozilla.org/defaults
      # check against the fixed common list and sort into the right filelist
      _matched=0
      for _match in ar ca cs da de en-GB es-AR es-CL es-ES fi fr hu it ja ko 
nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
        [ "$_match" = "$locale" ] && _matched=1
      done
      [ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
      echo 
%{_libdir}/xulrunner-%{version_internal}/extensions/langpack-$loc...@firefox.mozilla.org
 \ \
         >> %{_tmppath}/translations.$_l10ntarget
  esac
done
%endif
# API symlink
ln -sf xulrunner-%{version_internal} 
$RPM_BUILD_ROOT%{_libdir}/xulrunner-%{apiversion}
# compat links
%if 0%{?ga_version:1}
touch $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{ga_version}
%endif
# excludes
%if %suse_version < 1120
rm -f $RPM_BUILD_ROOT%{_bindir}/xulrunner
%endif
rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/updater
rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/update.locale
rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/LICENSE
rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/README.txt
rm -f 
$RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/dictionaries/en-US*
rm -f $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/nspr-config
rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/mozilla-plugin.pc
# fdupes
%fdupes $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version_internal}/
%fdupes $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version_internal}/
# create breakpad debugsymbols
%if %crashreporter
SYMBOLS_NAME="xulrunner-%{version}-%{release}.%{_arch}-%{suse_version}-symbols"
make buildsymbols \
  SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
  SYMBOL_FULL_ARCHIVE_BASENAME="$SYMBOLS_NAME-full" \
  SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
if [ -e dist/*symbols.zip ]; then
  mkdir -p $RPM_BUILD_ROOT%{_datadir}/mozilla/
  cp dist/*symbols.zip $RPM_BUILD_ROOT%{_datadir}/mozilla/
fi
%endif

%clean
rm -rf $RPM_BUILD_ROOT
%if %localize
rm -rf %{_tmppath}/translations.*
%endif

%post
/usr/sbin/update-alternatives --install %{_bindir}/xulrunner \
  xulrunner %{_libdir}/xulrunner-%{apiversion}/xulrunner %{uaweight} || :
%{_libdir}/xulrunner-%{apiversion}/add-plugins.sh > /dev/null 2>&1
exit 0

%posttrans
# needed for updates which transition directory to symlink
%if 0%{?ga_version:1}
test -d %{_libdir}/xulrunner-%{ga_version} && rm -rf 
%{_libdir}/xulrunner-%{ga_version}
ln -sf xulrunner-%{version_internal} %{_libdir}/xulrunner-%{ga_version}
%endif
[ -e %{_libdir}/xulrunner-%{version_internal}/add-plugins.sh ] && \
  %{_libdir}/xulrunner-%{version_internal}/add-plugins.sh > /dev/null 2>&1
exit 0

%preun
if [ "$1" = "0" ]; then # deinstallation
  # that's not quite nice since old versions should be removed on update as well
  # but that's problematic for updates w/o raising the version number
  /usr/sbin/update-alternatives --remove xulrunner 
%{_libdir}/xulrunner-%{apiversion}/xulrunner
fi
rm -f %{_libdir}/xulrunner-%{version_internal}/dictionaries/*
exit 0

%triggerin -- myspell-dictionary
%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh > /dev/null 2>&1
exit 0

%triggerpostun -- myspell-dictionary
%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh > /dev/null 2>&1
exit 0

%files
%defattr(-,root,root)
%dir %{_libdir}/xulrunner-%{version_internal}/
%dir %{_libdir}/xulrunner-%{version_internal}/chrome/
%dir %{_libdir}/xulrunner-%{version_internal}/dictionaries/
%dir %{_libdir}/xulrunner-%{version_internal}/extensions/
%{_libdir}/xulrunner-%{version_internal}/chrome/icons/
%{_libdir}/xulrunner-%{version_internal}/components/
%{_libdir}/xulrunner-%{version_internal}/plugins/
%{_libdir}/xulrunner-%{version_internal}/*.so
%exclude %{_libdir}/xulrunner-%{version_internal}/libmozjs.so
%{_libdir}/xulrunner-%{version_internal}/add-plugins.sh
%{_libdir}/xulrunner-%{version_internal}/chrome.manifest
%{_libdir}/xulrunner-%{version_internal}/dependentlibs.list
%{_libdir}/xulrunner-%{version_internal}/mozilla-xremote-client
%{_libdir}/xulrunner-%{version_internal}/plugin-container
%{_libdir}/xulrunner-%{version_internal}/xulrunner
%{_libdir}/xulrunner-%{version_internal}/xulrunner-stub
%{_libdir}/xulrunner-%{version_internal}/platform.ini
%{_libdir}/xulrunner-%{version_internal}/omni.ja
%{_libdir}/xulrunner-%{version_internal}/README.xulrunner
# crashreporter files
%if %crashreporter
%{_libdir}/xulrunner-%{version_internal}/crashreporter
%{_libdir}/xulrunner-%{version_internal}/crashreporter.ini
%{_libdir}/xulrunner-%{version_internal}/Throbber-small.gif
%endif
# ghosts
%ghost %{_libdir}/xulrunner-%{version_internal}/global.reginfo
%if %suse_version >= 1120
%ghost %{_bindir}/xulrunner
%endif
# API symlink (already in mozilla-js)
#%{_libdir}/xulrunner-%{apiversion}
# compat symlinks
%if 0%{?ga_version:1}
%ghost %{_libdir}/xulrunner-%{ga_version}
%endif

%files -n mozilla-js
%defattr(-,root,root)
%dir %{_libdir}/xulrunner-%{version_internal}/
%{_libdir}/xulrunner-%{apiversion}
%{_libdir}/xulrunner-%{version_internal}/libmozjs.so

%files devel
%defattr(-,root,root)
%{_libdir}/xulrunner-devel-%{version_internal}/
# FIXME symlink dynamic libs below sdk/lib
%attr(644,root,root) %{_libdir}/pkgconfig/*
%{_includedir}/xulrunner-%{version_internal}/
%{_datadir}/xulrunner-%{version_internal}/

%if %localize

%files translations-common -f %{_tmppath}/translations.common
%defattr(-,root,root)
%dir %{_libdir}/xulrunner-%{version_internal}/
%dir %{_libdir}/xulrunner-%{version_internal}/chrome/

%files translations-other -f %{_tmppath}/translations.other
%defattr(-,root,root)
%dir %{_libdir}/xulrunner-%{version_internal}/
%dir %{_libdir}/xulrunner-%{version_internal}/chrome/
%endif

%if %crashreporter

%files buildsymbols
%defattr(-,root,root)
%{_datadir}/mozilla/
%endif

%changelog
++++++ add-plugins.sh.in ++++++
#! /bin/sh
# Copyright (c) 2008 Wolfgang Rosenauer.  All rights reserved.
#

# check if we are started as root
# only one of UID and USER must be set correctly
if test "$UID" != 0 -a "$USER" != root; then
    echo "You must be root to start $0."
    exit 1
fi

PREFIX="%PROGDIR"

# dictionaries
MYSPELL=/usr/share/myspell
MOZ_SPELL=$PREFIX/dictionaries
if [ -d $MOZ_SPELL ] ; then
  if [ -d $MYSPELL ] ; then
    for dict in $MYSPELL/??[-_]??.aff ; do

      # check is it is really the file or it is a string which contain '??_??'
      if ! [ -e $dict ] ; then
        continue
      fi

      # the dict file name
      dict_file=`echo ${dict##*/}`

      # the dict file has a valid name
      lang=`echo ${dict_file:0:2}`
      country=`echo ${dict_file:3:2}`
      
      # check for .dic file
      if [ ! -r $MYSPELL/${lang}[-_]${country}.dic ] ; then
        continue
      fi

      # create links
      if [ ! -r $MOZ_SPELL/${lang}[-_]${country}.aff ] ; then
        ln -sf $MYSPELL/${lang}[-_]${country}.aff \
               $MOZ_SPELL/${lang}-${country}.aff
      fi      
      if [ ! -r $MOZ_SPELL/${lang}[-_]${country}.dic ] ; then
        ln -sf $MYSPELL/${lang}[-_]${country}.dic \
               $MOZ_SPELL/${lang}-${country}.dic
      fi      
    done
    echo "-> added myspell dictionaries"
  fi

  # remove broken links
  for dict in $MOZ_SPELL/*.{aff,dic} ; do
    if ! [ -r $dict ] ; then
      rm -f $dict
    fi
  done
fi
++++++ baselibs.conf ++++++
xulrunner
 +/usr/lib(64)?/xulrunner-.*
 +/etc/gre.d/.*
 requires "mozilla-js-<targettype>"

mozilla-js

xulrunner-translations-common
 +/usr/lib(64)?/xulrunner-.*
 requires "xulrunner-<targettype> = <version>"
 supplements "packageand(xulrunner-translations-common:xulrunner-<targettype>)"

xulrunner-translations-other
 +/usr/lib(64)?/xulrunner-.*
 requires "xulrunner-<targettype> = <version>"
 supplements "packageand(xulrunner-translations-other:xulrunner-<targettype>)"

++++++ create-tar.sh ++++++
#!/bin/bash

CHANNEL="esr17"
BRANCH="releases/mozilla-$CHANNEL"
RELEASE_TAG="FIREFOX_17_0_2esr_RELEASE"
VERSION="17.0.2"

# mozilla
echo "cloning $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH mozilla
pushd mozilla
[ "$RELEASE_TAG" == "default" ] || hg update -r $RELEASE_TAG
# get repo and source stamp
echo -n "REV=" > ../source-stamp.txt
hg -R . parent --template="{node|short}\n" >> ../source-stamp.txt
echo -n "REPO=" >> ../source-stamp.txt
hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/" >> 
../source-stamp.txt
popd
echo "creating archive..."
tar cjf xulrunner-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore 
--exclude=.hg --exclude=CVS mozilla

# l10n
echo "fetching locales..."
test ! -d l10n && mkdir l10n
for locale in $(awk '{ print $1; }' mozilla/browser/locales/shipped-locales); do
  case $locale in
    ja-JP-mac|en-US)
      ;;
    *)
      echo "fetching $locale ..."
      hg clone http://hg.mozilla.org/releases/l10n/mozilla-release/$locale 
l10n/$locale
      [ "$RELEASE_TAG" == "default" ] || hg -R l10n/$locale up -C -r 
$RELEASE_TAG
      ;;
  esac
done
echo "creating l10n archive..."
tar cjf l10n-$VERSION.tar.bz2 --exclude=.hgtags --exclude=.hgignore 
--exclude=.hg l10n

# compare-locales
echo "creating compare-locales"
hg clone http://hg.mozilla.org/build/compare-locales
tar cjf compare-locales.tar.bz2 --exclude=.hgtags --exclude=.hgignore 
--exclude=.hg compare-locales

++++++ find-external-requires.sh ++++++
#!/bin/sh
# Finds requirements provided outside of the current file set

filelist=$( sed "s/[]['\"*?{}]/\\\\\&/g" )
provides=$( echo "$filelist" | /usr/lib/rpm/find-provides )
echo "$filelist" \
    | /usr/lib/rpm/find-requires \
    | grep -F -v "$provides" \
    | sort -u
++++++ mozilla-gcc43-enums.patch ++++++
# HG changeset patch
# Parent 6d0e0f7dc4cf04f1d08f8b4f8e9312ac05928608
remove trailing commas in enum definitions as these are unpalatable for gcc
(4.3.4) in pedantic mode

diff --git a/media/webrtc/trunk/src/common_types.h 
b/media/webrtc/trunk/src/common_types.h
--- a/media/webrtc/trunk/src/common_types.h
+++ b/media/webrtc/trunk/src/common_types.h
@@ -342,17 +342,17 @@ enum TelephoneEventDetectionMethods
 enum NsModes    // type of Noise Suppression
 {
     kNsUnchanged = 0,   // previously set mode
     kNsDefault,         // platform default
     kNsConference,      // conferencing default
     kNsLowSuppression,  // lowest suppression
     kNsModerateSuppression,
     kNsHighSuppression,
-    kNsVeryHighSuppression,     // highest suppression
+    kNsVeryHighSuppression      // highest suppression
 };
 
 enum AgcModes                  // type of Automatic Gain Control
 {
     kAgcUnchanged = 0,        // previously set mode
     kAgcDefault,              // platform default
     // adaptive mode for use when analog volume control exists (e.g. for
     // PC softphone)
@@ -367,17 +367,17 @@ enum AgcModes                  // type o
 
 // EC modes
 enum EcModes                   // type of Echo Control
 {
     kEcUnchanged = 0,          // previously set mode
     kEcDefault,                // platform default
     kEcConference,             // conferencing default (aggressive AEC)
     kEcAec,                    // Acoustic Echo Cancellation
-    kEcAecm,                   // AEC mobile
+    kEcAecm                    // AEC mobile
 };
 
 // AECM modes
 enum AecmModes                 // mode of AECM
 {
     kAecmQuietEarpieceOrHeadset = 0,
                                // Quiet earpiece or headset use
     kAecmEarpiece,             // most earpiece use
@@ -416,43 +416,43 @@ enum NetEqModes             // NetEQ pla
     // Optimized trade-off between low delay and jitter robustness for two-way
     // communication.
     kNetEqDefault = 0,
     // Improved jitter robustness at the cost of increased delay. Can be
     // used in one-way communication.
     kNetEqStreaming = 1,
     // Optimzed for decodability of fax signals rather than for perceived audio
     // quality.
-    kNetEqFax = 2,
+    kNetEqFax = 2
 };
 
 enum NetEqBgnModes          // NetEQ Background Noise (BGN) configurations
 {
     // BGN is always on and will be generated when the incoming RTP stream
     // stops (default).
     kBgnOn = 0,
     // The BGN is faded to zero (complete silence) after a few seconds.
     kBgnFade = 1,
     // BGN is not used at all. Silence is produced after speech extrapolation
     // has faded.
-    kBgnOff = 2,
+    kBgnOff = 2
 };
 
 enum OnHoldModes            // On Hold direction
 {
     kHoldSendAndPlay = 0,    // Put both sending and playing in on-hold state.
     kHoldSendOnly,           // Put only sending in on-hold state.
     kHoldPlayOnly            // Put only playing in on-hold state.
 };
 
 enum AmrMode
 {
     kRfc3267BwEfficient = 0,
     kRfc3267OctetAligned = 1,
-    kRfc3267FileStorage = 2,
+    kRfc3267FileStorage = 2
 };
 
 // ==================================================================
 // Video specific types
 // ==================================================================
 
 // Raw video types
 enum RawVideoType
++++++ mozilla-gcc43-template_hacks.patch ++++++
# HG changeset patch
# Parent 993c5b5a44ca18c5273b74c75704b418c2477d28
bmo#783505 - bump gcc version required for building without template hacks

diff --git a/js/src/jstypedarray.cpp b/js/src/jstypedarray.cpp
--- a/js/src/jstypedarray.cpp
+++ b/js/src/jstypedarray.cpp
@@ -1404,17 +1404,17 @@ class TypedArrayTemplate
     // retrieves a given Value, probably from a slot on the object.
     template<Value ValueGetter(JSObject *obj)>
     static JSBool
     Getter(JSContext *cx, unsigned argc, Value *vp)
     {
         CallArgs args = CallArgsFromVp(argc, vp);
         // FIXME: Hack to keep us building with gcc 4.2. Remove this once we
         // drop support for gcc 4.2. See bug 783505 for the details.
-#if defined(__GNUC__) && __GNUC_MINOR__ <= 2
+#if defined(__GNUC__) && __GNUC_MINOR__ <= 3
         return CallNonGenericMethod(cx, IsThisClass, GetterImpl<ValueGetter>, 
args);
 #else
         return CallNonGenericMethod<ThisTypeArray::IsThisClass,
                                     ThisTypeArray::GetterImpl<ValueGetter> 
>(cx, args);
 #endif
     }
 
     // Define an accessor for a read-only property that invokes a native getter
++++++ mozilla-gcc43-templates_instantiation.patch ++++++
# HG changeset patch
# Parent 2e78665a1ab70f4dc3884965428bda14da684ef6
bmo#732340 - explicitly instantiate templates

diff --git a/gfx/harfbuzz/src/hb-ot-layout.cc b/gfx/harfbuzz/src/hb-ot-layout.cc
--- a/gfx/harfbuzz/src/hb-ot-layout.cc
+++ b/gfx/harfbuzz/src/hb-ot-layout.cc
@@ -479,8 +479,12 @@ hb_ot_layout_position_lookup (hb_font_t 
   return hb_ot_layout_from_face (font->face)->gpos->position_lookup (&c, 
lookup_index);
 }
 
 void
 hb_ot_layout_position_finish (hb_font_t *font, hb_buffer_t *buffer, hb_bool_t 
zero_width_attached_marks)
 {
   GPOS::position_finish (font, buffer, zero_width_attached_marks);
 }
+
+template int SortedArrayOf<Record<LangSys> >::search<unsigned int>(unsigned 
int const &) const;
+template int SortedArrayOf<Record<Script> >::search<unsigned int>(unsigned int 
const &) const;
+template int SortedArrayOf<IntType<unsigned short> >::search<unsigned 
int>(unsigned int const &) const;
++++++ mozilla-idldir.patch ++++++
# HG changeset patch
# Parent 2b6d21723804b8b5a73a2fe675ee9ce25f788229
# User Wolfgang Rosenauer <w...@rosenauer.org>
Install IDL files to includedir instead of /usr/share/idl

diff --git a/config/baseconfig.mk b/config/baseconfig.mk
--- a/config/baseconfig.mk
+++ b/config/baseconfig.mk
@@ -1,12 +1,12 @@
 INCLUDED_AUTOCONF_MK = 1
 
 includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+idldir = $(includedir)
 installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
 sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
 DIST = $(DEPTH)/dist
 
 # We do magic with OBJ_SUFFIX in config.mk, the following ensures we don't
 # manually use it before config.mk inclusion
 _OBJ_SUFFIX := $(OBJ_SUFFIX)
 OBJ_SUFFIX = $(error config/config.mk needs to be included before using 
OBJ_SUFFIX)
++++++ mozilla-language.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <w...@rosenauer.org>
# Parent 0d6917b8f28f6e0398dbf329dda4932ba4f997c2
Bug 583793 - Firefox interface language set to LANG, ignores LANGUAGE

diff --git a/intl/locale/src/nsLocaleService.cpp 
b/intl/locale/src/nsLocaleService.cpp
--- a/intl/locale/src/nsLocaleService.cpp
+++ b/intl/locale/src/nsLocaleService.cpp
@@ -160,16 +160,17 @@ nsLocaleService::nsLocaleService(void)
     nsRefPtr<nsLocale> resultLocale(new nsLocale());
     NS_ENSURE_TRUE(resultLocale, );
 
 #ifdef MOZ_WIDGET_QT
     const char* lang = QLocale::system().name().toAscii();
 #else
     // Get system configuration
     const char* lang = getenv("LANG");
+    const char* language = getenv("LANGUAGE");
 #endif
 
     nsAutoString xpLocale, platformLocale;
     nsAutoString category, category_platform;
     int i;
 
     for( i = 0; i < LocaleListLength; i++ ) {
         nsresult result;
@@ -188,16 +189,21 @@ nsLocaleService::nsLocaleService(void)
             } else {
                 CopyASCIItoUTF16(lang, platformLocale);
                 result = nsPosixLocale::GetXPLocale(lang, xpLocale);
             }
         }
         if (NS_FAILED(result)) {
             return;
         }
+        // LANGUAGE is overriding LC_MESSAGES
+        if (i == LC_MESSAGES && language && *language) {
+          CopyASCIItoUTF16(language, platformLocale);
+          result = nsPosixLocale::GetXPLocale(language, xpLocale);
+        }
         resultLocale->AddCategory(category, xpLocale);
         resultLocale->AddCategory(category_platform, platformLocale);
     }
     mSystemLocale = do_QueryInterface(resultLocale);
     mApplicationLocale = do_QueryInterface(resultLocale);
        
 #endif // XP_UNIX
 #ifdef XP_OS2
++++++ mozilla-nongnome-proxies.patch ++++++
From: Wolfgang Rosenauer
Subject: Do not use gconf for proxy settings if not running within Gnome

Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
===================================================================
RCS file: 
/cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
retrieving revision 1.1

diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp 
b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
@@ -74,22 +74,28 @@ private:
   nsresult SetProxyResultFromGSettings(const char* aKeyBase, const char* 
aType, nsACString& aResult);
 };
 
 NS_IMPL_ISUPPORTS1(nsUnixSystemProxySettings, nsISystemProxySettings)
 
 nsresult
 nsUnixSystemProxySettings::Init()
 {
-  mSchemeProxySettings.Init(5);
-  mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
-  mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
-  if (mGSettings) {
-    
mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
-                                       getter_AddRefs(mProxySettings));
+  // If this is a GNOME session, load gconf and try to use its preferences.
+  // If gconf is not available (which would be stupid) we'll proceed as if
+  // this was not a GNOME session, using *_PROXY environment variables.
+  const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+  if (sessionType && !strcmp(sessionType, "gnome")) {
+    mSchemeProxySettings.Init(5);
+    mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+    mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+    if (mGSettings) {
+      
mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
+                                         getter_AddRefs(mProxySettings));
+    }
   }
 
   return NS_OK;
 }
 
 bool
 nsUnixSystemProxySettings::IsProxyMode(const char* aMode)
 {
++++++ mozilla-ntlm-full-path.patch ++++++
# HG changeset patch
# User Petr Cerny <pce...@novell.com>
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
Bug 634334 - call to the ntlm_auth helper fails

diff --git a/extensions/auth/nsAuthSambaNTLM.cpp 
b/extensions/auth/nsAuthSambaNTLM.cpp
--- a/extensions/auth/nsAuthSambaNTLM.cpp
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
@@ -168,17 +168,17 @@ static uint8_t* ExtractMessage(const nsA
 nsresult
 nsAuthSambaNTLM::SpawnNTLMAuthHelper()
 {
     const char* username = PR_GetEnv("USER");
     if (!username)
         return NS_ERROR_FAILURE;
 
     const char* const args[] = {
-        "ntlm_auth",
+        "/usr/bin/ntlm_auth",
         "--helper-protocol", "ntlmssp-client-1",
         "--use-cached-creds",
         "--username", username,
         nullptr
     };
 
     bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID, 
&mFromChildFD, &mToChildFD);
     if (!isOK)  
++++++ mozilla-pkgconfig.patch ++++++
From: Wolfgang Rosenauer
Subject: pkgconfig tuning

diff --git a/xulrunner/installer/Makefile.in b/xulrunner/installer/Makefile.in
--- a/xulrunner/installer/Makefile.in
+++ b/xulrunner/installer/Makefile.in
@@ -39,16 +39,19 @@ ifndef MOZ_PLATFORM_MAEMO
 GENERATE_CACHE = 1
 endif
 
 include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
 include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
 
 # Add pkg-config files to the install:: target
 
+# the apilibdir always ends with 1.9 as every patch update will provide a link
+apilibdir = $(dir $(installdir))xulrunner-17
+
 pkg_config_files = \
        libxul.pc \
        libxul-embedding.pc \
        mozilla-js.pc \
        mozilla-plugin.pc \
        $(NULL)
 
 ifdef MOZ_NATIVE_NSPR
@@ -76,16 +79,17 @@ pkg_config_files += mozilla-nss.pc
 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%|$(apilibdir)|" \
        -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)|" \
diff --git a/xulrunner/installer/libxul-embedding.pc.in 
b/xulrunner/installer/libxul-embedding.pc.in
--- a/xulrunner/installer/libxul-embedding.pc.in
+++ b/xulrunner/installer/libxul-embedding.pc.in
@@ -1,10 +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%
-Libs: -L${sdkdir}/lib -lxpcomglue -ldl
+Requires: %NSPR_NAME% >= %NSPR_VERSION%
+Libs: -L${sdkdir}/sdk/lib -lxpcomglue -ldl
 Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
diff --git a/xulrunner/installer/libxul.pc.in b/xulrunner/installer/libxul.pc.in
--- a/xulrunner/installer/libxul.pc.in
+++ b/xulrunner/installer/libxul.pc.in
@@ -1,10 +1,11 @@
 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%
diff --git a/xulrunner/installer/mozilla-js.pc.in 
b/xulrunner/installer/mozilla-js.pc.in
--- a/xulrunner/installer/mozilla-js.pc.in
+++ b/xulrunner/installer/mozilla-js.pc.in
@@ -1,10 +1,11 @@
 prefix=%prefix%
 sdkdir=%sdkdir%
+libdir=%libdir%
 includedir=%includedir%
 
 Name: JavaScript
 Description: The Mozilla JavaScript Library
 Version: %MOZILLA_VERSION%
 Requires: %NSPR_NAME% >= %NSPR_VERSION%
-Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
+Libs: -Wl,-rpath,${libdir} -L${sdkdir}/lib %MOZ_JS_LINK%
 Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++++++ mozilla-ppc.patch ++++++
# HG changeset patch
# Parent 58ae98c85e39def96a90cb21c90e871f41a03a71
# User Wolfgang Rosenauer <w...@rosenauer.org>
Bug 746112 - RegExp hang on ppc64 in execute.
Bug 750620 - Make double-conversion portable to exotic architectures. TM: 
mozilla15

diff --git a/js/src/yarr/YarrInterpreter.h b/js/src/yarr/YarrInterpreter.h
--- a/js/src/yarr/YarrInterpreter.h
+++ b/js/src/yarr/YarrInterpreter.h
@@ -162,17 +162,17 @@ struct ByteTerm {
         , m_invert(invert)
     {
         atom.characterClass = characterClass;
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
         inputPosition = inputPos;
     }
 
-    ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* 
parenthesesInfo, bool capture, int inputPos)
+    ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* 
parenthesesInfo, bool capture, int inputPos) __attribute__((noinline))
         : type(type)
         , m_capture(capture)
         , m_invert(false)
     {
         atom.subpatternId = subpatternId;
         atom.parenthesesDisjunction = parenthesesInfo;
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
@@ -183,17 +183,17 @@ struct ByteTerm {
         : type(type)
         , m_capture(false)
         , m_invert(invert)
     {
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
     }
 
-    ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int 
inputPos)
+    ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int 
inputPos) __attribute__((noinline))
         : type(type)
         , m_capture(capture)
         , m_invert(invert)
     {
         atom.subpatternId = subpatternId;
         atom.quantityType = QuantifierFixedCount;
         atom.quantityCount = 1;
         inputPosition = inputPos;
diff --git a/js/src/yarr/YarrPattern.h b/js/src/yarr/YarrPattern.h
--- a/js/src/yarr/YarrPattern.h
+++ b/js/src/yarr/YarrPattern.h
@@ -166,17 +166,17 @@ struct PatternTerm {
         , m_capture(false)
         , m_invert(invert)
     {
         characterClass = charClass;
         quantityType = QuantifierFixedCount;
         quantityCount = 1;
     }
 
-    PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* 
disjunction, bool capture = false, bool invert = false)
+    PatternTerm(Type type, unsigned subpatternId, PatternDisjunction* 
disjunction, bool capture = false, bool invert = false) 
__attribute__((noinline))
         : type(type)
         , m_capture(capture)
         , m_invert(invert)
     {
         parentheses.disjunction = disjunction;
         parentheses.subpatternId = subpatternId;
         parentheses.isCopy = false;
         parentheses.isTerminal = false;
diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c
--- a/memory/mozjemalloc/jemalloc.c
+++ b/memory/mozjemalloc/jemalloc.c
@@ -1086,17 +1086,19 @@ struct arena_s {
 static unsigned                ncpus;
 #endif
 
 /*
  * When MALLOC_STATIC_SIZES is defined most of the parameters
  * controlling the malloc behavior are defined as compile-time constants
  * for best performance and cannot be altered at runtime.
  */
+#if !(defined(__powerpc__))
 #define MALLOC_STATIC_SIZES 1
+#endif
 
 #ifdef MALLOC_STATIC_SIZES
 
 /*
  * VM page size. It must divide the runtime CPU page size or the code
  * will abort.
  */
 #define pagesize_2pow                  ((size_t) 12)
diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
--- a/mfbt/double-conversion/utils.h
+++ b/mfbt/double-conversion/utils.h
@@ -50,17 +50,17 @@
 // the result is equal to 89255e-22.
 // The best way to test this, is to create a division-function and to compare
 // the output of the division with the expected result. (Inlining must be
 // disabled.)
 // On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
 #if defined(_M_X64) || defined(__x86_64__) || \
     defined(__ARMEL__) || defined(__avr32__) || \
     defined(__hppa__) || defined(__ia64__) || \
-    defined(__mips__) || defined(__powerpc__) || \
+    defined(__mips__) || defined(__powerpc__) || defined(__powerpc64__) || \
     defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
     defined(__SH4__) || defined(__alpha__) || \
     defined(_MIPS_ARCH_MIPS32R2)
 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
 #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
 #if defined(_WIN32)
 // Windows uses a 64bit wide floating point stack.
 #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
++++++ mozilla-prefer_plugin_pref.patch ++++++
From: Ubuntu
Subject: introduce a pref to prefer certain plugins for mime-types

diff --git a/dom/plugins/base/nsPluginHost.cpp 
b/dom/plugins/base/nsPluginHost.cpp
--- a/dom/plugins/base/nsPluginHost.cpp
+++ b/dom/plugins/base/nsPluginHost.cpp
@@ -1588,17 +1588,51 @@ nsPluginHost::FindPluginForType(const ch
   if (!aMimeType) {
     return nullptr;
   }
 
   LoadPlugins();
 
   InfallibleTArray<nsPluginTag*> matchingPlugins;
 
+  char *preferredPluginPath = NULL;
+  nsCAutoString mimetypePrefString ("modules.plugins.mimetype.");
+  mimetypePrefString.Append(aMimeType);
+  const char *mimetypePrefChar = mimetypePrefString.get();
+  nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar);
+  preferredPluginPath = (char*) pluginPath.get();
+
   nsPluginTag *plugin = mPlugins;
+
+  if(preferredPluginPath) {
+    while (plugin) {
+      if (!aCheckEnabled || plugin->IsEnabled()) {
+        if (0 == PL_strcasecmp(plugin->mFileName.get(), preferredPluginPath) ||
+            0 == PL_strcasecmp(plugin->mFullPath.get(), preferredPluginPath)) {
+          matchingPlugins.AppendElement(plugin);
+        }
+      }
+      plugin = plugin->mNext;
+    }
+
+    // now lets search for substrings
+    plugin = mPlugins;
+    while (plugin) {
+      if (!aCheckEnabled || plugin->IsEnabled()) {
+        if (nullptr != PL_strstr(plugin->mFileName.get(), preferredPluginPath) 
||
+            nullptr != PL_strstr(plugin->mFullPath.get(), 
preferredPluginPath)) {
+          matchingPlugins.AppendElement(plugin);
+        }
+      }
+      plugin = plugin->mNext;
+    }
+
+    return FindPreferredPlugin(matchingPlugins);
+  }
+
   while (plugin) {
     if (!aCheckEnabled || plugin->IsEnabled()) {
       int32_t mimeCount = plugin->mMimeTypes.Length();
       for (int32_t i = 0; i < mimeCount; i++) {
         if (0 == PL_strcasecmp(plugin->mMimeTypes[i].get(), aMimeType)) {
           matchingPlugins.AppendElement(plugin);
           break;
         }
++++++ mozilla-sle11.patch ++++++
Subject: Patches needed to build on SLE11/11.1
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=513422

diff --git a/xpcom/glue/SSE.cpp b/xpcom/glue/SSE.cpp
--- a/xpcom/glue/SSE.cpp
+++ b/xpcom/glue/SSE.cpp
@@ -44,26 +44,77 @@ namespace {
 // SSE.h has parallel #ifs which declare MOZILLA_SSE_HAVE_CPUID_DETECTION.
 // We can't declare these functions in the header file, however, because
 // <intrin.h> conflicts with <windows.h> on MSVC 2005, and some files want to
 // include both SSE.h and <windows.h>.
 
 #ifdef HAVE_CPUID_H
 
 // cpuid.h is available on gcc 4.3 and higher on i386 and x86_64
-#include <cpuid.h>
+//#include <cpuid.h>
 
 enum CPUIDRegister { eax = 0, ebx = 1, ecx = 2, edx = 3 };
 
+#ifdef __i386__
+#define _my_cpuid(level, a, b, c, d)                    \
+  __asm__ ("xchg{l}\t{%%}ebx, %1\n\t"                   \
+           "cpuid\n\t"                                  \
+           "xchg{l}\t{%%}ebx, %1\n\t"                   \
+           : "=a" (a), "=r" (b), "=c" (c), "=d" (d)     \
+           : "0" (level))
+#else
+#define _my_cpuid(level, a, b, c, d)                    \
+  __asm__ ("cpuid\n\t"                                  \
+           : "=a" (a), "=b" (b), "=c" (c), "=d" (d)     \
+           : "0" (level))
+#endif
+
+static __inline unsigned int
+my_cpuid_max (unsigned int __ext, unsigned int *__sig)
+{
+  unsigned int __eax, __ebx, __ecx, __edx;
+
+#ifdef __i386__
+  __asm__ ("pushf{l|d}\n\t"
+           "pushf{l|d}\n\t"
+           "pop{l}\t%0\n\t"
+           "mov{l}\t{%0, %1|%1, %0}\n\t"
+           "xor{l}\t{%2, %0|%0, %2}\n\t"
+           "push{l}\t%0\n\t"
+           "popf{l|d}\n\t"
+           "pushf{l|d}\n\t"
+           "pop{l}\t%0\n\t"
+           "popf{l|d}\n\t"
+           : "=&r" (__eax), "=&r" (__ebx)
+           : "i" (0x00200000));
+
+  if (!((__eax ^ __ebx) & 0x00200000))
+    return 0;
+#endif
+
+  /* Host supports cpuid.  Return highest supported cpuid input value.  */
+  _my_cpuid (__ext, __eax, __ebx, __ecx, __edx);
+
+  if (__sig)
+    *__sig = __ebx;
+
+  return __eax;
+}
+
 static bool
 has_cpuid_bit(unsigned int level, CPUIDRegister reg, unsigned int bit)
 {
   unsigned int regs[4];
-  return __get_cpuid(level, &regs[0], &regs[1], &regs[2], &regs[3]) &&
-         (regs[reg] & bit);
+
+  unsigned int __ext = level & 0x80000000;
+  if (my_cpuid_max(__ext, 0) < level)
+    return false;
+
+  _my_cpuid(level, regs[0], regs[1], regs[2], regs[3]);
+  return !!(unsigned(regs[reg]) & bit);
 }
 
 #elif defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(_M_IX86) || 
defined(_M_AMD64))
 
 // MSVC 2005 or newer on x86-32 or x86-64
 #include <intrin.h>
 
 enum CPUIDRegister { eax = 0, ebx = 1, ecx = 2, edx = 3 };
++++++ source-stamp.txt ++++++
REV=023401f37090
REPO=http://hg.mozilla.org/releases/mozilla-esr17
++++++ toolkit-download-folder.patch ++++++
From: Wolfgang Rosenauer
Subject: Don't use localized Downloads unless XDG is set up
References:
https://bugzilla.novell.com/show_bug.cgi?id=501724

diff --git a/browser/components/preferences/main.js 
b/browser/components/preferences/main.js
--- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js
@@ -344,7 +344,7 @@ var gMainPane = {
       // With 3.0, a new desktop folder - 'Downloads' was introduced for
       // platforms and versions that don't support a default system downloads
       // folder. See nsDownloadManager for details. 
-      downloadFolder.label = 
bundlePreferences.getString("downloadsFolderName");
+      downloadFolder.label = "Downloads";
       iconUrlSpec = fph.getURLSpecFromFile(this._indexToFolder(1));
     } else {
       // 'Desktop'
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp 
b/toolkit/components/downloads/nsDownloadManager.cpp
--- a/toolkit/components/downloads/nsDownloadManager.cpp
+++ b/toolkit/components/downloads/nsDownloadManager.cpp
@@ -1269,8 +1269,10 @@ nsDownloadManager::GetDefaultDownloadsDi
   // XDG user dir spec, with a fallback to Home/Downloads
 
   nsXPIDLString folderName;
-  mBundle->GetStringFromName(NS_LITERAL_STRING("downloadsFolder").get(),
-                             getter_Copies(folderName));
+  // We don't want localized "Downloads" unless XDG is used
+  //mBundle->GetStringFromName(NS_LITERAL_STRING("downloadsFolder").get(),
+  //                           getter_Copies(folderName));
+  folderName.AssignLiteral("Downloads");
 
 #if defined (XP_MACOSX)
   rv = dirService->Get(NS_OSX_DEFAULT_DOWNLOAD_DIR,
++++++ xulrunner-openSUSE-prefs.js ++++++
// openSUSE overrides for default settings
pref("layout.word_select.stop_at_punctuation", false);
pref("intl.locale.matchOS", true);
++++++ xulrunner-rpmlintrc ++++++
addFilter("no-jar-manifest")
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to