Subject: Ruby-tcltklib && tcl > tcl83 (others too ?)
To: None <tech-pkg@netbsd.org>
From: Martin S. Weber <Ephaeton@gmx.net>
List: tech-pkg
Date: 07/08/2004 00:30:56
hoi pkg wiz's,

I've a little problem building ruby-tcltklib, which is basically because of
tcl83/tcl84 interaction problems.

from the Makefile:
(...)
# Ruby can work with tcl 8.4 but can't coexist with thread library.
# Since tcl-8.4.6nb1 enabled linking with thread library, ruby couldn't
# use it any more.
DEPENDS+=       tcl>=8.3:../../lang/tcl83
DEPENDS+=       tk>=8.3:../../x11/tk83
(...)

I have installed:

$ pkg_info -qe 'tcl>=8.3' && pkg_info 'tk>=8.3' && echo sure!
sure!
$ pkg_info -c tcl tk
Information for tcl-8.4.6nb5:

Comment:
Ousterhout's Tool Command Language, a scripting language


Information for tk-8.4.6nb3:

Comment:
Graphical toolkit for TCL

Obviously the DEPENDS is satisfied by tcl & tk of the wrong versions.

Now if no tcl / tk was installed, I suppose it'd pull in the right
versions (tcl83 / tk83), but as tcl/tk 84 is installed already, it
wouldn't bother ? Shouldn't those two '>='s be '==' ? (assuming that
== disregards _nbX)

I assume everything will be fine with tcl83/tk83 installed (doing that 
now and continuing). Yet I suppose tcl83/tk83 should be pulled in
automatically.


The real build error is that linking against -ltcl83 fails (none installed).

================================================================================
Build log:

===> Building for ruby-tcltklib-1.6.8nb4 
make: cannot open Makefile.

make: stopped in /usr/obj/pkg/x11/ruby-tcltklib/work/ruby-1.6.8/ext/tcltklib
*** Error code 2

...

Build log with PKG_DEBUG_LEVEL=2:

+ cd /usr/obj/pkg/x11/ruby-tcltklib/work/ruby-1.6.8/ext/tcltklib
+ /usr/bin/env USETOOLS=no MAKECONF=/dev/null USETOOLS=no OBJECT_FMT=ELF LDFLAGS= -Wl,-R/usr/pkg/lib
-L/usr/pkg/lib RPATH_FLAG=-R WHOLE_ARCHIVE_FLAG=-Wl,--whole-archive NO_WHOLE_ARCHIVE_FLAG=-Wl,--no-
whole-archive LINK_ALL_LIBGCC_HACK= PATH=/usr/obj/pkg/x11/ruby-tcltklib/work/.tools/bin:/usr/obj/pkg
/x11/ruby-tcltklib/work/.gcc/bin:/usr/pkg/bin:/usr/bin:/bin:/root/bin:/usr/local/bin:/sbin:/usr/sbin
:/usr/pkg/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/games:/usr/pkg/java/kaffe/bin:/usr/pkg/bin:/usr/X
11R6/bin PREFIX=/usr/pkg LOCALBASE=/usr/pkg X11BASE=/usr/X11R6 CFLAGS=-O2 -mcpu=v9 -pipe CPPFLAGS=  
FFLAGS=-O X11PREFIX=/usr/pkg CC=gcc CXX=g++ CPP=cpp PTHREAD_CFLAGS= PTHREAD_LDFLAGS= BSD_INSTALL_PRO
GRAM=install -c -s -o root -g wheel -m 555 BSD_INSTALL_SCRIPT=install -c -o root -g wheel -m 555 BSD
_INSTALL_LIB=install -c -o root -g wheel -m 555 BSD_INSTALL_DATA=install -c -o root -g wheel -m 444 
BSD_INSTALL_MAN=install -c -o root -g wheel -m 444 BSD_INSTALL=install BSD_INSTALL_PROGRAM_DIR=insta
ll -d -o root -g wheel -m 755 BSD_INSTALL_SCRIPT_DIR=install -d -o root -g wheel -m 755 BSD_INSTALL_
LIB_DIR=install -d -o root -g wheel -m 755 BSD_INSTALL_DATA_DIR=install -d -o root -g wheel -m 755 B
SD_INSTALL_MAN_DIR=install -d -o root -g wheel -m 755 BSD_INSTALL_GAME=install -c -s -o root -g whee
l -m 555 PKG_SYSCONFDIR=/usr/pkg/etc INSTALL_INFO=/usr/obj/pkg/x11/ruby-tcltklib/work/.tools/bin/ins
tall-info MAKEINFO=/usr/obj/pkg/x11/ruby-tcltklib/work/.tools/bin/makeinfo VIEWBASE=/usr/pkg /usr/bi
n/make CCOPTIONS=-mcpu=v9 -f Makefile all

 make: cannot open Makefile.

 make: stopped in /usr/obj/pkg/x11/ruby-tcltklib/work/ruby-1.6.8/ext/tcltklib     
 *** Error code 2 

contents of /usr/obj/pkg/x11/ruby-tcltklib/work/ruby-1.6.8/ext/tcltklib:

MANIFEST    README.euc  depend      lib/        sample/     tcltklib.c
MANUAL.euc  demo/       extconf.rb  mkmf.log    stubs.c

mkmf.log:

(...)
# 2 "conftest.c" 2
gcc -o conftest -I/usr/pkg/lib/ruby/1.6/sparc64-netbsd -O2 -mcpu=v9 -pipe -I/usr/include -fPIC -pipe
   -I/usr/pkg/include -I/usr/pkg/include/tk8.3 -I/usr/pkg/include/tcl8.3 -I/usr/X11R6/include -Wl,-e
xport-dynamic  -L/usr/pkg/lib -L/usr/pkg/lib/tk8.3 -L/usr/pkg/lib/tcl8.3 -L/usr/X11R6/lib conftest.c
 -lX11 -lc  -lcrypt -lm
gcc -o conftest -I/usr/pkg/lib/ruby/1.6/sparc64-netbsd -O2 -mcpu=v9 -pipe -I/usr/include -fPIC -pipe
   -I/usr/pkg/include -I/usr/pkg/include/tk8.3 -I/usr/pkg/include/tcl8.3 -I/usr/X11R6/include -Wl,-e
xport-dynamic  -L/usr/pkg/lib -L/usr/pkg/lib/tk8.3 -L/usr/pkg/lib/tcl8.3 -L/usr/X11R6/lib conftest.c
 -ltcl83 -lX11 -lc  -lcrypt -lm
ld: cannot find -ltcl83
gcc -o conftest -I/usr/pkg/lib/ruby/1.6/sparc64-netbsd -O2 -mcpu=v9 -pipe -I/usr/include -fPIC -pipe
   -I/usr/pkg/include -I/usr/pkg/include/tk8.3 -I/usr/pkg/include/tcl8.3 -I/usr/X11R6/include -Wl,-e
xport-dynamic  -L/usr/pkg/lib -L/usr/pkg/lib/tk8.3 -L/usr/pkg/lib/tcl8.3 -L/usr/X11R6/lib -L/usr/loc
al/lib conftest.c -ltcl83 -lX11 -lc  -lcrypt -lm
ld: cannot find -ltcl83
gcc -o conftest -I/usr/pkg/lib/ruby/1.6/sparc64-netbsd -O2 -mcpu=v9 -pipe -I/usr/include -fPIC -pipe
   -I/usr/pkg/include -I/usr/pkg/include/tk8.3 -I/usr/pkg/include/tcl8.3 -I/usr/X11R6/include -Wl,-e
xport-dynamic  -L/usr/pkg/lib -L/usr/pkg/lib/tk8.3 -L/usr/pkg/lib/tcl8.3 -L/usr/X11R6/lib conftest.c
 -ltcl83 -lX11 -lc  -lcrypt -lm
ld: cannot find -ltcl83
gcc -o conftest -I/usr/pkg/lib/ruby/1.6/sparc64-netbsd -O2 -mcpu=v9 -pipe -I/usr/include -fPIC -pipe
   -I/usr/pkg/include -I/usr/pkg/include/tk8.3 -I/usr/pkg/include/tcl8.3 -I/usr/X11R6/include -Wl,-e
xport-dynamic  -L/usr/pkg/lib -L/usr/pkg/lib/tk8.3 -L/usr/pkg/lib/tcl8.3 -L/usr/X11R6/lib -L/usr/lib
 conftest.c -ltcl83 -lX11 -lc  -lcrypt -lm
ld: cannot find -ltcl83

================================================================================
Regards,

-Martin