# Version Information

Tracker provides version information, primarily useful in configure checks for builds that have a configure script. Applications will not typically use the features described here.

## Functions

### tracker_check_version

    const gchar*
    tracker_check_version (guint required_major,
                           guint required_minor,
                           guint required_micro)

Checks that the Tracker library in use is compatible with the given version. Generally you would pass in the constants TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION, TRACKER_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of Tracker the application or module was compiled against.

Compatibility is defined by two things: first the version of the running library is newer than the version required_major.required_minor.@required_micro. Second the running library must be binary compatible with the version required_major.required_minor.@required_micro (same major version.)

Parameters:

`required_major` –

the required major version.

`required_minor` –

the required minor version.

`required_micro` –

the required micro version.

Returns –

NULL if the Tracker library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by Tracker and must not be modified or freed.

### Tracker.prototype.check_version

    function Tracker.prototype.check_version(required_major: Number, required_minor: Number, required_micro: Number): {
        // javascript wrapper for 'tracker_check_version'
    }

Checks that the Tracker library in use is compatible with the given version. Generally you would pass in the constants TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION, TRACKER_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of Tracker the application or module was compiled against.

Compatibility is defined by two things: first the version of the running library is newer than the version required_major.required_minor.@required_micro. Second the running library must be binary compatible with the version required_major.required_minor.@required_micro (same major version.)

Parameters:

`required_major` (Number) –

the required major version.

`required_minor` (Number) –

the required minor version.

`required_micro` (Number) –

the required micro version.

Returns (String) –

NULL if the Tracker library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by Tracker and must not be modified or freed.

### Tracker.check_version

    def Tracker.check_version (required_major, required_minor, required_micro):
        #python wrapper for 'tracker_check_version'

Checks that the Tracker library in use is compatible with the given version. Generally you would pass in the constants TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION, TRACKER_MICRO_VERSION as the three arguments to this function; that produces a check that the library in use is compatible with the version of Tracker the application or module was compiled against.

Compatibility is defined by two things: first the version of the running library is newer than the version required_major.required_minor.@required_micro. Second the running library must be binary compatible with the version required_major.required_minor.@required_micro (same major version.)

Parameters:

`required_major` (int) –

the required major version.

`required_minor` (int) –

the required minor version.

`required_micro` (int) –

the required micro version.

Returns (str) –

NULL if the Tracker library is compatible with the given version, or a string describing the version mismatch. The returned string is owned by Tracker and must not be modified or freed.

## Function Macros

### TRACKER_CHECK_VERSION

    #define TRACKER_CHECK_VERSION(major,minor,micro)    \
        (TRACKER_MAJOR_VERSION > (major) || \
         (TRACKER_MAJOR_VERSION == (major) && TRACKER_MINOR_VERSION > (minor)) || \
         (TRACKER_MAJOR_VERSION == (major) && TRACKER_MINOR_VERSION == (minor) && \
          TRACKER_MICRO_VERSION >= (micro)))

This macro essentially does the same thing as tracker_check_version but as a pre-processor operation rather than a run-time operation. It will evaluate true or false based the version passed in and the version available.

Simple version check example An example of how to make sure you have the version of Tracker installed to run your code. if (!TRACKER_CHECK_VERSION (0, 10, 7)) { g_error ("Tracker version 0.10.7 or above is needed"); }

Parameters:

`major` –

the required major version.

`minor` –

the required minor version.

`micro` –

the required micro version.

### TRACKER_DEPRECATED_IN_3_1_FOR

    #define TRACKER_DEPRECATED_IN_3_1_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### TRACKER_DEPRECATED_IN_3_2_FOR

    #define TRACKER_DEPRECATED_IN_3_2_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### TRACKER_DEPRECATED_IN_3_3_FOR

    #define TRACKER_DEPRECATED_IN_3_3_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### TRACKER_DEPRECATED_IN_3_4_FOR

    #define TRACKER_DEPRECATED_IN_3_4_FOR(f) _TRACKER_DEPRECATED_FOR(f)

### _TRACKER_DEPRECATED_FOR

    #define _TRACKER_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _TRACKER_EXTERN

### _TRACKER_UNAVAILABLE

    #define _TRACKER_UNAVAILABLE(maj, min) G_UNAVAILABLE(maj, min) _TRACKER_EXTERN

## Constants

### TRACKER_AVAILABLE_IN_3_1

    #define TRACKER_AVAILABLE_IN_3_1 _TRACKER_UNAVAILABLE(3, 1)

### TRACKER_AVAILABLE_IN_3_2

    #define TRACKER_AVAILABLE_IN_3_2 _TRACKER_UNAVAILABLE(3, 2)

### TRACKER_AVAILABLE_IN_3_3

    #define TRACKER_AVAILABLE_IN_3_3 _TRACKER_UNAVAILABLE(3, 3)

### TRACKER_AVAILABLE_IN_3_4

    #define TRACKER_AVAILABLE_IN_3_4 _TRACKER_UNAVAILABLE(3, 4)

### TRACKER_AVAILABLE_IN_ALL

    #define TRACKER_AVAILABLE_IN_ALL _TRACKER_EXTERN

### TRACKER_DEPRECATED_IN_3_1

    #define TRACKER_DEPRECATED_IN_3_1 _TRACKER_DEPRECATED

### TRACKER_DEPRECATED_IN_3_2

    #define TRACKER_DEPRECATED_IN_3_2 _TRACKER_DEPRECATED

### TRACKER_DEPRECATED_IN_3_3

    #define TRACKER_DEPRECATED_IN_3_3 _TRACKER_DEPRECATED

### TRACKER_DEPRECATED_IN_3_4

    #define TRACKER_DEPRECATED_IN_3_4 _TRACKER_DEPRECATED

### TRACKER_VERSION_3_0

    #define TRACKER_VERSION_3_0 G_ENCODE_VERSION (3, 0)

### TRACKER_VERSION_3_1

    #define TRACKER_VERSION_3_1 G_ENCODE_VERSION (3, 1)

### TRACKER_VERSION_3_2

    #define TRACKER_VERSION_3_2 G_ENCODE_VERSION (3, 2)

### TRACKER_VERSION_3_3

    #define TRACKER_VERSION_3_3 G_ENCODE_VERSION (3, 3)

### TRACKER_VERSION_3_4

    #define TRACKER_VERSION_3_4 G_ENCODE_VERSION (3, 4)

### TRACKER_VERSION_CUR

    #define TRACKER_VERSION_CUR G_ENCODE_VERSION (TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION)

### TRACKER_VERSION_MAX_ALLOWED

    #define TRACKER_VERSION_MAX_ALLOWED TRACKER_VERSION_CUR

### TRACKER_VERSION_MIN_REQUIRED

    #define TRACKER_VERSION_MIN_REQUIRED TRACKER_VERSION_CUR

### _TRACKER_DEPRECATED

    #define _TRACKER_DEPRECATED G_DEPRECATED _TRACKER_EXTERN

### _TRACKER_EXTERN

    #define _TRACKER_EXTERN __attribute__((visibility("default"))) extern

The results of the search are