1=pod
2
3=head1 NAME
4
5VERSION - OpenSSL version information
6
7=head1 SYNOPSIS
8
9 MAJOR=3
10 MINOR=0
11 PATCH=0
12 PRE_RELEASE_TAG=dev
13 BUILD_METADATA=
14 RELEASE_DATE=
15 SHLIB_VERSION=3
16
17=head1 DESCRIPTION
18
19This file is a set of keyed information looking like simple variable
20assignments.  When given an empty value, they are seen as unassigned.
21The keys that are recognised are:
22
23=over 4
24
25=item B<MAJOR>, B<MINOR>, B<PATCH>
26
27The three parts of OpenSSL's 3 numbered version number, MAJOR.MINOR.PATCH.
28These are used to compose the values for the C macros B<OPENSSL_VERSION_MAJOR>,
29B<OPENSSL_VERSION_MINOR>, B<OPENSSL_VERSION_PACTH>.
30
31=item B<PRE_RELEASE_TAG>
32
33This is the added pre-release tag, which is added to the version separated by
34a dash.  For a value C<foo>, the C macro B<OPENSSL_VERSION_PRE_RELEASE> gets
35the string C<-foo> (dash added).
36
37=item B<BUILD_METADATA>
38
39Extra metadata to be used by anyone for their own purposes.  This is added to
40the version and possible pre-release tag, separated by a plus sign.  For a
41value C<bar>, the C macro B<OPENSSL_VERSION_BUILD_METADATA> gets the string
42C<+bar>.
43
44=item B<RELEASE_DATE>
45
46Defined in releases.  When not set, it gets the value C<xx XXX xxxx>.
47
48=item B<SHLIB_VERSION>
49
50The shared library version, which is something other than the project version.
51
52=back
53
54It is a configuration error if B<MAJOR>, B<MINOR>, B<PATCH> and B<SHLIB_VERSION>
55don't have values.  Configuration will stop in that case.
56
57=head2 Affected configuration data
58
59The following items in %config from F<configdata.pm> are affected:
60
61=over 4
62
63=item $config{major}, $config{minor}, $config{patch}, $config{shlib_version}
64
65These items get their values from B<MAJOR>, B<MINOR>, B<PATCH>, and
66B<SHLIB_VERSION>, respectively.
67
68=item $config{prerelease}
69
70If B<PRERELEASE> is assigned a value, $config{prerelease} gets that same value,
71prefixed by a dash, otherwise the empty string.
72
73=item $config{build_metadata}
74
75If B<BUILD_METADATA> is assigned a value, $config{build_metadata} gets that same
76value, prefixed by a plus sign, otherwise the empty string.
77
78=item $config{release_date}
79
80If B<RELEASE_DATE> is assigned a value, $config{release_date} gets that same
81value, otherwise the string C<xx XXX yyyy>.
82
83=item $config{version}
84
85The minimal version number, a string composed from B<MAJOR>, B<MINOR> and
86B<PATCH>, separated by periods.  For C<MAJOR=3>, C<MINOR=0> and C<PATCH=0>,
87the string will be C<3.0.0>.
88
89=item $config{full_version}
90
91The fully loaded version number, a string composed from $config{version},
92$config{prerelease} and $config{build_metadata}.  See   See L</EXAMPLES> for
93a few examples.
94
95=back
96
97=head1 EXAMPLES
98
99=over 4
100
101=item 1.
102
103 MAJOR=3
104 MINOR=0
105 PATCH=0
106 PRE_RELEASE_TAG=dev
107 BUILD_METADATA=
108
109The fully loaded version number ($config{full_version}) will be
110C<3.0.0-dev>.
111
112=item 2.
113
114 MAJOR=3
115 MINOR=0
116 PATCH=0
117 PRE_RELEASE_TAG=
118 BUILD_METADATA=something
119
120The fully loaded version number ($config{full_version}) will be
121C<3.0.0+something>.
122
123=item 3.
124
125 MAJOR=3
126 MINOR=0
127 PATCH=0
128 PRE_RELEASE_TAG=alpha3
129 BUILD_METADATA=something
130
131The fully loaded version number ($config{full_version}) will be
132C<3.0.0-alpha3+something>.
133
134=back
135
136=head1 SEE ALSO
137
138L<OpenSSL_version(3)>
139
140=head1 COPYRIGHT
141
142Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
143
144Licensed under the Apache License 2.0 (the "License").  You may not use
145this file except in compliance with the License.  You can obtain a copy
146in the file LICENSE in the source distribution or at
147L<https://www.openssl.org/source/license.html>.
148
149=cut
150