Subject: Re: devel/nss and Linux
To: Jeremy C. Reed <reed@reedmedia.net>
From: Matthew Luckie <mjl@luckie.org.nz>
List: tech-pkg
Date: 07/07/2005 14:17:37
> The second problem was that pkgsrc Makefile assumes the files to be 
> installed are at ${OPSYS}${OS_VERSION}_OPT.OBJ (Linux2.6.9_OPT.OBJ), but 
> on my system they were at Linux2.6_x86_glibc_PTH_OPT.OBJ.

the patch below *should* fix this, but I'm unable to test and confirm it.
can you review/check?  It doesn't seem to break anything on my NetBSD
system.

Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/devel/nss/Makefile,v
retrieving revision 1.5
diff -u -p -r1.5 Makefile
--- Makefile    22 May 2005 20:07:54 -0000      1.5
+++ Makefile    7 Jul 2005 02:16:08 -0000
@@ -11,6 +11,10 @@ COMMENT=             Libraries to support developme
 
 BUILD_DEPENDS+=                zip>=2.3:../../archivers/zip
 
+# NSS will build and run on other platforms when MAINTAINER knows what
+# magic Makefile glue is required
+ONLY_FOR_PLATFORM+=    NetBSD-*-* FreeBSD-*-* Linux-*-*
+
 WRKSRC=                        ${WRKDIR}/${DISTNAME}/mozilla/security/nss
 
 USE_PERL5=             build
@@ -31,14 +35,30 @@ SO_SUFFIX=          so.1.0
 .endif
 PLIST_SUBST+=          SO_SUFFIX=${SO_SUFFIX}
 
+.if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD"
+NSS_OBJ_DIR=   ${OPSYS}${OS_VERSION}_OPT.OBJ/lib
+.elif ${OPSYS} == "Linux"
+NSS_OBJ_DIR=   ${OPSYS}
+NSS_OBJ_DIR+=  ${SED} -e 's/^\([[:digit:]]\.[[:digit:]]\)\..*$/\1/'
+.if ${MACHINE_ARCH} == "i386"
+NSS_OBJ_DIR+=  _x86
+.elif ${MACHINE_ARCH} == "parisc" || ${MACHINE_ARCH} == "parisc64"
+NSS_OBJ_DIR+=  _hppa
+.elif ${MACHINE_ARCH} == "sparc64"
+NSS_OBJ_DIR+=  _sparc
+.else
+NSS_OBJ_DIR+=  _${MACHINE_ARCH}
+.endif
+NSS_OBJ_DIR+=  _glibc_PTH_OPT.OBJ
+.endif
+
 do-install:
        ${INSTALL_DATA_DIR} ${PREFIX}/include/nss
        ${INSTALL_DATA_DIR} ${PREFIX}/lib/nss
        (cd ${DIST}/public && ${PAX} -Lrwpe . ${PREFIX}/include/nss/ )
-       (cd ${DIST}/${OPSYS}${OS_VERSION}_OPT.OBJ/lib && \
+       (cd ${DIST}/${NSS_OBJ_DIR} && \
                ${PAX} -Lrwpe *.${SO_SUFFIX} ${PREFIX}/lib/nss/ )
 
 .include "../../devel/nspr/buildlink3.mk"
 .include "../../mk/pthread.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
-