diff options
-rw-r--r-- | checks/check.cpp | 3 | ||||
-rwxr-xr-x | configure.py | 14 | ||||
-rw-r--r-- | doc/license.txt | 2 | ||||
-rw-r--r-- | src/build-data/buildh.in | 3 | ||||
-rw-r--r-- | src/utils/version.cpp | 20 | ||||
-rw-r--r-- | src/utils/version.h | 15 |
6 files changed, 37 insertions, 20 deletions
diff --git a/checks/check.cpp b/checks/check.cpp index 601e41227..e32f57ed7 100644 --- a/checks/check.cpp +++ b/checks/check.cpp @@ -127,8 +127,7 @@ int main(int argc, char* argv[]) if(opts.is_set("help") || argc <= 1) { std::cerr << "Test driver for " - << Botan::version_string() - << " (released " << Botan::version_datestamp() << ")\n" + << Botan::version_string() << "\n" << "Options:\n" << " --test || --validate: Run tests (do this at least once)\n" << " --benchmark: Benchmark everything\n" diff --git a/configure.py b/configure.py index b5422fdac..69381ef05 100755 --- a/configure.py +++ b/configure.py @@ -47,7 +47,7 @@ class BuildConfigurationInformation(object): version_so_patch = 13 version_suffix = '-dev' - version_datestamp = None + version_datestamp = 0 version_string = '%d.%d.%d%s' % ( version_major, version_minor, version_patch, version_suffix) @@ -59,10 +59,6 @@ class BuildConfigurationInformation(object): """ def __init__(self, options, modules): - # If not preset, use today - if self.version_datestamp is None: - self.version_datestamp = time.strftime("%Y%m%d", time.gmtime()) - self.build_dir = os.path.join(options.with_build_dir, 'build') self.checkobj_dir = os.path.join(self.build_dir, 'checks') @@ -229,6 +225,10 @@ def process_command_line(args): action='store_false', default=True, help=SUPPRESS_HELP) + build_group.add_option('--distribution-info', metavar='STRING', + help='set distribution specific versioning', + default='unspecified') + wrapper_group = OptionGroup(parser, 'Wrapper options') wrapper_group.add_option('--with-boost-python', dest='boost_python', @@ -243,7 +243,7 @@ def process_command_line(args): wrapper_group.add_option('--use-python-version', dest='python_version', metavar='N.M', default='.'.join(map(str, sys.version_info[0:2])), - help='specify version of Python to build against (eg %default)') + help='specify Python to build against (eg %default)') mods_group = OptionGroup(parser, 'Module selection') @@ -943,6 +943,8 @@ def create_template_vars(build_config, options, modules, cc, arch, osinfo): 'version_patch': build_config.version_patch, 'version': build_config.version_string, + 'distribution_info': options.distribution_info, + 'version_datestamp': build_config.version_datestamp, 'so_version': build_config.soversion_string, diff --git a/doc/license.txt b/doc/license.txt index 6d9143ee1..f1b261eab 100644 --- a/doc/license.txt +++ b/doc/license.txt @@ -1,6 +1,6 @@ Botan (http://botan.randombit.net/) is distributed under these terms: -Copyright (C) 1999-2010 Jack Lloyd +Copyright (C) 1999-2011 Jack Lloyd 2001 Peter J Jones 2004-2007 Justin Karneges 2004 Vaclav Ovsik diff --git a/src/build-data/buildh.in b/src/build-data/buildh.in index fb5e5fabc..2682d2ad9 100644 --- a/src/build-data/buildh.in +++ b/src/build-data/buildh.in @@ -15,9 +15,10 @@ #define BOTAN_VERSION_MAJOR %{version_major} #define BOTAN_VERSION_MINOR %{version_minor} #define BOTAN_VERSION_PATCH %{version_patch} - #define BOTAN_VERSION_DATESTAMP %{version_datestamp} +#define BOTAN_DISTRIBUTION_INFO "%{distribution_info}" + #ifndef BOTAN_DLL #define BOTAN_DLL %{dll_import_flags} #endif diff --git a/src/utils/version.cpp b/src/utils/version.cpp index 22827cbe5..cf3205d19 100644 --- a/src/utils/version.cpp +++ b/src/utils/version.cpp @@ -1,12 +1,13 @@ /* * Version Information -* (C) 1999-2007 Jack Lloyd +* (C) 1999-2011 Jack Lloyd * * Distributed under the terms of the Botan license */ #include <botan/version.h> #include <botan/parsing.h> +#include <sstream> namespace Botan { @@ -21,9 +22,20 @@ namespace Botan { */ std::string version_string() { - return to_string(version_major()) + "." + - to_string(version_minor()) + "." + - to_string(version_patch()); + std::ostringstream out; + + out << "Botan " << version_major() << "." + << version_minor() << "." + << version_patch() << " ("; + + if(BOTAN_VERSION_DATESTAMP == 0) + out << "unreleased version"; + else + out << "released " << version_datestamp(); + + out << ", distribution " << BOTAN_DISTRIBUTION_INFO << ")"; + + return out.str(); } u32bit version_datestamp() { return BOTAN_VERSION_DATESTAMP; } diff --git a/src/utils/version.h b/src/utils/version.h index 13d0ac8bb..219c261a5 100644 --- a/src/utils/version.h +++ b/src/utils/version.h @@ -1,6 +1,6 @@ /* * Version Information -* (C) 1999-2007 Jack Lloyd +* (C) 1999-2011 Jack Lloyd * * Distributed under the terms of the Botan license */ @@ -18,16 +18,19 @@ namespace Botan { */ /** -* Get the version string identifying the version of Botan. +* Get a human-readable string identifying the version of Botan. +* No particular format should be assumed. * @return version string */ BOTAN_DLL std::string version_string(); /** -* Return the date this version of botan was released, in an -* integer of the form YYYYMMDD. For instance a version released -* on May 21, 2013 would return the integer 20130521 -* @return release date +* Return the date this version of botan was released, in an integer of +* the form YYYYMMDD. For instance a version released on May 21, 2013 +* would return the integer 20130521. If the currently running version +* is not an official release, this function will return 0 instead. +* +* @return release date, or zero if unreleased */ BOTAN_DLL u32bit version_datestamp(); |