commit MozillaThunderbird.2691 for openSUSE:12.3:Update
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 <wr@rosenauer.org> # # 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 <adrian@suse.de> # 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 <wr@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-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 <wr@rosenauer.org> Bug 746112 - RegExp hang on ppc64 in execute. Bug 750620 - Make double-conversion portable to exotic architectures. TM: mozilla15 diff --git a/js/src/yarr/YarrInterpreter.h b/js/src/yarr/YarrInterpreter.h --- a/js/src/yarr/YarrInterpreter.h +++ b/js/src/yarr/YarrInterpreter.h @@ -162,17 +162,17 @@ struct ByteTerm { , m_invert(invert) { atom.characterClass = characterClass; atom.quantityType = QuantifierFixedCount; atom.quantityCount = 1; inputPosition = inputPos; } - ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, int inputPos) + ByteTerm(Type type, unsigned subpatternId, ByteDisjunction* parenthesesInfo, bool capture, int inputPos) __attribute__((noinline)) : type(type) , m_capture(capture) , m_invert(false) { atom.subpatternId = subpatternId; atom.parenthesesDisjunction = parenthesesInfo; atom.quantityType = QuantifierFixedCount; atom.quantityCount = 1; @@ -183,17 +183,17 @@ struct ByteTerm { : type(type) , m_capture(false) , m_invert(invert) { atom.quantityType = QuantifierFixedCount; atom.quantityCount = 1; } - ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int inputPos) + ByteTerm(Type type, unsigned subpatternId, bool capture, bool invert, int inputPos) __attribute__((noinline)) : type(type) , m_capture(capture) , m_invert(invert) { atom.subpatternId = subpatternId; atom.quantityType = QuantifierFixedCount; atom.quantityCount = 1; inputPosition = inputPos; diff --git a/js/src/yarr/YarrPattern.h b/js/src/yarr/YarrPattern.h --- a/js/src/yarr/YarrPattern.h +++ b/js/src/yarr/YarrPattern.h @@ -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 <hpj@copyleft.no> Wolfgang Rosenauer <wr@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 @@ -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 <nss-shared-helper.h> +#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 <wolfgang.rosenauer@suse.de> # <wr@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" 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 <hpj@copyleft.no> Wolfgang Rosenauer <wr@rosenauer.org> 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
participants (1)
-
root@hilbert.suse.de