Comments

175 Comments

Still breaks Blogilo.

I am trying right now to get it to build in Rawhide, then in F38.

The way kdepim has broken backwards compatibility is really a PITA. Especially in the KF5 branch that should really be in maintenance mode. They should have left the breaking changes for the Qt6/KF6 port!

The changes are not only incompatible, but also include some fun screwups:

  • They have installed backwards compatibility CMake modules for libkdepim and kpimtextedit, but NOT kwebengineviewer.
  • For kpimtextedit, if you do the exact replacements the deprecation message tells you to do, it does NOT work, because it was actually renamed to KPim5TextEdit and NOT KPim5PimTextEdit as the deprecation message claims.

See also https://docs.fedoraproject.org/en-US/fesco/Updates_Policy/#philosophy : "ABI changes in general are very strongly discouraged".

I shall also note that this ABI break was not even announced for Rawhide as far as I can tell. The first time I heard about it for Rawhide was from those FTI bugs, and the first time I hear this is being backported to F38 is from the comments on this update.

The incompatible changes in KDE PIM libraries (already mentioned in a comment) are also going to break Blogilo and Trojitá: * https://bugzilla.redhat.com/show_bug.cgi?id=2182704 * https://bugzilla.redhat.com/show_bug.cgi?id=2182714

The packages also do not rebuild as is, see: * https://bugzilla.redhat.com/show_bug.cgi?id=2182704#c3 * https://bugzilla.redhat.com/show_bug.cgi?id=2171741#c1

The file conflicts you are seeing are https://bugzilla.rpmfusion.org/show_bug.cgi?id=6612

As a quick hack to work around the bad header, try:

#define throw(...) /**/
#include <OpenEXR/ImathVec.h>
#undef throw

Well, then I guess we should try rebuilding the old kio-extras against the current Qt5 from RHEL8 and the current KF5 from this build. Because a rebuild seems clearly needed.

(By the way, for a long time, there used to be a glitch in Bodhi where it would have been possible to first click "Push to stable" and then edit in the new build, bypassing the check, but I believe this has unfortunately been fixed at some point, either automatically canceling the stable push request or locking the update to prevent adding builds unless the request is manually canceled first.)

kio-extras is a separate package, it can in principle be pushed separately. But of course the versions should match. In the end, @tdawson will have to decide whether to edit the update with the new build, resetting the karma and time counters, or push a followup update.

(This is one of the cases where the current Fedora update policy just fails us. Without those Bodhi-enforced rules, we could just edit the update with the added build and queue it directly to stable anyway, because 99.7% of the builds in it would still have been tested sufficiently, and the one added build is a regression fix. But unfortunately, the EPEL steering committee wants those annoying rules even more than Fedora FESCo does, and FESCo already wants them a lot.)

kf5-kio is build with gcc-toolset-9 which is already EOL.

Why does that matter? As far as I can tell, it does not have any runtime dependencies on the toolset.

For the weather widget issue, note that it does not apply to the Weather plasmoid that ships with Plasma, but only to the third-party Weather Widget plasmoid (https://github.com/kotelnik/plasma-applet-weather-widget).

KWrite used to be a UI shell around the KatePart, now the UI shell code is also mostly shared and KWrite is just a kind of a skin for the Kate UI. The developers figured it does not make sense to maintain 2 completely separate shells (Kate and KWrite) for the same editor component (KatePart).

This should really have been taken to the public rpmfusion-devel mailing list, not just discussed behind closed doors with one person, who was clearly not aware of the implications on FFmpeg's consumers.

In addition, in order to support WebRTC with H.264, QtWebEngine (and Chromium too, I suppose) needs to link against OpenH264 at compile time. Dlopening it, as Firefox apparently does, is not supported. As I understand it, this is also not allowed in Fedora. qt5-qtwebengine-freeworld is linked against a bundled copy of OpenH264 which is ripped out of the tarball in the Fedora qt5-qtwebengine. Hence, qt5-qtwebengine-freeworld cannot go away even if we link it against system FFmpeg.

So the swappable FFmpeg just makes a mess for Chromium and QtWebEngine and does not help at all.

There is no way this can work properly for Chromium and QtWebEngine because Chromium hardcodes the list of supported codecs at compile time, based on whether the use_proprietary_codecs (where by "proprietary", they really mean patent-encumbered) flag is set at compile time or not. (And this is a boolean toggle between 2 hardcoded lists, there is no attempt at determining what codecs the linked FFmpeg actually supports, neither at compile time, nor at runtime.) So if you sneakily swap the FFmpeg used at build time for another one at runtime, you end up with websites getting told a wrong list of supported codecs, leading to broken websites.

So I see building both qt5-qtwebengine and qt5-qtwebengine-freeworld with bundled FFmpeg (whereas previously, -freeworld was built with system FFmpeg from RPM Fusion) as the only way forward. (It is currently the only thing that will build anyway, because FFmpeg 5 is not supported. But even if that is fixed, using swappable FFmpeg will break things.)

How is this going to work with both packages having the same RPM Name? RPM Fusion packages normally cannot have the same Name as Fedora packages, for good reasons.

karma

I am not convinced that this is a useful thing to ship in Fedora. It is only going to make the work for RPM Fusion more complicated and provides no real value. The F36 package also "upgrades" the RPM Fusion version (which is FFmpeg 4.4) to FFmpeg 5 (a source- and binary-incompatible version) with crippled codec support, breaking almost all packages in RPM Fusion.

RPM Fusion has FFmpeg 5 only in Rawhide so far, not F36 (and several things do not yet build against FFmpeg 5, so they are also working on a compatibility package). There was also no discussion whatsoever about moving the RPM Fusion package to ffmpeg-freeworld. I consider it entirely unacceptable to squat the name of probably the most high-profile third-party-repository package without even talking to that repository's mailing list about it first.

The one-week delay would have expired in 79 minutes anyway, but thanks for the karma. :-)

I am just going to send this forward to stable. For -freeworld users, the versioned dependencies will hold it back until RPM Fusion is ready (or until they install the -freeworld build manually as you did) anyway.

Hmmm… I would have loved to give RPM Fusion a chance to push the -freeworld build at least to testing before this goes out to stable in Fedora, and the F34 update is also still stuck with no karma. On the other hand, this fixes 64 security vulnerabilities, so I do not want to sit on it for too long.

Note that this was fixed in 20.04.2, but the kdepim stack was never upgraded from 19.12.2 (which is now almost 1 year old, it was released on 2020-02-04) in F32.

I am building kf5-messagelib-19.12.2-2.fc32 with a backported fix now and will edit it into this update.