Bug 2203789 - jack-audio-connection-kit-example-clients blocks upgrade to Fedora 38
Summary: jack-audio-connection-kit-example-clients blocks upgrade to Fedora 38
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: jack-audio-connection-kit
Version: 38
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Nils Philippsen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-05-15 09:15 UTC by Kamil Páral
Modified: 2024-05-22 10:58 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2024-05-22 10:58:09 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Kamil Páral 2023-05-15 09:15:51 UTC
It seems that jack-audio-connection-kit-example-clients no longer exists in Fedora 38, but not package obsoletes it. That means a system upgrade attempt fails.


$ sudo dnf system-upgrade download --releasever 38
...
Error: 
 Problem: problem with installed package pipewire-jack-audio-connection-kit-0.3.70-1.fc37.x86_64
  - package pipewire-jack-audio-connection-kit-0.3.67-1.fc38.x86_64 conflicts with jack-audio-connection-kit provided by jack-audio-connection-kit-1.9.22-1.fc38.x86_64
  - package pipewire-jack-audio-connection-kit-0.3.70-1.fc38.x86_64 conflicts with jack-audio-connection-kit provided by jack-audio-connection-kit-1.9.22-1.fc38.x86_64
  - problem with installed package jack-audio-connection-kit-example-clients-1.9.21-3.fc37.x86_64
  - pipewire-jack-audio-connection-kit-0.3.70-1.fc37.x86_64 does not belong to a distupgrade repository
  - jack-audio-connection-kit-example-clients-1.9.21-3.fc37.x86_64 does not belong to a distupgrade repository
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)


$ rpm -qa | grep pipewire | sort
pipewire-0.3.70-1.fc37.i686
pipewire-0.3.70-1.fc37.x86_64
pipewire-alsa-0.3.70-1.fc37.i686
pipewire-alsa-0.3.70-1.fc37.x86_64
pipewire-codec-aptx-0.3.70-1.fc37.x86_64
pipewire-gstreamer-0.3.70-1.fc37.x86_64
pipewire-jack-audio-connection-kit-0.3.70-1.fc37.x86_64
pipewire-libs-0.3.70-1.fc37.i686
pipewire-libs-0.3.70-1.fc37.x86_64
pipewire-pulseaudio-0.3.70-1.fc37.x86_64
pipewire-utils-0.3.70-1.fc37.x86_64

$ rpm -qa | grep jack
jack-audio-connection-kit-example-clients-1.9.21-3.fc37.x86_64
qemu-audio-jack-7.0.0-15.fc37.x86_64
pipewire-jack-audio-connection-kit-0.3.70-1.fc37.x86_64


$ sudo dnf list --showduplicates jack-audio-connection-kit-example-clients --releasever 38
Installed Packages
jack-audio-connection-kit-example-clients.x86_64        1.9.21-3.fc37        @fedora


Reproducible: Always

Comment 1 Kamil Páral 2023-05-15 09:24:27 UTC
Actually, the problem seems to be that jack-audio-connections-kit-example-clients (installed by default in 2015 upgrade) gets obsoleted by jack-audio-connection-kit, but jack-audio-connection-kit conflicts with pipewire-jack-audio-connection-kit (installed by default in 2021 upgrade).

This is non-trivial for sound-unaware users to resolve. If I use `dnf ... --allowerasing`, jack-audio-connection-kit gets installed and pipewire-jack-audio-connection-kit gets removed. That's the very opposite of a default Workstation install right now.

Comment 2 Guido Aulisi 2023-05-16 07:35:51 UTC
IMHO pipewire-jack-audio-connection-kit should obsolete jack-audio-connections-kit-example-clients ad jack-audio-connection-kit does

Comment 3 Guido Aulisi 2023-05-16 10:39:02 UTC
I opened a PR for this: https://src.fedoraproject.org/rpms/pipewire/pull-request/14

Comment 4 Elliott Sales de Andrade 2023-05-21 04:17:20 UTC
The Obsoletes don't quite work if you already have jack-audio-connection-kit installed instead. Since pipewire-jack-audio-connection-kit obsoletes a different version of the main versus the example-clients subpackage, you get a different conflict now:

 Problem 2: both package jack-audio-connection-kit-1.9.22-1.fc38.x86_64 and pipewire-jack-audio-connection-kit-0.3.71-2.fc38.x86_64 obsolete jack-audio-connection-kit-example-clients < 1.9.22
  - package pipewire-jack-audio-connection-kit-0.3.71-2.fc38.x86_64 conflicts with jack-audio-connection-kit provided by jack-audio-connection-kit-1.9.22-1.fc38.x86_64
  - problem with installed package jack-audio-connection-kit-1.9.21-3.fc37.x86_64
  - jack-audio-connection-kit-1.9.21-3.fc37.x86_64 does not belong to a distupgrade repository

Comment 5 Elliott Sales de Andrade 2023-05-22 06:41:16 UTC
(In reply to Elliott Sales de Andrade from comment #4)
> The Obsoletes don't quite work if you already have jack-audio-connection-kit
> installed instead.

Oh, even after swapping to pipewire-jack-audio-connection-kit, the conflict still occurs, probably because of the differing versions on the Obsoletes.

Comment 6 Nils Philippsen 2023-08-30 08:31:50 UTC
(In reply to Elliott Sales de Andrade from comment #5)
> (In reply to Elliott Sales de Andrade from comment #4)
> > The Obsoletes don't quite work if you already have jack-audio-connection-kit
> > installed instead.
> 
> Oh, even after swapping to pipewire-jack-audio-connection-kit, the conflict
> still occurs, probably because of the differing versions on the Obsoletes.

Hmm? They’re the same:

--- 8< ---
# dnf repoquery --obsoletes pipewire-jack-audio-connection-kit
Last metadata expiration check: 0:36:23 ago on Wed 30 Aug 2023 09:46:53 CEST.
jack-audio-connection-kit < 1.9.16-2
jack-audio-connection-kit-example-clients < 1.9.22
pipewire-libjack < 0.3.19-2
# dnf repoquery --obsoletes jack-audio-connection-kit
Last metadata expiration check: 0:36:32 ago on Wed 30 Aug 2023 09:46:53 CEST.
jack-audio-connection-kit-example-clients < 1.9.22
#
--- >8 ---

I guess this issue isn’t really solvable in either of jack or pipewire without breaking it for users of one or the other. I can only think of fixing this in the dependency resolution logic, i.e. if obsoletes compete, prefer the package that is installed already. Not sure how much effort this is though – and I don’t have enough spare cycles to dig into it myself. As a workaround, we could remove the obsoletes from both packages and move it to fedora-obsolete-packages.

What do you think?

Comment 7 Guido Aulisi 2023-11-14 10:25:50 UTC
Please manually remove jack example clients before upgrading, they are deprecated upstream:

dnf remove jack-audio-connection-kit-example-clients

Comment 8 Kamil Páral 2023-11-14 13:11:22 UTC
This is probably the proper solution, then:

(In reply to Nils Philippsen from comment #6)
> As a workaround, we could remove the obsoletes from both packages and move it to fedora-obsolete-packages.

Comment 9 Aoife Moloney 2024-05-22 10:58:09 UTC
Fedora Linux 38 entered end-of-life (EOL) status on 2024-05-21.

Fedora Linux 38 is no longer maintained, which means that it
will not receive any further security or bug fix updates. As a result we
are closing this bug.

If you can reproduce this bug against a currently maintained version of Fedora Linux
please feel free to reopen this bug against that version. Note that the version
field may be hidden. Click the "Show advanced fields" button if you do not see
the version field.

If you are unable to reopen this bug, please file a new report against an
active release.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.