pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/38443: OpenBSD patches for firefox and thunderbird



>Number:         38443
>Category:       pkg
>Synopsis:       OpenBSD patches for firefox and thunderbird
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 16 19:55:00 +0000 2008
>Originator:     Alexander Nasonov
>Release:        
>Organization:
>Environment:
OpenBSD 4.2 i386
>Description:
www/firefox and mail/thunderbird don't build on OpenBSD 4.2 i386.

Note that both packages have a patch for security/nss/lib/freebl/Makefile:

www/firefox/patches//patch-de
mail/thunderbird/patches/patch-dw

These patches should be replaced with the provided patch.
>How-To-Repeat:

>Fix:
--- nsprpub/configure.in.pkgsrc Tue Jun 12 02:08:48 2007
+++ nsprpub/configure.in        Tue Jun 12 02:09:21 2007
@@ -1742,6 +1742,8 @@
     AC_DEFINE(OPENBSD)
     AC_DEFINE(HAVE_BSD_FLOCK)
     AC_DEFINE(HAVE_SOCKLEN_T)
+    AC_DEFINE(_PR_HAVE_GETPROTO_R)
+    AC_DEFINE(_PR_HAVE_3_ARG_GETPROTO_R_POINTER)
     CFLAGS="$CFLAGS -ansi -Wall"
     CXXFLAGS="$CXXFLAGS -ansi -Wall"
     DLL_SUFFIX=so.1.0
--- nsprpub/configure.pkgsrc    Tue Jun 12 00:37:02 2007
+++ nsprpub/configure   Tue Jun 12 00:38:31 2007
@@ -4315,6 +4315,14 @@
 #define HAVE_SOCKLEN_T 1
 EOF
 
+    cat >> confdefs.h <<\EOF
+#define _PR_HAVE_GETPROTO_R 1
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define _PR_HAVE_3_ARG_GETPROTO_R_POINTER 1
+EOF
+
     CFLAGS="$CFLAGS -ansi -Wall"
     CXXFLAGS="$CXXFLAGS -ansi -Wall"
     DLL_SUFFIX=so.1.0
--- nsprpub/pr/src/misc/prnetdb.c.pkgsrc        Tue Jun 12 00:39:59 2007
+++ nsprpub/pr/src/misc/prnetdb.c       Tue Jun 12 01:34:58 2007
@@ -1210,7 +1210,9 @@
 
     if (!_pr_initialized) _PR_ImplicitInitialization();
 
-#if defined(_PR_HAVE_GETPROTO_R_INT)
+#if defined(_PR_HAVE_GETPROTO_R_INT) || \
+    defined(_PR_HAVE_3_ARG_GETPROTO_R_POINTER)
+
     {
         /*
         ** The protoent_data has a pointer as the first field.
@@ -1251,6 +1253,17 @@
         PR_SetError(PR_DIRECTORY_LOOKUP_ERROR, _MD_ERRNO());
         return PR_FAILURE;
     }
+#elif defined(_PR_HAVE_3_ARG_GETPROTO_R_POINTER)
+    /*
+    ** The buffer needs to be zero'd, and it should be
+    ** at least the size of a struct protoent_data.
+    */
+    memset(buffer, 0, buflen);
+    if (NULL == getprotobyname_r(name, res, (struct protoent_data*)buffer))
+    {
+        PR_SetError(PR_DIRECTORY_LOOKUP_ERROR, _MD_ERRNO());
+        return PR_FAILURE;
+    }
 #elif defined(_PR_HAVE_5_ARG_GETPROTO_R)
     /* The 5th argument for getprotobyname_r() cannot be NULL */
     if (-1 == getprotobyname_r(name, res, buffer, buflen, &res))
@@ -1290,7 +1303,8 @@
 
     if (!_pr_initialized) _PR_ImplicitInitialization();
 
-#if defined(_PR_HAVE_GETPROTO_R_INT)
+#if defined(_PR_HAVE_GETPROTO_R_INT) || \
+    defined(_PR_HAVE_3_ARG_GETPROTO_R_POINTER)
     {
         /*
         ** The protoent_data has a pointer as the first field.
@@ -1327,6 +1341,16 @@
     */
     memset(buffer, 0, buflen);
        if (-1 == getprotobynumber_r(number, res, (struct protoent_data*)buffer)
)
+    {
+        PR_SetError(PR_DIRECTORY_LOOKUP_ERROR, _MD_ERRNO());
+        return PR_FAILURE;
+    }
+#elif defined(_PR_HAVE_3_ARG_GETPROTO_R_POINTER)
+    /*
+    ** The buffer needs to be zero'd for these OS's.
+    */
+    memset(buffer, 0, buflen);
+    if (NULL == getprotobynumber_r(number, res, (struct protoent_data*)buffer))
     {
         PR_SetError(PR_DIRECTORY_LOOKUP_ERROR, _MD_ERRNO());
         return PR_FAILURE;
--- security/nss/lib/freebl/Makefile.orig       Tue Apr 15 23:10:48 2008
+++ security/nss/lib/freebl/Makefile    Tue Apr 15 23:11:16 2008
@@ -192,7 +192,7 @@
 # to bind the blapi function references in FREEBLVector vector
 # (ldvector.c) to the blapi functions defined in the freebl
 # shared libraries.
-ifeq (,$(filter-out BSD_OS FreeBSD Linux NetBSD, $(OS_TARGET)))
+ifeq (,$(filter-out BSD_OS FreeBSD Linux NetBSD OpenBSD DragonFlyBSD, $(OS_TARG
ET)))
     MKSHLIB += -Wl,-Bsymbolic
 endif



Home | Main Index | Thread Index | Old Index