|
From: <apn...@ya...> - 2025-09-28 17:07:22
|
Stu, Does this mean you expect or plan for only one Tcl version to be installed on the system since the directories are not version-specific? Or that packages are expected to be built so as to be Tcl8 and 9 compatible, loading (in the case of binary extensions) the appropriate shared library (tclfoo.so vs tcl9foo.so)? /Ashok -----Original Message----- From: Stuart Cassoff <exo...@ya...> Sent: Saturday, September 27, 2025 2:09 PM To: tcl...@li...; 'Pietro Cerutti' <ga...@ga...>; apn...@ya... Subject: Re: [TCLCORE] Pain points as a distro maintainer Extension home is /usr/local/lib/tcl. A Tcl-only extension "foo" will be installed in /usr/local/lib/tcl/foo. Preferentially, install Tcl-only extensions as Tcl Modules, if possible. A binary loadable-only extension "foo" (ex. dbus) will be installed in /usr/local/lib/tcl/foo. For a binary linkable-and-loadable extension "foo" (ex. tdbc), the pkgIndex.tcl will be installed in /usr/local/lib/tcl/foo, the .so in /usr/local/lib, and any .h files in /usr/local/include. Executables are installed in /usr/local/bin. Stu On Thursday, August 21, 2025 at 02:09:00 a.m. EDT, <apn...@ya...> wrote: Stu, That was very helpful for me to wrap my head around Unix installs. One item that was left out (question for both Stu and Pietro) was where do third party packages like tcllib, critcl etc. get installed? Note these packages may have Tcl script libraries, shared libraries as well as "applications" like critcl. Do they go into a common system directory or a Tcl version-specific location? /Ashok -----Original Message----- From: Stuart Cassoff via Tcl-Core <tcl...@li...> Sent: Tuesday, August 19, 2025 12:14 AM To: tcl...@li...; Pietro Cerutti <ga...@ga...> Subject: Re: [TCLCORE] Pain points as a distro maintainer Hi, On OpenBSD: My only real concern would be the Thread extension, which, if not made to work in 8 and 9, would have to be separate extension: tclthread and tcl9thread. Not great, not terrible. Right now, everything 8/9 is as integrated as possible but separated where necessary. Tcl/Tk 8.5 and 8.6 are installed under dir names "8.5" and "8.6". Tcl/Tk 9 will simply be "9". When 9.1 is released, it will replace 9.0. The paths and dirs for 9 will be similar, but I'll be keeping the older naming convention for libs and maybe other things, ie: libtk90.so instead of libtcl9tk90.so. These are the default auto_path and tm paths: $ tclsh8.6 % set auto_path /usr/local/lib/tcl/tcl8.6 /usr/local/lib/tcl % tcl::tm::path list /usr/local/lib/tcl/modules/85 /usr/local/lib/tcl/modules/86 /usr/local/lib/tcl/tcl8.6/modules Here's the packing list for 8.6: https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/lang/tcl/8.6/pkg/ PLIST?rev=1.17&content-type=text/plain Here's a snip of the most important bits of the package readme: https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/lang/tcl/8.6/pkg/ README?rev=1.8&content-type=text/plain Tclsh and Wish -------------- normally /usr/local/lib/tclsh, /usr/local/lib/wish now /usr/local/bin/tclsh8.6, /usr/local/bin/wish8.6 Library files ------------- scripts, encoding files, etc. normally in /usr/local/lib/tcl8.6, /usr/local/lib/tk8.6 now in /usr/local/lib/tcl/tcl8.6, /usr/local/lib/tcl/tk8.6 Configuration Files ------------------- tclConfig.sh, tkConfig.sh normally in /usr/local/lib now in /usr/local/lib/tcl/tcl8.6, /usr/local/lib/tcl/tk8.6 Header Files ------------ *.h normally in /usr/local/include now in /usr/local/include/tcl8.6, /usr/local/include/tk8.6 Manual Pages ------------ *.1, *.3, *.n normally in /usr/local/man now in /usr/local/lib/tcl/tcl8.6/man, /usr/local/lib/tcl/tk8.6/man Demos ----- *.tcl, * normally in /usr/local/lib/tk8.6/demos now in /usr/local/share/examples/tk8.6 Bundled Tcl Modules ------------------- *.tm normally in /usr/local/lib/tcl8/... now in /usr/local/lib/tcl/tcl8.6/modules Tcl Module Paths ---------------- normally /usr/local/lib/tcl8/... now /usr/local/lib/tcl/modules/{85,86} Manual Page Configuration ========================= Adding the following lines to /etc/man.conf wil enable man(1) and related commands can find the Tcl and Tk manual pages. manpath /usr/local/lib/tcl/tcl8.6/man manpath /usr/local/lib/tcl/tk8.6/man Stu _______________________________________________ Tcl-Core mailing list Tcl...@li... https://lists.sourceforge.net/lists/listinfo/tcl-core |