forked from pool/MozillaThunderbird
checked in
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaThunderbird?expand=0&rev=56
This commit is contained in:
parent
faaa6c5c3e
commit
f8cc591699
@ -1,11 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Tue Sep 15 17:58:56 CEST 2009 - wr@rosenauer.org
|
|
||||||
|
|
||||||
- update to 3.0b4
|
|
||||||
* removed upstreamed patches
|
|
||||||
* based on Gecko 1.9.1.3 (inheriting security fixes)
|
|
||||||
* new global search
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Aug 25 17:56:36 CEST 2009 - wr@rosenauer.org
|
Tue Aug 25 17:56:36 CEST 2009 - wr@rosenauer.org
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package MozillaThunderbird (Version 3.0b4)
|
# spec file for package MozillaThunderbird (Version 3.0b3)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
# Copyright (c) 2009 Wolfgang Rosenauer <wr@rosenauer.org>
|
# Copyright (c) 2009 Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
@ -28,9 +28,9 @@ BuildRequires: hunspell-devel
|
|||||||
BuildRequires: nss-shared-helper-devel
|
BuildRequires: nss-shared-helper-devel
|
||||||
%endif
|
%endif
|
||||||
License: GPL v2 or later ; LGPL v2.1 or later ; MPL 1.1 or later
|
License: GPL v2 or later ; LGPL v2.1 or later ; MPL 1.1 or later
|
||||||
%define mainversion 3.0b4
|
%define mainversion 3.0b3
|
||||||
Version: %{mainversion}
|
Version: %{mainversion}
|
||||||
Release: 1
|
Release: 5
|
||||||
Summary: The Stand-Alone Mozilla Mail Component
|
Summary: The Stand-Alone Mozilla Mail Component
|
||||||
Url: http://www.mozilla.org/products/thunderbird/
|
Url: http://www.mozilla.org/products/thunderbird/
|
||||||
Group: Productivity/Networking/Email/Clients
|
Group: Productivity/Networking/Email/Clients
|
||||||
@ -39,15 +39,18 @@ Source1: MozillaThunderbird.desktop
|
|||||||
Source2: add-plugins.sh.in
|
Source2: add-plugins.sh.in
|
||||||
Source3: mozilla.sh.in
|
Source3: mozilla.sh.in
|
||||||
Source4: l10n-%{version}.tar.bz2
|
Source4: l10n-%{version}.tar.bz2
|
||||||
#Source5: shipped-locales
|
Source5: shipped-locales
|
||||||
Source6: suse-default-prefs.js
|
Source6: suse-default-prefs.js
|
||||||
Source7: find-external-requires.sh
|
Source7: find-external-requires.sh
|
||||||
Source8: MozillaThunderbird-rpmlintrc
|
Source8: MozillaThunderbird-rpmlintrc
|
||||||
Source9: enigmail-20090813.tar.bz2
|
Source9: enigmail-20090813.tar.bz2
|
||||||
Source10: create-tar.sh
|
Source10: create-tar.sh
|
||||||
|
Patch1: mozilla-app-launcher.patch
|
||||||
Patch2: thunderbird-appname.patch
|
Patch2: thunderbird-appname.patch
|
||||||
|
Patch3: mozilla-jemalloc_deepbind.patch
|
||||||
Patch4: mozilla-gtkfilepicker-buttonorder.patch
|
Patch4: mozilla-gtkfilepicker-buttonorder.patch
|
||||||
Patch5: tb-develdirs.patch
|
Patch5: tb-develdirs.patch
|
||||||
|
Patch6: mozilla-protocol_handler.patch
|
||||||
Patch7: mozilla-path_len.patch
|
Patch7: mozilla-path_len.patch
|
||||||
Patch9: mozilla-shared-nss-db.patch
|
Patch9: mozilla-shared-nss-db.patch
|
||||||
Patch10: mozilla-system-hunspell.patch.bz2
|
Patch10: mozilla-system-hunspell.patch.bz2
|
||||||
@ -70,7 +73,7 @@ PreReq: coreutils fileutils textutils /bin/sh
|
|||||||
%global __find_provides %provfind
|
%global __find_provides %provfind
|
||||||
Requires: mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr)
|
Requires: mozilla-nspr >= %(rpm -q --queryformat '%{VERSION}' mozilla-nspr)
|
||||||
Requires: mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
|
Requires: mozilla-nss >= %(rpm -q --queryformat '%{VERSION}' mozilla-nss)
|
||||||
%define releasedate 2009091500
|
%define releasedate 2009071500
|
||||||
%define progname thunderbird
|
%define progname thunderbird
|
||||||
%define progdir %{_prefix}/%_lib/thunderbird
|
%define progdir %{_prefix}/%_lib/thunderbird
|
||||||
%define libgssapi libgssapi_krb5.so.2
|
%define libgssapi libgssapi_krb5.so.2
|
||||||
@ -163,7 +166,10 @@ popd
|
|||||||
%endif
|
%endif
|
||||||
# xulrunner patches
|
# xulrunner patches
|
||||||
pushd mozilla
|
pushd mozilla
|
||||||
|
%patch1 -p1
|
||||||
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
|
%patch6 -p1
|
||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
%patch9 -p1
|
%patch9 -p1
|
||||||
pushd extensions
|
pushd extensions
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
RELEASE_TAG="THUNDERBIRD_3_0b4_RELEASE"
|
RELEASE_TAG="THUNDERBIRD_3_0b3_RELEASE"
|
||||||
VERSION="3.0b4"
|
VERSION="3.0b3"
|
||||||
|
|
||||||
echo "cloning comm-central..."
|
# mozilla
|
||||||
hg clone http://hg.mozilla.org/comm-central thunderbird
|
hg clone http://hg.mozilla.org/comm-central thunderbird
|
||||||
pushd thunderbird
|
pushd thunderbird
|
||||||
#hg update -r $RELEASE_TAG
|
hg update -r $RELEASE_TAG
|
||||||
echo "running client.py..."
|
python client.py checkout --skip-chatzilla --skip-venkman
|
||||||
python client.py checkout --skip-chatzilla --skip-venkman --comm-rev=$RELEASE_TAG --mozilla-rev=$RELEASE_TAG
|
|
||||||
popd
|
popd
|
||||||
echo "creating archivei..."
|
|
||||||
tar cjf thunderbird-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird
|
tar cjf thunderbird-$VERSION-source.tar.bz2 --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS thunderbird
|
||||||
|
|
||||||
# l10n
|
# l10n
|
||||||
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
|
# http://l10n.mozilla.org/dashboard/?tree=tb30x -> shipped-locales
|
||||||
echo "fetching locales..."
|
|
||||||
if [ -e shipped-locales ]; then
|
if [ -e shipped-locales ]; then
|
||||||
SHIPPED_LOCALES=shipped-locales
|
SHIPPED_LOCALES=shipped-locales
|
||||||
else
|
else
|
||||||
@ -27,13 +24,11 @@ for locale in $(awk '{ print $1; }' $SHIPPED_LOCALES); do
|
|||||||
ja-JP-mac|en-US)
|
ja-JP-mac|en-US)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "fetching $locale ..."
|
|
||||||
hg clone http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/$locale l10n/$locale
|
hg clone http://hg.mozilla.org/releases/l10n-mozilla-1.9.1/$locale l10n/$locale
|
||||||
hg -R l10n/$locale up -C -r $RELEASE_TAG
|
hg -R l10n/$locale up -C -r $RELEASE_TAG
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
echo "creating l10n archive..."
|
|
||||||
tar cjf l10n-$VERSION.tar.bz2 \
|
tar cjf l10n-$VERSION.tar.bz2 \
|
||||||
--exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser --exclude=calendar \
|
--exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=browser --exclude=calendar \
|
||||||
--exclude=suite \
|
--exclude=suite \
|
||||||
|
3
l10n-3.0b3.tar.bz2
Normal file
3
l10n-3.0b3.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1dcd305aea953c69c5f1765653796507e02195e90099f03acd6ec0b97f34dcdd
|
||||||
|
size 15431608
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ae866c27789391b89a4e483ead93d3f9899497680c424c5251ee7c43352cbf32
|
|
||||||
size 15400735
|
|
70
mozilla-app-launcher.patch
Normal file
70
mozilla-app-launcher.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From: mozilla-central
|
||||||
|
Subject: make it possible to define MOZILLA_APP_LAUNCHER to control which
|
||||||
|
app should be used for session management
|
||||||
|
References:
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=453689
|
||||||
|
|
||||||
|
|
||||||
|
--- mozilla-1.9.1/toolkit/xre/nsNativeAppSupportUnix.cpp 2009-04-27 09:23:29.000000000 +0200
|
||||||
|
+++ mozilla-central/toolkit/xre/nsNativeAppSupportUnix.cpp 2009-07-07 12:55:10.000000000 +0200
|
||||||
|
@@ -155,31 +155,37 @@ gboolean save_yourself_cb(GnomeClient *c
|
||||||
|
interact_cb, nsnull);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- // Tell GNOME the command for restarting us so that we can be part of XSMP session restore
|
||||||
|
- NS_ASSERTION(gDirServiceProvider, "gDirServiceProvider is NULL! This shouldn't happen!");
|
||||||
|
- nsCOMPtr<nsIFile> executablePath;
|
||||||
|
- nsresult rv;
|
||||||
|
-
|
||||||
|
- PRBool dummy;
|
||||||
|
- rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath));
|
||||||
|
-
|
||||||
|
- if (NS_SUCCEEDED(rv)) {
|
||||||
|
- nsCAutoString path;
|
||||||
|
- char* argv[1];
|
||||||
|
-
|
||||||
|
- // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does
|
||||||
|
- nsCAutoString leafName;
|
||||||
|
- rv = executablePath->GetNativeLeafName(leafName);
|
||||||
|
- if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) {
|
||||||
|
- leafName.SetLength(leafName.Length() - strlen("-bin"));
|
||||||
|
- executablePath->SetNativeLeafName(leafName);
|
||||||
|
+
|
||||||
|
+ // Is there a request to suppress default binary launcher?
|
||||||
|
+ char* argv1 = getenv("MOZ_APP_LAUNCHER");
|
||||||
|
+
|
||||||
|
+ if(!argv1) {
|
||||||
|
+ // Tell GNOME the command for restarting us so that we can be part of XSMP session restore
|
||||||
|
+ NS_ASSERTION(gDirServiceProvider, "gDirServiceProvider is NULL! This shouldn't happen!");
|
||||||
|
+ nsCOMPtr<nsIFile> executablePath;
|
||||||
|
+ nsresult rv;
|
||||||
|
+
|
||||||
|
+ PRBool dummy;
|
||||||
|
+ rv = gDirServiceProvider->GetFile(XRE_EXECUTABLE_FILE, &dummy, getter_AddRefs(executablePath));
|
||||||
|
+
|
||||||
|
+ if (NS_SUCCEEDED(rv)) {
|
||||||
|
+ nsCAutoString path;
|
||||||
|
+
|
||||||
|
+ // Strip off the -bin suffix to get the shell script we should run; this is what Breakpad does
|
||||||
|
+ nsCAutoString leafName;
|
||||||
|
+ rv = executablePath->GetNativeLeafName(leafName);
|
||||||
|
+ if (NS_SUCCEEDED(rv) && StringEndsWith(leafName, NS_LITERAL_CSTRING("-bin"))) {
|
||||||
|
+ leafName.SetLength(leafName.Length() - strlen("-bin"));
|
||||||
|
+ executablePath->SetNativeLeafName(leafName);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ executablePath->GetNativePath(path);
|
||||||
|
+ argv1 = (char*)(path.get());
|
||||||
|
}
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- executablePath->GetNativePath(path);
|
||||||
|
- argv[0] = (char*)(path.get());
|
||||||
|
-
|
||||||
|
- gnome_client_set_restart_command(client, 1, argv);
|
||||||
|
+ if(argv1) {
|
||||||
|
+ gnome_client_set_restart_command(client, 1, &argv1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
@ -1,118 +0,0 @@
|
|||||||
From: Wolfgang Rosenauer <wr@rosenauer.org>
|
|
||||||
Subject: no helper app for application/octet-stream but recognized extensions
|
|
||||||
References:
|
|
||||||
https://bugzilla.novell.com/show_bug.cgi?id=406979
|
|
||||||
https://bugzilla.mozilla.org/show_bug.cgi?id=327323
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
|
|
||||||
--- a/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
|
|
||||||
+++ b/uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
|
|
||||||
@@ -41,16 +41,17 @@
|
|
||||||
#include <glib.h>
|
|
||||||
#include <hildon-uri.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#include "nsMIMEInfoUnix.h"
|
|
||||||
#include "nsGNOMERegistry.h"
|
|
||||||
#include "nsIGnomeVFSService.h"
|
|
||||||
+#include "nsAutoPtr.h"
|
|
||||||
#ifdef MOZ_ENABLE_DBUS
|
|
||||||
#include "nsDBusHandlerApp.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsMIMEInfoUnix::LoadUriInternal(nsIURI * aURI)
|
|
||||||
{
|
|
||||||
@@ -69,23 +70,26 @@ nsMIMEInfoUnix::LoadUriInternal(nsIURI *
|
|
||||||
#endif
|
|
||||||
return rv;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsMIMEInfoUnix::GetHasDefaultHandler(PRBool *_retval)
|
|
||||||
{
|
|
||||||
*_retval = PR_FALSE;
|
|
||||||
- nsCOMPtr<nsIGnomeVFSService> vfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
|
|
||||||
- if (vfs) {
|
|
||||||
- nsCOMPtr<nsIGnomeVFSMimeApp> app;
|
|
||||||
- if (NS_SUCCEEDED(vfs->GetAppForMimeType(mType, getter_AddRefs(app))) && app)
|
|
||||||
- *_retval = PR_TRUE;
|
|
||||||
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromType(mType);
|
|
||||||
+ if (!mimeInfo) {
|
|
||||||
+ nsCAutoString ext;
|
|
||||||
+ GetPrimaryExtension(ext);
|
|
||||||
+ mimeInfo = nsGNOMERegistry::GetFromExtension(ext);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (mimeInfo)
|
|
||||||
+ *_retval = PR_TRUE;
|
|
||||||
+
|
|
||||||
if (*_retval)
|
|
||||||
return NS_OK;
|
|
||||||
|
|
||||||
#ifdef MOZ_PLATFORM_HILDON
|
|
||||||
HildonURIAction *action = hildon_uri_get_default_action(mType.get(), nsnull);
|
|
||||||
if (action) {
|
|
||||||
*_retval = PR_TRUE;
|
|
||||||
hildon_uri_action_unref(action);
|
|
||||||
@@ -104,16 +108,26 @@ nsMIMEInfoUnix::LaunchDefaultWithFile(ns
|
|
||||||
aFile->GetNativePath(nativePath);
|
|
||||||
|
|
||||||
nsCOMPtr<nsIGnomeVFSService> vfs = do_GetService(NS_GNOMEVFSSERVICE_CONTRACTID);
|
|
||||||
|
|
||||||
if (vfs) {
|
|
||||||
nsCOMPtr<nsIGnomeVFSMimeApp> app;
|
|
||||||
if (NS_SUCCEEDED(vfs->GetAppForMimeType(mType, getter_AddRefs(app))) && app)
|
|
||||||
return app->Launch(nativePath);
|
|
||||||
+
|
|
||||||
+ // If we haven't got an app we try to get a valid one by searching for the
|
|
||||||
+ // extension mapped type
|
|
||||||
+ nsRefPtr<nsMIMEInfoBase> mimeInfo = nsGNOMERegistry::GetFromExtension(nativePath);
|
|
||||||
+ if (mimeInfo) {
|
|
||||||
+ nsCAutoString type;
|
|
||||||
+ mimeInfo->GetType(type);
|
|
||||||
+ if (NS_SUCCEEDED(vfs->GetAppForMimeType(type, getter_AddRefs(app))) && app)
|
|
||||||
+ return app->Launch(nativePath);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mDefaultApplication)
|
|
||||||
return NS_ERROR_FILE_NOT_FOUND;
|
|
||||||
|
|
||||||
return LaunchWithIProcess(mDefaultApplication, nativePath);
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
|
|
||||||
--- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp
|
|
||||||
+++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
|
|
||||||
@@ -1641,18 +1641,26 @@ nsOSHelperAppService::GetMIMEInfoFromOS(
|
|
||||||
NS_ADDREF(retval);
|
|
||||||
if (!aFileExt.IsEmpty())
|
|
||||||
retval->AppendExtension(aFileExt);
|
|
||||||
}
|
|
||||||
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
- // Copy the attributes of retval onto miByExt, to return it
|
|
||||||
+ // Copy the attributes of retval onto miByExt, to return it but keep
|
|
||||||
+ // just collected mDefaultAppDescription
|
|
||||||
+ nsAutoString byExtDefault;
|
|
||||||
+ miByExt->GetDefaultDescription(byExtDefault);
|
|
||||||
+ retval->SetDefaultDescription(byExtDefault);
|
|
||||||
retval->CopyBasicDataTo(miByExt);
|
|
||||||
+ // But set the extensions primary since CopyBasicDataTo overwrites the
|
|
||||||
+ // list
|
|
||||||
+ if (!aFileExt.IsEmpty())
|
|
||||||
+ miByExt->SetPrimaryExtension(aFileExt);
|
|
||||||
|
|
||||||
miByExt.swap(retval);
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsOSHelperAppService::GetProtocolHandlerInfoFromOS(const nsACString &aScheme,
|
|
47
mozilla-jemalloc_deepbind.patch
Normal file
47
mozilla-jemalloc_deepbind.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From: Karl Tomlinson <mozbugz@karlt.net>
|
||||||
|
Subject: jemalloc integration cause crashes when libraries or plugins dlopen with RTLD_DEEPBIND
|
||||||
|
References:
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=493541
|
||||||
|
https://bugzilla.novell.com/show_bug.cgi?id=503151
|
||||||
|
|
||||||
|
diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c
|
||||||
|
--- a/memory/jemalloc/jemalloc.c
|
||||||
|
+++ b/memory/jemalloc/jemalloc.c
|
||||||
|
@@ -7225,8 +7225,37 @@ jemalloc_darwin_init(void)
|
||||||
|
* default zone.
|
||||||
|
*/
|
||||||
|
assert(malloc_num_zones > 1);
|
||||||
|
memmove(&malloc_zones[1], &malloc_zones[0],
|
||||||
|
sizeof(malloc_zone_t *) * (malloc_num_zones - 1));
|
||||||
|
malloc_zones[0] = &zone;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_LIBDL
|
||||||
|
+# include <dlfcn.h>
|
||||||
|
+/*
|
||||||
|
+ * glibc provides the RTLD_DEEPBIND flag for dlopen which can make it possible
|
||||||
|
+ * to inconsistently reference libc's malloc(3)-compatible functions
|
||||||
|
+ * (bug 493541).
|
||||||
|
+ *
|
||||||
|
+ * XXX On systems that support RTLD_GROUP or DF_1_GROUP, do their
|
||||||
|
+ * implementations permit similar inconsistencies? Should STV_SINGLETON
|
||||||
|
+ * visibility be used for interposition where available?
|
||||||
|
+ */
|
||||||
|
+# ifdef RTLD_DEEPBIND
|
||||||
|
+# if defined(__GLIBC__) && !defined(__UCLIBC__)
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * These interpose hooks in glibc. They are actually passed an extra
|
||||||
|
+ * argument for the caller return address, which will be ignored.
|
||||||
|
+ */
|
||||||
|
+void (*__free_hook)(void *ptr) = free;
|
||||||
|
+void *(*__malloc_hook)(size_t size) = malloc;
|
||||||
|
+void *(*__realloc_hook)(void *ptr, size_t size) = realloc;
|
||||||
|
+void *(*__memalign_hook)(size_t alignment, size_t size) = memalign;
|
||||||
|
+
|
||||||
|
+# elif !defined(malloc)
|
||||||
|
+# error "Interposing malloc is unsafe on this system without libc malloc hooks."
|
||||||
|
+# endif
|
||||||
|
+# endif
|
||||||
|
+#endif
|
124
mozilla-protocol_handler.patch
Normal file
124
mozilla-protocol_handler.patch
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
From: Wolfgang Rosenauer <wr@rosenauer.org>
|
||||||
|
Subject: Remove obsolete code which only confuses UI behaviour
|
||||||
|
References:
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=389732
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=480709
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
|
||||||
|
--- a/uriloader/exthandler/unix/nsOSHelperAppService.cpp
|
||||||
|
+++ b/uriloader/exthandler/unix/nsOSHelperAppService.cpp
|
||||||
|
@@ -1199,97 +1199,28 @@ nsOSHelperAppService::GetHandlerAndDescr
|
||||||
|
rv = mailcap->ReadLine(cBuffer, &more);
|
||||||
|
} while (NS_SUCCEEDED(rv));
|
||||||
|
mailcapFile->Close();
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
-/* Looks up the handler for a specific scheme from prefs and returns the
|
||||||
|
- * file representing it in aApp. Note: This function doesn't guarantee the
|
||||||
|
- * existance of *aApp.
|
||||||
|
- */
|
||||||
|
-nsresult
|
||||||
|
-nsOSHelperAppService::GetHandlerAppFromPrefs(const char* aScheme, /*out*/ nsIFile** aApp)
|
||||||
|
-{
|
||||||
|
- nsresult rv;
|
||||||
|
- nsCOMPtr<nsIPrefService> srv(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
|
||||||
|
- if (NS_FAILED(rv)) // we have no pref service... that's bad
|
||||||
|
- return rv;
|
||||||
|
-
|
||||||
|
- nsCOMPtr<nsIPrefBranch> branch;
|
||||||
|
- srv->GetBranch("network.protocol-handler.app.", getter_AddRefs(branch));
|
||||||
|
- if (!branch) // No protocol handlers set up -> can't load url
|
||||||
|
- return NS_ERROR_NOT_AVAILABLE;
|
||||||
|
-
|
||||||
|
- nsXPIDLCString appPath;
|
||||||
|
- rv = branch->GetCharPref(aScheme, getter_Copies(appPath));
|
||||||
|
- if (NS_FAILED(rv))
|
||||||
|
- return rv;
|
||||||
|
-
|
||||||
|
- LOG((" found app %s\n", appPath.get()));
|
||||||
|
-
|
||||||
|
- // First, try to treat |appPath| as absolute path, if it starts with '/'
|
||||||
|
- NS_ConvertUTF8toUTF16 utf16AppPath(appPath);
|
||||||
|
- if (appPath.First() == '/') {
|
||||||
|
- nsILocalFile* file;
|
||||||
|
- rv = NS_NewLocalFile(utf16AppPath, PR_TRUE, &file);
|
||||||
|
- *aApp = file;
|
||||||
|
- // If this worked, we are finished
|
||||||
|
- if (NS_SUCCEEDED(rv))
|
||||||
|
- return NS_OK;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // Second, check for a file in the mozilla app directory
|
||||||
|
- rv = NS_GetSpecialDirectory(NS_OS_CURRENT_PROCESS_DIR, aApp);
|
||||||
|
- if (NS_SUCCEEDED(rv)) {
|
||||||
|
- rv = (*aApp)->Append(utf16AppPath);
|
||||||
|
- if (NS_SUCCEEDED(rv)) {
|
||||||
|
- PRBool exists = PR_FALSE;
|
||||||
|
- rv = (*aApp)->Exists(&exists);
|
||||||
|
- if (NS_SUCCEEDED(rv) && exists)
|
||||||
|
- return NS_OK;
|
||||||
|
- }
|
||||||
|
- NS_RELEASE(*aApp);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // Thirdly, search the path
|
||||||
|
- return GetFileTokenForPath(utf16AppPath.get(), aApp);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
nsresult nsOSHelperAppService::OSProtocolHandlerExists(const char * aProtocolScheme, PRBool * aHandlerExists)
|
||||||
|
{
|
||||||
|
LOG(("-- nsOSHelperAppService::OSProtocolHandlerExists for '%s'\n",
|
||||||
|
aProtocolScheme));
|
||||||
|
*aHandlerExists = PR_FALSE;
|
||||||
|
|
||||||
|
- nsCOMPtr<nsIFile> app;
|
||||||
|
- nsresult rv = GetHandlerAppFromPrefs(aProtocolScheme, getter_AddRefs(app));
|
||||||
|
- if (NS_SUCCEEDED(rv)) {
|
||||||
|
- PRBool isExecutable = PR_FALSE, exists = PR_FALSE;
|
||||||
|
- nsresult rv1 = app->Exists(&exists);
|
||||||
|
- nsresult rv2 = app->IsExecutable(&isExecutable);
|
||||||
|
- *aHandlerExists = (NS_SUCCEEDED(rv1) && exists && NS_SUCCEEDED(rv2) && isExecutable);
|
||||||
|
- LOG((" handler exists: %s\n", *aHandlerExists ? "yes" : "no"));
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
#ifdef MOZ_WIDGET_GTK2
|
||||||
|
// Check the GConf registry for a protocol handler
|
||||||
|
- if (!*aHandlerExists)
|
||||||
|
- *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
|
||||||
|
+ *aHandlerExists = nsGNOMERegistry::HandlerExists(aProtocolScheme);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP nsOSHelperAppService::GetApplicationDescription(const nsACString& aScheme, nsAString& _retval)
|
||||||
|
{
|
||||||
|
- nsCOMPtr<nsIFile> appFile;
|
||||||
|
- nsresult rv = GetHandlerAppFromPrefs(PromiseFlatCString(aScheme).get(),
|
||||||
|
- getter_AddRefs(appFile));
|
||||||
|
- if (NS_SUCCEEDED(rv))
|
||||||
|
- return appFile->GetLeafName(_retval);
|
||||||
|
-
|
||||||
|
#ifdef MOZ_WIDGET_GTK2
|
||||||
|
nsGNOMERegistry::GetAppDescForScheme(aScheme, _retval);
|
||||||
|
return _retval.IsEmpty() ? NS_ERROR_NOT_AVAILABLE : NS_OK;
|
||||||
|
#else
|
||||||
|
return NS_ERROR_NOT_AVAILABLE;
|
||||||
|
#endif
|
||||||
|
diff --git a/uriloader/exthandler/unix/nsOSHelperAppService.h b/uriloader/exthandler/unix/nsOSHelperAppService.h
|
||||||
|
--- a/uriloader/exthandler/unix/nsOSHelperAppService.h
|
||||||
|
+++ b/uriloader/exthandler/unix/nsOSHelperAppService.h
|
||||||
|
@@ -159,11 +159,9 @@ private:
|
||||||
|
const nsAString& aMajorType,
|
||||||
|
const nsAString& aMinorType,
|
||||||
|
nsHashtable& aTypeOptions,
|
||||||
|
nsAString& aHandler,
|
||||||
|
nsAString& aDescription,
|
||||||
|
nsAString& aMozillaFlags);
|
||||||
|
-
|
||||||
|
- nsresult GetHandlerAppFromPrefs(const char* aScheme, nsIFile** aApp);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // nsOSHelperAppService_h__
|
45
shipped-locales
Normal file
45
shipped-locales
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
af
|
||||||
|
ar
|
||||||
|
be
|
||||||
|
bn-BD
|
||||||
|
ca
|
||||||
|
cs
|
||||||
|
de
|
||||||
|
el
|
||||||
|
en-GB
|
||||||
|
en-US
|
||||||
|
es-AR
|
||||||
|
es-ES
|
||||||
|
et
|
||||||
|
eu
|
||||||
|
fi
|
||||||
|
fr
|
||||||
|
fy-NL
|
||||||
|
ga-IE
|
||||||
|
gl
|
||||||
|
hu
|
||||||
|
id
|
||||||
|
is
|
||||||
|
it
|
||||||
|
ja linux win32
|
||||||
|
ja-JP-mac osx
|
||||||
|
ko
|
||||||
|
lt
|
||||||
|
nb-NO
|
||||||
|
nl
|
||||||
|
nn-NO
|
||||||
|
pa-IN
|
||||||
|
pl
|
||||||
|
pt-BR
|
||||||
|
pt-PT
|
||||||
|
ro
|
||||||
|
ru
|
||||||
|
si
|
||||||
|
sk
|
||||||
|
sq
|
||||||
|
sv-SE
|
||||||
|
ta-LK
|
||||||
|
tr
|
||||||
|
uk
|
||||||
|
vi
|
||||||
|
zh-CN
|
3
thunderbird-3.0b3-source.tar.bz2
Normal file
3
thunderbird-3.0b3-source.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e482994f70fb39566057cb8de5d0a1cc351ad6284e11f3babd386114cda2cb98
|
||||||
|
size 58020044
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:33d28a2847e1b5673c50f8bf63ccf123c96b39dfcbd442dd9966edd952f99f6e
|
|
||||||
size 59231572
|
|
Loading…
Reference in New Issue
Block a user