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.
packages with the modular Xorg equivalent. Those are falling back
to the old location by default, so this commmit doesn't change
dependencies.
graphics/xpm ==> x11/libXpm
fonts/Xft2 ==> x11/libXft
x11/Xfixes ==> x11/libXfixes
x11/xcursor ==> x11/libXcursor
x11/Xrender ==> x11/libXrender
x11/Xrandr ==> libXrandr
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
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).
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.
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.
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".
Changes:
0.6.6 (29 May 2004)
System.Windows.Forms & System.Drawing:
* HelpProvider, TabPageCollection (Russell Stuart).
* Button.PerformClick should only work when button is enabled and
visible (Jens Kuehner).
* Allow multiple texture brushes to use the same image (Gopal V).
* Generate image masks from alpha information (Gopal V).
* Null reference exception in MessageBox (Gopal V).
* UpDown controls (Klaus Treichel).
* Ignore KeyPress events in TextBox that are already handled (Gopal V).
* Process application KeyPress's before local (Heiko Weiss).
* Fixes to MainMenu, SystemIcons, CheckListBox (Gopal V).
* Bug in empty TreeView's (leppie).
* Performance improvements to MainMenu, Control, ContextMenu (Richard B).
* Double-click bug in TextBox (David Logan).
* Deserialization of images (Gopal V).
* Double buffering of TabControl (Thong Nguyen).
* Fixes to ScrollableControl (Gopal V).
* ColumnHeader, ListBindingConverter, ImageIndexConverter (Klaus Treichel).
Xsharp:
* Properly fall back to DISPLAY when displayName null (Ilyak Kasnacheev).
* Improve ICE and DCOP to the point of being useful (Ilyak Kasnacheev).
* Recognize transparent "ParentRelative" backgrounds (Rhys Weatherley).
* Detect MDI top-level windows properly (David Logan, Gopal V).
System.Xml:
* Fix parsing of empty elements (Richard Baumann).
* Various fixes for ml-pnet (Klaus Treichel, Gopal V).
* Fixes to element list enumeration (Gopal V).
* Attribute handling in XmlDocument (Richard Baumann).
* Whitespace and namespace handling (Richard Baumann).
* Proper name table usage in NameCache (Richard Baumann).
* Lots of small fixes and TODO's (Richard Baumann).
* Implement XmlSerialization classes (Richard Baumann).
* Fixes for compatibility with ml-pnet (Klaus Treichel).
* XmlDocument.Save (Andres March).
* Change default namespace URL to expected value (Gopal V).
* Processing instructions (Richard Baumann).
Serialization:
* Binary serialization for decimal, array, string, null (Andre Seidelt).
* Implement binary de-serialization (Andre Seidelt).
* Fix incompatibilities between systems (Andre Seidelt).
* Serialization of keys and array elements (Andre Seidelt).
* Handle ISerializable types properly (Andre Seidelt).
JScript:
* Array accesses in JScript (Carl-Adam Brengesjo).
* Argument passing fixes (Carl-Adam Brengesjo).
* Parse problems with ++ and -- (Gopal V).
* --help and --version for jsrun command (Carl-Adam Brengesjo).
* Use ScriptStream for output where required (Carl-Adam Brengesjo).
Networking:
* Sign extension bug in IPv4 addresses (Russell Stuart).
* TcpClient fix (Gopal V).
* Stub out cookie and certificate handling in HTTP classes (Gopal V).
* SSL tunnelling for HTTP proxies (Gopal V).
* Fix parsing of IPv6 hex addresses (Gopal V).
Threading:
* Internalcall fixes and tests for pnet threading changes (Thong Nguyen).
* Rewrote the Threading.Timer class (Russell Stuart).
* Asynchonrous delegates (Thong Nguyen).
* Minor typo that prevented LocalDataStoreSlot from working (Gopal V).
Other:
* Improvements to "csupport" for pnetC (Rhys Weatherley).
* Bug in TimeSpan (Gopal V).
* Fix stream length and buffering in StreamReader/XmlStreamReader (Gopal V).
* Hex number parsing (Russell Stuart).
* Fixes to file routines to make them more ECMA compliant (Russell Stuart).
* Interfaces should be assignable to System.Object (Russell Stuart).
* Fixes to Hashtable for removed entries (Russell Stuart).
* Partial names in Assembly.LoadFrom (Gopal V).
* CodeCompiler/ShellExecute bug with redirected stderr (Gopal V).
* Only use response files in CodeCompile with long cmdlines (Gopal V).
* Small patch to Security Element (Carl-Adam Brengesjo).
* Change "test -e" to "test -f" for Solaris compat (Sebastien BOCQ).
* Patches to generic classes (Richard Baumann).
* Test cases for System.Reflection.Emit (Jonas Printzen).
* ClrConstructor.InvokeOnEmpty for post-allocation construction (Gopal V).
* Bugs in "machine.default" file (Gopal V).
* "default1.1" profile to build 1.1 and install as default (Rhys W).
* Parse fixes to System.Configuration handlers (Gopal V).
* Use non-null evidence in AppDomain.CreateInstance (Gopal V).
* Handle "file://" URL's in Assembly.LoadFrom (Gopal V).
PR pkg/24965.
Changes:
0.6.4 (13 March 2004)
System.Windows.Forms & System.Drawing:
* Missing "CtrlN" and "CtrlShiftN" shortcut values (Rhys Weatherley).
* Implement the "Splitter" control (Rhys Weatherley).
* Rewrite the binding classes (Rhys Weatherley).
* Bugs in Win32 window handling (Gopal V, Neil Cawse).
* Fixes to ComboBox drop-down width (Neil Cawse).
* Don't perform layout on minimized windows (Neil Cawse).
* Reduce ProgressBar flicker (Neil Cawse).
* Fixes to TabControl, TextBox, TreeView, CustomControl (Neil Cawse).
* Finish off the Panel control (Neil Cawse).
* Add support for Control.OnClick and Control.OnDoubleClick (Neil Cawse).
* Fix toolkit control offsets (Neil Cawse).
* ImageList fixes (Neil Cawse).
* Set scroll bar cursors to a more appropriate value (Rhys Weatherley).
* Tweaks to get the SharpDevelop code editor working (Simon Guindon).
* Stub out the color and folder browser dialogs (Rhys Weatherley).
* Implement the font selection dialog (Rhys Weatherley).
* DrawString fixes (Neil Cawse).
* Bugs in popups, keyboard handling, and paint efficiency (Neil Cawse).
* Lots of layout and interaction fixes (Neil Cawse).
* Double buffering framework (Neil Cawse).
* Mnenmonic support (Neil Cawse).
* Fix DrawIcon, DrawIconUnstretched, DrawImage (Rhys Weatherley).
* Speed up 1-to-1 image draws (Rhys Weatherley).
* Invalidate/Update improvements (Neil Cawse).
* Signature issues in TabPageCollection (Miroslaw Dobrzanski-Neumann).
* TabPageCollection should not inherit from ControlCollection (Rhys W).
* Add the missing Label.FlatStyle property (Rhys Weatherley).
Xsharp:
* Process pending invalidates before an XFlush (Rhys Weatherley).
* Use XEventsQueued to check for events before issuing timeouts;
fixes queue starvation when short timeouts are present (Rhys W).
* Get the font family list for use in the font dialog (Rhys Weatherley).
* Alter the Windows to Xsharp font size conversion code (Rhys Weatherley).
* DOUBLE-BUFFER extension support logic (Rhys Weatherley).
* Tweak XImage drawing when double buffering is used (Rhys Weatherley).
Other:
* New System.Xml parser (Richard Baumann, Adam Ballai).
* Blocking bugs in StreamReader classes (Richard Baumann).
* Overflow bug in StringBuilder when maximum capacity was set (Rhys W).
* Import the Mono System.Text.RegularExpressions code (Rhys Weatherley).
* Generate transparency masks in DotGNU.Images correctly (Rhys W).
* Infinite loop in MulticastDelegate.GetInvocationList (Richard Baumann).
* Enumerator bug in Queue (Rhys Weatherley).
* Add the "OpenSystem.Platform" assembly (Rhys Weatherley).
* Use separate locks for socket reads and writes (Rhys Weatherley).
* New internalcall interface for wait handles (Rhys Weatherley).
* New marker classes to support the C ABI changes (Rhys Weatherley).
* Auto-discover full names of .so's for debian (Andrew Mitchell, Rhys W).
* Clean up pnetlib.spec (Russell Stuart).
* XML bugs in "WriteQuotedString" (Richard Baumann).
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.
This distribution contains an implementation of the C# library, for use
with .NET-capable runtime engines and applications. Originally designed
for DotGNU Portable.NET, this library can be used by other .NET development
effort also.