Packaging guideline for a library using either Qt4 or Qt5

Laurent Rineau laurent.rineau__fedora at normalesup.org
Thu Mar 6 15:53:02 UTC 2014


Le Wednesday 05 March 2014 18:40:10 Kevin Kofler a écrit :
> Laurent Rineau wrote:
> > libQGLViewer (http://www.libqglviewer.com/) is a library that can be build
> > with either Qt4 or Qt5, with recent versions.
> > 
> > I am considering providing packages build with both Qt4 and Qt5. I
> > personally need both versions for my daily job (to test compatibility). I
> > do not think we already have such libraries in Fedora. Do we have relevant
> > packaging guidelines for such a case?
> 
> You should build both versions. The 2 versions should NOT conflict; if they
> do, please get upstream to rename their libraries to fix the conflict.

What do you mean? Currently, the library compiled with Qt4 is:

  /usr/lib64/libQGLViewer.so -> libQGLViewer.so.2.5.1
  /usr/lib64/libQGLViewer.so.2.5.1

Do you suggest that the upstream project should have a different library name 
when it is compiled with Qt4 and Qt5? Why is that better than the following 
suggestion:

  /usr/lib64/libQGLViewer.so -> libQGLViewer.so.2.5.1
  /usr/lib64/libQGLViewer.so.2.5.1
  /usr/lib64/Qt5/libQGLViewer.so -> libQGLViewer.so.2.5.1
  /usr/lib64/Qt5/libQGLViewer.so.2.5.1


Note: you can see that the SONAME of libQGLViewer is libQGLViewer.so.2.5.1. I 
have encoded that SONAME in the RPM spec, because the upstream project does 
not handle ELF versionning correctly: they declare libQGLViewer.so.2 as 
SOVERSION for all versions, whereas the binary compatibility is never ensured:
  http://upstream-tracker.org/versions/libqglviewer.html
The upstream developers do not seem to know who to deal with binary 
compatibility. That is a different issue.

-- 
Laurent Rineau
http://fedoraproject.org/wiki/LaurentRineau



More information about the devel mailing list