Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Aug 1997 01:02:21 -0700 (PDT)
From:      asami@cs.berkeley.edu (Satoshi Asami)
To:        ports@freebsd.org
Cc:        committers@freebsd.org
Subject:   The great tcl/tk fix
Message-ID:  <199708190802.BAA19774@silvia.HIP.Berkeley.EDU>

next in thread | raw e-mail | index | archive | help
I just committed changes to totally disconnect tcl/tk ports from the
system tcl.  Unfortunately, it is beyond my ability to go and fix all
the ports that depend on tcl/tk (I only fixed tcl/tk themselves).

If you have a 2.2-stable or 3.0-current system and are interested in
helping out, please do this:

(1) Define "NOTCL=yes" in /etc/make.conf.

(2) Remove all traces of tcl from /usr ("rm -rf /usr/include/tcl*
    /usr/lib/libtcl* /usr/libdata/tcl*").  That will leave manpages
    behind, but that's ok...you can delete /usr/share/man/mann/* too
    if you don't like it.

(3) Do a "make world" and make sure directories listed in (2) are
    still empty.

(4) pkg_delete tcl-7.5 and tk-4.1 if they are installed.  Make sure
    the directories /usr/local/{include,lib}/{tcl7.5,tk4.1} do not
    exist -- if they do, you may want to install the latest lang/tcl75
    and/or x11/tk41 ports and delete them (the old PLISTs were missing
    some files).  Build and install lang/tcl76 and x11/tk42.

(5) Reboot to remove deleted shared libraries from the cache -- you
    can run ldconfig (without -m) by hand, but make sure you list all
    directories you need.

(6) Go build some port that depends on tcl/tk.  It will probably break 
    saying it can't find tclConfig.sh, tk.h or something.  Go in and
    patch it up.  It is recommended to make it depend on tcl-7.6/tk-4.2.
    The files you need are in:

    /usr/local/include/tcl7.6/tcl.h
    /usr/local/include/tk4.2/tk.h
    /usr/local/lib/tcl7.6/tclConfig.sh
    /usr/local/lib/tk4.2/tkConfig.sh
    /usr/local/lib/libtcl76.so.1.0
    /usr/local/lib/libtk42.so.1.0
    /usr/local/bin/wish4.1

    Some ports may require the "generic" or "unix" subdirectories for
    header files -- they are located in /usr/local/include/{tcl7.6,tk4.2}.
    (Make sure you use ${PREFIX} or $(prefix) instead of explicit
    "/usr/local", though.)

    If you can't get it to work for tcl-7.6 and tk-4.2, try tcl-7.5
    and tk-4.1.  (Most of them should work for tcl-7.6/tk-4.2.)

(7) When you think you are done, execute the following commands (in
    this order) from the port dir:

    make clean
    make package
    pkg_delete `make package-name`
    make reinstall
    make package

    If you see any error messages, something is wrong.  Investigate
    and fix.

(8) Send in fixes by send-pr.

Thanks!

Satoshi and the incredible ports team



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708190802.BAA19774>