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

--
debian-science-maintainers mailing list
debian-science-maintainers@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers

Reply via email to