This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
its own, starting with "VirtualEvent" (Which is correctly set to LASTEvent,
defined in include/X11/X.h). In xproto-7.0.13, a new event "GenericEvent" was
added - making the defined array broken for all of Tk's internal events.
The easy fix is to just add in the missing event into the hard-coded array.
This patch was reported here: http://bugs.gentoo.org/show_bug.cgi?id=225999
A cleaner fix, but a much bigger patch, is listed in the Tk bug tracker. I'm
punting that Tk will have been updated with the fix before X.h grows another
event.
http://sourceforge.net/tracker/index.php?func=detail&aid=2010422&group_id=12997&atid=112997
Bump PKGREVISION.
* Tk_PhotoPutBlock performance restored (JPEG image loading).
* [namespace inscope] change reverted; harmed Itcl.
* Made [expr {srand(.)}] accept wide integer argument.
* Made [lappend $invalidList] raise an error.
* Improved [text] delete performance.
* Support for the WM_UNICHAR window message on Windows
* Stopped excess variable writes by [scale].
* Tcl_Main no longer blocks main loop start for one interactive command.
* [console] made thread safe.
* Thread-enabled configuration uses MT-safe system calls.
* Many Aqua/Tk bug fixes and improvements, see changes file.
* Made unthreaded notifier naked-fork-safe on Darwin.
* Support for weak linking on Mac OS X.
* msgcat support for CFLocale on Darwin (msgcat 1.3.4)
* Fixed crashes due to alignment issues in encoding translation routines.
* Fixed crash with [listbox -listvariable] on namespace variable.
* Fixed crash when Tcl_DeleteTrace changes proc on the active stack.
* Fixed crash when normalizing filesystem pathnames.
* Fixed crash due to invalid font name from XServer.
* Several 64-bit bugs fixed and platform support enhanced.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
* Win NT/XP: unicode console support taken back out.
* ${prefix}/share addition to ::tcl_pkgPath undone.
* Warning message for packages with incorrect index scripts silenced.
* Correct syntax error in configure script (bash 3.1 exposes it).
* Tk incompatibilities with SCIM resolved.
* Improved [file writable] support of Windows conventions.
* Tcl_GetIndexFromObj() support for exact matching of empty key.
* Tk Portuguese localization support (pt.msg).
* Tk more robust when X server does not recognize color name "Black".
* Tk_PhotoPutBlock() performance improvement.
* [lsearch -start $pastEnd] no longer finds match at end of list.
* Correct [expr abs($LONG_MIN)] result.
* Correct [string range] failures on some strings containing \x00.
* TCL_EVAL_GLOBAL and [uplevel 0] agreement when traces or [unknown] active.
* Corrections to context of auto-loading the target of an interp alias.
* Corrected some interference between enter and enterstep traces.
* Correct [$img configure -data] failure to change X display.
* Tk_GetBitmapFromData() thread safety.
* Crashes in [grid] for some invalid index arguments.
* Crash when all content of a [text] is elided.
* Crash in [$text edit undo/redo].
* Crash in animated GIF display with variable frame size.
* Crash related to pipe usage in thread-enabled Tcl on Windows.
* Crash when [$text dump -command] changes contents while dumping.
* Crash reading utf-8 when multibyte char spans multiple buffers at EOF.
* Several finalization crashes corrected.
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
* Repeated [namespace import] of same command now permitted.
* ${prefix}/share added to ::tcl_pkgPath on some systems.
* [exec]'s >> redirection has improved append behavior.
* [info globals] returned only existing variables.
* Recognize some Solaris variations of the cp1251 encoding.
* Addressed [file mkdir] race condition.
* Support opening >2GB files on RHEL 3.
* Corrections to $argv formatting when [encoding system] is multibyte.
* http 2.5.2: Update URL encoding rules to RFC 3986.
* Fixed issue in recursive file delete with NFS lock files.
* Stopped crash after use of Tcl_TraceCommand().
* Win NT/XP: support unicode console.
* Improved support for Tclkit to set [encoding system].
* Added Korean timezone abbreviations.
* Windows: exit codes can now exceed -128..127 range.
* [load] support on LynxOS.
* Packages with incorrect index scripts now cause a warning to be logged.
*** POTENTIAL INCOMPATIBILITY ***
* [lsearch -regexp] now accepts backrefs in the RE.
* [selection get] made compatible with OpenOffice.org.
* Dialog support for widget names containing spaces.
* Improved Tk window manager event interaction on OS X Aqua.
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.