rpms/seamonkey/devel find-external-requires, NONE, 1.1 firefox-0.7.3-default-plugin-less-annoying.patch, NONE, 1.1 firefox-0.7.3-psfonts.patch, NONE, 1.1 firefox-1.0-prdtoa.patch, NONE, 1.1 firefox-1.1-nss-system-nspr.patch, NONE, 1.1 firefox-1.1-uriloader.patch, NONE, 1.1 firefox-1.5-with-system-nss.patch, NONE, 1.1 firefox-1.5.0.1-dumpstack.patch, NONE, 1.1 mozilla-1.4.1-ppc64.patch, NONE, 1.1 mozilla-1.7.3-gnome-vfs-default-app.patch, NONE, 1.1 mozilla-1.7.5-g-application-name.patch, NONE, 1.1 mozilla-nspr-packages.patch, NONE, 1.1 mozilla-psm-exclude-list, NONE, 1.1 mozilla-xpcom-exclude-list, NONE, 1.1 pango-cairo.patch, NONE, 1.1 seamonkey-cairo-bug5136.patch, NONE, 1.1 seamonkey-configure.patch, NONE, 1.1 seamonkey-disable-visibility.patch, NONE, 1.1 seamonkey-fedora-default-bookmarks.html, NONE, 1.1 seamonkey-fedora-default-prefs.js, NONE, 1.1 seamonkey-fedora-home-page.patch, NONE, 1.1 seamonkey-icon.png, NONE, 1.1 seamonkey-mail-icon.png, NONE, 1.1 seamonkey-mail.desktop, NONE, 1.1 seamonkey-make-package.pl, NONE, 1.1 seamonkey-mozconfig, NONE, 1.1 seamonkey.desktop, NONE, 1.1 seamonkey.sh.in, NONE, 1.1 seamonkey.spec, NONE, 1.1 thunderbird-0.7.3-gnome-uriloader.patch, NONE, 1.1 thunderbird-1.5-bug304720.patch, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
Kai Engert (kengert)
fedora-extras-commits at redhat.com
Mon Apr 10 21:58:25 UTC 2006
Author: kengert
Update of /cvs/extras/rpms/seamonkey/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv28333/devel
Modified Files:
.cvsignore sources
Added Files:
find-external-requires
firefox-0.7.3-default-plugin-less-annoying.patch
firefox-0.7.3-psfonts.patch firefox-1.0-prdtoa.patch
firefox-1.1-nss-system-nspr.patch firefox-1.1-uriloader.patch
firefox-1.5-with-system-nss.patch
firefox-1.5.0.1-dumpstack.patch mozilla-1.4.1-ppc64.patch
mozilla-1.7.3-gnome-vfs-default-app.patch
mozilla-1.7.5-g-application-name.patch
mozilla-nspr-packages.patch mozilla-psm-exclude-list
mozilla-xpcom-exclude-list pango-cairo.patch
seamonkey-cairo-bug5136.patch seamonkey-configure.patch
seamonkey-disable-visibility.patch
seamonkey-fedora-default-bookmarks.html
seamonkey-fedora-default-prefs.js
seamonkey-fedora-home-page.patch seamonkey-icon.png
seamonkey-mail-icon.png seamonkey-mail.desktop
seamonkey-make-package.pl seamonkey-mozconfig
seamonkey.desktop seamonkey.sh.in seamonkey.spec
thunderbird-0.7.3-gnome-uriloader.patch
thunderbird-1.5-bug304720.patch
Log Message:
auto-import seamonkey-1.0-9 on branch devel from seamonkey-1.0-9.src.rpm
--- NEW FILE find-external-requires ---
#!/bin/sh
# Finds requirements provided outside of the current file set
filelist=`sed "s/[]['\"*?{}]/\\\\\&/g"`
provides=`echo $filelist | /usr/lib/rpm/find-provides`
{
for f in $filelist ; do
echo $f | /usr/lib/rpm/find-requires | while read req ; do
found=0
for p in $provides ; do
if [ "$req" = "$p" ]; then
found=1
fi
done
if [ "$found" = "0" ]; then
echo $req
fi
done
done
} | sort -u
firefox-0.7.3-default-plugin-less-annoying.patch:
--- NEW FILE firefox-0.7.3-default-plugin-less-annoying.patch ---
--- mozilla/modules/plugin/samples/default/unix/npshell.c.foo Tue May 7 14:18:45 2002
+++ mozilla/modules/plugin/samples/default/unix/npshell.c Tue May 7 14:49:55 2002
@@ -224,7 +224,7 @@
This->depth = ws_info->depth;
This->colormap = ws_info->colormap;
makePixmap(This);
- makeWidget(This);
+ /* makeWidget(This); */
}
return NPERR_NO_ERROR;
}
--- mozilla/modules/plugin/samples/default/unix/nullplugin.c.foo Tue May 7 14:18:45 2002
+++ mozilla/modules/plugin/samples/default/unix/nullplugin.c Tue May 7 14:48:33 2002
@@ -70,6 +70,8 @@
gtk_object_remove_data(GTK_OBJECT(button), DIALOGID);
+#if 0
+
if (This->pluginsFileUrl != NULL)
{
/* Get the JavaScript command string */
@@ -110,6 +112,7 @@
NPN_MemFree(url);
}
}
+#endif
destroyWidget(This);
}
@@ -265,14 +268,14 @@
GTK_DIALOG(dialogWindow)->action_area);
gtk_object_set_data(GTK_OBJECT(okButton), DIALOGID, dialogWindow);
- cancelButton= AddWidget(gtk_button_new_with_label (CANCEL_BUTTON),
- GTK_DIALOG(dialogWindow)->action_area);
+ /* cancelButton= AddWidget(gtk_button_new_with_label (CANCEL_BUTTON),
+ GTK_DIALOG(dialogWindow)->action_area); */
gtk_signal_connect (GTK_OBJECT(okButton), "clicked",
GTK_SIGNAL_FUNC(DialogOKClicked), This);
- gtk_signal_connect (GTK_OBJECT(cancelButton), "clicked",
- GTK_SIGNAL_FUNC(DialogCancelClicked), This);
+ /* gtk_signal_connect (GTK_OBJECT(cancelButton), "clicked",
+ GTK_SIGNAL_FUNC(DialogCancelClicked), This); */
/* hookup to when the dialog is destroyed */
gtk_signal_connect(GTK_OBJECT(dialogWindow), "destroy",
--- mozilla/modules/plugin/samples/default/unix/nullplugin.h.foo Tue May 7 14:46:48 2002
+++ mozilla/modules/plugin/samples/default/unix/nullplugin.h Tue May 7 14:47:08 2002
@@ -53,9 +53,7 @@
#define JVM_MINETYPE "application/x-java-vm"
#define MESSAGE "\
This page contains information of a type (%s) that can\n\
-only be viewed with the appropriate Plug-in.\n\
-\n\
-Click OK to download Plugin."
+only be viewed with the appropriate Plug-in."
#define GET 1
#define REFRESH 2
firefox-0.7.3-psfonts.patch:
--- NEW FILE firefox-0.7.3-psfonts.patch ---
--- mozilla/modules/libpref/src/init/all.js.foo 2004-06-18 13:16:32.000000000 -0400
+++ mozilla/modules/libpref/src/init/all.js 2004-06-18 13:17:28.000000000 -0400
@@ -1776,8 +1776,10 @@
pref("print.postscript.nativefont.ar", "");
pref("print.postscript.nativefont.el", "");
pref("print.postscript.nativefont.he", "");
-pref("print.postscript.nativefont.ja", "");
-pref("print.postscript.nativefont.ko", "");
+pref("print.postscript.nativecode.ja", "euc-jp");
+pref("print.postscript.nativefont.ja", "Ryumin-Light-EUC-H");
+pref("print.postscript.nativecode.ko", "euc-kr");
+pref("print.postscript.nativefont.ko", "Baekmuk-Gulim-KSC-EUC-H");
pref("print.postscript.nativefont.th", "");
pref("print.postscript.nativefont.tr", "");
pref("print.postscript.nativefont.x-baltic", "");
@@ -1786,8 +1788,10 @@
pref("print.postscript.nativefont.x-unicode", "");
pref("print.postscript.nativefont.x-user-def", "");
pref("print.postscript.nativefont.x-western", "");
-pref("print.postscript.nativefont.zh-CN", "");
-pref("print.postscript.nativefont.zh-TW", "");
+pref("print.postscript.nativecode.zh-CN", "gb18030");
+pref("print.postscript.nativefont.zh-CN", "MSungGBK-Light-GBK2K-H");
+pref("print.postscript.nativecode.zh-TW", "big5");
+pref("print.postscript.nativefont.zh-TW", "ShanHeiSun-Light-B5-H");
pref("print.postscript.nativefont.zh-HK", "");
# XP_UNIX
firefox-1.0-prdtoa.patch:
--- NEW FILE firefox-1.0-prdtoa.patch ---
Index: nsprpub/pr/src/misc/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/nsprpub/pr/src/misc/Makefile.in,v
retrieving revision 1.15.2.2
diff -u -r1.15.2.2 Makefile.in
--- nsprpub/pr/src/misc/Makefile.in 6 Jun 2003 03:09:17 -0000 1.15.2.2
+++ nsprpub/pr/src/misc/Makefile.in 19 Nov 2004 00:58:35 -0000
@@ -82,6 +82,15 @@
include $(topsrcdir)/config/rules.mk
+ifneq (,$(filter Linuxs390 Linuxs390x,$(OS_ARCH)$(OS_TEST)))
+
+NONOPT_CFLAGS=$(filter-out -O%, $(CFLAGS))
+
+$(OBJDIR)/prdtoa.$(OBJ_SUFFIX): prdtoa.c
+ @$(MAKE_OBJDIR)
+ $(CC) -o $@ -c $(NONOPT_CFLAGS) -ffloat-store $<
+endif
+
# Prevent floating point errors caused by MSVC 6.0 Processor Pack
# optimizations (bug 207421). This disables optimizations that
# could change the precision of floating-point calculations for
firefox-1.1-nss-system-nspr.patch:
--- NEW FILE firefox-1.1-nss-system-nspr.patch ---
Index: mozilla/security/coreconf/location.mk
===================================================================
RCS file: /cvsroot/mozilla/security/coreconf/location.mk,v
retrieving revision 1.9
diff -u -r1.9 location.mk
--- mozilla/security/coreconf/location.mk 25 Apr 2004 15:02:17 -0000 1.9
+++ mozilla/security/coreconf/location.mk 11 Apr 2005 20:21:57 -0000
@@ -61,6 +61,8 @@
DIST = $(SOURCE_PREFIX)/$(PLATFORM)
+NSPR_LIBDIR = $(DIST)/lib
+
ifdef BUILD_DEBUG_GC
DEFINES += -DDEBUG_GC
endif
Index: mozilla/security/manager/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v
retrieving revision 1.56
diff -u -r1.56 Makefile.in
--- mozilla/security/manager/Makefile.in 14 Mar 2005 10:00:58 -0000 1.56
+++ mozilla/security/manager/Makefile.in 11 Apr 2005 20:21:57 -0000
@@ -76,12 +76,23 @@
endif
endif
+ABS_DIST := $(shell cd $(DIST) && pwd)
+ifeq ($(OS_ARCH),WINNT)
+ABS_DIST := $(shell cygpath -w $(ABS_DIST) | sed -e 's|\\\\|/|g')
+endif
+NSPR_LIBDIR = $(firstword $(filter -L%,$(NSPR_LIBS)))
+ifneq (,$(strip $(NSPR_LIBDIR)))
+NSPR_LIBDIR := $(subst -L,,$(subst -L$(DIST),-L$(ABS_DIST),$(NSPR_LIBDIR)))
+else
+NSPR_LIBDIR = $(ABS_DIST)/lib
+endif
# NSS makefiles are not safe for parallel execution.
DEFAULT_GMAKE_FLAGS = MAKE="$(MAKE) -j1" -j1
DEFAULT_GMAKE_FLAGS += CC="$(CC)"
-DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="-I$(MOZ_BUILD_ROOT)/dist/include/nspr -I$(MOZ_BUILD_ROOT)/dist/include/dbm"
-DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(MOZ_BUILD_ROOT)/dist
-DEFAULT_GMAKE_FLAGS += DIST=$(MOZ_BUILD_ROOT)/dist
+DEFAULT_GMAKE_FLAGS += MOZILLA_INCLUDES="$(subst -I$(DIST),-I$(ABS_DIST),$(NSPR_CFLAGS) -I$(DIST)/include/dbm)"
+DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
+DEFAULT_GMAKE_FLAGS += NSPR_LIBDIR=$(NSPR_LIBDIR)
DEFAULT_GMAKE_FLAGS += MOZILLA_CLIENT=1
DEFAULT_GMAKE_FLAGS += NO_MDUPDATE=1
ABS_topsrcdir := $(shell cd $(topsrcdir); pwd)
Index: mozilla/security/nss/lib/ckfw/builtins/Makefile
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/ckfw/builtins/Makefile,v
retrieving revision 1.14
diff -u -r1.14 Makefile
--- mozilla/security/nss/lib/ckfw/builtins/Makefile 20 Jan 2005 02:25:46 -0000 1.14
+++ mozilla/security/nss/lib/ckfw/builtins/Makefile 11 Apr 2005 20:21:57 -0000
@@ -53,23 +53,23 @@
# This is merely an expedient hack and not the right solution.
ifdef NS_USE_GCC
EXTRA_LIBS += \
- -L$(DIST)/lib \
+ -L$(NSPR_LIBDIR) \
-lplc4 \
-lplds4 \
-lnspr4 \
$(NULL)
else
EXTRA_LIBS += \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4_s.lib \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plc4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plds4_s.lib \
$(NULL)
endif
else
EXTRA_LIBS += \
- $(DIST)/lib/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
$(NULL)
endif
Index: mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile
===================================================================
RCS file: /cvsroot/mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile,v
retrieving revision 1.18
diff -u -r1.18 Makefile
--- mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile 25 Apr 2004 15:03:08 -0000 1.18
+++ mozilla/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile 11 Apr 2005 20:21:57 -0000
@@ -63,7 +63,7 @@
$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) \
$(CRYPTO_LIB) \
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
- -L$(DIST)/lib \
+ -L$(NSPR_LIBDIR) \
-lplc4 \
-lplds4 \
-lnspr4 \
@@ -76,8 +76,8 @@
$(DIST)/lib/softokn.lib \
$(CRYPTO_LIB) \
$(DIST)/lib/secutil.lib \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plc4_s.lib \
- $(DIST)/lib/$(NSPR31_LIB_PREFIX)plds4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plc4_s.lib \
+ $(NSPR_LIBDIR)/$(NSPR31_LIB_PREFIX)plds4_s.lib \
wsock32.lib \
winmm.lib \
$(NULL)
@@ -98,8 +98,8 @@
$(DIST)/lib/$(LIB_PREFIX)softokn.$(LIB_SUFFIX) \
$(CRYPTO_LIB) \
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plc4.$(LIB_SUFFIX) \
+ $(NSPR_LIBDIR)/$(LIB_PREFIX)plds4.$(LIB_SUFFIX) \
$(NULL)
endif
firefox-1.1-uriloader.patch:
--- NEW FILE firefox-1.1-uriloader.patch ---
Index: uriloader/exthandler/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/uriloader/exthandler/Makefile.in,v
retrieving revision 1.60
diff -d -u -p -r1.60 Makefile.in
--- uriloader/exthandler/Makefile.in 2 May 2005 16:30:03 -0000 1.60
+++ uriloader/exthandler/Makefile.in 21 Jul 2005 03:07:39 -0000
@@ -102,7 +102,7 @@ endif
LOCAL_INCLUDES = -I$(srcdir)
ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
-OSHELPER += nsGNOMERegistry.cpp
+OSHELPER += nsMIMEInfoUnix.cpp nsGNOMERegistry.cpp
endif
ifeq ($(MOZ_WIDGET_TOOLKIT),beos)
Index: uriloader/exthandler/unix/nsGNOMERegistry.cpp
===================================================================
RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp,v
retrieving revision 1.10
diff -d -u -p -r1.10 nsGNOMERegistry.cpp
--- uriloader/exthandler/unix/nsGNOMERegistry.cpp 16 Oct 2004 13:46:17 -0000 1.10
+++ uriloader/exthandler/unix/nsGNOMERegistry.cpp 21 Jul 2005 03:07:40 -0000
@@ -42,7 +42,7 @@
#include "nsString.h"
#include "nsIComponentManager.h"
#include "nsILocalFile.h"
-#include "nsMIMEInfoImpl.h"
+#include "nsMIMEInfoUnix.h"
#include "nsAutoPtr.h"
#include <glib.h>
@@ -56,12 +56,12 @@ typedef struct _GConfClient GConfClient;
typedef struct _GnomeProgram GnomeProgram;
typedef struct _GnomeModuleInfo GnomeModuleInfo;
-typedef struct {
+struct GnomeVFSMimeApplication {
char *id;
char *name;
char *command;
/* there is more here, but we don't need it */
-} GnomeVFSMimeApplication;
+};
typedef GConfClient * (*_gconf_client_get_default_fn)();
typedef gchar * (*_gconf_client_get_string_fn)(GConfClient *,
@@ -264,7 +264,7 @@ nsGNOMERegistry::GetAppDescForScheme(con
}
-/* static */ already_AddRefed<nsMIMEInfoBase>
+/* static */ already_AddRefed<nsMIMEInfoUnix>
nsGNOMERegistry::GetFromExtension(const char *aFileExt)
{
if (!gconfLib)
@@ -286,7 +286,7 @@ nsGNOMERegistry::GetFromExtension(const
return GetFromType(mimeType);
}
-/* static */ already_AddRefed<nsMIMEInfoBase>
+/* static */ already_AddRefed<nsMIMEInfoUnix>
nsGNOMERegistry::GetFromType(const char *aMIMEType)
{
if (!gconfLib)
@@ -296,9 +296,11 @@ nsGNOMERegistry::GetFromType(const char
if (!handlerApp)
return nsnull;
- nsRefPtr<nsMIMEInfoImpl> mimeInfo = new nsMIMEInfoImpl(aMIMEType);
+ nsRefPtr<nsMIMEInfoUnix> mimeInfo = new nsMIMEInfoUnix(aMIMEType);
NS_ENSURE_TRUE(mimeInfo, nsnull);
+ mimeInfo->SetDefaultGnomeVFSMimeApplication(handlerApp);
+
// Get the list of extensions and append then to the mimeInfo.
GList *extensions = _gnome_vfs_mime_get_extensions_list(aMIMEType);
for (GList *extension = extensions; extension; extension = extension->next)
@@ -320,11 +322,21 @@ nsGNOMERegistry::GetFromType(const char
return nsnull;
}
- gchar *commandPath = g_find_program_in_path(nativeCommand);
+ gchar **argv;
+ gboolean res = g_shell_parse_argv(nativeCommand, NULL, &argv, NULL);
+ if (!res) {
+ NS_ERROR("Could not convert helper app command to filesystem encoding");
+ _gnome_vfs_mime_application_free(handlerApp);
+ return nsnull;
+ }
+
+ gchar *commandPath = g_find_program_in_path(argv[0]);
g_free(nativeCommand);
+ g_strfreev(argv);
if (!commandPath) {
+ NS_WARNING("could not find command in path");
_gnome_vfs_mime_application_free(handlerApp);
return nsnull;
}
@@ -342,7 +354,7 @@ nsGNOMERegistry::GetFromType(const char
_gnome_vfs_mime_application_free(handlerApp);
- nsMIMEInfoBase* retval;
+ nsMIMEInfoUnix* retval;
NS_ADDREF((retval = mimeInfo));
return retval;
}
Index: uriloader/exthandler/unix/nsGNOMERegistry.h
===================================================================
RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsGNOMERegistry.h,v
retrieving revision 1.3
diff -d -u -p -r1.3 nsGNOMERegistry.h
--- uriloader/exthandler/unix/nsGNOMERegistry.h 16 Oct 2004 13:46:17 -0000 1.3
+++ uriloader/exthandler/unix/nsGNOMERegistry.h 21 Jul 2005 03:07:40 -0000
@@ -35,10 +35,13 @@
*
* ***** END LICENSE BLOCK ***** */
+#ifndef nsGNOMERegistry_h__
+#define nsGNOMERegistry_h__
+
#include "nsIURI.h"
#include "nsCOMPtr.h"
-class nsMIMEInfoBase;
+class nsMIMEInfoUnix;
class nsGNOMERegistry
{
@@ -52,7 +55,9 @@ class nsGNOMERegistry
static void GetAppDescForScheme(const nsACString& aScheme,
nsAString& aDesc);
- static already_AddRefed<nsMIMEInfoBase> GetFromExtension(const char *aFileExt);
+ static already_AddRefed<nsMIMEInfoUnix> GetFromExtension(const char *aFileExt);
- static already_AddRefed<nsMIMEInfoBase> GetFromType(const char *aMIMEType);
+ static already_AddRefed<nsMIMEInfoUnix> GetFromType(const char *aMIMEType);
};
+
+#endif // nsGNOMERegistry_h__
Index: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
===================================================================
RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ uriloader/exthandler/unix/nsMIMEInfoUnix.cpp 21 Jul 2005 03:07:40 -0000
@@ -0,0 +1,196 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.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
+ * Red Hat, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2005
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Christopher Aillon <caillon at redhat.com> (Original author)
+ *
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nsMIMEInfoUnix.h"
+#include "prlink.h"
+#include "prmem.h"
+#include <glib.h>
+#include <glib-object.h>
+
+static PRLibrary *gnomeLib;
+static PRLibrary *vfsLib;
+
+typedef struct _GnomeProgram GnomeProgram;
+typedef struct _GnomeModuleInfo GnomeModuleInfo;
+
+typedef enum {
+ GNOME_VFS_OK // there's more but we don't care about them.
+} GnomeVFSResult;
+
+typedef GnomeVFSResult (*_gnome_vfs_mime_application_launch_fn)
+ (GnomeVFSMimeApplication *app,
+ GList *uris);
+typedef void (*_gnome_vfs_mime_application_free_fn)(GnomeVFSMimeApplication *);
+typedef GnomeVFSMimeApplication * (*_gnome_vfs_mime_application_copy_fn)(GnomeVFSMimeApplication *);
+typedef GnomeProgram * (*_gnome_program_init_fn)(const char *, const char *,
+ const GnomeModuleInfo *, int,
+ char **, const char *, ...);
+typedef const char * (*_gnome_vfs_mime_application_get_name_fn)(GnomeVFSMimeApplication *);
+typedef const GnomeModuleInfo * (*_libgnome_module_info_get_fn)();
+typedef GnomeProgram * (*_gnome_program_get_fn)();
+typedef char * (*_gnome_vfs_make_uri_from_input_fn)(const char *);
+
+#define DECL_FUNC_PTR(func) static _##func##_fn _##func
+
+DECL_FUNC_PTR(gnome_vfs_mime_application_launch);
+DECL_FUNC_PTR(gnome_vfs_mime_application_free);
+DECL_FUNC_PTR(gnome_vfs_mime_application_copy);
+DECL_FUNC_PTR(gnome_vfs_mime_application_get_name);
+DECL_FUNC_PTR(gnome_program_init);
+DECL_FUNC_PTR(gnome_program_get);
+DECL_FUNC_PTR(libgnome_module_info_get);
+DECL_FUNC_PTR(gnome_vfs_make_uri_from_input);
+
+static PRLibrary *
+LoadVersionedLibrary(const char* libName, const char* libVersion)
+{
+ char *platformLibName = PR_GetLibraryName(nsnull, libName);
+ nsCAutoString versionLibName(platformLibName);
+ versionLibName.Append(libVersion);
+ PR_Free(platformLibName);
+ return PR_LoadLibrary(versionLibName.get());
+}
+
+static void
+Cleanup()
+{
+ // Unload all libraries
+ if (gnomeLib)
+ PR_UnloadLibrary(gnomeLib);
+ if (vfsLib)
+ PR_UnloadLibrary(vfsLib);
+
+ gnomeLib = vfsLib = nsnull;
+}
+
+static void
+InitGnomeVFS()
+{
+ static PRBool initialized = PR_FALSE;
+
+ if (initialized)
+ return;
+
+ #define ENSURE_LIB(lib) \
+ PR_BEGIN_MACRO \
+ if (!lib) { \
+ Cleanup(); \
+ return; \
+ } \
+ PR_END_MACRO
+
+ #define GET_LIB_FUNCTION(lib, func, failure) \
+ PR_BEGIN_MACRO \
+ _##func = (_##func##_fn) PR_FindFunctionSymbol(lib##Lib, #func); \
+ if (!_##func) { \
+ failure; \
+ } \
+ PR_END_MACRO
+
+ // Attempt to open libgnome
+ gnomeLib = LoadVersionedLibrary("gnome-2", ".0");
+ ENSURE_LIB(gnomeLib);
+
+ GET_LIB_FUNCTION(gnome, gnome_program_init, return Cleanup());
+ GET_LIB_FUNCTION(gnome, libgnome_module_info_get, return Cleanup());
+ GET_LIB_FUNCTION(gnome, gnome_program_get, return Cleanup());
+
+ // Attempt to open libgnomevfs
+ vfsLib = LoadVersionedLibrary("gnomevfs-2", ".0");
+ ENSURE_LIB(vfsLib);
+
+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_launch, /* do nothing */);
+ GET_LIB_FUNCTION(vfs, gnome_vfs_make_uri_from_input, return Cleanup());
+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_get_name, return Cleanup());
+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_free, return Cleanup());
+ GET_LIB_FUNCTION(vfs, gnome_vfs_mime_application_copy, return Cleanup());
+
+ // Initialize GNOME, if it's not already initialized. It's not
+ // necessary to tell GNOME about our actual command line arguments.
+
+ if (!_gnome_program_get()) {
+ char *argv[1] = { "gecko" };
+ _gnome_program_init("Gecko", "1.0", _libgnome_module_info_get(),
+ 1, argv, NULL);
+ }
+
+ // Note: after GNOME has been initialized, do not ever unload these
+ // libraries. They register atexit handlers, so if they are unloaded, we'll
+ // crash on exit.
+}
+
+void
+nsMIMEInfoUnix::SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication* app)
+{
+ if (_gnome_vfs_mime_application_copy && _gnome_vfs_mime_application_free) {
+ mDefaultVFSApplication = _gnome_vfs_mime_application_copy(app);
+
+ mPreferredAction = nsIMIMEInfo::useSystemDefault;
+
+ const gchar * name = _gnome_vfs_mime_application_get_name(mDefaultVFSApplication);
+ if (name)
+ mDefaultAppDescription = NS_ConvertUTF8toUCS2(name);
+ }
+}
+
+nsMIMEInfoUnix::~nsMIMEInfoUnix()
+{
+ if (mDefaultVFSApplication)
+ _gnome_vfs_mime_application_free(mDefaultVFSApplication);
+}
+
+nsresult
+nsMIMEInfoUnix::LaunchDefaultWithFile(nsIFile* aFile)
+{
+ NS_ENSURE_ARG_POINTER(aFile);
+
+ InitGnomeVFS();
+
+ if (_gnome_vfs_mime_application_launch && mDefaultVFSApplication) {
+ nsCAutoString nativePath;
+ aFile->GetNativePath(nativePath);
+
+ gchar *uri = _gnome_vfs_make_uri_from_input(nativePath.get());
+
+ GList *uris = NULL;
+ uris = g_list_append(uris, uri);
+
+ GnomeVFSResult result = _gnome_vfs_mime_application_launch(mDefaultVFSApplication, uris);
+
+ g_free(uri);
+ g_list_free(uris);
+
+ if (result != GNOME_VFS_OK)
+ return NS_ERROR_FAILURE;
+
+ return NS_OK;
+ }
+
+ if (!mDefaultApplication)
+ return NS_ERROR_FILE_NOT_FOUND;
+
+ return LaunchWithIProcess(mDefaultApplication, aFile);
+}
Index: uriloader/exthandler/unix/nsMIMEInfoUnix.h
===================================================================
RCS file: uriloader/exthandler/unix/nsMIMEInfoUnix.h
diff -N uriloader/exthandler/unix/nsMIMEInfoUnix.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ uriloader/exthandler/unix/nsMIMEInfoUnix.h 21 Jul 2005 03:07:40 -0000
@@ -0,0 +1,50 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.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
+ * Red Hat, Inc.
+ * Portions created by the Initial Developer are Copyright (C) 2005
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Christopher Aillon <caillon at redhat.com> (Original author)
+ *
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef nsMimeInfoUnix_h__
+#define nsMimeInfoUnix_h__
+
+#include "nsMIMEInfoImpl.h"
+
+struct GnomeVFSMimeApplication;
+
+class nsMIMEInfoUnix : public nsMIMEInfoImpl
+{
+public:
+ nsMIMEInfoUnix(const char* aType = "") : nsMIMEInfoImpl(aType), mDefaultVFSApplication(nsnull) {}
+ nsMIMEInfoUnix(const nsACString& aMIMEType) : nsMIMEInfoImpl(aMIMEType) {};
+
+ virtual ~nsMIMEInfoUnix();
+
+ void SetDefaultGnomeVFSMimeApplication(GnomeVFSMimeApplication *app);
+
+protected:
+ virtual NS_HIDDEN_(nsresult) LaunchDefaultWithFile(nsIFile* aFile);
+
+ GnomeVFSMimeApplication *mDefaultVFSApplication;
+};
+
+#endif // nsMimeInfoUnix_h__
Index: uriloader/exthandler/unix/nsOSHelperAppService.cpp
===================================================================
RCS file: /cvsroot/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp,v
retrieving revision 1.58
diff -d -u -p -r1.58 nsOSHelperAppService.cpp
--- uriloader/exthandler/unix/nsOSHelperAppService.cpp 25 Oct 2004 07:46:01 -0000 1.58
+++ uriloader/exthandler/unix/nsOSHelperAppService.cpp 21 Jul 2005 03:07:40 -0000
@@ -44,6 +44,7 @@
#include "nsOSHelperAppService.h"
#ifdef MOZ_WIDGET_GTK2
#include "nsGNOMERegistry.h"
+#include "nsMIMEInfoUnix.h"
#endif
#include "nsISupports.h"
#include "nsString.h"
@@ -1486,6 +1487,17 @@ nsOSHelperAppService::GetFromType(const
LOG(("Here we do a mimetype lookup for '%s'\n", aMIMEType.get()));
+#ifdef MOZ_WIDGET_GTK2
+ // Look in GNOME registry first since it is the preferred method in GNOME,
+ // should trump the mailcap entry
+ LOG(("Looking in GNOME registry\n"));
+ nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get();
+ if (gnomeInfo) {
+ LOG(("Got MIMEInfo from GNOME registry\n"));
+ return gnomeInfo;
+ }
+#endif
+
// extract the major and minor types
NS_ConvertASCIItoUTF16 mimeType(aMIMEType);
nsAString::const_iterator start_iter, end_iter,
@@ -1522,21 +1534,6 @@ nsOSHelperAppService::GetFromType(const
mozillaFlags,
PR_TRUE);
-
- if (handler.IsEmpty() && extensions.IsEmpty() &&
- mailcap_description.IsEmpty() && mime_types_description.IsEmpty()) {
- // No useful data yet
-
-#ifdef MOZ_WIDGET_GTK2
- LOG(("Looking in GNOME registry\n"));
- nsMIMEInfoBase *gnomeInfo = nsGNOMERegistry::GetFromType(aMIMEType.get()).get();
- if (gnomeInfo) {
- LOG(("Got MIMEInfo from GNOME registry\n"));
- return gnomeInfo;
- }
-#endif
- }
-
if (handler.IsEmpty() && mailcap_description.IsEmpty()) {
DoLookUpHandlerAndDescription(majorType,
minorType,
firefox-1.5-with-system-nss.patch:
--- NEW FILE firefox-1.5-with-system-nss.patch ---
Index: mozilla/configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1503.2.15
diff -u -r1.1503.2.15 configure.in
--- mozilla/configure.in 4 Oct 2005 05:53:49 -0000 1.1503.2.15
+++ mozilla/configure.in 15 Dec 2005 05:40:40 -0000
@@ -86,6 +86,7 @@
MOZPNG=10207
MOZZLIB=1.2.3
NSPR_VERSION=4
+NSS_VERSION=3
dnl Set the minimum version of toolkit libs used by mozilla
dnl ========================================================
@@ -3472,6 +3473,19 @@
fi
fi
+dnl ========================================================
+dnl = If NSS was not detected in the system,
+dnl = use the one in the source tree (mozilla/security/nss)
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-nss,
+[ --with-system-nss Use system installed NSS],
+ _USE_SYSTEM_NSS=1 )
+
+if test -n "$_USE_SYSTEM_NSS"; then
+ AM_PATH_NSS(3.0.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
+fi
+
if test -z "$SKIP_LIBRARY_CHECKS"; then
dnl system JPEG support
dnl ========================================================
@@ -6698,6 +6712,10 @@
AC_SUBST(NSPR_LIBS)
AC_SUBST(MOZ_NATIVE_NSPR)
+AC_SUBST(NSS_CFLAGS)
+AC_SUBST(NSS_LIBS)
+AC_SUBST(MOZ_NATIVE_NSS)
+
AC_SUBST(CFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(CPPFLAGS)
Index: mozilla/configure
===================================================================
RCS file: /cvsroot/mozilla/configure,v
retrieving revision 1.1492.2.17
diff -u -r1.1492.2.17 configure
--- mozilla/configure 4 Oct 2005 06:01:48 -0000 1.1492.2.17
+++ mozilla/configure 15 Dec 2005 05:40:53 -0000
@@ -44,6 +44,13 @@
--with-nspr-exec-prefix=PFX
Exec prefix where NSPR is installed"
ac_help="$ac_help
+ --with-system-nss Use system installed NSS"
+ac_help="$ac_help
+ --with-nss-prefix=PFX Prefix where NSS is installed"
+ac_help="$ac_help
+ --with-nss-exec-prefix=PFX
+ Exec prefix where NSS is installed"
+ac_help="$ac_help
--with-system-jpeg[=PFX]
Use system libjpeg [installed at prefix PFX]"
ac_help="$ac_help
@@ -1020,6 +1027,7 @@
MOZPNG=10207
MOZZLIB=1.2.3
NSPR_VERSION=4
+NSS_VERSION=3
GLIB_VERSION=1.2.0
GTK_VERSION=1.2.0
@@ -11300,6 +11308,123 @@
fi
fi
+
+# Check whether --with-system-nss or --without-system-nss was given.
+if test "${with_system_nss+set}" = set; then
+ withval="$with_system_nss"
+ if test "$withval" = "yes"; then
+ _USE_SYSTEM_NSS=1
+ elif test "$withval" = "no"; then
+ :
+ else
+ { echo "configure: error: Option, system-nss, does not take an argument ($withval)." 1>&2; exit 1; }
+ fi
+fi
+
+
+if test -n "$_USE_SYSTEM_NSS"; then
+
+# Check whether --with-nss-prefix or --without-nss-prefix was given.
+if test "${with_nss_prefix+set}" = set; then
+ withval="$with_nss_prefix"
+ nss_config_prefix="$withval"
+else
+ nss_config_prefix=""
+fi
+
+
+# Check whether --with-nss-exec-prefix or --without-nss-exec-prefix was given.
+if test "${with_nss_exec_prefix+set}" = set; then
+ withval="$with_nss_exec_prefix"
+ nss_config_exec_prefix="$withval"
+else
+ nss_config_exec_prefix=""
+fi
+
+
+ if test -n "$nss_config_exec_prefix"; then
+ nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+ fi
+ fi
+ if test -n "$nss_config_prefix"; then
+ nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_prefix/bin/nss-config
+ fi
+ fi
+
+ unset ac_cv_path_NSS_CONFIG
+ # Extract the first word of "nss-config", so it can be a program name with args.
+set dummy nss-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:11363: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NSS_CONFIG'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ case "$NSS_CONFIG" in
+ /*)
+ ac_cv_path_NSS_CONFIG="$NSS_CONFIG" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ ac_cv_path_NSS_CONFIG="$NSS_CONFIG" # Let the user override the test with a dos path.
+ ;;
+ *)
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_path_NSS_CONFIG="$ac_dir/$ac_word"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$ac_cv_path_NSS_CONFIG" && ac_cv_path_NSS_CONFIG="no"
+ ;;
+esac
+fi
+NSS_CONFIG="$ac_cv_path_NSS_CONFIG"
+if test -n "$NSS_CONFIG"; then
+ echo "$ac_t""$NSS_CONFIG" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ min_nss_version=3.0.0
+ echo $ac_n "checking for NSS - version >= $min_nss_version (skipping)""... $ac_c" 1>&6
+echo "configure:11398: checking for NSS - version >= $min_nss_version (skipping)" >&5
+
+ no_nss=""
+ if test "$NSS_CONFIG" = "no"; then
+ no_nss="yes"
+ else
+ NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
+ NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+
+ nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
+ nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
+ nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
+ fi
+
+ if test -z "$no_nss"; then
+ echo "$ac_t""yes" 1>&6
+ MOZ_NATIVE_NSS=1
+ else
+ echo "$ac_t""no" 1>&6
+ fi
+
+
+
+
+
+
+fi
+
if test -z "$SKIP_LIBRARY_CHECKS"; then
# Check whether --with-system-jpeg or --without-system-jpeg was given.
if test "${with_system_jpeg+set}" = set; then
@@ -19473,6 +19602,9 @@
s%@NSPR_CONFIG@%$NSPR_CONFIG%g
s%@NSPR_CFLAGS@%$NSPR_CFLAGS%g
s%@NSPR_LIBS@%$NSPR_LIBS%g
+s%@NSS_CONFIG@%$NSS_CONFIG%g
+s%@NSS_CFLAGS@%$NSS_CFLAGS%g
+s%@NSS_LIBS@%$NSS_LIBS%g
s%@GTK_CONFIG@%$GTK_CONFIG%g
s%@GTK_CFLAGS@%$GTK_CFLAGS%g
s%@GTK_LIBS@%$GTK_LIBS%g
@@ -19753,6 +19885,7 @@
s%@MOZ_PNG_CFLAGS@%$MOZ_PNG_CFLAGS%g
s%@MOZ_PNG_LIBS@%$MOZ_PNG_LIBS%g
s%@MOZ_NATIVE_NSPR@%$MOZ_NATIVE_NSPR%g
+s%@MOZ_NATIVE_NSS@%$MOZ_NATIVE_NSS%g
s%@COMPILE_CFLAGS@%$COMPILE_CFLAGS%g
s%@COMPILE_CXXFLAGS@%$COMPILE_CXXFLAGS%g
s%@CROSS_COMPILE@%$CROSS_COMPILE%g
Index: mozilla/aclocal.m4
===================================================================
RCS file: /cvsroot/mozilla/aclocal.m4,v
retrieving revision 1.14
diff -u -r1.14 aclocal.m4
--- mozilla/aclocal.m4 13 May 2004 03:12:47 -0000 1.14
+++ mozilla/aclocal.m4 15 Dec 2005 05:40:53 -0000
@@ -8,6 +8,7 @@
builtin(include, build/autoconf/libIDL.m4)dnl
builtin(include, build/autoconf/libIDL-2.m4)dnl
builtin(include, build/autoconf/nspr.m4)dnl
+builtin(include, build/autoconf/nss.m4)dnl
builtin(include, build/autoconf/libart.m4)dnl
builtin(include, build/autoconf/pkg.m4)dnl
builtin(include, build/autoconf/freetype2.m4)dnl
Index: mozilla/config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.363.2.1
diff -u -r3.363.2.1 autoconf.mk.in
--- mozilla/config/autoconf.mk.in 17 Aug 2005 17:17:17 -0000 3.363.2.1
+++ mozilla/config/autoconf.mk.in 15 Dec 2005 05:40:53 -0000
@@ -229,6 +229,7 @@
MOZ_INSURE_EXCLUDE_DIRS = @MOZ_INSURE_EXCLUDE_DIRS@
MOZ_NATIVE_NSPR = @MOZ_NATIVE_NSPR@
+MOZ_NATIVE_NSS = @MOZ_NATIVE_NSS@
CROSS_COMPILE = @CROSS_COMPILE@
@@ -384,6 +385,48 @@
NSPR_CFLAGS = @NSPR_CFLAGS@
NSPR_LIBS = @NSPR_LIBS@
+NSS_CONFIG = @NSS_CONFIG@
+NSS_CFLAGS = @NSS_CFLAGS@
+NSS_LIBS = @NSS_LIBS@
+
+ifdef MOZ_NATIVE_NSS
+NSS_DEP_LIBS = \
+ $(NULL)
+NSS_LIBS += \
+ -lcrmf \
+ $(NULL)
+else
+NSS_DEP_LIBS = \
+ $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
+ $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
+ $(NULL)
+NSS_LIBS = \
+ $(LIBS_DIR) \
+ $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+ -lsmime3 \
+ -lssl3 \
+ -lnss3 \
+ -lsoftokn3 \
+ $(NULL)
+endif
+
+ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
+ifndef GNU_CC
+ifndef MOZ_NATIVE_NSS
+NSS_LIBS = \
+ $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
+ $(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
+ $(NULL)
+endif
+endif
+endif
+
LDAP_CFLAGS = @LDAP_CFLAGS@
LDAP_LIBS = @LDAP_LIBS@
XPCOM_GLUE_LDOPTS = @XPCOM_GLUE_LDOPTS@
Index: mozilla/config/config.mk
===================================================================
RCS file: /cvsroot/mozilla/config/config.mk,v
retrieving revision 3.337
diff -u -r3.337 config.mk
--- mozilla/config/config.mk 28 Jul 2005 19:48:11 -0000 3.337
+++ mozilla/config/config.mk 15 Dec 2005 05:40:54 -0000
@@ -138,39 +138,6 @@
FINAL_LINK_COMPS = $(DEPTH)/config/final-link-comps
FINAL_LINK_COMP_NAMES = $(DEPTH)/config/final-link-comp-names
-#
-# NSS libs needed for final link in static build
-#
-
-NSS_LIBS = \
- $(LIBS_DIR) \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- -lsmime3 \
- -lssl3 \
- -lnss3 \
- -lsoftokn3 \
- $(NULL)
-
-ifneq (,$(filter OS2 WINNT WINCE, $(OS_ARCH)))
-ifndef GNU_CC
-NSS_LIBS = \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)smime3.$(IMPORT_LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)ssl3.$(IMPORT_LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)nss3.$(IMPORT_LIB_SUFFIX) \
- $(DIST)/lib/$(LIB_PREFIX)softokn3.$(IMPORT_LIB_SUFFIX) \
- $(NULL)
-endif
-endif
-
-NSS_DEP_LIBS = \
- $(DIST)/lib/$(LIB_PREFIX)crmf.$(LIB_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)smime3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)ssl3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)nss3$(DLL_SUFFIX) \
- $(DIST)/lib/$(DLL_PREFIX)softokn3$(DLL_SUFFIX) \
- $(NULL)
-
MOZ_UNICHARUTIL_LIBS = $(DIST)/lib/$(LIB_PREFIX)unicharutil_s.$(LIB_SUFFIX)
MOZ_REGISTRY_LIBS = $(DIST)/lib/$(LIB_PREFIX)mozreg_s.$(LIB_SUFFIX)
MOZ_WIDGET_SUPPORT_LIBS = $(DIST)/lib/$(LIB_PREFIX)widgetsupport_s.$(LIB_SUFFIX)
Index: mozilla/build/autoconf/nss.m4
===================================================================
RCS file: mozilla/build/autoconf/nss.m4
diff -N mozilla/build/autoconf/nss.m4
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ mozilla/build/autoconf/nss.m4 15 Dec 2005 05:40:54 -0000
@@ -0,0 +1,67 @@
+# -*- tab-width: 4; -*-
+# Configure paths for NSS
+# Public domain - Chris Seawood <cls at seawood.org> 2001-04-05
+# Based upon gtk.m4 (also PD) by Owen Taylor
+
+dnl AM_PATH_NSS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+dnl Test for NSS, and define NSS_CFLAGS and NSS_LIBS
+AC_DEFUN(AM_PATH_NSS,
+[dnl
+
+AC_ARG_WITH(nss-prefix,
+ [ --with-nss-prefix=PFX Prefix where NSS is installed],
+ nss_config_prefix="$withval",
+ nss_config_prefix="")
+
+AC_ARG_WITH(nss-exec-prefix,
+ [ --with-nss-exec-prefix=PFX
+ Exec prefix where NSS is installed],
+ nss_config_exec_prefix="$withval",
+ nss_config_exec_prefix="")
+
+ if test -n "$nss_config_exec_prefix"; then
+ nss_config_args="$nss_config_args --exec-prefix=$nss_config_exec_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_exec_prefix/bin/nss-config
+ fi
+ fi
+ if test -n "$nss_config_prefix"; then
+ nss_config_args="$nss_config_args --prefix=$nss_config_prefix"
+ if test -z "$NSS_CONFIG"; then
+ NSS_CONFIG=$nss_config_prefix/bin/nss-config
+ fi
+ fi
+
+ unset ac_cv_path_NSS_CONFIG
+ AC_PATH_PROG(NSS_CONFIG, nss-config, no)
+ min_nss_version=ifelse([$1], ,3.0.0,$1)
+ AC_MSG_CHECKING(for NSS - version >= $min_nss_version (skipping))
+
+ no_nss=""
+ if test "$NSS_CONFIG" = "no"; then
+ no_nss="yes"
+ else
+ NSS_CFLAGS=`$NSS_CONFIG $nss_config_args --cflags`
+ NSS_LIBS=`$NSS_CONFIG $nss_config_args --libs`
+
+ dnl Skip version check for now
+ nss_config_major_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+ nss_config_minor_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+ nss_config_micro_version=`$NSS_CONFIG $nss_config_args --version | \
+ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+ fi
+
+ if test -z "$no_nss"; then
+ AC_MSG_RESULT(yes)
+ ifelse([$2], , :, [$2])
+ else
+ AC_MSG_RESULT(no)
+ fi
+
+
+ AC_SUBST(NSS_CFLAGS)
+ AC_SUBST(NSS_LIBS)
+
+])
Index: mozilla/security/manager/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/Makefile.in,v
retrieving revision 1.57
diff -u -r1.57 Makefile.in
--- mozilla/security/manager/Makefile.in 2 Jun 2005 02:03:05 -0000 1.57
+++ mozilla/security/manager/Makefile.in 15 Dec 2005 05:40:54 -0000
@@ -46,6 +46,8 @@
MODULE = psm
PACKAGE_FILE = psm.pkg
+
+ifndef MOZ_NATIVE_NSS
PACKAGE_VARS += \
NSS3_LIB \
SMIME3_LIB \
@@ -57,6 +59,7 @@
$(NULL)
LOADABLE_ROOT_MODULE = $(DLL_PREFIX)nssckbi$(DLL_SUFFIX)
+endif
NSS3_LIB = $(DLL_PREFIX)nss3$(DLL_SUFFIX)
SMIME3_LIB = $(DLL_PREFIX)smime3$(DLL_SUFFIX)
@@ -147,6 +150,7 @@
export:: .nss.cleaned
.nss.cleaned: .nss.checkout
+ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
ifndef SKIP_CHK
@@ -154,9 +158,12 @@
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
touch $@
+endif
.nss.checkout:
+ifndef MOZ_NATIVE_NSS
touch $(srcdir)/$@
+endif
dependclean export packages chrome::
$(MAKE) -C boot $@
@@ -167,12 +174,15 @@
endif
libs::
+ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
+endif
ifeq ($(OS_ARCH),WINNT)
cd $(DIST)/lib; cp -f $(LIB_PREFIX)dbm$(MOZ_BITS).$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
else
cd $(DIST)/lib; cp -f $(LIB_PREFIX)mozdbm_s.$(LIB_SUFFIX) $(LIB_PREFIX)dbm.$(LIB_SUFFIX); $(RANLIB) $(LIB_PREFIX)dbm.$(LIB_SUFFIX)
endif
+ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
@@ -210,6 +220,7 @@
$(INSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DIST)/bin
endif
endif
+endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C locales $@
@@ -218,6 +229,7 @@
endif
install::
+ifndef MOZ_NATIVE_NSS
$(SYSINSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DESTDIR)$(mozappdir)
ifndef SKIP_CHK
$(SYSINSTALL) -m 644 $(DIST)/lib/$(SOFTOKEN3_CHK) $(DESTDIR)$(mozappdir)
@@ -232,6 +244,7 @@
$(SYSINSTALL) -m 644 $(DIST)/lib/$(FREEBL_HYBRID_CHK) $(DESTDIR)$(mozappdir)
$(SYSINSTALL) -m 755 $(DIST)/lib/$(FREEBL_HYBRID_MODULE) $(DESTDIR)$(mozappdir)
endif
+endif
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C locales $@
@@ -246,15 +259,18 @@
ifdef MOZ_XUL
$(MAKE) -C pki $@
endif
+ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
+endif
echo-requires-recursive::
$(MAKE) -C boot $@
$(MAKE) -C ssl $@
$(MAKE) -C pki $@
$(MAKE) -C locales $@
+
Index: mozilla/security/manager/ssl/src/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/security/manager/ssl/src/Makefile.in,v
retrieving revision 1.67
diff -u -r1.67 Makefile.in
--- mozilla/security/manager/ssl/src/Makefile.in 3 Aug 2005 05:24:18 -0000 1.67
+++ mozilla/security/manager/ssl/src/Makefile.in 15 Dec 2005 05:40:56 -0000
@@ -123,8 +123,13 @@
# Use local includes because they are inserted before INCLUDES
# so that Mozilla's nss.h is used, not glibc's
+ifdef MOZ_NATIVE_NSS
+LOCAL_INCLUDES += $(NSS_CFLAGS) \
+ $(NULL)
+else
LOCAL_INCLUDES += -I$(DIST)/public/nss \
$(NULL)
+endif
EXTRA_DSO_LDOPTS += \
$(MOZ_UNICHARUTIL_LIBS) \
Index: mozilla/security/manager/ssl/src/nsNSSComponent.cpp
===================================================================
RCS file: /cvsroot/mozilla/security/manager/ssl/src/nsNSSComponent.cpp,v
retrieving revision 1.126.2.1
diff -u -r1.126.2.1 nsNSSComponent.cpp
--- mozilla/security/manager/ssl/src/nsNSSComponent.cpp 26 Aug 2005 06:41:50 -0000 1.126.2.1
+++ mozilla/security/manager/ssl/src/nsNSSComponent.cpp 15 Dec 2005 05:41:00 -0000
@@ -488,14 +488,6 @@
}
-#ifdef XP_MAC
-#ifdef DEBUG
-#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbiDebug.shlb")
-#else
-#define LOADABLE_CERTS_MODULE NS_LITERAL_CSTRING("NSSckbi.shlb")
-#endif /*DEBUG*/
-#endif /*XP_MAC*/
-
static void setOCSPOptions(nsIPrefBranch * pref);
NS_IMETHODIMP
@@ -689,40 +681,40 @@
const char *possible_ckbi_locations[] = {
NS_GRE_DIR,
- NS_XPCOM_CURRENT_PROCESS_DIR
+ NS_XPCOM_CURRENT_PROCESS_DIR,
+ 0
};
-
+
for (size_t il = 0; il < sizeof(possible_ckbi_locations)/sizeof(const char*); ++il) {
nsCOMPtr<nsILocalFile> mozFile;
- directoryService->Get( possible_ckbi_locations[il],
- NS_GET_IID(nsILocalFile),
- getter_AddRefs(mozFile));
+ char *fullModuleName = nsnull;
+
+ if (!possible_ckbi_locations[il])
+ {
+ fullModuleName = PR_GetLibraryName(nsnull, "nssckbi");
+ }
+ else
+ {
+ directoryService->Get( possible_ckbi_locations[il],
+ NS_GET_IID(nsILocalFile),
+ getter_AddRefs(mozFile));
- if (!mozFile) {
- continue;
+ if (!mozFile) {
+ continue;
+ }
+
+ nsCAutoString processDir;
+ mozFile->GetNativePath(processDir);
+ fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
}
- char *fullModuleName = nsnull;
-#ifdef XP_MAC
- nsCAutoString nativePath;
- mozFile->AppendNative(NS_LITERAL_CSTRING("Essential Files"));
- mozFile->AppendNative(LOADABLE_CERTS_MODULE);
- mozFile->GetNativePath(nativePath);
- fullModuleName = (char *) nativePath.get();
-#else
- nsCAutoString processDir;
- mozFile->GetNativePath(processDir);
- fullModuleName = PR_GetLibraryName(processDir.get(), "nssckbi");
-#endif
/* If a module exists with the same name, delete it. */
NS_ConvertUCS2toUTF8 modNameUTF8(modName);
int modType;
SECMOD_DeleteModule(NS_CONST_CAST(char*, modNameUTF8.get()), &modType);
SECStatus rv_add =
SECMOD_AddNewModule(NS_CONST_CAST(char*, modNameUTF8.get()), fullModuleName, 0, 0);
-#ifndef XP_MAC
- PR_Free(fullModuleName); // allocated by NSPR
-#endif
+ PR_FreeLibraryName(fullModuleName); // allocated by NSPR
if (SECSuccess == rv_add) {
// found a module, no need to try other directories
break;
firefox-1.5.0.1-dumpstack.patch:
--- NEW FILE firefox-1.5.0.1-dumpstack.patch ---
Index: mozilla/xpcom/base/nsStackFrameUnix.cpp
===================================================================
RCS file: /cvsroot/mozilla/xpcom/base/nsStackFrameUnix.cpp,v
retrieving revision 1.12
diff -d -u -p -r1.12 nsStackFrameUnix.cpp
--- mozilla/xpcom/base/nsStackFrameUnix.cpp 18 Apr 2004 14:18:12 -0000 1.12
+++ mozilla/xpcom/base/nsStackFrameUnix.cpp 2 Feb 2006 05:29:00 -0000
@@ -90,6 +90,9 @@ void DemangleSymbol(const char * aSymbol
void DumpStackToFile(FILE* aStream)
{
+ fprintf(aStream, "Stacktrace disabled for now.\n"
+ "See https://bugzilla.mozilla.org/show_bug.cgi?id=323853\n");
+#if 0
jmp_buf jb;
setjmp(jb);
@@ -138,6 +141,7 @@ void DumpStackToFile(FILE* aStream)
symbol, off, info.dli_fname, foff);
}
}
+#endif
}
#elif defined(__sun) && (defined(__sparc) || defined(sparc) || defined(__i386) || defined(i386))
mozilla-1.4.1-ppc64.patch:
--- NEW FILE mozilla-1.4.1-ppc64.patch ---
--- mozilla/security/coreconf/Linux.mk.foo 2003-10-01 13:06:30.000000000 -0400
+++ mozilla/security/coreconf/Linux.mk 2003-10-01 13:07:22.000000000 -0400
@@ -53,7 +53,11 @@
ifeq ($(OS_TEST),m68k)
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
CPU_ARCH = m68k
-else
+else
+ifeq ($(OS_TEST),ppc64)
+ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+ CPU_ARCH = ppc64
+else
ifeq ($(OS_TEST),ppc)
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
CPU_ARCH = ppc
@@ -112,6 +116,7 @@
endif
endif
endif
+endif
LIBC_TAG = _glibc
mozilla-1.7.3-gnome-vfs-default-app.patch:
--- NEW FILE mozilla-1.7.3-gnome-vfs-default-app.patch ---
--- mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp.foo 2004-03-06 09:41:00.000000000 -0500
+++ mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp 2004-10-18 18:55:55.000000000 -0400
@@ -283,6 +283,11 @@
gchar *nativeCommand = g_filename_from_utf8(handlerApp->command,
-1, NULL, NULL, NULL);
+
+ // Some versions of the mime stuff will add whitespace to the end or
+ // beginning of the command
+ nativeCommand = g_strstrip(nativeCommand);
+
if (!nativeCommand) {
NS_ERROR("Could not convert helper app command to filesystem encoding");
_gnome_vfs_mime_application_free(handlerApp);
mozilla-1.7.5-g-application-name.patch:
--- NEW FILE mozilla-1.7.5-g-application-name.patch ---
Index: xpfe/bootstrap/nsAppRunner.cpp
===================================================================
RCS file: /cvsroot/mozilla/xpfe/bootstrap/nsAppRunner.cpp,v
retrieving revision 1.428
diff -d -u -p -r1.428 nsAppRunner.cpp
--- xpfe/bootstrap/nsAppRunner.cpp 20 Dec 2004 21:53:33 -0000 1.428
+++ xpfe/bootstrap/nsAppRunner.cpp 5 Mar 2005 08:39:12 -0000
@@ -1612,6 +1612,11 @@ static PRBool GetWantSplashScreen(int ar
return dosplash;
}
+#ifdef MOZ_WIDGET_GTK2
+#include "prlink.h"
+typedef void (*_g_set_application_name_fn)(const gchar *application_name);
+#endif
+
int main(int argc, char* argv[])
{
NS_TIMELINE_MARK("enter main");
@@ -1712,6 +1717,19 @@ int main(int argc, char* argv[])
#endif
gtk_init(&argc, &argv);
+#if defined(MOZ_WIDGET_GTK2)
+ // g_set_application_name () is only defined in glib2.2 and higher.
+ PRLibrary *glib2;
+ _g_set_application_name_fn _g_set_application_name =
+ (_g_set_application_name_fn)PR_FindFunctionSymbolAndLibrary("g_set_application_name", &glib2);
+ if (_g_set_application_name) {
+ _g_set_application_name("seamonkey"); /* MOZ_APP_NAME */
+ }
+ if (glib2) {
+ PR_UnloadLibrary(glib2);
+ }
+#endif
+
gtk_widget_set_default_visual(gdk_rgb_get_visual());
gtk_widget_set_default_colormap(gdk_rgb_get_cmap());
#endif /* MOZ_WIDGET_GTK || MOZ_WIDGET_GTK2 */
mozilla-nspr-packages.patch:
--- NEW FILE mozilla-nspr-packages.patch ---
--- mozilla/xpinstall/packager/packages-unix.smp5 2005-12-22 16:29:39.000000000 +0100
+++ mozilla/xpinstall/packager/packages-unix 2006-01-21 09:03:04.000000000 +0100
@@ -45,9 +45,6 @@
[xpcom]
bin/libmozjs.so
-bin/libnspr4.so
-bin/libplc4.so
-bin/libplds4.so
bin/cpu/sparcv8plus/libnspr_flt4.so
bin/libxpcom.so
bin/libxpcom_core.so
@@ -463,18 +460,13 @@
bin/components/talkback/*
[psm]
-bin/libnssckbi.so
bin/components/libpipboot.so
bin/components/pipboot.xpt
bin/components/libpipnss.so
bin/components/pipnss.xpt
bin/components/libpippki.so
bin/components/pippki.xpt
-bin/libnss3.so
-bin/libsmime3.so
bin/libsoftokn3.chk
-bin/libsoftokn3.so
-bin/libssl3.so
bin/chrome/pipnss.jar
bin/chrome/pippki.jar
; These are required for solaris 32-bit builds
@@ -499,5 +491,17 @@
bin/components/spellchecker.xpt
bin/components/myspell/*
+[nspr]
+bin/libnspr4.so
+bin/libplc4.so
+bin/libplds4.so
+
+[nss]
+bin/libnssckbi.so
+bin/libnss3.so
+bin/libsmime3.so
+bin/libsoftokn3.so
+bin/libssl3.so
+
[reporter]
bin/chrome/reporter.jar
--- NEW FILE mozilla-psm-exclude-list ---
libnss3.so
libsmime3.so
libsoftokn3.so
libssl3.so
--- NEW FILE mozilla-xpcom-exclude-list ---
libnspr4.so
libplc4.so
libplds4.so
pango-cairo.patch:
--- NEW FILE pango-cairo.patch ---
Index: config/autoconf.mk.in
===================================================================
RCS file: /cvsroot/mozilla/config/autoconf.mk.in,v
retrieving revision 3.363.2.1
diff -u -p -6 -r3.363.2.1 autoconf.mk.in
--- config/autoconf.mk.in 17 Aug 2005 17:17:17 -0000 3.363.2.1
+++ config/autoconf.mk.in 27 Aug 2005 19:57:29 -0000
@@ -456,12 +456,13 @@ MOZ_XFT_CFLAGS = @MOZ_XFT_CFLAGS@
MOZ_XFT_LIBS = @MOZ_XFT_LIBS@
MOZ_ENABLE_COREXFONTS = @MOZ_ENABLE_COREXFONTS@
MOZ_ENABLE_PANGO = @MOZ_ENABLE_PANGO@
MOZ_PANGO_CFLAGS = @MOZ_PANGO_CFLAGS@
MOZ_PANGO_LIBS = @MOZ_PANGO_LIBS@
+MOZ_PANGOCAIRO = @MOZ_PANGOCAIRO@
MOZ_EXTRA_X11CONVERTERS = @MOZ_EXTRA_X11CONVERTERS@
MOZ_ENABLE_XINERAMA = @MOZ_ENABLE_XINERAMA@
MOZ_XINERAMA_LIBS = @MOZ_XINERAMA_LIBS@
Index: gfx/src/gtk/mozilla-decoder.cpp
===================================================================
RCS file: /cvsroot/mozilla/gfx/src/gtk/mozilla-decoder.cpp,v
retrieving revision 1.3
diff -u -p -6 -r1.3 mozilla-decoder.cpp
--- gfx/src/gtk/mozilla-decoder.cpp 7 Nov 2004 23:59:23 -0000 1.3
+++ gfx/src/gtk/mozilla-decoder.cpp 27 Aug 2005 19:57:49 -0000
@@ -37,13 +37,17 @@
* ***** END LICENSE BLOCK ***** */
#define PANGO_ENABLE_BACKEND
#define PANGO_ENABLE_ENGINE
#include "mozilla-decoder.h"
+#ifdef MOZ_PANGOCAIRO
+#include <pango/pangocairo.h>
+#else
#include <pango/pangoxft.h>
+#endif
#include <pango/pangofc-fontmap.h>
#include <pango/pangofc-font.h>
#include <gdk/gdkx.h>
#include "nsString.h"
#include "nsIPersistentProperties2.h"
@@ -205,13 +209,17 @@ mozilla_decoders_init(void)
}
else {
printf("unknown suffix used for mapping\n");
}
}
+#ifdef MOZ_PANGOCAIRO
+ pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_cairo_font_map_get_default()),
+#else
pango_fc_font_map_add_decoder_find_func(PANGO_FC_FONT_MAP(pango_xft_get_font_map(GDK_DISPLAY(),gdk_x11_get_default_screen())),
+#endif
mozilla_find_decoder,
NULL,
NULL);
initialized = PR_TRUE;
Index: configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1503.2.6
diff -u -p -6 -r1.1503.2.6 configure.in
--- configure.in 25 Aug 2005 19:05:34 -0000 1.1503.2.6
+++ configure.in 29 Aug 2005 08:03:32 -0000
@@ -3707,14 +3707,14 @@ gtk)
;;
gtk2)
MOZ_ENABLE_GTK2=1
MOZ_ENABLE_XREMOTE=1
MOZ_ENABLE_COREXFONTS=${MOZ_ENABLE_COREXFONTS-}
- TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
- TK_LIBS='$(MOZ_GTK2_LIBS)'
+ TK_CFLAGS='$(MOZ_GTK2_CFLAGS) $(MOZ_PANGO_CFLAGS)'
+ TK_LIBS='$(MOZ_GTK2_LIBS) $(MOZ_PANGO_LIBS)'
AC_DEFINE(MOZ_WIDGET_GTK2)
;;
xlib)
MOZ_ENABLE_XLIB=1
if test "$_HAVE_FREETYPE2"; then
@@ -4277,33 +4277,44 @@ if test "$MOZ_ENABLE_XFT" && test "$MOZ_
fi
if test "$MOZ_ENABLE_XFT"
then
AC_DEFINE(MOZ_ENABLE_XFT)
PKG_CHECK_MODULES(MOZ_XFT, xft)
- PKG_CHECK_MODULES(_PANGOCHK, pango >= 1.1.0)
+ PKG_CHECK_MODULES(MOZ_PANGO, pangoxft >= 1.1.0 pangox)
fi
AC_SUBST(MOZ_ENABLE_XFT)
AC_SUBST(MOZ_XFT_CFLAGS)
AC_SUBST(MOZ_XFT_LIBS)
+AC_SUBST(MOZ_PANGO_CFLAGS)
+AC_SUBST(MOZ_PANGO_LIBS)
dnl ========================================================
dnl = pango font rendering
dnl ========================================================
MOZ_ARG_ENABLE_BOOL(pango,
[ --enable-pango Enable Pango font rendering support],
MOZ_ENABLE_PANGO=1,
MOZ_ENABLE_PANGO=)
if test "$MOZ_ENABLE_PANGO"
then
AC_DEFINE(MOZ_ENABLE_PANGO)
- PKG_CHECK_MODULES(MOZ_PANGO, pango >= 1.6.0 pangoft2 >= 1.6.0)
+ PKG_CHECK_MODULES(MOZ_PANGO, pangoxft >= 1.6.0)
+ PKG_CHECK_MODULES(PANGOCAIRO_CHK, pangocairo >= 1.10.0,
+ [
+ MOZ_PANGOCAIRO=1
+ AC_DEFINE(MOZ_PANGOCAIRO)
+ MOZ_PANGO_CFLAGS="$PANGOCAIRO_CHK_CFLAGS $MOZ_PANGO_CFLAGS"
+ MOZ_PANGO_LIBS="$PANGOCAIRO_CHK_LIBS $MOZ_PANGO_LIBS"
+ ],
+ [:])
AC_SUBST(MOZ_ENABLE_PANGO)
+ AC_SUBST(MOZ_PANGOCAIRO)
AC_SUBST(MOZ_PANGO_CFLAGS)
AC_SUBST(MOZ_PANGO_LIBS)
fi
dnl ========================================================
dnl = x11 core font support (default and ability to enable depend on toolkit)
seamonkey-cairo-bug5136.patch:
--- NEW FILE seamonkey-cairo-bug5136.patch ---
Index: mozilla/gfx/cairo/libpixman/src/pixman-remap.h
===================================================================
RCS file: /cvsroot/mozilla/gfx/cairo/libpixman/src/pixman-remap.h,v
retrieving revision 1.1.6.2
diff -u -p -r1.1.6.2 pixman-remap.h
--- mozilla/gfx/cairo/libpixman/src/pixman-remap.h 27 Sep 2005 23:09:03 -0000 1.1.6.2
+++ mozilla/gfx/cairo/libpixman/src/pixman-remap.h 21 Nov 2005 02:35:24 -0000
@@ -1,9 +1,7 @@
#define pixman_add_trapezoids _cairo_pixman_add_trapezoids
-#define INT_pixman_color_to_pixel _cairo_pixman_color_to_pixel
#define pixman_color_to_pixel _cairo_pixman_color_to_pixel
#define composeFunctions _cairo_pixman_compose_functions
#define fbComposeSetupMMX _cairo_pixman_compose_setup_mmx
-#define INT_pixman_composite _cairo_pixman_composite
#define pixman_composite _cairo_pixman_composite
#define fbCompositeCopyAreammx _cairo_pixman_composite_copy_area_mmx
#define fbCompositeSolidMask_nx8888x0565Cmmx _cairo_pixman_composite_solid_mask_nx8888x0565Cmmx
seamonkey-configure.patch:
--- NEW FILE seamonkey-configure.patch ---
--- mozilla/configure.ac213 2006-02-10 09:14:59.000000000 +0100
+++ mozilla/configure 2006-02-10 09:15:01.000000000 +0100
@@ -941,7 +941,7 @@
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:938: checking host system type" >&5
+echo "configure:945: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -962,7 +962,7 @@
echo "$ac_t""$host" 1>&6
echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:959: checking target system type" >&5
+echo "configure:966: checking target system type" >&5
target_alias=$target
case "$target_alias" in
@@ -980,7 +980,7 @@
echo "$ac_t""$target" 1>&6
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:977: checking build system type" >&5
+echo "configure:984: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -1050,12 +1050,12 @@
LIBGNOME_VERSION=2.0
MISSING_X=
-for ac_prog in mawk gawk nawk awk
+for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1051: checking for $ac_word" >&5
+echo "configure:1059: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1153,7 +1153,7 @@
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1149: checking for $ac_word" >&5
+echo "configure:1157: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_NSINSTALL_BIN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1226,13 +1226,13 @@
_SAVE_LDFLAGS="$LDFLAGS"
echo $ac_n "checking for host c compiler""... $ac_c" 1>&6
-echo "configure:1222: checking for host c compiler" >&5
+echo "configure:1230: checking for host c compiler" >&5
for ac_prog in $HOST_CC gcc cc /usr/ucb/cc cl icc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1228: checking for $ac_word" >&5
+echo "configure:1236: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1267,13 +1267,13 @@
fi
echo "$ac_t""$HOST_CC" 1>&6
echo $ac_n "checking for host c++ compiler""... $ac_c" 1>&6
-echo "configure:1263: checking for host c++ compiler" >&5
+echo "configure:1271: checking for host c++ compiler" >&5
for ac_prog in $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1269: checking for $ac_word" >&5
+echo "configure:1277: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_HOST_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1322,7 +1322,7 @@
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1318: checking for $ac_word" >&5
+echo "configure:1326: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_HOST_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1357,7 +1357,7 @@
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1353: checking for $ac_word" >&5
+echo "configure:1361: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_HOST_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1392,16 +1392,16 @@
LDFLAGS="$HOST_LDFLAGS"
echo $ac_n "checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1388: checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works" >&5
+echo "configure:1396: checking whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works" >&5
cat > conftest.$ac_ext <<EOF
-#line 1390 "configure"
+#line 1398 "configure"
#include "confdefs.h"
int main() {
return(0);
; return 0; }
EOF
-if { (eval echo configure:1397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_prog_hostcc_works=1 echo "$ac_t""yes" 1>&6
else
@@ -1416,16 +1416,16 @@
CFLAGS="$HOST_CXXFLAGS"
echo $ac_n "checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1412: checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works" >&5
+echo "configure:1420: checking whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works" >&5
cat > conftest.$ac_ext <<EOF
-#line 1414 "configure"
+#line 1422 "configure"
#include "confdefs.h"
int main() {
return(0);
; return 0; }
EOF
-if { (eval echo configure:1421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1429: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_prog_hostcxx_works=1 echo "$ac_t""yes" 1>&6
else
@@ -1445,7 +1445,7 @@
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1441: checking for $ac_word" >&5
+echo "configure:1449: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1479,7 +1479,7 @@
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1475: checking for $ac_word" >&5
+echo "configure:1483: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1509,7 +1509,7 @@
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1505: checking for $ac_word" >&5
+echo "configure:1513: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1560,7 +1560,7 @@
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1556: checking for $ac_word" >&5
+echo "configure:1564: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1592,7 +1592,7 @@
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1588: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1596: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1603,12 +1603,12 @@
cat > conftest.$ac_ext << EOF
-#line 1599 "configure"
+#line 1607 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
[...5344 lines suppressed...]
+if { (eval echo configure:18458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18292,7 +18481,7 @@
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:18171: checking stack direction for C alloca" >&5
+echo "configure:18485: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18300,7 +18489,7 @@
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 18179 "configure"
+#line 18493 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -18319,7 +18508,7 @@
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:18198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -18368,17 +18557,17 @@
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:18247: checking for $ac_hdr" >&5
+echo "configure:18561: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18252 "configure"
+#line 18566 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:18257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:18571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -18458,7 +18647,7 @@
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:18337: checking for $ac_word" >&5
+echo "configure:18651: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18502,19 +18691,19 @@
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
echo $ac_n "checking for cairo >= $CAIRO_VERSION""... $ac_c" 1>&6
-echo "configure:18381: checking for cairo >= $CAIRO_VERSION" >&5
+echo "configure:18695: checking for cairo >= $CAIRO_VERSION" >&5
if $PKG_CONFIG --exists "cairo >= $CAIRO_VERSION" ; then
echo "$ac_t""yes" 1>&6
succeeded=yes
echo $ac_n "checking CAIRO_CFLAGS""... $ac_c" 1>&6
-echo "configure:18388: checking CAIRO_CFLAGS" >&5
+echo "configure:18702: checking CAIRO_CFLAGS" >&5
CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= $CAIRO_VERSION"`
echo "$ac_t""$CAIRO_CFLAGS" 1>&6
echo $ac_n "checking CAIRO_LIBS""... $ac_c" 1>&6
-echo "configure:18393: checking CAIRO_LIBS" >&5
+echo "configure:18707: checking CAIRO_LIBS" >&5
## don't use --libs since that can do evil things like add
## -Wl,--export-dynamic
CAIRO_LIBS="`$PKG_CONFIG --libs-only-L \"cairo >= $CAIRO_VERSION\"` `$PKG_CONFIG --libs-only-l \"cairo >= $CAIRO_VERSION\"`"
@@ -18579,7 +18768,7 @@
# Extract the first word of "python", so it can be a program name with args.
set dummy python; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:18458: checking for $ac_word" >&5
+echo "configure:18772: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18840,14 +19029,14 @@
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 18719 "configure"
+#line 19033 "configure"
#include "confdefs.h"
#include <gmodule.h>
int main() {
int x = 1; x++;
; return 0; }
EOF
-if { (eval echo configure:18726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19040: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -19113,6 +19302,10 @@
+
+
+
+
cat >> confdefs.h <<EOF
#define MOZ_DLL_SUFFIX "$DLL_SUFFIX"
EOF
@@ -19140,7 +19333,7 @@
_SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS $XCFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 19019 "configure"
+#line 19337 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -19156,7 +19349,7 @@
; return 0; }
EOF
-if { (eval echo configure:19035: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -19373,15 +19566,34 @@
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
+t quote
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output. A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
MOZ_DEFINES=$DEFS
@@ -19663,12 +19875,13 @@
s%@MOZ_ENABLE_FREETYPE2@%$MOZ_ENABLE_FREETYPE2%g
s%@MOZ_XFT_CFLAGS@%$MOZ_XFT_CFLAGS%g
s%@MOZ_XFT_LIBS@%$MOZ_XFT_LIBS%g
-s%@_PANGOCHK_CFLAGS@%$_PANGOCHK_CFLAGS%g
-s%@_PANGOCHK_LIBS@%$_PANGOCHK_LIBS%g
-s%@MOZ_ENABLE_XFT@%$MOZ_ENABLE_XFT%g
s%@MOZ_PANGO_CFLAGS@%$MOZ_PANGO_CFLAGS%g
s%@MOZ_PANGO_LIBS@%$MOZ_PANGO_LIBS%g
+s%@MOZ_ENABLE_XFT@%$MOZ_ENABLE_XFT%g
+s%@PANGOCAIRO_CHK_CFLAGS@%$PANGOCAIRO_CHK_CFLAGS%g
+s%@PANGOCAIRO_CHK_LIBS@%$PANGOCAIRO_CHK_LIBS%g
s%@MOZ_ENABLE_PANGO@%$MOZ_ENABLE_PANGO%g
+s%@MOZ_PANGOCAIRO@%$MOZ_PANGOCAIRO%g
s%@MOZ_ENABLE_COREXFONTS@%$MOZ_ENABLE_COREXFONTS%g
s%@MOZ_GNOMEVFS_CFLAGS@%$MOZ_GNOMEVFS_CFLAGS%g
s%@MOZ_GNOMEVFS_LIBS@%$MOZ_GNOMEVFS_LIBS%g
seamonkey-disable-visibility.patch:
--- NEW FILE seamonkey-disable-visibility.patch ---
Index: mozilla/configure.in
===================================================================
RCS file: /cvsroot/mozilla/configure.in,v
retrieving revision 1.1503.2.15.2.3
diff -u -r1.1503.2.15.2.3 configure.in
--- mozilla/configure.in 10 Jan 2006 03:11:42 -0000 1.1503.2.15.2.3
+++ mozilla/configure.in 21 Jan 2006 09:00:24 -0000
@@ -2383,7 +2383,7 @@
dnl Check for .hidden assembler directive and visibility attribute.
dnl Borrowed from glibc configure.in
dnl ===============================================================
-if test "$GNU_CC"; then
+if /bin/false; then
AC_CACHE_CHECK(for visibility(hidden) attribute,
ac_cv_visibility_hidden,
[cat > conftest.c <<EOF
--- NEW FILE seamonkey-fedora-default-bookmarks.html ---
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1 LAST_MODIFIED="1130967916">Bookmarks</H1>
<DL><p>
<DT><H3 ADD_DATE="961112773" LAST_MODIFIED="1130967903" PERSONAL_TOOLBAR_FOLDER="true" ID="NC:PersonalToolbarFolder">Personal Toolbar Folder</H3>
<DL><p>
<DT><A HREF="http://fedoraproject.org/" ADD_DATE="1130967459" LAST_MODIFIED="1130967615" LAST_CHARSET="UTF-8" ID="rdf:#$x80oc3">Fedora Project Portal</A>
<DT><A HREF="http://fedora.redhat.com/docs/release-notes/" ADD_DATE="1130967140" LAST_VISIT="1130968088" ICON="data:image/x-icon;base64,AAABAAIAEBAQAAAAAAAoAQAAJgAAACAgEAAAAAAA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wCne2YAbjMWAOy/qgDHmoUAhl5KAMrFwgDu6eYAtot2ANKolACtlYkAlmpUAFsqEgDMurAA4rWgAAAAAAAAAAAACVVVqqr/REAJMzPdMzMzQAkzIY0zMzNACTNhEzMzM/ACMzEW0zMz8AIzNxvTMzOgAjM+Ht3dM/ACMzkREb0zoAwzPBF3ozOgAjMzEW3d01AMMzOBERjTUAwzM+ERETNQDDMzMzMzM1AMzMLCKSmZUAAAAAAAAAAAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AICAgABuMxYA57qlAMCXhADn39sAmGxXAHxKMgDWysMAsIRvANOmkQBXKhQAzbuyAN+ynQDuwa0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApVVbW1u7vr7u5ERP//8AAFpaVVW1tbvr7u5ORPT/AAClMzMzM8zDMzMzMzMz/wAAWjMzMzzMzDMzMzMzM/8AAKUzMzkRHcwzMzMzMzNPAACqMzMyERnMMzMzMzMzRAAApTMzOhERzDMzMzMzM08AAKozMzgREYwzMzMzMzNEAACqMzMzYRF8wzMzMzMz5AAAqjMzM5ERXMMzMzMzM+4AAKozM!
zNREZzDMzMzMzPkAACnMzMzoRFszDMzMzMz7gAAejMzM4ERGMzMzDMzM+4AAKczMzMxERjMzMzDMzPrAAB6MzMzORERERGcwzMzvgAApzMzMzsRERERHDMzM7sAAHozMzM1ERERERczMzO+AAB3MzMzOBERVVVYMzMzuwAAejMzMzMREYzDMzMzM7sAAHczMzMzYRGszMzMzDO7AAB3MzMzM9ERaZmZmswzWwAAdzMzMzNRERERER3MM7UAAHczMzMzcRERERERMzNbAAB3MzMzM4ERERERETMzVQAAdzMzMzMzMzMzMzMzM1UAAHczMzMzMzMzMzMzMzNVAAB3d3d6enqqqqqlpaVVVQAAd3d3d3d3p6enqqqqWlUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQ==" LAST_CHARSET="UTF-8" ID="rdf:#$v80oc3">Latest Release Notes</A>
<DT><H3 ADD_DATE="1130967903" LAST_MODIFIED="1130967916" ID="rdf:#$A80oc3">Fedora Community</H3>
<DL><p>
<DT><A HREF="http://fedoranews.org/mediawiki/index.php/Main_Page" ADD_DATE="1130967815" LAST_CHARSET="UTF-8" ID="rdf:#$y80oc3">Fedora Weekly News</A>
<DT><A HREF="http://forum.fedoraforum.org/" ADD_DATE="1130967896" LAST_MODIFIED="1130968100" LAST_CHARSET="ISO-8859-1" ID="rdf:#$z80oc3">Fedora Forum.org</A>
</DL><p>
<DT><A HREF="http://www.redhat.com/magazine/" ADD_DATE="1130967439" LAST_CHARSET="ISO-8859-1" ID="rdf:#$w80oc3">Red Hat Magazine</A>
</DL><p>
</DL><p>
--- NEW FILE seamonkey-fedora-default-prefs.js ---
pref("browser.display.use_system_colors", true);
pref("general.smoothScroll", true);
pref("general.useragent.vendor", "Fedora");
pref("general.useragent.vendorSub", "SEAMONKEY_RPM_VR");
seamonkey-fedora-home-page.patch:
--- NEW FILE seamonkey-fedora-home-page.patch ---
--- mozilla/xpfe/browser/resources/locale/en-US/region.properties.smp4 2005-12-05 13:43:59.000000000 +0100
+++ mozilla/xpfe/browser/resources/locale/en-US/region.properties 2006-01-21 08:58:49.000000000 +0100
@@ -1,5 +1,5 @@
# navigator.properties
-homePageDefault=http://www.mozilla.org/
+homePageDefault=file:///usr/share/doc/HTML/index.html
shopKeyword=keyword:shop [Product]
quoteKeyword=keyword:quote [Enter symbol here]
localKeyword=keyword:zip [Your zip code]
@@ -11,7 +11,7 @@
#
# all.js
#
-browser.startup.homepage=http://www.mozilla.org/projects/seamonkey/start/
+browser.startup.homepage=file:///usr/share/doc/HTML/index.html
browser.throbber.url=http://www.mozilla.org/projects/seamonkey/
browser.search.defaulturl=http://www.google.com/search?q=
general.useragent.contentlocale=US
@@ -21,4 +21,4 @@
#config.js
#
-startup.homepage_override_url=http://www.mozilla.org/projects/seamonkey/start/
+startup.homepage_override_url=file:///usr/share/doc/HTML/index.html
--- NEW FILE seamonkey-mail.desktop ---
[Desktop Entry]
Encoding=UTF-8
Name=Seamonkey Mail
Comment=Read Mail with Seamonkey
Exec=/usr/bin/seamonkey -mail
Icon=seamonkey-mail-icon
Terminal=0
Type=Application
Categories=X-Red-Hat-Extra;Application;Network;
--- NEW FILE seamonkey-make-package.pl ---
#!/usr/bin/perl -w
#
# 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 Christopher Blizzard.
# Portions created by Christopher Blizzard are Copyright (C)
# Christopher Blizzard. All Rights Reserved.
#
# Contributor(s):
# This script will read one of the mozilla packages- file on unix and
# copy it to a target directory. It's for unix only and is really
# designed for use in building rpms or other packages.
use Getopt::Long;
use File::Find;
use strict;
# global vars
my $install_dir = "";
my $install_root = "";
my $package_name = "";
my $package_file = "";
my $output_file = "";
my $exclude_file = "";
my $retval;
# std return val
$retval = GetOptions('install-dir=s', \$install_dir,
'install-root=s', \$install_root,
'package=s', \$package_name,
'package-file=s', \$package_file,
'output-file=s', \$output_file,
'exclude-file=s', \$exclude_file);
# make sure that all of the values are specific on the command line
if (!$retval || !$install_dir || !$install_root || !$package_name ||
!$package_file || !$output_file) {
print_usage();
exit 1;
}
# try to open the packages file
open (PACKAGE_FILE, $package_file) || die("$0: Failed to open file $package_file for reading.");
print "chdir to $install_dir\n";
chdir($install_dir);
my @file_list;
my @exclude_list;
my @final_file_list;
my $reading_package = 0;
LINE: while (<PACKAGE_FILE>) {
s/\;.*//; # it's a comment, kill it.
s/^\s+//; # nuke leading whitespace
s/\s+$//; # nuke trailing whitespace
# it's a blank line, skip it.
if (/^$/) {
next LINE;
}
# it's a new component
if (/^\[/) {
my $this_package;
( $this_package ) = /^\[(.+)\]$/;
if ($this_package eq $package_name) {
$reading_package = 1;
}
else {
$reading_package = 0;
}
next LINE;
}
# read this line
if ($reading_package) {
# see if it's a deletion
if (/^-/) {
my $this_file;
( $this_file ) = /^-(.+)$/;
push (@exclude_list, $this_file);
}
else {
push (@file_list, $_);
}
}
}
close PACKAGE_FILE;
# check if we have an exclude file
if ($exclude_file) {
print "reading exclude file $exclude_file\n";
open (EXCLUDE_FILE, $exclude_file) || die("$0: Failed to open exclude file $exclude_file for reading.");
while (<EXCLUDE_FILE>) {
chomp;
print "Ignoring $_\n";
push (@exclude_list, $_);
}
close EXCLUDE_FILE;
}
# Expand our file list
expand_file_list(\@file_list, \@exclude_list, \@final_file_list);
print "final file list\n";
foreach (@final_file_list) {
print $_ . "\n";
}
open (OUTPUT_FILE, ">>$output_file") || die("Failed to open output file\n");
foreach (@final_file_list) {
# strip off the bin/
s/^bin\///;
if ( ! -f $_ ) {
print("Skipping $_ because it doesn't exist\n");
}
else {
print ("Adding $_\n");
print (OUTPUT_FILE $install_root . "/" . $_ . "\n");
}
}
close OUTPUT_FILE;
#print "\nexlude list\n";
#foreach (@exclude_list) {
# print $_ . "\n";
#}
# this function expands a list of files
sub expand_file_list {
my $file_list_ref = shift;
my $exclude_list_ref = shift;
my $final_file_list_ref = shift;
my $this_file;
foreach $this_file (@{$file_list_ref}) {
# strip off the bin/
$this_file =~ s/^bin\///;
# is it a wild card?
if ($this_file =~ /\*/) {
print "Wild card $this_file\n";
# expand that wild card, removing anything in the exclude
# list
my @temp_list;
printf ("Expanding $this_file\n");
@temp_list = glob($this_file);
foreach $this_file (@temp_list) {
if (!in_exclude_list($this_file, $exclude_list_ref)) {
push (@{$final_file_list_ref}, $this_file);
}
}
}
else {
if (!in_exclude_list($this_file, $exclude_list_ref)) {
push (@{$final_file_list_ref}, $this_file);
}
}
}
}
# is this file in the exlude list?
sub in_exclude_list {
my $file = shift;
my $exclude_list_ref = shift;
my $this_file;
foreach $this_file (@{$exclude_list_ref}) {
if ($file eq $this_file) {
return 1;
}
}
return 0;
}
# print out a usage message
sub print_usage {
print ("$0: --install-dir dir --install-root dir --package name --package-file file --output-file file\n");
print ("\t install-dir is the directory where the files are installed.\n");
print ("\t install-root is the directory that should prefix files in the package file.\n");
print ("\t package is the name of the package to list\n");
print ("\t package-file is the file that contains the list of packages\n");
print ("\t output-file is the file which will contain the list of files\n");
}
--- NEW FILE seamonkey-mozconfig ---
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-system-png
ac_add_options --with-pthreads
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --disable-installer
ac_add_options --enable-optimize="$RPM_OPT_FLAGS"
ac_add_options --enable-xinerama
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --disable-xprint
ac_add_options --disable-strip
ac_add_options --enable-pango
#ac_add_options --enable-system-cairo
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --enable-extensions=default,irc
ac_add_options --enable-application=suite
ac_add_options --enable-crypto
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZILLA_OFFICIAL=1
--- NEW FILE seamonkey.desktop ---
[Desktop Entry]
Encoding=UTF-8
Name=Seamonkey Web Browser
Comment=Browse the web with Seamonkey
Exec=seamonkey %u
Icon=seamonkey-icon
Terminal=0
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;
Categories=Network;Application;X-Fedora;
X-Desktop-File-Install-Version=0.10
--- NEW FILE seamonkey.sh.in ---
#!/bin/sh
#
# The contents of this file are subject to the Netscape 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/NPL/
#
# 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 Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s):
#
##
## Usage:
##
## $ mozilla
##
## 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`
## don't leave any core files around
ulimit -c 0
##
## Variables
##
MOZ_DIST_BIN="LIBDIR/seamonkey-MOZILLA_VERSION"
MOZ_PROGRAM="LIBDIR/seamonkey-MOZILLA_VERSION/seamonkey-bin"
MOZ_CLIENT_PROGRAM="LIBDIR/seamonkey-MOZILLA_VERSION/mozilla-xremote-client -a seamonkey"
##
## Set MOZILLA_FIVE_HOME
##
MOZILLA_FIVE_HOME="LIBDIR/seamonkey-MOZILLA_VERSION"
export MOZILLA_FIVE_HOME
##
## Set LD_LIBRARY_PATH
##
if [ "$LD_LIBRARY_PATH" ]
then
LD_LIBRARY_PATH=LIBDIR/seamonkey-MOZILLA_VERSION:LIBDIR/seamonkey-MOZILLA_VERSION/plugins:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=LIBDIR/seamonkey-MOZILLA_VERSION:LIBDIR/seamonkey-MOZILLA_VERSION/plugins
fi
export LD_LIBRARY_PATH
##
## Make sure that we set the plugin path for backwards compatibility
##
if [ "$MOZ_PLUGIN_PATH" ]
then
MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:LIBDIR/mozilla/plugins:LIBDIR/seamonkey-MOZILLA_VERSION/plugins
else
MOZ_PLUGIN_PATH=LIBDIR/mozilla/plugins:LIBDIR/seamonkey-MOZILLA_VERSION/plugins
fi
export MOZ_PLUGIN_PATH
##
## Set MOZ_ENABLE_PANGO is no longer used because Pango is enabled by default
## you may use MOZ_DISABLE_PANGO=1 to force disabling of pango
##
#MOZ_DISABLE_PANGO=1
#export MOZ_DISABLE_PANGO
function check_running() {
$MOZ_CLIENT_PROGRAM 'ping()' 2>/dev/null >/dev/null
RETURN_VAL=$?
if [ "$RETURN_VAL" -eq "2" ]; then
echo 0
return 0
else
echo 1
return 1
fi
}
function open_mail() {
if [ "${ALREADY_RUNNING}" -eq "1" ]; then
exec $MOZ_CLIENT_PROGRAM 'xfeDoCommand(openInbox)' \
2>/dev/null >/dev/null
else
exec $MOZ_PROGRAM $*
fi
}
function open_compose() {
if [ "${ALREADY_RUNNING}" -eq "1" ]; then
exec $MOZ_CLIENT_PROGRAM 'xfeDoCommand(composeMessage)' \
2>/dev/null >/dev/null
else
exec $MOZ_PROGRAM $*
fi
}
# OK, here's where all the real work gets done
# check to see if there's an already running instance or not
ALREADY_RUNNING=`check_running`
# If there is no command line argument at all then try to open a new
# window in an already running instance.
if [ "${ALREADY_RUNNING}" -eq "1" ] && [ -z "$1" ]; then
exec $MOZ_CLIENT_PROGRAM "xfeDoCommand(openBrowser)" 2>/dev/null >/dev/null
fi
# check system locale
MOZARGS=
MOZLOCALE=`echo $LANG | sed "s|_\([^.]*\).*|-\1|g"`
[ -f $MOZILLA_FIVE_HOME/chrome/$MOZLOCALE.jar ] && MOZARGS="-UILocale $MOZLOCALE"
# if there's no command line argument and there's not a running
# instance then just fire up a new copy of the browser
if [ -z "$1" ]; then
exec $MOZ_PROGRAM $MOZARGS 2>/dev/null >/dev/null
fi
unset RETURN_VAL
# If there's a command line argument but it doesn't begin with a -
# it's probably a url. Try to send it to a running instance.
USE_EXIST=0
opt="$1"
case "$opt" in
-mail)
open_mail ${1+"$@"}
;;
-compose)
open_compose ${1+"$@"}
;;
-*) ;;
*) USE_EXIST=1 ;;
esac
if [ "${USE_EXIST}" -eq "1" ] && [ "${ALREADY_RUNNING}" -eq "1" ]; then
# check to make sure that the command contains at least a :/ in it.
echo $opt | grep -e ':/' 2>/dev/null > /dev/null
RETURN_VAL=$?
if [ "$RETURN_VAL" -eq "1" ]; then
# if it doesn't begin with a '/' and it exists when the pwd is
# prepended to it then append the full path
echo $opt | grep -e '^/' 2>/dev/null > /dev/null
if [ "${RETURN_VAL}" -ne "0" ] && [ -e "`pwd`/$opt" ]; then
opt="`pwd`/$opt"
fi
exec $MOZ_CLIENT_PROGRAM "openurl($opt)" 2>/dev/null >/dev/null
fi
# just pass it off if it looks like a url
exec $MOZ_CLIENT_PROGRAM "openurl($opt,new-window)" 2>/dev/null >/dev/null
fi
exec $MOZ_PROGRAM $MOZARGS ${1+"$@"}
--- NEW FILE seamonkey.spec ---
%define desktop_file_utils_version 0.9
%define nspr_version 4.6
%define nss_version 3.11
%define pango_version 1.6.0
%define _unpackaged_files_terminate_build 0
%define builddir %{_builddir}/mozilla
%define mozdir %{_libdir}/seamonkey-%{version}
Name: seamonkey
Summary: Web browser, e-mail, news, IRC client, HTML editor
Version: 1.0
Release: 9%{?dist}
URL: http://www.mozilla.org/projects/seamonkey/
License: MPL
Group: Applications/Internet
Source0: seamonkey-%{version}.source.tar.bz2
Source1: seamonkey.sh.in
Source2: seamonkey-icon.png
Source4: seamonkey.desktop
Source7: seamonkey-make-package.pl
Source10: seamonkey-mozconfig
Source12: seamonkey-mail.desktop
Source13: seamonkey-mail-icon.png
Source17: mozilla-psm-exclude-list
Source18: mozilla-xpcom-exclude-list
Source19: seamonkey-fedora-default-bookmarks.html
Source20: seamonkey-fedora-default-prefs.js
Source100: find-external-requires
Patch1: firefox-1.0-prdtoa.patch
Patch3: firefox-1.1-nss-system-nspr.patch
Patch4: firefox-1.5-with-system-nss.patch
Patch5: seamonkey-disable-visibility.patch
Patch6: firefox-1.5.0.1-dumpstack.patch
Patch21: firefox-0.7.3-default-plugin-less-annoying.patch
Patch22: firefox-0.7.3-psfonts.patch
Patch42: firefox-1.1-uriloader.patch
Patch82: pango-cairo.patch
Patch83: seamonkey-cairo-bug5136.patch
Patch101: thunderbird-0.7.3-gnome-uriloader.patch
Patch102: thunderbird-1.5-bug304720.patch
Patch220: seamonkey-fedora-home-page.patch
Patch225: mozilla-nspr-packages.patch
Patch227: mozilla-1.4.1-ppc64.patch
Patch301: mozilla-1.7.3-gnome-vfs-default-app.patch
Patch304: mozilla-1.7.5-g-application-name.patch
Patch999: seamonkey-configure.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: libpng-devel
BuildRequires: libjpeg-devel
BuildRequires: zlib-devel
BuildRequires: zip
BuildRequires: perl
BuildRequires: libIDL-devel
BuildRequires: glib2-devel
BuildRequires: gtk2-devel
BuildRequires: pango-devel >= %{pango_version}
BuildRequires: nspr-devel >= %{nspr_version}
BuildRequires: nss-devel >= %{nss_version}
Prereq: fileutils perl
Prereq: /usr/bin/killall
PreReq: desktop-file-utils >= %{desktop_file_utils_version}
AutoProv: 0
%define _use_internal_dependency_generator 0
%define __find_requires %{SOURCE100}
%description
SeaMonkey is an all-in-one Internet application suite. It includes
a browser, mail/news client, IRC client, JavaScript debugger, and
a tool to inspect the DOM for web pages. It is derived from the
application formerly known as Mozilla Application Suite.
%prep
%setup -q -n mozilla
%patch1 -p0
%patch3 -p1
%patch4 -p1
# Pragma visibility is broken on most platforms for some reason.
# It works on i386 so leave it alone there. Disable elsewhere.
# See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20297
%ifnarch i386
%patch5 -p1
%endif
%patch6 -p1
%patch21 -p1
%patch22 -p1
%patch42 -p0
%patch82 -p0
%patch83 -p1
%patch101 -p1 -b .gnome-uriloader
%patch102 -p1
%patch220 -p1
%patch225 -p1
%patch227 -p1
%patch301 -p1
%patch304 -p0
%patch999 -p1
%{__rm} -f .mozconfig
%{__cp} %{SOURCE10} .mozconfig
# set up our default bookmarks
%{__cp} %{SOURCE19} $RPM_BUILD_DIR/mozilla/profile/defaults/bookmarks.html
%build
XCFLAGS=-g \
CFLAGS=-g \
%ifarch ia64 ppc
CXXFLAGS="-fno-inline -g" \
%else
CXXFLAGS=-g \
%endif
BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 \
./configure --prefix=%{_prefix} --libdir=%{_libdir} \
--with-default-mozilla-five-home=%{mozdir} \
--mandir=%{_mandir}
BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 make export
BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 make %{?_smp_mflags} libs
%install
%{__rm} -rf $RPM_BUILD_ROOT
BUILD_OFFICIAL=1 MOZILLA_OFFICIAL=1 \
DESTDIR=$RPM_BUILD_ROOT \
make install
# create a list of all of the different package and the files that
# will hold them
%{__rm} -f %{builddir}/seamonkey.list
echo %defattr\(-,root,root\) > %{builddir}/seamonkey.list
# we don't want to ship mozilla's default sidebar components
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/bugzilla.gif
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/bugzilla.src
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/dmoz.gif
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/dmoz.src
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/lxrmozilla.gif
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/lxrmozilla.src
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/mozilla.gif
%{__rm} -f $RPM_BUILD_ROOT/%{mozdir}/searchplugins/mozilla.src
# build all of the default browser components
# base Seamonkey package (seamonkey.list)
%{SOURCE7} --package langenus --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package regus --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package deflenus --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package xpcom --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir} \
--exclude-file=%{SOURCE18}
%{SOURCE7} --package browser --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package spellcheck --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package psm --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir} \
--exclude-file=%{SOURCE17}
%{SOURCE7} --package mail --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package chatzilla --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package venkman --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
%{SOURCE7} --package inspector --output-file %{builddir}/seamonkey.list \
--package-file $RPM_BUILD_DIR/mozilla/xpinstall/packager/packages-unix \
--install-dir $RPM_BUILD_ROOT/%{mozdir} \
--install-root %{mozdir}
# build our initial component and chrome registry
pushd `pwd`
cd $RPM_BUILD_ROOT/%{mozdir}
# save a copy of the default installed-chrome.txt file before we
# muck with it
mkdir chrome/lang
cp chrome/installed-chrome.txt chrome/lang/
# set up the default skin and locale to trigger the generation of
# the user-locales and users-skins.rdf
echo "skin,install,select,classic/1.0" >> chrome/installed-chrome.txt
echo "locale,install,select,en-US" >> chrome/installed-chrome.txt
# save the defaults in a file that will be used later to rebuild the
# installed-chrome.txt file
echo "skin,install,select,classic/1.0" >> chrome/lang/default.txt
echo "locale,install,select,en-US" >> chrome/lang/default.txt
# set up the chrome rdf files
LD_LIBRARY_PATH=`pwd`:`pwd`/.. MOZILLA_FIVE_HOME=`pwd` MOZ_DISABLE_GNOME=1 ./regchrome
# fix permissions of the chrome directories
/usr/bin/find . -type d -perm 0700 -exec chmod 755 {} \; || :
# We don't want JS files to be executable
/usr/bin/find . -type f -name \*.js -exec chmod 644 {} \; || :
popd
# set up our desktop files
%{__mkdir_p} $RPM_BUILD_ROOT/%{_datadir}/pixmaps/
# install desktop files in correct directory
%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/applications/
desktop-file-install --vendor mozilla \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
--add-category X-Fedora \
--add-category Application \
--add-category Network \
%{SOURCE4}
desktop-file-install --vendor mozilla \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
--add-category X-Fedora \
--add-category Application \
--add-category Network \
%{SOURCE12}
install -c -m 644 %{SOURCE2} %{SOURCE13} \
$RPM_BUILD_ROOT/%{_datadir}/pixmaps/
if [ ! -d $RPM_BUILD_ROOT/%{mozdir}/plugins/ ]; then
mkdir -m 755 $RPM_BUILD_ROOT/%{mozdir}/plugins
fi
# install our seamonkey.sh file
cat %{SOURCE1} | sed -e 's/MOZILLA_VERSION/%{version}/g' \
-e 's,LIBDIR,%{_libdir},g' > \
$RPM_BUILD_ROOT/usr/bin/seamonkey
chmod 755 $RPM_BUILD_ROOT/usr/bin/seamonkey
# set up our default preferences
%{__cat} %{SOURCE20} | %{__sed} -e 's,SEAMONKEY_RPM_VR,%{version}-%{release},g' > \
$RPM_BUILD_ROOT/fc-default-prefs
%{__cp} $RPM_BUILD_ROOT/fc-default-prefs $RPM_BUILD_ROOT/%{mozdir}/defaults/pref/all-fedora.js
%{__rm} $RPM_BUILD_ROOT/fc-default-prefs
# we use /usr/lib/mozilla/plugins which is the version-independent
# place that plugins can be installed
%{__mkdir_p} $RPM_BUILD_ROOT/%{_libdir}/mozilla/plugins
# ghost files
touch $RPM_BUILD_ROOT%{mozdir}/chrome/chrome.rdf
for overlay in {"browser","communicator","cookie","editor","global","inspector","messenger","navigator"}; do
%{__mkdir_p} $RPM_BUILD_ROOT%{mozdir}/chrome/overlayinfo/$overlay/content
touch $RPM_BUILD_ROOT%{mozdir}/chrome/overlayinfo/$overlay/content/overlays.rdf
done
for overlay in {"browser","global"}; do
%{__mkdir_p} $RPM_BUILD_ROOT%{mozdir}/chrome/overlayinfo/$overlay/skin
touch $RPM_BUILD_ROOT%{mozdir}/chrome/overlayinfo/$overlay/skin/stylesheets.rdf
done
touch $RPM_BUILD_ROOT%{mozdir}/chrome/chrome.rdf
%{__mkdir_p} $RPM_BUILD_ROOT%{mozdir}/components/myspell
%clean
%{__rm} -rf $RPM_BUILD_ROOT
%post
update-desktop-database %{_datadir}/applications
%postun
update-desktop-database %{_datadir}/applications
%files -f seamonkey.list
%defattr(-,root,root)
%{_bindir}/seamonkey
%{_datadir}/pixmaps/seamonkey-icon.png
%{_datadir}/pixmaps/seamonkey-mail-icon.png
%verify (not md5 mtime size) %{mozdir}/components/compreg.dat
%verify (not md5 mtime size) %{mozdir}/components/xpti.dat
%{_mandir}/man1/seamonkey.1.gz
%dir %{_libdir}/mozilla/plugins
%dir %{mozdir}
%dir %{mozdir}/init.d
%dir %{mozdir}/defaults/pref
%dir %{mozdir}/defaults/profile
%dir %{mozdir}/defaults/profile/US
%dir %{mozdir}/defaults/wallet
%dir %{mozdir}/defaults/autoconfig
%dir %{mozdir}/defaults/messenger/US
%dir %{mozdir}/defaults/messenger
%dir %{mozdir}/defaults
%dir %{mozdir}/chrome/icons/default
%dir %{mozdir}/chrome/icons
%dir %{mozdir}/chrome/lang
%dir %{mozdir}/chrome
%dir %{mozdir}/res/dtd
%dir %{mozdir}/res/fonts
%dir %{mozdir}/res
%dir %{mozdir}/components/myspell
%dir %{mozdir}/components
%dir %{mozdir}/searchplugins
%dir %{mozdir}/plugins
%dir %{mozdir}/res/html
%dir %{mozdir}/res/samples
%dir %{mozdir}/res/entityTables
%verify (not md5 mtime size) %{mozdir}/chrome/installed-chrome.txt
%{mozdir}/chrome/lang/installed-chrome.txt
%{mozdir}/chrome/lang/default.txt
%{mozdir}/defaults/pref/all-fedora.js
%ghost %{mozdir}/chrome/chrome.rdf
%ghost %{mozdir}/chrome/overlays.rdf
%ghost %{mozdir}/chrome/stylesheets.rdf
%ghost %{mozdir}/chrome/overlayinfo/browser/skin/stylesheets.rdf
%ghost %{mozdir}/chrome/overlayinfo/global/skin/stylesheets.rdf
%ghost %{mozdir}/chrome/overlayinfo/browser/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/communicator/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/global/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/editor/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/navigator/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/cookie/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/messenger/content/overlays.rdf
%ghost %{mozdir}/chrome/overlayinfo/inspector/content/overlays.rdf
%dir %{mozdir}/chrome/overlayinfo/browser/content
%dir %{mozdir}/chrome/overlayinfo/browser/skin
%dir %{mozdir}/chrome/overlayinfo/browser
%dir %{mozdir}/chrome/overlayinfo/global/content
%dir %{mozdir}/chrome/overlayinfo/global/skin
%dir %{mozdir}/chrome/overlayinfo/global
%dir %{mozdir}/chrome/overlayinfo/communicator/content
%dir %{mozdir}/chrome/overlayinfo/communicator
%dir %{mozdir}/chrome/overlayinfo/editor/content
%dir %{mozdir}/chrome/overlayinfo/editor
%dir %{mozdir}/chrome/overlayinfo/navigator/content
%dir %{mozdir}/chrome/overlayinfo/navigator
%dir %{mozdir}/chrome/overlayinfo/cookie/content
%dir %{mozdir}/chrome/overlayinfo/cookie
%dir %{mozdir}/chrome/overlayinfo/messenger/content
%dir %{mozdir}/chrome/overlayinfo/messenger
%dir %{mozdir}/chrome/overlayinfo/inspector/content
%dir %{mozdir}/chrome/overlayinfo/inspector
%dir %{mozdir}/chrome/overlayinfo
%dir %{mozdir}/greprefs
%{_datadir}/applications/mozilla-%{name}.desktop
%{_datadir}/applications/mozilla-%{name}-mail.desktop
%changelog
* Mon Apr 10 2006 Kai Engert <kengert at redhat.com> 1.0-9
- Added dist suffix to release
* Fri Mar 17 2006 Kai Engert <kengert at redhat.com> 1.0-8
- Changed license to MPL
* Tue Mar 14 2006 Kai Engert <kengert at redhat.com> 1.0-7
- updated %files section, removed %preun,
- removed explicit nspr/nss requires
* Thu Mar 02 2006 Kai Engert <kengert at redhat.com> 1.0-6
- Use a single package for all included applications.
- Make sure installed JavaScript files are not executable.
- Disable AutoProv, use find-external-requires.
* Fri Feb 10 2006 Kai Engert <kengert at redhat.com> 1.0-4
- Addressed several review comments, see bugzilla.redhat.com #179802.
* Sat Jan 28 2006 Kai Engert <kengert at redhat.com> 1.0-1
- Initial version based on Seamonkey 1.0, using a combination of patches
from Mozilla 1.7.x, Firefox 1.5 and Thunderbird 1.5 RPM packages.
thunderbird-0.7.3-gnome-uriloader.patch:
--- NEW FILE thunderbird-0.7.3-gnome-uriloader.patch ---
--- mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp.foo 2004-01-05 18:38:48.000000000 -0500
+++ mozilla/uriloader/exthandler/unix/nsGNOMERegistry.cpp 2004-01-05 19:14:51.000000000 -0500
@@ -39,6 +39,7 @@
#include "nsGNOMERegistry.h"
#include "prlink.h"
#include "prmem.h"
+#include "prenv.h"
#include "nsString.h"
#include "nsIComponentManager.h"
#include "nsILocalFile.h"
@@ -137,6 +138,10 @@
} \
PR_END_MACRO
+ // Don't even use this code if an env var is set
+ if (PR_GetEnv("MOZ_DISABLE_GNOME"))
+ return;
+
// Attempt to open libgconf
gconfLib = LoadVersionedLibrary("gconf-2", ".4");
ENSURE_LIB(gconfLib);
thunderbird-1.5-bug304720.patch:
--- NEW FILE thunderbird-1.5-bug304720.patch ---
Index: mozilla/editor/txtsvc/src/nsTextServicesDocument.cpp
===================================================================
RCS file: /cvsroot/mozilla/editor/txtsvc/src/nsTextServicesDocument.cpp,v
retrieving revision 1.59
diff -u -w -r1.59 nsTextServicesDocument.cpp
--- mozilla/editor/txtsvc/src/nsTextServicesDocument.cpp 22 Aug 2005 03:00:03 -0000 1.59
+++ mozilla/editor/txtsvc/src/nsTextServicesDocument.cpp 21 Nov 2005 23:37:13 -0000
@@ -2494,6 +2494,8 @@
nsresult
nsTextServicesDocument::DeleteNode(nsIDOMNode *aChild)
{
+ NS_ENSURE_TRUE(mIterator, NS_ERROR_FAILURE);
+
//**** KDEBUG ****
// printf("** DeleteNode: 0x%.8x\n", aChild);
// fflush(stdout);
Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/seamonkey/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore 10 Apr 2006 21:41:15 -0000 1.1
+++ .cvsignore 10 Apr 2006 21:58:25 -0000 1.2
@@ -0,0 +1 @@
+seamonkey-1.0.source.tar.bz2
Index: sources
===================================================================
RCS file: /cvs/extras/rpms/seamonkey/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources 10 Apr 2006 21:41:15 -0000 1.1
+++ sources 10 Apr 2006 21:58:25 -0000 1.2
@@ -0,0 +1 @@
+e4f2edc5b2248d090303c70f5b28f210 seamonkey-1.0.source.tar.bz2
More information about the fedora-extras-commits
mailing list