From owner-freebsd-ports Tue Aug 19 01:04:33 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id BAA20474 for ports-outgoing; Tue, 19 Aug 1997 01:04:33 -0700 (PDT) Received: from silvia.HIP.Berkeley.EDU (ala-ca17-23.ix.netcom.com [204.32.168.183]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id BAA20309; Tue, 19 Aug 1997 01:02:24 -0700 (PDT) Received: (from asami@localhost) by silvia.HIP.Berkeley.EDU (8.8.7/8.6.9) id BAA19774; Tue, 19 Aug 1997 01:02:21 -0700 (PDT) Date: Tue, 19 Aug 1997 01:02:21 -0700 (PDT) Message-Id: <199708190802.BAA19774@silvia.HIP.Berkeley.EDU> To: ports@freebsd.org CC: committers@freebsd.org Subject: The great tcl/tk fix From: asami@cs.berkeley.edu (Satoshi Asami) Sender: owner-freebsd-ports@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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