public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo commit in src/patchsets/seamonkey/1.1.5: 000_flex-configure-LANG.patch 001_firefox-1.0-prdtoa.patch 002_seamonkey-disable-visibility.patch 003_firefox-arm.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.1a2-ia64.patch 007_seamonkey-1.0.1-dumpstack.patch 008_seamonkey-gentoo-pkgconfig.patch 020_firefox-0.7.3-default-plugin-less-annoying.patch 021_seamonkey-1.1-include-cairo-libs.patch 030_pango-cairo-1.patch 031_firefox-1.1-uriloader-1.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 063_mozilla-rpath-3.patch 064_mozilla-1.7.10-nsplugins-v2.patch 101_thunderbird-0.7.3-gnome-uriloader.patch 220_seamonkey-gentoo-homepage.patch 225_mozilla-nspr-packages.patch 301_mozilla-1.7.3-gnome-vfs-default-app.patch 303_mozilla-1.7.13-as-needed.patch 304_mozilla-1.7.5-g-application-name.patch
@ 2007-10-20 14:59 Raul Porcel (armin76)
  0 siblings, 0 replies; only message in thread
From: Raul Porcel (armin76) @ 2007-10-20 14:59 UTC (permalink / raw
  To: gentoo-commits

armin76     07/10/20 14:59:11

  Added:                000_flex-configure-LANG.patch
                        001_firefox-1.0-prdtoa.patch
                        002_seamonkey-disable-visibility.patch
                        003_firefox-arm.patch 004_mozilla-hppa.patch
                        005_mozilla-firefox-1.1a2-ia64.patch
                        007_seamonkey-1.0.1-dumpstack.patch
                        008_seamonkey-gentoo-pkgconfig.patch
                        020_firefox-0.7.3-default-plugin-less-annoying.patch
                        021_seamonkey-1.1-include-cairo-libs.patch
                        030_pango-cairo-1.patch
                        031_firefox-1.1-uriloader-1.patch
                        032_firefox-2.0_ppc64-1.patch
                        033_firefox-2.0_ppc_powerpc.patch
                        050_respect-host-variable.patch
                        055_firefox-2.0_gfbsd-pthreads.patch
                        063_mozilla-rpath-3.patch
                        064_mozilla-1.7.10-nsplugins-v2.patch
                        101_thunderbird-0.7.3-gnome-uriloader.patch
                        220_seamonkey-gentoo-homepage.patch
                        225_mozilla-nspr-packages.patch
                        301_mozilla-1.7.3-gnome-vfs-default-app.patch
                        303_mozilla-1.7.13-as-needed.patch
                        304_mozilla-1.7.5-g-application-name.patch
  Log:
  Add patches for 1.1.5

Revision  Changes    Path
1.1                  src/patchsets/seamonkey/1.1.5/000_flex-configure-LANG.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/000_flex-configure-LANG.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/000_flex-configure-LANG.patch?rev=1.1&content-type=text/plain

Index: 000_flex-configure-LANG.patch
===================================================================
The LANG vars aren't reset early enough so when sed tries to use [a-zA-Z] in 
option parsing, it may break.

http://bugs.gentoo.org/103483

--- configure
+++ configure
@@ -54,6 +54,16 @@
 infodir='${prefix}/info'
 mandir='${prefix}/man'
 
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
 # Initialize some other variables.
 subdirs=
 MFLAGS= MAKEFLAGS=
@@ -452,16 +463,6 @@
   esac
 done
 
-# NLS nuisances.
-# Only set these to C if already set.  These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
-
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -rf conftest* confdefs.h
 # AIX cpp loses on an empty file, so make sure it contains at least a newline.



1.1                  src/patchsets/seamonkey/1.1.5/001_firefox-1.0-prdtoa.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/001_firefox-1.0-prdtoa.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/001_firefox-1.0-prdtoa.patch?rev=1.1&content-type=text/plain

Index: 001_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



1.1                  src/patchsets/seamonkey/1.1.5/002_seamonkey-disable-visibility.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/002_seamonkey-disable-visibility.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/002_seamonkey-disable-visibility.patch?rev=1.1&content-type=text/plain

Index: 002_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



1.1                  src/patchsets/seamonkey/1.1.5/003_firefox-arm.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/003_firefox-arm.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/003_firefox-arm.patch?rev=1.1&content-type=text/plain

Index: 003_firefox-arm.patch
===================================================================
# Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=336183

--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp	2006-05-17 02:02:51.000000000 -0400
+++ mozilla-16052006/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp	2006-05-17 01:17:16.000000000 -0400
@@ -39,18 +39,31 @@
 /* Implement shared vtbl methods. */
 
 #include "xptcprivate.h"
 
 #if !defined(LINUX) || !defined(__arm__)
 #error "This code is for Linux ARM only. Please check if it works for you, too.\nDepends strongly on gcc behaviour."
 #endif
 
+#if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4))
+/* This tells gcc3.4+ not to optimize away symbols.
+ * @see http://gcc.gnu.org/gcc-3.4/changes.html
+ */
+#define DONT_DROP_OR_WARN __attribute__((used))
+#else
+/* This tells older gccs not to warn about unused vairables.
+ * @see http://docs.freebsd.org/info/gcc/gcc.info.Variable_Attributes.html
+ */
+#define DONT_DROP_OR_WARN __attribute__((unused))
+#endif
+
 /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol.  */
-static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch");
+static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch") 
+DONT_DROP_OR_WARN;
 
 static nsresult
 PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
 {
 #define PARAM_BUFFER_COUNT     16
 
     nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
     nsXPTCMiniVariant* dispatchParams = NULL;



1.1                  src/patchsets/seamonkey/1.1.5/004_mozilla-hppa.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/004_mozilla-hppa.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/004_mozilla-hppa.patch?rev=1.1&content-type=text/plain

Index: 004_mozilla-hppa.patch
===================================================================
diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2004-12-21 13:37:00.503842544 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2004-12-21 13:41:49.439917584 +0000
@@ -167,6 +167,19 @@
 endif
 endif
 
+#
+# Linux/HPPA/gcc
+#
+ifeq ($(OS_ARCH),Linux)
+ifneq (,$(filter parisc parisc64,$(OS_TEST)))
+#ifeq ($(CC),gcc)  # Do not check for gcc since there is only this compiler on linux for hppa
+CPPSRCS		:= xptcinvoke_pa32.cpp xptcstubs_pa32.cpp
+ASFILES		:= xptcstubs_asm_parisc_linux.s xptcinvoke_asm_parisc_linux.s
+#endif
+endif
+endif
+
+
 ######################################################################
 # M68k
 ######################################################################
diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s	1970-01-01 00:00:00.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_parisc_linux.s	2004-12-21 13:39:03.390160984 +0000
@@ -0,0 +1,128 @@
+
+	.LEVEL 1.1
+	.text
+	.align 4
+
+framesz:
+	.equ 128
+
+; XPTC_InvokeByIndex(nsISuppots* that, PRUint32 methodIndex,
+;   PRUint32 paramCount, nsXPTCVariant* params);
+
+.globl XPTC_InvokeByIndex
+	.type XPTC_InvokeByIndex, @function
+
+
+XPTC_InvokeByIndex:
+  	.PROC
+	.CALLINFO FRAME=72, CALLER,SAVE_RP, SAVE_SP, ENTRY_GR=3
+	.ENTRY
+
+ ; frame marker takes 48 bytes,
+ ; register spill area takes 8 bytes,
+ ; local stack area takes 72 bytes result in 128 bytes total
+
+        STW          %rp,-20(%sp)
+        STW,MA       %r3,128(%sp)
+
+        LDO     -framesz(%r30),%r28
+        STW     %r28,-4(%r30)       ; save previous sp
+        STW     %r19,-32(%r30)
+
+        STW     %r26,-36-framesz(%r30)  ; save argument registers in
+        STW     %r25,-40-framesz(%r30)  ; in PREVIOUS frame
+        STW     %r24,-44-framesz(%r30)  ;
+        STW     %r23,-48-framesz(%r30)  ;
+
+;	B,L     .+8,%r2
+;	ADDIL   L'invoke_count_bytes-$PIC_pcrel$1+4,%r2,%r1
+;    ;    LDO     R'invoke_count_bytes-$PIC_pcrel$2+8(%r1),%r1
+;$PIC_pcrel$1
+;        LDSID   (%r1),%r31
+;$PIC_pcrel$2
+;        MTSP    %r31,%sr0
+
+	.CALL   ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26;out=28
+        BL    invoke_count_bytes,%r31
+        COPY    %r31,%r2
+
+        CMPIB,>=        0,%r28, .+76
+        COPY    %r30,%r3            ; copy stack ptr to saved stack ptr
+        ADD     %r30,%r28,%r30      ; extend stack frame
+        LDW     -4(%r3),%r28        ; move frame
+        STW     %r28,-4(%r30)
+        LDW     -8(%r3),%r28
+        STW     %r28,-8(%r30)
+        LDW     -12(%r3),%r28
+        STW     %r28,-12(%r30)
+        LDW     -16(%r3),%r28
+        STW     %r28,-16(%r30)
+        LDW     -20(%r3),%r28
+        STW     %r28,-20(%r30)
+        LDW     -24(%r3),%r28
+        STW     %r28,-24(%r30)
+        LDW     -28(%r3),%r28
+        STW     %r28,-28(%r30)
+        LDW     -32(%r3),%r28
+        STW     %r28,-32(%r30)
+
+        LDO     -40(%r30),%r26         ; load copy address
+        LDW     -44-framesz(%r3),%r25  ; load rest of 2 arguments
+        LDW     -48-framesz(%r3),%r24  ;
+
+        LDW     -32(%r30),%r19 ; shared lib call destroys r19; reload
+;        B,L     .+8,%r2
+;        ADDIL   L'invoke_copy_to_stack-$PIC_pcrel$3+4,%r2,%r1
+;        LDO     R'invoke_copy_to_stack-$PIC_pcrel$4+8(%r1),%r1
+;$PIC_pcrel$3
+;        LDSID   (%r1),%r31
+;$PIC_pcrel$4
+;        MTSP    %r31,%sr0
+        .CALL   ARGW0=GR,ARGW1=GR,ARGW2=GR ;in=24,25,26
+        BL    invoke_copy_to_stack,%r31
+        COPY    %r31,%r2
+
+        LDO     -48(%r30),%r20
+        EXTRW,U,= %r28,31,1,%r22
+        FLDD    0(%r20),%fr7  ; load double arg 1
+        EXTRW,U,= %r28,30,1,%r22
+        FLDW    8(%r20),%fr5L ; load float arg 1
+        EXTRW,U,= %r28,29,1,%r22
+        FLDW    4(%r20),%fr6L ; load float arg 2
+        EXTRW,U,= %r28,28,1,%r22
+        FLDW    0(%r20),%fr7L ; load float arg 3
+
+        LDW     -36-framesz(%r3),%r26  ; load ptr to 'that'
+        LDW     -40(%r30),%r25  ; load the rest of dispatch argument registers
+        LDW     -44(%r30),%r24
+        LDW     -48(%r30),%r23
+
+        LDW     -36-framesz(%r3),%r20  ; load vtable addr
+        LDW     -40-framesz(%r3),%r28  ; load index
+        LDW     0(%r20),%r20    ; follow vtable
+;        LDO     0(%r20),%r20   ; offset vtable by 16 bytes (g++: 8, aCC: 16)
+        SH2ADDL %r28,%r20,%r28  ; add 4*index to vtable entry
+        LDW     0(%r28),%r22    ; load vtable entry
+
+;        B,L     .+8,%r2
+;        ADDIL   L'$$dyncall_external-$PIC_pcrel$5+4,%r2,%r1
+;        LDO     R'$$dyncall_external-$PIC_pcrel$6+8(%r1),%r1
+;$PIC_pcrel$5
+;        LDSID   (%r1),%r31
+;$PIC_pcrel$6
+;        MTSP    %r31,%sr0
+        .CALL ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=22-26;out=28;
+        BL    $$dyncall,%r31
+        COPY    %r31,%r2
+
+        LDW     -32(%r30),%r19
+        COPY    %r3,%r30              ; restore saved stack ptr
+
+        LDW          -148(%sp),%rp
+        LDWM       -128(%sp),%r3
+	BV,N             (%rp)
+	NOP
+   .EXIT
+  .PROCEND  ;in=23,24,25,26;
+  .SIZE XPTC_InvokeByIndex, .-XPTC_InvokeByIndex
+
diff -uNr mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s	1970-01-01 00:00:00.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_parisc_linux.s	2004-12-21 13:39:03.392160680 +0000
@@ -0,0 +1,73 @@
+        .LEVEL  1.1
+	.TEXT
+	.ALIGN 4
+
+curframesz:
+	.EQU 128
+
+
+; SharedStub has stack size of 128 bytes
+
+lastframesz:
+	.EQU 64
+
+; the StubN C++ function has a small stack size of 64 bytes
+
+
+.globl SharedStub
+	.type SharedStub, @function
+
+SharedStub:
+        .PROC
+        .CALLINFO CALLER,FRAME=80,SAVE_RP
+
+  .ENTRY
+        STW     %rp,-20(%sp)
+        LDO     128(%sp),%sp
+
+        STW     %r19,-32(%r30)
+        STW     %r26,-36-curframesz(%r30) ; save arg0 in previous frame
+
+        LDO     -80(%r30),%r28
+        FSTD,MA %fr5,8(%r28)   ; save darg0
+        FSTD,MA %fr7,8(%r28)   ; save darg1
+        FSTW,MA %fr4L,4(%r28)  ; save farg0
+        FSTW,MA %fr5L,4(%r28)  ; save farg1
+        FSTW,MA %fr6L,4(%r28)  ; save farg2
+        FSTW,MA %fr7L,4(%r28)  ; save farg3
+
+        ; Former value of register 26 is already properly saved by StubN,
+        ; but register 25-23 are not because of the arguments mismatch
+        STW     %r25,-40-curframesz-lastframesz(%r30) ; save r25
+        STW     %r24,-44-curframesz-lastframesz(%r30) ; save r24
+        STW     %r23,-48-curframesz-lastframesz(%r30) ; save r23
+        COPY    %r26,%r25                             ; method index is arg1
+        LDW     -36-curframesz-lastframesz(%r30),%r26 ; self is arg0
+        LDO     -40-curframesz-lastframesz(%r30),%r24 ; normal args is arg2
+        LDO     -80(%r30),%r23                        ; floating args is arg3
+
+;       BL      .+8,%r2
+;       ADDIL   L'PrepareAndDispatch-$PIC_pcrel$0+4,%r2
+;        LDO     R'PrepareAndDispatch-$PIC_pcrel$1+8(%r1),%r1
+;$PIC_pcrel$0
+;        LDSID   (%r1),%r31
+;$PIC_pcrel$1
+;        MTSP    %r31,%sr0
+        .CALL   ARGW0=GR,ARGW1=GR,ARGW2=GR,ARGW3=GR,RTNVAL=GR ;in=23-26;out=28;
+        BL     PrepareAndDispatch, %r31
+        COPY    %r31,%r2
+
+        LDW     -32(%r30),%r19
+
+        LDW     -148(%sp),%rp
+        LDO     -128(%sp),%sp
+
+
+	BV,N     (%rp)
+	NOP
+	NOP
+
+	.EXIT
+        .PROCEND        ;in=26;out=28;
+
+	.SIZE SharedStub, .-SharedStub



1.1                  src/patchsets/seamonkey/1.1.5/005_mozilla-firefox-1.1a2-ia64.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/005_mozilla-firefox-1.1a2-ia64.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/005_mozilla-firefox-1.1a2-ia64.patch?rev=1.1&content-type=text/plain

Index: 005_mozilla-firefox-1.1a2-ia64.patch
===================================================================
--- mozilla.orig/extensions/transformiix/source/base/Double.cpp
+++ mozilla/extensions/transformiix/source/base/Double.cpp
@@ -75,14 +75,7 @@
 #define CPU_IS_ARM
 #endif
 
-#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
-/**
- * This version of the macros is safe for the alias optimizations
- * that gcc does, but uses gcc-specific extensions.
- */
-
 typedef union txdpun {
-    PRFloat64 d;
     struct {
 #if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
         PRUint32 lo, hi;
@@ -90,8 +83,14 @@
         PRUint32 hi, lo;
 #endif
     } s;
+    PRFloat64 d;
 } txdpun;
 
+#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
+/**
+ * This version of the macros is safe for the alias optimizations
+ * that gcc does, but uses gcc-specific extensions.
+ */
 #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; }))
 #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; }))
 
@@ -117,20 +116,20 @@
 
 //-- Initialize Double related constants
 #ifdef IS_BIG_ENDIAN
-const PRUint32 nanMask[2] =    {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
-                                0xffffffff};
-const PRUint32 infMask[2] =    {TX_DOUBLE_HI32_EXPMASK, 0};
-const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
+const txdpun nanMask =    {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK,
+                           0xffffffff};
+const txdpun infMask =    {TX_DOUBLE_HI32_EXPMASK, 0};
+const txdpun negInfMask = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0};
 #else
-const PRUint32 nanMask[2] =    {0xffffffff,
-                                TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
-const PRUint32 infMask[2] =    {0, TX_DOUBLE_HI32_EXPMASK};
-const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
+const txdpun nanMask = {0xffffffff,
+                        TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK};
+const txdpun infMask =    {0, TX_DOUBLE_HI32_EXPMASK};
+const txdpun negInfMask = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT};
 #endif
 
-const double Double::NaN = *((double*)nanMask);
-const double Double::POSITIVE_INFINITY = *((double*)infMask);
-const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
+const double Double::NaN = nanMask.d;
+const double Double::POSITIVE_INFINITY = infMask.d;
+const double Double::NEGATIVE_INFINITY = negInfMask.d;
 
 /*
  * Determines whether the given double represents positive or negative



1.1                  src/patchsets/seamonkey/1.1.5/007_seamonkey-1.0.1-dumpstack.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/007_seamonkey-1.0.1-dumpstack.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/007_seamonkey-1.0.1-dumpstack.patch?rev=1.1&content-type=text/plain

Index: 007_seamonkey-1.0.1-dumpstack.patch
===================================================================
--- mozilla/xpcom/base/nsStackFrameUnix.cpp.prestackdisable	2006-04-14 02:30:15.000000000 +0200
+++ mozilla/xpcom/base/nsStackFrameUnix.cpp	2006-04-14 02:31:02.000000000 +0200
@@ -88,6 +88,9 @@
 
 void DumpStackToFile(FILE* aStream)
 {
+  fprintf(aStream, "Stacktrace disabled for now.\n"
+                   "See https://bugzilla.mozilla.org/show_bug.cgi?id=323853\n");
+#if 0
   // Stack walking code courtesy Kipp's "leaky".
 
   // Get the frame pointer
@@ -128,6 +131,7 @@
               symbol, off, info.dli_fname, foff);
     }
   }
+#endif
 }
 
 #elif defined(__sun) && (defined(__sparc) || defined(sparc) || defined(__i386) || defined(i386))



1.1                  src/patchsets/seamonkey/1.1.5/008_seamonkey-gentoo-pkgconfig.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/008_seamonkey-gentoo-pkgconfig.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/008_seamonkey-gentoo-pkgconfig.patch?rev=1.1&content-type=text/plain

Index: 008_seamonkey-gentoo-pkgconfig.patch
===================================================================
--- mozilla/config/autoconf.mk.in	2005-08-17 19:17:17.000000000 +0200
+++ mozilla/config/autoconf.mk.in	2005-11-17 14:23:11.000000000 +0100
@@ -54,13 +54,13 @@
 prefix		= @prefix@
 exec_prefix	= @exec_prefix@
 bindir		= @bindir@
-includedir	= @includedir@/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+includedir	= $(mozappdir)/include
 libdir		= @libdir@
 datadir		= @datadir@
 mandir		= @mandir@
-idldir		= @datadir@/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+idldir		= $(mozappdir)/idl
 
-mozappdir	= $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION)
+mozappdir	= $(libdir)/$(MOZ_APP_NAME)
 mredir		= $(libdir)/mre/mre-$(MOZ_APP_VERSION)
 mrelibdir	= $(mredir)/lib
 
--- mozilla/build/unix/Makefile.in	2005-07-07 20:24:39.000000000 +0200
+++ mozilla/build/unix/Makefile.in	2005-11-17 21:41:47.000000000 +0100
@@ -61,6 +61,19 @@
 NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
 endif
 
+# Hack to make sure that mozilla-nss.pc has the proper nss dependencies
+ifdef MOZ_NATIVE_NSS
+FULL_NSS_CFLAGS=$(shell $(NSS_CONFIG) --cflags)
+FULL_NSS_LIBS=$(shell $(NSS_CONFIG) --libs)
+NSS_NAME=nss
+NSS_VERSION=$(shell $(NSS_CONFIG) --version)
+else
+FULL_NSS_CFLAGS=-I$(includedir)/nss
+FULL_NSS_LIBS=-L$(mozappdir)/nss -lnss3 -lsmime3 -lssl3 -lsoftokn3
+NSS_NAME=$(MOZ_APP_NAME)-nss
+NSS_VERSION=$(MOZ_APP_VERSION)
+endif
+
 ifdef MOZ_ENABLE_GTK
 SUPERWIN_LIBS=-lgtksuperwin
 endif
@@ -82,7 +82,8 @@
 	-e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
 	-e "s|%DEFS%|$(_DEFS)|" \
 	-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
-	-e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" > $@
+	-e 's|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|' \
+	-e 's|\(echo -L.*\)\($$\)|\1 -Wl,-R$(mozappdir)\2|' > $@
 
 $(MOZ_APP_NAME)-%.pc : mozilla-%.pc.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk
 	cat $< | sed \
@@ -99,7 +112,12 @@
 	-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
 	-e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
 	-e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
-	-e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" > $@
+	-e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" \
+	-e "s|%FULL_NSS_LIBS%|$(FULL_NSS_LIBS)|" \
+	-e "s|%FULL_NSS_CFLAGS%|$(FULL_NSS_CFLAGS)|" \
+	-e "s|%NSS_NAME%|$(NSS_NAME)|" \
+	-e "s|%NSS_VERSION%|$(NSS_VERSION)|" \
+	-e "s|\(^Libs: -L.*\)|\1 -Wl,-R\$$\{libdir}|" > $@
 
 libs:: $(MOZ_APP_NAME)-config
 	chmod 755 $<
--- mozilla/build/unix/mozilla-js.pc.in.orig	2005-07-05 23:21:52.000000000 +0000
+++ mozilla/build/unix/mozilla-js.pc.in	2006-01-15 10:03:00.000000000 +0000
@@ -6,6 +6,6 @@
 Name: JavaScript
 Description: The Mozilla JavaScript Library
 Version: %MOZILLA_VERSION%
-Requires: %NSPR_NAME% >= %NSPR_VERSION%
+Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
 Libs: -L${libdir} -lmozjs
 Cflags: -I${includedir}/js -DXP_UNIX
--- mozilla/build/unix/mozilla-nspr.pc.in.orig	2005-07-05 23:21:52.000000000 +0000
+++ mozilla/build/unix/mozilla-nspr.pc.in	2006-01-15 10:01:16.000000000 +0000
@@ -1,12 +1,5 @@
-prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%
-
 Name: NSPR
 Description: The Netscape Portable Runtime
 Version: %NSPR_VERSION%
-Libs: %FULL_NSPR_LIBS%
-Cflags: %FULL_NSPR_CFLAGS%
-
+Requires: %NSPR_NAME% >= %NSPR_VERSION%
 
--- mozilla/build/unix/mozilla-xpcom.pc.in.orig	2005-07-05 23:21:52.000000000 +0000
+++ mozilla/build/unix/mozilla-xpcom.pc.in	2006-01-15 10:02:34.000000000 +0000
@@ -7,6 +7,6 @@
 Name: XPCOM
 Description: The Mozilla Cross Platform Component Library
 Version: %MOZILLA_VERSION%
-Requires: %NSPR_NAME% >= %NSPR_VERSION%
+Requires: %MOZ_APP_NAME%-%NSPR_NAME% >= %NSPR_VERSION%
 Libs: -L${libdir} -lxpcom
 Cflags: -I${includedir} -I${includedir}/xpcom -I${includedir}/string
--- mozilla/build/unix/mozilla-nss.pc.in.orig	2005-07-05 23:21:52.000000000 +0000
+++ mozilla/build/unix/mozilla-nss.pc.in	2006-01-15 10:26:13.000000000 +0000
@@ -1,11 +1,4 @@
-prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%
-
 Name: NSS
 Description: Mozilla Network Security Services
-Version: %MOZILLA_VERSION%
-Requires: %NSPR_NAME% >= %NSPR_VERSION%
-Libs: -L${libdir} -lnss3 -lsmime3 -lssl3 -lsoftokn3
-Cflags: -I${includedir}/nss
+Version: %NSS_VERSION%
+Requires: %NSS_NAME% >= %NSS_VERSION%



1.1                  src/patchsets/seamonkey/1.1.5/020_firefox-0.7.3-default-plugin-less-annoying.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/020_firefox-0.7.3-default-plugin-less-annoying.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/020_firefox-0.7.3-default-plugin-less-annoying.patch?rev=1.1&content-type=text/plain

Index: 020_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



1.1                  src/patchsets/seamonkey/1.1.5/021_seamonkey-1.1-include-cairo-libs.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/021_seamonkey-1.1-include-cairo-libs.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/021_seamonkey-1.1-include-cairo-libs.patch?rev=1.1&content-type=text/plain

Index: 021_seamonkey-1.1-include-cairo-libs.patch
===================================================================
--- mozilla/configure.in.orig	2007-01-11 19:45:06.000000000 +0100
+++ mozilla/configure.in	2007-01-23 21:18:26.905154656 +0100
@@ -6730,7 +6730,7 @@
    else
       PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION)
       MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
-      MOZ_CAIRO_LIBS=$CAIRO_LIBS
+      MOZ_CAIRO_LIBS="$CAIRO_LIBS -lXrender $XLIBS -lfontconfig -lfreetype"
    fi
 fi
 



1.1                  src/patchsets/seamonkey/1.1.5/030_pango-cairo-1.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/030_pango-cairo-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/030_pango-cairo-1.patch?rev=1.1&content-type=text/plain

Index: 030_pango-cairo-1.patch
===================================================================
--- config/autoconf.mk.in.old	2007-01-20 21:19:33.000000000 +0100
+++ config/autoconf.mk.in	2007-01-20 21:20:16.000000000 +0100
@@ -479,6 +479,7 @@
 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@
 
--- gfx/src/gtk/mozilla-decoder.cpp.old	2007-01-20 21:21:30.000000000 +0100
+++ gfx/src/gtk/mozilla-decoder.cpp	2007-01-20 21:24:19.000000000 +0100
@@ -40,6 +40,11 @@
 #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/gdkpango.h>
@@ -213,8 +218,11 @@
             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(fontmap),
+#endif
                                             mozilla_find_decoder,
                                             NULL,
                                             NULL); 
--- configure.in.old	2007-01-20 21:25:20.000000000 +0100
+++ configure.in	2007-01-20 21:32:21.000000000 +0100
@@ -3923,8 +3923,8 @@
     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) $(MOD_PANGO_LIBS)'
     AC_DEFINE(MOZ_WIDGET_GTK2)
     ;;
 
@@ -4581,12 +4581,14 @@
 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
@@ -4600,8 +4602,17 @@
 then
     AC_DEFINE(MOZ_ENABLE_PANGO)
     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



1.1                  src/patchsets/seamonkey/1.1.5/031_firefox-1.1-uriloader-1.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/031_firefox-1.1-uriloader-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/031_firefox-1.1-uriloader-1.patch?rev=1.1&content-type=text/plain

Index: 031_firefox-1.1-uriloader-1.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@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@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"



1.1                  src/patchsets/seamonkey/1.1.5/032_firefox-2.0_ppc64-1.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/032_firefox-2.0_ppc64-1.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/032_firefox-2.0_ppc64-1.patch?rev=1.1&content-type=text/plain

Index: 032_firefox-2.0_ppc64-1.patch
===================================================================
# Upstream https://bugzilla.mozilla.org/show_bug.cgi?id=361415

unchanged:
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2006-11-21 17:09:28.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2006-11-20 10:13:38.000000000 +0000
@@ -267,6 +267,11 @@
 ASFILES		:= xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
 AS		:= $(CC) -c -x assembler-with-cpp
 endif
+ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
+CPPSRCS		:= xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
+ASFILES		:= xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
+AS		:= $(CC) -c -x assembler-with-cpp
+endif
 
 #
 # NetBSD/PPC
diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s	2006-11-21 14:01:45.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_ppc64_linux.s	2006-11-22 10:43:26.000000000 +0000
@@ -0,0 +1,154 @@
+// -*- Mode: Asm -*-
+//
+// 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) 1999 Netscape Communications Corporation. All
+// Rights Reserved.
+//
+// Contributor(s):
+//   dwmw2@infradead.org (David Woodhouse)
+//   Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+//   beard@netscape.com (Patrick Beard)
+//   waterson@netscape.com (Chris Waterson)
+//
+
+.set r0,0; .set r1,1; .set r2,2; .set r3,3; .set r4,4
+.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
+.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
+.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
+.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
+.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
+.set r30,30; .set r31,31
+.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
+.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
+.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
+.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
+.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
+.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
+.set f30,30; .set f31,31
+
+
+//
+// XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+//                    PRUint32 paramCount, nsXPTCVariant* params)
+//
+
+	.section ".toc","aw"
+	.section ".text"
+	.align 2
+	.globl XPTC_InvokeByIndex
+	.section ".opd","aw"
+	.align 3
+XPTC_InvokeByIndex:
+	.quad   .XPTC_InvokeByIndex,.TOC.@tocbase
+	.previous
+	.type  XPTC_InvokeByIndex,@function
+.XPTC_InvokeByIndex:
+	mflr	0
+	std	0,16(r1)
+	
+	std	r29,-24(r1)
+	std	r30,-16(r1)
+	std	r31,-8(r1)
+
+	mr	r29,r3			// Save 'that' in r29
+	mr	r30,r4			// Save 'methodIndex' in r30
+	mr	r31,r1			// Save old frame
+
+	// Allocate stack frame with space for params. Since at least the
+	// first 7 parameters (not including 'that') will be in registers,
+	// we don't actually need stack space for those. We must ensure
+	// that the stack remains 16-byte aligned.
+	//
+	//  | ..128-byte stack frame.. |     | 7 GP | 13 FP | 3 NV |
+	//  |               |(params)........| regs | regs  | regs |
+	// (r1)...........(+112)....(+128)
+	//                               (-23*8).(-16*8).(-3*8)..(r31)
+
+	// +stack frame, -unused stack params, +regs storage, +1 for alignment
+	addi	r7,r5,((112/8)-7+7+13+3+1)
+	rldicr	r7,r7,3,59		// multiply by 8 and mask with ~15
+	neg	r7,r7
+	stdux	r1,r1,r7
+
+	
+	// Call invoke_copy_to_stack(PRUint64* gpregs, double* fpregs,
+	//			     PRUint32 paramCount, nsXPTCVariant* s, 
+	//			     PRUint64* d))
+	
+	// r5, r6 are passed through intact (paramCount, params)
+	// r7 (d) has to be r1+112 -- where parameters are passed on the stack.
+	// r3, r4 are above that, easier to address from r31 than from r1
+
+	subi	r3,r31,(23*8)		// r3 --> GPRS
+	subi	r4,r31,(16*8)		// r4 --> FPRS
+	addi	r7,r1,112		// r7 --> params
+	bl	invoke_copy_to_stack
+	nop
+
+	// Set up to invoke function
+	
+	ld	r9,0(r29)		// vtable (r29 is 'that')
+	mr	r3,r29		// self is first arg, obviously
+
+	sldi	r30,r30,3	// Find function descriptor 
+	add	r9,r9,r30
+	ld	r9,0(r9)
+	
+	ld	r0,0(r9)	// Actual address from fd.
+	std	r2,40(r1)	// Save r2 (TOC pointer)
+
+	mtctr	0
+	ld	r11,16(r9)	// Environment pointer from fd.
+	ld	r2,8(r9)	// TOC pointer from fd.
+
+	// Load FP and GP registers as required
+	ld	r4, -(23*8)(r31) 
+	ld	r5, -(22*8)(r31) 
+	ld	r6, -(21*8)(r31) 
+	ld	r7, -(20*8)(r31) 
+	ld	r8, -(19*8)(r31) 
+	ld	r9, -(18*8)(r31) 
+	ld	r10, -(17*8)(r31) 
+
+	lfd	f1, -(16*8)(r31)
+	lfd	f2, -(15*8)(r31)
+	lfd	f3, -(14*8)(r31)
+	lfd	f4, -(13*8)(r31)
+	lfd	f5, -(12*8)(r31)
+	lfd	f6, -(11*8)(r31)
+	lfd	f7, -(10*8)(r31)
+	lfd	f8, -(9*8)(r31)
+	lfd	f9, -(8*8)(r31)
+	lfd	f10, -(7*8)(r31)
+	lfd	f11, -(6*8)(r31)
+	lfd	f12, -(5*8)(r31)
+	lfd	f13, -(4*8)(r31)
+
+	bctrl			// Do it
+
+	ld	r2,40(r1)	// Load our own TOC pointer
+	ld	r1,0(r1)	// Revert stack frame
+	ld	0,16(r1)	// Reload lr
+	ld	29,-24(r1)	// Restore NVGPRS
+	ld	30,-16(r1)
+	ld	31,-8(r1)
+	mtlr	0
+	blr
+
+	.size   XPTC_InvokeByIndex,.-.XPTC_InvokeByIndex
+
+	/* Magic indicating no need for an executable stack */
+	.section .note.GNU-stack, "", @progbits ; .previous
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp	1970-01-01 01:00:00.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_ppc64_linux.cpp	2006-11-21 17:00:06.000000000 +0000
@@ -0,0 +1,127 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   dwmw2@infradead.org (David Woodhouse)
+ *   Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+ *   beard@netscape.com (Patrick Beard)
+ *   waterson@netscape.com (Chris Waterson)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// Platform specific code to invoke XPCOM methods on native objects
+
+// The purpose of XPTC_InvokeByIndex() is to map a platform
+// independent call to the platform ABI. To do that,
+// XPTC_InvokeByIndex() has to determine the method to call via vtable
+// access. The parameters for the method are read from the
+// nsXPTCVariant* and prepared for the native ABI.
+
+#include <stdio.h>
+#include "xptcprivate.h"
+
+// 8 integral parameters are passed in registers, not including 'that'
+#define GPR_COUNT     7
+
+// 8 floating point parameters are passed in registers, floats are
+// promoted to doubles when passed in registers
+#define FPR_COUNT     13
+
+extern "C" PRUint32
+invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
+{
+  return PRUint32(((paramCount * 2) + 3) & ~3);
+}
+
+extern "C" void
+invoke_copy_to_stack(PRUint64* gpregs,
+                     double* fpregs,
+                     PRUint32 paramCount,
+                     nsXPTCVariant* s, 
+                     PRUint64* d)
+{
+    PRUint64 tempu64;
+
+    for(uint32 i = 0; i < paramCount; i++, s++) {
+        if(s->IsPtrData())
+            tempu64 = (PRUint64) s->ptr;
+        else {
+            switch(s->type) {
+            case nsXPTType::T_FLOAT:                                  break;
+            case nsXPTType::T_DOUBLE:                                 break;
+            case nsXPTType::T_I8:     tempu64 = s->val.i8;            break;
+            case nsXPTType::T_I16:    tempu64 = s->val.i16;           break;
+            case nsXPTType::T_I32:    tempu64 = s->val.i32;           break;
+            case nsXPTType::T_I64:    tempu64 = s->val.i64;           break;
+            case nsXPTType::T_U8:     tempu64 = s->val.u8;            break;
+            case nsXPTType::T_U16:    tempu64 = s->val.u16;           break;
+            case nsXPTType::T_U32:    tempu64 = s->val.u32;           break;
+            case nsXPTType::T_U64:    tempu64 = s->val.u64;           break;
+            case nsXPTType::T_BOOL:   tempu64 = s->val.b;             break;
+            case nsXPTType::T_CHAR:   tempu64 = s->val.c;             break;
+            case nsXPTType::T_WCHAR:  tempu64 = s->val.wc;            break;
+            default:                  tempu64 = (PRUint64) s->val.p;  break;
+            }
+        }
+
+        if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) {
+            if (i < FPR_COUNT)
+                fpregs[i]    = s->val.d;
+            else
+                *(double *)d = s->val.d;
+        }
+        else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) {
+            if (i < FPR_COUNT) {
+                fpregs[i]   = s->val.f; // if passed in registers, floats are promoted to doubles
+            } else {
+                float *p = (float *)d;
+                p++;
+                *p = s->val.f;
+            }
+        }
+        else {
+            if (i < GPR_COUNT)
+                gpregs[i] = tempu64;
+            else
+                *d          = tempu64;
+        }
+        if (i >= 7)
+            d++;
+    }
+}
+
+extern "C"
+XPTC_PUBLIC_API(nsresult)
+XPTC_InvokeByIndex(nsISupports* that, PRUint32 methodIndex,
+                   PRUint32 paramCount, nsXPTCVariant* params);
+
diff -u mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s
--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s	2006-11-21 16:38:52.000000000 +0000
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_ppc64_linux.s	2006-11-22 10:51:14.000000000 +0000
@@ -0,0 +1,102 @@
+// -*- Mode: Asm -*-
+//
+// 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) 1999 Netscape Communications Corporation. All
+// Rights Reserved.
+//
+// Contributor(s):
+//   dwmw2@infradead.org (David Woodhouse)
+//   Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+//   beard@netscape.com (Patrick Beard)
+//   waterson@netscape.com (Chris Waterson)
+//
+
+.set r0,0; .set r1,1; .set RTOC,2; .set r3,3; .set r4,4
+.set r5,5; .set r6,6; .set r7,7; .set r8,8; .set r9,9
+.set r10,10; .set r11,11; .set r12,12; .set r13,13; .set r14,14
+.set r15,15; .set r16,16; .set r17,17; .set r18,18; .set r19,19
+.set r20,20; .set r21,21; .set r22,22; .set r23,23; .set r24,24
+.set r25,25; .set r26,26; .set r27,27; .set r28,28; .set r29,29
+.set r30,30; .set r31,31
+.set f0,0; .set f1,1; .set f2,2; .set f3,3; .set f4,4
+.set f5,5; .set f6,6; .set f7,7; .set f8,8; .set f9,9
+.set f10,10; .set f11,11; .set f12,12; .set f13,13; .set f14,14
+.set f15,15; .set f16,16; .set f17,17; .set f18,18; .set f19,19
+.set f20,20; .set f21,21; .set f22,22; .set f23,23; .set f24,24
+.set f25,25; .set f26,26; .set f27,27; .set f28,28; .set f29,29
+.set f30,30; .set f31,31
+
+	.section ".text"
+	.align 2
+	.globl SharedStub
+	.section	".opd","aw"
+	.align 3
+
+SharedStub:
+	.quad   .SharedStub,.TOC.@tocbase
+	.previous
+      	.type  SharedStub,@function
+
+.SharedStub:
+	mflr	r0
+
+	std	r4, -56(r1)			// Save all GPRS
+	std	r5, -48(r1)
+	std	r6, -40(r1)
+	std	r7, -32(r1)
+	std	r8, -24(r1)
+	std	r9, -16(r1)
+	std	r10, -8(r1)
+
+	stfd	f13, -64(r1)			// ... and FPRS
+	stfd	f12, -72(r1)
+	stfd	f11, -80(r1)
+	stfd	f10, -88(r1)
+	stfd	f9, -96(r1)
+	stfd	f8, -104(r1)
+	stfd	f7, -112(r1)
+	stfd	f6, -120(r1)
+	stfd	f5, -128(r1)
+	stfd	f4, -136(r1)
+	stfd	f3, -144(r1)
+	stfd	f2, -152(r1)
+	stfd	f1, -160(r1)
+
+	subi	r6,r1,56			// r6 --> gprData
+	subi	r7,r1,160			// r7 --> fprData
+	addi	r5,r1,112			// r5 --> extra stack args
+
+	std	r0, 16(r1)
+	
+	stdu	r1,-288(r1)
+					// r3 has the 'self' pointer already
+	
+	mr      r4,r11		// r4 is methodIndex selector, passed
+				// via r11 in the nsXPTCStubBase::StubXX() call
+	
+	bl	PrepareAndDispatch
+	nop
+
+	ld	1,0(r1)				// restore stack
+	ld	r0,16(r1)			// restore LR
+	mtlr	r0
+	blr
+
+	.size   SharedStub,.-.SharedStub
+
+
+/* Magic indicating no need for an executable stack */
+.section .note.GNU-stack, "", @progbits ; .previous
unchanged:
--- mozilla.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp	1970-01-01 01:00:00.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_ppc64_linux.cpp	2006-11-21 16:59:46.000000000 +0000
@@ -0,0 +1,247 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is mozilla.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *   dwmw2@infradead.org (David Woodhouse)
+ *   Franz.Sirl-kernel@lauterbach.com (Franz Sirl)
+ *   beard@netscape.com (Patrick Beard)
+ *   waterson@netscape.com (Chris Waterson)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+// Implement shared vtbl methods.
+
+#include "xptcprivate.h"
+
+// The Linux/PPC ABI (aka PPC/SYSV ABI) passes the first 8 integral
+// parameters and the first 13 floating point parameters in registers
+// (r3-r10 and f1-f13), no stack space is allocated for these by the
+// caller.  The rest of the parameters are passed in the callers stack
+// area. The stack pointer has to retain 16-byte alignment, longlongs
+// and doubles are aligned on 8-byte boundaries.
+
+#define PARAM_BUFFER_COUNT     16
+#define GPR_COUNT               7
+#define FPR_COUNT               13
+
+// PrepareAndDispatch() is called by SharedStub() and calls the actual method.
+//
+// - 'args[]' contains the arguments passed on stack
+// - 'gprData[]' contains the arguments passed in integer registers
+// - 'fprData[]' contains the arguments passed in floating point registers
+// 
+// The parameters are mapped into an array of type 'nsXPTCMiniVariant'
+// and then the method gets called.
+#include <stdio.h>
+extern "C" nsresult
+PrepareAndDispatch(nsXPTCStubBase* self,
+                   PRUint64 methodIndex,
+                   PRUint64* args,
+                   PRUint64 *gprData,
+                   double *fprData)
+{
+    nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
+    nsXPTCMiniVariant* dispatchParams = NULL;
+    nsIInterfaceInfo* iface_info = NULL;
+    const nsXPTMethodInfo* info;
+    PRUint32 paramCount;
+    PRUint32 i;
+    nsresult result = NS_ERROR_FAILURE;
+
+    NS_ASSERTION(self,"no self");
+
+    self->GetInterfaceInfo(&iface_info);
+    NS_ASSERTION(iface_info,"no interface info");
+    if (! iface_info)
+        return NS_ERROR_UNEXPECTED;
+
+    iface_info->GetMethodInfo(PRUint16(methodIndex), &info);
+    NS_ASSERTION(info,"no method info");
+    if (! info)
+        return NS_ERROR_UNEXPECTED;
+
+    paramCount = info->GetParamCount();
+
+    // setup variant array pointer
+    if(paramCount > PARAM_BUFFER_COUNT)
+        dispatchParams = new nsXPTCMiniVariant[paramCount];
+    else
+        dispatchParams = paramBuffer;
+
+    NS_ASSERTION(dispatchParams,"no place for params");
+    if (! dispatchParams)
+        return NS_ERROR_OUT_OF_MEMORY;
+
+    PRUint64* ap = args;
+    PRUint64 tempu64;
+
+    for(i = 0; i < paramCount; i++) {
+        const nsXPTParamInfo& param = info->GetParam(i);
+        const nsXPTType& type = param.GetType();
+        nsXPTCMiniVariant* dp = &dispatchParams[i];
+	
+        if (!param.IsOut() && type == nsXPTType::T_DOUBLE) {
+            if (i < FPR_COUNT)
+                dp->val.d = fprData[i];
+            else
+                dp->val.d = *(double*) ap;
+        } else if (!param.IsOut() && type == nsXPTType::T_FLOAT) {
+            if (i < FPR_COUNT)
+                dp->val.f = (float) fprData[i]; // in registers floats are passed as doubles
+            else {
+                float *p = (float *)ap;
+                p++;
+                dp->val.f = *p;
+            }
+        } else { /* integer type or pointer */
+            if (i < GPR_COUNT)
+                tempu64 = gprData[i];
+            else
+                tempu64 = *ap;
+
+            if (param.IsOut() || !type.IsArithmetic())
+                dp->val.p = (void*) tempu64;
+            else if (type ==nsXPTType::T_I8)
+                dp->val.i8  = (PRInt8)   tempu64;
+            else if (type ==nsXPTType::T_I16)
+                dp->val.i16 = (PRInt16)  tempu64;
+            else if (type ==nsXPTType::T_I32)
+                dp->val.i32 = (PRInt32)  tempu64;
+            else if (type ==nsXPTType::T_I64)
+                dp->val.i64 = (PRInt64)  tempu64;
+            else if (type ==nsXPTType::T_U8)
+                dp->val.u8  = (PRUint8)  tempu64;
+            else if (type ==nsXPTType::T_U16)
+                dp->val.u16 = (PRUint16) tempu64;
+            else if (type ==nsXPTType::T_U32)
+                dp->val.u32 = (PRUint32) tempu64;
+            else if (type ==nsXPTType::T_U64)
+                dp->val.u64 = (PRUint64) tempu64;
+            else if (type ==nsXPTType::T_BOOL)
+                dp->val.b   = (PRBool)   tempu64;
+            else if (type ==nsXPTType::T_CHAR)
+                dp->val.c   = (char)     tempu64;
+            else if (type ==nsXPTType::T_WCHAR)
+                dp->val.wc  = (wchar_t)  tempu64;
+            else
+                NS_ASSERTION(0, "bad type");
+        }
+
+        if (i >= 7)
+            ap++;
+    }
+
+    result = self->CallMethod((PRUint16) methodIndex, info, dispatchParams);
+
+    NS_RELEASE(iface_info);
+
+    if (dispatchParams != paramBuffer)
+        delete [] dispatchParams;
+
+    return result;
+}
+
+// Load r11 with the constant 'n' and branch to SharedStub().
+//
+// XXX Yes, it's ugly that we're relying on gcc's name-mangling here;
+// however, it's quick, dirty, and'll break when the ABI changes on
+// us, which is what we want ;-).
+
+#if __GXX_ABI_VERSION < 100
+#error Prehistoric GCC not supported here
+#else
+// gcc-3 version
+//
+// As G++3 ABI contains the length of the functionname in the mangled
+// name, it is difficult to get a generic assembler mechanism like
+// in the G++ 2.95 case.
+// Create names would be like:
+// _ZN14nsXPTCStubBase5Stub1Ev
+// _ZN14nsXPTCStubBase6Stub12Ev
+// _ZN14nsXPTCStubBase7Stub123Ev
+// _ZN14nsXPTCStubBase8Stub1234Ev
+// etc.
+// Use assembler directives to get the names right...
+
+# define STUB_ENTRY(n)							\
+__asm__ (								\
+        ".section \".toc\",\"aw\" \n\t"                                 \
+        ".section \".text\" \n\t"                                       \
+	".align	2 \n\t"							\
+	".if	"#n" < 10 \n\t"						\
+	".globl	_ZN14nsXPTCStubBase5Stub"#n"Ev \n\t"			\
+        ".section \".opd\",\"aw\" \n\t"                                 \
+	".align	3 \n\t"							\
+"_ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t"					\
+        ".quad  ._ZN14nsXPTCStubBase5Stub"#n"Ev,.TOC.@tocbase \n\t"     \
+	".previous \n\t"						\
+	".type	_ZN14nsXPTCStubBase5Stub"#n"Ev,@function \n\n"		\
+"._ZN14nsXPTCStubBase5Stub"#n"Ev: \n\t"					\
+									\
+	".elseif "#n" < 100 \n\t"					\
+	".globl	_ZN14nsXPTCStubBase6Stub"#n"Ev \n\t"			\
+        ".section \".opd\",\"aw\" \n\t"                                 \
+	".align	3 \n\t"							\
+"_ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t"					\
+        ".quad  ._ZN14nsXPTCStubBase6Stub"#n"Ev,.TOC.@tocbase \n\t"     \
+	".previous \n\t"						\
+	".type	_ZN14nsXPTCStubBase6Stub"#n"Ev,@function \n\n"		\
+"._ZN14nsXPTCStubBase6Stub"#n"Ev: \n\t"					\
+									\
+	".elseif "#n" < 1000 \n\t"					\
+	".globl	_ZN14nsXPTCStubBase7Stub"#n"Ev \n\t"			\
+        ".section \".opd\",\"aw\" \n\t"                                 \
+	".align	3 \n\t"							\
+"_ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t"					\
+        ".quad  ._ZN14nsXPTCStubBase7Stub"#n"Ev,.TOC.@tocbase \n\t"     \
+	".previous \n\t"						\
+	".type	_ZN14nsXPTCStubBase7Stub"#n"Ev,@function \n\n"		\
+"._ZN14nsXPTCStubBase7Stub"#n"Ev: \n\t"					\
+									\
+	".else \n\t"							\
+	".err	\"stub number "#n" >= 1000 not yet supported\"\n"	\
+	".endif \n\t"							\
+									\
+	"li	11,"#n" \n\t"						\
+	"b	SharedStub \n"					\
+);
+#endif
+
+#define SENTINEL_ENTRY(n)                            \
+nsresult nsXPTCStubBase::Sentinel##n()               \
+{                                                    \
+  NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
+  return NS_ERROR_NOT_IMPLEMENTED;                   \
+}
+
+#include "xptcstubsdef.inc"



1.1                  src/patchsets/seamonkey/1.1.5/033_firefox-2.0_ppc_powerpc.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/033_firefox-2.0_ppc_powerpc.patch?rev=1.1&content-type=text/plain

Index: 033_firefox-2.0_ppc_powerpc.patch
===================================================================
--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig	2007-03-05 13:46:38.000000000 +0100
+++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2007-03-05 13:47:30.000000000 +0100
@@ -288,12 +288,12 @@
 #
 # Linux/PPC
 #
-ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc)
+ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc)
 CPPSRCS		:= xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp
 ASFILES		:= xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
 AS		:= $(CC) -c -x assembler-with-cpp
 endif
-ifeq ($(OS_ARCH)$(OS_TEST),Linuxppc64)
+ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc64)
 CPPSRCS		:= xptcinvoke_ppc64_linux.cpp xptcstubs_ppc64_linux.cpp
 ASFILES		:= xptcinvoke_asm_ppc64_linux.s xptcstubs_asm_ppc64_linux.s
 AS		:= $(CC) -c -x assembler-with-cpp



1.1                  src/patchsets/seamonkey/1.1.5/050_respect-host-variable.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/050_respect-host-variable.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/050_respect-host-variable.patch?rev=1.1&content-type=text/plain

Index: 050_respect-host-variable.patch
===================================================================
# https://bugs.gentoo.org/show_bug.cgi?id=168893

--- mozilla/configure.in.old	2007-03-02 23:28:27.000000000 +0200
+++ mozilla/configure.in	2007-03-02 23:29:23.000000000 +0200
@@ -825,7 +825,6 @@
     OS_TARGET="${target_os}"
     OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
     OS_RELEASE=
-    OS_TEST="${target_cpu}"
     case "${target_os}" in
         linux*)       OS_ARCH=Linux ;;
         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
@@ -837,8 +836,10 @@
     OS_TARGET=`uname -s`
     OS_ARCH=`uname -s | sed -e 's|/|_|g'`
     OS_RELEASE=`uname -r`
-    OS_TEST=`uname -m`
 fi
+
+OS_TEST="${target_cpu}"
+
 _COMPILER_PREFIX=
 
 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`



1.1                  src/patchsets/seamonkey/1.1.5/055_firefox-2.0_gfbsd-pthreads.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/055_firefox-2.0_gfbsd-pthreads.patch?rev=1.1&content-type=text/plain

Index: 055_firefox-2.0_gfbsd-pthreads.patch
===================================================================
# https://bugs.gentoo.org/show_bug.cgi?id=169825

--- mozilla/config/rules.mk.orig	Thu Sep 14 14:07:03 2006
+++ mozilla/config/rules.mk	Wed Oct 18 11:00:09 2006
@@ -442,9 +442,7 @@
 endif
 
 ifeq ($(OS_ARCH),FreeBSD)
-ifdef IS_COMPONENT
-EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
-endif
+EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic -lc
 endif
 
 ifeq ($(OS_ARCH),NetBSD)
--- mozilla/configure.in.orig	2007-02-06 02:37:37 -0300
+++ mozilla/configure.in	2007-03-07 15:35:41 -0300
@@ -2667,7 +2667,7 @@
 *-hpux11.*)
 	;;
 *)
-	AC_CHECK_LIB(c_r, gethostbyname_r)
+	AC_SEARCH_LIBS([gethostbyname_r], [c_r])
 	;;
 esac
 AC_CHECK_LIB(m, atan)
--- mozilla/configure.in.orig   2007-02-06 02:37:37 -0300
+++ mozilla/configure.in	2007-03-07 13:59:53 -0300
@@ -2839,11 +2839,12 @@
 	    *-*-freebsd*)
 			AC_DEFINE(_REENTRANT)
 			AC_DEFINE(_THREAD_SAFE)
-			dnl -pthread links in -lc_r, so don't specify it explicitly.
-			if test "$ac_cv_have_dash_pthread" = "yes"; then
-				_PTHREAD_LDFLAGS="-pthread"
+			dnl use the environment PTHREAD_LIBS
+			if test -n "$PTHREAD_LIBS"; then
+				_PTHREAD_LDFLAGS="$PTHREAD_LIBS"
 			else
-				_PTHREAD_LDFLAGS="-lc_r"
+				_PTHREAD_LDFLAGS="-lpthread"
 			fi
+			LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
 			;;



1.1                  src/patchsets/seamonkey/1.1.5/063_mozilla-rpath-3.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/063_mozilla-rpath-3.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/063_mozilla-rpath-3.patch?rev=1.1&content-type=text/plain

Index: 063_mozilla-rpath-3.patch
===================================================================
--- config/rules.mk.orig	2005-07-28 01:45:18.000000000 +0000
+++ config/rules.mk	2005-07-28 01:45:21.000000000 +0000
@@ -507,5 +507,10 @@
 # 
 ifeq ($(OS_ARCH),Linux)
 ifdef IS_COMPONENT
+DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
+OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN:$$ORIGIN/..'
 EXTRA_DSO_LDOPTS += -Wl,-Bsymbolic
+else
+DSO_LDOPTS += -Wl,-rpath,'$$ORIGIN'
+OS_LDFLAGS += -Wl,-rpath,'$$ORIGIN'
 endif
 



1.1                  src/patchsets/seamonkey/1.1.5/064_mozilla-1.7.10-nsplugins-v2.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/064_mozilla-1.7.10-nsplugins-v2.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/064_mozilla-1.7.10-nsplugins-v2.patch?rev=1.1&content-type=text/plain

Index: 064_mozilla-1.7.10-nsplugins-v2.patch
===================================================================
This is the second revision of the nsplugins patch. The first revision did not
work.  This one does.

This patch adds /usr/$(get_libdir)/nsplugins and /usr/$(get_libdir)/nsbrowser/plugins 
to the search path for plugins.  The point of this patch is to provide a place
to install netscape-compatible plugins which can be used by any of
mozilla/firefox/thunderbird/seamonkey, for example the acroread plugin.  This
obviates the code in nsplugins.eclass except for inst_plugin

Note that mozilla/firefox/thunderbird/seamonkey handle dup plugins like this:
First by mtime order (more recent takes precedence), second by alpha order.

01 Aug 2005 agriffis

--- mozilla/xpcom/io/nsAppFileLocationProvider.cpp.agriffis	2005-08-01 15:53:34.000000000 -0400
+++ mozilla/xpcom/io/nsAppFileLocationProvider.cpp	2005-08-01 22:18:21.766663456 -0400
@@ -196,6 +196,14 @@
         if (NS_SUCCEEDED(rv))
             rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME);
     }
+    else if (nsCRT::strcmp(prop, GENTOO_NSPLUGINS_DIR) == 0)
+    {
+        rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSPLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile));
+    }
+    else if (nsCRT::strcmp(prop, GENTOO_NSBROWSER_PLUGINS_DIR) == 0)
+    {
+        rv = NS_NewNativeLocalFile(nsDependentCString(GENTOO_NSBROWSER_PLUGINS_DIR), PR_TRUE, getter_AddRefs(localFile));
+    }
 #if defined(XP_MAC) || defined(XP_MACOSX)
     else if (nsCRT::strcmp(prop, NS_MACOSX_USER_PLUGIN_DIR) == 0)
     {
@@ -579,7 +587,7 @@
 
         *_retval = new nsAppDirectoryEnumerator(this, keys);
 #else
-        static const char* keys[] = { nsnull, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull };
+        static const char* keys[] = { nsnull, GENTOO_NSPLUGINS_DIR, GENTOO_NSBROWSER_PLUGINS_DIR, NS_USER_PLUGINS_DIR, NS_APP_PLUGINS_DIR, nsnull };
         if (!keys[0] && !(keys[0] = PR_GetEnv("MOZ_PLUGIN_PATH"))) {
             static const char nullstr = 0;
             keys[0] = &nullstr;



1.1                  src/patchsets/seamonkey/1.1.5/101_thunderbird-0.7.3-gnome-uriloader.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/101_thunderbird-0.7.3-gnome-uriloader.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/101_thunderbird-0.7.3-gnome-uriloader.patch?rev=1.1&content-type=text/plain

Index: 101_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);



1.1                  src/patchsets/seamonkey/1.1.5/220_seamonkey-gentoo-homepage.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/220_seamonkey-gentoo-homepage.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/220_seamonkey-gentoo-homepage.patch?rev=1.1&content-type=text/plain

Index: 220_seamonkey-gentoo-homepage.patch
===================================================================
--- xpfe/browser/resources/locale/en-US/region.properties.old	2007-01-20 21:11:14.000000000 +0100
+++ xpfe/browser/resources/locale/en-US/region.properties	2007-01-20 21:12:31.000000000 +0100
@@ -1,5 +1,5 @@
 # navigator.properties
-homePageDefault=http://www.mozilla.org/
+homePageDefault=http://www.gentoo.org/
 keywordList=http://home.netscape.com/escapes/keywords
 webmailKeyword=http://webmail.netscape.com
 fallbackDefaultSearchURL=http://www.google.com/search?q=
@@ -7,7 +7,7 @@
 #
 # all.js
 #
-browser.startup.homepage=http://www.mozilla.org/projects/seamonkey/start/
+browser.startup.homepage=http://www.gentoo.org
 browser.throbber.url=http://www.mozilla.org/projects/seamonkey/
 browser.search.defaulturl=http://www.google.com/search?q=
 general.useragent.contentlocale=US
@@ -17,4 +17,4 @@
 
 #config.js
 #
-startup.homepage_override_url=http://www.mozilla.org/projects/seamonkey/start/
+startup.homepage_override_url=http://www.gentoo.org



1.1                  src/patchsets/seamonkey/1.1.5/225_mozilla-nspr-packages.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/225_mozilla-nspr-packages.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/225_mozilla-nspr-packages.patch?rev=1.1&content-type=text/plain

Index: 225_mozilla-nspr-packages.patch
===================================================================
--- xpinstall/packager/packages-unix.old	2007-01-20 21:14:14.000000000 +0100
+++ xpinstall/packager/packages-unix	2007-01-20 21:17:57.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
@@ -469,17 +466,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/libfreebl3.chk
 bin/libfreebl3.so
 bin/libfreebl_32fpu_3.chk
@@ -492,7 +485,6 @@
 bin/libfreebl_64fpu_3.so
 bin/libfreebl_64int_3.chk
 bin/libfreebl_64int_3.so
-bin/libssl3.so
 bin/chrome/pipnss.jar
 bin/chrome/pippki.jar
 
@@ -510,5 +502,17 @@
 bin/components/spellchecker.xpt
 bin/dictionaries/*
 
+[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



1.1                  src/patchsets/seamonkey/1.1.5/301_mozilla-1.7.3-gnome-vfs-default-app.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/301_mozilla-1.7.3-gnome-vfs-default-app.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/301_mozilla-1.7.3-gnome-vfs-default-app.patch?rev=1.1&content-type=text/plain

Index: 301_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);



1.1                  src/patchsets/seamonkey/1.1.5/303_mozilla-1.7.13-as-needed.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/303_mozilla-1.7.13-as-needed.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/303_mozilla-1.7.13-as-needed.patch?rev=1.1&content-type=text/plain

Index: 303_mozilla-1.7.13-as-needed.patch
===================================================================
--- embedding/browser/gtk/tests/Makefile.in.orig	2006-04-29 22:56:46.000000000 -0500
+++ embedding/browser/gtk/tests/Makefile.in	2006-04-29 22:57:17.000000000 -0500
@@ -58,6 +58,8 @@
 endif
 endif
 
+OS_LDFLAGS += -Wl,-rpath-link,'$(DEPTH)/dist/bin'
+
 ifdef MOZ_ENABLE_GTK
 LIBS		+= \
 		-lgtkembedmoz \



1.1                  src/patchsets/seamonkey/1.1.5/304_mozilla-1.7.5-g-application-name.patch

file : http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/304_mozilla-1.7.5-g-application-name.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/seamonkey/1.1.5/304_mozilla-1.7.5-g-application-name.patch?rev=1.1&content-type=text/plain

Index: 304_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 */



-- 
gentoo-commits@gentoo.org mailing list



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-10-20 15:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-20 14:59 [gentoo-commits] gentoo commit in src/patchsets/seamonkey/1.1.5: 000_flex-configure-LANG.patch 001_firefox-1.0-prdtoa.patch 002_seamonkey-disable-visibility.patch 003_firefox-arm.patch 004_mozilla-hppa.patch 005_mozilla-firefox-1.1a2-ia64.patch 007_seamonkey-1.0.1-dumpstack.patch 008_seamonkey-gentoo-pkgconfig.patch 020_firefox-0.7.3-default-plugin-less-annoying.patch 021_seamonkey-1.1-include-cairo-libs.patch 030_pango-cairo-1.patch 031_firefox-1.1-uriloader-1.patch 032_firefox-2.0_ppc64-1.patch 033_firefox-2.0_ppc_powerpc.patch 050_respect-host-variable.patch 055_firefox-2.0_gfbsd-pthreads.patch 063_mozilla-rpath-3.patch 064_mozilla-1.7.10-nsplugins-v2.patch 101_thunderbird-0.7.3-gnome-uriloader.patch 220_seamonkey-gentoo-homepage.patch 225_mozilla-nspr-packages.patch 301_mozilla-1.7.3-gnome-vfs-default-app.patch 303_mozilla-1.7.13-as-needed.patch 304_mozilla-1.7.5-g-application-name.patch Raul Porcel (armin76)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox