buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.
Besides more bug fixes and several enhancements some of the
NetBSD relevant changes (taken from "changes" in the
distribution):
2001-04-03 (doc fixes) numerous doc corrections and clarifications.
Update of READMEs.
2001-03-29 (bug fix) prevent potential race condition and security leak in
tmp filename creation on Unix. (max)
2001-03-13 (bug fix) Correctly possible memory corruption in string map {}
$str (fellows)
2001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter)
2000-11-23 (mem leak) fixed potential memory leak in error case of lsort
(fellows)
2000-11-01 (mem leak) Corrected excessive mem use of info exists on a
non-existent array element (hobbs)
2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that
didn't set nonBlocking correctly when resetting the flags for the write
side (mem leak) Correct mem leak in channels when statePtr was released
(hobbs)
2001-07-18 (bug fix) corrected memory overwrite error when buffer size
of a channel is changed after channel use has already begun (kupries, porter)
2001-08-07 (bug fix) corrected bytecode stack management during [break]
(see test foreach-5.5) (sofer, tallneil, jstrot)
2001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3,
tcltest 1.0.1, dependencies checked (porter)
2001-08-24 (bug fix) [auto_import] now matches patterns like
[namespace import], not like [string match] (porter)
**** POTENTIAL INCOMPATABILITY ****
2001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a
true package (hobbs)
2001-09-06 (new feature) http 2.4: honor the Content-encoding and charset
parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell)
2001-09-10 (bug fix) protect against alias loops (hobbs)
2001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax)
2001-09-26 (bug fix) corrected potential deadlock in channels that do not
provide a BlockModeProc (kupries, kogorman)
2001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at
interpreter deletion (sofer, rbrunner)
pkgsrc. Instead, a new variable PKGREVISION is invented that can get
bumped independent of DISTNAME and PKGNAME.
Example #1:
DISTNAME= foo-X.Y
PKGREVISION= Z
=> PKGNAME= foo-X.YnbZ
Example #2:
DISTNAME= barthing-X.Y
PKGNAME= bar-X.Y
PKGREVISION= Z
=> PKGNAME= bar=X.YnbZ (!)
On subsequent changes, only PKGREVISION needs to be bumped, no more risk
of getting DISTNAME changed accidentally.
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.
to be an optimization bug that causes the build to fail (pkg/13395). The
problem appeared in the original PR on an Amiga running NetBSD 1.5.1 and
also on a mac68k running NetBSD 1.5.1. This workaround was tested on the
mac68k system (kindly provided by Jon Lindgren).
BUILDLINK_PREFIX.<pkgname>. This allows buildlink to find X11BASE packages
regardless of whether they were installed before or after xpkgwedge was
installed. Idea by Alistair Crooks <agc@pkgsrc.org>.
too generic, e.g. Hash, Object, Access. Approved by jwise@netbsd.org.
- Touch ${TCL_LIB_FILE} after the build so that the library isn't relinked
during installation.
FOO_REQD=1.0 being converted to foo>=1.0, one can now directly specify
the dependency pattern as FOO_DEPENDS=foo>=1.0. This allows things like
JPEG_DEPENDS=jpeg-6b, or fancier expressions like for postgresql-lib.
Change existing FOO_REQD definitions in Makefiles to FOO_DEPENDS.
Previously, TCL_LIB_SPEC required the including program to explicitly set
${exec_path}. This means that programs which used autoconf _and_ tclConfig.sh
accidentally worked. Other programs failed if they depended on the value of
TCL_LIB_SPEC.
One such failing program is ap-dtcl, which was updated to depend on tclConfig.sh
without the package maintainer being contacted. This update caused mod_dtcl.so
to be built with a bad ELF rpath -- clearly the developer who updated this did
not test it on any ELF platform (if at all).
There, that's out of my system now. I'm off for more coffee.
a shared library that depends on libtcl83.so. The TCL_SHLIB_LD command was
set to the incorrect value for ELF platforms, relying on "ld" which doesn't
understand the -Wl,... options it receives via ${TCL_LIB_SPEC}. Patch the
configure script to set TCL_SHLIB_LD to the proper value on NetBSD systems
depending on whether they are ELF or a.out, and also modify TCL_LIB_SPEC
to include -Wl,-rpath,... or -R... accordingly.
Bump version number to 8.3.2nb2.
``while 1 { close [open /dev/null r] }'' does not leak memory for
each go-around. This corresponds to sourceforge bugid #117988.
Bump PKGNAME to tcl-8.3.2nb1.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
different versions/platforms of NetBSD, use
$(TCL_LIB_FILE:C/\.so.*/.la/)
instead of
$(TCL_LIB_FILE:.so=.la)
to derive the libtool archive name from the shared library name.
From Frederick Bruckman, addresses PR pkg/10924.
from the older pkgsrc/lang/tcl-8.0.5.
This is an update of the tcl package from version 8.0.5 to version 8.3.2,
and also a slight change in the organization of tcl packages.
This will be added disabled to pkgsrc/lang/Makefile until I finish updating
tk and all tcl-based packags.
Changes from out of the box tcl-8.3.2:
Both static and shared libtcl83.* are installed, thanks to
the magic of libtool.
$tcl_platform(machine) is set to ${MACHINE_ARCH}, not ${MACHINE},
thanks to the patch to tcl-8.0 from Dan McMahill. This makes
sharing of binary packages of tcl and tcl extensions easier.
Changes to the package since tcl-8.0.5:
$tcl_pkgPath is now set to ${PREFIX}/lib/tcl instead of ${PREFIX}/lib
and packages which install tcl extensions will be updated to install
there. This produces less clutter in ${PREFIX}/lib, and mirrors the
usage of java and elisp extension packages.
A symlink to ${PREFIX}/bin/tclsh8.3.2 is installed as ${PREFIX}/bin/tclsh
This change and the above are designed to allow tcl-using packages to
not depend on any particular version of tcl.
public tcl include files and the tcl configuration information script
are now installed in their standard places (${PREFIX}/include/tcl.h,
${PREFIX}/include/tclDecls.h, and ${PREFIX}/lib/tclConfig.sh), and
private tcl include files are now installed in ${PREFIX}/include/tcl.
This change allows tcl extension packages to work out of the box, and
to not need modification when tcl is updated. When extension package
authors use the new libtclstubs*.a API, this even allows binary packages
of dynamically-loadable tcl extensions to be used with newer versions of
tcl without recompilation.
Here are the new features in tcl-8.3.x as opposed to 8.0.x. I am not including
bug fixes as this represents about 18 months of them.
New Features since Tcl 8.2:
------------------------------
Improved clarity of error messages, especially for common programming
mistakes.
New lsort -unique switch to uniqify lists when sorting.
Enhanced glob command to provide simpler and more powerful cross-platform
file listing functionality.
File date stamping through "file atime" and "file mtime" and support for
chmod style permissions setting in file attributes -permissions on Unix.
New file channels command to obtain list of open channels.
"scan" command can now be used inline to return a list of values.
"regexp" has new -start, -all and -inline switches.
New "array unset" command.
New -milliseconds granularity option to "clock clicks".
Tcl optimization improvements, as well as numerous bug fixes.
Overhaul of the clock command to improve grammar and add support for
common ISO 8601 date/time formats.
Improved build support for numerous platforms.
New Features since Tcl 8.1.1
----------------------------------
Optimized string index, length, range, and append commands. Added a
new Unicode object type.
Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo
to public Tcl API, these functions are needed by Expect. Changed
tools/genStubs.tcl to always write output in LF mode.
Merged string and Unicode object types. Added new public Tcl API
functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj,
Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange,
Tcl_AppendUnicodeToObj.
Changed to conform to TEA specification, added tcl.m4 and aclocal.m4
macro libraries for configure.
Added new regexp interfaces: -expanded, -line, -linestop, and
-lineanchor switches. Renamed Tcl_RegExpMatchObj to
Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent
to Tcl_RegExpMatch. Added public macros for regexp flags. Added
REG_BOSONLY flag to allow Expect to iterate through a string and only
find matches that start at the current position within the
string.
Updated Unicode character tables to reflect Unicode 2.1 data.
Added initial implementation of new Tcl test harness package.
Modified test files to use new tcltest package.
Applied patch from Peter Hardie to add poke command to dde and changed
the dde package version number to 1.1.
Added options to tcltest package: -preservecore, -limitconstraints,
-help, -file, -notfile, and flags.
Changed parsing of variable names to allow empty array names.
Now "$(foo)" is a variable reference. Previously you had to use
something line $::(foo), which is slower. This change was
requested by Jean-Luc Fontaine for his STOOOP package.
Added Tcl_SetNotifier (public API) and associated hook points in the
notifiers to be able to replace the notifier calls at runtime. The
Xt notifier and test program use this hook.
Added a new variant of the "Trf core patch" from Andreas Kupries
that adds new C APIs Tcl_StackChannel, Tcl_UnstackChannel, and
Tcl_GetStackedChannel. This allows the Trf extension to work without
applying patches to the Tcl core.
Added -timeout option to http.tcl to handle timeouts that occur during
connection attempts to hosts that are down.
New features since Tcl 8.1:
---------------------------
Applied Jeff Hobbs' string patch which includes the following changes:
new subcommands: equal, repeat, map, is, replace
-length option to "string compare|equal"
-nocase option to "string compare|equal|match"
string and list indices can be an integer or end?-integer?.
added optional first and last index args to string toupper, et al.
See the string.n manual entry for more details about the new string features.
Applied Jeff Hobb's patch to add Tcl_StringCaseMatch to support case
insensitive glob style matching and Tcl_UniCharIs* character classification
functions.
Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf string comparision easier.
Replaced the per-interpreter regexp cache with a per-thread cache. Changed
the Regexp object to take advantage of this extra cache. Added a reference
count to the TclRegexp type so regexps can be shared by multiple objects.
Removed the per-interp regexp cache from the interpreter. Now regexps can be
used with no need for an interpreter. This set of changes should provide
significant speed improvements for many Tcl scripts.
Applied the patch to fix 100-year and 400-year boundaries in leap year code,
from Isaac Hollander.
New features since Tcl 8.0.5:
-----------------------------
Full Unicode support and a message catalog for internationalization.
Thread-safety for Tcl and Tk.
A new regular expression package by Henry Spencer that adds many
advanced features: non-greedy quantifiers, bounds, positive
and negative lookahead, collating elements, equivalence classes,
several built-in character classes, and comments. In addition,
the regular expression engine works on Unicode strings to make
this the best regular expression package available anywhere.
Integrated the stub library mechanism contributed by Paul Duffin,
Jan Nijtmans, and Jean-Claude Wippler. This feature will make it
possible to write extensions that support multiple versions of Tcl
simultaneously. It also makes it possible to dynamically load
extensions into statically linked interpreters. This patch includes
the following changes:
- Added a Tcl_InitStubs() interface
- Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx,
and Tcl_PkgPresent.
More information about using the stubs interface in your extensions
can be found at http://www.scriptics.com/support/howto/stubs.html
Added a message catalog facility to Tcl. This adds several commands
in the "msgcat" package. Thanks to Mark Harrison for contributing
the initial implementation.
Added the "encoding" command that facilitate translations of strings
between different character encodings.
Added "string totitle" command to convert strings to capitalize the
first character of a string and lowercase all of the other characters.
-----
Whew... If you're still reading, thanks. Enjoy!