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 0.2.41
===============
* Fix 32k samples turning into static when 8k samples played in
the middle. Debian #79145. (Matthew Ashton)
* Fix filter buffer handling so filters work. Debian #202027.
(Ryan Murray)
* Reconnect the ALSA driver and reload the config file after
receiving a SIGUSR1. (Martin Pitt)
* Fixed esd_audio_write() to use select() if the driver supports
it (otherwise usleep) and write data in a configurable block size.
(Ryan Murray)
* Fixed esound.pc audifile linking. (Josselin Mouette)
* Fixed esdcat.1. (Josselin Mouette)
* Protect dsp_init() with a mutex lock. (Josselin Mouette)
* Fixed to allow multiple esd instances (one per user). (Martin Pitt)
* Fixes to startup time by not trying to exec a binary if it doesn't
exist. (Martin Pitt)
* Prettier debugging output. (Ryan Murray)
* Fixed signedness compiler warnings. (Josselin Mouette)
* Remove libesddsp from LD_PRELOAD when autospawning esd. (Ryan Murray)
* Fixes for GStreamer using ESPEAKER. (Jeff Waugh)
* Fixes for mmap64 (Josselin Mouette)
* Close the spawnfd when the startup is successful. (Josselin Mouette)
* Save a call to esd_audio_pause when run with -nobeeps. (Josselin Mouette)
* Improved error checking for the -spawnfd switch. (Josselin Mouette)
* Fixed buffer overflow possibilities. (Ryan Murray)
* Call snd_pcm_hw_free() before calling snd_pcm_close() to avoid a
memory leak. (Martin Pitt)
* Add informative output for -double switch. (Josselin Mouette)
* Use smaller sleep timeouts. (Josselin Mouette)
* Updated to handle more file formats supported by audiofile 0.2.3.
(Josselin Mouette)
===============
Version 0.2.39
===============
* Fixed esd client-side code to not hang if esd crashes/hangs
or otherwise becomes unreachable (Jeffrey Stedfast)
* Suppress verbose error messages from ALSA (Stanislav Brabec)
* Allow for multiple esd instances
* Fix esound-config for multi-lib setups (Matthias Clasen)
* Don't report errors about /dev/dsp not existing (Havoc Pennington)
* Various other build fixes for AMD64 (Rémi Cardona)
===============
Version 0.2.38
===============
* Fix 100% CPU problem introduced in 0.2.37 (Joe Marcus Clarke)
* Fix libesddsp not linking against libesd (Loïc Minier)
* Fix file descriptor leaks (Pierre Ossman)
* Fix a build problem with the read/write wrapper (Jean Bréfort)
* chdir to "/" when starting up (Dan Winship)
* Only install the esddsp man page if we build the binary
===============
Version 0.2.37
===============
* Fix null derefs and leaks reported by Coverity (kjartan)
* Build fixes (David Schleef, Thomas Zajic, Behdad Esfahbod)
* Disable autospawning (David Schleef)
* Close filedescriptors and sockets (David Schleef)
* Don't terminate until the last sample is done (David Schleef)
* Add checks for clients disconnecting (Peter Åstrand)
* Updated man pages (Christopher Hanna)
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).
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".
* fix location of configuration file in man (Craig Routledge)
* MMAP support for esddsp (from artsdsp, Olivier Blin)
* GNU/kFreeBSD support (Robert Milan)
* add new default_options in configuration file and environement
variable, fix regression caused by patch since 0.2.30
* use ALSA default alias (Cyrille Chepelov)
* clean code (Kjartan Maraas)
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.
Changes:
* use new ALSA PCM API if available (Lukasz Mach and Eddy Mylyono)
* fix build on AIX and OSF (Albert Chin-A-Young)
* don't try to close audio device if not opened (Debian)
* fix build with latest automake (Stanislav Bradec)
* no longer required automake 1.4 (Thomas Cataldo)
* Fix Darwin build (Jerry Talkington)
* fix typo in manpage (Kjartan Maraas)
While here use subst.mk instead of patching configure script.
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.