You are not logged in.

#1 2021-09-04 16:18:52

phunni
Member
From: Bristol, UK
Registered: 2003-08-13
Posts: 768

assume-installed seems to be ignored.

I'm trying to install some packages which (possibly unnecessarily) depend on jack or jack2. I don't want jack installed - because I want to use pipwire and pipewire-jack instead. Incidentally, I have exactly this issue with pulseaudio which I also want to replace with pipewire.

I have tried running pacman with "--assume-installed jack2" in an attempt to prevent jack(2) from being installed, but it seems to simply be ignored - unless I'm simply using it incorrectly.

For example, If I run:

pacman -S qemu --assume-installed jack2

jack2 will be installed. I notice in the man page for pacman that it says a "virtual" package will be installed to satisfy the dependency, but, as far as I can tell, jack2 is actually being installed. At least the files that are in the package are now present in the file system.

Am I misunderstanding something or using assume-installed wrong?

I suspect this may be a bug with pacman, but I wanted to check here first in case it isn't a bug, but user error or similar.

Thanks in advance.

Last edited by phunni (2021-09-04 16:46:35)

Offline

#2 2021-09-04 16:38:27

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,424

Re: assume-installed seems to be ignored.

How sure are you you didn't already have jack2 installed anyway ? FWIW you can't have the same issue with pulseaudio as pipewire-pulse actively conflicts and removes pulseaudio.

Also your command lacks the -S option

The option works here.

FWIW2 you probably need to --assume-installed the actual dependency, which in this case is libjack.so=0-64

Last edited by V1del (2021-09-04 16:42:50)

Online

#3 2021-09-04 16:46:21

phunni
Member
From: Bristol, UK
Registered: 2003-08-13
Posts: 768

Re: assume-installed seems to be ignored.

I'm sure I don't have jack installed as this is all part of some scripts that build my system from scratch every night. I run the script using grep to show me whenever it's doing something jack related and I can specifically see when jack2 is being installed. It's always as a dependency whenever I try and install (in this case) qemu with --assume-installed jack2.

Thanks for pointing out the missing -S - I'll fix that.

pipewire-jack should also replace jack(2), but, because it's all built with scripts and unattended, I can't give permission to uninstall jack2 - or pulse for that matter, so it just fails with a dependency clash.

Offline

#4 2021-09-04 16:50:32

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: assume-installed seems to be ignored.

If the system is being created from scratch then why does it have jack and pulseaudio already installed?


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#5 2021-09-04 16:54:56

Ammako
Member
Registered: 2021-07-16
Posts: 267

Re: assume-installed seems to be ignored.

phunni wrote:

pipewire-jack should also replace jack(2)

Check your facts. pipewire is not (currently) a replacement for jack, unlike with pulseaudio. It's merely an alternative and they can be installed together.

If you just had pipewire-jack and a dummy jack2 package installed, your programs using jack may be looking for files and libraries provided by jack2, and fail because nothing is actually there. You would need to manually run everything using pw-jack

So you might want to look into pipewire-jack-dropin (as per the wiki!), so your apps will automatically use the pipewire implementation without having to explicitly run them using pw-jack. This is not a 1:1 replacement for jack, certain things are implemented differently or plain unimplemented (you cannot use jackd or jack_control with pipewire, for instance), and if you use the dropin you cannot use the jack2 stuff anymore, not even explicitly.

Up to you whether this implementation is good enough for you, but you might be better off sticking with plain jack2.

Last edited by Ammako (2021-09-04 17:05:34)

Offline

#6 2021-09-04 17:26:41

phunni
Member
From: Bristol, UK
Registered: 2003-08-13
Posts: 768

Re: assume-installed seems to be ignored.

Slithery wrote:

If the system is being created from scratch then why does it have jack and pulseaudio already installed?

It doesn't. The problem is that they are being pulled in as a depency of other packages - despite those packages being installed with --assume-installed.

Ammako wrote:

Check your facts. pipewire is not (currently) a replacement for jack, unlike with pulseaudio. It's merely an alternative and they can be installed together

Sorry, yes they can be installed together - my mistake. That's not really central to my problem though. The wiki does also state

Alternatively, install pipewire-jack-dropin or uninstall jackAUR/jack2 to let JACK clients load the compatible libraries automatically.

So, one option, according to the wiki, is to completely uninstall jack/jack2 to avoid having to use pw-jack. Check your facts (;-p)

All of this, however, doesn't really help with the issue of why jack2 is being installed despite the command to install it having --asume-install jack2 in it.

Offline

#7 2021-09-04 17:28:43

Ammako
Member
Registered: 2021-07-16
Posts: 267

Re: assume-installed seems to be ignored.

phunni wrote:

So, one option, according to the wiki, is to completely uninstall jack/jack2 to avoid having to use pw-jack. Check your facts (;-p)

Yes, if you'd read my post, I've read the wiki. Uninstalling jack2 is not an option when packages are explicitly asking for it to be present now, is it?

So your options are to use the dropin, and sacrifice jack2-specific functionality, or... well you don't really have other options, actually, if you want pipewire to act as a drop-in replacement for jack.

It doesn't solve your initial problem, but you would most likely end up needing the dropin anyway if you're going to be replacing jack2 with a dummy package, hence why I'm bringing it up. There is a reason why those programs are specifically asking for jack2 as a dependency.

Last edited by Ammako (2021-09-04 17:34:05)

Offline

#8 2021-09-04 17:38:53

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: assume-installed seems to be ignored.

phunni wrote:
Slithery wrote:

If the system is being created from scratch then why does it have jack and pulseaudio already installed?

It doesn't. The problem is that they are being pulled in as a depency of other packages - despite those packages being installed with --assume-installed.

Only if installed as separate transactions, not if installed together. For example...

pacman -S efl
pacman -S pipewire-pulse

will first install efl and pulseaudio (as a dependency) and then prompt for removal of pulseaudio when the second command is run.

If you instead do...

pacman -S efl pipewire-pulse

then pulseaudio is never installed and you won't be prompted for its removal.

TLDR - Just install pipewire-pulse in the same transaction as the package that depends on pulseaudio.


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#9 2021-09-04 17:48:27

Ammako
Member
Registered: 2021-07-16
Posts: 267

Re: assume-installed seems to be ignored.

Echoing V1del's edit, in case you missed it earlier

V1del wrote:

FWIW2 you probably need to --assume-installed the actual dependency, which in this case is libjack.so=0-64

As qemu doesn't actually care about jack2, it just wants libjack.so=0-64 (which for now happens to only be provided by jack2, but that's a technicality.)

Offline

#10 2021-09-04 17:53:21

phunni
Member
From: Bristol, UK
Registered: 2003-08-13
Posts: 768

Re: assume-installed seems to be ignored.

Ammako wrote:
phunni wrote:

So, one option, according to the wiki, is to completely uninstall jack/jack2 to avoid having to use pw-jack. Check your facts (;-p)

Yes, if you'd read my post, I've read the wiki. Uninstalling jack2 is not an option when packages are explicitly asking for it to be present now, is it?

So your options are to use the dropin, and sacrifice jack2-specific functionality, or... well you don't really have other options, actually, if you want pipewire to act as a drop-in replacement for jack.

It doesn't solve your initial problem, but you would most likely end up needing the dropin anyway if you're going to be replacing jack2 with a dummy package, hence why I'm bringing it up. There is a reason why those programs are specifically asking for jack2 as a dependency.

Yes - you're right - I was only being tongue in cheek with my "check your facts". The problem is that if I try and install the dropin it clashes with jack which then cause the build to fail. If, however, I could prevent jack from being installed in the first place then there's no problem.

Honestly - I do understand the implications/issues with what I'm trying to do. It's just that it doesn't seem to be possible in practice despite the fact that it should be because --assume-installed isn't working properly for me.

Slithery wrote:

Only if installed as separate transactions, not if installed together. For example...

pacman -S efl
pacman -S pipewire-pulse
will first install efl and pulseaudio (as a dependency) and then prompt for removal of pulseaudio when the second command is run.

If you instead do...

pacman -S efl pipewire-pulse
then pulseaudio is never installed and you won't be prompted for its removal.

TLDR - Just install pipewire-pulse in the same transaction as the package that depends on pulseaudio.

There are so many packages that (unnecessarily imho) depend on jack that taking that approach would include installing the pipewire jack dropin several times - or, at least, including it in a pacman command - obviously it wouldn't be installed multiple times. Having said that, some sort of approach based on what you're saying may be the way to go. I just don't get why I need to do something like that instead of just adding --assume-installed.

Offline

#11 2021-09-04 17:57:46

Ammako
Member
Registered: 2021-07-16
Posts: 267

Re: assume-installed seems to be ignored.

phunni wrote:

The problem is that if I try and install the dropin it clashes with jack which then cause the build to fail.

It does? That shouldn't happen, what does it say when it fails?

[ammako@arch pipewire-dropin]$ pacman -Qs jack
local/jack2 1.9.19-2
    The JACK low-latency audio server
local/pipewire-jack 1:0.3.34-1
    Low-latency audio/video router and processor - JACK support
local/pipewire-jack-dropin 3-2
    Use pipewire as drop-in replacement for JACK

Offline

#12 2021-09-04 18:02:44

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: assume-installed seems to be ignored.

phunni wrote:

There are so many packages that (unnecessarily imho) depend on jack that taking that approach would include installing the pipewire jack dropin several times - or, at least, including it in a pacman command - obviously it wouldn't be installed multiple times. Having said that, some sort of approach based on what you're saying may be the way to go. I just don't get why I need to do something like that instead of just adding --assume-installed.

Why are you running several pacman commands anyway? Just have your script build a list of packages and run pacman once at the end.

PS - Did you try V1del's suggestion in post #2 yet?


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#13 2021-09-04 18:10:32

Ammako
Member
Registered: 2021-07-16
Posts: 267

Re: assume-installed seems to be ignored.

fwiw, --assume-installed libjack.so=0-64 is the solution

Offline

#14 2021-09-04 20:46:30

phunni
Member
From: Bristol, UK
Registered: 2003-08-13
Posts: 768

Re: assume-installed seems to be ignored.

Ammako wrote:

fwiw, --assume-installed libjack.so=0-64 is the solution

Thank you - I'll give that a go and report back.

Last edited by phunni (2021-09-04 20:46:43)

Offline

Board footer

Powered by FluxBB