Bug 48574 - tclConfig.sh has a nonexistent path for TCL_SRC_DIR
tclConfig.sh has a nonexistent path for TCL_SRC_DIR
Status: Closed FIXED
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s)
Latest
Any Any
: Normal Affects Only Me
Assigned To: Dirk Meyer
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2003-02-23 01:40 UTC by jkoshy
Modified: 2003-03-23 20:37 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jkoshy freebsd_committer 2003-02-23 01:40:13 UTC
/usr/local/lib/tcl8.3/tclConfig.sh is a shell script that records 
configuration information about the Tcl build.  Since our packages
are built on the ports build cluster, file names recorded in the
tclConfig.sh script that gets installed under $LOCALBASE are very 
likely to be invalid on a users machine.  The corresponding file
for the Tk toolkit, "tkConfig.sh" has a similar problem.

Any package that uses the paths recorded in these config scripts 
consequently fails to build and run.

Fix: 

The contents of these files should be edited to make these paths relative
to $PORTSDIR, at package install time.   A port that needs to access the
Tcl source tree will then work when BUILD_DEPENDS line like the 
following is specified.

BUILD_DEPENDS=${PORTSDIR}/lang/tcl83/work/tcl8.3.5/README:${PORTSDIR}/lang/tcl8
3:patch

Workaround: build and install Tcl and Tk from source.
How-To-Repeat: 
(nemesis) $ cd /usr/local/lib/tcl8.3
(nemesis) $ grep /tmp/a tclConfig.sh
TCL_BUILD_LIB_SPEC='-L/tmp/a/ports/lang/tcl83/work/tcl8.3.4/unix 
-ltcl83${TCL_DBGX}'
TCL_SRC_DIR='/tmp/a/ports/lang/tcl83/work/tcl8.3.4'
TCL_BUILD_STUB_LIB_SPEC='-L/tmp/a/ports/lang/tcl83/work/tcl8.3.4/unix 
-ltclstub83${TCL_DBGX}'
TCL_BUILD_STUB_LIB_PATH='/tmp/a/ports/lang/tcl83/work/tcl8.3.4/unix/libtclstub8
3${TCL_DBGX}.a'
Comment 1 Dirk Meyer freebsd_committer 2003-03-05 05:12:51 UTC
Responsible Changed
From-To: freebsd-ports-bugs->dinoex

over to maintainer
Comment 2 Dirk Meyer freebsd_committer 2003-03-14 17:55:13 UTC
State Changed
From-To: open->analyzed


The paths can't be relative to portsdir.
But "/tmp" can be replaced with ${WRKDIRPREFIX} 
which would solve the problem for most. 

BUILD_DEPENDS=${PORTSDIR}/lang/tcl83/work/tcl8.3.5/README:${PORTSDIR}/lang/tcl83:patch 

An absolute dependecy like this will fail on bento: 
PORTSDIR=/usr/ports, but /usr/ports is a symlink to /a/ports 
so workdir: ${WRKDIRPREFIX}${PORTSDIR}/lang/tcl83/work/tcl8.3.5/README 
will resolve in /tmp/usr/ports/lang/tcl83/work/tcl8.3.5/README 
but the file is exists only at /tmp/a/ports/lang/tcl83/work/tcl8.3.5/README 

So depedencies to workdirecories must be realative, using ${.CURDIR}. 

This affects a couple of ports: 
/usr/ports/current/c-nocem/Makefile 
/usr/ports/graphics/pvmpov/Makefile 
/usr/ports/java/jdk12/Makefile 
/usr/ports/lang/gpc/Makefile 
/usr/ports/lang/pm3-forms/Makefile 
/usr/ports/lang/pm3-gui/Makefile 
/usr/ports/lang/pm3-m3tk/Makefile 
/usr/ports/lang/pm3-net/Makefile 
/usr/ports/lang/pm3-netobj/Makefile 
/usr/ports/net/cphone/Makefile 
/usr/ports/net/gatekeeper/Makefile 
/usr/ports/net/gnomemeeting/Makefile 
/usr/ports/net/gnomemeeting2/Makefile 
/usr/ports/net/ohphone/Makefile 
/usr/ports/net/openam/Makefile 
/usr/ports/net/opengatekeeper/Makefile 
/usr/ports/net/opengk/Makefile 
/usr/ports/net/openh323/Makefile 
/usr/ports/net/openh323proxy/Makefile 
/usr/ports/net/openmcu/Makefile 
/usr/ports/news/c-nocem/Makefile 
/usr/ports/print/virtualpaper/Makefile 
/usr/ports/sysutils/ipsc/Makefile 
/usr/ports/x11-toolkits/xview-clients/Makefile 
/usr/ports/x11/9term/Makefile
Comment 3 Dirk Meyer freebsd_committer 2003-03-23 20:36:19 UTC
State Changed
From-To: analyzed->closed

Fixed in tcl82, tcl83, tcl84, tk82, tk83, tk84