[getdns-users] [PATCH] remove GETDNS_COMPILATION_COMMENT

Hollenbeck, Scott shollenbeck at verisign.com
Wed Jul 8 17:58:56 UTC 2015


I'm currently using GETDNS_COMPILATION_COMMENT in the PHP language bindings to display the getdns library version used to build the PHP extension. If GETDNS_COMPILATION_COMMENT goes away is there another way of retrieving the getdns library version information at compilation time?

Scott

> -----Original Message-----
> From: Users [mailto:users-bounces at getdnsapi.net] On Behalf Of Daniel
> Kahn Gillmor
> Sent: Wednesday, July 08, 2015 1:52 PM
> To: users at getdnsapi.net
> Subject: [getdns-users] [PATCH] remove GETDNS_COMPILATION_COMMENT
> 
> It's not clear that GETDNS_COMPILATION_COMMENT is useful; as a header
> (a #define), it's likely to get embedded in applications during their
> build time.  It is not embedded in the library itself at all, so
> removal of it doesn't change the ABI (there is a slight change in the
> API because the #define is no longer visible in getdns.h, but i think
> this is OK, see below).
> 
> When a built application that uses GETDNS_COMPILATION_COMMENT is
> executed, linked against a different version of the library it was
> built from, there is no way to detect that these values differ.  How
> is it useful at runtime?
> 
> The #define also introduces arbitrariness in the getdns build process
> when --with-current-date isn't supplied, because it embeds the current
> timestamp in getdns.h.  This makes it more difficult to build a
> byte-for-byte reproducible binary package.
> 
> http://codesearch.debian.net/results/GETDNS_COMPILATION_COMMENT
> indicates that there are no projects in debian actually using the
> defined variable (there may be non-debian projects that use it, though
> it's not clear how it is expected to be used at runtime at all).
> 
> Removing this #define removes a source of confusion for users of the
> project, and doesn't change the ABI.
> ---
>  ChangeLog              |  1 +
>  configure              | 15 ---------------
>  configure.ac           |  9 ---------
>  spec/index.html        |  5 -----
>  src/getdns/getdns.h.in |  2 --
>  5 files changed, 1 insertion(+), 31 deletions(-)
> 
> diff --git a/ChangeLog b/ChangeLog
> index a70879d..438c1b5 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -5,6 +5,7 @@
>      GETDNS_TRANSPORT_STARTTLS.
>    * Added new context setting for idle_timeout
>    * CSYNC RR type
> +  * remove GETDNS_COMPILATION_COMMENT, CURRENT_DATE, and --with-
> current-date
> 
>  * 2015-05-21: Version 0.2.0
>    * Fix libversion numbering:  Thanks Daniel Kahn Gillmor
> diff --git a/configure b/configure
> index c86c59f..9e01aab 100755
> --- a/configure
> +++ b/configure
> @@ -706,7 +706,6 @@ LDFLAGS
>  CFLAGS
>  CC
>  GETDNS_LIBVERSION
> -GETDNS_COMPILATION_COMMENT
>  RELEASE_CANDIDATE
>  target_alias
>  host_alias
> @@ -749,7 +748,6 @@ SHELL'
>  ac_subst_files=''
>  ac_user_opts='
>  enable_option_checking
> -with_current_date
>  enable_shared
>  enable_static
>  with_pic
> @@ -1420,8 +1418,6 @@ Optional Features:
>  Optional Packages:
>    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
>    --without-PACKAGE       do not use PACKAGE (same as --with-
> PACKAGE=no)
> -  --with-current-date
> -    current date of the compilation, set to fixed date for
> reproducible builds [default=system]
> 
>    --with-pic[=PKGS]       try to use only PIC/non-PIC objects
> [default=use
>                            both]
> @@ -2371,17 +2367,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
> 
> 
> 
> -# Set current date from system if not set
> -
> -# Check whether --with-current-date was given.
> -if test "${with_current_date+set}" = set; then :
> -  withval=$with_current_date; CURRENT_DATE="$with_current_date"
> -else
> -  CURRENT_DATE="`date -u +%Y-%m-%dT%H:%M:%SZ`"
> -fi
> -
> -GETDNS_COMPILATION_COMMENT="getdns 0.2.0 configured on $CURRENT_DATE
> for the January 2015 version of the API"
> -
>  # Library version
>  # ---------------
>  # current:revision:age
> diff --git a/configure.ac b/configure.ac
> index 48bb399..ef060ea 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -34,14 +34,6 @@ AC_PREREQ([2.56])
>  AC_INIT([getdns], [0.2.0], [stub-resolver at verisignlabs.com], [],
> [http://getdnsapi.net])
>  AC_SUBST(RELEASE_CANDIDATE, [])
> 
> -# Set current date from system if not set
> -AC_ARG_WITH([current-date],
> -  [AS_HELP_STRING([--with-current-date]
> -    [current date of the compilation, set to fixed date for
> reproducible builds @<:@default=system@:>@])],
> -  [CURRENT_DATE="$with_current_date"],
> -  [CURRENT_DATE="`date -u +%Y-%m-%dT%H:%M:%SZ`"])
> -GETDNS_COMPILATION_COMMENT="AC_PACKAGE_STRING configured on
> $CURRENT_DATE for the January 2015 version of the API"
> -
>  # Library version
>  # ---------------
>  # current:revision:age
> @@ -62,7 +54,6 @@ GETDNS_COMPILATION_COMMENT="AC_PACKAGE_STRING
> configured on $CURRENT_DATE for th
>  #
>  GETDNS_LIBVERSION=2:2:1
> 
> -AC_SUBST(GETDNS_COMPILATION_COMMENT)
>  AC_SUBST(GETDNS_LIBVERSION)
>  AC_CONFIG_SRCDIR([src/getdns/getdns.h.in])
>  # AM_INIT_AUTOMAKE
> diff --git a/spec/index.html b/spec/index.html
> index a98e37c..a6dd53a 100644
> --- a/spec/index.html
> +++ b/spec/index.html
> @@ -2521,11 +2521,6 @@ of this API must support synchronous calls with
> <code>getdns_general_sync()</cod
>  this API is "getdns April 2013". Each implementation is free to set
> the implementation string as it
>  feels fit.</p>
> 
> -<p>The API's .h file contains a macro called
> <code>GETDNS_COMPILATION_COMMENT</code>. This can be useful
> -to an application which will use the API because it can check the
> string without calling any
> -functions. Each time the API implementation is compiled, this string
> should be updated with unique
> -information about the implementation build.</p>
> -
>  <p>The implementation of both the async and sync <code>getdns</code>
> functions will
>  copy all the values of the parameters into local memory, in case the
> application changes or
>  deallocates them.</p>
> diff --git a/src/getdns/getdns.h.in b/src/getdns/getdns.h.in
> index 3f133a4..133d9cb 100644
> --- a/src/getdns/getdns.h.in
> +++ b/src/getdns/getdns.h.in
> @@ -44,8 +44,6 @@
>  extern "C" {
>  #endif
> 
> -#define GETDNS_COMPILATION_COMMENT "@GETDNS_COMPILATION_COMMENT@"
> -
>  /* Return values */
>  typedef enum getdns_return_t {
>  	GETDNS_RETURN_GOOD = 0,
> --
> 2.1.4
> 
> _______________________________________________
> Users mailing list
> Users at getdnsapi.net
> http://getdnsapi.net/mailman/listinfo/users




More information about the Users mailing list