Bug#401401: iceape: FTBFS on GNU/kFreeBSD

Petr Salinger Petr.Salinger at seznam.cz
Sun Dec 3 08:44:23 CET 2006


Package: iceape
Severity: important
Version: 1.0.6-1
Tags: patch

Hi,

the current version fails to build on GNU/kFreeBSD.
Please find attached patch to fix that.

Also update of config.{sub,guess} is needed.
iceape already Build-depends on autotools-dev,
please add something like

   cp /usr/share/misc/config.{sub,guess} build/autoconf/
   cp /usr/share/misc/config.{sub,guess} nsprpub/build/autoconf/
   cp /usr/share/misc/config.{sub,guess} directory/c-sdk/config/autoconf/

into clean-patched target in debian/rules.
There is also already commented preliminary support for it.

The attached patch mainly adds and enables two GNU/kFreeBSD
related dpatches in debian/patches:

18_kbsd_nspr.dpatch corresponds to
         https://bugzilla.mozilla.org/show_bug.cgi?id=261649
         https://bugzilla.mozilla.org/show_bug.cgi?id=355999

   It is also equivalent to 50_kbsd_nspr.dpatch already included
   in icedove_1.5.0.8.dfsg1-1.


38_kbsd.dpatch corresponds to
         https://bugzilla.mozilla.org/show_bug.cgi?id=356011

   It is also equivalent to concatenation of 50_kbsd.dpatch and
   50_kbsd_csdk.dpatch already included in icedove_1.5.0.8.dfsg1-1.

The 38_kbsd.dpatch (due to refactoring of security/coreconf/Linux.mk)
makes obsolete 28_ppc64_build.dpatch and 38_unsupported_arch_build.dpatch,
38_mips64_build.dpatch have been updated.

Into 80_uname.dpatch and 99_configure.dpatch is inserted
detection of GNU/kFreeBSD.

It would be nice if it could be included in the next upload.

Thanks in advance,

         Petr
-------------- next part --------------
diff -urN iceape-1.0.6/debian/patches/00list iceape_1.0.6.kbsd/debian/patches/00list
--- iceape-1.0.6/debian/patches/00list	2006-12-02 23:07:06.000000000 +0100
+++ iceape_1.0.6.kbsd/debian/patches/00list	2006-12-02 21:42:31.000000000 +0100
@@ -5,6 +5,7 @@
 10_pangoxft
 15_passwdmgr
 18_arm_xpcom_unused_attribute
+18_kbsd_nspr
 18_m68k_xpcom
 20_broken_perl
 20_visibility
@@ -12,7 +13,7 @@
 25_gnome_helpers_with_params
 25_passwdmgr_crash
 25_xrender_bug_workaround
-28_ppc64_build
+#28_ppc64_build
 30_embedding_tests
 30_killAll
 32_print_command
@@ -21,10 +22,11 @@
 38_arm_xpcom_optim
 38_hppa_xpcom
 38_ia64_align
+38_kbsd
 38_mips64_build
 38_mips_xpcom
 38_sparc64_unichar_alignment
-38_unsupported_arch_build
+#38_unsupported_arch_build
 60_distclean
 65_mouse_buttons
 68_mips_performance
diff -urN iceape-1.0.6/debian/patches/18_kbsd_nspr.dpatch iceape_1.0.6.kbsd/debian/patches/18_kbsd_nspr.dpatch
--- iceape-1.0.6/debian/patches/18_kbsd_nspr.dpatch	1970-01-01 01:00:00.000000000 +0100
+++ iceape_1.0.6.kbsd/debian/patches/18_kbsd_nspr.dpatch	2006-12-02 21:41:08.000000000 +0100
@@ -0,0 +1,417 @@
+#!/bin/sh -e
+## 18_kbsd_nspr.dpatch
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: GNU/kFreeBSD support for nspr
+## DP: https://bugzilla.mozilla.org/show_bug.cgi?id=261649
+## DP: https://bugzilla.mozilla.org/show_bug.cgi?id=355999
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+       -patch) patch $patch_opts -p1 < $0;;
+       -unpatch) patch $patch_opts -p1 -R < $0;;
+        *)
+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+                exit 1;;
+esac
+
+exit 0
+
+ at DPATCH@
+diff -urN mozilla/nsprpub/config/nsinstall.c mozilla/nsprpub/config/nsinstall.c
+--- mozilla/nsprpub/config/nsinstall.c	2004-04-28 02:33:11.000000000 +0200
++++ mozilla/nsprpub/config/nsinstall.c	2006-11-20 22:10:27.000000000 +0100
+@@ -98,7 +98,7 @@
+ }
+ #endif /* NEXTSTEP */
+ 
+-#ifdef LINUX
++#if defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) 
+ #include <getopt.h>
+ #endif
+ 
+diff -urN mozilla/nsprpub/pr/include/md/_linux.cfg mozilla/nsprpub/pr/include/md/_linux.cfg
+--- mozilla/nsprpub/pr/include/md/_linux.cfg	2005-08-18 19:24:28.000000000 +0200
++++ mozilla/nsprpub/pr/include/md/_linux.cfg	2006-11-20 22:10:27.000000000 +0100
+@@ -35,6 +35,11 @@
+  *
+  * ***** END LICENSE BLOCK ***** */
+ 
++/*
++ * This file is used by not only Linux but also other glibc systems
++ * such as GNU/Hurd and GNU/k*BSD.
++ */
++
+ #ifndef nspr_cpucfg___
+ #define nspr_cpucfg___
+ 
+@@ -42,11 +47,15 @@
+ #define XP_UNIX
+ #endif
+ 
+-#ifndef LINUX
++#if !defined(LINUX) && defined(__linux__)
+ #define LINUX
+ #endif
+ 
++#ifdef __FreeBSD_kernel__
++#define PR_AF_INET6 28  /* same as AF_INET6 */
++#else
+ #define PR_AF_INET6 10  /* same as AF_INET6 */
++#endif
+ 
+ #ifdef __powerpc64__
+ 
+diff -urN mozilla/nsprpub/pr/include/md/_linux.h mozilla/nsprpub/pr/include/md/_linux.h
+--- mozilla/nsprpub/pr/include/md/_linux.h	2005-08-18 19:24:28.000000000 +0200
++++ mozilla/nsprpub/pr/include/md/_linux.h	2006-11-20 22:10:27.000000000 +0100
+@@ -41,6 +41,15 @@
+ #include "prthread.h"
+ 
+ /*
++ * This file is used by not only Linux but also other glibc systems
++ * such as GNU/Hurd and GNU/k*BSD.
++ */
++
++#ifdef __FreeBSD_kernel__
++#define _PR_HAVE_SOCKADDR_LEN 
++#endif
++   
++/*
+  * Internal configuration macros
+  */
+ 
+diff -urN mozilla/nsprpub/pr/include/md/_pth.h mozilla/nsprpub/pr/include/md/_pth.h
+--- mozilla/nsprpub/pr/include/md/_pth.h	2005-08-18 19:24:28.000000000 +0200
++++ mozilla/nsprpub/pr/include/md/_pth.h	2006-11-20 22:10:27.000000000 +0100
+@@ -143,10 +143,15 @@
+ 	(!memcmp(&(t), &pt_zero_tid, sizeof(pthread_t)))
+ #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt)   (dt) = (st)
+ #elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(SOLARIS) \
+-	|| defined(HPUX) || defined(LINUX) || defined(FREEBSD) \
++	|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
++	|| defined(HPUX) || defined(FREEBSD) \
+ 	|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
+ 	|| defined(VMS) || defined(NTO) || defined(DARWIN) \
+ 	|| defined(UNIXWARE) || defined(RISCOS)
++#ifdef __GNU__
++/* Hurd pthreads don't have an invalid value for pthread_t. -- rmh */
++#error Using Hurd pthreads
++#endif
+ #define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t)  (t) = 0
+ #define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t)  (t) == 0
+ #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt)   (dt) = (st)
+@@ -195,7 +200,8 @@
+ /*
+  * These platforms don't have sigtimedwait()
+  */
+-#if (defined(AIX) && !defined(AIX4_3_PLUS)) || defined(LINUX) \
++#if (defined(AIX) && !defined(AIX4_3_PLUS)) \
++	|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
+ 	|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
+ 	|| defined(BSDI) || defined(VMS) || defined(UNIXWARE) \
+ 	|| defined(DARWIN)
+@@ -235,7 +241,8 @@
+ #define PT_PRIO_MAX            sched_get_priority_max(SCHED_OTHER)
+ #endif /* defined(_PR_DCETHREADS) */
+ 
+-#elif defined(LINUX) || defined(FREEBSD)
++#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
++	|| defined(FREEBSD)
+ #define PT_PRIO_MIN            sched_get_priority_min(SCHED_OTHER)
+ #define PT_PRIO_MAX            sched_get_priority_max(SCHED_OTHER)
+ #elif defined(NTO)
+@@ -291,7 +298,8 @@
+ 		onemillisec.tv_nsec = 1000000L;			\
+         nanosleep(&onemillisec,NULL);			\
+     PR_END_MACRO
+-#elif defined(HPUX) || defined(LINUX) || defined(SOLARIS) \
++#elif defined(HPUX) || defined(SOLARIS) \
++	|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
+ 	|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
+ 	|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
+ 	|| defined(UNIXWARE) || defined(RISCOS)
+diff -urN mozilla/nsprpub/pr/include/md/_unixos.h mozilla/nsprpub/pr/include/md/_unixos.h
+--- mozilla/nsprpub/pr/include/md/_unixos.h	2005-01-17 23:13:36.000000000 +0100
++++ mozilla/nsprpub/pr/include/md/_unixos.h	2006-11-20 22:10:27.000000000 +0100
+@@ -46,7 +46,8 @@
+  * Linux: FD_SETSIZE is defined in /usr/include/sys/select.h and should
+  * not be redefined.
+  */
+-#if !defined(LINUX) && !defined(DARWIN) && !defined(NEXTSTEP)
++#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
++    && !defined(DARWIN) && !defined(NEXTSTEP)
+ #ifndef FD_SETSIZE
+ #define FD_SETSIZE  4096
+ #endif
+diff -urN mozilla/nsprpub/pr/include/md/prosdep.h mozilla/nsprpub/pr/include/md/prosdep.h
+--- mozilla/nsprpub/pr/include/md/prosdep.h	2005-08-18 19:24:28.000000000 +0200
++++ mozilla/nsprpub/pr/include/md/prosdep.h	2006-11-20 22:10:27.000000000 +0100
+@@ -90,7 +90,7 @@
+ #elif defined(IRIX)
+ #include "md/_irix.h"
+ 
+-#elif defined(LINUX)
++#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+ #include "md/_linux.h"
+ 
+ #elif defined(OSF1)
+diff -urN mozilla/nsprpub/pr/src/linking/Makefile.in mozilla/nsprpub/pr/src/linking/Makefile.in
+--- mozilla/nsprpub/pr/src/linking/Makefile.in	2006-01-05 16:40:18.000000000 +0100
++++ mozilla/nsprpub/pr/src/linking/Makefile.in	2006-11-20 22:10:27.000000000 +0100
+@@ -63,7 +63,7 @@
+ INCLUDES = -I$(dist_includedir) -I$(topsrcdir)/pr/include -I$(topsrcdir)/pr/include/private
+ 
+ # For Dl_info and dladdr.
+-ifeq ($(OS_TARGET),Linux)
++ifeq (,$(filter-out Linux GNU GNU_%,$(OS_TARGET)))
+ DEFINES    += -D_GNU_SOURCE
+ endif
+ 
+diff -urN mozilla/nsprpub/pr/src/linking/prlink.c mozilla/nsprpub/pr/src/linking/prlink.c
+--- mozilla/nsprpub/pr/src/linking/prlink.c	2005-08-18 19:24:29.000000000 +0200
++++ mozilla/nsprpub/pr/src/linking/prlink.c	2006-11-20 22:10:27.000000000 +0100
+@@ -1374,7 +1374,8 @@
+ PR_IMPLEMENT(char *)
+ PR_GetLibraryFilePathname(const char *name, PRFuncPtr addr)
+ {
+-#if defined(SOLARIS) || defined(LINUX) || defined(FREEBSD)
++#if defined(SOLARIS) || defined(FREEBSD) \
++        || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+     Dl_info dli;
+     char *result;
+ 
+diff -urN mozilla/nsprpub/pr/src/md/prosdep.c mozilla/nsprpub/pr/src/md/prosdep.c
+--- mozilla/nsprpub/pr/src/md/prosdep.c	2004-04-28 02:33:56.000000000 +0200
++++ mozilla/nsprpub/pr/src/md/prosdep.c	2006-11-20 22:10:27.000000000 +0100
+@@ -63,7 +63,8 @@
+ 
+     /* Get page size */
+ #ifdef XP_UNIX
+-#if defined SUNOS4 || defined LINUX || defined BSDI || defined AIX \
++#if defined SUNOS4 || defined BSDI || defined AIX \
++        || defined LINUX || defined __GNU__ || defined __GLIBC__ \
+         || defined FREEBSD || defined NETBSD || defined OPENBSD \
+         || defined DARWIN || defined NEXTSTEP
+     _pr_pageSize = getpagesize();
+diff -urN mozilla/nsprpub/pr/src/md/unix/unix.c mozilla/nsprpub/pr/src/md/unix/unix.c
+--- mozilla/nsprpub/pr/src/md/unix/unix.c	2005-08-18 19:24:37.000000000 +0200
++++ mozilla/nsprpub/pr/src/md/unix/unix.c	2006-11-20 22:10:27.000000000 +0100
+@@ -65,7 +65,7 @@
+  * PRInt32* pointer to a _PRSockLen_t* pointer.
+  */
+ #if defined(HAVE_SOCKLEN_T) \
+-    || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
++    || (defined(__GLIBC__) && __GLIBC__ >= 2)
+ #define _PRSockLen_t socklen_t
+ #elif defined(IRIX) || defined(HPUX) || defined(OSF1) || defined(SOLARIS) \
+     || defined(AIX4_1) || defined(LINUX) || defined(SONY) \
+diff -urN mozilla/nsprpub/pr/src/md/unix/uxproces.c mozilla/nsprpub/pr/src/md/unix/uxproces.c
+--- mozilla/nsprpub/pr/src/md/unix/uxproces.c	2004-12-15 06:52:40.000000000 +0100
++++ mozilla/nsprpub/pr/src/md/unix/uxproces.c	2006-11-20 22:10:27.000000000 +0100
+@@ -92,7 +92,8 @@
+  * that can share the virtual address space and file descriptors.
+  */
+ #if (defined(IRIX) && !defined(_PR_PTHREADS)) \
+-        || (defined(LINUX) && defined(_PR_PTHREADS))
++        || ((defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)) \
++        && defined(_PR_PTHREADS))
+ #define _PR_SHARE_CLONES
+ #endif
+ 
+@@ -106,7 +107,8 @@
+  */
+ 
+ #if defined(_PR_GLOBAL_THREADS_ONLY) \
+-	|| (defined(_PR_PTHREADS) && !defined(LINUX))
++	|| (defined(_PR_PTHREADS) \
++	&& !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__))
+ #define _PR_NATIVE_THREADS
+ #endif
+ 
+diff -urN mozilla/nsprpub/pr/src/md/unix/uxrng.c mozilla/nsprpub/pr/src/md/unix/uxrng.c
+--- mozilla/nsprpub/pr/src/md/unix/uxrng.c	2005-08-18 19:24:37.000000000 +0200
++++ mozilla/nsprpub/pr/src/md/unix/uxrng.c	2006-11-20 22:10:27.000000000 +0100
+@@ -138,7 +138,8 @@
+     return 0;
+ }
+ 
+-#elif (defined(LINUX) || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD))
++#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
++    || defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD))
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+diff -urN mozilla/nsprpub/pr/src/misc/prnetdb.c mozilla/nsprpub/pr/src/misc/prnetdb.c
+--- mozilla/nsprpub/pr/src/misc/prnetdb.c	2005-08-18 19:24:38.000000000 +0200
++++ mozilla/nsprpub/pr/src/misc/prnetdb.c	2006-11-20 22:10:27.000000000 +0100
+@@ -108,7 +108,7 @@
+ #define _PR_HAVE_GETPROTO_R_INT
+ #endif
+ 
+-#if (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
++#if (defined(__GLIBC__) && __GLIBC__ >= 2)
+ #define _PR_HAVE_GETPROTO_R
+ #define _PR_HAVE_5_ARG_GETPROTO_R
+ #endif
+diff -urN mozilla/nsprpub/pr/src/pthreads/ptio.c mozilla/nsprpub/pr/src/pthreads/ptio.c
+--- mozilla/nsprpub/pr/src/pthreads/ptio.c	2005-08-18 19:24:38.000000000 +0200
++++ mozilla/nsprpub/pr/src/pthreads/ptio.c	2006-11-20 22:10:27.000000000 +0100
+@@ -205,7 +205,8 @@
+ #define _PRSelectFdSetArg_t void *
+ #elif defined(IRIX) || (defined(AIX) && !defined(AIX4_1)) \
+     || defined(OSF1) || defined(SOLARIS) \
+-    || defined(HPUX10_30) || defined(HPUX11) || defined(LINUX) \
++    || defined(HPUX10_30) || defined(HPUX11) \
++    || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
+     || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
+     || defined(BSDI) || defined(VMS) || defined(NTO) || defined(DARWIN) \
+     || defined(UNIXWARE) || defined(RISCOS)
+@@ -289,7 +290,7 @@
+  * most current systems.
+  */
+ #if defined(HAVE_SOCKLEN_T) \
+-    || (defined(LINUX) && defined(__GLIBC__) && __GLIBC__ >= 2)
++    || (defined(__GLIBC__) && __GLIBC__ >= 2)
+ typedef socklen_t pt_SockLen;
+ #elif (defined(AIX) && !defined(AIX4_1)) \
+     || defined(VMS)
+@@ -3230,7 +3231,8 @@
+ };
+ 
+ #if defined(HPUX) || defined(OSF1) || defined(SOLARIS) || defined (IRIX) \
+-    || defined(AIX) || defined(LINUX) || defined(FREEBSD) || defined(NETBSD) \
++    || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
++    || defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
+     || defined(OPENBSD) || defined(BSDI) || defined(VMS) || defined(NTO) \
+     || defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS)
+ #define _PR_FCNTL_FLAGS O_NONBLOCK
+@@ -4727,7 +4729,8 @@
+ 
+ #include <sys/types.h>
+ #include <sys/time.h>
+-#if !defined(SUNOS4) && !defined(HPUX) && !defined(LINUX)
++#if !defined(SUNOS4) && !defined(HPUX) \
++    && !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__)
+ #include <sys/select.h>
+ #endif
+ 
+diff -urN mozilla/nsprpub/pr/tests/Makefile.in mozilla/nsprpub/pr/tests/Makefile.in
+--- mozilla/nsprpub/pr/tests/Makefile.in	2004-04-28 02:34:16.000000000 +0200
++++ mozilla/nsprpub/pr/tests/Makefile.in	2006-11-20 22:10:27.000000000 +0100
+@@ -376,14 +376,10 @@
+     EXTRA_LIBS = -lsocket -lnsl -lgen -lresolv
+ endif
+ 
+-ifeq ($(OS_ARCH), Linux)
+-    ifeq ($(OS_RELEASE), 1.2)
+-        EXTRA_LIBS = -ldl
+-    else
+-        LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
+-        ifeq ($(USE_PTHREADS),1)
+-            EXTRA_LIBS = -lpthread
+-        endif
++ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
++    LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
++    ifeq ($(USE_PTHREADS),1)
++        EXTRA_LIBS = -lpthread
+     endif
+ endif
+ 
+diff -urN mozilla/nsprpub/configure.in mozilla/nsprpub/configure.in
+--- mozilla/nsprpub/configure.in	2006-02-23 00:03:11.000000000 +0100
++++ mozilla/nsprpub/configure.in	2006-11-20 22:10:26.000000000 +0100
+@@ -1370,7 +1370,7 @@
+ 	esac
+     ;;
+ 
+-*-linux*)
++*-linux*|*-gnu*|*-k*bsd*-gnu)
+     if test -z "$USE_NSPR_THREADS"; then
+         USE_PTHREADS=1
+         IMPL_STRATEGY=_PTH
+@@ -1381,7 +1381,11 @@
+     AC_DEFINE(_SVID_SOURCE)
+     AC_DEFINE(_LARGEFILE64_SOURCE)
+     AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
+-    AC_DEFINE(LINUX)
++    case "${target_os}" in
++    linux*)
++        AC_DEFINE(LINUX)
++        ;;
++    esac
+     CFLAGS="$CFLAGS -ansi -Wall"
+     CXXFLAGS="$CXXFLAGS -ansi -Wall"
+     MDCPUCFG_H=_linux.cfg
+@@ -2456,7 +2460,7 @@
+             _PTHREAD_LDFLAGS=-pthread
+         fi
+         ;;
+-    *-linux*)
++    *-linux*|*-gnu*|*-k*bsd*-gnu)
+         AC_DEFINE(_REENTRANT)
+         ;;
+     esac
+@@ -2540,7 +2544,7 @@
+         fi
+     fi
+     ;;
+-*-linux*)
++*-linux*|*-gnu*|*-k*bsd*-gnu)
+     if test -n "$USE_NSPR_THREADS"; then
+         AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
+     fi
+diff -urN mozilla/nsprpub/configure mozilla/nsprpub/configure
+--- mozilla/nsprpub/configure	2006-02-23 00:03:10.000000000 +0100
++++ mozilla/nsprpub/configure	2006-11-20 22:19:53.000000000 +0100
+@@ -3820,7 +3820,7 @@
+ 	esac
+     ;;
+ 
+-*-linux*)
++*-linux*|*-gnu*|*-k*bsd*-gnu)
+     if test -z "$USE_NSPR_THREADS"; then
+         USE_PTHREADS=1
+         IMPL_STRATEGY=_PTH
+@@ -3849,10 +3849,14 @@
+ #define HAVE_FCNTL_FILE_LOCKING 1
+ EOF
+ 
+-    cat >> confdefs.h <<\EOF
++    case "${target_os}" in
++    linux*)
++        cat >> confdefs.h <<\EOF
+ #define LINUX 1
+ EOF
+ 
++        ;;
++    esac
+     CFLAGS="$CFLAGS -ansi -Wall"
+     CXXFLAGS="$CXXFLAGS -ansi -Wall"
+     MDCPUCFG_H=_linux.cfg
+@@ -5496,7 +5500,7 @@
+             _PTHREAD_LDFLAGS=-pthread
+         fi
+         ;;
+-    *-linux*)
++    *-linux*|*-gnu*|*-k*bsd*-gnu)
+         cat >> confdefs.h <<\EOF
+ #define _REENTRANT 1
+ EOF
+@@ -5633,7 +5637,7 @@
+         fi
+     fi
+     ;;
+-*-linux*)
++*-linux*|*-gnu*|*-k*bsd*-gnu)
+     if test -n "$USE_NSPR_THREADS"; then
+         cat >> confdefs.h <<\EOF
+ #define _PR_LOCAL_THREADS_ONLY 1
+ 
diff -urN iceape-1.0.6/debian/patches/38_kbsd.dpatch iceape_1.0.6.kbsd/debian/patches/38_kbsd.dpatch
--- iceape-1.0.6/debian/patches/38_kbsd.dpatch	1970-01-01 01:00:00.000000000 +0100
+++ iceape_1.0.6.kbsd/debian/patches/38_kbsd.dpatch	2006-12-02 21:41:09.000000000 +0100
@@ -0,0 +1,584 @@
+#!/bin/sh -e
+## 38_kbsd.dpatch
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: GNU/kFreeBSD support
+## DP: https://bugzilla.mozilla.org/show_bug.cgi?id=356011
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+       -patch) patch $patch_opts -p1 < $0;;
+       -unpatch) patch $patch_opts -p1 -R < $0;;
+        *)
+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+                exit 1;;
+esac
+
+exit 0
+
+ at DPATCH@
+diff -ur mozilla/directory/c-sdk/config/nsinstall.c mozilla/directory/c-sdk/config/nsinstall.c
+--- mozilla/directory/c-sdk/config/nsinstall.c	2002-03-27 11:06:18.000000000 +0100
++++ mozilla/directory/c-sdk/config/nsinstall.c	2006-11-20 23:14:53.000000000 +0100
+@@ -106,7 +106,7 @@
+ }
+ #endif /* NEXTSTEP */
+ 
+-#ifdef LINUX
++#if defined(LINUX) || defined(__GLIBC__) || defined(__GNU__)
+ #include <getopt.h>
+ #endif
+ 
+diff -ur mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.client mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.client
+--- mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.client	2002-03-26 22:53:26.000000000 +0100
++++ mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.client	2006-11-20 23:00:17.000000000 +0100
+@@ -161,7 +161,7 @@
+ EXTRA_LIBS += -L$(NSCP_DISTDIR)/lib
+ endif
+ 
+-ifeq ($(OS_ARCH), Linux)
++ifneq (,$(filter Linux GNU GNU_%, $(OS_ARCH)))
+ EXTRA_LIBS = -L$(NSCP_DISTDIR)/$(OBJDIR_NAME)/lib -l$(LBER_LIBNAME)
+ EXTRA_LIBS += -L$(NSCP_DISTDIR)/lib
+ endif
+@@ -237,7 +237,7 @@
+ ifeq ($(OS_ARCH), AIX)
+ 	$(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a
+ else
+-ifeq ($(OS_ARCH), Linux)
++ifneq (,$(filter Linux GNU GNU_%, $(OS_ARCH)))
+ 	$(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a
+ else
+ 	$(LINK_LIB) $(EXTRA_LIBS)
+diff -ur mozilla/directory/c-sdk/configure.in mozilla/directory/c-sdk/configure.in
+--- mozilla/directory/c-sdk/configure.in	2006-02-23 00:58:25.000000000 +0100
++++ mozilla/directory/c-sdk/configure.in	2006-11-20 23:08:37.000000000 +0100
+@@ -560,6 +560,7 @@
+     OS_TEST="${target_cpu}"
+     case "${target_os}" in
+         linux*)       OS_ARCH=Linux ;;
++        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
+         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
+         mingw*)     OS_ARCH=WINNT ;;
+         darwin*)    OS_ARCH=Darwin ;;
+@@ -1260,7 +1261,7 @@
+ 	esac
+     ;;
+ 
+-*-linux*)
++*-linux*|*-kfreebsd*-gnu)
+     if test -z "$USE_NSPR_THREADS"; then
+         USE_PTHREADS=1
+         IMPL_STRATEGY=_PTH
+@@ -1271,8 +1272,12 @@
+     AC_DEFINE(_SVID_SOURCE)
+     AC_DEFINE(_LARGEFILE64_SOURCE)
+     AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
+-    AC_DEFINE(LINUX)
+-    AC_DEFINE(linux)
++    case "${target_os}" in
++     linux*)
++        AC_DEFINE(LINUX)
++        AC_DEFINE(linux)
++        ;;
++    esac
+     LD='$(CC)'
+     CFLAGS="$CFLAGS -ansi -Wall"
+     CXXFLAGS="$CXXFLAGS -ansi -Wall"
+@@ -2186,7 +2191,7 @@
+ 	        _PTHREAD_LDFLAGS=
+ 	    fi
+ 	    ;;
+-    *-linux*)
++    *-linux*|*-kfreebsd*-gnu)
+         AC_DEFINE(_REENTRANT)
+         ;;
+     esac
+@@ -2262,7 +2267,7 @@
+         fi
+     fi
+     ;;
+-*-linux*)
++*-linux*|*-kfreebsd*-gnu)
+     if test -n "$USE_NSPR_THREADS"; then
+         AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
+     fi
+diff -ur mozilla/directory/c-sdk/configure mozilla/directory/c-sdk/configure
+--- mozilla/directory/c-sdk/configure	2006-02-23 00:58:25.000000000 +0100
++++ mozilla/directory/c-sdk/configure	2006-11-20 23:08:42.000000000 +0100
+@@ -2753,6 +2753,7 @@
+     OS_TEST="${target_cpu}"
+     case "${target_os}" in
+         linux*)       OS_ARCH=Linux ;;
++        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
+         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
+         mingw*)     OS_ARCH=WINNT ;;
+         darwin*)    OS_ARCH=Darwin ;;
+@@ -3766,7 +3767,7 @@
+ 	esac
+     ;;
+ 
+-*-linux*)
++*-linux*|*-kfreebsd*-gnu)
+     if test -z "$USE_NSPR_THREADS"; then
+         USE_PTHREADS=1
+         IMPL_STRATEGY=_PTH
+@@ -3795,14 +3796,18 @@
+ #define HAVE_FCNTL_FILE_LOCKING 1
+ EOF
+ 
+-    cat >> confdefs.h <<\EOF
++    case "${target_os}" in
++     linux*)
++        cat >> confdefs.h <<\EOF
+ #define LINUX 1
+ EOF
+ 
+-    cat >> confdefs.h <<\EOF
++        cat >> confdefs.h <<\EOF
+ #define linux 1
+ EOF
+ 
++        ;;
++    esac
+     LD='$(CC)'
+     CFLAGS="$CFLAGS -ansi -Wall"
+     CXXFLAGS="$CXXFLAGS -ansi -Wall"
+@@ -5281,7 +5286,7 @@
+ 	        _PTHREAD_LDFLAGS=
+ 	    fi
+ 	    ;;
+-    *-linux*)
++    *-linux*|*-kfreebsd*-gnu)
+         cat >> confdefs.h <<\EOF
+ #define _REENTRANT 1
+ EOF
+@@ -5404,7 +5409,7 @@
+         fi
+     fi
+     ;;
+-*-linux*)
++*-linux*|*-kfreebsd*-gnu)
+     if test -n "$USE_NSPR_THREADS"; then
+         cat >> confdefs.h <<\EOF
+ #define _PR_LOCAL_THREADS_ONLY 1
+diff -urN mozilla/directory/c-sdk/ldap/include/portable.h mozilla/directory/c-sdk/ldap/include/portable.h
+--- mozilla/directory/c-sdk/ldap/include/portable.h	2003-09-17 05:18:10.000000000 +0200
++++ mozilla/directory/c-sdk/ldap/include/portable.h	2006-11-20 22:10:27.000000000 +0100
+@@ -116,7 +116,7 @@
+  * some systems don't have the BSD re_comp and re_exec routines
+  */
+ #ifndef NEED_BSDREGEX
+-#if ( defined( SYSV ) || defined( NETBSD ) || defined( freebsd ) || defined( linux ) || defined( DARWIN )) && !defined(sgi)
++#if ( defined( SYSV ) || defined( NETBSD ) || defined( freebsd ) || defined( linux ) || defined(__GNU__) || defined(__GLIBC__) || defined( DARWIN )) && !defined(sgi)
+ #define NEED_BSDREGEX
+ #endif
+ #endif
+@@ -145,7 +145,7 @@
+  * Is snprintf() part of the standard C runtime library?
+  */
+ #if !defined(HAVE_SNPRINTF)
+-#if defined(SOLARIS) || defined(LINUX) || defined(HPUX)
++#if defined(SOLARIS) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HPUX)
+ #define HAVE_SNPRINTF
+ #endif
+ #endif
+@@ -165,7 +165,7 @@
+  * for select()
+  */
+ #if !defined(WINSOCK) && !defined(_WINDOWS) && !defined(macintosh) && !defined(XP_OS2)
+-#if defined(hpux) || defined(LINUX) || defined(SUNOS4) || defined(XP_BEOS)
++#if defined(hpux) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(SUNOS4) || defined(XP_BEOS)
+ #include <sys/time.h>
+ #else
+ #include <sys/select.h>
+@@ -252,15 +252,14 @@
+ #define HAVE_GETGRNAM_R
+ #endif
+ 
+-#if defined(SNI) || defined(LINUX1_2)
++#if defined(SNI) || defined(LINUX1_2) || defined(__GNU__) || defined(__GLIBC__)
+ int strcasecmp(const char *, const char *);
+ #ifdef SNI
+ int strncasecmp(const char *, const char *, int);
+-#endif /* SNI */
+-#ifdef LINUX1_2
++#else /* SNI */
+ int strncasecmp(const char *, const char *, size_t);
+-#endif /* LINUX1_2 */
+-#endif /* SNI || LINUX1_2 */
++#endif
++#endif /* SNI || LINUX1_2 || __GNU__ || __GLIBC__ */
+ 
+ #if defined(_WINDOWS) || defined(macintosh) || defined(XP_OS2) || defined(DARWIN)
+ #define GETHOSTBYNAME( n, r, b, l, e )  gethostbyname( n )
+@@ -276,7 +275,7 @@
+     defined(UNIXWARE) || defined(SUNOS4) || defined(SNI) || defined(BSDI) || \
+     defined(NCR) || defined(OSF1) || defined(NEC) || defined(VMS) || \
+     ( defined(HPUX10) && !defined(_REENTRANT)) || defined(HPUX11) || \
+-    defined(UnixWare) || defined(LINUX) || defined(NETBSD) || \
++    defined(UnixWare) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(NETBSD) || \
+     defined(FREEBSD) || defined(OPENBSD) || \
+     (defined(AIX) && !defined(USE_REENTRANT_LIBC))
+ #define GETHOSTBYNAME( n, r, b, l, e )  gethostbyname( n )
+@@ -300,7 +299,7 @@
+ #define GETHOSTBYNAME( n, r, b, l, e )  gethostbyname_r( n, r, b, l, e )
+ #endif
+ #if defined(HPUX9) || defined(LINUX1_2) || defined(LINUX2_0) || \
+-    defined(LINUX2_1) || defined(SUNOS4) || defined(SNI) || \
++    defined(LINUX2_1) || defined(__GNU__) || defined(__GLIBC__) || defined(SUNOS4) || defined(SNI) || \
+     defined(SCOOS) || defined(BSDI) || defined(NCR) || \
+     defined(NEC) || ( defined(HPUX10) && !defined(_REENTRANT)) || \
+     (defined(AIX) && !defined(USE_REENTRANT_LIBC))
+@@ -320,7 +319,7 @@
+ #endif
+ #if defined(hpux9) || defined(LINUX1_2) || defined(SUNOS4) || defined(SNI) || \
+     defined(SCOOS) || defined(BSDI) || defined(NCR) || defined(VMS) || \
+-    defined(NEC) || defined(LINUX) || (defined(AIX) && !defined(USE_REENTRANT_LIBC))
++    defined(NEC) || defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || (defined(AIX) && !defined(USE_REENTRANT_LIBC))
+ #define STRTOK( s1, s2, l )		strtok( s1, s2 )
+ #else
+ #define HAVE_STRTOK_R
+diff -urN mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in
+--- mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in	2005-06-02 06:00:33.000000000 +0200
++++ mozilla/directory/c-sdk/ldap/libraries/libldap/Makefile.in	2006-11-20 22:10:27.000000000 +0100
+@@ -168,7 +168,7 @@
+ EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME) $(OS_LIBS) -lc
+ endif
+ 
+-ifeq ($(OS_ARCH), Linux)
++ifneq (,$(filter Linux GNU GNU_%, $(OS_ARCH)))
+ EXTRA_LIBS = -L$(dist_libdir) -l$(LBER_LIBNAME)
+ endif
+ 
+@@ -286,7 +286,7 @@
+ ifdef SO_FILES_TO_REMOVE
+ 	-$(RM) $(SO_FILES_TO_REMOVE)
+ endif
+-ifneq (,$(filter AIX Linux HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH)))
++ifneq (,$(filter AIX Linux GNU GNU_% HP-UX Darwin BeOS QNX NetBSD OSF1 OpenBSD, $(OS_ARCH)))
+ 	$(LINK_LIB) ../liblber/$(OBJDIR_NAME)/*.a
+ else
+ ifeq ($(OS_ARCH),OS2)
+diff -urN mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c
+--- mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c	2003-03-25 14:57:38.000000000 +0100
++++ mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-error.c	2006-11-20 22:10:27.000000000 +0100
+@@ -218,7 +218,7 @@
+ 
+ #if defined(__hpux) || defined(_AIX) || defined(OSF1) || defined(DARWIN) || \
+   defined(BEOS) || defined(FREEBSD) || defined(BSDI) || defined(VMS) || \
+-  defined(OPENBSD) || defined(NETBSD)
++  defined(OPENBSD) || defined(NETBSD) || defined(__FreeBSD_kernel__)
+ #define EDEADLOCK       -1
+ #endif
+ 
+diff -urN mozilla/security/coreconf/Linux.mk mozilla/security/coreconf/Linux.mk
+--- mozilla/security/coreconf/Linux.mk	2005-02-02 00:39:18.000000000 +0100
++++ mozilla/security/coreconf/Linux.mk	2006-11-20 22:16:26.000000000 +0100
+@@ -52,59 +52,34 @@
+ 
+ DEFAULT_COMPILER = gcc
+ 
+-ifeq ($(OS_TEST),m68k)
+-	OS_REL_CFLAGS	= -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH	= m68k
+-else		
+-ifeq ($(OS_TEST),ppc)
+-	OS_REL_CFLAGS	= -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH	= ppc
++CPU_ARCH      = $(OS_TEST)
++
++ifeq ($(KERNEL),linux)
++	OS_REL_CFLAGS   = -D_XOPEN_SOURCE -DLINUX1_2
++	ARCH            = linux
+ else
++	OS_REL_CFLAGS   = -D_XOPEN_SOURCE
++	ARCH            = gnu
++endif
++
++
+ ifeq ($(OS_TEST),alpha)
+-        OS_REL_CFLAGS   = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH	= alpha
+-else
+-ifeq ($(OS_TEST),ia64)
+-	OS_REL_CFLAGS	= -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH	= ia64
+-else
+-ifeq ($(OS_TEST),x86_64)
+-	OS_REL_CFLAGS	= -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH	= x86_64
+-else
+-ifeq ($(OS_TEST),sparc)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH        = sparc
++	OS_REL_CFLAGS   += -D_ALPHA_
+ else
+ ifeq ($(OS_TEST),sparc64)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+ 	CPU_ARCH        = sparc
+ else
+ ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+ 	CPU_ARCH        = arm
+ else
+ ifeq ($(OS_TEST),parisc)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+ 	CPU_ARCH        = hppa
+ else
+ ifeq ($(OS_TEST),parisc64)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+ 	CPU_ARCH        = hppa
+ else
+-ifeq ($(OS_TEST),s390)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH        = s390
+-else
+-ifeq ($(OS_TEST),s390x)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH        = s390x
+-else
+-ifeq ($(OS_TEST),mips)
+-	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-	CPU_ARCH        = mips
++ifeq (,$(filter-out i686 i586 i486 i386,$(OS_TEST)))
+-else
+-	OS_REL_CFLAGS	= -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
++	OS_REL_CFLAGS	+= -Di386
+ 	CPU_ARCH	= x86
+ endif
+ endif
+@@ -112,18 +88,11 @@
+ endif
+ endif
+ endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+ 
+ 
+ LIBC_TAG		= _glibc
+ 
+-ifeq ($(OS_RELEASE),2.0)
++ifeq ($(KERNEL)-$(OS_RELEASE),linux-2.0)
+ 	OS_REL_CFLAGS	+= -DLINUX2_0
+ 	MKSHLIB		= $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ 	ifdef BUILD_OPT
+@@ -140,20 +109,22 @@
+ OS_PTHREAD = -lpthread 
+ endif
+ 
+-OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR
++OS_CFLAGS		= $(DSO_CFLAGS) $(OS_REL_CFLAGS) -ansi -Wall -pipe -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR
++ifeq ($(KERNEL),linux)
++OS_CFLAGS += -DLINUX -Dlinux
++endif
+ OS_LIBS			= $(OS_PTHREAD) -ldl -lc
+ 
+ ifdef USE_PTHREADS
+ 	DEFINES		+= -D_REENTRANT
+ endif
+ 
+-ARCH			= linux
+ 
+ DSO_CFLAGS		= -fPIC
+ DSO_LDOPTS		= -shared
+ DSO_LDFLAGS		=
+ 
+-# INCLUDES += -I/usr/include -Y/usr/include/linux
++# INCLUDES += -I/usr/include
+ G++INCLUDES		= -I/usr/include/g++
+ 
+ #
+diff -urN mozilla/security/coreconf/Linux2.6.mk mozilla/security/coreconf/Linux2.6.mk
+--- mozilla/security/coreconf/Linux2.6.mk	2004-04-25 17:02:17.000000000 +0200
++++ mozilla/security/coreconf/Linux2.6.mk	2006-11-20 22:10:27.000000000 +0100
+@@ -37,7 +37,10 @@
+ 
+ include $(CORE_DEPTH)/coreconf/Linux.mk
+ 
++ifeq ($(KERNEL), linux)
+ OS_REL_CFLAGS   += -DLINUX2_1
++endif
++
+ MKSHLIB         = $(CC) -shared -Wl,-soname -Wl,$(@:$(OBJDIR)/%.so=%.so)
+ ifdef BUILD_OPT
+             OPTIMIZER       = -O2
+diff -urN mozilla/security/coreconf/arch.mk mozilla/security/coreconf/arch.mk
+--- mozilla/security/coreconf/arch.mk	2005-10-11 01:30:12.000000000 +0200
++++ mozilla/security/coreconf/arch.mk	2006-11-20 22:10:27.000000000 +0100
+@@ -154,6 +154,14 @@
+     ifneq ($(words $(OS_RELEASE)),1)
+ 	OS_RELEASE := $(word 1,$(OS_RELEASE)).$(word 2,$(OS_RELEASE))
+     endif
++    KERNEL = linux
++endif
++
++# This check must be last.  Since all uses of OS_ARCH that follow affect only
++# userland, we can merge other Glibc systems with Linux here.
++ifneq (, $(filter GNU GNU_%, $(OS_ARCH)))
++OS_ARCH = Linux
++OS_RELEASE = 2.6
+ endif
+ 
+ #
+diff -urN mozilla/security/coreconf/config.mk mozilla/security/coreconf/config.mk
+--- mozilla/security/coreconf/config.mk	2004-04-25 17:02:17.000000000 +0200
++++ mozilla/security/coreconf/config.mk	2006-11-20 22:10:27.000000000 +0100
+@@ -63,7 +63,7 @@
+ #######################################################################
+ 
+ TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \
+-              OpenVMS AIX
++              OpenVMS AIX GNU GNU_%
+ 
+ ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET)))
+ include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk
+diff -urN mozilla/security/nss/lib/freebl/unix_rand.c mozilla/security/nss/lib/freebl/unix_rand.c
+--- mozilla/security/nss/lib/freebl/unix_rand.c	2005-10-11 01:22:50.000000000 +0200
++++ mozilla/security/nss/lib/freebl/unix_rand.c	2006-11-20 22:10:26.000000000 +0100
+@@ -81,7 +81,8 @@
+ }
+ 
+ #if defined(SCO) || defined(UNIXWARE) || defined(BSDI) || defined(FREEBSD) \
+-    || defined(NETBSD) || defined(NTO) || defined(DARWIN) || defined(OPENBSD)
++    || defined(NETBSD) || defined(NTO) || defined(DARWIN) || defined(OPENBSD) \
++    || defined(__FreeBSD_kernel__) || defined(__NetBSD_kernel__)
+ #include <sys/times.h>
+ 
+ #define getdtablesize() sysconf(_SC_OPEN_MAX)
+diff -urN mozilla/security/nss/lib/ssl/sslmutex.c mozilla/security/nss/lib/ssl/sslmutex.c
+--- mozilla/security/nss/lib/ssl/sslmutex.c	2004-04-28 01:04:39.000000000 +0200
++++ mozilla/security/nss/lib/ssl/sslmutex.c	2006-11-20 22:10:27.000000000 +0100
+@@ -89,7 +89,7 @@
+     return SECSuccess;
+ }
+ 
+-#if defined(LINUX) || defined(AIX) || defined(VMS) || defined(BEOS) || defined(BSDI) || defined(NETBSD) || defined(OPENBSD)
++#if defined(LINUX) || defined(AIX) || defined(VMS) || defined(BEOS) || defined(BSDI) || defined(NETBSD) || defined(OPENBSD) || defined(__GLIBC__)
+ 
+ #include <unistd.h>
+ #include <fcntl.h>
+diff -urN mozilla/security/nss/lib/ssl/sslmutex.h mozilla/security/nss/lib/ssl/sslmutex.h
+--- mozilla/security/nss/lib/ssl/sslmutex.h	2004-04-28 01:04:39.000000000 +0200
++++ mozilla/security/nss/lib/ssl/sslmutex.h	2006-11-20 22:10:27.000000000 +0100
+@@ -79,7 +79,7 @@
+ 
+ typedef int    sslPID;
+ 
+-#elif defined(LINUX) || defined(AIX) || defined(VMS) || defined(BEOS) || defined(BSDI) || defined(NETBSD) || defined(OPENBSD)
++#elif defined(LINUX) || defined(AIX) || defined(VMS) || defined(BEOS) || defined(BSDI) || defined(NETBSD) || defined(OPENBSD) || defined(__GLIBC__)
+ 
+ #include <sys/types.h>
+ #include "prtypes.h"
+diff -urN mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in
+--- mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2006-11-20 22:20:44.000000000 +0100
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/Makefile.in	2006-11-20 22:10:27.000000000 +0100
+@@ -70,7 +70,7 @@
+ # New code for Linux, et. al., with gcc
+ # Migrate other platforms here after testing
+ #
+-ifneq (,$(filter Linux,$(OS_ARCH)))
++ifneq (,$(filter Linux GNU_%,$(OS_ARCH)))
+ # Linux/x86-64
+ ifeq (x86_64,$(OS_TEST))
+ CPPSRCS		:= xptcinvoke_x86_64_linux.cpp xptcstubs_x86_64_linux.cpp
+diff -urN mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h
+--- mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h	2006-02-23 20:37:11.000000000 +0100
++++ mozilla/xpcom/reflect/xptcall/src/md/unix/xptc_platforms_unixish_x86.h	2006-11-20 22:10:27.000000000 +0100
+@@ -67,7 +67,7 @@
+ *
+ */
+ 
+-#if defined(LINUX)
++#if defined(LINUX) || (defined(__GLIBC__) && defined(__FreeBSD_kernel__))
+ 
+ #if (__GNUC__ == 2) && (__GNUC_MINOR__ <= 7)
+ /* Old gcc 2.7.x.x.  What does gcc 2.8.x do?? */
+diff -urN mozilla/configure.in mozilla/configure.in
+--- mozilla/configure.in	2006-11-20 22:20:44.000000000 +0100
++++ mozilla/configure.in	2006-11-20 22:10:27.000000000 +0100
+@@ -812,6 +812,7 @@
+     OS_TEST="${target_cpu}"
+     case "${target_os}" in
+         linux*)       OS_ARCH=Linux ;;
++        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
+         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
+         mingw*)       OS_ARCH=WINNT ;;
+         wince*)       OS_ARCH=WINCE ;;
+@@ -1261,7 +1262,7 @@
+     LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(DIST)/bin/XUL -lobjc'
+     ;;
+ 
+-*-linux*)
++*-linux*|*-kfreebsd*-gnu)
+     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+     HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
+     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+@@ -2169,7 +2170,7 @@
+ dnl = Flags to strip unused symbols from .so components
+ dnl ========================================================
+ case "$target" in
+-    *-linux*)
++    *-linux*|*-kfreebsd*-gnu)
+         MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
+         ;;
+     *-solaris*)
+@@ -2735,7 +2736,7 @@
+ 			fi
+ 			;;
+ 
+-	    *-*-linux*) 
++	    *-*-linux*|*-*-kfreebsd*-gnu) 
+ 			AC_DEFINE(_REENTRANT) 
+ 			;;
+ 
+diff -urN mozilla/configure mozilla/configure
+--- mozilla/configure	2006-11-20 22:20:44.000000000 +0100
++++ mozilla/configure	2006-11-20 22:19:49.000000000 +0100
+@@ -5036,6 +4934,7 @@
+     OS_TEST="${target_cpu}"
+     case "${target_os}" in
+         linux*)       OS_ARCH=Linux ;;
++        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
+         solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
+         mingw*)       OS_ARCH=WINNT ;;
+         wince*)       OS_ARCH=WINCE ;;
+@@ -5523,7 +5422,7 @@
+     LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(DIST)/bin/XUL -lobjc'
+     ;;
+ 
+-*-linux*)
++*-linux*|*-kfreebsd*-gnu)
+     HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+     HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
+     HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
+@@ -6792,7 +6691,7 @@
+ esac
+ 
+ case "$target" in
+-    *-linux*)
++    *-linux*|*-kfreebsd*-gnu)
+         MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
+         ;;
+     *-solaris*)
+@@ -9498,7 +9400,7 @@
+ 			fi
+ 			;;
+ 
+-	    *-*-linux*) 
++	    *-*-linux*|*-*-kfreebsd*-gnu) 
+ 			cat >> confdefs.h <<\EOF
+ #define _REENTRANT 1
+ EOF
diff -urN iceape-1.0.6/debian/patches/38_mips64_build.dpatch iceape_1.0.6.kbsd/debian/patches/38_mips64_build.dpatch
--- iceape-1.0.6/debian/patches/38_mips64_build.dpatch	2006-12-02 23:07:06.000000000 +0100
+++ iceape_1.0.6.kbsd/debian/patches/38_mips64_build.dpatch	2006-12-02 21:41:45.000000000 +0100
@@ -10,18 +10,17 @@
 ==================================================================
 --- xulrunner/security/coreconf/Linux.mk	(revision 44)
 +++ xulrunner/security/coreconf/Linux.mk	(local)
-@@ -100,6 +100,10 @@
- 	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
- 	CPU_ARCH        = s390x
+@@ -78,6 +78,9 @@
+ ifeq ($(OS_TEST),parisc64)
+ 	CPU_ARCH        = hppa
  else
 +ifeq ($(OS_TEST),mips64)
-+	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
 +	CPU_ARCH        = mips
 +else
- ifeq ($(OS_TEST),mips)
- 	OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
- 	CPU_ARCH        = mips
-@@ -119,6 +123,7 @@
+ ifeq (,$(filter-out i686 i586 i486 i386,$(OS_TEST)))
+ 	OS_REL_CFLAGS	+= -Di386
+ 	CPU_ARCH	= x86
+@@ -87,6 +90,7 @@
  endif
  endif
  endif
diff -urN iceape-1.0.6/debian/patches/80_uname.dpatch iceape_1.0.6.kbsd/debian/patches/80_uname.dpatch
--- iceape-1.0.6/debian/patches/80_uname.dpatch	2006-12-02 23:07:06.000000000 +0100
+++ iceape_1.0.6.kbsd/debian/patches/80_uname.dpatch	2006-12-02 23:01:15.000000000 +0100
@@ -13,7 +13,7 @@
 
 --- xulrunner/configure.in	2006-08-09 10:26:00.000000000 +0200
 +++ xulrunner/configure.in	2006-08-09 10:31:25.000000000 +0200
-@@ -818,10 +818,17 @@
+@@ -818,10 +818,18 @@
          darwin*)      OS_ARCH=Darwin OS_TARGET=Darwin ;;
      esac
  else
@@ -26,6 +26,7 @@
 +    OS_TEST="${host_cpu}"
 +    case "${host_os}" in
 +        linux*)       OS_ARCH=Linux ;;
++        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
 +        solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
 +        mingw*)       OS_ARCH=WINNT ;;
 +        wince*)       OS_ARCH=WINCE ;;
diff -urN iceape-1.0.6/debian/patches/99_configure.dpatch iceape_1.0.6.kbsd/debian/patches/99_configure.dpatch
--- iceape-1.0.6/debian/patches/99_configure.dpatch	2006-12-02 23:07:06.000000000 +0100
+++ iceape_1.0.6.kbsd/debian/patches/99_configure.dpatch	2006-12-02 23:04:31.000000000 +0100
@@ -1538,7 +1538,7 @@
    rm -rf conftest*
    eval "ac_cv_lib_$ac_lib_var=yes"
  else
-@@ -5042,10 +4946,17 @@
+@@ -5042,10 +4946,18 @@
          darwin*)      OS_ARCH=Darwin OS_TARGET=Darwin ;;
      esac
  else
@@ -1551,6 +1551,7 @@
 +    OS_TEST="${host_cpu}"
 +    case "${host_os}" in
 +        linux*)       OS_ARCH=Linux ;;
++        kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD ;;
 +        solaris*)     OS_ARCH=SunOS OS_RELEASE=5 ;;
 +        mingw*)       OS_ARCH=WINNT ;;
 +        wince*)       OS_ARCH=WINCE ;;


More information about the pkg-mozilla-maintainers mailing list