Bug 468741 - [Spectacle suggestion] Kpipewire as an optional dependency
Summary: [Spectacle suggestion] Kpipewire as an optional dependency
Status: RESOLVED INTENTIONAL
Alias: None
Product: Spectacle
Classification: Applications
Component: General (other bugs)
Version First Reported In: 23.04.0
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Noah Davis
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-20 23:20 UTC by Dan
Modified: 2023-05-02 08:14 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan 2023-04-20 23:20:44 UTC
Since Spectacle 23.04, Kpipewire is a required dependency.

Would it be possible to turn Kpipewire into a optional dependency instead? I ask it because I don't use Pipewire and I don't need this feature in Spectacle.

Thanks!
Comment 1 Nate Graham 2023-04-21 19:47:24 UTC
I don't think this is something we're interested in doing. In general, optional dependencies make it easy for distros to to mis-package software so that features people expect are missing, and for built-from-source builds to be subtly different from distro builds in ways that cause bugs and headaches for developers. This is something that comes up endlessly.

I'll let Noah make the final call though.
Comment 2 Noah Davis 2023-05-02 08:14:02 UTC
If we wanted to support Windows or MacOS, then maybe since KPipeWire would be useless there. In general I think it's only necessary to make dependencies optional if a dependency can't be used on a given platform or has some unavoidable downsides that warrant making it possible to compile without it (e.g., legal issues).

Currently, Spectacle only uses KPipeWire for supporting recording, which is exclusive to Wayland. I can see 2 types of users that could do without KPipeWire:

- X11 users. We could make Wayland support optional, but we wouldn't want to make it possible to compile without Wayland support since Plasma is shipped with a Wayland session.
- People who don't record their screen with Spectacle. This wouldn't actually take much work to support since we already have to determine whether or not recording is supported by the platform in the C++ and QML code. However, besides making Spectacle slightly easier to get the minimum number of dependencies for or saving a bit of storage space, there's not much actual benefit for allowing recording to be disabled at build time. There isn't really a significant downside for keeping KPipeWire as a requirement either.

With those points in mind, I think the answer to whether or not KPipeWire should be optional is no, so I'm marking this as RESOLVED INTENTIONAL. Unless better reasons for optional KPipeWire support come along later, it'll probably stay this way.