Hello community,
here is the log from the commit of package MozillaThunderbird.2691 for openSUSE:12.3:Update checked in at 2014-04-30 08:17:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:12.3:Update/MozillaThunderbird.2691 (Old)
and /work/SRC/openSUSE:12.3:Update/.MozillaThunderbird.2691.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "MozillaThunderbird.2691"
Changes:
--------
New Changes file:
--- /dev/null 2014-04-28 00:21:37.460033756 +0200
+++ /work/SRC/openSUSE:12.3:Update/.MozillaThunderbird.2691.new/MozillaThunderbird.changes 2014-04-30 08:17:51.000000000 +0200
@@ -0,0 +1,1944 @@
+-------------------------------------------------------------------
+Tue Mar 18 21:45:43 UTC 2014 - wr@rosenauer.org
+
+- update to Thunderbird 24.4.0 (bnc#868603)
+ * MFSA 2014-15/CVE-2014-1493/CVE-2014-1494
+ Miscellaneous memory safety hazards
+ * MFSA 2014-17/CVE-2014-1497 (bmo#966311)
+ Out of bounds read during WAV file decoding
+ * MFSA 2014-26/CVE-2014-1508 (bmo#963198)
+ Information disclosure through polygon rendering in MathML
+ * MFSA 2014-27/CVE-2014-1509 (bmo#966021)
+ Memory corruption in Cairo during PDF font rendering
+ * MFSA 2014-28/CVE-2014-1505 (bmo#941887)
+ SVG filters information disclosure through feDisplacementMap
+ * MFSA 2014-29/CVE-2014-1510/CVE-2014-1511 (bmo#982906, bmo#982909)
+ Privilege escalation using WebIDL-implemented APIs
+ * MFSA 2014-30/CVE-2014-1512 (bmo#982957)
+ Use-after-free in TypeObject
+ * MFSA 2014-31/CVE-2014-1513 (bmo#982974)
+ Out-of-bounds read/write through neutering ArrayBuffer objects
+ * MFSA 2014-32/CVE-2014-1514 (bmo#983344)
+ Out-of-bounds write through TypedArrayObject after neutering
+
+-------------------------------------------------------------------
+Mon Feb 3 16:07:28 UTC 2014 - wr@rosenauer.org
+
+- update to Thunderbird 24.3.0 (bnc#861847)
+ * MFSA 2014-01/CVE-2014-1477/CVE-2014-1478
+ Miscellaneous memory safety hazards (rv:27.0 / rv:24.3)
+ * MFSA 2014-02/CVE-2014-1479 (bmo#911864)
+ Clone protected content with XBL scopes
+ * MFSA 2014-04/CVE-2014-1482 (bmo#943803)
+ Incorrect use of discarded images by RasterImage
+ * MFSA 2014-08/CVE-2014-1486 (bmo#942164)
+ Use-after-free with imgRequestProxy and image proccessing
+ * MFSA 2014-09/CVE-2014-1487 (bmo#947592)
+ Cross-origin information leak through web workers
+ * MFSA 2014-12/CVE-2014-1490/CVE-2014-1491
+ (bmo#934545, bmo#930874, bmo#930857)
+ NSS ticket handling issues
+ * MFSA 2014-13/CVE-2014-1481(bmo#936056)
+ Inconsistent JavaScript handling of access to Window objects
+- requires NSS 3.15.4
+- renamed ppc64le patches to streamline with Firefox package
+
+-------------------------------------------------------------------
+Fri Dec 13 21:29:16 UTC 2013 - uweigand@de.ibm.com
+
+- Add support for powerpc64le-linux.
+ * ppc64le-support.patch: general support
+ * libffi-ppc64le.patch: libffi backport
+ * xpcom-ppc64le.patch: port xpcom
+
+-------------------------------------------------------------------
+Sun Dec 8 10:18:03 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 24.2.0 (bnc#854370)
+ * requires NSS 3.15.3.1 or higher
+ * MFSA 2013-104/CVE-2013-5609/CVE-2013-5610
+ Miscellaneous memory safety hazards
+ * MFSA 2013-108/CVE-2013-5616 (bmo#938341)
+ Use-after-free in event listeners
+ * MFSA 2013-109/CVE-2013-5618 (bmo#926361)
+ Use-after-free during Table Editing
+ * MFSA 2013-111/CVE-2013-6671 (bmo#930281)
+ Segmentation violation when replacing ordered list elements
+ * MFSA 2013-113/CVE-2013-6673 (bmo#970380)
+ Trust settings for built-in roots ignored during EV certificate
+ validation
+ * MFSA 2013-114/CVE-2013-5613 (bmo#930381, bmo#932449)
+ Use-after-free in synthetic mouse movement
+ * MFSA 2013-115/CVE-2013-5615 (bmo#929261)
+ GetElementIC typed array stubs can be generated outside observed
+ typesets
+ * MFSA 2013-116/CVE-2013-6629/CVE-2013-6630 (bmo#891693)
+ JPEG information leak
+ * MFSA 2013-117 (bmo#946351)
+ Mis-issued ANSSI/DCSSI certificate
+ (fixed via NSS 3.15.3.1)
+
+-------------------------------------------------------------------
+Tue Nov 19 08:08:00 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 24.1.1
+ * requires NSPR 4.10.2 and NSS 3.15.3 for security reasons
+ * fix binary compatibility issues for patch level updates
+ (bmo#927073)
+
+-------------------------------------------------------------------
+Thu Oct 24 17:18:23 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 24.1.0 (bnc#847708)
+ * requires NSS 3.15.2 or above
+ * MFSA 2013-93/CVE-2013-5590/CVE-2013-5591/CVE-2013-5592
+ Miscellaneous memory safety hazards
+ * MFSA 2013-94/CVE-2013-5593 (bmo#868327)
+ Spoofing addressbar through SELECT element
+ * MFSA 2013-95/CVE-2013-5604 (bmo#914017)
+ Access violation with XSLT and uninitialized data
+ * MFSA 2013-96/CVE-2013-5595 (bmo#916580)
+ Improperly initialized memory and overflows in some JavaScript
+ functions
+ * MFSA 2013-97/CVE-2013-5596 (bmo#910881)
+ Writing to cycle collected object during image decoding
+ * MFSA 2013-98/CVE-2013-5597 (bmo#918864)
+ Use-after-free when updating offline cache
+ * MFSA 2013-100/CVE-2013-5599/CVE-2013-5600/CVE-2013-5601
+ (bmo#915210, bmo#915576, bmo#916685)
+ Miscellaneous use-after-free issues found through ASAN fuzzing
+ * MFSA 2013-101/CVE-2013-5602 (bmo#897678)
+ Memory corruption in workers
+ * MFSA 2013-102/CVE-2013-5603 (bmo#916404)
+ Use-after-free in HTML document templates
+
+-------------------------------------------------------------------
+Thu Oct 10 14:43:22 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 24.0.1
+ * fqdn for smtp server name was not accepted (bmo#913785)
+ * fixed crash in PL_strncasecmp (bmo#917955)
+- update Enigmail to 1.6
+ * The passphrase timeout configuration in Enigmail is now read and
+ written from/to gpg-agent.
+ * New dialog to change the expiry date of keys
+ * New function to search for the OpenPGP keys of all Address Book
+ entries on a keyserver
+ * removed obsolete enigmail-build.patch
+
+-------------------------------------------------------------------
+Sat Sep 14 20:32:28 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 24.0 (bnc#840485)
+ * MFSA 2013-76/CVE-2013-1718/CVE-2013-1719
+ Miscellaneous memory safety hazards
+ * MFSA 2013-77/CVE-2013-1720 (bmo#888820)
+ Improper state in HTML5 Tree Builder with templates
+ * MFSA 2013-79/CVE-2013-1722 (bmo#893308)
+ Use-after-free in Animation Manager during stylesheet cloning
+ * MFSA 2013-80/CVE-2013-1723 (bmo#891292)
+ NativeKey continues handling key messages after widget is destroyed
+ * MFSA 2013-81/CVE-2013-1724 (bmo#894137)
+ Use-after-free with select element
+ * MFSA 2013-82/CVE-2013-1725 (bmo#876762)
+ Calling scope for new Javascript objects can lead to memory corruption
+ * MFSA 2013-85/CVE-2013-1728 (bmo#883686)
+ Uninitialized data in IonMonkey
+ * MFSA 2013-88/CVE-2013-1730 (bmo#851353)
+ Compartment mismatch re-attaching XBL-backed nodes
+ * MFSA 2013-89/CVE-2013-1732 (bmo#883514)
+ Buffer overflow with multi-column, lists, and floats
+ * MFSA 2013-90/CVE-2013-1735/CVE-2013-1736 (bmo#898871, bmo#906301)
+ Memory corruption involving scrolling
+ * MFSA 2013-91/CVE-2013-1737 (bmo#907727)
+ User-defined properties on DOM proxies get the wrong "this" object
+ * MFSA 2013-92/CVE-2013-1738 (bmo#887334, bmo#882897)
+ GC hazard with default compartments and frame chain restoration
+- moved greek to common translation package
+- require NSPR 4.10 and NSS 3.15.1
+- add GStreamer build requirements for Gecko
+- added enigmail-build.patch to fix TB packaging (bmo#886095)
+- removed obsolete patches:
+ * enigmail-old-gcc.patch
+ * mozilla-gcc43-enums.patch
+ * mozilla-gcc43-template_hacks.patch
+ * mozilla-gcc43-templates_instantiation.patch
+ * ppc-xpcshell.patch
+
+-------------------------------------------------------------------
+Fri Aug 2 06:01:03 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 17.0.8 (bnc#833389)
+ * MFSA 2013-63/CVE-2013-1701
+ Miscellaneous memory safety hazards
+ * MFSA 2013-68/CVE-2013-1709 (bmo#838253)
+ Document URI misrepresentation and masquerading
+ * MFSA 2013-69/CVE-2013-1710 (bmo#871368)
+ CRMF requests allow for code execution and XSS attacks
+ * MFSA 2013-72/CVE-2013-1713 (bmo#887098)
+ Wrong principal used for validating URI for some Javascript
+ components
+ * MFSA 2013-73/CVE-2013-1714 (bmo#879787)
+ Same-origin bypass with web workers and XMLHttpRequest
+ * MFSA 2013-75/CVE-2013-1717 (bmo#406541, bmo#738397)
+ Local Java applets may read contents of local file system
+
+-------------------------------------------------------------------
+Wed Jul 17 17:28:39 UTC 2013 - wr@rosenauer.org
+
+- update Enigmail to 1.5.2
+ * bugfix release
+
+-------------------------------------------------------------------
+Mon Jun 24 10:17:22 UTC 2013 - wr@rosenauer.org
+
+- update to Thunderbird 17.0.7 (bnc#825935)
+ * MFSA 2013-49/CVE-2013-1682
+ Miscellaneous memory safety hazards
++++ 1747 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:12.3:Update/.MozillaThunderbird.2691.new/MozillaThunderbird.changes
New:
----
MozillaThunderbird.changes
MozillaThunderbird.spec
_constraints
add-plugins.sh.in
compare-locales.tar.bz2
create-tar.sh
enigmail-1.6.tar.gz
find-external-requires.sh
kde.js
l10n-24.4.0.tar.bz2
libffi-ppc64le.patch
mozilla-arm-disable-edsp.patch
mozilla-kde.patch
mozilla-language.patch
mozilla-nongnome-proxies.patch
mozilla-ppc.patch
mozilla-shared-nss-db.patch
mozilla.sh.in
ppc64le-support.patch
suse-default-prefs.js
tb-develdirs.patch
tb-ssldap.patch
thunderbird-24.4.0-source.tar.bz2
thunderbird-rpmlintrc
thunderbird-shared-nss-db.patch
thunderbird.desktop
xpcom-ppc64le.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ MozillaThunderbird.spec ++++++
#
# spec file for package MozillaThunderbird
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
# 2006-2014 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/
#
%define mainversion 24.4.0
%define update_channel release
%define gstreamer_ver 0.10
%define with_kde 1
Name: MozillaThunderbird
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: mozilla-nspr-devel >= 4.10.2
BuildRequires: mozilla-nss-devel >= 3.15.4
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 > 1210
BuildRequires: pkgconfig(gstreamer-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-app-%gstreamer_ver)
BuildRequires: pkgconfig(gstreamer-plugins-base-%gstreamer_ver)
%endif
Version: %{mainversion}
Release: 0
%define releasedate 2014031500
Provides: thunderbird = %{version}
%if %{with_kde}
# this is needed to match this package with the kde4 helper package without the main package
# having a hard requirement on the kde4 package
%define kde_helper_version 6
Provides: mozilla-kde4-version = %{kde_helper_version}
%endif
Summary: The Stand-Alone Mozilla Mail Component
License: MPL-2.0
Group: Productivity/Networking/Email/Clients
Url: http://www.mozilla.org/products/thunderbird/
Source: thunderbird-%{version}-source.tar.bz2
Source1: thunderbird.desktop
Source2: add-plugins.sh.in
Source3: mozilla.sh.in
Source4: l10n-%{version}.tar.bz2
#Source5: shipped-locales
Source6: suse-default-prefs.js
Source7: find-external-requires.sh
Source8: thunderbird-rpmlintrc
Source9: enigmail-1.6.tar.gz
Source10: create-tar.sh
Source11: compare-locales.tar.bz2
Source12: kde.js
# Gecko/Toolkit
Patch1: mozilla-shared-nss-db.patch
Patch2: mozilla-language.patch
Patch3: mozilla-nongnome-proxies.patch
Patch4: mozilla-kde.patch
Patch5: mozilla-arm-disable-edsp.patch
Patch7: mozilla-ppc.patch
Patch8: libffi-ppc64le.patch
Patch9: xpcom-ppc64le.patch
Patch10: ppc64le-support.patch
# Thunderbird/mail
Patch20: tb-ssldap.patch
Patch21: tb-develdirs.patch
Patch22: thunderbird-shared-nss-db.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: coreutils fileutils textutils /bin/sh
Recommends: libcanberra0
### build options
%define build_enigmail 1
%ifnarch ppc ppc64 ppc64le %arm
%define crashreporter 1
%else
%define crashreporter 0
%endif
%define has_system_cairo 0
%define localize 1
### build options end
%define _use_internal_dependency_generator 0
%define __find_requires sh %{SOURCE7}
%global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind
Requires: mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr)
Requires: mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
Conflicts: thunderbird-esr
%define progname thunderbird
%define progdir %{_prefix}/%_lib/thunderbird
%define libgssapi libgssapi_krb5.so.2
%if %suse_version > 1130
%define desktop_file_name thunderbird
%else
%define desktop_file_name %{name}
%endif
%description
Mozilla Thunderbird is a redesign of the Mozilla Mail component. It is
written using the XUL user interface language and designed to be
cross-platform. It is a stand-alone application instead of part of the
Mozilla application suite.
%if %localize
%package translations-common
Summary: Common translations for MozillaThunderbird
License: MPL-2.0
Group: System/Localization
Provides: locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
PreReq: %{name} = %{mainversion}
Obsoletes: %{name}-translations < %{version}-%{release}
%description translations-common
This package contains several optional languages for the user interface
of MozillaThunderbird.
%package translations-other
Summary: Extra translations for MozillaThunderbird
License: MPL-2.0
Group: System/Localization
Provides: locale(%{name}:ast;be;bg;bn_BD;br;et;eu;fy_NL;ga_IE;gd;gl;he;hr;hy_AM;id;is;lt;nn_NO;pa_IN;rm;ro;si;sk;sl;sq;sr;ta_LK;tr;uk;vi)
PreReq: %{name} = %{mainversion}
Obsoletes: %{name}-translations < %{version}-%{release}
%description translations-other
This package contains several optional languages for the user interface
of MozillaThunderbird.
%endif
%package devel
Summary: Mozilla Thunderbird SDK
License: MPL-2.0
Group: Development/Libraries/Other
Requires: mozilla-nspr-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr-devel)
PreReq: mozilla-nss-devel >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss-devel)
PreReq: %{name} = %{mainversion}
%description devel
Software Development Kit to build plugins/extensions against Thunderbird.
%if %crashreporter
%package buildsymbols
Summary: Breakpad buildsymbols for %{name}
License: MPL-2.0
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
%if %build_enigmail
%package -n enigmail
Version: 1.6.0+%{mainversion}
Release: 0
Summary: OpenPGP addon for Thunderbird and SeaMonkey
License: MPL-1.1 or GPL-2.0+
Group: Productivity/Networking/Email/Clients
Url: http://www.enigmail.net/
Requires: /usr/bin/gpg
%if %suse_version > 1110
Requires: pinentry-gui
%else
Requires: pinentry-dialog
%endif
Conflicts: thunderbird-esr
%description -n enigmail
This package contains the Enigmail OpenPGP Addon for Thunderbird and SeaMonkey.
%endif
%prep
%if %build_enigmail
%setup -n thunderbird -q -b 4 -b 11 -b 9
%else
%setup -n thunderbird -q -b 4 -b 11
%endif
# xulrunner patches
pushd mozilla
%patch1 -p1
%patch2 -p1
%patch3 -p1
%if %{with_kde}
%patch4 -p1
%endif
%patch5 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
popd
# comm-central patches
%patch20 -p1
%patch21 -p1
%patch22 -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" {} +
#
%if %{with_kde}
kdehelperversion=$(cat mozilla/toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
if test "$kdehelperversion" != %{kde_helper_version}; then
echo fix kde helper version in the .spec file
exit 1
fi
%endif
export SUSE_ASNEEDED=0
export MOZ_BUILD_DATE=%{releasedate}
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
%if %{update_channel} == "esr"
export MOZ_ESR=1
%endif
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
%ifarch ppc64 ppc64le
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
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=mail
ac_add_options --prefix=%{_prefix}
ac_add_options --libdir=%{progdir}
ac_add_options --includedir=%{_includedir}
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-optimize
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-jpeg
ac_add_options --with-system-zlib
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
ac_add_options --disable-updater
#ac_add_options --with-system-png # no apng support
ac_add_options --enable-system-hunspell
ac_add_options --disable-installer
ac_add_options --disable-mochitest
ac_add_options --enable-startup-notification
ac_add_options --enable-official-branding
ac_add_options --disable-necko-wifi
ac_add_options --enable-update-channel=%{update_channel}
EOF
%if %suse_version > 1130
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gnomevfs
ac_add_options --enable-gio
EOF
%endif
%if %suse_version < 1220
cat << EOF >> $MOZCONFIG
ac_add_options --disable-gstreamer
EOF
%endif
%if %has_system_cairo
cat << EOF >> $MOZCONFIG
ac_add_options --enable-system-cairo
EOF
%endif
%if ! %crashreporter
cat << EOF >> $MOZCONFIG
ac_add_options --disable-crashreporter
EOF
%endif
# Disable neon for arm as it does not build correctly
%ifarch %arm
cat << EOF >> $MOZCONFIG
ac_add_options --disable-neon
EOF
%endif
make -f client.mk build
#
### enigmail build
%if %build_enigmail
cp -r $RPM_BUILD_DIR/enigmail $RPM_BUILD_DIR/thunderbird/mailnews/extensions/
pushd $RPM_BUILD_DIR/thunderbird/mailnews/extensions/enigmail
./makemake -r -o '../../../../obj'
popd
pushd $RPM_BUILD_DIR/obj/mailnews/extensions/enigmail
make
make xpi
popd
%endif
%install
cd ../obj
make -C mail/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/thunderbird/* \
$RPM_BUILD_ROOT%{progdir}
%if %{with_kde}
# install kde.js
install -m 644 %{SOURCE12} $RPM_BUILD_ROOT%{progdir}/defaults/pref/kde.js
# make sure that instantApply is true by default
# (TODO: mozilla-kde.patch needs to be improved to really not load kde.js in non-KDE envs)
echo 'pref("browser.preferences.instantApply", true);' > $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-thunderbird.js
%endif
# build additional locales
%if %localize
%if 0%{?SOURCE5:1}
cp %SOURCE5 ../thunderbird/mail/locales/shipped-locales
%endif
rm -f %{_tmppath}/translations.*
touch %{_tmppath}/translations.{common,other}
for locale in $(awk '{ print $1; }' ../thunderbird/mail/locales/all-locales); do
case $locale in
ja-JP-mac|en-US)
# locales not to be included in translations package
;;
*)
pushd $RPM_BUILD_DIR/compare-locales
PYTHONPATH=lib \
scripts/compare-locales -m ../l10n-merged/$locale \
../thunderbird/mail/locales/l10n.ini ../l10n $locale
popd
LOCALE_MERGEDIR=$RPM_BUILD_DIR/l10n-merged/$locale \
make -C mail/locales langpack-$locale || continue
cp -rL mozilla/dist/xpi-stage/locale-$locale \
$RPM_BUILD_ROOT%{progdir}/extensions/langpack-$locale@thunderbird.mozilla.org
# remove prefs and profile defaults from langpack
rm -rf $RPM_BUILD_ROOT%{progdir}/extensions/langpack-$locale@thunderbird.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 el 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-$locale@thunderbird.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:thunderbird:g
s:%%PROFILE:.thunderbird: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}
# freedesktop definition
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
install -m 644 %{SOURCE1} \
$RPM_BUILD_ROOT%{_datadir}/applications/%{desktop_file_name}.desktop
# install add-plugins.sh
sed "s:%%PROGDIR:%{progdir}:g" \
%{SOURCE2} > $RPM_BUILD_ROOT%{progdir}/add-plugins.sh
chmod 755 $RPM_BUILD_ROOT%{progdir}/add-plugins.sh
# apply SUSE defaults
sed -e 's,RPM_VERSION,%{mainversion},g
s,GSSAPI,%{libgssapi},g' \
%{SOURCE6} > suse-default-prefs
cp suse-default-prefs $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-opensuse.js
rm suse-default-prefs
# use correct locale for useragent
cat > $RPM_BUILD_ROOT%{progdir}/defaults/pref/all-l10n.js << EOF
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
EOF
##########
# DEVEL
#
mkdir -p $RPM_BUILD_ROOT%{_includedir}/%{progname}
chmod a+x mozilla/dist/sdk/bin/*.py
cp -rL mozilla/dist/sdk/bin/* $RPM_BUILD_ROOT%{_libdir}/%{progname}/
cp -rL mozilla/dist/sdk/lib/*.a $RPM_BUILD_ROOT%{_libdir}/%{progname}/
cp -rL mozilla/dist/idl/* $RPM_BUILD_ROOT%{_includedir}/%{progname}/
cp -rL mozilla/dist/include/* $RPM_BUILD_ROOT%{_includedir}/%{progname}/
#mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig/
#install -m 755 $RPM_BUILD_DIR/thunderbird/mozilla/build/unix/thunderbird-*.pc \
# $RPM_BUILD_ROOT%{_libdir}/pkgconfig/
#rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc
#ln -sf nss.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/thunderbird-nss.pc
##########
# ADDONS
#
# install enigmail to extension dir
%if %build_enigmail
cp -L mozilla/dist/bin/enigmail-*.xpi $RPM_BUILD_ROOT%{progdir}
# Thunderbird location
_enig_dir=$RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{3550f703-e582-4d05-9a08-453d09bdfdc6\}/\{847b3a00-7ab1-11d4-8f02-006008948af5\}
mkdir -p $_enig_dir
(cd $_enig_dir; unzip $RPM_BUILD_ROOT%{progdir}/enigmail-*.xpi)
# SeaMonkey location
mkdir -p $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\}
(cd $RPM_BUILD_ROOT%{_libdir}/mozilla/extensions/\{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a\}; \
ln -s ../\{3550f703-e582-4d05-9a08-453d09bdfdc6\}/\{847b3a00-7ab1-11d4-8f02-006008948af5\} )
# remove unwanted build artifacts
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-locale.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-en-US.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmail-skin.jar
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/installed-chrome.txt
rm -f $RPM_BUILD_ROOT%{progdir}/chrome/enigmime.jar
rm -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so
rm -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt
rm -f $RPM_BUILD_ROOT%{progdir}/components/enig*
rm -f $RPM_BUILD_ROOT%{progdir}/components/libenigmime.so
rm -f $RPM_BUILD_ROOT%{progdir}/components/ipc.xpt
rm -rf $RPM_BUILD_ROOT%{progdir}/defaults/preferences/
rm -rf $RPM_BUILD_ROOT%{progdir}/platform/
rm -rf $RPM_BUILD_ROOT%{progdir}/wrappers/
rm -f $RPM_BUILD_ROOT%{progdir}/enigmail*.xpi
%endif
#
# remove spurious executable bits
find $RPM_BUILD_ROOT/usr/include/%{progname} -type f -exec chmod a-x {} \;
find $RPM_BUILD_ROOT%{_libdir}/%{progname} \
-name "*.js" -o \
-name "*.jsm" -o \
-name "*.rdf" -o \
-name "*.properties" -o \
-name "*.dtd" -o \
-name "*.css" | xargs chmod a-x
# remove mkdir.done files from installed base
find $RPM_BUILD_ROOT%{progdir} -name ".mkdir.done" | xargs rm
#
for size in 16 22 24 32 48 256; do
mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${size}x${size}/apps/
ln -sf %{progdir}/chrome/icons/default/default$size.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${size}x${size}/apps/%{progname}.png
done
%suse_update_desktop_file %{desktop_file_name} Network Email GTK
# excluded files
rm -f $RPM_BUILD_ROOT%{progdir}/thunderbird
rm -f $RPM_BUILD_ROOT%{progdir}/removed-files
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}/dictionaries/en-US*
rm -f $RPM_BUILD_ROOT%{progdir}/nspr-config
# 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%{_libdir}/mozilla
%fdupes $RPM_BUILD_ROOT%{_datadir}
%fdupes $RPM_BUILD_ROOT%{_includedir}
%if %crashreporter
SYMBOLS_NAME="thunderbird-%{mainversion}-%{release}.%{_arch}-%{suse_version}-symbols"
make buildsymbols \
SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
if [ -e mozilla/dist/*symbols.zip ]; then
mkdir -p $RPM_BUILD_ROOT%{_datadir}/mozilla/
cp mozilla/dist/*symbols.zip $RPM_BUILD_ROOT%{_datadir}/mozilla/
fi
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%if %localize
rm -rf %{_tmppath}/translations.*
%endif
%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
%post
%progdir/add-plugins.sh > /dev/null 2>&1
%if %suse_version > 1130
%icon_theme_cache_post
%endif
# remove enigmail on updates
if [ -e %progdir/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\} ]; then
rm -rf %progdir/extensions/\{847b3a00-7ab1-11d4-8f02-006008948af5\}
fi
exit 0
%posttrans
if [ -e %progdir/add-plugins.sh ]; then
%progdir/add-plugins.sh > /dev/null 2>&1
fi
exit 0
%preun
if [ "$1" = "0" ]; then # deinstallation
rm -f %{progdir}/dictionaries/*
fi
exit 0
%postun
%if %suse_version > 1130
%icon_theme_cache_postun
%endif
exit 0
%files
%defattr(-,root,root)
%attr(755,root,root) %{progdir}/%{progname}.sh
%attr(755,root,root) %{progdir}/add-plugins.sh
%dir %{progdir}
%{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}/run-mozilla.sh
%{progdir}/thunderbird-bin
# crashreporter files
%if %crashreporter
%{progdir}/crashreporter
%{progdir}/crashreporter.ini
%{progdir}/Throbber-small.gif
%endif
%{progdir}/components/
%dir %{progdir}/chrome/
%{progdir}/chrome/icons/
%dir %{progdir}/dictionaries/
%{progdir}/defaults/
%dir %{progdir}/extensions/
%{progdir}/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
%{progdir}/isp/
%{progdir}/searchplugins/
%{_datadir}/applications/%{desktop_file_name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{progname}.png
%{_bindir}/%{progname}
%if %localize
%files translations-common -f %{_tmppath}/translations.common
%defattr(-,root,root)
%files translations-other -f %{_tmppath}/translations.other
%defattr(-,root,root)
%endif
%files devel
%defattr(-,root,root)
%{_libdir}/%{progname}/*.a
%{_libdir}/%{progname}/*.py
%{_libdir}/%{progname}/*.pyc
%{_libdir}/%{progname}/ply/
%{_libdir}/%{progname}/xpcshell
#%{_libdir}/pkgconfig/*.pc
%{_includedir}/%{progname}/
%if %build_enigmail
%files -n enigmail
%defattr(-,root,root)
%dir %{_libdir}/mozilla
%{_libdir}/mozilla/extensions/
%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
++++++ create-tar.sh ++++++
#!/bin/bash
CHANNEL="esr24"
BRANCH="releases/comm-$CHANNEL"
RELEASE_TAG="THUNDERBIRD_24_4_0_RELEASE"
VERSION="24.4.0"
echo "cloning $BRANCH..."
hg clone http://hg.mozilla.org/$BRANCH thunderbird
pushd thunderbird
hg update -r $RELEASE_TAG
echo "running client.py..."
[ "$RELEASE_TAG" == "default" ] || _extra="--comm-rev=$RELEASE_TAG --mozilla-rev=$RELEASE_TAG"
# temporary!
_extra="--mozilla-repo=http://hg.mozilla.org/releases/mozilla-$CHANNEL $_extra"
python client.py checkout --skip-chatzilla --skip-venkman $_extra
popd
echo "creating archive..."
tar cjf thunderbird-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird
# l10n
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
echo "fetching locales..."
if [ -e shipped-locales ]; then
SHIPPED_LOCALES=shipped-locales
else
SHIPPED_LOCALES=thunderbird/mail/locales/all-locales
fi
test ! -d l10n && mkdir l10n
for locale in $(awk '{ print $1; }' $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
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 --exclude=browser --exclude=calendar \
--exclude=suite \
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
++++++ kde.js ++++++
pref("browser.preferences.instantApply", false);
++++++ libffi-ppc64le.patch ++++++
++++ 3750 lines (skipped)
++++++ mozilla-arm-disable-edsp.patch ++++++
# HG changeset patch
# User Adrian Schröter
# Parent 5b26dbfe65bd4986ea3792f02bc025fec293b51f
disable ESDP support (no BNC or BMO reference yet :-()
diff --git a/xpcom/glue/arm.h b/xpcom/glue/arm.h
--- a/xpcom/glue/arm.h
+++ b/xpcom/glue/arm.h
@@ -143,17 +143,17 @@ namespace mozilla {
extern bool NS_COM_GLUE neon_enabled;
#endif
#endif
}
#if defined(MOZILLA_PRESUME_EDSP)
# define MOZILLA_MAY_SUPPORT_EDSP 1
inline bool supports_edsp() { return true; }
-#elif defined(MOZILLA_MAY_SUPPORT_EDSP) \
+#elif 0 \
&& defined(MOZILLA_ARM_HAVE_CPUID_DETECTION)
inline bool supports_edsp() { return arm_private::edsp_enabled; }
#else
inline bool supports_edsp() { return false; }
#endif
#if defined(MOZILLA_PRESUME_ARMV6)
# define MOZILLA_MAY_SUPPORT_ARMV6 1
++++++ mozilla-kde.patch ++++++
++++ 3726 lines (skipped)
++++++ mozilla-language.patch ++++++
# HG changeset patch
# User Wolfgang Rosenauer
# 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-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-ppc.patch ++++++
# HG changeset patch
# Parent 21d0e194954e451f0f1935d0ed68ee9eae432ddf
# User Wolfgang Rosenauer
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
@@ -180,17 +180,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,17 @@ 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(__ia64__) && !defined(__sparc__) && !defined(__mips__)
+#if !defined(__ia64__) && !defined(__sparc__) && !defined(__mips__) && !(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.
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-shared-nss-db.patch ++++++
From: Hans Petter Jansson
Wolfgang Rosenauer
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
@@ -8330,16 +8330,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
@@ -18,10 +18,13 @@ LIBXUL_LIBRARY = 1
CSRCS += md4.c
DEFINES += \
-DNSS_ENABLE_ECC \
-DDLL_PREFIX=\"$(DLL_PREFIX)\" \
-DDLL_SUFFIX=\"$(DLL_SUFFIX)\" \
$(NULL)
+LOCAL_INCLUDES += $(NSSHELPER_CFLAGS)
+EXTRA_DSO_LDOPTS += $(NSSHELPER_LIBS)
+
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
+#pragma GCC visibility pop
+#include "prenv.h"
+#endif
+
#include "nsNSSComponent.h"
#include "CertVerifier.h"
#include "nsCertVerificationThread.h"
#include "nsAppDirectoryServiceDefs.h"
#include "nsComponentManagerUtils.h"
#include "nsDirectoryServiceDefs.h"
#include "nsICertOverrideService.h"
@@ -1132,18 +1139,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_TB_NO_NSSHELPER")) {
+ init_rv = ::NSS_Initialize(profileStr.get(), "", "",
+ SECMOD_DB, init_flags);
+ } else {
+ init_rv = ::nsshelp_open_db ("Thunderbird", 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
@@ -490,17 +490,17 @@ EXTRA_DSO_LDOPTS += -INCREMENTAL:NO
endif
endif
endif
EXTRA_DSO_LDOPTS += $(LIBS_DIR)
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.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
#
#
# 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"
exec $moz_debugger "$MOZ_PROGRAM" -x $tmpfile
else
exec $MOZ_PROGRAM "$@"
fi
++++++ ppc64le-support.patch ++++++
Index: mozilla/configure.in
===================================================================
--- mozilla.orig/configure.in
+++ mozilla/configure.in
@@ -1084,7 +1084,7 @@ case "$OS_TEST" in
CPU_ARCH=x86
;;
-powerpc64 | ppc64)
+powerpc64 | ppc64 | powerpc64le | ppc64le)
CPU_ARCH=ppc64
;;
Index: mozilla/js/src/configure.in
===================================================================
--- mozilla.orig/js/src/configure.in
+++ mozilla/js/src/configure.in
@@ -915,7 +915,7 @@ case "$OS_TEST" in
CPU_ARCH=x86
;;
-powerpc64 | ppc64)
+powerpc64 | ppc64 | powerpc64le | ppc64le)
CPU_ARCH=ppc64
;;
Index: mozilla/mfbt/Endian.h
===================================================================
--- mozilla.orig/mfbt/Endian.h
+++ mozilla/mfbt/Endian.h
@@ -91,7 +91,7 @@
# else
# error "CPU type is unknown"
# endif
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__powerpc__) || defined(__ppc__)
# if __LITTLE_ENDIAN__
# define MOZ_LITTLE_ENDIAN 1
# elif __BIG_ENDIAN__
@@ -119,8 +119,7 @@
* cases.
*/
#elif defined(__sparc) || defined(__sparc__) || \
- defined(_POWER) || defined(__powerpc__) || \
- defined(__ppc__) || defined(__hppa) || \
+ defined(_POWER) || defined(__hppa) || \
defined(_MIPSEB) || defined(__ARMEB__) || \
defined(__s390__) || \
(defined(__sh__) && defined(__LITTLE_ENDIAN__)) || \
Index: mozilla/js/src/jscpucfg.h
===================================================================
--- mozilla.orig/js/src/jscpucfg.h
+++ mozilla/js/src/jscpucfg.h
@@ -31,7 +31,7 @@
# define JS_BYTES_PER_WORD 4
# define JS_BITS_PER_WORD_LOG2 5
-#elif defined(__APPLE__)
+#elif defined(__APPLE__) || defined(__powerpc__) || defined(__ppc__)
# if __LITTLE_ENDIAN__
# define IS_LITTLE_ENDIAN 1
# undef IS_BIG_ENDIAN
@@ -93,8 +93,7 @@
# endif
#elif defined(__sparc) || defined(__sparc__) || \
- defined(_POWER) || defined(__powerpc__) || \
- defined(__ppc__) || defined(__hppa) || \
+ defined(_POWER) || defined(__hppa) || \
defined(_MIPSEB) || defined(_BIG_ENDIAN)
/* IA64 running HP-UX will have _BIG_ENDIAN defined.
* IA64 running Linux will have endian.h and be handled above.
Index: mozilla/js/src/assembler/wtf/Platform.h
===================================================================
--- mozilla.orig/js/src/assembler/wtf/Platform.h
+++ mozilla/js/src/assembler/wtf/Platform.h
@@ -165,16 +165,22 @@
|| defined(__POWERPC__) \
|| defined(_M_PPC) \
|| defined(__PPC)
+#if !defined(__ppc64__) && !defined(__PPC64__)
#define WTF_CPU_PPC 1
+#endif
+#if !defined(__LITTLE_ENDIAN__)
#define WTF_CPU_BIG_ENDIAN 1
#endif
+#endif
/* WTF_CPU_PPC64 - PowerPC 64-bit */
#if defined(__ppc64__) \
|| defined(__PPC64__)
#define WTF_CPU_PPC64 1
+#if !defined(__LITTLE_ENDIAN__)
#define WTF_CPU_BIG_ENDIAN 1
#endif
+#endif
/* WTF_CPU_SH4 - SuperH SH-4 */
#if defined(__SH4__)
Index: mozilla/nsprpub/pr/include/md/_linux.cfg
===================================================================
--- mozilla.orig/nsprpub/pr/include/md/_linux.cfg
+++ mozilla/nsprpub/pr/include/md/_linux.cfg
@@ -29,8 +29,13 @@
#ifdef __powerpc64__
+#ifdef __LITTLE_ENDIAN__
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#else
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
+#endif
#define IS_64
#define PR_BYTES_PER_BYTE 1
@@ -75,8 +80,13 @@
#elif defined(__powerpc__)
+#ifdef __LITTLE_ENDIAN__
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+#else
#undef IS_LITTLE_ENDIAN
#define IS_BIG_ENDIAN 1
+#endif
#define PR_BYTES_PER_BYTE 1
#define PR_BYTES_PER_SHORT 2
Index: mozilla/media/webrtc/trunk/webrtc/typedefs.h
===================================================================
--- mozilla.orig/media/webrtc/trunk/webrtc/typedefs.h
+++ mozilla/media/webrtc/trunk/webrtc/typedefs.h
@@ -52,13 +52,23 @@
#elif defined(__powerpc64__)
#define WEBRTC_ARCH_PPC64 1
#define WEBRTC_ARCH_64_BITS 1
+#ifdef __LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#else
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__ppc__) || defined(__powerpc__)
#define WEBRTC_ARCH_PPC 1
#define WEBRTC_ARCH_32_BITS 1
+#ifdef __LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#define WEBRTC_LITTLE_ENDIAN
+#else
#define WEBRTC_ARCH_BIG_ENDIAN
#define WEBRTC_BIG_ENDIAN
+#endif
#elif defined(__sparc64__)
#define WEBRTC_ARCH_SPARC 1
#define WEBRTC_ARCH_64_BITS 1
++++++ suse-default-prefs.js ++++++
pref("general.useragent.vendor", "SUSE");
pref("general.useragent.vendorSub", "RPM_VERSION");
pref("font.default", "sans-serif");
pref("font.default.x-western", "sans-serif");
pref("font.name.monospace.x-western", "monospace");
pref("font.name.monospace.x-unicode", "monospace");
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);
++++++ tb-develdirs.patch ++++++
diff --git a/config/baseconfig.mk b/config/baseconfig.mk
index 636b9aa..b350c75 100644
--- a/config/baseconfig.mk
+++ b/config/baseconfig.mk
@@ -1,7 +1,7 @@
INCLUDED_AUTOCONF_MK = 1
-includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
-idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir := $(includedir)/$(MOZ_APP_NAME)
+idldir = $(datadir)/idl/$(MOZ_APP_NAME)
installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION)
MOZILLA_SRCDIR = $(topsrcdir)/mozilla
++++++ tb-ssldap.patch ++++++
diff --git a/mail/installer/package-manifest.in b/mail/installer/package-manifest.in
--- a/mail/installer/package-manifest.in
+++ b/mail/installer/package-manifest.in
@@ -268,16 +268,17 @@
#ifdef XP_WIN32
@BINPATH@/nsldap32v60@DLL_SUFFIX@
@BINPATH@/nsldappr32v60@DLL_SUFFIX@
@BINPATH@/nsldif32v60@DLL_SUFFIX@
#else
@BINPATH@/@DLL_PREFIX@ldap60@DLL_SUFFIX@
@BINPATH@/@DLL_PREFIX@ldif60@DLL_SUFFIX@
@BINPATH@/@DLL_PREFIX@prldap60@DLL_SUFFIX@
+@BINPATH@/@DLL_PREFIX@ssldap60@DLL_SUFFIX@
#endif
; login manager
@BINPATH@/components/loginmgr.xpt
@BINPATH@/components/nsLoginInfo.js
@BINPATH@/components/nsLoginManager.js
@BINPATH@/components/nsLoginManagerPrompter.js
@BINPATH@/components/passwordmgr.manifest
++++++ thunderbird-rpmlintrc ++++++
addFilter("no-jar-manifest")
++++++ thunderbird-shared-nss-db.patch ++++++
From: Hans Petter Jansson
Wolfgang Rosenauer
Subject: use libnsssharedhelper if available at compile time
(can be disabled by exporting MOZ_XRE_NO_NSSHELPER=1)
References:
diff --git a/mail/app/Makefile.in b/mail/app/Makefile.in
--- a/mail/app/Makefile.in
+++ b/mail/app/Makefile.in
@@ -61,16 +61,17 @@ LOCAL_INCLUDES += \
$(NULL)
DEFINES += -DXPCOM_GLUE
STL_FLAGS=
LIBS += \
$(EXTRA_DSO_LIBS) \
$(XPCOM_STANDALONE_GLUE_LDOPTS) \
+ $(NSSHELPER_LIBS) \
$(NULL)
ifdef MOZ_LINKER
LIBS += $(MOZ_ZLIB_LIBS)
endif
ifndef MOZ_WINCONSOLE
ifdef MOZ_DEBUG
++++++ thunderbird.desktop ++++++
[Desktop Entry]
Encoding=UTF-8
Name=Thunderbird
GenericName=Mail/News Client
Comment=Mail/News Client
TryExec=thunderbird
Exec=thunderbird %u
Icon=thunderbird
Terminal=false
Type=Application
StartupNotify=true
MimeType=x-scheme-handler/mailto;
++++++ xpcom-ppc64le.patch ++++++
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/moz.build
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/moz.build
@@ -198,6 +198,13 @@ if CONFIG['OS_TEST'] == 'powerpc64':
'xptcstubs_ppc64_linux.cpp',
]
+if CONFIG['OS_TEST'] == 'powerpc64le':
+ if CONFIG['OS_ARCH'] == 'Linux':
+ CPP_SOURCES += [
+ 'xptcinvoke_ppc64_linux.cpp',
+ 'xptcstubs_ppc64_linux.cpp',
+ ]
+
if CONFIG['OS_TEST'] in ('macppc', 'bebox', 'ofppc', 'prep', 'amigappc'):
if CONFIG['OS_ARCH'] == 'NetBSD':
CPP_SOURCES += [
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
@@ -166,7 +166,7 @@ endif
#
# Linux/PPC64
#
-ifneq (,$(filter Linuxpowerpc64 FreeBSDpowerpc64,$(OS_ARCH)$(OS_TEST)))
+ifneq (,$(filter Linuxpowerpc64 Linuxpowerpc64le FreeBSDpowerpc64,$(OS_ARCH)$(OS_TEST)))
ASFILES := xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
AS := $(CC) -c -x assembler-with-cpp
endif
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
@@ -17,12 +17,29 @@
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
+#if _CALL_ELF == 2
+#define STACK_TOC 28
+#define STACK_PARAMS 96
+#else
+#define STACK_TOC 40
+#define STACK_PARAMS 112
+#endif
#
# NS_InvokeByIndex(nsISupports* that, uint32_t methodIndex,
# uint32_t paramCount, nsXPTCVariant* params)
#
+#if _CALL_ELF == 2
+ .section ".text"
+ .type NS_InvokeByIndex,@function
+ .globl NS_InvokeByIndex
+ .align 2
+NS_InvokeByIndex:
+0: addis 2,12,(.TOC.-0b)@ha
+ addi 2,2,(.TOC.-0b)@l
+ .localentry NS_InvokeByIndex,.-NS_InvokeByIndex
+#else
.section ".toc","aw"
.section ".text"
.align 2
@@ -34,6 +51,7 @@ NS_InvokeByIndex:
.previous
.type NS_InvokeByIndex,@function
.NS_InvokeByIndex:
+#endif
mflr 0
std 0,16(r1)
@@ -56,7 +74,7 @@ NS_InvokeByIndex:
# (-23*8).(-16*8).(-3*8)..(r31)
# +stack frame, -unused stack params, +regs storage, +1 for alignment
- addi r7,r5,((112/8)-7+7+13+3+1)
+ addi r7,r5,((STACK_PARAMS/8)-7+7+13+3+1)
rldicr r7,r7,3,59 # multiply by 8 and mask with ~15
neg r7,r7
stdux r1,r1,r7
@@ -72,7 +90,7 @@ NS_InvokeByIndex:
subi r3,r31,(23*8) # r3 --> GPRS
subi r4,r31,(16*8) # r4 --> FPRS
- addi r7,r1,112 # r7 --> params
+ addi r7,r1,STACK_PARAMS # r7 --> params
bl invoke_copy_to_stack
nop
@@ -83,14 +101,18 @@ NS_InvokeByIndex:
sldi r30,r30,3 # Find function descriptor
add r9,r9,r30
- ld r9,0(r9)
+ ld r12,0(r9)
- ld r0,0(r9) # Actual address from fd.
- std r2,40(r1) # Save r2 (TOC pointer)
+ std r2,STACK_TOC(r1) # Save r2 (TOC pointer)
+#if _CALL_ELF == 2
+ mtctr r12
+#else
+ ld r0,0(r12) # Actual address from fd.
mtctr 0
- ld r11,16(r9) # Environment pointer from fd.
- ld r2,8(r9) # TOC pointer from fd.
+ ld r11,16(r12) # Environment pointer from fd.
+ ld r2,8(r12) # TOC pointer from fd.
+#endif
# Load FP and GP registers as required
ld r4, -(23*8)(r31)
@@ -117,7 +139,7 @@ NS_InvokeByIndex:
bctrl # Do it
- ld r2,40(r1) # Load our own TOC pointer
+ ld r2,STACK_TOC(r1) # Load our own TOC pointer
ld r1,0(r1) # Revert stack frame
ld 0,16(r1) # Reload lr
ld 29,-24(r1) # Restore NVGPRS
@@ -126,7 +148,11 @@ NS_InvokeByIndex:
mtlr 0
blr
+#if _CALL_ELF == 2
+ .size NS_InvokeByIndex,.-NS_InvokeByIndex
+#else
.size NS_InvokeByIndex,.-.NS_InvokeByIndex
+#endif
# Magic indicating no need for an executable stack
.section .note.GNU-stack, "", @progbits ; .previous
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp
@@ -74,7 +74,9 @@ invoke_copy_to_stack(uint64_t* gpregs,
fpregs[i] = s->val.f; // if passed in registers, floats are promoted to doubles
} else {
float *p = (float *)d;
+#ifndef __LITTLE_ENDIAN__
p++;
+#endif
*p = s->val.f;
}
}
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
@@ -17,6 +17,27 @@
.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
.set f30,30; .set f31,31
+#if _CALL_ELF == 2
+#define STACK_PARAMS 96
+#else
+#define STACK_PARAMS 112
+#endif
+
+#if _CALL_ELF == 2
+ .section ".text"
+ .type SharedStub,@function
+ .globl SharedStub
+ # Make the symbol hidden so that the branch from the stub does
+ # not go via a PLT. This is not only better for performance,
+ # but may be necessary to avoid linker errors since there is
+ # no place to restore the TOC register in a sibling call.
+ .hidden SharedStub
+ .align 2
+SharedStub:
+0: addis 2,12,(.TOC.-0b)@ha
+ addi 2,2,(.TOC.-0b)@l
+ .localentry SharedStub,.-SharedStub
+#else
.section ".text"
.align 2
.globl SharedStub
@@ -29,6 +50,7 @@ SharedStub:
.type SharedStub,@function
.SharedStub:
+#endif
mflr r0
std r4, -56(r1) # Save all GPRS
@@ -55,7 +77,7 @@ SharedStub:
subi r6,r1,56 # r6 --> gprData
subi r7,r1,160 # r7 --> fprData
- addi r5,r1,112 # r5 --> extra stack args
+ addi r5,r1,STACK_PARAMS # r5 --> extra stack args
std r0, 16(r1)
@@ -75,7 +97,11 @@ SharedStub:
mtlr r0
blr
+#if _CALL_ELF == 2
+ .size SharedStub,.-SharedStub
+#else
.size SharedStub,.-.SharedStub
+#endif
# Magic indicating no need for an executable stack
.section .note.GNU-stack, "", @progbits ; .previous
Index: mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
===================================================================
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp
@@ -83,7 +83,9 @@ PrepareAndDispatch(nsXPTCStubBase* self,
dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
else {
float *p = (float *)ap;
+#ifndef __LITTLE_ENDIAN__
p++;
+#endif
dp->val.f = *p;
}
} else { /* integer type or pointer */
@@ -153,6 +155,43 @@ PrepareAndDispatch(nsXPTCStubBase* self,
// etc.
// Use assembler directives to get the names right...
+#if _CALL_ELF == 2
+# define STUB_ENTRY(n) \
+__asm__ ( \
+ ".section \".text\" \n\t" \
+ ".align 2 \n\t" \
+ ".if "#n" < 10 \n\t" \
+ ".globl _ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase5Stub"#n"Ev,.-_ZN14nsXPTCStubBase5Stub"#n"Ev \n\t" \
+ \
+ ".elseif "#n" < 100 \n\t" \
+ ".globl _ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase6Stub"#n"Ev,.-_ZN14nsXPTCStubBase6Stub"#n"Ev \n\t" \
+ \
+ ".elseif "#n" < 1000 \n\t" \
+ ".globl _ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ ".type _ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n" \
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t" \
+ "0: addis 2,12,.TOC.-0b@ha \n\t" \
+ "addi 2,2,.TOC.-0b@l \n\t" \
+ ".localentry _ZN14nsXPTCStubBase7Stub"#n"Ev,.-_ZN14nsXPTCStubBase7Stub"#n"Ev \n\t" \
+ \
+ ".else \n\t" \
+ ".err \"stub number "#n" >= 1000 not yet supported\"\n" \
+ ".endif \n\t" \
+ \
+ "li 11,"#n" \n\t" \
+ "b SharedStub \n" \
+);
+#else
# define STUB_ENTRY(n) \
__asm__ ( \
".section \".toc\",\"aw\" \n\t" \
@@ -195,6 +234,7 @@ __asm__ (
"li 11,"#n" \n\t" \
"b SharedStub \n" \
);
+#endif
#define SENTINEL_ENTRY(n) \
nsresult nsXPTCStubBase::Sentinel##n() \
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org