Control: tags -1 + help
* Dmitry Shachnev <mity...@debian.org> [2020-07-02 13:31]:
Source: plplot
Version: 5.15.0+dfsg-12
Severity: important
Usertags: sip5
Dear Maintainer,
Recently I have updated pyqt5 and related packages to use sip5 instead of
sip4 for build. This is in experimental for now, but I want to upload it
to unstable in a month or two.
This change breaks PyQt5 extension ABI, so all packages build-depending on
pyqt5-dev need to build with sip5 too.
Quick migration guide:
1) Build-depend on python3-sipbuild(-dbg) and sip5-tools.
- Inspect pyproject.toml (if it exists) for additional dependencies, maybe
you will need also python3-pyqtbuild.
2) If your package has a project.py file, call sip-build to build it.
For separation of configure and build phases, pass --no-make to it.
3) If your package does not have a project.py file, but has a configure.py,
update that file to the latest version of the boilerplate (v2.16), which
you can find in the experimental version of qscintilla2 package.
(Qscintilla2's configure.py used to be a recommended way to build sip
projects.)
4) If your package called /usr/bin/sip directly, call /usr/bin/sip5 instead.
5) If your package had a runtime dependency on python3-sip or ${sip3:Depends},
depend on python3-pyqt5.sip instead. There is no analogue for dh_sip3
helper yet.
(Upstream now recommends each project to use its own private copy of sip.
In Debian, I recommend you to use pyqt5's copy which is python3-pyqt5.sip).
6) If you build a -dev package with .sip files, they are now installed into
a new location (in dist-packages). Also .toml files now should be present.
You can see what I have done in pyqt5, pyqt5chart, pyqt5webengine and
qscintilla2 packages in experimental (see the relevant commits in git).
The official documentation for sip5 is available online [1] or in sip5-doc
package. For help you can ask me or pyqt/sip mailing list [2] (subscription
needed to post messages).
Please stage your changes in experimental (or in a VCS) for now. They will
need to be uploaded to unstable together with pyqt5.
[1]: https://www.riverbankcomputing.com/static/Docs/sip/
[2]: https://www.riverbankcomputing.com/mailman/listinfo/pyqt
I tried to port the plplot package to sip5, by following the instructions
above, but it did not work. I will need a little help for getting this
done. The changes are in the package's repository at Salsa, under the
branch “sip5”: https://salsa.debian.org/science-team/plplot/-/tree/sip5
Essentially, I changed “python3-sip-dev” to “python3-sipbuild” and added
sip5-tools to the build dependencies. I also added a patch that forces
the use of /usr/bin/sip5 and also removes the -b option from the command
calling sip.
Building in a clean unstable chroot fails with this error message:
cd <build_dir>/obj-x86_64-linux-gnu/bindings/qt_gui/pyqt5 && /usr/bin/sip5 -c .
-I/usr/lib/python3/dist-packages/PyQt5/bindings -n PyQt5.sip -t Qt_5_15_0 -t WS_X11
<build_dir>/bindings/qt_gui/pyqt5/plplot_pyqt5.sip
sip5: /usr/lib/python3/dist-packages/PyQt5/bindings/QtCore/QtCoremod.sip:25:
At most one of this %Timeline must be specified with the -t flag
Best,
Rafael