[getdns-users] [PATCH] remove GETDNS_COMPILATION_COMMENT

Neel Goyal ngoyal at gmail.com
Thu Jul 9 11:52:53 UTC 2015


I think this approach also makes sense.  Never a bad thing to follow
precedence.

On Thu, Jul 9, 2015 at 4:21 AM Willem Toorop <willem at nlnetlabs.nl> wrote:

> Thanks Robert,
>
> I think I prefer this.  If everybody here agrees I can put version
> functions and defines in getdns_extra.h.  We can always move them to
> getdns.h if the API list likes it this way too.
>
> -- Willem
>
>
> Op 08-07-15 om 21:57 schreef Robert Edmonds:
> > Daniel Kahn Gillmor wrote:
> >> We could also add a version info function without breaking backward API
> >> compatibility, if the concern is that the cost of making a context and
> >> parsing the response is too expensive.
> >
> > I recently added version info capabilities to a C library that I
> > maintain.  I based it on how libevent2 does it, which is to export
> > library functions that return the version number as a string or encoded
> > into a 32-bit integer.  libevent2 also exposes the same values as
> > library headers.
> >
> > [...]
> >     /**
> >        Get the Libevent version.
> >
> >        Note that this will give you the version of the library that
> you're
> >        currently linked against, not the version of the headers that
> you've
> >        compiled against.
> >
> >        @return a string containing the version number of Libevent
> >     */
> >     const char *event_get_version(void);
> >
> >     /**
> >        Return a numeric representation of Libevent's version.
> >
> >        Note that this will give you the version of the library that
> you're
> >        currently linked against, not the version of the headers you've
> used to
> >        compile.
> >
> >        The format uses one byte each for the major, minor, and
> patchlevel parts of
> >        the version number.  The low-order byte is unused.  For example,
> version
> >        2.0.1-alpha has a numeric representation of 0x02000100
> >     */
> >     ev_uint32_t event_get_version_number(void);
> >
> >     /** As event_get_version, but gives the version of Libevent's
> headers. */
> >     #define LIBEVENT_VERSION _EVENT_VERSION
> >     /** As event_get_version_number, but gives the version number of
> Libevent's
> >      * headers. */
> >     #define LIBEVENT_VERSION_NUMBER _EVENT_NUMERIC_VERSION
> > [...]
> >     /* Version number of package */
> >     #define _EVENT_VERSION "2.0.21-stable"
> > [...]
> >     /* Numeric representation of the version */
> >     #define _EVENT_NUMERIC_VERSION 0x02001500
> > [...]
> >
> > So you get the version number in two different forms (string/numeric),
> > and for both the headers that were used at compile time as well as the
> > runtime library.
> >
> > I'm not saying it's a good idea to rely on these for anything, but this
> > seems to cover the use cases commonly requested by library users, at
> > least IME.
> >
> > +1 to reproducible builds.
> >
>
> _______________________________________________
> Users mailing list
> Users at getdnsapi.net
> http://getdnsapi.net/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.getdnsapi.net/pipermail/users/attachments/20150709/6fbce020/attachment.htm>


More information about the Users mailing list