Wednesday, 14 October 2020

Re: Ubuntu Focal update of broken Calibre package

Hi Eli!

On Wed, Oct 14, 2020 at 11:52:44AM -0400, Eli Schwartz wrote:
> > This requires changes in many packages simultaneously: at least
> > pyqt5, pyqt5charts, pyqt5webengine, qscintilla2, calibre,
> > python-poppler-qt5, veusz, krita and qgis.
> >
> > I am planning to land this change early in Groovy+1 cycle.
> Just for the record, this is untrue.
> Arch Linux has built python3 PyQt5 using Sip 5 via /usr/bin/sip-build,
> since Dec 13 18:01:34 2019 while continuing to build python2 PyQt5 using
> Sip 4 via python2
> This worked well enough that even though on Nov 24 20:33:38 2019 I began
> shipping multiple repository packages for calibre -- one "calibre"
> package built with python2 and one "calibre-python3" package built with
> python3 -- both using Sip 4, they worked fine. The calibre-python3
> package was, as expected, buggy due to being beta quality, but it never
> failed due to pyqt5/sip itself.
> There are still various packages in our distro archives building with
> Sip 4 but successfully using the pyqt5 bindings built using Sip 5.
> Old versions of some of those packages (at least krita, qgis) did need
> patches to change the location of the sip dir.
> qscintilla2 did need to be rebuilt with no changes, then a week later
> the 2.11.4 update moved to sip-build.
> It's plainly possible to mix them at least a little. From memory, we did
> not even need to rebuild (most of) the packages.

Most packages I mentioned will need a rebuild and a patch to use a different
location for PyQt5 *.sip files.

You can see this in Debian: after I uploaded new PyQt5 (built with SIP 5) to
unstable, immediately some packages started to fail to build from source:

- (krita)
- (python-poppler-qt5)
- (veusz)

And packages that were not rebuilt got runtime errors:

- (qgis)
- (calibre)

So what I said is true: this requires simultaneous changes in many packages,
even if it's just a rebuild for some of them.

> YMMV, but it should definitely be feasible to update pyqt5/sip5, test
> everything that build-depends on them, and leave many of them alone if
> they're not ready to move.

Tomorrow is final freeze, so it is really bad timing for this.

> not great, but workable:
> - Revert code in calibre to make it build with Sip 4 again, and package
> calibre 5.2.0:
> I suspect that last option would be the easiest resolution. It should work.

That would be the easiest option, yes.

I don't volunteer to work on this (no time, sorry), but I can sponsor an
upload if someone gets a feature freeze exception for this and prepares/tests
the upload.

Dmitry Shachnev

ubuntu-devel mailing list
Modify settings or unsubscribe at: