Packaging PythonQt for Qt 5

Dmitry Shachnev mitya57 at debian.org
Sat May 27 18:55:34 UTC 2017


Hi Erik!

On Tue, May 23, 2017 at 10:13:13AM +0200, Erik Lundin wrote:
> Hello,
>
> [...]
>
> I have made necessary changes for building the package using QMake, and now
> would like to contribute them back to the community. However, I'm new when
> it comes to Debian packaging, so please help me with the following:
>
> *Qt 4 vs Qt 5 versions of installed files*
> Compatibility between the packages for Qt 4 and Qt 5 has to be handled, i.e.
> the new package should not just install files with the same names as the
> previous packages. Since Qt 4 is abandoned upstream, I changed the packaging
> scripts to only build for Qt 5 and changed the names to
> "libpythonqt-qt5-3.1" and "libpythonqt-qt5-dev". However, the installed
> files still have the same names as the files of the previous packages (at
> least the dev package, which has files installed in /usr/include/PythonQt).
> Possible solutions to the dev package problem:
>
> * Install header files to /usr/include/PythonQt5 or some other Qt 5 specific
> folder.
> * Install header files to /usr/include/PythonQt and let libpythonqt-qt5-dev
> conflict libpythonqt-dev so only one of them can be installed at a time.
> * Install header files to /usr/include/PythonQt and only use the name
> libpythonqt-dev (no Qt 5 in the name). The policy manual, section 8.4,
> suggests that this is a possibility if you only want to support one
> development version at a time.

The current Qt 4 package has no reverse dependencies, so you can safely drop
it and replace with the Qt 5 package.

I would prefer to avoid conflict, so please use /usr/include/PythonQt5.

> *Library files*
> The library files have different names, because of the new version
> (libPythonQt.so.3.1.0 vs libPythonQt.so.3.0.0), but would it be wise to
> rename the Qt 5 library to libPythonQt5.so.3.1.0 or something similarly,
> just to clearly indicate the difference? Since Qt 4 is abandoned upstream, I
> don't expect any Qt 4 packages with version 3.1.0 of the so files. The
> policy manual, section 8.1, says that "the package should install the shared
> libraries under their normal names".

I think it is better to use original upstream sonames, for compatibility with
third-party applications built against upstream versions.

The Debian package name should usually be based only on the major part of
soname, but as there is a clear ABI break here for Qt 5 switch, I think you
may keep the current naming scheme and name the package libpythonqt3.1.

> The previous package libpythonqt3.0 creates the symlink libPythonQt.so.3.0
> -> libPythonQt.so.3.0.0 but not libPythonQt.so.3 -> libPythonQt.so.3.0.0.
> Should this file be skipped also in the Qt 5 case? The symlink
> libPythonQt.so is created by the dev package, which is fine if the second or
> third solution to the dev package problem above is selected.

I do not know why .so.3 should be skipped, I would add it.

> *PythonQt_QtAll*
> Previous packages built using CMake were configured to wrap the extension
> PythonQt_QtAll and only create one set of library files. However, the
> possibility to do that seems to have disappeared, and now a new set of
> library files are created (libPythonQt_QtAll.so.3.1.0 with corresponding
> symlinks). The packaging guide, section 8.1, suggests that it is OK to put
> several libraries into the same package if their SONAMES will always change
> together, and I assume that this is the case here, so I'm prepared to do
> that. Any opinions on that?

I am not a CMake expert, it looks like you are already discussing this with
Lisandro.

--
Dmitry Shachnev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-kde-talk/attachments/20170527/f588b922/attachment.sig>


More information about the pkg-kde-talk mailing list