Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PPA removal leaves packages which break jackd #27

Open
daveriedstra opened this issue Jul 30, 2021 · 8 comments
Open

PPA removal leaves packages which break jackd #27

daveriedstra opened this issue Jul 30, 2021 · 8 comments
Labels
wontfix This will not be worked on

Comments

@daveriedstra
Copy link

Describe the bug
I tried out pipewire from this PPA, but decided to go back to my old setup of PulseAudio + jackd. After working through the install instructions in reverse (masking the pipewire services, purging this repo with ppa-purge, and re-enabling the pulseaudio systemd services), jackd no longer works. You can see all the gory details on the issue I filed at the jackd repo: jackaudio/jack2#782. I think pipewire-debian broke some shared library that jackd needs.

To Reproduce

  • configure system to work with pulseaudio and jackd
  • install pipewire-debian
  • remove pipewire-debian
  • attempt to use jack

Expected behavior
Removing pipewire-debian should leave system in same state as before installation

Desktop (please complete the following information):

  • Distro: Pop!_OS 21.04
  • Desktop Environment: Gnome on Wayland

Journal log and status of related services
See detailed errors at other issue: jackaudio/jack2#782

@daveriedstra
Copy link
Author

daveriedstra commented Jul 30, 2021

It turns out that at least one extra package is left over after purging the PPA. Removing it with apt remove pipewire-audio-client-libraries fixes jack functionality (I guess jack was trying to use the pipewire libs).

I think the readme should mention that some of these packages can cause these kinds of conflicts. In my case, I couldn't fully remove pulseaudio without breaking the desktop, so I had to spend hours debugging this. I don't know whether some other package will cause a conflict in the future. A note about these in the uninstall section would have saved me so much time.

edit - these are the pipewire packages from the install which I was able to uninstall without breaking the desktop:

  • pipewire-audio-client-libraries
  • libspa-0.2-jack
  • libspa-0.2-bluetooth
  • libspa-0.2-dev
  • libpipewire-0.3-dev
  • pipewire-doc
  • pipewire-tests

@daveriedstra daveriedstra changed the title Removing PPA breaks jackd PPA removal leaves packages which break jackd Jul 30, 2021
@souravdas142
Copy link
Collaborator

What ppa-purge do is, remove packages from a ppa and install official version of those ppa packages, right ? thats mean it is downgrading. In that case pipewire-audio-client-libraries must be 0.3.24 that is ubuntu's official package. Can you do a work in favour of me ? can you install pipewire-audio-client-libraries 0.3.32 from this ppa again and test whether it is reproducing the same or not ? or better is can you please install everything from this ppa but let pulseaudio as the system default audio server and test whether its reproducing the same ?

from the 0.3.24 there are lots of improvement in 0.3.32 thats why I'm asking. May be its fixed in 0.3.32.

@daveriedstra
Copy link
Author

I can do that but not for a few days, since I now need to catch up on work. Regardless, I don't think those packages should remain after the uninstall.

@souravdas142
Copy link
Collaborator

@daveriedstra you can always uninstall it manually, ppa-purge is to ease the process of downgrading. ubuntu 20.10 or 21.04 have the pipewire installed by default, So other packages those are depending on pipewire will also remove if you gonna to uninstall all pipewire packages even you can break your whole distro. what I said earlier ppa-purge will uninstall all packages from a ppa and install those ppa packages from official repo, what is called downgrading. There is no way to leave your system in prevous state except you manually do it.

Now may be from 21.10 pipewire will come preinstalled without pulseaudio. So if I put this instruction on uninstall section may be it will not generalise instruction for all ? Moreover this PPA is created to install pulseaudio and pipewire installed side by side.

In that case what I can do, I can put this in troubleshotting page. But before putting I want to hear #27 (comment) and this will need your help. take your time. and please report back.

@souravdas142 souravdas142 added the wontfix This will not be worked on label Aug 27, 2021
@daveriedstra
Copy link
Author

Ok, I just installed the PPA again to see if things have changed (with pipewire 0.3.35-1~ubuntu21.04), it seems that they haven't. Stopping pipewire with systemctl --user stop pipewire.{service,socket} and attempting to start jackd does not work. Here's the output of jackd --help to show the errors:

jackdmp 1.9.17
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2021 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
[W][24946.758570][       control.c:   87 jackctl_server_create2()] not implemented 0x56381538ded0 0x56381538e040 0x56381538e110
[W][24946.758627][       control.c:  174 jackctl_server_get_parameters()] 0x56381607cc90: not implemented

Usage: jackdmp [ --no-realtime OR -r ]
               [ --realtime OR -R [ --realtime-priority OR -P priority ] ]
      (the two previous arguments are mutually exclusive. The default is --realtime)
               [ --name OR -n server-name ]
               [ --timeout OR -t client-timeout-in-msecs ]
               [ --loopback OR -L loopback-port-number ]
               [ --port-max OR -p maximum-number-of-ports]
               [ --slave-backend OR -X slave-backend-name ]
               [ --internal-client OR -I internal-client-name ]
               [ --internal-session-file OR -C internal-session-file ]
               [ --verbose OR -v ]
               [ --clocksource OR -c [ h(pet) | s(ystem) ]
               [ --autoconnect OR -a <modechar>]
[W][24946.758659][       control.c:  174 jackctl_server_get_parameters()] 0x56381607cc90: not implemented
                 where <modechar> is one of:
[W][24946.758673][       control.c:  395 jackctl_parameter_get_enum_constraints_ (nil): not implemented
               [ --replace-registry ]
               [ --silent OR -s ]
               [ --sync OR -S ]
               [ --temporary OR -T ]
               [ --version OR -V ]
         -d master-backend-name [ ... master-backend args ... ]
       jackdmp -d master-backend-name --help
             to display options for each master backend

[W][24946.758688][       control.c:  162 jackctl_server_get_drivers_list()] 0x56381607cc90: not implemented
Available backends:
[W][24946.758699][       control.c:  253 jackctl_driver_get_type()] 0x56381607cd20: not implemented
[W][24946.758709][       control.c:  245 jackctl_driver_get_name()] 0x56381607cd20: not implemented
      dummy (slave)

[W][24946.758724][       control.c:  185 jackctl_server_get_internals_list()] 0x56381607cc90: not implemented
Available internals:

[W][24946.758737][       control.c:  114 jackctl_server_destroy()] 0x56381607cc90: not implemented

I can put this in troubleshooting page

That would be great, thanks!

@souravdas142
Copy link
Collaborator

I think some functionality still remained unimplemented. Or hapenning something beyond of my understanding. Did not you get any help from this : https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Limitations-in-0.3 ? I think you should create a bug report at : https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/new?

@souravdas142 souravdas142 reopened this Sep 15, 2021
@daveriedstra
Copy link
Author

What I think is happening is the pipewire jack libraries are installed with pipewire-audio-client-libraries and native jackd tries to use those libraries, which fail because they are not designed to be used outside of pipewire. That seems more like a configuration issue rather than a bug in pipewire. Does my understanding seem correct to you?

(I'm also hesitant to file an issue upstream because there's a lot of noise there, so I want to make sure it's actually a bug)

@souravdas142
Copy link
Collaborator

souravdas142 commented Sep 15, 2021

Got it... thanks for the hints.

see : https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-JACK#installation

And this whole project is derived from the official debian package. and have this above config in

echo "/usr/lib/$(DEB_HOST_MULTIARCH)/pipewire-0.3/jack/" > "debian/ld.so.conf.d/pipewire-jack-$(DEB_HOST_MULTIARCH).conf"

on above gitlab wiki they are mentioning the issue is presents from 0.3.21+ maybe since then they have not update that section.

A quick fix for you everything should works just delete the file from /etc/ld.so.conf.d/pipewire-jack*.conf and then do sudo ldconfig the above error should not be shown again. I will update the package after watching what other distribution did for this. Arch Linux doesn't have like this for sure.

Edit - I'll be updating the status until final verdict. One thing I should mention you that the pipewire is built as a replacement of jack, right ? so at a instance either of jackd or pipewire should use and not the both at same time.
Also see : https://docs.voidlinux.org/config/media/pipewire.html#jack-replacement

Doing Not Doing
Fedora Arch
Debian Gentoo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants