How to install EOS with Plasma, but without Pipewire?

Since I do pro audio recording I would like to use Jack2 but without Pipewire, as it still has latency issues Jack does not, but last time I did, and after I had everything setup… I found pipe wire and it’s replacements were installed by default. When I tried to uninstall it, it wanted to uninstall all of Plasma with it! I did a little digging, and found it’s because Plasma was installed as a meta package making everything dependent on everything else.
So how can I install Pipewire in the first place, so I don’t encounter that problem,as it was an unwanted endeavour to say the least. (see what I did there?). :crazy_face:

[scott@EndeavourOS ~]$ pacman -Si kwin
Repository      : extra
Name            : kwin
Version         : 5.24.5-1
Description     : An easy to use, but flexible, composited Window Manager
Architecture    : x86_64
URL             : https://kde.org/plasma-desktop/
Licenses        : LGPL
Groups          : plasma
Provides        : None
Depends On      : kscreenlocker  xcb-util-cursor  plasma-framework  kcmutils
                  kwayland-server  breeze  pipewire-session-manager
                  libqaccessibilityclient  lcms2
Optional Deps   : maliit-keyboard: virtual keyboard for kwin-wayland
Conflicts With  : None
Replaces        : None
Download Size   : 6.75 MiB
Installed Size  : 23.43 MiB
Packager        : Antonio Rojas <arojas@archlinux.org>
Build Date      : Tue 03 May 2022 08:05:10 AM EDT
Validated By    : MD5 Sum  SHA-256 Sum  Signature

kwin has a hard dependency for pipewire-media-session but since that is now deprecated, it’ll probably have to be updated to depend on wireplumber and these are essentially linked to pipewire so I’m not sure what to really tell you, but this is the current state of things. You might have to look into the pulseaudio package for your needs.

1 Like

I have pipewire installed because it’s part of Plasma, but it is not enabled. My install still runs pulseaudio. However my install was done back in 2020. I think you can run jack or alsa or whatever you choose. You don’t have to uninstall, you just need to configure the routing of your choice. Perhaps others on here can show you how?

eos-packagelist is an app that dalto wrote, and it lists all the packages installed by Calamares

$ eos-packagelist "Systembase + Common packages" | grep pipewire
gst-plugin-pipewire
pipewire-pulse
pipewire-alsa
pipewire-jack

So when installing from the live ISO, in the packages window
click on “Systembase + Common packages”
and uncheck any audio packages that you don’t want installed.

Then after the install, add whatever you want for audio packages.

Note:
eos-packagelist --list
will list all the categories of packages to be installed.

$ eos-packagelist --list
Systembase + Common packages
Firefox and language package
LTS Kernel in addition
Zen Kernel
XFCE4-Desktop
i3-Window-Manager
KDE-Desktop
GNOME-Desktop
MATE-Desktop
Cinnamon-Desktop
Budgie-Desktop
LXQT-Desktop
LXDE-Desktop
Printing-Support
Support for HP Printer/Scanner
Accessibility Tools
BSPWM Edition
Openbox Edition
Qtile Edition
Sway Edition
Worm Edition

so doing
eos-packagelist “KDE-Desktop”
will list all the packages installed if the KDE Desktop Environment is chosen in the live ISO.
There may be a package or two you might want to not install there also?

No guarantee that will do what you want, but it might be worth a try.

Pudge

Since I am prepairing to re-install EOS, I just just used it to create the list! :face_with_raised_eyebrow: How did you know?

Still quite a ways away from installing, because I am demoting the system I am on, and have to take everything but the drives out of it (a Cooler Master HAP 500, it’s huge :laughing:), and transplant a new system into it. Then I have to put the old system in a different case as a backup server and for processor sharing (I think that will be difficult :fearful:), but that may take a few days, maybe more if it doesn’t work, because beside , the only method I heard that will work, is to install another DE, and download all of the Plasma packages separately, so having pkglist may come in handy if I have to go that route; hopefully not.

sounds like a lot less hassle, and help with it would be great :kissing_heart:, or some other trick!

I don’t understand why quite a few meta packages don’t just make the bare minimum the default, and make the optional components in a list to check/uncheck all the right boxes like when installing the whole LibreOffice Suite, and some others from within pacman or yay, and not make them hard line dependent for no good reason, and with that problematic :imp:.

Thanks, everyone for helping me on this endeaviour (did it again :stuck_out_tongue_winking_eye:).

Not quite. kwin has a dependency on pipewire-session-manager which is provided by wireplumber as well:

pacman -Qi wireplumber
Name : wireplumber
Version : 0.4.10-2
Description : Session / policy manager implementation for PipeWire
Architecture : x86_64
URL : https://pipewire.pages.freedesktop.org/wireplumber/
Licenses : MIT
Groups : None
Provides : pipewire-session-manager libwireplumber-0.4.so=0-64
Depends On : pipewire>=0.3.43 lua libpipewire-0.3.so=0-64 libsystemd.so=0-64 libglib-2.0.so=0-64
libgmodule-2.0.so=0-64 libgobject-2.0.so=0-64 libgio-2.0.so=0-64
Optional Deps : wireplumber-docs: Documentation
Required By : gst-plugin-pipewire kwin pipewire-alsa pipewire-jack pipewire-pulse
Optional For : pipewire
Conflicts With : pipewire-media-session
Replaces : pipewire-media-session<=1:0.4.1-1
Installed Size : 2.11 MiB
Packager : Jan Alexander Steffens (heftig) heftig@archlinux.org
Build Date : Tue 10 May 2022 05:44:15 PM CEST
Install Date : Wed 11 May 2022 10:26:21 AM CEST
Install Reason : Explicitly installed
Install Script : Yes
Validated By : Signature

1 Like

You should be able to change pipewire to -asexplicit so it’s no longer a seen as a dependency and then remove it and then you could pull in whatever audio you prefer.

I also found this in the very helpful EOS wiki on how to use pulse instead of pipewire which you may find helpful.

Let’s say package X pulls in Y as it’s dependency.
Marking Y --asexplicit won’t stop X being dependent on it.
Removing Y would still give “will break dependency” for X if one tries.
Removing X even with -s will leave Y in the system.
:thought_balloon:
:thinking:

:question:

1 Like

I don’t know. I’m unfortunately heading to work so I can not test it. Give it a go and see what happens.

I haven’t done anything computer related recently. It’s the time of year I only work lol. Give it a go, let me know if it works or not. It makes sense to me but we’ll only know if we try it.

The other options there would be Mark everything in plasma-meta t want to keep as explicit and then remove plasma-meta as everything in it is basically a group of other things. It’s an “easy” install instead of a la carte style.

Example:

sudo pacman -S eos-packagelist 
resolving dependencies...
looking for conflicting packages...

Package (3)                  New Version  Net Change

community/python-pyaml       21.10.1-1      0.09 MiB
community/python-yaml        6.0-1          0.74 MiB
endeavouros/eos-packagelist  1.5.2-1        0.01 MiB

Total Installed Size:  0.84 MiB

:: Proceed with installation? [Y/n]

Installing eos-packagelist will pull in as dependencies python-pyaml and python-yaml (the latter dependency of the former)

 pacman -Qi python-pyaml 
Name            : python-pyaml
Version         : 21.10.1-1
Description     : PyYAML-based module to produce pretty and readable YAML-serialized data
Architecture    : any
URL             : https://pypi.python.org/pypi/pyaml
Licenses        : BSD
Groups          : None
Provides        : None
Depends On      : python-yaml
Optional Deps   : python-unidecode: Needed if same-id objects or recursion is used within serialized data
Required By     : eos-packagelist
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 95.57 KiB
Packager        : Felix Yan <felixonmars@archlinux.org>
Build Date      : Mon 14 Feb 2022 11:51:43 PM CET
Install Date    : Wed 11 May 2022 01:51:48 PM CEST
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

Marking python-pyaml as explicitly installed:

sudo pacman -D --asexplicit python-pyaml                                                   
python-pyaml: install reason has been set to 'explicitly installed

Now trying to remove it:

sudo pacman -R python-pyaml                                                   
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing python-pyaml breaks dependency 'python-pyaml' required by eos-packagelist

But:

 sudo pacman -Rs eos-packagelist 
checking dependencies...

Package (1)      Old Version  Net Change

eos-packagelist  1.5.2-1       -0.01 MiB

Total Removed Size:  0.01 MiB

:: Do you want to remove these packages? [Y/n] y
:: Processing package changes...
(1/1) removing eos-packagelist                                         [#######################################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Refreshing PackageKit...

Leaving behind python-pyaml behind in the system.

So marking pipewire as explicitly installed won’t make any difference if there is something in the system that is dependent on it. You cannot just remove it without breaking the dependency for that something.

:beach_umbrella:

2 Likes

Sounds good. I can’t say I’ve ever tried. By the next time I do, I probably won’t remember this anyway lol. But for the sake of this thread, that’s good information.

You should be able to install the pipewire-jack package and whatever dependencies it may or may not want. Then probably a systemd change, and maybe one to environment?

I dunno. Running Win 11 at the moment. Guess I’ll run the EndeavourOS installer and see what Calamares offers. It’s also probably wise to read the article on modifying the Calamares packagelist.

I also found this in the very helpful EOS wiki on how to use pulse instead of pipewire which you may find helpful.

I tried that a while back, and it’s when it wanted to uninstall the whole Plasma desktop and then some. :frowning_face: It doesn’t say anything about changing pipewire to -asexplicit and change what where :question:

Well, something already said above about this not helping in this case :wink:

That’s what I have, as Ardour needs Jack, but jack-pipewire is pipewire’s way of emulating Jack, or its replacement thereof, and it is the reason for the latency issues.

I was answering one by one, and found it after I advanced down the thread. :roll_eyes:

Well, I may have to take this up with the KDE people, it’s uufortunate they made that decision, because it’s no secret that pipewire has this issue, or at least a month ago, so I will check on it too.
I will so the system transplant surgery, and use this (my old system) for testing so I don’t tie up or even screw up the new system.