#1984 Forbid updating Qt to next major version in stable Fedora releases
Closed: Rejected 5 years ago Opened 5 years ago by xvitaly.

I think FESCo should forbid updating Qt to next major version in stable Fedora releases, because such updates breaks all applications using Qt private API (for example Telegram Desktop).

Problem 1: package telegram-desktop-1.3.10-1.fc28.x86_64 requires libQt5Gui.so.5(Qt_5.10.1_PRIVATE_API)(64bit), but none of the providers can be installed
  - cannot install both qt5-qtbase-gui-5.11.1-7.fc28.x86_64 and qt5-qtbase-gui-5.10.1-6.fc28.x86_64
  - cannot install both qt5-qtbase-gui-5.10.1-6.fc28.x86_64 and qt5-qtbase-gui-5.11.1-7.fc28.x86_64
  - cannot install the best update candidate for package telegram-desktop-1.3.10-1.fc28.x86_64
  - cannot install the best update candidate for package qt5-qtbase-gui-5.10.1-6.fc28.x86_64
 Problem 2: problem with installed package telegram-desktop-1.3.10-1.fc28.x86_64
  - package telegram-desktop-1.3.10-1.fc28.x86_64 requires libQt5Gui.so.5(Qt_5.10.1_PRIVATE_API)(64bit), but none of the providers can be installed
  - package qt5-qtbase-gui-5.10.1-6.fc28.x86_64 requires libQt5Core.so.5(Qt_5.10.1_PRIVATE_API)(64bit), but none of the providers can be installed
  - cannot install both qt5-qtbase-5.11.1-7.fc28.x86_64 and qt5-qtbase-5.10.1-6.fc28.x86_64
  - cannot install both qt5-qtbase-5.10.1-6.fc28.x86_64 and qt5-qtbase-5.11.1-7.fc28.x86_64
  - cannot install the best update candidate for package qt5-qtbase-5.10.1-6.fc28.x86_64

In short, kde-sig cannot support consumers of Qt private api's this way.

For posterity, to help us track this better please add to your .spec at least:
BuildRequires: qt5-qtbase-private-devel
(someday I will split this out into a proper subpkg, but for now it's just a virtual provide)

and optionally:
%{?_qt5:Requires: %{_qt5}%{?_isa} = %{_qt5_version}}

Qt private APIs are just that: private. Fedora's ABI policy is specifically oriented around public interfaces for this reason, and Qt goes to huge lengths to protect the API/ABI of Qt5 that they've committed as public interfaces.

I see absolutely no reason to block based on this, especially for a third party package in a third-party repository. And especially when there are specific remedies for this, as @rdieter outlined.

It shall be pointed out that the private API is subject to change at every release, even bugfix and security releases, not just at feature releases (releases from a new branch).

(Also not that these are minor feature releases. The next major release of Qt will be Qt 6.)

After receiving lots of negative carma maintainers just reset it by adding-removing build and then set unstable threshold to -16.

I think this is not fair.

The use of explicitly unstable APIs in a consuming application is a bug in that application. Full stop.

@xvitaly I understand that the situation is frustrating for you, but Fedora does not require its packagers to fix other people's bugs. The proper course of action here is to engage the Telegram upstream about not using the public API, statically linking the older Qt they require or packaging as a Flatpak.

Proposal: The Qt maintainers are doing nothing wrong and the update is not in violation of the Stable Updates Policy.

I vote +1

@sgallagh: Huh? The proposal here is to forbid updating, so the text you wrote does not match the "+1" vote you gave.

@sgallagh: Huh? The proposal here is to forbid updating, so the text you wrote does not match the "+1" vote you gave.

Reread my statement. I presented a proposal and voted in favor of it. The text of my proposal was "The Qt maintainers are doing nothing wrong and the update is not in violation of the Stable Updates Policy." and this is what got the +1 from me.

OK, thanks for clarifying. :-)

+1 to sgallagh's proposal

According to @xvitaly the telegram desktop is fixed (there is a contradicting comment at the end but maybe that was using an outdated version of it). This shows that the fixes can happen at the right place and I am +1 to @sgallagh's proposal.

Yes, I rebuilt Telegram Desktop package.

On 09/04/2018 09:23 AM, Stephen Gallagher wrote:

Proposal: The Qt maintainers are doing nothing wrong and the update is =
not in violation of the Stable Updates Policy.

+1

+1 to Stephen's proposal.

It's been a week with +6,0,0 and I'm marking sgallagh's proposal as accepted:
The Qt maintainers are doing nothing wrong and the update is not in violation of the Stable Updates Policy.

Metadata Update from @zbyszek:
- Issue close_status updated to: Rejected
- Issue status updated to: Closed (was: Open)

5 years ago

Login to comment on this ticket.

Metadata