summaryrefslogtreecommitdiff
path: root/libpq/build/bootstrap.build
blob: 22b180f0d5e81bfc9c3b8439d74c9c4907db4a66 (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
# file      : build/bootstrap.build
# copyright : Copyright (c) 2016-2019 Code Synthesis Ltd
# license   : PostgreSQL License; see accompanying COPYRIGHT file

project = libpq

using version
using config
using dist
using test
using install

# PostgreSQL releases (for quite a long time) had the 3-component versions,
# where the first 2 components denoted a major version and the third one --
# the minor version. This has changed starting from version 10, with the major
# version represented by a single component. Minor releases are guaranteed to
# be backwards-compatible and contain only bug fixes. See also:
#
# https://www.postgresql.org/support/versioning/
#
# Note that the release version is not a semantic version and we will map it to
# the standard version as <major>.<minor>.0.
#
# There is no document that describes libpq ABI versioning and compatibility
# rules, so everything that follows is implied from
# src/interfaces/libpq/Makefile.
#
# The library naming schema on Linux is libpq.so.<so_major>.<so_minor>
# (SO_MAJOR_VERSION and SO_MINOR_VERSION in the Makefile) So presumably
# so_major is incremented on backwards-incompatible ABI changes (it hasn't
# been for the several last major version releases). And so_minor is equal to
# the package major version.
#
if ($version.major == 12 && $version.minor == 1)
{
  abi_major = 5
  abi_minor = 12
}
else
  fail "increment the ABI version?"