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.
Version 1.9.11
- Fix `double' return value handling on big-endian platforms.
- libffi is no longer distributed with g-wrap, as it is available
as a stand-alone package now (instead of being burried in the
GCC sources).
Version 1.9.10
- Fix WCT nullable behaviour for 'new' (i.e. non-compat) wrapsets;
there is now a SRFI-39 parameter 'gw-wcts-nullable?' controlling
the nullable behaviour; this parameter is #f by default, and set
to #t when generating compat wrapsets.
devel/g-wrap196 instead. Changes since 1.9.6:
Version 1.9.8
- New feature: function flags. At the moment there is a single flag
specifying whether to leave "Guile mode" when calling the wrapper
functions. See the Guile manual on "scm_without_guile" for more
information.
- Don't rely on libc to provide (v)asprintf, take the implementation
from gnulib.
- The minimal GLib bindings now build against GLib 2.x. However,
their use is deprecated in favour of the much more complete GLib
bindings in guile-gnome
(http://www.gnu.org/software/guile-gnome/).
Version 1.9.7
- The shared libraries now reside in $(pkglibdir)/modules
(e.g. /usr/lib/g-wrap/modules).
- Users are now allowed to chose in which module generic functions
should be defined.
- New feature: aggregated typespecs. See the node `Wrapping a C
Function' of the manual for details.
- Users can now specify a free and a mark function, as well as an
equality predicate for wrapped C types (WCTs) in `wrap-as-wct!'.
- Improved documentation with an API reference (yet to be finished).
- Several bugfixes.
Version 1.9.7
- The shared libraries now reside in $(pkglibdir)/modules
(e.g. /usr/lib/g-wrap/modules).
- Users are now allowed to chose in which module generic functions
should be defined.
- New feature: aggregated typespecs. See the node `Wrapping a C
Function' of the manual for details.
- Users can now specify a free and a mark function, as well as an
equality predicate for wrapped C types (WCTs) in `wrap-as-wct!'.
- Improved documentation with an API reference (yet to be finished).
- Several bugfixes.
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).
makeinfo if no native makeinfo executable exists. Honor TEXINFO_REQD
when determining whether the native makeinfo can be used.
* Remove USE_MAKEINFO and replace it with USE_TOOLS+=makeinfo.
* Get rid of all the "split" argument deduction for makeinfo since
the PLIST module already handles varying numbers of split info files
correctly.
NOTE: Platforms that have "makeinfo" in the base system should check
that the makeinfo entries of pkgsrc/mk/tools.${OPSYS}.mk are
correct.
file's sole purpose was to provide a dependency on pkg-config and set
some environment variables. Instead, turn pkg-config into a "tool"
in the tools framework, where the pkg-config wrapper automatically
adds PKG_CONFIG_LIBDIR to the environment before invoking the real
pkg-config.
For all package Makefiles that included pkg-config/buildlink3.mk, remove
that inclusion and replace it with USE_TOOLS+=pkg-config.
Changes since 1.9.4:
- Bugfixes
+ The minimal GLib wrappers are now installed as (g-wrap gw-glib),
as expected by GnuCash.
+ A problem with generic specializer class lookup has been fixed.
+ A problem with generics specialization and default arguments has
been fixed.
+ A problem with default arguments, when combined with
invisible arguments (such as output arguments) has been fixed.
- Enhanced generics support: now all arguments of methods are
specialized, not only the first one.
- Bugfixes
+ Now ships with (g-wrap gw-wct) compatibilty module needed by
GnuCash at runtime.
+ Fixes for handling output arguments:
- Wrapped functions with void return value and output arguments
now return expected results
- Optional argument count is now correctly computed in the
presence of output arguments
+ The libffi alignment requirements are now honored. This fixes bus
errors on many non-x86 architectures.
+ On big-endian architectures libffi-wrapped functions that return
char now work correctly.
+ Some "uninitialized variable" warnings were fixed in generated code
which caused compiles with GCC 4.0 to fail (Debian Bug#290305).
Changes since 1.3.4:
Version 1.9.3
- Comes with a compatibility layer that allows GnuCash to be built
with it.
- Reverts the enhanced generics support, which was introduced in
1.9.2, since that currently breaks guile-gnome
- Bugfixes
+ g-wrap-2.0-guile.pc is now generated correctly, even if the
internal libffi is used.
+ Types used by constants are now considered when calculating the
set of referenced types in a wrapset. This bug led to missing code
and compile errors when a type defined in another wrapset was used
by only by a constant.
+ On platforms which lack alloca(), the version shipped with
G-Wrap should now build correctly.
Version 1.9.2
- Now comes with libffi included, for systems which lack an libffi
installation
- SRFI module checks now work correctly, even if you do an in-tree build
Version 1.9.1
- API change: destruct-value-cg is now named destroy-value-cg
- Bugfixes
+ A bug in the latent generic code has been fixed
+ The error message for WCP type errors has been fixed
Version 1.9.0
- Complete rewrite; too many changes to list, see the manual for the
new GOOPS-based API and the guile-gnome project for an extended
example.
- New features:
+ Output arguments
+ Default arguments
- G-Wrap should be target-language agnostic, like it was in its
early days.
Unfortunately, guile{,14}/buildlink3.mk directly includes it, and I don't
know which dependencies actually need libltdl, so it was a recursive bump.
Hopefully this recursive inclusion can be ripped out of
guile{,14}/buildlink3.mk at some point and bubble down to dependencies that
actually use libltdl, avoiding this headache in the future....
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".