Packaging Jack / pipewire application

I was reading a spec file and found this syntax:

Requires: ( alsa-plugins-pulse if pulseaudio )
Requires: ( pipewire-alsa      if pipewire )

Can somebody explains this syntax ?
I want to use this syntax to manage jack audio variance wri pipewire:

BuildRequires: ( jack-audio-connection-kit-devel if pulseaudio )
BuildRequires: ( pipewire-jack-audio-connection-kit-devel      if pipewire )

Do you think this will work ?

Those are rich/boolean dependencies and they are allowed in Fedora packages.

You can’t use them in BuildRequires though because those are only resolved once for all builds and in any case it doesn’t make any sense - you need to include everything you need to build the features you want and the build system can’t know what run time rpms the users will have.

1 Like

Thanks a lot for these links !