[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Packaging lerc

Some comments based on a fist look.

The code base is C++ and you use a symbols file, but not pkgkde-symbolshelper.

Symbols for C++ are fragile and tend to change per platform and compiler version. It's fine to not use symbols for C++ libraries, we do that for laszip for example. With dh_makeshlibs using -V by default since debhelper compat 12, the dependencies it generates are quite reasonable.

Using symbols for C++ libraries doesn't have to be very painful, we use them for pdal for example. But you need take care of a few things, first is using the upstream version in dependencies instead of the package version. You need the following in d/rules for that:

 include /usr/share/dpkg/pkg-info.mk

UPSTREAM_VERSION = $(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's/\+.*//')

         dh_makeshlibs -- -v$(UPSTREAM_VERSION) -c0

-c0 is also important to not have dh_makeshlibs fail when the symbols change as some tend to disappear when built with a newer compiler.

Using the pkgkde_symbolshelper dh helper makes maintaining the symbols file for all architectures much simpler, refer to the documentation for details:


When symbols files are used for C++ projects in the Debian GIS team, this is what we use.

Why is the list of architectures restricted in debian/control?

debian/copyright doesn't use the standalone license paragraph for the main Files section.

Files-Excluded is clearer when each pattern is on its own line.

SOVERSION patch is not forwarded upstream. Not using a SOVERSION makes me question the quality of the upstream project.

Kind Regards,


 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1

Reply to: