#1122150 pipewire: init scripts for OpenRC

Package:
pipewire
Source:
pipewire
Description:
audio and video processing engine multimedia server
Submitter:
Frost
Date:
2025-12-09 15:49:03 UTC
Severity:
normal
Tags:
#1122150#5
Date:
2025-12-08 00:38:39 UTC
From:
To:
Pipewire ships with systemd user services, but there isn't anything for other init systems. So if you use a different init system, you get no sound!

OpenRC supports user services now, so I've written some to fix that. I'm not sure how they'd interact with the systemd services on a systemd-using box, though (like systemd trying to load them and blowing up). Does anything special need to be done for that?

And of course these scripts depend on openrc-run. Maybe it'd be better to put them into a new package or something.

I'm including all three scripts here, but the other two are for pipewire-pulse and wireplumber. I figured it'd be better to include them all here in one place rather than filing three separate bug reports, but I can do separate reports on them if that'd be better.

Also, I'm not very experienced with writing init scripts yet, so I don't know if what I've got here is any good. It works on our machines... but that might not mean much!

#1122150#10
Date:
2025-12-08 01:11:26 UTC
From:
To:
Debian's openrc package includes openrc-run so there isn't anything to
worry about there.

What is the exact path where these files need to be installed?

Thank you,
Jeremy Bíha

#1122150#15
Date:
2025-12-08 01:51:04 UTC
From:
To:
Perfect! I was worried more about like, if the openrc scripts were included in the base pipewire package, it might cause issues on non-openrc systems. If they're in a separate package (or if other init systems like systemd don't choke on loading an openrc init script), that's not an issue. But now that I think about it, it's not an issue anyway, since they're not in /etc/init.d/, they're in /etc/user/init.d/, so other init systems won't even try to load them.

They go in /etc/user/init.d/. Then they can be enabled with 'rc-update --user add pipewire' etc., though that seems to be on a per-user basis, I'm not sure how to make it default for all users. That puts them in the 'default' runlevel.

...Hmm, looks like there isn't a way to enable those services by default but https://github.com/OpenRC/openrc/issues/935 looks relevant.

#1122150#20
Date:
2025-12-08 17:15:35 UTC
From:
To:

given the overall install base of openrc [1] (which is mostly
non-existant), I do not think we should install those files in /etc by
default and clutter everyones filesystem.

I'd be fine with having them provided as example files in /usr/share/doc
with a corresponding README.

After all, using openrc and openrc for user service does require many
manual steps anyway.


Michael




[1] https://qa.debian.org/popcon.php?package=openrc

#1122150#25
Date:
2025-12-08 17:45:07 UTC
From:
To:
Hi,

+1, especially as conffiles persist even after a package gets
uninstalled. (Purging is a separate, manual action.)

Or in /usr/lib/openrc/user or something similar. I don't know whether
openrc looks file in some such location though. However shipping random
files in /usr is much less annoying that adding files to /etc.

(/usr/lib/user is probably a bad name to grab by openrc, but so is
/etc/user...)

Ansgar

#1122150#30
Date:
2025-12-09 15:47:54 UTC
From:
To:
Am 08.12.25 um 18:45 schrieb Ansgar 🙀:

That's a valid point. I find /etc/user a bad and questionable choice.
Nowadays, this should be properly namespaced like say /etc/openrc/user.

Even more reason to *not* ship this in the debian package by default.

Michael