Subject: pkg/29986: lang/ezm3 fails to install on NetBSD/i386 -current
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <mikawa@terra.dti.ne.jp>
List: pkgsrc-bugs
Date: 04/16/2005 08:39:00
>Number:         29986
>Category:       pkg
>Synopsis:       lang/ezm3 fails to install on NetBSD/i386 -current
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 16 08:39:00 +0000 2005
>Originator:     Masanori Mikawa
>Release:        NetBSD 3.99.3
>Organization:
>Environment:
System: NetBSD raven 3.99.3 NetBSD 3.99.3 (RAVEN) #5: Tue Apr 12 03:10:46 JST 2005 root@raven:/a/usr.obj/sys/arch/i386/compile/RAVEN i386
Architecture: i386
Machine: i386
>Description:
	I tried to installing lang/ezm3 package, but it failed at
	linking m3bundle program.
>How-To-Repeat:
	Do 'make install' on lang/ezm3 pkgsrc subdirectory.

# make install
[ ... ]
---------- building m3bundle in language/modula3/m3tools ----------

/usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/../boot-NetBSDi386/m3build/NetBSDi386/m3build -T /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/../m3config/src -F /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/../NetBSDi386/config.tmpl -DUSE_M3DOC=
mkdir NetBSDi386
--- building in NetBSDi386 ---
new source -> compiling ../src/m3bundle.m3
 -> linking m3bundle
ld: cannot find -lm3
/usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/../boot-NetBSDi386/m3ship/NetBSDi386/m3ship -T /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/../m3config/src
install: m3bundle: stat: No such file or directory
--- shipping from NetBSDi386 ---
/usr/pkg/ezm3/lib/m3/pkg/m3bundle/NetBSDi386
   .M3EXPORTS
   .M3IMPTAB
   .M3WEB
/usr/pkg/ezm3/bin
   m3bundle

m3ship: quake error: quake error: runtime error: install failed with error code: 1

--procedure--  -line-  -file---
error              --  <builtin>
install_file      501  /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/m3config/src/COMMON
                    6  /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/language/modula3/m3tools/m3bundle/NetBSDi386/.M3SHIP


m3build: quake error: quake error: runtime error: m3ship failed with error code: 1

--procedure--  -line-  -file---
error              --  <builtin>
BuildChunk        170  /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/m3makefile
PkgInfo           240  /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/m3makefile
                   44  /usr/pkgsrc/lang/ezm3/work/ezm3-1.1/src/PACKAGES

gmake: *** [packages] Error 1
*** Error code 2

Stop.
make: stopped in /usr/pkgsrc/lang/ezm3
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/lang/ezm3
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/lang/ezm3
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/lang/ezm3


>Fix:
	The problem occurs so that buildlink system may transform
	linkage option.
	When m3bundle is installed, m3build starts linking
	m3 and m3core libraries from the EZM3ROOT/lib subdirectories
	(EZM3ROOT directory is PREFIX/ezm3). But the libraries is
	part of the ezm3 package, it doesn't become the object of buildlink.
	Therefore, it fails in the link because the libraries doesn't exist
	in the WRKSRC/.buildlink directory.

	Protects -LEZM3ROOT/lib option from the buildlink transforming.
	Apply following patch to lang/ezm3/Makefile.


--- lang/ezm3/Makefile.orig	2004-06-05 02:34:36.000000000 +0900
+++ lang/ezm3/Makefile
@@ -21,6 +21,8 @@ PLIST_SUBST+=		TARGET=${TARGET} TARGETDI
 .include "../../mk/bsd.prefs.mk"
 CFLAGS:=
 EZM3ROOT=		${PREFIX}/ezm3
+WRAPPER_TRANSFORM_CMDS+=\
+	transform:L:${EZM3ROOT}/lib:${_BLNK_MANGLE_DIR.${PREFIX}}/${DIST_SUBDIR}/lib
 
 # XXX: This may well work for some others.
 ONLY_FOR_PLATFORM=      FreeBSD-*-i386 NetBSD-*-i386 Linux-*-i386