summaryrefslogtreecommitdiffstats
path: root/VERSION.m4
blob: 236a40635b9421fdbfabfd093ae08d87fcd87a67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
########################################################
# FreeIPA Version                                      #
#                                                      #
# FreeIPA versions are as follows                      #
# 1.0.x                  New production series         #
# 1.0.x{alpha,beta,rc}y  Alpha/Preview/Testing, Beta,  #
#                           Release Candidate          #
# 1.0.0.20170102030405.GITabcdefg  Build from GIT      #
#                                                      #
########################################################

########################################################
# This are the main version numbers                    #
#                                                      #
# <MAJOR>.<MINOR>.<RELEASE>                            #
#                                                      #
# e.g. define(IPA_VERSION_MAJOR, 1)                    #
#      define(IPA_VERSION_MINOR, 0)                    #
#      define(IPA_VERSION_RELEASE, 0)                  #
#  ->  "1.0.0"                                         #
########################################################
define(IPA_VERSION_MAJOR, 4)
define(IPA_VERSION_MINOR, 4)
define(IPA_VERSION_RELEASE, 90)

########################################################
# For 'pre' releases the version will be               #
#                                                      #
# <MAJOR>.<MINOR>.<RELEASE><PRE_RELEASE>               #
#                                                      #
# e.g. define(IPA_VERSION_PRE_RELEASE, rc1)            #
#  ->  "1.0.0rc1"                                      #
########################################################
define(IPA_VERSION_PRE_RELEASE, )

########################################################
# To mark GIT snapshots this should be set to 'yes'    #
# in the development BRANCH, and set to 'no' only in   #
# the IPA_X_X_RELEASE BRANCH                           #
#                                                      #
# <MAJOR>.<MINOR>.<RELEASE>.<TIMESTAMP>.GIT<hash>      #
#                                                      #
# e.g. define(IPA_VERSION_IS_GIT_SNAPSHOT, yes)        #
#  ->  "1.0.0.20170102030405.GITabcdefg"               #
#                                                      #
# This option works only with GNU m4:                  #
# it requires esyscmd m4 macro.                        #
########################################################
define(IPA_VERSION_IS_GIT_SNAPSHOT, no)

########################################################
# The version of IPA data. This is used to identify    #
# incompatibilities in data that could cause issues    #
# with replication. If the built-in versions don't     #
# match exactly then replication will fail.            #
#                                                      #
# The format is %Y%m%d%H%M%S                           #
#                                                      #
# e.g. define(IPA_DATA_VERSION, 20100614120000)        #
#  ->  "20100614120000"                                #
########################################################
define(IPA_DATA_VERSION, 20100614120000)

########################################################
# The version of the IPA API. This controls which      #
# client versions can use the XML-RPC and json APIs    #
#                                                      #
# A change to existing API requires a MAJOR version    #
# update.  The addition of new API bumps the MINOR     #
# version.                                             #
#                                                      #
# The format is a whole number                         #
#                                                      #
########################################################
define(IPA_API_VERSION_MAJOR, 2)
define(IPA_API_VERSION_MINOR, 216)
# Last change: DNS: Support URI resource record type


########################################################
# Following values are auto-generated from values above
# That way m4 madness lies
########################################################

########################################################
# IPA_NUM_VERSION is auto-generated
# format suitable for aritmetical comparison.
########################################################
dnl for some reason AC_SUBST([NUM_VERSION], [IPA_NUM_VERSION])
dnl does not work when we use macro "format" instead of "esyscmd"
define(IPA_NUM_VERSION, esyscmd(printf "%d%02d%02d" IPA_VERSION_MAJOR IPA_VERSION_MINOR IPA_VERSION_RELEASE))


########################################################
# IPA_API_VERSION: format is APImajor.APIminor
########################################################
define(IPA_API_VERSION, IPA_API_VERSION_MAJOR.IPA_API_VERSION_MINOR)


########################################################
# IPA_VERSION is one string formated according to rules
# described on top of this file
########################################################
dnl helper for translit in IPA_VERSION
define(NEWLINE,`
')

define(IPA_VERSION, translit(dnl remove new lines from version (from esyscmd)
ifelse(IPA_VERSION_IS_GIT_SNAPSHOT, yes,dnl
dnl Git snapshot: 1.0.0.20170102030405.GITabcdefg
IPA_VERSION_MAJOR.IPA_VERSION_MINOR.IPA_VERSION_RELEASE.dnl 1.0.0
esyscmd(date -u +'%Y%m%d%H%M')dnl 20170102030405
.GIT
esyscmd(git log -1 --format="%h" HEAD),dnl abcdefg
dnl Git end
ifelse(IPA_VERSION_PRE_RELEASE, ,
dnl Release version: 1.0.0
IPA_VERSION_MAJOR.IPA_VERSION_MINOR.IPA_VERSION_RELEASE,
dnl Pre-release: 1.0.0rc1; newline separates m4 tokens
IPA_VERSION_MAJOR.IPA_VERSION_MINOR.IPA_VERSION_RELEASE
IPA_VERSION_PRE_RELEASE)),
NEWLINE)) dnl IPA_VERSION end

dnl DEBUG: uncomment following lines and run command m4 VERSION.m4
dnl `IPA_VERSION: ''IPA_VERSION'
dnl `IPA_API_VERSION: ''IPA_API_VERSION'
dnl `IPA_DATA_VERSION: ''IPA_DATA_VERSION'
dnl `IPA_NUM_VERSION: ''IPA_NUM_VERSION'