Subject: pkg/26640: samba-3.0.5 fails to install on FreeBSD 5.x (and IRIX/AIX)
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <john.benninghoff@rbcdain.com>
List: pkgsrc-bugs
Date: 08/13/2004 16:19:21
>Number:         26640
>Category:       pkg
>Synopsis:       samba-3.0.5 fails to install on FreeBSD 5.x (and IRIX/AIX)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Aug 13 18:44:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     John Benninghoff
>Release:        pkgsrc-current
>Organization:
>Environment:
FreeBSD 5.2.1-RELEASE-p9 i386 GENERIC
>Description:
The nss winbind and wins libraries have different names on FreeBSD 5, IRIX, and AIX:

from samba-3.0.5/source/configure:

-- SNIP --
case "$host_os" in
	*linux*)
		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
		;;
	*freebsd5*)
		# FreeBSD winbind client is implemented as a wrapper around
		# the Linux version.
		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
		    nsswitch/winbind_nss_linux.o"
		WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
		WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
		;;
	*irix*)
		# IRIX has differently named shared libraries
		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
		WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
		WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
		;;
	*solaris*)
		# Solaris winbind client is implemented as a wrapper around
		# the Linux version.
		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
		    nsswitch/winbind_nss_linux.o"
		WINBIND_NSS_EXTRA_LIBS="-lsocket"
		;;
	*hpux11*)
		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
		;;
	*aix*)
		# AIX has even differently named shared libraries.  No
		# WINS support has been implemented yet.
		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
		WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
		WINBIND_NSS="nsswitch/WINBIND"
		WINBIND_WINS_NSS=""
		;;
	*)
		HAVE_WINBIND=no
		winbind_no_reason=", unsupported on $host_os"
		;;
esac
-- SNIP --

>How-To-Repeat:
"bmake install" on FreeBSD (IRIX, AIX)

>Fix:
Patch against -current (8/13/04):

Tested on FreeBSD; should fix problems on IRIX and AIX, but untested on those platforms.

-- CUT HERE --
Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/net/samba/Makefile,v
retrieving revision 1.126
diff -u -r1.126 Makefile
--- Makefile	8 Aug 2004 06:13:02 -0000	1.126
+++ Makefile	13 Aug 2004 17:57:40 -0000
@@ -106,8 +106,10 @@
 	${RMDIR} ${SAMBA_LIBDIR}/${d}
 .endfor
 	${INSTALL_DATA_DIR} ${DOCDIR}
-	${INSTALL_LIBRARY} ${WRKSRC}/nsswitch/libnss_winbind.so ${PREFIX}/lib
-	${INSTALL_LIBRARY} ${WRKSRC}/nsswitch/libnss_wins.so ${PREFIX}/lib
+	${INSTALL_LIBRARY} ${WRKSRC}/nsswitch/${NSS_WINBIND} ${PREFIX}/lib
+.if !empty(NSS_WINS)
+	${INSTALL_LIBRARY} ${WRKSRC}/nsswitch/${NSS_WINS} ${PREFIX}/lib
+.endif
 	cd ${WRKSRC}/../docs/registry; for file in *.reg; do		\
 		${INSTALL_DATA} $$file ${DOCDIR}/$$file;		\
 	done
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/net/samba/PLIST,v
retrieving revision 1.22
diff -u -r1.22 PLIST
--- PLIST	30 Jul 2004 21:05:41 -0000	1.22
+++ PLIST	13 Aug 2004 17:57:40 -0000
@@ -24,8 +24,8 @@
 bin/testprns
 bin/wbinfo
 include/libsmbclient.h
-lib/libnss_winbind.so
-lib/libnss_wins.so
+${WINBIND}
+${WINS}
 lib/libsmbclient.a
 lib/libsmbclient.so
 lib/libsmbclient.so.0
Index: options.mk
===================================================================
RCS file: /cvsroot/pkgsrc/net/samba/options.mk,v
retrieving revision 1.1
diff -u -r1.1 options.mk
--- options.mk	5 Aug 2004 03:04:34 -0000	1.1
+++ options.mk	13 Aug 2004 17:57:40 -0000
@@ -94,3 +94,28 @@
 .else
 PLIST_SUBST+=		SMBMOUNT="@comment "
 .endif
+
+###
+### Determine proper name for WINBIND and WINS libraries
+###
+.if ${OPSYS} == "FreeBSD" && ${LOWER_OPSYS_VERSUFFIX} == "5"
+NSS_WINBIND=	nss_winbind.so
+NSS_WINS=	nss_wins.so
+PLIST_SUBST+=	WINBIND="lib/${NSS_WINBIND}"
+PLIST_SUBST+=	WINS="lib/${NSS_WINS}"
+.elif ${OPSYS} == "IRIX"
+NSS_WINBIND=	libns_winbind.so
+NSS_WINS=	libns_wins.so
+PLIST_SUBST+=	WINBIND="lib/${NSS_WINBIND}"
+PLIST_SUBST+=	WINS="lib/${NSS_WINS}"
+.elif ${OPSYS} == "AIX"
+NSS_WINBIND=	WINBIND
+NSS_WINS=	""
+PLIST_SUBST+=	WINBIND="lib/${NSS_WINBIND}"
+PLIST_SUBST+=	WINS="@comment no nss wins library"
+.else
+NSS_WINBIND=	libnss_winbind.so
+NSS_WINS=	libnss_wins.so
+PLIST_SUBST+=	WINBIND="lib/${NSS_WINBIND}"
+PLIST_SUBST+=	WINS="lib/${NSS_WINS}"
+.endif
-- CUT HERE --
>Release-Note:
>Audit-Trail:
>Unformatted: