Subject: Re: pkg/28296: x11/ruby-tcltklib uses wrong DEPENDS relational
To: None <woods@planix.com, woods@weird.com>
From: Takahiro Kambe <taca@back-street.net>
List: pkgsrc-bugs
Date: 11/20/2004 23:58:10
Thanks for your problem report.

First, I'm working on whole ruby package's framework now. 

In message <20041113222100.DA0FC2520FF@narn.netbsd.org>
	on Sat, 13 Nov 2004 22:21:00 +0000 (UTC),
	"Greg A. Woods" <woods@weird.com> wrote:
> >Description:
> 
> 	lang/ruby won't build when tcl-8.4.6nb5 is already installed
> 	because x11/ruby-tcltklib won't build because it needs tcl-8.3.4
> 	and tk-8.3.4 and yet it's DEPENDS settings use the ">="
> 	relational operator instead of "=" as they should.
You are right.

> 	Note also that this "extconf.rb" script doesn't exit with a
> 	non-zero exit code when it fails leading to even further
> 	confusion and problems.
Because "extconf.rb" has diffrent policy from "configure" script; its
main purpose is using in Ruby distribution's source tree and build
available extention libraries without error.  Anyway, I'll add some
work around in tne new framework.

> 	So why does ruby have so much trouble with tcl/tk 8.4.* and with
> 	the threat of the threads library especially since tk 8.4.* does
> 	not _require_ linking against any threads library?!?!?
It isn't really the problem of tcl/tk 8.4 but ruby package's has
problem (or some lack) about handling of pthread library. 

> 	However since this extconf.rb script ignores LDFLAGS from
> 	CONFIGURE_ENV and the Makefile it generates also ignores LDFLAGS
> 	from BUILD_ENV the right linker flags are not passed through
> 	when building the shared library resulting in a failure to find
> 	the X11.6 library:
...
> 	17:56 [5552] $ ldd work/ruby-1.6.8/ext/tcltklib/*.so     
> 	work/ruby-1.6.8/ext/tcltklib/tcltklib.so:
> 	         -lcrypt.0 => /usr/lib/libcrypt.so.0
> 	         -lm.0 => /usr/lib/libm.so.0
> 	         -lruby.16 => /usr/pkg/lib/libruby.so.16
> 	         -ltk84.1 => /usr/pkg/lib/libtk84.so.1
> 	         -ltcl84.1 => /usr/pkg/lib/libtcl84.so.1
> 	         -lX11.6 => not found
Do you use diffrent path, X11BASE?  I couldn't reproduce such
situation on NetBSD 1.6.2/i386 machine.

> +post-configure:
> +	${MV} ${WRKSRC}/Makefile ${WRKSRC}/Makefile.in
> +	${SED} 's/^DLDFLAGS = /DLDFLAGS = \$${LDFLAGS}/' < ${WRKSRC}/Makefile.in > ${WRKSRC}/Makefile
> +
Can you specify what was need to passed by LDFLAGS?

-- 
Takahiro Kambe <taca@back-street.net>