mathgl: Upload new version 2.5
Hi,
The new upstream version 2.5 of MathGL has been recently released. I
prepared the new version of the Debian package on the Git repo. If nobody
objects, I will upload it. I am juste wondering whether it should be done
to unstable or experimental. In this new upstream version, the upstream
authors bumped (what they call) the "SOVERSION", such that all library
binary packages produced by the mathgl source have to change names.
This will cause the new uploaded package to go through the NEW queue and
will need a "mini-transition" involving the 3depict package (the only
reverse-dependency on libmgl).
Now, the process of updating the mathgl package after such upstream
"SOVERSION" bumps is pretty painful. This is caused by the very strange
way in which upstream deals with the soversion. Indeed, a single
"soversion" is defined in the CMakeLists.txt file:
$ grep SOVERSION CMakeLists.txt | grep ^set
set(MathGL_SOVERSION 7.6.0)
The defined variable (MathGL_SOVERSION) is then used to set the SOVERSION
property of all libmgl* libraries:
$ grep MathGL_SOVERSION CMakeLists.txt | grep set_target
set_target_properties(${mgllib} PROPERTIES SOVERSION ${MathGL_SOVERSION})
We end up with a collection of shared libraries that have the same
"SOVERSION":
$ find debian/tmp -name \*.so.\*
debian/tmp/usr/lib/libmgl-wnd.so.7.6.0
debian/tmp/usr/lib/libmgl-mpi.so.7.6.0
debian/tmp/usr/lib/libmgl-wx.so.7.6.0
debian/tmp/usr/lib/libmgl-qt.so.7.6.0
debian/tmp/usr/lib/libmgl.so.7.6.0
debian/tmp/usr/lib/libmgl-qt5.so.7.6.0
debian/tmp/usr/lib/libmgl-glut.so.7.6.0
debian/tmp/usr/lib/libmgl-fltk.so.7.6.0
and this forces the changing of package names at each SOVERSION bump:
$ grep ^Package: debian/control | grep 7.6
Package: libmgl7.6.0
Package: libmgl-mpi7.6.0
Package: libmgl-wnd7.6.0
Package: libmgl-glut7.6.0
Package: libmgl-qt5-7.6.0
Package: libmgl-fltk7.6.0
Package: libmgl-wx7.6.0
This is pretty lame. Besides changing all package names and the names of
the debian/libmgl*.install files, , we need to keep a ever-growing list
of Replaces/Conflicts, for instance for the libmgl-glut7.6.0 package:
Replaces: libmgl-glut5, libmgl-glut6.0.0, libmgl-glut7.1.0, libmgl-glut7.2.0,
libmgl-glut7.4.0, libmgl-glut7.4.1, libmgl-glut7.5.0
Conflicts: libmgl-glut5, libmgl-glut6.0.0, libmgl-glut7.1.0, libmgl-glut7.2.0,
libmgl-glut7.4.0, libmgl-glut7.4.1, libmgl-glut7.5.0
IMHO, the scheme adopted by the upstream authors is not correct. First,
the SOVERSION should be a single number, corresponding to the major part
of the library version and not the composite major.minor.micro. Second,
each individual library should have its own version/soversion, which
should be bumped only when there are changes in it.
Anyway, I think that we are trapped in this strange package naming scheme
for mathgl, unless the upstream authors change its way of setting
soversion/version or we patch the upstream sources.
Best,
Rafael
Reply to: