HoerTech-gGmbH / tascar

GNU General Public License v2.0
34 stars 4 forks source link

Fix debian package dependencies #8

Closed tobiasherzke closed 2 years ago

tobiasherzke commented 2 years ago
Precompiled TASCAR packages for Linux with versions 0.225.0.0-100a209-gcc-11-Ubuntu22.04 and 0.225.0.0-100a209-gcc-10-Debian11 cannot be installed on Ubuntu 22.04 or Debian 11. There is a mismatch between the declared dependencies of the TASCAR packages and the available libraries to fulfill these dependencies on Ubuntu 22.04 and Debian 11: Dependency Declared versions Available on Bionic Available on Buster Available on Focal Available on Bullseye Available on Jammy
tascarpro -> libmatio libmatio{9,4,2} libmatio4 libmatio4 libmatio9 libmatio11 libmatio11
tascarcli -> libbost-program-options 1.58.0, 1.62.0, 1.67.0, 1.71.0 1.62.0, 1.65.1 1.67.0 1.67.0, 1.71.0 1.74.0 1.74.0
libtascar -> libgls libgsl{2,23,25} libgsl23 libgsl23 libgsl23 libgsl25 libgsl27
tascarpro -> libopencv-calib3d 2.4v5, 2.4, 3.2 3.2 3.2 4.2 4.5 4.5d

The last row is a "Suggests:" dependency, not a "Depends:" dependency, and it was already broken in focal.

As a quick fix to make release 0.225.0 installable on the new target platforms, I am going to upload modified packages to our main apt repository with updated version numbers 0.225.0.0-100a209-gcc-11-Ubuntu22.04-1 and 0.225.0.0-100a209-gcc-10-Debian11-1 without recompilation, i.e. only the control information in the deb packages will be updated.

As a long-term fix, rather than continuously updating the dependency lists in packaging/deb, it would be less error-prone if the packaging process finds out the version-dependent package names that were installed during compilation, either with a hack like dpkg -l "libmatio*" | grep ^ii | filter-out-package-name or by using dpkg-shlibdeps.

The dependency lists in packaging/deb currently contain entries for no-longer-supported distributions (see table above), and hacks to make TASCAR installable on distributions for which it was not compiled (see #3, #4), which comes with the risk of library incompatibilities. If a long-term fix is not employed, then at least these lists could be cleaned up.

tobiasherzke commented 2 years ago

The following additional package versions are now available in our apt.hoertech.de repository: For distribution "jammy":

gisogrimm commented 2 years ago

Thanks for the detailed analysis.

libboost-program-options dependency will be removed in the near future.

I will re-enable a tiny deployment test to receive a heads-up earlier, also for Ubuntu 22.04.

gisogrimm commented 2 years ago

This should be fixed with a315583a. When tests run through we will release 0.225.1 for installations on jammy.

gisogrimm commented 2 years ago

This is now fixed in release 0.225.1.