Hello community,

here is the log from the commit of package seamonkey.1844 for 
openSUSE:12.2:Update checked in at 2013-07-11 08:29:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.2:Update/seamonkey.1844 (Old)
 and      /work/SRC/openSUSE:12.2:Update/.seamonkey.1844.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "seamonkey.1844"

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

--- /dev/null   2013-07-10 19:42:08.835707958 +0200
+++ /work/SRC/openSUSE:12.2:Update/.seamonkey.1844.new/seamonkey.changes        
2013-07-11 08:29:45.000000000 +0200
@@ -0,0 +1,2818 @@
+-------------------------------------------------------------------
+Sat Jun 29 14:22:45 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.19 (bnc#825935)
+  * removed obsolete patches
+    + mozilla-gstreamer-760140.patch
+  * GStreamer support does not build on 12.1 anymore (build only
+    on 12.2 and later)
+  * MFSA 2013-49/CVE-2013-1682/CVE-2013-1683
+    Miscellaneous memory safety hazards
+  * MFSA 2013-50/CVE-2013-1684/CVE-2013-1685/CVE-2013-1686
+    Memory corruption found using Address Sanitizer
+  * MFSA 2013-51/CVE-2013-1687 (bmo#863933, bmo#866823)
+    Privileged content access and execution via XBL
+  * MFSA 2013-52/CVE-2013-1688 (bmo#873966)
+    Arbitrary code execution within Profiler
+  * MFSA 2013-53/CVE-2013-1690 (bmo#857883)
+    Execution of unmapped memory through onreadystatechange event
+  * MFSA 2013-54/CVE-2013-1692 (bmo#866915)
+    Data in the body of XHR HEAD requests leads to CSRF attacks
+  * MFSA 2013-55/CVE-2013-1693 (bmo#711043)
+    SVG filters can lead to information disclosure
+  * MFSA 2013-56/CVE-2013-1694 (bmo#848535)
+    PreserveWrapper has inconsistent behavior
+  * MFSA 2013-57/CVE-2013-1695 (bmo#849791)
+    Sandbox restrictions not applied to nested frame elements
+  * MFSA 2013-58/CVE-2013-1696 (bmo#761667)
+    X-Frame-Options ignored when using server push with multi-part
+    responses
+  * MFSA 2013-59/CVE-2013-1697 (bmo#858101)
+    XrayWrappers can be bypassed to run user defined methods in a
+    privileged context
+  * MFSA 2013-60/CVE-2013-1698 (bmo#876044)
+    getUserMedia permission dialog incorrectly displays location
+  * MFSA 2013-61/CVE-2013-1699 (bmo#840882)
+    Homograph domain spoofing in .com, .net and .name
+
+-------------------------------------------------------------------
+Tue May 28 20:52:21 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.17.1
+
+-------------------------------------------------------------------
+Tue Apr  9 06:45:05 UTC 2013 - w...@rosenauer.org
+
+- revert to use GStreamer 0.10 on 12.3 (bnc#814101)
+
+-------------------------------------------------------------------
+Tue Apr  2 14:18:30 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.17 (bnc#813026)
+  * requires NSPR 4.9.5 and NSS 3.14.3
+  * mozilla-webrtc-ppc.patch included upstream
+  * MFSA 2013-30/CVE-2013-0788/CVE-2013-0789
+    Miscellaneous memory safety hazards
+  * MFSA 2013-31/CVE-2013-0800 (bmo#825721)
+    Out-of-bounds write in Cairo library
+  * MFSA 2013-35/CVE-2013-0796 (bmo#827106)
+    WebGL crash with Mesa graphics driver on Linux
+  * MFSA 2013-36/CVE-2013-0795 (bmo#825697)
+    Bypass of SOW protections allows cloning of protected nodes
+  * MFSA 2013-37/CVE-2013-0794 (bmo#626775)
+    Bypass of tab-modal dialog origin disclosure
+  * MFSA 2013-38/CVE-2013-0793 (bmo#803870)
+    Cross-site scripting (XSS) using timed history navigations
+  * MFSA 2013-39/CVE-2013-0792 (bmo#722831)
+    Memory corruption while rendering grayscale PNG images
+- use GStreamer 1.0 starting with 12.3 (mozilla-gstreamer-1.patch)
+
+-------------------------------------------------------------------
+Fri Mar 15 17:34:54 UTC 2013 - pce...@suse.com
+
+- update to SeaMonkey 2.16.2
+
+-------------------------------------------------------------------
+Sat Mar  9 09:15:53 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.16.1 (bnc#808243)
+  * MFSA 2013-29/CVE-2013-0787 (bmo#848644)
+    Use-after-free in HTML Editor
+
+-------------------------------------------------------------------
+Mon Feb 18 07:41:44 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.16 (bnc#804248)
+  * MFSA 2013-21/CVE-2013-0783/2013-0784
+    Miscellaneous memory safety hazards
+  * MFSA 2013-22/CVE-2013-0772 (bmo#801366)
+    Out-of-bounds read in image rendering
+  * MFSA 2013-23/CVE-2013-0765 (bmo#830614)
+    Wrapped WebIDL objects can be wrapped again
+  * MFSA 2013-24/CVE-2013-0773 (bmo#809652)
+    Web content bypass of COW and SOW security wrappers
+  * MFSA 2013-25/CVE-2013-0774 (bmo#827193)
+    Privacy leak in JavaScript Workers
+  * MFSA 2013-26/CVE-2013-0775 (bmo#831095)
+    Use-after-free in nsImageLoadingContent
+  * MFSA 2013-27/CVE-2013-0776 (bmo#796475)
+    Phishing on HTTPS connection through malicious proxy
+  * MFSA 2013-28/CVE-2013-0780/CVE-2013-0782/CVE-2013-0777/
+    CVE-2013-0778/CVE-2013-0779/CVE-2013-0781
+    Use-after-free, out of bounds read, and buffer overflow issues
+    found using Address Sanitizer
+- removed obsolete patches
+  * mozilla-webrtc.patch
+  * mozilla-gstreamer-803287.patch
+
+-------------------------------------------------------------------
+Mon Feb  4 12:27:38 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.15.2
+  * Applications could not be removed from the "Application details"
+    dialog under Preferences, Helper Applications (bmo#826771).
+  * View / Message Body As could show menu items out of context
+    (bmo#831348)
+
+-------------------------------------------------------------------
+Sun Jan 20 09:15:53 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.15.1
+  * backed out bmo#677092 (removed patch)
+  * fixed problems involving HTTP proxy transactions
+
+-------------------------------------------------------------------
+Sun Jan 13 16:38:35 UTC 2013 - w...@rosenauer.org
+
+- backed out restartless language packs as it broke multi-locale
+  setup (bmo#677092, bmo#818468)
+
+-------------------------------------------------------------------
+Tue Jan  8 18:32:43 UTC 2013 - w...@rosenauer.org
+
+- update to SeaMonkey 2.15 (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-06/CVE-2013-0751 (bmo#790454)
+    Touch events are shared across iframes
+  * 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)
+- reenable WebRTC
+- added mozilla-libproxy-compat.patch for libproxy API compat
+  on openSUSE 11.2 and earlier
+
+-------------------------------------------------------------------
+Tue Dec 18 13:08:40 UTC 2012 - w...@rosenauer.org
+
+- update to SeaMonkey 2.14.1
+  * fix regressions from 2.14 release
+
+-------------------------------------------------------------------
+Tue Nov 20 20:44:06 UTC 2012 - w...@rosenauer.org
+
+- update to SeaMonkey 2.14 (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-96/CVE-2012-4204 (bmo#778603)
+    Memory corruption in str_unescape
++++ 2621 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.2:Update/.seamonkey.1844.new/seamonkey.changes

New:
----
  _constraints
  add-plugins.sh.in
  compare-locales.tar.bz2
  create-tar.sh
  find-external-requires.sh
  l10n-2.19.tar.bz2
  mozilla-language.patch
  mozilla-libproxy-compat.patch
  mozilla-nongnome-proxies.patch
  mozilla-ntlm-full-path.patch
  mozilla-ppc.patch
  mozilla-prefer_plugin_pref.patch
  mozilla-shared-nss-db.patch
  mozilla-sle11.patch
  mozilla-ua-locale.patch
  mozilla.sh.in
  seamonkey-2.19-source.tar.bz2
  seamonkey-desktop.tar.bz2
  seamonkey-rpmlintrc
  seamonkey-shared-nss-db.patch
  seamonkey-ua-locale.patch
  seamonkey.changes
  seamonkey.spec
  search-addons.tar.bz2
  suse-default-prefs.js

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

Other differences:
------------------
++++++ seamonkey.spec ++++++
#
# spec file for package seamonkey
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#               2006-2013 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/
#


%if %suse_version > 1220
%define gstreamer_ver 0.10
%else
%define gstreamer_ver 0.10
%endif

Name:           seamonkey
BuildRequires:  Mesa-devel
BuildRequires:  autoconf213
BuildRequires:  dbus-1-glib-devel
BuildRequires:  fdupes
BuildRequires:  gcc-c++
BuildRequires:  hunspell-devel
BuildRequires:  libgnomeui-devel
BuildRequires:  libidl-devel
BuildRequires:  libnotify-devel
BuildRequires:  nss-shared-helper-devel
BuildRequires:  python
BuildRequires:  startup-notification-devel
BuildRequires:  unzip
BuildRequires:  update-desktop-files
BuildRequires:  xorg-x11-libXt-devel
BuildRequires:  yasm
BuildRequires:  zip
%if %suse_version > 1110
BuildRequires:  libiw-devel
BuildRequires:  libproxy-devel
%else
BuildRequires:  wireless-tools
%endif
%if %suse_version > 1210
BuildRequires:  pkgconfig(gstreamer-%gstreamer_ver)
BuildRequires:  pkgconfig(gstreamer-app-%gstreamer_ver)
BuildRequires:  pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
%endif
Provides:       web_browser
Provides:       browser(npapi)
Version:        2.19
Release:        0
%define releasedate 2013062900
Summary:        The successor of the Mozilla Application Suite
License:        MPL-2.0
Group:          Productivity/Networking/Web/Browsers
Url:            http://www.mozilla.org/projects/seamonkey
Source:         seamonkey-%{version}-source.tar.bz2
Source1:        seamonkey-desktop.tar.bz2
Source2:        add-plugins.sh.in
Source3:        mozilla.sh.in
Source4:        suse-default-prefs.js
Source5:        l10n-%{version}.tar.bz2
Source6:        search-addons.tar.bz2
Source7:        seamonkey-rpmlintrc
Source8:        find-external-requires.sh
Source9:        create-tar.sh
Source10:       compare-locales.tar.bz2
Patch1:         mozilla-nongnome-proxies.patch
Patch2:         mozilla-prefer_plugin_pref.patch
Patch3:         mozilla-shared-nss-db.patch
Patch4:         mozilla-sle11.patch
Patch5:         mozilla-language.patch
Patch7:         mozilla-ntlm-full-path.patch
Patch8:         mozilla-ua-locale.patch
Patch9:         mozilla-ppc.patch
Patch12:        mozilla-libproxy-compat.patch
Patch20:        seamonkey-ua-locale.patch
Patch21:        seamonkey-shared-nss-db.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
PreReq:         /bin/sh coreutils
Provides:       seamonkey-mail = %{version}
Obsoletes:      seamonkey-mail <= 2.0
Provides:       seamonkey-spellchecker = %{version}
Obsoletes:      seamonkey-spellchecker <= 2.0
%define progname %{name}
%define prefix /usr
%define progdir %_libdir/%{progname}
%define libgssapi libgssapi_krb5.so.2
### build options
%define has_system_cairo 0
%define localize 1
### build options end
%define _use_internal_dependency_generator 0
%define __find_requires sh %{SOURCE8}
%global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind
# the following conditions are always met in Factory by definition
# so using %opensuse_bs is secure for now
BuildRequires:  mozilla-nspr-devel
PreReq:         mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' 
mozilla-nspr)
BuildRequires:  mozilla-nss-devel >= 3.14.3
PreReq:         mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)

%description
Originally based on the Netscape Communicator source, the SeaMonkey
project grew to be the most advanced web browser currently available.
It supports new techniques like CSS2, MathML, SVG, XML, transparent
PNGs, and its look is fully theme-able.


%package irc
Summary:        IRC for SeaMonkey
Group:          Productivity/Networking/IRC
PreReq:         %{name} = %{version}

%description irc
An IRC Client (Chatzilla) for SeaMonkey.


%package venkman
Summary:        The SeaMonkey JavaScript Debugger
Group:          Development/Tools/Debuggers
PreReq:         %{name} = %{version}

%description venkman
A javascript debugger for the SeaMonkey web browser.


%package dom-inspector
Summary:        The SeaMonkey DOM Inspector
Group:          Development/Tools/Navigators
PreReq:         %{name} = %{version}

%description dom-inspector
This is a tool that allows you to inspect the DOM for web pages in
SeaMonkey. This is of great use to people who are doing SeaMonkey
chrome development or web page development.

%if %localize

%package translations-common
Summary:        Common translations for SeaMonkey
Group:          System/Localization
Provides:       
locale(%{name}:ca;cs;de;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;nb_NO;nl;pl;pt_PT;ru;sv_SE;zh_CN)
PreReq:         %{name} = %{version}

%description translations-common
This package contains several optional languages for the user interface
of SeaMonkey.


%package translations-other
Summary:        Extra translations for SeaMonkey
Group:          System/Localization
Provides:       locale(%{name}:be;gl;lt;sk;tr;uk)
PreReq:         %{name} = %{version}

%description translations-other
This package contains several optional languages for the user interface
of SeaMonkey.
%endif

%prep
%if %localize
%setup -n seamonkey -b 1 -b 5 -b 10 -q
%else
%setup -n seamonkey -b 1 -q
%endif
# mozilla patches
pushd mozilla
%patch1 -p1
%patch2 -p1
%patch3 -p1
%if %suse_version < 1120
%patch4 -p1
%endif
%patch5 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch12 -p1
popd
# comm patches
%patch20 -p1
%patch21 -p1

%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" {} +

#
export SUSE_ASNEEDED=0
export MOZ_BUILD_DATE=%{releasedate}
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
export CXXFLAGS="$CFLAGS"
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig

#
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
ac_add_options --enable-application=suite
ac_add_options --libdir=%{progdir}
ac_add_options --prefix=%{prefix}
%if %localize
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
%endif
ac_add_options --disable-tests
ac_add_options --enable-optimize
ac_add_options --disable-debug --disable-dtd-debug
ac_add_options --enable-libxul
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-zlib
#ac_add_options --with-system-jpeg
# ac_add_options--with-system-png # no apng support
ac_add_options --enable-ldap-experimental
ac_add_options --disable-installer
ac_add_options --disable-mochitest
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --enable-startup-notification
ac_add_options --enable-system-hunspell
#ac_add_options --enable-system-mozldap
%if %has_system_cairo
ac_add_options --enable-system-cairo
%endif
%if %suse_version > 1110
ac_add_options --enable-libproxy
%endif
%if %suse_version > 1210
ac_add_options --enable-gstreamer
%endif
EOF

make -f client.mk build
#

%install
cd ../obj
make -C suite/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
# copy tree into RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{progdir}
cp -rf $RPM_BUILD_DIR/obj/mozilla/dist/seamonkey/* $RPM_BUILD_ROOT%{progdir}
# remove some executable permissions
find $RPM_BUILD_ROOT%{progdir} \
    -name "*.js" -o \
    -name "*.jsm" -o \
    -name "*.rdf" -o \
    -name "*.properties" -o \
    -name "*.dtd" -o \
    -name "*.txt" -o \
    -name "*.xml" -o \
    -name "*.css" \
    | xargs chmod a-x
# remove mkdir.done files from installed base
find $RPM_BUILD_ROOT%{progdir} -name ".mkdir.done" | xargs rm -f

%if %localize
rm -f %{_tmppath}/translations.*
touch %{_tmppath}/translations.{common,other}
for locale in $(awk '{ print $1; }' 
../seamonkey/suite/locales/shipped-locales); do
    case $locale in
        ja-JP-mac|en-US|gl)
        ;;
        *)
            pushd $RPM_BUILD_DIR/compare-locales
            PYTHONPATH=lib \
                scripts/compare-locales \
                -m ../l10n-merged/$locale \
                    ../seamonkey/suite/locales/l10n-moz2.0.ini ../l10n $locale
                popd

            LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
            make -C suite/locales langpack-$locale || continue

            cp -rL mozilla/dist/xpi-stage/locale-$locale \
                
$RPM_BUILD_ROOT%{progdir}/extensions/langpack-$loc...@seamonkey.mozilla.org
            rm 
$RPM_BUILD_ROOT%{progdir}/extensions/langpack-$loc...@seamonkey.mozilla.org/chrome/.mkdir.done

            # remove prefs and profile defaults from langpack
            rm -rf 
$RPM_BUILD_ROOT%{progdir}/extensions/langpack-$loc...@seamonkey.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 
%{progdir}/extensions/langpack-$loc...@seamonkey.mozilla.org \
                    >> %{_tmppath}/translations.$_l10ntarget
    ;;
  esac
done
%endif

# overwrite the mozilla start-script and link it to /usr/bin
mkdir --parents $RPM_BUILD_ROOT%{_bindir}
sed "s:%%PREFIX:%{prefix}:g
s:%%PROGDIR:%{progdir}:g
s:%%APPNAME:seamonkey:g" \
   %{SOURCE3} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
chmod 755 $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT%{_bindir}/%{progname}
# apply SUSE defaults
sed -e 's,RPM_VERSION,%{version}-%{release},g
#s,GSSAPI,%{libgssapi},g' \
   %{SOURCE4} > suse-default-prefs
cp suse-default-prefs $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-openSUSE.js
rm suse-default-prefs
# Desktop definition
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
install -m 644 $RPM_BUILD_DIR/*.desktop \
               $RPM_BUILD_ROOT%{_datadir}/applications
mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps/
install -m 644 $RPM_BUILD_DIR/*.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/
# install add-plugins.sh
sed "s:%%PROGDIR:%{progdir}:g
s:%%APPNAME:%{progname}:g" \
   %{SOURCE2} > $RPM_BUILD_ROOT%{progdir}/add-plugins.sh
chmod 755 $RPM_BUILD_ROOT%{progdir}/add-plugins.sh
#
%suse_update_desktop_file seamonkey          Network WebBrowser GTK
%suse_update_desktop_file seamonkey-mail     Network Email GTK
%suse_update_desktop_file seamonkey-composer Network WebDevelopment GTK
# excludes
rm -f $RPM_BUILD_ROOT%{progdir}/license.txt
rm -f $RPM_BUILD_ROOT%{progdir}/README
rm -f $RPM_BUILD_ROOT%{progdir}/removed-files
rm -f $RPM_BUILD_ROOT%{progdir}/run-mozilla.sh
rm -f $RPM_BUILD_ROOT%{progdir}/seamonkey
rm -f $RPM_BUILD_ROOT%{progdir}/precomplete
rm -f $RPM_BUILD_ROOT%{progdir}/updater
rm -f $RPM_BUILD_ROOT%{progdir}/updater.ini
rm -f $RPM_BUILD_ROOT%{progdir}/update.locale
rm -f $RPM_BUILD_ROOT%{progdir}/update-settings.ini
rm -f $RPM_BUILD_ROOT%{progdir}/icons/updater.png
rm -f $RPM_BUILD_ROOT%{progdir}/dictionaries/*
# Some sites use different partitions for /usr/(lib|lib64) and /usr/share.  
Since you
# can't create hardlinks across partitions, we'll do this more than once.
%fdupes $RPM_BUILD_ROOT%{progdir}
%fdupes $RPM_BUILD_ROOT%{_datadir}

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

%post
%{progdir}/add-plugins.sh > /dev/null 2>&1
exit 0

%preun
rm -f %{progdir}/dictionaries/*
exit 0

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

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

%files
%defattr(-,root,root)
%{_bindir}/%{progname}
%dir %{progdir}
%{progdir}/components/
%{progdir}/defaults/
%dir %{progdir}/dictionaries/
%dir %{progdir}/extensions/
%dir %{progdir}/chrome/
%dir %{progdir}/distribution/
%dir %{progdir}/distribution/extensions/
#%exclude %{progdir}/distribution/extensions/debu...@mozilla.org.xpi
%{progdir}/chrome/icons
%{progdir}/extensions/mod...@themes.mozilla.org.xpi
%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
%{progdir}/isp/
%{progdir}/searchplugins/
%{progdir}/add-plugins.sh
%{progdir}/application.ini
%{progdir}/blocklist.xml
%{progdir}/chrome.manifest
%{progdir}/dependentlibs.list
%{progdir}/*.so
%{progdir}/mozilla-xremote-client
%{progdir}/omni.ja
%{progdir}/platform.ini
%{progdir}/plugin-container
%{progdir}/%{progname}.sh
%{progdir}/seamonkey-bin
%{_datadir}/applications/*.desktop
%{_datadir}/pixmaps/*.png

%files irc
%defattr(-,root,root)
%{progdir}/distribution/extensions/{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}.xpi

%files venkman
%defattr(-,root,root)
%{progdir}/distribution/extensions/{f13b157f-b174-47e7-a34d-4815ddfdfeb8}.xpi

%files dom-inspector
%defattr(-,root,root)
%{progdir}/distribution/extensions/inspector*.xpi

%if %localize

%files translations-common -f %{_tmppath}/translations.common
%defattr(-,root,root)

%files translations-other -f %{_tmppath}/translations.other
%defattr(-,root,root)
%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
++++++ create-tar.sh ++++++
#!/bin/bash

CHANNEL="release"
BRANCH="releases/comm-$CHANNEL"
RELEASE_TAG="SEAMONKEY_2_19_RELEASE"
VERSION="2.19"

echo "cloning $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH seamonkey
pushd seamonkey
hg update -r $RELEASE_TAG
echo "running client.py..."
[ "$RELEASE_TAG" == "default" ] || \
  _extra="--comm-rev=$RELEASE_TAG --mozilla-rev=$RELEASE_TAG 
--inspector-rev=$RELEASE_TAG --venkman-rev=$RELEASE_TAG 
--chatzilla-rev=$RELEASE_TAG"
python client.py checkout $_extra 
--mozilla-repo=http://hg.mozilla.org/releases/mozilla-$CHANNEL
popd
echo "creating archive..."
tar cjf seamonkey-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore 
--exclude=.hg --exclude=CVS seamonkey

# l10n
echo "fetching locales..."
if [ -e shipped-locales ]; then
  SHIPPED_LOCALES=shipped-locales
else
  SHIPPED_LOCALES=seamonkey/suite/locales/shipped-locales
fi
test ! -d l10n && mkdir l10n
for locale in $(awk '{ print $1; }' $SHIPPED_LOCALES); do
  case $locale in
    ja-JP-mac|en-US)
      ;;
    *)
      hg clone http://hg.mozilla.org/releases/l10n/mozilla-$CHANNEL/$locale 
l10n/$locale
      hg -R l10n/$locale up -C $RELEASE_TAG
      ;;
  esac
done
echo "creating l10n archive..."
tar cjf l10n-$VERSION.tar.bz2 \
  --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=calendar \
  --exclude=mail \
  l10n

# 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-language.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer <w...@rosenauer.org>
# Parent df748bfc0eaca6dedf086cfd7167392416bfae27
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
@@ -127,16 +127,17 @@ nsLocaleService::nsLocaleService(void)
     nsRefPtr<nsLocale> resultLocale(new nsLocale());
     NS_ENSURE_TRUE_VOID(resultLocale);
 
 #ifdef MOZ_WIDGET_QT
     const char* lang = QLocale::system().name().toUtf8();
 #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;
@@ -155,16 +156,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-libproxy-compat.patch ++++++
# HG changeset patch
# Parent 99164862ccce7947259465dcf9edbf6375d56413
# User Wolfgang Rosenauer <w...@rosenauer.org>
No bug - libproxy API change picked up in bmo#769764 but fails in openSUSE 11.2 
and earlier. Still cast to char* to make "all" happy
Note: Remove that patch when openSUSE 11.2 runs out of any support!

diff --git a/toolkit/system/unixproxy/nsLibProxySettings.cpp 
b/toolkit/system/unixproxy/nsLibProxySettings.cpp
--- a/toolkit/system/unixproxy/nsLibProxySettings.cpp
+++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp
@@ -67,17 +67,17 @@ nsUnixSystemProxySettings::GetProxyForUR
 
   if (!mProxyFactory) {
     mProxyFactory = px_proxy_factory_new();
   }
   NS_ENSURE_TRUE(mProxyFactory, NS_ERROR_NOT_AVAILABLE);
 
   char **proxyArray = nullptr;
   proxyArray = px_proxy_factory_get_proxies(mProxyFactory,
-                                            PromiseFlatCString(aSpec).get());
+                                            (char *) 
(PromiseFlatCString(aSpec).get()));
   NS_ENSURE_TRUE(proxyArray, NS_ERROR_NOT_AVAILABLE);
 
   // Translate libproxy's output to PAC string as expected
   // libproxy returns an array of proxies in the format:
   // <procotol>://[username:password@]proxy:port
   // or
   // direct://
   //
++++++ 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
@@ -50,24 +50,28 @@ nsUnixSystemProxySettings::GetMainThread
   // dbus prevents us from being threadsafe, but this routine should not block 
anyhow
   *aMainThreadOnly = true;
   return NS_OK;
 }
 
 nsresult
 nsUnixSystemProxySettings::Init()
 {
-  mSchemeProxySettings.Init(5);
-  mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
-  if (mGSettings) {
-    
mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
-                                       getter_AddRefs(mProxySettings));
-  }
-  if (!mProxySettings) {
-    mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+  // only use GSettings if that is a GNOME session
+  const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
+  if (sessionType && !strcmp(sessionType, "gnome")) {
+    mSchemeProxySettings.Init(5);
+    mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
+    if (mGSettings) {
+      
mGSettings->GetCollectionForSchema(NS_LITERAL_CSTRING("org.gnome.system.proxy"),
+                                         getter_AddRefs(mProxySettings));
+    }
+    if (!mProxySettings) {
+      mGConf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
+    }
   }
   
   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-ppc.patch ++++++
# HG changeset patch
# Parent 2c9bf1336fd0811e0112953334df4c81c717e6ff
# 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
@@ -159,17 +159,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;
@@ -180,17 +180,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
@@ -179,17 +179,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
@@ -1099,17 +1099,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.
  * Platform specific page size conditions copied from js/public/HeapAPI.h
  */
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
@@ -1334,17 +1334,51 @@ nsPluginHost::FindPluginForType(const ch
   if (!aMimeType) {
     return nullptr;
   }
 
   LoadPlugins();
 
   InfallibleTArray<nsPluginTag*> matchingPlugins;
 
+  char *preferredPluginPath = nullptr;
+  nsAutoCString 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->IsActive()) {
       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-shared-nss-db.patch ++++++
From: Hans Petter Jansson <h...@copyleft.no>
      Wolfgang Rosenauer <w...@rosenauer.org>
Subject: use libnsssharedhelper if available at compile time
         (can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:

diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -8303,16 +8303,31 @@ AC_SUBST(QCMS_LIBS)
 
 dnl ========================================================
 dnl HarfBuzz
 dnl ========================================================
 
MOZ_HARFBUZZ_LIBS='$(DEPTH)/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
 AC_SUBST(MOZ_HARFBUZZ_LIBS)
 
 dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+  PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
+    [MOZ_ENABLE_NSSHELPER=1],
+    [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+  AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST(NSSHELPER_CFLAGS)
+AC_SUBST(NSSHELPER_LIBS)
+
+dnl ========================================================
 dnl SIL Graphite
 dnl ========================================================
 
MOZ_GRAPHITE_LIBS='$(DEPTH)/gfx/graphite2/src/$(LIB_PREFIX)mozgraphite2.$(LIB_SUFFIX)'
 AC_SUBST(MOZ_GRAPHITE_LIBS)
 
 dnl ========================================================
 dnl OTS
 dnl ========================================================
diff --git a/security/manager/ssl/src/Makefile.in 
b/security/manager/ssl/src/Makefile.in
--- a/security/manager/ssl/src/Makefile.in
+++ b/security/manager/ssl/src/Makefile.in
@@ -93,16 +93,19 @@ DEFINES += \
 
 EXPORTS += \
   CryptoTask.h \
   nsNSSShutDown.h \
   ScopedNSSTypes.h \
   nsRandomGenerator.h \
   $(NULL)
 
+LOCAL_INCLUDES += $(NSSHELPER_CFLAGS)
+EXTRA_DSO_LDOPTS += $(NSSHELPER_LIBS)
+
 EXPORTS_NAMESPACES = mozilla
 
 EXPORTS_mozilla += \
   PublicSSL.h \
   $(NULL)
 
 include $(topsrcdir)/config/rules.mk
 
diff --git a/security/manager/ssl/src/nsNSSComponent.cpp 
b/security/manager/ssl/src/nsNSSComponent.cpp
--- a/security/manager/ssl/src/nsNSSComponent.cpp
+++ b/security/manager/ssl/src/nsNSSComponent.cpp
@@ -3,16 +3,23 @@
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #ifdef MOZ_LOGGING
 #define FORCE_PR_LOG 1
 #endif
 
+#ifdef MOZ_ENABLE_NSSHELPER
+#pragma GCC visibility push(default)
+#include <nss-shared-helper.h>
+#pragma GCC visibility pop
+#include "prenv.h"
+#endif
+
 #include "nsNSSComponent.h"
 #include "nsNSSCallbacks.h"
 #include "nsNSSIOLayer.h"
 #include "nsCertVerificationThread.h"
 
 #include "nsNetUtil.h"
 #include "nsAppDirectoryServiceDefs.h"
 #include "nsDirectoryService.h"
@@ -1682,18 +1689,34 @@ nsNSSComponent::InitializeNSS(bool showW
     ConfigureInternalPKCS11Token();
 
     // The NSS_INIT_NOROOTINIT flag turns off the loading of the root certs
     // module by NSS_Initialize because we will load it in InstallLoadableRoots
     // later.  It also allows us to work around a bug in the system NSS in
     // Ubuntu 8.04, which loads any nonexistent "<configdir>/libnssckbi.so" as
     // "/usr/lib/nss/libnssckbi.so".
     uint32_t init_flags = NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE;
-    SECStatus init_rv = ::NSS_Initialize(profileStr.get(), "", "",
-                                         SECMOD_DB, init_flags);
+    SECStatus init_rv = SECFailure;
+#ifdef MOZ_ENABLE_NSSHELPER
+    if (PR_GetEnv("MOZ_SM_NO_NSSHELPER")) {
+      init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+                                 SECMOD_DB, init_flags);
+    } else {
+      init_rv = ::nsshelp_open_db ("Seamonkey", profileStr.get(), init_flags);
+
+      if (init_rv != SECSuccess) {
+        PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS using 
nsshelp_open_db in %s\n", profileStr.get()));
+        init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+                                   SECMOD_DB, init_flags);
+      }
+    }
+#else
+    init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+                               SECMOD_DB, init_flags);
+#endif
 
     if (init_rv != SECSuccess) {
       PR_LOG(gPIPNSSLog, PR_LOG_DEBUG, ("can not init NSS r/w in %s\n", 
profileStr.get()));
 
       if (supress_warning_preference) {
         which_nss_problem = problem_none;
       }
       else {
diff --git a/toolkit/library/Makefile.in b/toolkit/library/Makefile.in
--- a/toolkit/library/Makefile.in
+++ b/toolkit/library/Makefile.in
@@ -501,17 +501,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
 endif
 endif
 endif
 
 EXTRA_DSO_LDOPTS += $(LIBS_DIR) $(EXTRA_DSO_LIBS)
 
 DEFINES += -DIMPL_XREAPI
 
-EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB)
+EXTRA_DSO_LDOPTS += $(NSPR_LIBS) $(MOZALLOC_LIB) $(NSSHELPER_LIBS)
 
 ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
 CXXFLAGS += $(TK_CFLAGS)
 OS_LIBS += \
   -framework SystemConfiguration \
   -framework QTKit \
   -framework IOKit \
   -F/System/Library/PrivateFrameworks -framework CoreUI \
++++++ 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
@@ -12,26 +12,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) && (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 };
++++++ mozilla-ua-locale.patch ++++++
From: upstream
Subject: allow reading general.useragent.locale from user profile
References:
https://bugzilla.mozilla.org/show_bug.cgi?id=542999
http://bugzilla.novell.com/show_bug.cgi?id=582654

diff --git a/chrome/src/nsChromeRegistryChrome.cpp 
b/chrome/src/nsChromeRegistryChrome.cpp
--- a/chrome/src/nsChromeRegistryChrome.cpp
+++ b/chrome/src/nsChromeRegistryChrome.cpp
@@ -281,20 +281,21 @@ nsChromeRegistryChrome::GetSelectedLocal
 
   return NS_OK;
 }
 
 nsresult
 nsChromeRegistryChrome::SelectLocaleFromPref(nsIPrefBranch* prefs)
 {
   nsresult rv;
-  bool matchOSLocale = false;
+  bool matchOSLocale = false, userLocaleOverride = false;
+  prefs->PrefHasUserValue(SELECTED_LOCALE_PREF, &userLocaleOverride);
   rv = prefs->GetBoolPref(MATCH_OS_LOCALE_PREF, &matchOSLocale);
 
-  if (NS_SUCCEEDED(rv) && matchOSLocale) {
+  if (NS_SUCCEEDED(rv) && matchOSLocale && !userLocaleOverride) {
     // compute lang and region code only when needed!
     nsAutoCString uiLocale;
     rv = getUILangCountry(uiLocale);
     if (NS_SUCCEEDED(rv))
       mSelectedLocale = uiLocale;
   }
   else {
     nsXPIDLCString provider;
++++++ mozilla.sh.in ++++++
#!/bin/sh
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is mozilla.org Code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#    Wolfgang Rosenauer <wolfgang.rosena...@suse.de>
#                       <w...@rosenauer.org>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

##
## Usage:
##
## $ mozilla [args]
##
## This script is meant to run a mozilla program from the mozilla
## rpm installation.
##
## The script will setup all the environment voodoo needed to make
## mozilla work.

cmdname=`basename $0`

##
## Variables
##
MOZ_DIST_BIN="%PREFIX"
MOZ_DIST_LIB="%PROGDIR"
MOZ_APPNAME="%APPNAME"
MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME-bin"

MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh"
if [ "$0" = "$MOZ_APP_LAUNCHER" ]; then
  [ -h "/usr/bin/$MOZ_APPNAME" ] && \
   _link=$(readlink -f "/usr/bin/$MOZ_APPNAME")
  if [ "$_link" = "$MOZ_APP_LAUNCHER" ]; then
    export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
  fi
else
  export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
fi

mozilla_lib=`file $MOZ_PROGRAM`
LIB=lib
echo $mozilla_lib | grep -q -E 'ELF.64-bit.*(x86-64|S/390|PowerPC)' && LIB=lib64

BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins
if [ ! -d $BROWSER_PLUGIN_DIR ]; then
  BROWSER_PLUGIN_DIR=/opt/netscape/plugins
fi

MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
export MOZILLA_FIVE_HOME
LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export LD_LIBRARY_PATH

# needed for SUN Java under Xorg >= 7.2
export LIBXCB_ALLOW_SLOPPY_LOCK=1

##
if [ -z "$MOZ_PLUGIN_PATH" ]; then
  export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR
else
  # make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH
  echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null
  _retval=$?
  if [ ${_retval} -ne 0 ]; then
    export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR
  fi
fi

# disable Gnome crash dialog (doesn't make sense anyway)
export GNOME_DISABLE_CRASH_DIALOG=1

moz_debug=0
script_args=""
pass_arg_count=0
while [ $# -gt $pass_arg_count ]
do
  case "$1" in
    -d | --debugger)
      moz_debugger=$2;
      if [ "${moz_debugger}" != "" ]; then
        shift 2
        moz_debug=1
      else
        echo "-d requires an argument"
        exit 1
      fi
      ;;
    *)
      # Move the unrecognized argument to the end of the list.
      arg="$1"
      shift
      set -- "$@" "$arg"
      pass_arg_count=`expr $pass_arg_count + 1`
      ;;
  esac
done

if [ $moz_debug -eq 1 ]; then
  tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" 
>&2; exit 1; }
  trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
  echo -e "set args ${1+"$@"}\nrun" > $tmpfile
  echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile"
  $moz_debugger "$MOZ_PROGRAM" -x $tmpfile
else
  $MOZ_PROGRAM "$@"
fi
exitcode=$?

exit $exitcode
++++++ seamonkey-rpmlintrc ++++++
addFilter("no-jar-manifest")
++++++ seamonkey-shared-nss-db.patch ++++++
From: Hans Petter Jansson <h...@copyleft.no>
      Wolfgang Rosenauer <w...@rosenauer.org>
Subject: use libnsssharedhelper if available at compile time
         (can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:

diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -6405,16 +6405,30 @@ fi
 AC_SUBST(MOZ_CAIRO_LIBS)
 
 dnl qcms
 dnl ========================================================
 
 QCMS_LIBS='$(call EXPAND_LIBNAME_PATH,mozqcms,$(DEPTH)/gfx/qcms)'    
 AC_SUBST(QCMS_LIBS)
 
+dnl ========================================================
+dnl Check for nss-shared-helper
+dnl ========================================================
+
+  PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, 
+    [MOZ_ENABLE_NSSHELPER=1],
+    [MOZ_ENABLE_NSSHELPER=])
+
+if test "$MOZ_ENABLE_NSSHELPER"; then
+  AC_DEFINE(MOZ_ENABLE_NSSHELPER)
+fi
+AC_SUBST(MOZ_ENABLE_NSSHELPER)
+AC_SUBST(NSSHELPER_CFLAGS)
+AC_SUBST(NSSHELPER_LIBS)
 
 dnl ========================================================
 dnl HarfBuzz
 dnl ========================================================
 
MOZ_HARFBUZZ_LIBS='$(DEPTH)/mozilla/gfx/harfbuzz/src/$(LIB_PREFIX)mozharfbuzz.$(LIB_SUFFIX)'
 AC_SUBST(MOZ_HARFBUZZ_LIBS)
 
 dnl ========================================================
++++++ seamonkey-ua-locale.patch ++++++
diff --git a/suite/locales/en-US/suite-l10n.js 
b/suite/locales/en-US/suite-l10n.js
--- a/suite/locales/en-US/suite-l10n.js
+++ b/suite/locales/en-US/suite-l10n.js
@@ -1,8 +1,8 @@
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 #filter substitution
 
-pref("general.useragent.locale", "@AB_CD@");
+pref("general.useragent.locale", "chrome://global/locale/intl.properties");
 pref("spellchecker.dictionary", "@AB_CD@");
++++++ suse-default-prefs.js ++++++
pref("browser.display.use_system_colors",   true);
pref("browser.startup.homepage_override.mstone", "ignore");
pref("general.smoothScroll",                true);
pref("font.default", "sans-serif");
pref("network.negotiate-auth.gsslib", "GSSAPI");
pref("print.print_edge_top", 14); // 1/100 of an inch
pref("print.print_edge_left", 16); // 1/100 of an inch
pref("print.print_edge_right", 16); // 1/100 of an inch
pref("print.print_edge_bottom", 14); // 1/100 of an inch
pref("intl.locale.matchOS", true);
// do not disable system-global or app-global extensions
pref("extensions.autoDisableScopes", 3);
pref("extensions.shownSelectionUI", true);

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to