Subversion
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
svn_version.h File Reference

Version information. More...

#include <apr_general.h>
#include <apr_tables.h>
#include "svn_types.h"

Go to the source code of this file.

Data Structures

struct  svn_version_t
 Version information. More...
 
struct  svn_version_checklist_t
 An entry in the compatibility checklist. More...
 
struct  svn_version_ext_linked_lib_t
 Dependent library information. More...
 
struct  svn_version_ext_loaded_lib_t
 Loaded shared library information. More...
 

Macros

#define SVN_VER_MAJOR   1
 Major version number.
 
#define SVN_VER_MINOR   10
 Minor version number.
 
#define SVN_VER_PATCH   0
 Patch number.
 
#define SVN_VER_MICRO   SVN_VER_PATCH
 
#define SVN_VER_LIBRARY   SVN_VER_MAJOR
 
#define SVN_VER_TAG   " (under development)"
 Version tag: a string describing the version.
 
#define SVN_VER_NUMTAG   "-dev"
 Number tag: a string describing the version.
 
#define SVN_VER_REVISION   0
 Revision number: The repository revision number of this release.
 
#define SVN_VER_NUM
 Version number.
 
#define SVN_VER_NUMBER   SVN_VER_NUM SVN_VER_NUMTAG
 Version number with tag (contains no whitespace)
 
#define SVN_VERSION   SVN_VER_NUMBER SVN_VER_TAG
 Complete version string.
 
#define SVN_VERSION_DEFINE(name)
 Define a static svn_version_t object.
 
#define SVN_VERSION_BODY
 Generate the implementation of a version query function.
 

Typedefs

typedef struct
svn_version_checklist_t 
svn_version_checklist_t
 An entry in the compatibility checklist.
 
typedef const svn_version_t *(* svn_version_func_t )(void)
 Type of function returning library version.
 
typedef struct
svn_version_extended_t 
svn_version_extended_t
 Extended version information, including info about the running system.
 
typedef struct
svn_version_ext_linked_lib_t 
svn_version_ext_linked_lib_t
 Dependent library information.
 
typedef struct
svn_version_ext_loaded_lib_t 
svn_version_ext_loaded_lib_t
 Loaded shared library information.
 

Functions

svn_boolean_t svn_ver_compatible (const svn_version_t *my_version, const svn_version_t *lib_version)
 Check library version compatibility.
 
svn_boolean_t svn_ver_equal (const svn_version_t *my_version, const svn_version_t *lib_version)
 Check if my_version and lib_version encode the same version number.
 
svn_error_tsvn_ver_check_list2 (const svn_version_t *my_version, const svn_version_checklist_t *checklist, svn_boolean_t(*comparator)(const svn_version_t *, const svn_version_t *))
 Perform a series of version compatibility checks.
 
svn_error_tsvn_ver_check_list (const svn_version_t *my_version, const svn_version_checklist_t *checklist)
 Similar to svn_ver_check_list2(), with comparator set to svn_ver_compatible.
 
const svn_version_tsvn_subr_version (void)
 Get libsvn_subr version information.
 
const svn_version_extended_tsvn_version_extended (svn_boolean_t verbose, apr_pool_t *pool)
 Return version information for the running program.
 
const char * svn_version_ext_build_date (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const char * svn_version_ext_build_time (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const char * svn_version_ext_build_host (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const char * svn_version_ext_copyright (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const char * svn_version_ext_runtime_host (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const char * svn_version_ext_runtime_osname (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const apr_array_header_t * svn_version_ext_linked_libs (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 
const apr_array_header_t * svn_version_ext_loaded_libs (const svn_version_extended_t *ext_info)
 Accessor for svn_version_extended_t.
 

Detailed Description

Version information.

Definition in file svn_version.h.

Macro Definition Documentation

#define SVN_VER_LIBRARY   SVN_VER_MAJOR
Deprecated:
Provided for backward compatibility with the 1.0 API.

Definition at line 80 of file svn_version.h.

#define SVN_VER_MAJOR   1

Major version number.

Modify when incompatible changes are made to published interfaces.

Definition at line 57 of file svn_version.h.

#define SVN_VER_MICRO   SVN_VER_PATCH
Deprecated:
Provided for backward compatibility with the 1.0 API.

Definition at line 77 of file svn_version.h.

#define SVN_VER_MINOR   10

Minor version number.

Modify when new functionality is added or new interfaces are defined, but all changes are backward compatible.

Definition at line 64 of file svn_version.h.

#define SVN_VER_NUM
Value:
APR_STRINGIFY(SVN_VER_MAJOR) \
"." APR_STRINGIFY(SVN_VER_MINOR) \
"." APR_STRINGIFY(SVN_VER_PATCH)

Version number.

Definition at line 126 of file svn_version.h.

#define SVN_VER_NUMTAG   "-dev"

Number tag: a string describing the version.

This tag is used to generate a version number string to identify the client and server in HTTP requests, for example. It must not contain any spaces. This value remains "-dev" in the repository.

When rolling a tarball, we automatically replace this text with "" for final releases; in prereleases, it becomes "-alpha1, "-beta1", etc., as appropriate.

Always change this at the same time as SVN_VER_TAG.

Definition at line 111 of file svn_version.h.

#define SVN_VER_PATCH   0

Patch number.

Modify for every released patch.

Since
New in 1.1.

Definition at line 73 of file svn_version.h.

#define SVN_VER_REVISION   0

Revision number: The repository revision number of this release.

This constant is used to generate the build number part of the Windows file version. Its value remains 0 in the repository except in release tags where it is the revision from which the tag was created.

Definition at line 120 of file svn_version.h.

#define SVN_VER_TAG   " (under development)"

Version tag: a string describing the version.

This tag remains " (under development)" in the repository so that we can always see from "svn &ndash;version" that the software has been built from the repository rather than a "blessed" distribution.

When rolling a tarball, we automatically replace this text with " (r1234)" (where 1234 is the last revision on the branch prior to the release) for final releases; in prereleases, it becomes " (Alpha 1)", " (Beta 1)", etc., as appropriate.

Always change this at the same time as SVN_VER_NUMTAG.

Definition at line 96 of file svn_version.h.

#define SVN_VERSION_BODY
Value:
static struct versioninfo_t \
{ \
const char *const str; \
const svn_version_t num; \
} const versioninfo = \
{ \
"@(#)" SVN_VERSION, \
{ \
SVN_VER_MAJOR, \
SVN_VER_MINOR, \
SVN_VER_PATCH, \
SVN_VER_NUMTAG \
} \
}; \
return &versioninfo.num

Generate the implementation of a version query function.

Since
New in 1.1.
Since 1.9, embeds a string into the compiled object file that can be queried with the 'what' utility.

Definition at line 181 of file svn_version.h.

#define SVN_VERSION_DEFINE (   name)
Value:
static const svn_version_t name = \
{ \
SVN_VER_MAJOR, \
SVN_VER_MINOR, \
SVN_VER_PATCH, \
SVN_VER_NUMTAG \
} \

Define a static svn_version_t object.

Since
New in 1.1.

Definition at line 165 of file svn_version.h.

Typedef Documentation

An entry in the compatibility checklist.

See Also
svn_ver_check_list()
Since
New in 1.1.

Dependent library information.

Describes the name and versions of known dependencies used by libsvn_subr.

Since
New in 1.8.

Loaded shared library information.

Describes the name and, where available, version of the shared libraries loaded by the running program.

Since
New in 1.8.

Extended version information, including info about the running system.

Since
New in 1.8.

Definition at line 301 of file svn_version.h.

typedef const svn_version_t*(* svn_version_func_t)(void)

Type of function returning library version.

Since
New in 1.6.

Definition at line 283 of file svn_version.h.

Function Documentation

const svn_version_t* svn_subr_version ( void  )

Get libsvn_subr version information.

Since
New in 1.1.
svn_error_t* svn_ver_check_list ( const svn_version_t my_version,
const svn_version_checklist_t checklist 
)

Similar to svn_ver_check_list2(), with comparator set to svn_ver_compatible.

Deprecated:
Provided for backward compatibility with 1.8 API.
svn_error_t* svn_ver_check_list2 ( const svn_version_t my_version,
const svn_version_checklist_t checklist,
svn_boolean_t(*)(const svn_version_t *, const svn_version_t *)  comparator 
)

Perform a series of version compatibility checks.

Checks if my_version is compatible with each entry in checklist. checklist must end with an entry whose label is NULL.

my_version is considered to be compatible with a version in checklist if comparator returns TRUE when called with my_version as the first parammeter and the checklist version as the second parameter.

See Also
svn_ver_compatible(), svn_ver_equal()
Note
Subversion's own code invariably uses svn_ver_equal() as comparator, since the cmdline tools sometimes use non-public APIs (such as utility functions that haven't been promoted to svn_cmdline.h). Third-party code SHOULD use svn_ver_compatible() as comparator.
Since
New in 1.9.
svn_boolean_t svn_ver_compatible ( const svn_version_t my_version,
const svn_version_t lib_version 
)

Check library version compatibility.

Return TRUE if the client's version, given in my_version, is compatible with the library version, provided in lib_version.

This function checks for version compatibility as per our guarantees, but requires an exact match when linking to an unreleased library. A development client is always compatible with a previous released library.

Note
Implements the svn_ver_check_list2.comparator interface.
Since
New in 1.1.
svn_boolean_t svn_ver_equal ( const svn_version_t my_version,
const svn_version_t lib_version 
)

Check if my_version and lib_version encode the same version number.

Note
Implements the svn_ver_check_list2.comparator interface.
Since
New in 1.2.
const char* svn_version_ext_build_date ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
The date when the libsvn_subr library was compiled, in the format defined by the C standard macro DATE.
Since
New in 1.8.
const char* svn_version_ext_build_host ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
The canonical host triplet (arch-vendor-osname) of the system where libsvn_subr was compiled.
Note
On Unix-like systems (includng Mac OS X), this string is the same as the output of the config.guess script.
Since
New in 1.8.
const char* svn_version_ext_build_time ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
The time when the libsvn_subr library was compiled, in the format defined by the C standard macro TIME.
Since
New in 1.8.
const char* svn_version_ext_copyright ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
The localized copyright notice.
Since
New in 1.8.
const apr_array_header_t* svn_version_ext_linked_libs ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
Array of svn_version_ext_linked_lib_t describing dependent libraries. The returned value may be NULL.
Since
New in 1.8.
const apr_array_header_t* svn_version_ext_loaded_libs ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
Array of svn_version_ext_loaded_lib_t describing loaded shared libraries. The returned value may be NULL.
Note
On Mac OS X, the loaded frameworks, private frameworks and system libraries will not be listed.
Since
New in 1.8.
const char* svn_version_ext_runtime_host ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
The canonical host triplet (arch-vendor-osname) of the system where the current process is running.
Note
This string may not be the same as the output of config.guess on the same system.
Since
New in 1.8.
const char* svn_version_ext_runtime_osname ( const svn_version_extended_t ext_info)

Accessor for svn_version_extended_t.

Returns
The "commercial" release name of the running operating system, if available. Not to be confused with, e.g., the output of "uname -v" or "uname -r". The returned value may be NULL.
Since
New in 1.8.
const svn_version_extended_t* svn_version_extended ( svn_boolean_t  verbose,
apr_pool_t *  pool 
)

Return version information for the running program.

If verbose is TRUE, collect extra information that may be expensive to retrieve (for example, the OS release name, list of shared libraries, etc.). Use pool for all allocations.

Note
This function may allocate significant auxiliary resources (memory and file descriptors) in pool. It is recommended to copy the returned data to suitable longer-lived memory and clear pool after calling this function.
Since
New in 1.8.