19
19
is supported upstream is the Grass one. Do not bother upstream
20
20
with bugs or requests about the other ones.
22
-- Francesco Paolo Lovergine <frankie@debian.org> Tue, 01 Sep 2009 22:45:56 +0200
22
GDAL symbols and versioning
23
---------------------------
25
Note that currently GDAL package maintain builtin symbols and a Debian
26
specific versioning to fulfill two goals:
28
- hiding non-GDAL public functions (e.g. all Tiff/GeoTiff symbols when
29
inner copies of the libraries are used).
30
- checking possible API breakages from one upstream version to another and
31
eventually providing a versioned flavor to manage that breakage.
35
- the C interface is considered stable, but it adds new functions at every
37
- the C++ interface is considered unstable and adds/removes/changes methods
38
at every new minor/major release. That implies both API/ABI changes at
39
every new release, possibly.
40
- both C and C++ APIs coexists in the same library with a unique SONAME (the
42
- the only official API that should be used by all programs is the C one.
43
At the moment this is generally respected, so forcing a library migration
44
should be considered pointless in general.
48
- Use and maintain a versioning script (debian/gdal.symver). The version
49
currently used there is `GDAL_1.8', and it should be maintained from one
50
version to another, until an hack will be required for some specific
52
- Use and maintain ai single arch-indep C-only symbol file as libgdal*.symbols.common
53
and an arch-dep C++ demangled symbol file for each arch. They are expected to
54
change at every new upstream release, but can be used to do general checks
55
on possible API/ABI violations. Files can be updated by running
56
dpkg-gensymbols on each build box, which is already done by dh_makeshlibs.
58
To do that at each upgrade the following procedure is suggested:
59
- do a an experimental upload with old symbol files and force
60
ignoring of symbol changes (-c0 arg in dh_makeshlibs).
61
- collect all resulting shlib on all architectures.
62
- run manually dpkg-gensymbols to collect differences and check
63
that all is ok. If not, solve the situation in a creative manner :)
65
wget http://ftp.it.debian.org/debian/pool/main/g/gdal/libgdal1_<ver>_armel.deb
66
dpkg --extract libgdal1_<ver>_armel.deb /tmp
67
dpkg-gensymbols -plibgdal1 -aarmel -v<upstream_ver> \
68
-Idebian/libgdal1.symbols.armel -O/tmp/libgdal1.symbols.armel \
69
-e/tmp/usr/lib/libgdal.so.1.16.0
71
- update symbol files to ignore uninfluent changes in C++ API on
72
all archs. You will need c++filt to demangle C++ symbols and
73
a bit of vi/sed magics.
74
- re-upload in unstable if possible with new symbols and after
77
-- Francesco Paolo Lovergine <frankie@debian.org> Thu, 23 Feb 2012 22:45:56 +0200