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.
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).
overview of changes between 1.9.1 and 1.10.0
============================================
* Update script tables, bidi tables, and Arabic joining tables for Unicode 4.1
[Roozbeh Pournader, Behdad Esfahbod]
* Misc bug and build fixes [Sebastien Bacher, Hans Breuer, Behdad,
J. Ali Harlow, Tor Lillqvist, Keith Packard, Vittorio Palmisano, Manish Singh]
overview of changes between 1.9.0 and 1.9.1
==========================================
* Support setting of font options and DPI on PangoContext for
the Cairo backend.
* Adapt to recent Cairo API changes
* Win32 build improvements [Tor Lillqvist]
* Misc bug fixes [Hans Breuer, Thomas Fitzsimmons, Kazuki IWAMOTO]
Overview of changes between 1.8.x and 1.9.x
===========================================
* Add Cairo support; PangoCairoFontmap is an interface with
implementations for Fontconfig fonts and Win32 fonts
* Extend PangoFcFontmap to allow more customization by subclasses
* Handle NULL language better for pango_context_get_metrics()
* misc optimization [Paolo Borelli, Behdad Esfahbod]
* Misc bug and build fixes [Hans Breuer, Damien Carbery,
Keith Packard, Manish Singh]
* Doc fixes [Tim Janik]
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.
Overview of changes between 1.5.2 and 1.6.0
===========================================
* Add OpenType support for Hebrew [Dov Grobgeld]
* Win32 bug and build fixes [Tor Lillqvist, Hans Breuer, John Ehresman]
* Misc bug fixes [Behdad Esfahbod, Jatin Nansi]
Overview of changes between 1.5.1 and 1.5.2
===========================================
* Support 'init' feature for Bengali [Sayamindu Dasgupta]
* Allow 32-bit property fields in OpenType code
* Optimize repeated property lookups in OpenType code
* Misc bug fixes [Behdad, Keith Sharp, Morten Welinder]
Overview of changes between 1.5.0 and 1.5.1
===========================================
* Add ellipsization support to PangoLayout
* Add pango_context_get_font_map().
* Fix metrics for the Xft backend when a transform is in effect
* Separate out backend-independent parts of pangoft2topgm for
future rendering testbeds.
* Code cleanups (use G_DEFINE_TYPE, make PangoMatrix parameters const)
* Add a GType for PangoMatrix [Torsten Schoenfeld]
* Misc bug fixes [Morten Welinder]
This is a stable release providing new functionality as compared
to Pango-1.2, while maintaining source and binary compatibility.
Notable improvements in Pango since version 1.2:
* Support for characters beyond the basic-multilingual
plane of Unicode and updates of character properties to
match Unicode-4.0.
* The same modules are now used for the Xft and fontconfig
backends, reducing code duplication, and making it easier
to create new backends independent of Pango that use
fontconfig and FreeType.
* A better font and shaper selection algorithm is now used
that takes script information into account.
* Bidirectional base direction can now be automatically
determined from the text instead of explicitly set by
the application.
* Improvements to OpenType handling, especially for the GPOS
table. GPOS features are now enabled for Arabic.
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.