From owner-freebsd-ports Sat Aug 16 11:08:50 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id LAA03176 for ports-outgoing; Sat, 16 Aug 1997 11:08:50 -0700 (PDT) Received: from wall.jhs.no_domain (vector.muc.ditec.de [194.120.126.35]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id LAA03169 for ; Sat, 16 Aug 1997 11:08:44 -0700 (PDT) Received: from wall.jhs.no_domain (localhost [127.0.0.1]) by wall.jhs.no_domain (8.8.5/8.6.9) with ESMTP id UAA04061 for ; Sat, 16 Aug 1997 20:12:15 +0200 (MET DST) Message-Id: <199708161812.UAA04061@wall.jhs.no_domain> Date: Sat, 16 Aug 1997 20:10:29 +0200 From: "Julian H. Stacey" Subject: TCL/TK versioning in all path/name accesses Sender: owner-freebsd-ports@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk To: undisclosed-recipients:; ------- Blind-Carbon-Copy To: freebsd-current@FreeBSD.ORG cc: Dmitrij Tejblum , Chris Csanady Subject: TCL/TK versioning in all path/name accesses From: "Julian H. Stacey" Reply-To: "Julian H. Stacey" X-Email: Home: Lists: Work (firewall blocks incoming): X-web: http://www.freebsd.org/~jhs/ X-address: Holz Strasse 27d, 80469 Munich, Germany X-tel: Home +49.89.268616, Work +49.89.607.29788 Fax +49.89.2608126, Data +49.89.26023276 X-company: Vector Systems Ltd, Unix & Internet Consultants. X-software: FreeBSD (Unix) + EXMH 1.6.9 (PGP key on web) In-reply-to: Your message of "Sun, 10 Aug 1997 14:25:16 +0400." <199708101025.OAA00728@tejblum.dnttm.rssi.ru> Date: Sat, 16 Aug 1997 20:10:29 +0200 Sender: jhs@wall.jhs.no_domain ( I bcc'd ports@ for info, but so's to avoid cross post follow up ) Reference: > Subject: Re: exmh and current.. anyone? > From: Dmitrij Tejblum > Date: Sun, 10 Aug 1997 14:25:16 +0400 > Message-id: <199708101025.OAA00728@tejblum.dnttm.rssi.ru> Hi, Dmitrij Tejblum wrote: > There is a real problem here! Upgrade of the base system should not break 3rd > > party binaries! There is shared libraries verion numbers for it. But > libtcl75.so.1.1 become broken by overwriting /usr/libdata/tcl. Perhaps, TCL 8 > .0 > should use /usr/libdata/tcl80 instead. Version numbers in _all_ Tcl/Tk path/names would be great ! We're about half way there (looking at 2.2.2), but libdata still needs to be done, as does various ports read-during-make accesses (write accesses are better, more (but incomplete) use of numbered path/names. It's untenable for my 2.2.2 box at work to have one combi mix of tcl/tk stuff needed for FreeBSD src & ports dependencies such as vi & exmh, & another conflicting mix of versions required for use to provide compatibility with my customer's application, (which runs across a range of OSs, & is not about to have its version numbers changed for any one OS). Add to that 2.2.2 scenario, the scenario of current using Tcl 8, & it becomes tiresome, _unless_ we have a clear way of specifying Tcl/Tk versions required for all accesses, read & write, src, ports, & commercial add on packages. Yesterday I tore all the tcl tk stuff with generic non version specific access out of my machine, & reinstalled the exact versions I needed all with version numbers in the path (libdata included), & will later reinstall whatever breaks on FreeBSD src/, so at least the version requirements of my project at work no longer get suborned by FreeBSD's non version specific path/names. It'll become progressively harder to keep src & all ports Tcl/Tk apps dependencies aligned, as ports/ grows, & totaly impossible to keep in step with versions used by customer's own apps (for which FreeBSD is a host), so if all those lib include libdata & bin dirs/filenames could have a version indicator in, life would be much easier :-) Zap EG /usr/libdata/tcl/init.tcl & -ltcl etc & only use explicit /usr/libdata/tcl/[7.4,7.6,8.0}/init.tcl ... -ltcl76 for {include lib libdata bin local}, for {src & ports & your own commercial software you want to make safe from version problems}. FreeBSD could then support simultaneously use of apps. requiring different tcl/tk versions, instead of ther present situation where one breaks one Tcl/Tk app while fixing another app's version dependency. Only truly version independent or naive packages should reach out version-blind with such as "-ltcl", & none of the FreeBSD src/ or ports/ should read or install into any non versioned tcl/tk path/name. To help, I've prepared a ports/lang/tcl75 (for compatibility with tk4.1 & tix) (at work so can't send-pr it yet), & have analysed version-blind read & write access conflicts of some of ports/, & plan to prepare diffs next week or so. Version number path/name dependencies are a pain in general, but we seem to need them for Tcl/Tk. PS I carefully express no opinion on the merits/demerits of the recent warmly debated "should we/shouldn't we" Tcl/Tk 8 topic (which I read but took no part in :-). It seems to me, whether or not Tcl/Tk8 exists, that we have had a version selection problem at least as long as we have had tcl7.4 & tcl7.6 & tk4.1 &4.2 etc. I support Dmitrij Tejblum's suggestion, but as to which of /usr/libdata/tcl80 76 74 etc /usr/libdata/tcl/80 /usr/libdata/tcl/8.0 well, I'd be grateful whichever the powers that be choose, just not /usr/libdata/tcl :-) Apologies, I've gone on too long ;-) Julian - -- Julian H. Stacey jhs@freebsd.org http://www.freebsd.org/~jhs/ ------- End of Blind-Carbon-Copy