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.
CHANGES 1.2.2 -> 1.3.0
* [IMPORTANT] The text search functionality currently does not work
anymore. This feature uses the search form on the freedb.org
website. But since this form has disappeared, text search fails.
In the mean time you might make use of the album command of the
freedb2.org servers (see below).
* [NEW] Support was added for the 'album' command of the freedb2.org
servers. This feature can be used to do a text search for a certain
album. It does not perform any HTML page parsing but uses an
extension of the CDDB protocol. As input the function needs a disc
with either the artist or title filled in. The results are similar
as for the query command; i.e. a list of matching disc IDs together
with their categories. The example program also supports this
feature.
* [NEW] Functions where added to set (libcddb_set_flags) or reset
(libcddb_reset_flags) some flags. The flags used influence the
behaviour of the library. By default all flags are disabled.
Currently the following flags are available:
- CDDB_F_EMPTY_STR: When this flag is set, the library will never
return a NULL pointer for a string. Instead the empty string will
be returned.
- CDDB_F_NO_TRACK_ARTIST: When this flag is set, the library will
not return the disc artist if the track artist is undefined. A
NULL pointer (or the empty string if CDDB_F_EMPTY_STR is set) will
be returned instead.
CHANGES 1.2.1 -> 1.2.2
* [BUGFIX] Correctly specify the character set (UTF-8) when submitting
data to a server.
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).
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.
* [NEW] It is now possible to fine tune the text search by specifying
which fields and categories to consider.
* [BUGFIX] Fixed cddb_sites function returning random values due to
uninitialized value.
* [UPDATE] The value of the LIBCDDB_VERSION_NUM defined variable is
now 121.
Changes 1.2.0:
* [NEW] Support for searching the FreeDB database using a text string
has been added. This feature has a similar API as the query
command but uses a string instead of actual disc data.
* [UPDATE] The value of the LIBCDDB_VERSION_NUM defined variable is
now 120.
Changes 1.1.0:
* [IMPORTANT] The installed header files now no longer contain any
actual structure definitions. All libcddb structures are now truly
opaque for the user of the library. Some of the structures have
also been updated. This means that the library is not binary
compatible with the previous version. It should however be possible
to just recompile any software using libcddb and link it against
this new library. The API is backwards compatible so no changes to
the software should be necessary.
* [NEW] Support for the FreeDB sites command that can be used to get a
list of mirror servers. A function was also added to initialize the
libcddb server connection data using one of the servers returned by
this command
* [NEW] A new error code was added (CDDB_ERR_INVALID) that is returned
when invalid input parameters are passed to one of the library
functions.
* [UPDATE] The value of the LIBCDDB_VERSION_NUM defined variable is
now 110.
changes:
* [NEW] Added cddb_set_http_proxy_credentials function that allows you
to specify proxy user name and password in one go. It also does not
store the user's credentials as cleartext in memory.
-bugfix
* [NEW] Added --without-cdio option to the configure script so you can
manually disable CD access support for the example program.
* Fixed iconv compiler warnings for Solaris and Cygwin.
* Fixed regex compilation issue on MacOS X.
changes:
* [NEW] Added support for proxy authentication.
* [BUGFIX] Memory leaks fixed in regular expression handling.
* Iconv compilation fixes for Solaris.
* Libcddb now uses the FreeDB protocol version 6. The difference with
version 5 is that now the responses from the FreeDB server are in
UTF-8 format instead of ISO8859-1. So if the CD you query contains
non-US-ASCII characters the results will be different in this new
version of libcddb.
* [NEW] It is now possible to set the character set that libcddb has
to use when returning disc data (see also above). Use the
cddb_set_charset function to set the user's character set. The
example program, cddb_query, now also has a command-line option for
specifying the character set.
* [BUGFIX] FreeDB changed the specs of their CDDB file format. The
results for certain discs failed to parse correctly because the
libcddb parser was too strict. This should be fixed now.
* [BUGFIX] When writing disc to cache, fill in category if genre is
not specified.
* [BUGFIX] When in CACHE_ONLY mode, do not perform network access when
writing disc record.
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.9.4 -> 0.9.5
* It is now possible to query CD entries if you only know the track
length. Previous versions of libcddb needed the track offsets from
the CD. Track offsets will be calculated automatically when a
length is specified and the offset is missing. This is less precise
than using the actual frame offsets. So whenever possible use the
offsets instead.
* Fixed some possible buffer overflows. The internal buffer size has
also been increased from 257 to 1024 bytes. It is now also possible
to change this buffer size in the cddb_cmd.h.
* Updated regression tests with less strict testing. Changes in the
queried CDDB entries should no longer trigger a test failure.
* Improved support for Win32 platforms (thx to Rocky Bernstein).
* improved support for Mac OS X (thx to Rocky Bernstein and Derk-Jan
Hartman).
* It is now possible to specify the CD-ROM device to be used in the
example program.
pkgsrc change:
Add TEST_TARGET.
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.
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.
Libcddb is a library that implements the different protocols (CDDBP,
HTTP, SMTP) to access data on a CDDB server (http://freedb.org). It
tries to be as cross-platform as possible. The initial libary will
have a C API.