Change the various version numbers to the new scheme.
* configure.ac: Rename my_foo variables to mym4_foo variables to make clear that they are processed by m4. (VERSION_NUMBER): New ac_subst. (AH_BOTTOM): Add CRIGHTBLURB macro. (BUILD_REVISION, BUILD_FILEVERSION, BUILD_TIMESTAMP): Change them to work similar to libgpg-error et al. * src/versioninfo.rc.in: Remove use of BUILD_NUMBER and get it in line with gpg-error et al. * src/version.c (cright_blurb): New. (gpgme_check_version_internal): Add magic to display the above information. * tests/t-version.c (main): Add option --verbose.
This commit is contained in:
parent
863c0f2a3e
commit
d8b46c919f
97
configure.ac
97
configure.ac
@ -22,31 +22,32 @@
|
|||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
min_automake_version="1.11"
|
min_automake_version="1.11"
|
||||||
|
|
||||||
# Version number: Remember to change it immediately *after* a release.
|
# To build a release you need to create a tag with the version number
|
||||||
# Make sure to run "svn up" and "./autogen.sh --force"
|
# (git tag -s gpgme-n.m.k) and run "./autogen.sh --force". Please
|
||||||
# before a "make dist". See below for the LT versions.
|
# bump the version number immediately after the release and do another
|
||||||
# Never do a binary build with the same version number
|
# commit and push so that the git magic is able to work. See below
|
||||||
# in another year; this would mess up the build number.
|
# for the LT versions.
|
||||||
#
|
m4_define(mym4_version_major, [1])
|
||||||
# The GIT version is usually the next intended release version with
|
m4_define(mym4_version_minor, [4])
|
||||||
# the string "-gitNNNNNN" appended. The reason for this is that tests
|
m4_define(mym4_version_micro, [0])
|
||||||
# for a specific feature can already be done under the assumption that
|
|
||||||
# the GIT version is the most recent one in a branch. To disable the
|
|
||||||
# GIT version for the real release, set the my_isgit macro to no.
|
|
||||||
m4_define(my_version_major, [1])
|
|
||||||
m4_define(my_version_minor, [4])
|
|
||||||
m4_define(my_version_micro, [0])
|
|
||||||
m4_define(my_isgit, [yes])
|
|
||||||
|
|
||||||
m4_define(my_version, [my_version_major.my_version_minor.my_version_micro])
|
# Below is m4 magic to extract and compute the revision number, the
|
||||||
m4_define([svn_revision], m4_esyscmd([printf "%d" $( (svn info 2>/dev/null \
|
# decimalized short revision number, a beta version string, and a flag
|
||||||
|| echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
|
# indicating a development version (mym4_isgit). Note that the m4
|
||||||
m4_define([git_revision],
|
# processing is done by autoconf and not during the configure run.
|
||||||
|
m4_define(mym4_version,
|
||||||
|
[mym4_version_major.mym4_version_minor.mym4_version_micro])
|
||||||
|
m4_define([mym4_revision],
|
||||||
m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
|
m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
|
||||||
m4_define([my_full_version], [my_version[]m4_if(my_isgit,[yes],
|
m4_define([mym4_revision_dec],
|
||||||
[m4_if(git_revision,[],[-svn[]svn_revision],[-git[]git_revision])])])
|
m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))]))
|
||||||
|
m4_define([mym4_betastring],
|
||||||
|
m4_esyscmd_s([git describe --match 'gpgme-[0-9].*[0-9]' --long|\
|
||||||
|
awk -F- '$3!=0{print"-beta"$3}']))
|
||||||
|
m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
|
||||||
|
m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
|
||||||
|
|
||||||
AC_INIT([gpgme],[my_full_version],[http://bugs.gnupg.org])
|
AC_INIT([gpgme],[mym4_full_version],[http://bugs.gnupg.org])
|
||||||
|
|
||||||
# LT Version numbers, remember to change them just *before* a release.
|
# LT Version numbers, remember to change them just *before* a release.
|
||||||
# (Code changed: REVISION++)
|
# (Code changed: REVISION++)
|
||||||
@ -67,10 +68,7 @@ GPGME_CONFIG_API_VERSION=1
|
|||||||
NEED_LIBASSUAN_API=2
|
NEED_LIBASSUAN_API=2
|
||||||
NEED_LIBASSUAN_VERSION=2.0.2
|
NEED_LIBASSUAN_VERSION=2.0.2
|
||||||
|
|
||||||
m4_define([git_brevis],m4_esyscmd(printf "%u" 0x[]m4_substr(git_revision,0,4)))
|
|
||||||
BUILD_REVISION=m4_if(git_revision,[],[svn_revision],[git_brevis])
|
|
||||||
VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" \
|
|
||||||
my_version_major my_version_minor my_version_micro)
|
|
||||||
PACKAGE=$PACKAGE_NAME
|
PACKAGE=$PACKAGE_NAME
|
||||||
VERSION=$PACKAGE_VERSION
|
VERSION=$PACKAGE_VERSION
|
||||||
|
|
||||||
@ -106,9 +104,11 @@ AC_SUBST(LIBGPGME_LT_REVISION)
|
|||||||
|
|
||||||
AC_SUBST(PACKAGE)
|
AC_SUBST(PACKAGE)
|
||||||
AC_SUBST(VERSION)
|
AC_SUBST(VERSION)
|
||||||
AC_SUBST(VERSION_NUMBER)
|
|
||||||
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
|
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of this package])
|
||||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
|
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version of this package])
|
||||||
|
VERSION_NUMBER=m4_esyscmd(printf "0x%02x%02x%02x" mym4_version_major \
|
||||||
|
mym4_version_minor mym4_version_micro)
|
||||||
|
AC_SUBST(VERSION_NUMBER)
|
||||||
|
|
||||||
# Don't default to build static libs.
|
# Don't default to build static libs.
|
||||||
LT_PREREQ([2.2.6])
|
LT_PREREQ([2.2.6])
|
||||||
@ -232,6 +232,27 @@ AM_CONDITIONAL(BUILD_W32_QT, test "$build_w32_qt" = yes)
|
|||||||
AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
|
AM_CONDITIONAL(HAVE_PTHREAD, test "$have_pthread" = "yes")
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Provide information about the build.
|
||||||
|
#
|
||||||
|
BUILD_REVISION="mym4_revision"
|
||||||
|
AC_SUBST(BUILD_REVISION)
|
||||||
|
AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
|
||||||
|
[GIT commit id revision used to build this package])
|
||||||
|
|
||||||
|
changequote(,)dnl
|
||||||
|
BUILD_FILEVERSION=`echo "$PACKAGE_VERSION"|sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
|
||||||
|
changequote([,])dnl
|
||||||
|
BUILD_FILEVERSION="${BUILD_FILEVERSION}mym4_revision_dec"
|
||||||
|
AC_SUBST(BUILD_FILEVERSION)
|
||||||
|
|
||||||
|
BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
|
||||||
|
AC_SUBST(BUILD_TIMESTAMP)
|
||||||
|
AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
|
||||||
|
[The time this package was configured for a build])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
AC_CHECK_HEADERS_ONCE([locale.h sys/select.h sys/uio.h argp.h
|
AC_CHECK_HEADERS_ONCE([locale.h sys/select.h sys/uio.h argp.h
|
||||||
@ -868,23 +889,6 @@ fi
|
|||||||
AM_CONDITIONAL(HAVE_UISERVER, test "$uiserver" != "no")
|
AM_CONDITIONAL(HAVE_UISERVER, test "$uiserver" != "no")
|
||||||
|
|
||||||
|
|
||||||
# Generate values for the DLL version info
|
|
||||||
|
|
||||||
dnl Windows uses an internal build number. We use the last day of the
|
|
||||||
dnl year concatenated with the hour for it. WARNING: You should not
|
|
||||||
dnl do a build with the same version number in another year.
|
|
||||||
if test "$have_w32_system" = yes; then
|
|
||||||
BUILD_TIMESTAMP=`date --iso-8601=minutes`
|
|
||||||
BUILD_NUMBER="$(date -u '+%j%H' | sed 's/^0*\(.*\)/\1/')"
|
|
||||||
changequote(,)dnl
|
|
||||||
BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
|
|
||||||
changequote([,])dnl
|
|
||||||
BUILD_FILEVERSION="${BUILD_FILEVERSION}${BUILD_NUMBER}"
|
|
||||||
fi
|
|
||||||
AC_SUBST(BUILD_NUMBER)
|
|
||||||
AC_SUBST(BUILD_TIMESTAMP)
|
|
||||||
AC_SUBST(BUILD_FILEVERSION)
|
|
||||||
|
|
||||||
# Add a few constants to help porting to W32
|
# Add a few constants to help porting to W32
|
||||||
AH_VERBATIM([SEPCONSTANTS],
|
AH_VERBATIM([SEPCONSTANTS],
|
||||||
[
|
[
|
||||||
@ -906,6 +910,9 @@ AH_BOTTOM([
|
|||||||
|
|
||||||
/* Under WindowsCE we need gpg-error's strerror macro. */
|
/* Under WindowsCE we need gpg-error's strerror macro. */
|
||||||
#define GPG_ERR_ENABLE_ERRNO_MACROS 1
|
#define GPG_ERR_ENABLE_ERRNO_MACROS 1
|
||||||
|
|
||||||
|
#define CRIGHTBLURB "Copyright (C) 2000 Werner Koch\n" \
|
||||||
|
"Copyright (C) 2001--2013 g10 Code GmbH\n"
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
@ -977,7 +984,7 @@ AC_OUTPUT
|
|||||||
echo "
|
echo "
|
||||||
GPGME v${VERSION} has been configured as follows:
|
GPGME v${VERSION} has been configured as follows:
|
||||||
|
|
||||||
Revision: git_revision (git_brevis)
|
Revision: mym4_revision (mym4_revision_dec)
|
||||||
Platform: $host
|
Platform: $host
|
||||||
|
|
||||||
GnuPG path: $GPG
|
GnuPG path: $GPG
|
||||||
|
@ -83,6 +83,21 @@ do_subsystem_inits (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Put vesion information into the binary. */
|
||||||
|
static const char *
|
||||||
|
cright_blurb (void)
|
||||||
|
{
|
||||||
|
static const char blurb[] =
|
||||||
|
"\n\n"
|
||||||
|
"This is GPGME " PACKAGE_VERSION " - The GnuPG Made Easy library\n"
|
||||||
|
CRIGHTBLURB
|
||||||
|
"\n"
|
||||||
|
"(" BUILD_REVISION " " BUILD_TIMESTAMP ")\n"
|
||||||
|
"\n\n";
|
||||||
|
return blurb;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Read the next number in the version string STR and return it in
|
/* Read the next number in the version string STR and return it in
|
||||||
*NUMBER. Return a pointer to the tail of STR after parsing, or
|
*NUMBER. Return a pointer to the tail of STR after parsing, or
|
||||||
*NULL if the version string was invalid. */
|
*NULL if the version string was invalid. */
|
||||||
@ -208,6 +223,8 @@ gpgme_check_version_internal (const char *req_version,
|
|||||||
{
|
{
|
||||||
const char *result;
|
const char *result;
|
||||||
|
|
||||||
|
if (req_version && req_version[0] == 1 && req_version[1] == 1)
|
||||||
|
return cright_blurb ();
|
||||||
result = gpgme_check_version (req_version);
|
result = gpgme_check_version (req_version);
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
return result;
|
return result;
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION @LIBGPGME_LT_CURRENT@,@LIBGPGME_LT_AGE@,@LIBGPGME_LT_REVISION@,@BUILD_NUMBER@
|
FILEVERSION @BUILD_FILEVERSION@
|
||||||
PRODUCTVERSION @BUILD_FILEVERSION@
|
PRODUCTVERSION @BUILD_FILEVERSION@
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
@ -37,9 +37,9 @@ BEGIN
|
|||||||
VALUE "Comments", "Provided under the terms of the GNU Lesser General Public License.\0"
|
VALUE "Comments", "Provided under the terms of the GNU Lesser General Public License.\0"
|
||||||
VALUE "CompanyName", "g10 Code GmbH\0"
|
VALUE "CompanyName", "g10 Code GmbH\0"
|
||||||
VALUE "FileDescription", "GPGME - GnuPG Made Easy\0"
|
VALUE "FileDescription", "GPGME - GnuPG Made Easy\0"
|
||||||
VALUE "FileVersion", "@LIBGPGME_LT_CURRENT@.@LIBGPGME_LT_AGE@.@LIBGPGME_LT_REVISION@.@BUILD_NUMBER@\0"
|
VALUE "FileVersion", "@LIBGPGME_LT_CURRENT@.@LIBGPGME_LT_AGE@.@LIBGPGME_LT_REVISION@.@BUILD_REVISION@\0"
|
||||||
VALUE "InternalName", "gpgme\0"
|
VALUE "InternalName", "gpgme\0"
|
||||||
VALUE "LegalCopyright", "Copyright © 2005 g10 Code GmbH\0"
|
VALUE "LegalCopyright", "Copyright © 2001-2013 g10 Code GmbH\0"
|
||||||
VALUE "LegalTrademarks", "\0"
|
VALUE "LegalTrademarks", "\0"
|
||||||
VALUE "OriginalFilename", "gpgme.dll\0"
|
VALUE "OriginalFilename", "gpgme.dll\0"
|
||||||
VALUE "PrivateBuild", "\0"
|
VALUE "PrivateBuild", "\0"
|
||||||
|
@ -22,24 +22,71 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <gpgme.h>
|
#include <gpgme.h>
|
||||||
|
|
||||||
|
static int verbose;
|
||||||
|
static int debug;
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
const char *null_result;
|
const char *null_result;
|
||||||
const char *current_result;
|
const char *current_result;
|
||||||
const char *future_result;
|
const char *future_result;
|
||||||
|
|
||||||
|
int last_argc = -1;
|
||||||
|
|
||||||
|
if (argc)
|
||||||
|
{
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
|
while (argc && last_argc != argc )
|
||||||
|
{
|
||||||
|
last_argc = argc;
|
||||||
|
if (!strcmp (*argv, "--help"))
|
||||||
|
{
|
||||||
|
puts ("usage: ./t-version [options]\n"
|
||||||
|
"\n"
|
||||||
|
"Options:\n"
|
||||||
|
" --verbose Show what is going on\n"
|
||||||
|
);
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
if (!strcmp (*argv, "--verbose"))
|
||||||
|
{
|
||||||
|
verbose = 1;
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
|
else if (!strcmp (*argv, "--debug"))
|
||||||
|
{
|
||||||
|
verbose = debug = 1;
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
null_result = gpgme_check_version (NULL);
|
null_result = gpgme_check_version (NULL);
|
||||||
current_result = gpgme_check_version (VERSION);
|
current_result = gpgme_check_version (VERSION);
|
||||||
future_result = gpgme_check_version (VERSION ".1");
|
future_result = gpgme_check_version (VERSION ".1");
|
||||||
|
|
||||||
return !(null_result
|
ret = !(null_result
|
||||||
&& ! strcmp (null_result, VERSION)
|
&& ! strcmp (null_result, VERSION)
|
||||||
&& current_result
|
&& current_result
|
||||||
&& ! strcmp (current_result, VERSION)
|
&& ! strcmp (current_result, VERSION)
|
||||||
&& ! future_result);
|
&& ! future_result);
|
||||||
|
|
||||||
|
if (verbose || ret)
|
||||||
|
{
|
||||||
|
printf ("Version from header: %s (0x%06x)\n",
|
||||||
|
GPGME_VERSION, GPGME_VERSION_NUMBER);
|
||||||
|
printf ("Version from binary: %s\n", gpgme_check_version (NULL));
|
||||||
|
printf ("Copyright blurb ...:%s\n", gpgme_check_version ("\x01\x01"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user