Subject: Re: when should mk/dlopen.buildlink3.mk be used? and chat/gaim
To: None <mjl@luckie.org.nz, jmmv84@gmail.com>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 08/25/2005 14:16:32
> The problem with the tests in gaim is that they don't check for libdl
> specifically.  They check for other libraries and assume that -ldl is
> a dependency for them, so they pass this flag to the linker too.
> So, what happens?  As libdl does not exist, the test fails, and those
> libraries (silc, nspr) are not detected.

May I commit the following:

Index: chat/gaim/Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/chat/gaim/Makefile,v
retrieving revision 1.97
diff -u -b -u -r1.97 Makefile
--- chat/gaim/Makefile	19 Aug 2005 10:24:25 -0000	1.97
+++ chat/gaim/Makefile	25 Aug 2005 18:42:58 -0000
@@ -28,6 +28,7 @@
  CONFIGURE_ARGS+=	--disable-gevolution
  CONFIGURE_ARGS+=	--with-silc-includes=${BUILDLINK_PREFIX.silc-toolkit}/include/silc
  CONFIGURE_ARGS+=	--with-silc-libs=${BUILDLINK_PREFIX.silc-toolkit}/lib/silc
+CONFIGURE_ENV+=		DLLIB=${BUILDLINK_LDADD.dl}

  .include "options.mk"

@@ -47,5 +48,7 @@
  .include "../../x11/gtk2/buildlink3.mk"
  .include "../../x11/startup-notification/buildlink3.mk"

+.include "../../mk/dlopen.buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
  .include "../../mk/x11.buildlink3.mk"
  .include "../../mk/bsd.pkg.mk"
Index: chat/gaim/distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/chat/gaim/distinfo,v
retrieving revision 1.69
diff -u -b -u -r1.69 distinfo
--- chat/gaim/distinfo	12 Aug 2005 17:52:17 -0000	1.69
+++ chat/gaim/distinfo	25 Aug 2005 18:42:58 -0000
@@ -4,4 +4,4 @@
  RMD160 (gaim-1.5.0.tar.bz2) = 13f74e2d2ed69a775a5884b807c365177455ae0e
  Size (gaim-1.5.0.tar.bz2) = 6123237 bytes
  SHA1 (patch-aa) = 555c394dbb4cd9ef4fea621d30ce72baae309067
-SHA1 (patch-ad) = 21ffc478343793ce065c75a24ed0cf58b0677359
+SHA1 (patch-ad) = 20196058071ab85de2537c91bab8ff4aece752f3
Index: chat/gaim/patches/patch-ad
===================================================================
RCS file: /cvsroot/pkgsrc/chat/gaim/patches/patch-ad,v
retrieving revision 1.7
diff -u -b -u -r1.7 patch-ad
--- chat/gaim/patches/patch-ad	18 Mar 2005 18:56:04 -0000	1.7
+++ chat/gaim/patches/patch-ad	25 Aug 2005 18:42:58 -0000
@@ -1,26 +1,26 @@
-$NetBSD: patch-ad,v 1.7 2005/03/18 18:56:04 jmmv Exp $
+$NetBSD$

---- configure.orig	2005-02-25 03:44:01.000000000 +0100
-+++ configure
-@@ -28205,7 +28205,7 @@ fi
+--- configure.orig	2005-08-25 10:19:21.000000000 -0700
++++ configure	2005-08-25 10:23:27.000000000 -0700
+@@ -29137,7 +29137,7 @@
   	if test "$ac_silc_libs" != "no"; then
   		SILC_LIBS="-L$ac_silc_libs"
   	fi
  -	SILC_LIBS="$SILC_LIBS -lsilc -lsilcclient -lpthread -ldl"
-+	SILC_LIBS="$SILC_LIBS -lsilc -lsilcclient -lpthread"
++	SILC_LIBS="$SILC_LIBS -lsilc -lsilcclient ${PTHREAD_LIBS} ${DLLIB}"
   	echo "$as_me:$LINENO: checking for silc_client_init in -lsilcclient" >&5
   echo $ECHO_N "checking for silc_client_init in -lsilcclient... $ECHO_C" >&6
   if test "${ac_cv_lib_silcclient_silc_client_init+set}" = set; then
-@@ -33268,10 +33268,10 @@ echo "$as_me: error: Static linkage requ
+@@ -34275,10 +34275,10 @@

   					enable_nss="no"
   				else
  -					nsprlibs="-ldl $with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB"
-+					nsprlibs="$with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB"
++					nsprlibs="${DLLIB} $with_nspr_libs/libplc4.a $with_nspr_libs/libplds4.a $with_nspr_libs/libnspr4.a $PTHREAD_LIB"
   				fi
   			else
  -				nsprlibs="-ldl -lplc4 -lplds4 -lnspr4 $PTHREAD_LIB"
-+				nsprlibs="-lplc4 -lplds4 -lnspr4 $PTHREAD_LIB"
++				nsprlibs="${DLLIB} -lplc4 -lplds4 -lnspr4 $PTHREAD_LIB"
   			fi

   			echo "$as_me:$LINENO: checking for Mozilla nspr libraries" >&5

It is at
http://leaf.dragonflybsd.org/~reed/pkgsrc-chat-gaim.diff

I tested this on Linux, DragonFly and NetBSD 2.0.2.

(gaim has this in their bug report database.)

  Jeremy C. Reed

  	  	 	 BSD News, BSD tutorials, BSD links
 	  	 	 http://www.bsdnewsletter.com/