to follow the principle of least surprise between the packages and the
mainstream builds.
Approved by jwise@.
Bump PKGREVISION of lang/tcl, x11/tk, x11/tk83 to 1 and of lang/tcl83 to 2.
Several changes are involved since they are all interrelated. These
changes affect about 1000 files.
The first major change is rewriting bsd.builtin.mk as well as all of
the builtin.mk files to follow the new example in bsd.builtin.mk.
The loop to include all of the builtin.mk files needed by the package
is moved from bsd.builtin.mk and into bsd.buildlink3.mk. bsd.builtin.mk
is now included by each of the individual builtin.mk files and provides
some common logic for all of the builtin.mk files. Currently, this
includes the computation for whether the native or pkgsrc version of
the package is preferred. This causes USE_BUILTIN.* to be correctly
set when one builtin.mk file includes another.
The second major change is teach the builtin.mk files to consider
files under ${LOCALBASE} to be from pkgsrc-controlled packages. Most
of the builtin.mk files test for the presence of built-in software by
checking for the existence of certain files, e.g. <pthread.h>, and we
now assume that if that file is under ${LOCALBASE}, then it must be
from pkgsrc. This modification is a nod toward LOCALBASE=/usr. The
exceptions to this new check are the X11 distribution packages, which
are handled specially as noted below.
The third major change is providing builtin.mk and version.mk files
for each of the X11 distribution packages in pkgsrc. The builtin.mk
file can detect whether the native X11 distribution is the same as
the one provided by pkgsrc, and the version.mk file computes the
version of the X11 distribution package, whether it's built-in or not.
The fourth major change is that the buildlink3.mk files for X11 packages
that install parts which are part of X11 distribution packages, e.g.
Xpm, Xcursor, etc., now use imake to query the X11 distribution for
whether the software is already provided by the X11 distribution.
This is more accurate than grepping for a symbol name in the imake
config files. Using imake required sprinkling various builtin-imake.mk
helper files into pkgsrc directories. These files are used as input
to imake since imake can't use stdin for that purpose.
The fifth major change is in how packages note that they use X11.
Instead of setting USE_X11, package Makefiles should now include
x11.buildlink3.mk instead. This causes the X11 package buildlink3
and builtin logic to be executed at the correct place for buildlink3.mk
and builtin.mk files that previously set USE_X11, and fixes packages
that relied on buildlink3.mk files to implicitly note that X11 is
needed. Package buildlink3.mk should also include x11.buildlink3.mk
when linking against the package libraries requires also linking
against the X11 libraries. Where it was obvious, redundant inclusions
of x11.buildlink3.mk have been removed.
to the build environment, which of course no longer exists once we
install the file. Also make sure that variables are set using
double quotes, so that variables inside are expanded. Ok jwise@.
* Fixed segfault in info vars trivial matching branch (new in 8.4.8)
* Fixed the treatment of backslashes in file join on Windows
* Improved readdir_r detection and usage on unix
* Fixed potential unix fileevent issue on 64-bit systems
* Remove file normalize on tcl_findLibrary search path uniqification
added in 8.4.8
* Ensure tilde paths are not returned specially by 'glob'
* Fixed clipping of partially transparent images on buttons on unix to
avoid X error
* Fix Tk_PhotoPut(Zoomed)Block overlay compositing of partially
transparent areas on blank targets
* Fixed possible deadlock in Tcl_Finalize
* Fixed thread IDs on 64-bit systems
* Fixed [scan %ld] handling LP64 systems
* Fixed [string map $samevar $samevar] crash
* Fixed broken [namespace forget] logic
* Fixed [namespace import] cycle prevention
* Improved control over int <-> wideInt conversion
* Fixed buffer overflow when there is a syntax error in [subst]
* Fixed [file executable] result for case insensitivity on Windows
* Fixed [expr {NaN == NaN}] result
* Make [tcl_findLibrary] search $::auto_path as well
* Fixed crash in [fconfigure -ttycontrol] in threaded build
* [TIP 222] implementation of [wm attributes -alpha] on Windows
* [TIP 159] implementation of [wm iconphoto]
* Make Tk [load]-able on OS X/Aqua
* Handle color/screen resolution changes on Windows
* Fixed [wm resizable] for Solaris/CDE
* Handle Windows native dialog double clicks that fall through
* Fixed [place forget] memory leak
* Recompute menu geometry on named font size change
* Fixed X/IME IC focus after creation
* Improved multiple display Tk dialog window placement
* Fixed compound buttons for OS X/Aqua
* Documentation improvements and test suite expansion
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
* Fixed [glob -path] bug when in the root directory
* Fixed unicode-char path installation on Windows NT-based platforms
* Properly subsitute more values in Windows tclConfig.sh
* Improved stack overflow prevention on Windows
* Fixed mem leak in [fconfigure $serial -xchar]
* Fixed crash with [cd] with a volumerelative $HOME
* Fixed clock %G %V formats for ISO8601 week numbers
* Fixed support for non-WIDE_INT aware math functions
* Added [http::config -urlencoding] option
* Fixed utf-8 encoding of \u0000 on system I/O
* Prevented dde hangs with non-responsive apps
* Added round() wide integer support
* Cleaner exit and correction of mem leaks when using the threaded
memory allocator and reinitializing
* Improved build configuration on 64-bit systems
* Added read support of PPM/PGM with the -data option
* Correct issue with displaying maximize window button on KDE-3.2.1
* Fix drawing of unicode chars in menu titles on Windows
* Correctly post Tk clipboard data to the Windows clipboard on exit
* Fix the panedwindow -opaqueresize option to work as per the docs
* Reduce Tk tk_messageBox default font size to 14-point
* Prevent possible segfault in -maxundo
* Fix XIM initialization on Solaris
* Complete the implementation of the CG version of the X drawing
emulation layer on Mac OS X
* Fix several Mac OS X usability issues
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
through, unacceptably breaks threaded apps, and was made without consulting
the package's maintainer.
To quote my mail to packages@:
I am reversing this change.
With this change, tcl is _not_ usable in threaded apps, while without
this change, tcl is perfectly usable in non-threaded apps.
The fix for a package which is incorrectly written is not to break the
package it depends on, but do your job correctly when writing the
package.
With buildlink3, this is mind-numbingly easy to do.
That you neither contacted the maintainer of this package, nor did the
buildlink and dependent package changes which your change requires shows
that you have not really thought this through.
So, as I said, I am reversing this change. Fix your own package, don't
break others.
libtcl.so/libtk.so (whether linking it in or dlopen() it) must be linked
against libpthread. This is something we can't guarantee.
Fixes bulk build error in py-imagingtk and numerous runtime problems.
that accumulates within itself with a do-nothing version because it tried
to re-use LDFLAGS for another purpose. This broke all library checks after
the "checking for ELF" step. Fix this by (duh) not re-using LDFLAGS but
by using a different variable. Bump the PKGREVISIONs of lang/tcl and
x11/tk.
This fixes building the threaded versions of tcl and tk.
by moving the inclusion of buildlink3.mk files outside of the protected
region. This bug would be seen by users that have set PREFER_PKGSRC
or PREFER_NATIVE to non-default values.
BUILDLINK_PACKAGES should be ordered so that for any package in the
list, that package doesn't depend on any packages to the left of it
in the list. This ordering property is used to check for builtin
packages in the correct order. The problem was that including a
buildlink3.mk file for <pkg> correctly ensured that <pkg> was removed
from BUILDLINK_PACKAGES and appended to the end. However, since the
inclusion of any other buildlink3.mk files within that buildlink3.mk
was in a region that was protected against multiple inclusion, those
dependencies weren't also moved to the end of BUILDLINK_PACKAGES.
* Tcl_Obj sharing fixed in [binary scan]
* Updated errno usage for recent glibc
* Fixed [file normalize ~unknownuser] error
* Fixed two memory leaks in VFS code
* Fixed possible infinite loop in TclFinalizeFilesystem
* Updated HP-UX 11 build libraries setup
* Unix std channels forced to exist at startup
* Stopped broken [exec] quoting of '{'
* Fixed memory leak with very long host names
* Corrected level interpretation of Tcl_CreateTrace
* Allow 64-bit configure on IRIX64-6.5*
* Several OS X/Aqua native integration improvements (scrollbar,
event generate, unicode clipboard, tk_messageBox, mousewheel event,
alpha blending for partially transparent images)
* Recognized native hand2/fleur cursors on Windows
* Post menubuttons so they stay on screen better
* Fixed crash during intra-image copy/resize
* New msg catalogs for Esperanto and Polish
* Corrections bold/italic font handling (width calculations) on Windows
* Fixed shrinking grid geometry calculations
the normal case when BUILDLINK_DEPENDS.<pkg> isn't specified, it receives
a value only once due to the multiple inclusion protection in the
bulldlink3.mk files. In the case where a package includes several
buildlink3.mk files that each want a slightly different version of another
dependency, having BUILDLINK_DEPENDS.<pkg> be a list allows for the
strictest <pkg> dependency to be matched.
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.
Taken from "changes" from the distribution (minus changes not
relevant for NetBSD):
2001-04-04 (doc fixes) numerous doc corrections and clarifications.
Update of READMEs.
2001-04-04 (bug fix) corrected reseting of service mode to only occur when
it was set (hedin, hobbs)
2001-04-02 (bug fix) Checked for menu deletion before calling associated
menu entry command. Fixed listbox, canvas and entry destruction to be
more aware of current widget activity. (hobbs)
2001-03-30 (bug fix) handled the error case where a valid-looking but
invalid identifier could be passed in certain event generate options
causing a crash (hobbs)
2001-03-29 (bug fix) corrected handling of drag-selection (dejong)
2000-10-27 (feature enhancement) made [tk useinputmethods 1] the default
for Tk (hobbs)
2000-09-29 (bug fix) corrected BadMatch errors when using Tk on multiple
screens (hipp)
2000-08-18 (feature enhancement) Removed redundant call to DitherInstance
(melski)
2001-08-24 (bug fix) correct several possible free memory reads and array
bounds read errors reported by purify. (hobbs)
2001-08-27 (new feature) added call to Tcl_SetMainLoop which enables Tk to
be loaded interactively into tclsh and have the event loop kick in
correctly. (hobbs)
2001-08-28 (bug fix) fixed tk_chooseDirectory crash on Win95. (baker)
2001-08-28 (bug fix) removed 2 second 'raise' delay seen by some Unix
window managers. (hobbs, baker)
2001-09-14 (bug fix) fixed memory leaks that occured if errors were
thrown while initializing the channel for an image. (darley)
2001-10-04 (new feature) added enhanced bgerror dialog from Hipp. (hobbs)
2001-10-17 (bug fix) fixed file filtering in the motif file dialog (nelson)
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.
redefines about which buildlink.mk files would care is BUILDLINK_X11_DIR,
which points to the location of the X11R6 hierarchy used during building.
If x11.buildlink.mk isn't included, then BUILDLINK_X11_DIR defaults to
${X11BASE} (set in bsd.pkg.mk), so its value is always safe to use. Remove
the ifdefs surrounding the use of BUILDLINK_X11_DIR in tk/buildlink.mk and
revert changes to move x11.buildlink.mk before the other buildlink.mk files.
use X11_BUILDLINK_MK as a test value. Generally just reordering the
inclusions so that x11.buildlink.mk comes before the other buildlink.mk
files will make everthing work.
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>.
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.
a shared library that depends on libtk83.so. Patch the configure script to
set TK_LIB_SPEC to include -Wl,-rpath,... or -R... depending on whether we
are ELF or a.out.
Bump version number to 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
$(TK_LIB_FILE:C/\.so.*/.la/)
instead of
$(TK_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/tk80 (tk-8.0.5) package.
This is an update of the tk package from version 8.0.5 to version 8.3.2,
and also a slight change in the organization of tcl/tk packages.
This will be added disabled to pkgsrc/x11/Makefile until I finish updating
all tcl/tk-based packags.
Changes from out-of-the-box tk-8.3.2:
Both static and shared libtcl83.* are installed, thanks to
the magic of libtool.
Changes to the package since tk-8.3.2:
A symlink to ${PREFIX}/bin/wish8.3 is installed as ${PREFIX}/bin/wish
This change is designed to allow tk-using packages to not depend on
any particular version of tk.
public tk include files and the tk configuration information script
are now installed in their standard places (${PREFIX}/include/tk*.h,
and ${PREFIX}/lib/tkConfig.sh), and private tcl include files are now
installed in ${PREFIX}/include/tk. This change allows tcl extension
packages to work out of the box, and to not need modification when tcl
and tk are 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 tk-8.3.x as opposed to 8.0.x. I am not including
bug fixes as this represents about 18 months of them.
Img patch from Nijtmans, et al was adopted. This includes a
Tcl_Obj-based image command, support for binary in -data args, adds
an alpha channel to all photo types, as well as GIF write capability.
Major portions of Dash patch from Nijtmans, et al was adopted. This
includes a Tcl_Obj-based canvas command, dashed canvas item support,
enhanced canvas tag searching capabilities, pointer warping with event
-warp, entry widget validation routines, -elide tag option for of the text
widget (TkMan runs on 8.3 without a patch), several new canvas item
arguments, as well as postscript printing support for images and windows in
the canvas.
Listboxes support a -listvariable and have a new itemconfigure
command to color individual items.
Extended "wm state" command to accept a state to set for the toplevel,
and added support for the zoomed (maximized) state on Windows.
Standard Unix dialogs have been updated to use color icons and
have improved behavior.
New "tk useinputmethods" command. This changes the behavior of
Tk on X where X Input Methods (XIM) were recognized and used without
question. With 8.3, they will be recognized and initialized, but
not used unless XIM is turned on (tk useinputmethods 1). This should
only affect users with special input methods, and the new default
behavior should be more beneficial to the average user.