diff --git a/NEWS b/NEWS index 2f4fd75..a720408 100644 --- a/NEWS +++ b/NEWS @@ -1,574 +1,578 @@ +Noteworthy changes in version 1.5.2 (unreleased) [C21/A13/R_] +------------------------------------------------ + + Noteworthy changes in version 1.5.1 (2021-04-06) [C21/A13/R1] ------------------------------------------------ * Support Brainpool curves specified by ECDomainParameters. Release-info: https://dev.gnupg.org/T5379 Noteworthy changes in version 1.5.0 (2020-11-18) [C21/A13/R0] ------------------------------------------------ * ksba_cms_identify now identifies OpenPGP keyblock content. * Supports TR-03111 plain format ECDSA signature verification. * Fixes a CMS signed data parser bug exhibited by a somewhat strange CMS message. [b6438e768c] * Interface changes relative to the 1.4.0 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ KSBA_CT_OPENPGP_KEYBLOCK NEW. Release-info: https://dev.gnupg.org/T5146 Noteworthy changes in version 1.4.0 (2020-05-19) [C20/A12/R0] ------------------------------------------------ * Supports ECDSA and EdDSA certificate creation and parsing. [#4896] * Supports ECDH enveloped data. [#4920] * Supports ECDSA and EdDSA signed data. [#4920] * Supports rsaPSS signature verification. [#4538] * Supports standard file descriptors in ksba_reader_read. [#3072] * New configure flag --disable-doc. * Improves supports for reproducible builds. [#4801] * Allows for optional elements in keyinfo objects. [#4892] * Updates the config and M4 scripts to the latest version. * Fixes error detection in the CMS parser. [#4207] * Fixes memory leak in ksba_cms_identify. * Fixes build warnings on macOS. [#2910] * Uses --disable-new-dtags if LD_LIBRARY_PATH is defined. [#4298] * New constants KSBA_VERSION and KSBA_VERSION_NUMBER. * New API to make creation of DER objects easy. * Interface changes relative to the 1.3.5 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ KSBA_VERSION NEW. KSBA_VERSION_NUMBER NEW. KSBA_CT_SPC_IND_DATA_CTX NEW. KSBA_CLASS_* NEW. KSBA_TYPE_* NEW. ksba_der_t NEW. ksba_der_release NEW. ksba_der_builder_new NEW. ksba_der_builder_reset NEW. ksba_der_add_ptr NEW. ksba_der_add_val NEW. ksba_der_add_int NEW. ksba_der_add_oid NEW. ksba_der_add_bts NEW. ksba_der_add_der NEW. ksba_der_add_tag NEW. ksba_der_add_end NEW. ksba_der_builder_get NEW. Release-info: https://dev.gnupg.org/T4943 Noteworthy changes in version 1.3.5 (2016-08-22) [C19/A11/R6] ------------------------------------------------ * Limit the allowed size of complex ASN.1 objects (e.g. certificates) to 16MiB. * Avoid read access to unitialized memory. * Improve detection of invalid RDNs. * Encode the OCSP nonce value as an octet string as described by RFC-6960. Noteworthy changes in version 1.3.4 (2016-05-03) [C19/A11/R5] ------------------------------------------------ * Fixed two OOB read access bugs which could be used to force a DoS. * Fixed a crash due to faulty curve OID lookup code. * Synced the list of supported curves with those of Libgcrypt. * New configure option --enable-build-timestamp; a build timestamp is not anymore used by default. Noteworthy changes in version 1.3.3 (2015-04-10) [C19/A11/R4] ------------------------------------------------ * Fixed an integer overflow in the DN decoder. * Now returns an error instead of terminating the process for certain bad BER encodings. * Improved the parsing of utf-8 strings in DNs. * Allow building with newer versions of Bison. * Improvement building on Windows with newer versions of Mingw. Noteworthy changes in version 1.3.2 (2014-11-25) [C19/A11/R3] ------------------------------------------------ * Fixed a buffer overflow in ksba_oid_to_str. [CVE-2014-9087] Noteworthy changes in version 1.3.1 (2014-09-18) ------------------------------------------------ * Fixed memory leak in CRL parsing. * Build fixes for Windows, Android, and ppc64el. Noteworthy changes in version 1.3.0 (2012-09-27) ------------------------------------------------ * Changed the license of the library from GPLv3 to LGPLv3/GPLv2; see the file AUTHORS for details. * Minor bug fixes. Noteworthy changes in version 1.2.0 (2011-03-01) ------------------------------------------------ * New functions to allow the creation of X.509 certificates. * Interface changes relative to the 1.1.0 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_certreq_set_serial NEW. ksba_certreq_set_issuer NEW. ksba_certreq_set_validity NEW. ksba_certreq_set_siginfo NEW. Noteworthy changes in version 1.1.0 (2010-10-26) ------------------------------------------------ * New functions to fix a leak in dirmngr. * Interface changes relative to the 1.0.0 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_reader_set_release_notify NEW ksba_writer_set_release_notify NEW Noteworthy changes in version 1.0.8 (2010-07-15) ------------------------------------------------ * Support for WindowsCE. * Builds cleanly from SVN even when cross-compiling. * Fixed a CMS parsing bug exhibited by Lotus Notes. Noteworthy changes in version 1.0.7 (2009-07-03) ------------------------------------------------ * Detect overflow while parsing OIDs. Map BER encoded OIDs to well known names. * Allow mixed case names in DNs. Noteworthy changes in version 1.0.6 (2009-06-05) ------------------------------------------------ * Support SHA-{384,512} based signature generation. * The RSA algorithmIdentifier ASN.1 sequence is now emitted with an explicit NULL parameter. Despite the interop testing we did in the past, some software still requires this and thus we better follow the best current practise. Noteworthy changes in version 1.0.5 (2009-01-09) ------------------------------------------------ * Minor bug fixes. Noteworthy changes in version 1.0.4 (2008-09-22) ------------------------------------------------ * Write smimeCapabilities according to RFC3851 to help Mozilla. * Support DSA. * The visibility attribute is now used if supported by the toolchain. Noteworthy changes in version 1.0.3 (2008-02-12) ------------------------------------------------ * Minor bug fixes. * Include the used hash algorithm in sig-val structures. * Fix for unknown tags in issuerAltName and subjectAltName. Noteworthy changes in version 1.0.2 (2007-07-04) ------------------------------------------------ * Support for SHA-2. * Fixed a couple of memory leaks. * Experimental support for ECDSA. * Minor portability fixes. * Switched to GPLv3. Noteworthy changes in version 1.0.1 (2006-11-29) ------------------------------------------------ * Fixes for certificates lacking certain objects. * Fixes to allow building on systems with a broken ar. Noteworthy changes in version 1.0.0 (2006-08-31) ------------------------------------------------ * OCSP nonces are now checked to detect replay attacks. * OCSP extensions may no be retrieved. * Implemented ksba_ocsp_get_responder_id which used to always return an error code not_implemented. Thus we can assume that the function has never been used and we don't need to see this as an API break. * Interface changes relative to the 0.9.16 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_ocsp_get_extension NEW ksba_ocsp_get_responder_id CHANGED: No ABI break. Noteworthy changes in version 0.9.16 (2006-08-01) ------------------------------------------------- * Fixed a character set conversion bug in BMPStrings. * New function for better error reporting of DNs. * Interface changes relative to the 0.9.13 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_dn_teststr NEW ksba_dn_str2der NEW ksba_dn_der2str NEW Noteworthy changes in version 0.9.15 (2006-06-20) ------------------------------------------------- * Fixed BER parser which was broken in the last release. Noteworthy changes in version 0.9.14 (2006-05-16) ------------------------------------------------- * Fixed broken OCSP requests. * Ignore invalid bytes appended to a certificate. Noteworthy changes in version 0.9.13 (2005-11-24) ------------------------------------------------- * New functions to associate user data with a certificate object. * Interface changes relative to the 0.9.12 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_cert_set_user_data NEW ksba_cert_get_user_data NEW Noteworthy changes in version 0.9.12 (2005-08-01) ------------------------------------------------- * GeneralNames types dNSName and Uri are now supported. * Minor changes to some function declarations. This should not affect any compilation. * Interface changes relative to the 0.9.7 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_certreq_add_extension CHANGED: Argument DER is now a void*. ksba_cms_set_content_enc_algo CHANGED: Argument IV is now void*. ksba_cms_get_content_enc_iv CHANGED: Argument IV is now void*. ksba_cms_set_message_digest CHANGED: Argument DIGEST is now unsigned char*. Noteworthy changes in version 0.9.11 (2005-04-20) ------------------------------------------------- * New convenience API function for the subjectKeyIdentifier. * Implemented the keyIdentifier part for authorityKeyIdentifier of CRLs and certificates. * Reason codes for CRL items are now returned. * Interface changes relative to the 0.9.7 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_cert_get_subj_key_id NEW. Noteworthy changes in version 0.9.10 (2004-12-03) ------------------------------------------------- * Fixed a CMS parsing bug. Noteworthy changes in version 0.9.9 (2004-09-27) ------------------------------------------------ * Fixed a couple of bugs which caused parsing errors with some certificates. Noteworthy changes in version 0.9.8 (2004-07-22) ------------------------------------------------ * Fixed a bug in the OCSP request generation. Noteworthy changes in version 0.9.7 (2004-06-08) ------------------------------------------------ * New API function to add arbitrary extensions to pkcs#10 requests. * Interface changes relative to the 0.9.6 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_certreq_add_extension NEW. Noteworthy changes in version 0.9.6 (2004-04-29) ------------------------------------------------ * New API functions to support v2 CRLs. * Interface changes relative to the 0.9.5 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_crl_get_extension NEW. ksba_crl_get_auth_key_id NEW. ksba_crl_get_crl_number NEW. Noteworthy changes in version 0.9.5 (2004-04-06) ------------------------------------------------ * New APIs to get hands on some more information. * Interface changes relative to the 0.9.4 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_ocsp_get_responder_id NEW. ksba_ocsp_get_cert NEW. ksba_cert_get_authority_info_access NEW. ksba_cert_get_subject_info_access NEW. ksba_cms_add_smime_capability NEW. Noteworthy changes in version 0.9.4 (2004-02-20) ------------------------------------------------ * Support for Extended Key Usage. * ksba_cms_identify may no return a pseudo content type for pkcs#12 files. * Interface changes relative to the 0.9.3 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_reader_clear NEW. ksba_cert_get_ext_key_usages NEW. KSBA_CT_PKCS12 NEW. Noteworthy changes in version 0.9.3 (2004-01-30) ------------------------------------------------ * Fixed a serious bug shortly after the last release :-(. Noteworthy changes in version 0.9.2 (2004-01-29) ------------------------------------------------ * Cleaned up the DN label table. * Fixed a bug in creating CMS signed data. Noteworthy changes in version 0.9.1 (2003-12-19) ------------------------------------------------ * Support for OCSP (rfc2560). * The new function ksba_set_hash_buffer_function may be used during intialization to register a simple hash fucntion for internal use by libksba. * Changed the license of the manual to GPL. * Interface changes relative to the 0.9.0 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_status_t NEW. ksba_ocsp_t NEW. ksba_ocsp_response_status_t NEW. ksba_ocsp_new NEW. void ksba_ocsp_release NEW. ksba_ocsp_set_digest_algo NEW. ksba_ocsp_set_requestor NEW. ksba_ocsp_add_target NEW. ksba_ocsp_set_nonce NEW. ksba_ocsp_prepare_request NEW. ksba_ocsp_hash_request NEW. ksba_ocsp_set_sig_val NEW. ksba_ocsp_add_cert NEW. ksba_ocsp_build_request NEW. ksba_ocsp_parse_response NEW. ksba_ocsp_get_digest_algo NEW. ksba_ocsp_hash_respons NEW. ksba_ocsp_get_sig_val NEW. ksba_ocsp_get_status NEW. ksba_set_hash_buffer_function NEW. Noteworthy changes in version 0.9.0 (2003-11-17) ------------------------------------------------ * The time is not any longer described by time_t but through the new type ksba_isotime_t which is string of excactly 15 characters in ISO 8601 format (e.g. "19611107T152010") and always stored as UTC. This is to allow representation of dates beyond the year 2038. Comparing is a mere strcmp. * All type names are nom conforming to the GNU coding standards, the old names are still available as aliases but flagged as deprecated. * All error codes have been replaced by libgpg-error ones. Libksba now depends on this package. Remember to use the gpg_err_code function when testing for error values other than success. * Interface changes relative to the 0.4.7 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_cert_get_validity CHANGED: Uses ksba_isotime_t instead of time_t. ksba_crl_get_update_times CHANGED: Uses ksba_isotime_t instead of time_t. ksba_crl_get_item CHANGED: Uses ksba_isotime_t instead of time_t. ksba_cms_get_signing_time CHANGED: Uses ksba_isotime_t instead of time_t. ksba_cms_set_signing_time CHANGED: Uses ksba_isotime_t instead of time_t. ksba_cert_new CHANGED: Returns an error code now. ksba_cms_new CHANGED: Returns an error code now. ksba_name_new CHANGED: Returns an error code now. ksba_writer_new CHANGED: Returns an error code now. ksba_reader_new CHANGED: Returns an error code now. ksba_certreq_new CHANGED: Returns an error code now. ksba_crl_new CHANGED: Returns an error code now. ksba_isotime_t NEW. ksba_error_t NEW: Should be used instead of KsbaError. ksba_cert_t NEW: Should be used instead of KsbaCert. ksba_certreq_t NEW: Should be used instead of KsbaCertreq. ksba_cms_t NEW: Should be used instead of KsbaCMS. ksba_crl_t NEW: Should be used instead of KsbaCRL. ksba_name_t NEW: Should be used instead of KsbaName. ksba_sexp_t NEW: Should be used instead of KsbaSexp. ksba_reader_t NEW: Should be used instead of KsbaReader. ksba_writer_t NEW: Should be used instead of KsbaWriter. ksba_strerror REMOVED: use gpg_strerror instead. Noteworthy changes in version 0.4.7 (2003-03-17) ------------------------------------------------ * Fixed type detection in creating DNs. Noteworthy changes in version 0.4.6 (2002-12-04) ------------------------------------------------ * DNs in pkcs#10 request are now created in reversed order as specified by rfc2253. * The content-type signed attribute is created. * Fixed a parser bug with a id-aa-encrypKeyPref attribute. * Interface changes relative to the 0.4.3 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_cms_get_sigattr_oids NEW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Noteworthy changes in version 0.4.5 (2002-08-23) ------------------------------------------------ * Removed some debugging output. * Added an autoconf macro. Noteworthy changes in version 0.4.4 (2002-08-09) ------------------------------------------------ * Multiple signatures can now be created and parsed. Noteworthy changes in version 0.4.3 (2002-06-25) ------------------------------------------------ * More bug fixes. * Interface changes relative to the 0.4.2 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_writer_write_octet_string NEW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Noteworthy changes in version 0.4.2 (2002-06-04) ------------------------------------------------ * Some bug fixes and a new function. * Interface changes relative to the 0.4.1 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ksba_cms_identify NEW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Noteworthy changes in version 0.4.1 (2002-05-03) ------------------------------------------------ * Minor fixes. Noteworthy changes in version 0.4.0 (2002-04-15) ------------------------------------------------ * Nearly all stuff needed for the Aegypten project is now in place. Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 g10 Code GmbH This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. diff --git a/configure.ac b/configure.ac index 0c86735..959314f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,493 +1,493 @@ # configure.ac - for libksba # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, # 2010, 2011, 2012, 2018, 2019 g10 Code GmbH # # This file is part of KSBA # # KSBA is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # KSBA is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # Process this file with autoconf to produce a configure script. AC_PREREQ([2.61]) min_automake_version="1.14" # To build a release you need to create a tag with the version number # (git tag -s libksba-n.m.k) and run "./autogen.sh --force". Please # bump the version number immediately after the release and do another # commit and push so that the git magic is able to work. See below # for the LT versions. m4_define([mym4_package],[libksba]) m4_define([mym4_major], [1]) m4_define([mym4_minor], [5]) -m4_define([mym4_micro], [1]) +m4_define([mym4_micro], [2]) # Below is m4 magic to extract and compute the git revision number, # the decimalized short revision number, a beta version string and a # flag indicating a development version (mym4_isbeta). Note that the # m4 processing is done by autoconf and not during the configure run. m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \ mym4_package mym4_major mym4_minor mym4_micro),[:])) m4_define([mym4_isbeta], m4_argn(2, mym4_verslist)) m4_define([mym4_version], m4_argn(4, mym4_verslist)) m4_define([mym4_revision], m4_argn(7, mym4_verslist)) m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist)) m4_esyscmd([echo ]mym4_version[>VERSION]) AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org]) # LT Version numbers: Remember to change them just *before* a release. # (Interfaces removed: CURRENT++, AGE=0, REVISION=0) # (Interfaces added: CURRENT++, AGE++, REVISION=0) # (No interfaces changed: REVISION++) # Please remember to document interface changes in the NEWS file. LIBKSBA_LT_CURRENT=21 LIBKSBA_LT_AGE=13 LIBKSBA_LT_REVISION=1 #------------------- # If the API is changed in an incompatible way: increment the next counter. KSBA_CONFIG_API_VERSION=1 NEED_GPG_ERROR_VERSION=1.8 AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_SRCDIR([src/ksba.h.in]) AM_INIT_AUTOMAKE([serial-tests dist-bzip2 no-dist-gzip]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_HOST AB_INIT AC_USE_SYSTEM_EXTENSIONS # Taken from mpfr-4.0.1, then modified for LDADD_FOR_TESTS_KLUDGE dnl Under Linux, make sure that the old dtags are used if LD_LIBRARY_PATH dnl is defined. The issue is that with the new dtags, LD_LIBRARY_PATH has dnl the precedence over the run path, so that if a compatible MPFR library dnl is installed in some directory from $LD_LIBRARY_PATH, then the tested dnl MPFR library will be this library instead of the MPFR library from the dnl build tree. Other OS with the same issue might be added later. dnl dnl References: dnl https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859732 dnl http://lists.gnu.org/archive/html/libtool/2017-05/msg00000.html dnl dnl We need to check whether --disable-new-dtags is supported as alternate dnl linkers may be used (e.g., with tcc: CC=tcc LD=tcc). dnl case $host in *-*-linux*) if test -n "$LD_LIBRARY_PATH"; then saved_LDFLAGS="$LDFLAGS" LDADD_FOR_TESTS_KLUDGE="-Wl,--disable-new-dtags" LDFLAGS="$LDFLAGS $LDADD_FOR_TESTS_KLUDGE" AC_MSG_CHECKING(whether --disable-new-dtags is supported by the linker) AC_LINK_IFELSE([AC_LANG_SOURCE([[ int main (void) { return 0; } ]])], [AC_MSG_RESULT(yes (use it since LD_LIBRARY_PATH is set))], [AC_MSG_RESULT(no) LDADD_FOR_TESTS_KLUDGE="" ]) LDFLAGS="$saved_LDFLAGS" fi ;; esac AC_SUBST([LDADD_FOR_TESTS_KLUDGE]) LT_PREREQ([2.2.6]) LT_INIT([win32-dll disable-static]) LT_LANG([Windows Resource]) AM_MAINTAINER_MODE AC_SUBST(LIBKSBA_LT_CURRENT) AC_SUBST(LIBKSBA_LT_AGE) AC_SUBST(LIBKSBA_LT_REVISION) VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_major \ mym4_minor mym4_micro) AC_SUBST(VERSION_NUMBER) AH_TOP([ #ifndef _KSBA_CONFIG_H_INCLUDED #define _KSBA_CONFIG_H_INCLUDED /* Enable gpg-error's strerror macro for W32CE. */ #define GPG_ERR_ENABLE_ERRNO_MACROS 1 ]) AH_BOTTOM([ #endif /*_KSBA_CONFIG_H_INCLUDED*/ ]) # Checks for programs. missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AM_SILENT_RULES AC_PROG_AWK AC_PROG_CC AC_PROG_CPP AM_PROG_CC_C_O if test "x$ac_cv_prog_cc_c89" = "xno" ; then AC_MSG_ERROR([[No C-89 compiler found]]) fi AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET gl_EARLY #AC_ARG_PROGRAM AC_PROG_YACC AX_PROG_BISON([have_bison=yes],[have_bison=no]) if test "$USE_MAINTAINER_MODE" = "yes"; then AC_CHECK_PROGS(GCOV, [gcov], gcov) # gcov coverage reporting AC_TDD_GCOV AC_SUBST(COVERAGE_CFLAGS) AC_SUBST(COVERAGE_LDFLAGS) else AM_CONDITIONAL(HAVE_GCOV, false) fi AC_C_INLINE # We need to compile and run a program on the build machine. # The AC_PROG_CC_FOR_BUILD macro in the AC archive is broken for # autoconf 2.57. AC_MSG_CHECKING(for cc for build) if test "$cross_compiling" = "yes"; then CC_FOR_BUILD="${CC_FOR_BUILD-cc}" else CC_FOR_BUILD="${CC_FOR_BUILD-$CC}" fi AC_MSG_RESULT($CC_FOR_BUILD) AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler]) # This is handy for debugging so the compiler doesn't rearrange # things and eliminate variables. AC_ARG_ENABLE(optimization, AS_HELP_STRING([--disable-optimization], [disable compiler optimization]), [if test $enableval = no ; then CFLAGS=`echo $CFLAGS | sed 's/-O[[0-9]]//'` fi]) if test "$GCC" = yes; then CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes" if test "$USE_MAINTAINER_MODE" = "yes"; then CFLAGS="$CFLAGS -Wformat -Wno-format-y2k -Wformat-security" # We use -W only if -Wno-missing-field-initializers is supported. # -W is important because it detects errors like "if (foo);" AC_MSG_CHECKING([if gcc supports -Wno-missing-field-initializers]) _gcc_cflags_save=$CFLAGS CFLAGS="-Wno-missing-field-initializers" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no) AC_MSG_RESULT($_gcc_wopt) CFLAGS=$_gcc_cflags_save; if test x"$_gcc_wopt" = xyes ; then CFLAGS="$CFLAGS -W -Wno-sign-compare -Wno-missing-field-initializers" fi AC_MSG_CHECKING([if gcc supports -Wdeclaration-after-statement]) _gcc_cflags_save=$CFLAGS CFLAGS="-Wdeclaration-after-statement" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no) AC_MSG_RESULT($_gcc_wopt) CFLAGS=$_gcc_cflags_save; if test x"$_gcc_wopt" = xyes ; then CFLAGS="$CFLAGS -Wdeclaration-after-statement" fi fi AC_MSG_CHECKING([if gcc supports -Wpointer-arith]) _gcc_cflags_save=$CFLAGS CFLAGS="-Wpointer-arith" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_wopt=yes,_gcc_wopt=no) AC_MSG_RESULT($_gcc_wopt) CFLAGS=$_gcc_cflags_save; if test x"$_gcc_wopt" = xyes ; then CFLAGS="$CFLAGS -Wpointer-arith" fi AC_MSG_CHECKING([if gcc supports -Wno-pointer-sign]) _gcc_cflags_save=$CFLAGS CFLAGS="-Wno-pointer-sign" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],_gcc_psign=yes,_gcc_psign=no) AC_MSG_RESULT($_gcc_psign) CFLAGS=$_gcc_cflags_save; if test x"$_gcc_psign" = xyes ; then CFLAGS="$CFLAGS -Wno-pointer-sign" fi fi # Setup some stuff depending on host. have_w32_system=no have_w32ce_system=no case "${host}" in *-*-mingw32ce*) have_w32_system=yes have_w32ce_system=yes ;; *-*-mingw32*) have_w32_system=yes ;; *-apple-darwin*) AC_DEFINE(_DARWIN_C_SOURCE, 900000L, Expose all libc features (__DARWIN_C_FULL).) ;; *) ;; esac if test "$have_w32_system" = yes; then AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system]) if test "$have_w32ce_system" = yes; then AC_DEFINE(HAVE_W32CE_SYSTEM,1,[Defined if we run on WindowsCE]) fi fi AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes) AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes) # For some systems we know that we have ld_version scripts. # Use it then as default. have_ld_version_script=no case "${host}" in *-*-linux*) have_ld_version_script=yes ;; *-*-gnu*) have_ld_version_script=yes ;; esac AC_ARG_ENABLE([ld-version-script], AS_HELP_STRING([--enable-ld-version-script], [enable/disable use of linker version script. (default is system dependent)]), [have_ld_version_script=$enableval], [ : ] ) AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") # # Check for ELF visibility support. # AC_CACHE_CHECK(whether the visibility attribute is supported, ksba_cv_visibility_attribute, [ksba_cv_visibility_attribute=no AC_LANG_CONFTEST([AC_LANG_SOURCE( [[int foo __attribute__ ((visibility ("hidden"))) = 1; int bar __attribute__ ((visibility ("protected"))) = 1; ]])]) if ${CC-cc} -Werror -S conftest.c -o conftest.s \ 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then if grep '\.hidden.*foo' conftest.s >/dev/null 2>&1 ; then if grep '\.protected.*bar' conftest.s >/dev/null 2>&1; then ksba_cv_visibility_attribute=yes fi fi fi ]) if test "$ksba_cv_visibility_attribute" = "yes"; then AC_CACHE_CHECK(for broken visibility attribute, ksba_cv_broken_visibility_attribute, [ksba_cv_broken_visibility_attribute=yes AC_LANG_CONFTEST([AC_LANG_SOURCE( [[int foo (int x); int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden"))); int bar (int x) { return x; } ]])]) if ${CC-cc} -Werror -S conftest.c -o conftest.s \ 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then if grep '\.hidden@<:@ _@:>@foo' conftest.s >/dev/null 2>&1; then ksba_cv_broken_visibility_attribute=no fi fi ]) fi if test "$ksba_cv_visibility_attribute" = "yes"; then AC_CACHE_CHECK(for broken alias attribute, ksba_cv_broken_alias_attribute, [ksba_cv_broken_alias_attribute=yes AC_LANG_CONFTEST([AC_LANG_SOURCE( [[extern int foo (int x) __asm ("xyzzy"); int bar (int x) { return x; } extern __typeof (bar) foo __attribute ((weak, alias ("bar"))); extern int dfoo; extern __typeof (dfoo) dfoo __asm ("abccb"); int dfoo = 1; ]])]) if ${CC-cc} -Werror -S conftest.c -o conftest.s \ 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ; then if grep 'xyzzy' conftest.s >/dev/null 2>&1 && \ grep 'abccb' conftest.s >/dev/null 2>&1; then ksba_cv_broken_alias_attribute=no fi fi ]) fi if test "$ksba_cv_visibility_attribute" = "yes"; then AC_CACHE_CHECK(if gcc supports -fvisibility=hidden, ksba_cv_gcc_has_f_visibility, [ksba_cv_gcc_has_f_visibility=no _gcc_cflags_save=$CFLAGS CFLAGS="-fvisibility=hidden" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])], ksba_cv_gcc_has_f_visibility=yes) CFLAGS=$_gcc_cflags_save; ]) fi if test "$ksba_cv_visibility_attribute" = "yes" \ && test "$ksba_cv_broken_visibility_attribute" != "yes" \ && test "$ksba_cv_broken_alias_attribute" != "yes" \ && test "$ksba_cv_gcc_has_f_visibility" = "yes" then AC_DEFINE(KSBA_USE_VISIBILITY, 1, [Define to use the GNU C visibility attribute.]) CFLAGS="$CFLAGS -fvisibility=hidden" fi # # Checks for libraries. # AM_PATH_GPG_ERROR("$NEED_GPG_ERROR_VERSION") if test "x$GPG_ERROR_LIBS" = "x"; then AC_MSG_ERROR([libgpg-error is needed. See ftp://ftp.gnupg.org/gcrypt/libgpg-error/ .]) fi AC_DEFINE(GPG_ERR_SOURCE_DEFAULT, GPG_ERR_SOURCE_KSBA, [The default error source for libksba.]) # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([string.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_BIGENDIAN AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(unsigned long) AC_CHECK_TYPES([u32]) # Checks for library functions. AC_CHECK_FUNCS([memmove strchr strtol strtoul stpcpy gmtime_r getenv]) # GNUlib checks gl_SOURCE_BASE(gl) gl_M4_BASE(gl/m4) gl_MODULES(alloca valgrind-tests) gl_INIT # To be used in ksba-config KSBA_CONFIG_LIBS="-lksba" KSBA_CONFIG_CFLAGS="" KSBA_CONFIG_HOST="$host" AC_SUBST(KSBA_CONFIG_LIBS) AC_SUBST(KSBA_CONFIG_CFLAGS) AC_SUBST(KSBA_CONFIG_API_VERSION) AC_SUBST(KSBA_CONFIG_HOST) # The Makefiles need to know about cross compiling AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling != xno) # Generate extended version information for W32. if test "$have_w32_system" = yes; then changequote(,)dnl BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'` changequote([,])dnl BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec" fi AC_SUBST(BUILD_REVISION) AC_SUBST(BUILD_FILEVERSION) BUILD_REVISION="mym4_revision" AC_SUBST(BUILD_REVISION) AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION", [GIT commit id revision used to build this package]) AC_ARG_ENABLE([build-timestamp], AS_HELP_STRING([--enable-build-timestamp], [set an explicit build timestamp for reproducibility. (default is the current time in ISO-8601 format)]), [if test "$enableval" = "yes"; then BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date` else BUILD_TIMESTAMP="$enableval" fi], [BUILD_TIMESTAMP=""]) AC_SUBST(BUILD_TIMESTAMP) AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP", [The time this package was configured for a build]) build_doc=yes AC_ARG_ENABLE([doc], AS_HELP_STRING([--disable-doc], [do not build the documentation]), build_doc=$enableval, build_doc=yes) AM_CONDITIONAL([BUILD_DOC], [test "x$build_doc" != xno]) AC_CONFIG_FILES([ Makefile m4/Makefile gl/Makefile src/Makefile src/ksba.h src/ksba-config src/ksba.pc src/versioninfo.rc tests/Makefile doc/Makefile ]) AC_OUTPUT if test x"$have_bison" = xno; then AC_MSG_NOTICE([[ *** *** Note: The installed yacc version is not GNU Bison. You need *** to install Bison if you want to change any grammar (.y) file. ***]]) fi echo " Libksba v${VERSION} has been configured as follows: Revision: mym4_revision (mym4_revision_dec) Platform: $host "