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.
Noteworthy changes in version 0.6.6 (2007-11-15)
------------------------------------------------
* Slightly adjust the stream code.
The check for fflush is omitted because the return
value might be undefined. This fixes a problem reported
from the NetBSD team.
* Don't use __inline__ in src/cipher.c (breaks on Sun CC).
Noteworthy changes in version 0.6.5 (2007-10-27)
------------------------------------------------
* Cleanups for the key export and import functionality.
* Clarified the semantic of cdk_pk_check_sigs.
* Now the by usage keydb function correctly finds the
self signature.
patch-aa provided by drochner@; sent upstream, will be in next release.
Noteworthy changes in version 0.6.4 (2007-06-12)
------------------------------------------------
* Make sure the test suite uses non-guessable file names
for temporary files.
* Fix a problem in the file handling code.
Noteworthy changes in version 0.6.3 (2007-06-06)
------------------------------------------------
* Remove unused references in the opencdk config script.
This fixes an error because a variable were not referenced.
Interface changes relative to 0.6.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cdk_dek_get_cipher NEW
cdk_dek_get_mdc_flag NEW
Noteworthy changes in version 0.6.2 (2007-05-25)
------------------------------------------------
* Fix versioning script of the library.
* Bug fixes for the remaining memory leaks.
* Better way to handle gcrypt initialization.
Interface changes relative to 0.6.1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cdk_lit_format_t NEW
functions:
cdk_pk_to_fingerprint NEW
Package change: Fix opencdk-config and opencdk.pc.
Noteworthy changes in version 0.6.1 (2007-05-12)
------------------------------------------------
* The opencdk.def file is included in the distribution archive,
fixes build failures on mingw32.
* Some bug fixes for the mingw32 build in combination with WINE.
* Now the decryption code uses the name in the literal packet
for the output file whenever this is possible.
* Take care of absolute file names in literal packets.
Noteworthy changes in version 0.6.0 (2007-05-XX)
------------------------------------------------
* Dropped all internal random, cipher, digest libs and only use gcrypt
for such tasks. The library should only provide functions dedicated
to parsing and packet creation for the protocol.
* Adjust code for the new Libgcrypt interface.
Now Libgcrypt >1.2.2 is required to build the code.
* This new version introduces an API change and thus incompatibilities
to prior versions.
* Lots of cleanups all over the place. This also includes simplification
for various code parts.
* Better support for larger files.
* Map the libgcrypt error directly and remove the
invalid CDK_Gcry_Error type.
* Add more regression tests for the various code parts.
* We do not support ElGamal signatures any longer.
* Merged patches from the other opencdk branch which is
currently used by GnuTLS.
* Provide user callback for the stream. As a sample
implementation, socket callbacks are implemented
and use in cdk_stream_sockopen().
* Drop most of the rfc1991 legacy format. This means
we do not generate any rfc1991 data, but we still
understand it. An exception is the packet header output.
* Removed gnulib interface for now because the lib
is currently not in use.
* Interfaces changes relative to 0.5.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
functions:
cdk_stream_tmp CHANGED: is now cdk_stream_tmp_new
cdk_stream_new_from_mem CHANGED: new argument and return error code
cdk_stream_control CHANGED: is no available any longer
cdk_stream_new_from_cbs NEW
cdk_stream_mmap_part NEW
cdk_keydb_new_from_file NEW
cdk_keydb_new_from_mem NEW
cdk_keydb_new_from_stream NEW
cdk_keydb_import CHANGED: second argument removed.
cdk_keydb_pk_cache_sigs DELETED
cdk_kbnode_write_to_mem_alloc NEW
cdk_lib_startup NEW
cdk_lib_shutdown NEW
cdk_handle_set_keyring NEW
cdk_handle_get_verify_result NEW
cdk_subpkt_find_next NEW
cdk_subpkt_find_nth NEW
cdk_set_progress_handler DELETED
cdk_userid_get_pref_array DELETED
cdk_pk_encrypt CHANGED: last argument is now gcry_mpi_t
cdk_pk_decrypt CHANGED: last argument is now gcry_mpi_t
cdk_pk_get_mpi CHANGED: new argument nwritten.
cdk_sk_get_mpi CHANGED: new argument nwritten.
cdk_pk_release NEW
cdk_sk_release NEW
cdk_pubkey_to_sexp NEW
cdk_seckey_to_sexp NEW
cdk_armor_encode_buffer NEW
cdk_keygen_set_mdc_feature DELETED
cdk_keygen_set_algo_info CHANGED: new argument usage.
cdk_seskey_new DELETED
cdk_seskey_free DELETED
cdk_dek_encode_pkcs1 CHANGED: not public any longer.
cdk_dek_decode_pkcs1 CHANGED: not public any longer.
cdk_stream_tell CHANGED: return type is now off_t
cdk_stream_seek CHANGED: argument is now off_t
cdk_pk_check_self_sig NEW
constants:
CDK_No_Data NEW
CDK_CTL_TRUSTMODEL DELETED
CDK_CTL_FORCE_DIGEST DELETED
CDK_COMPRESS_BZIP2 NEW
CDK_MD_SHA{256,384,512} NEW
CDK_MD_{TIGER, MD2} DELETED
CDK_CIPHER_{SAFER_SK128, DES_SK} DELETED
CDK_CTL_COMPAT DELETED
structures:
cdk_md_hd_t CHANGED: is now gcry_md_hd_t
cdk_cipher_hd_t CHANGED: is now gcry_cipher_hd_t
cdk_sesskey_t CHANGED: is now gcry_mpi_t
Noteworthy changes in version 0.5.13 (2007-02-01)
------------------------------------------------
* Fixed shared library for newly added APIs in last release.
* Add -no-undefined to LDFLAGS, to make opencdk build under mingw32.
* Add AC_LIBTOOL_WIN32_DLL to configure.ac, which is required for
* libtool to behave correctly for cross-compiles to mingw32.
* Use gnulib for mingw32 support.
Noteworthy changes in version 0.5.12 (2007-02-01)
------------------------------------------------
* Add new API to extract public/secret OpenPGP key to S-expr.
The functions are cdk_pubkey_to_sexp and cdk_seckey_to_sexp. Patch by
Mario Lenz <mario.lenz@gmx.net>.
* Autoconf 2.60 and automake 1.10 are now required.
* Doc fixes.
Noteworthy changes in version 0.5.11 (2006-10-26)
------------------------------------------------
* Add a new self test "basic" to test cdk_check_version.
* Add prototype of cdk_stream_decrypt to opencdk.h, reported by Adam
Langley.
* Fix crash in cdk_data_transform triggered by self-tests.
Noteworthy changes in version 0.5.10 (2006-10-11)
------------------------------------------------
* Fix double-free in cdk_pklist_encrypt, reported by Adam Langley.
* Fix keydb_idx_search() to handle keys at offset 0, thanks to Adam Langley.
* A pkg-config script was added, thanks to Andreas Metzler.
* Autobuild time stamps are used, for easier build robot testing.
Noteworthy changes in version 0.5.9 (2006-08-06)
------------------------------------------------
* Fix cdk_kbnode_write_to_mem to return CDK_Too_Short when buf is
NULL, tiny patch from Mario Lenz.
* Fixed opencdk-config script to include -lz, thanks to Weng Liong, Low.
* Fix prototypes for AIX compiler, reported by John Heiden.
* Don't use trailing comma in last enum constant, for IBM C v6. Tiny
patch from Albert Chin.
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).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
Noteworthy changes in version 0.5.8 (2005-08-31)
------------------------------------------------
* Added versioned symbols again.
* Improved searching for libz.
* Should build on platforms that lack "inline".
* Various build fixes, to make version info not say 0.5.5 any more.
Changes 0.5.6:
* Use libtool -export-symbols-regex instead of GNU ld script.
* Fix license with new FSF address.
* Test for socklen_t, needed for libgcrypt on some platforms.
* A few configure/build fixes.
* Don't use malloc.h.
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".
libgcrypt was recently upgraded. So when using binary packages
it is possible for new libgcrypt (libgcrypt.so.12.1) to be installed
with old opencdk-0.5.4 package.
So bump PKGREVISION and BUILDLINK_DEPENDS (to force a new package
to be required).
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.