fork pipewire with dinit support in artix-pipewire-launcher
Fork pipewire 1:1.6.7-1 from Artix world repo with a patched artix-pipewire-launcher that sets SUPPORT='YES' for dinit. Previously the launcher treated dinit as unsupported (alongside openrc), which broke XDG autostart of pipewire.desktop on dinit-based systems. Users were told to use dinitctl instead. This patch enables direct XDG autostart on dinit by changing: dinit|openrc) SUPPORT='' ;; to: openrc) SUPPORT='' ;; dinit|runit|s6) SUPPORT='YES' ;; Add pipewire to packages.yaml so CI picks it up.
This commit is contained in:
@@ -10,6 +10,7 @@ packages:
|
|||||||
- antergos-welcome
|
- antergos-welcome
|
||||||
- antergos-grub-theme
|
- antergos-grub-theme
|
||||||
- antergos-live
|
- antergos-live
|
||||||
|
- pipewire
|
||||||
- calamares
|
- calamares
|
||||||
- calamares-branding-antergos-next
|
- calamares-branding-antergos-next
|
||||||
- calamares-branding-antergos-next-minimal
|
- calamares-branding-antergos-next-minimal
|
||||||
|
|||||||
@@ -89,18 +89,18 @@ Item {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
slides: [
|
slides: [
|
||||||
Dia {
|
Dia {
|
||||||
title: qsTr("Welcome to Antergos NeXT")
|
title: qsTr("Welcome to Antergos NeXT Minimal")
|
||||||
body: qsTr("A modern Arch Linux experience built on Artix Linux. Rolling release, OpenRC init, and the latest software.")
|
body: qsTr("Arch Linux powered by Artix. Rolling release, dinit init, Xfce desktop, and the latest software.")
|
||||||
footer: qsTr("Choose your preferred desktop environment during setup")
|
footer: qsTr("Choose your preferred desktop environment during setup")
|
||||||
},
|
},
|
||||||
Dia {
|
Dia {
|
||||||
title: qsTr("Desktop Environments")
|
title: qsTr("Desktop Environments")
|
||||||
body: qsTr("Select from KDE Plasma, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
|
body: qsTr("Select from KDE Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
|
||||||
footer: qsTr("A curated selection of the best Linux desktops")
|
footer: qsTr("A curated selection of the best Linux desktops")
|
||||||
},
|
},
|
||||||
Dia {
|
Dia {
|
||||||
title: qsTr("Antergos Tools")
|
title: qsTr("Antergos Tools")
|
||||||
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to Arch Linux repositories and the AUR.")
|
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to the AUR.")
|
||||||
footer: qsTr("Everything you need to get started")
|
footer: qsTr("Everything you need to get started")
|
||||||
},
|
},
|
||||||
Dia {
|
Dia {
|
||||||
|
|||||||
@@ -90,17 +90,17 @@ Item {
|
|||||||
slides: [
|
slides: [
|
||||||
Dia {
|
Dia {
|
||||||
title: qsTr("Welcome to Antergos NeXT")
|
title: qsTr("Welcome to Antergos NeXT")
|
||||||
body: qsTr("A modern Arch Linux experience built on Artix Linux. Rolling release, OpenRC init, and the latest software.")
|
body: qsTr("Arch Linux powered by Artix. Rolling release, dinit init, and the latest software.")
|
||||||
footer: qsTr("Choose your preferred desktop environment during setup")
|
footer: qsTr("Choose your preferred desktop environment during setup")
|
||||||
},
|
},
|
||||||
Dia {
|
Dia {
|
||||||
title: qsTr("Desktop Environments")
|
title: qsTr("Desktop Environments")
|
||||||
body: qsTr("Select from KDE Plasma, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
|
body: qsTr("Select from KDE Plasma, Xfce, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
|
||||||
footer: qsTr("A curated selection of the best Linux desktops")
|
footer: qsTr("A curated selection of the best Linux desktops")
|
||||||
},
|
},
|
||||||
Dia {
|
Dia {
|
||||||
title: qsTr("Antergos Tools")
|
title: qsTr("Antergos Tools")
|
||||||
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to Arch Linux repositories and the AUR.")
|
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to the AUR.")
|
||||||
footer: qsTr("Everything you need to get started")
|
footer: qsTr("Everything you need to get started")
|
||||||
},
|
},
|
||||||
Dia {
|
Dia {
|
||||||
|
|||||||
@@ -0,0 +1,583 @@
|
|||||||
|
# Maintainer: David Runge <dvzrv@archlinux.org>
|
||||||
|
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
|
||||||
|
# Contributor: Jan de Groot <jgc@archlinux.org>
|
||||||
|
# Antergos NeXT: patched artix-pipewire-launcher to support dinit
|
||||||
|
|
||||||
|
pkgbase=pipewire
|
||||||
|
pkgname=(
|
||||||
|
pipewire
|
||||||
|
libpipewire
|
||||||
|
alsa-card-profiles
|
||||||
|
pipewire-docs
|
||||||
|
pipewire-libcamera
|
||||||
|
pipewire-audio
|
||||||
|
pipewire-alsa
|
||||||
|
pipewire-ffado
|
||||||
|
pipewire-jack-client
|
||||||
|
pipewire-jack
|
||||||
|
pipewire-pulse
|
||||||
|
pipewire-roc
|
||||||
|
gst-plugin-pipewire
|
||||||
|
pipewire-zeroconf
|
||||||
|
pipewire-v4l2
|
||||||
|
pipewire-x11-bell
|
||||||
|
pipewire-session-manager
|
||||||
|
pulse-native-provider
|
||||||
|
)
|
||||||
|
pkgver=1.6.7
|
||||||
|
pkgrel=1
|
||||||
|
epoch=1
|
||||||
|
pkgdesc="Low-latency audio/video router and processor (Antergos NeXT: dinit support in artix-pipewire-launcher)"
|
||||||
|
url="https://pipewire.org"
|
||||||
|
arch=(x86_64)
|
||||||
|
license=(MIT)
|
||||||
|
makedepends=(
|
||||||
|
alsa-lib
|
||||||
|
avahi
|
||||||
|
bluez-libs
|
||||||
|
dbus
|
||||||
|
doxygen
|
||||||
|
fftw
|
||||||
|
git
|
||||||
|
glib2
|
||||||
|
glib2-devel
|
||||||
|
graphviz
|
||||||
|
gst-plugins-base
|
||||||
|
jack2
|
||||||
|
libcamera
|
||||||
|
libcanberra
|
||||||
|
libebur128
|
||||||
|
libfdk-aac
|
||||||
|
libffado
|
||||||
|
libfreeaptx
|
||||||
|
libgcc
|
||||||
|
liblc3
|
||||||
|
libldac
|
||||||
|
libmysofa
|
||||||
|
libpulse
|
||||||
|
libsndfile
|
||||||
|
libstdc++
|
||||||
|
libusb
|
||||||
|
libx11
|
||||||
|
libxfixes
|
||||||
|
lilv
|
||||||
|
meson
|
||||||
|
ncurses
|
||||||
|
opus
|
||||||
|
python-docutils
|
||||||
|
python-packaging
|
||||||
|
readline
|
||||||
|
roc-toolkit
|
||||||
|
rtkit
|
||||||
|
sbc
|
||||||
|
sdl2
|
||||||
|
spandsp
|
||||||
|
valgrind
|
||||||
|
webrtc-audio-processing-1
|
||||||
|
)
|
||||||
|
checkdepends=(
|
||||||
|
desktop-file-utils
|
||||||
|
openal
|
||||||
|
)
|
||||||
|
source=(
|
||||||
|
"git+https://gitlab.freedesktop.org/pipewire/pipewire.git#tag=$pkgver"
|
||||||
|
systemd.patch
|
||||||
|
artix-pipewire-launcher
|
||||||
|
)
|
||||||
|
b2sums=('SKIP'
|
||||||
|
'SKIP'
|
||||||
|
'SKIP')
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd pipewire
|
||||||
|
patch -Np1 -i ../systemd.patch
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
local meson_options=(
|
||||||
|
-D bluez5-codec-lc3plus=disabled
|
||||||
|
-D bluez5-codec-ldac-dec=disabled
|
||||||
|
-D docs=enabled
|
||||||
|
-D jack-devel=true
|
||||||
|
-D libjack-path=/usr/lib
|
||||||
|
-D man=enabled
|
||||||
|
-D rlimits-install=false
|
||||||
|
-D selinux=disabled
|
||||||
|
-D session-managers=[]
|
||||||
|
-D snap=disabled
|
||||||
|
-D udevrulesdir=/usr/lib/udev/rules.d
|
||||||
|
-D rlimits-install=false
|
||||||
|
-D logind-provider=libelogind
|
||||||
|
)
|
||||||
|
|
||||||
|
artix-meson pipewire build "${meson_options[@]}"
|
||||||
|
meson compile -C build
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
meson test -C build --print-errorlogs
|
||||||
|
}
|
||||||
|
|
||||||
|
_pick() {
|
||||||
|
local p="$1" f d; shift
|
||||||
|
for f; do
|
||||||
|
d="$srcdir/$p/${f#$pkgdir/}"
|
||||||
|
mkdir -p "$(dirname "$d")"
|
||||||
|
mv "$f" "$d"
|
||||||
|
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_pwname=pipewire-0.3
|
||||||
|
_spaname=spa-0.2
|
||||||
|
|
||||||
|
package_pipewire() {
|
||||||
|
license+=(
|
||||||
|
# libspa-alsa
|
||||||
|
LGPL-2.1-or-later
|
||||||
|
)
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
dbus libdbus-1.so
|
||||||
|
glib2 libglib-2.0.so
|
||||||
|
glibc
|
||||||
|
libgcc
|
||||||
|
ncurses libncursesw.so
|
||||||
|
readline libreadline.so
|
||||||
|
)
|
||||||
|
optdepends=(
|
||||||
|
'gst-plugin-pipewire: GStreamer plugin'
|
||||||
|
'pipewire-alsa: ALSA configuration'
|
||||||
|
'pipewire-audio: Audio support'
|
||||||
|
'pipewire-docs: Documentation'
|
||||||
|
'pipewire-ffado: FireWire support'
|
||||||
|
'pipewire-jack-client: PipeWire as JACK client'
|
||||||
|
'pipewire-jack: JACK replacement'
|
||||||
|
'pipewire-libcamera: Libcamera support'
|
||||||
|
'pipewire-pulse: PulseAudio replacement'
|
||||||
|
'pipewire-roc: ROC streaming'
|
||||||
|
'pipewire-session-manager: Session manager'
|
||||||
|
'pipewire-v4l2: V4L2 interceptor'
|
||||||
|
'pipewire-x11-bell: X11 bell'
|
||||||
|
'pipewire-zeroconf: Zeroconf support'
|
||||||
|
'realtime-privileges: realtime privileges with rt module'
|
||||||
|
'rtkit: realtime privileges with rtkit module'
|
||||||
|
)
|
||||||
|
|
||||||
|
meson install -C build --destdir "$pkgdir"
|
||||||
|
|
||||||
|
(
|
||||||
|
cd "$pkgdir"
|
||||||
|
|
||||||
|
# Replace copies with symlinks
|
||||||
|
for _f in pipewire-{aes67,avb,pulse}; do
|
||||||
|
cmp usr/bin/pipewire usr/bin/$_f
|
||||||
|
ln -sf pipewire usr/bin/$_f
|
||||||
|
done
|
||||||
|
|
||||||
|
_pick lib usr/include/{$_pwname,$_spaname}
|
||||||
|
_pick lib usr/lib/$_spaname/libspa.so*
|
||||||
|
_pick lib usr/lib/lib$_pwname.so*
|
||||||
|
_pick lib usr/lib/pkgconfig/lib{$_pwname,$_spaname}.pc
|
||||||
|
|
||||||
|
_pick acp usr/lib/udev
|
||||||
|
_pick acp usr/share/alsa-card-profile
|
||||||
|
|
||||||
|
_pick docs usr/share/doc
|
||||||
|
|
||||||
|
_pick libcamera usr/lib/$_spaname/libcamera
|
||||||
|
|
||||||
|
|
||||||
|
_pick audio usr/bin/pipewire-{aes67,avb}
|
||||||
|
_pick audio usr/bin/pw-{cat,loopback,mididump,midi2play,midi2record,sysex}
|
||||||
|
_pick audio usr/bin/pw-{dsd,enc,midi,}play
|
||||||
|
_pick audio usr/bin/pw-{midi,}record
|
||||||
|
_pick audio usr/bin/spa-{acp-tool,resample}
|
||||||
|
_pick audio usr/lib/alsa-lib
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-avb.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-echo-cancel.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-fallback-sink.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-filter-chain*.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-loopback.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-netjack2*.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-parametric-equalizer.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-pipe-tunnel.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-protocol-simple.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-rtp-{sap,sink,source}.so
|
||||||
|
_pick audio usr/lib/$_pwname/libpipewire-module-vban*.so
|
||||||
|
_pick audio usr/lib/$_spaname/{aec,alsa,audio*,avb,bluez5,filter-graph}
|
||||||
|
_pick audio usr/share/alsa
|
||||||
|
_pick audio usr/share/man/man1/pw-{cat,loopback,mididump}.1
|
||||||
|
_pick audio usr/share/man/man1/spa-{acp-tool,resample}.1
|
||||||
|
_pick audio usr/share/man/man5/pipewire-filter-chain.conf.5
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-avb.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-echo-cancel.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-fallback-sink.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-filter-chain*.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-loopback.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-netjack2*.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-parametric-equalizer.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-pipe-tunnel.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-protocol-simple.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-rtp-{sap,sink,source}.7
|
||||||
|
_pick audio usr/share/man/man7/libpipewire-module-vban*.7
|
||||||
|
_pick audio usr/share/pipewire/filter-chain*
|
||||||
|
_pick audio usr/share/pipewire/pipewire-{aes67,avb}.conf
|
||||||
|
_pick audio usr/share/$_spaname/bluez5
|
||||||
|
|
||||||
|
_pick ffado usr/lib/$_pwname/libpipewire-module-ffado*.so
|
||||||
|
_pick ffado usr/share/man/man7/libpipewire-module-ffado-driver.7
|
||||||
|
|
||||||
|
_pick jack-client usr/lib/$_pwname/libpipewire-module-jack{-tunnel,dbus-detect}.so
|
||||||
|
_pick jack-client usr/lib/$_spaname/jack
|
||||||
|
_pick jack-client usr/share/man/man7/libpipewire-module-jack{-tunnel,dbus-detect}.7
|
||||||
|
|
||||||
|
_pick jack usr/bin/pw-jack
|
||||||
|
_pick jack usr/include/jack
|
||||||
|
_pick jack usr/lib/libjack*
|
||||||
|
_pick jack usr/lib/pkgconfig/jack*.pc
|
||||||
|
_pick jack usr/share/man/man1/pw-jack.1
|
||||||
|
_pick jack usr/share/man/man5/pipewire-jack.conf.5
|
||||||
|
_pick jack usr/share/pipewire/jack.conf
|
||||||
|
|
||||||
|
_pick pulse usr/bin/pipewire-pulse
|
||||||
|
_pick pulse usr/lib/$_pwname/libpipewire-module-protocol-pulse.so
|
||||||
|
_pick pulse usr/lib/$_pwname/libpipewire-module-pulse-tunnel.so
|
||||||
|
_pick pulse usr/share/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml
|
||||||
|
_pick pulse usr/share/man/man1/pipewire-pulse.1
|
||||||
|
_pick pulse usr/share/man/man5/pipewire-pulse.conf.5
|
||||||
|
_pick pulse usr/share/man/man7/libpipewire-module-{protocol-pulse,pulse-tunnel}.7
|
||||||
|
_pick pulse usr/share/man/man7/pipewire-pulse*.7
|
||||||
|
_pick pulse usr/share/pipewire/pipewire-pulse.conf
|
||||||
|
|
||||||
|
_pick roc usr/lib/$_pwname/libpipewire-module-roc*.so
|
||||||
|
_pick roc usr/share/man/man7/libpipewire-module-roc-{sink,source}.7
|
||||||
|
|
||||||
|
_pick gst usr/lib/gstreamer-1.0
|
||||||
|
|
||||||
|
_pick zeroconf usr/lib/$_pwname/libpipewire-module-{raop,zeroconf}-*.so
|
||||||
|
_pick zeroconf usr/lib/$_pwname/libpipewire-module-rtp-session.so
|
||||||
|
_pick zeroconf usr/lib/$_pwname/libpipewire-module-snapcast-discover.so
|
||||||
|
_pick zeroconf usr/share/man/man7/libpipewire-module-{raop,zeroconf}-*.7
|
||||||
|
_pick zeroconf usr/share/man/man7/libpipewire-module-rtp-session.7
|
||||||
|
_pick zeroconf usr/share/man/man7/libpipewire-module-snapcast-discover.7
|
||||||
|
|
||||||
|
_pick v4l2 usr/bin/pw-v4l2 usr/lib/$_pwname/v4l2
|
||||||
|
_pick v4l2 usr/share/man/man1/pw-v4l2.1
|
||||||
|
|
||||||
|
_pick x11-bell usr/lib/$_pwname/libpipewire-module-x11-bell.so
|
||||||
|
_pick x11-bell usr/share/man/man7/libpipewire-module-x11-bell.7
|
||||||
|
|
||||||
|
# directories for overrides
|
||||||
|
mkdir -p etc/pipewire/{client-rt,client,minimal,pipewire}.conf.d
|
||||||
|
)
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
install -Dm755 $srcdir/artix-pipewire-launcher $pkgdir/usr/bin
|
||||||
|
}
|
||||||
|
|
||||||
|
package_libpipewire() {
|
||||||
|
pkgdesc+=" - client library"
|
||||||
|
depends=(
|
||||||
|
glibc
|
||||||
|
libgcc
|
||||||
|
)
|
||||||
|
provides=(lib$_pwname.so)
|
||||||
|
|
||||||
|
mv lib/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_alsa-card-profiles() {
|
||||||
|
pkgdesc+=" - ALSA card profiles"
|
||||||
|
license=(LGPL-2.1-or-later)
|
||||||
|
|
||||||
|
mv acp/* "$pkgdir"
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-docs() {
|
||||||
|
pkgdesc+=" - documentation"
|
||||||
|
|
||||||
|
mv docs/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-libcamera() {
|
||||||
|
pkgdesc+=" - Libcamera support"
|
||||||
|
depends=(
|
||||||
|
glibc
|
||||||
|
libcamera libcamera-base.so libcamera.so
|
||||||
|
libgcc
|
||||||
|
libstdc++
|
||||||
|
pipewire
|
||||||
|
)
|
||||||
|
|
||||||
|
mv libcamera/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-audio() {
|
||||||
|
pkgdesc+=" - Audio support"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
alsa-card-profiles
|
||||||
|
alsa-lib libasound.so
|
||||||
|
bluez-libs libbluetooth.so
|
||||||
|
dbus libdbus-1.so
|
||||||
|
fftw libfftw3f.so
|
||||||
|
glib2 libg{lib,object,io}-2.0.so
|
||||||
|
glibc
|
||||||
|
libebur128
|
||||||
|
libfdk-aac libfdk-aac.so
|
||||||
|
libfreeaptx libfreeaptx.so
|
||||||
|
libgcc
|
||||||
|
liblc3 liblc3.so
|
||||||
|
libldac libldacBT_enc.so
|
||||||
|
libmysofa libmysofa.so
|
||||||
|
libsndfile libsndfile.so
|
||||||
|
libstdc++
|
||||||
|
libusb libusb-1.0.so
|
||||||
|
lilv liblilv-0.so
|
||||||
|
opus libopus.so
|
||||||
|
sbc libsbc.so
|
||||||
|
spandsp libspandsp.so
|
||||||
|
webrtc-audio-processing-1 libwebrtc-audio-processing-1.so
|
||||||
|
)
|
||||||
|
provides=(
|
||||||
|
ladspa-host
|
||||||
|
lv2-host
|
||||||
|
)
|
||||||
|
|
||||||
|
mv audio/* "$pkgdir"
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/etc/alsa/conf.d"
|
||||||
|
ln -st "$pkgdir/etc/alsa/conf.d" \
|
||||||
|
/usr/share/alsa/alsa.conf.d/50-pipewire.conf
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-alsa() {
|
||||||
|
pkgdesc+=" - ALSA configuration"
|
||||||
|
depends=(
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
pipewire-session-manager
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir -p "$pkgdir/etc/alsa/conf.d"
|
||||||
|
ln -st "$pkgdir/etc/alsa/conf.d" \
|
||||||
|
/usr/share/alsa/alsa.conf.d/99-pipewire-default.conf
|
||||||
|
|
||||||
|
install -Dm644 /dev/null \
|
||||||
|
"$pkgdir/usr/share/pipewire/media-session.d/with-alsa"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-ffado() {
|
||||||
|
pkgdesc+=" - FireWire support"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
glibc
|
||||||
|
libffado libffado.so
|
||||||
|
)
|
||||||
|
|
||||||
|
mv ffado/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-jack-client() {
|
||||||
|
pkgdesc+=" - PipeWire as JACK client"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
dbus libdbus-1.so
|
||||||
|
glibc
|
||||||
|
jack libjack.so
|
||||||
|
libgcc
|
||||||
|
)
|
||||||
|
conflicts=(pipewire-jack)
|
||||||
|
|
||||||
|
mv jack-client/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-jack() {
|
||||||
|
pkgdesc+=" - JACK replacement"
|
||||||
|
license+=(
|
||||||
|
# libjackserver
|
||||||
|
GPL-2.0-only
|
||||||
|
LGPL-2.1-or-later
|
||||||
|
)
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
glibc
|
||||||
|
pipewire-session-manager
|
||||||
|
sh
|
||||||
|
)
|
||||||
|
optdepends=(
|
||||||
|
'jack-example-tools: for official JACK example-clients and tools'
|
||||||
|
)
|
||||||
|
conflicts=(
|
||||||
|
jack
|
||||||
|
jack2
|
||||||
|
pipewire-jack-client
|
||||||
|
)
|
||||||
|
provides=(
|
||||||
|
jack
|
||||||
|
libjack.so
|
||||||
|
libjacknet.so
|
||||||
|
libjackserver.so
|
||||||
|
)
|
||||||
|
|
||||||
|
mv jack/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dm644 /dev/null \
|
||||||
|
"$pkgdir/usr/share/pipewire/media-session.d/with-jack"
|
||||||
|
|
||||||
|
# directories for overrides
|
||||||
|
mkdir -p "$pkgdir/etc/pipewire/jack.conf.d"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
package_pipewire-pulse() {
|
||||||
|
pkgdesc+=" - PulseAudio replacement"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
avahi libavahi-{client,common}.so
|
||||||
|
dbus libdbus-1.so
|
||||||
|
dconf
|
||||||
|
glib2 libg{lib,object,io}-2.0.so
|
||||||
|
glibc
|
||||||
|
libgcc
|
||||||
|
libpulse libpulse.so
|
||||||
|
pipewire-session-manager
|
||||||
|
)
|
||||||
|
provides=(pulse-native-provider)
|
||||||
|
conflicts=(pulseaudio)
|
||||||
|
|
||||||
|
mv pulse/* "$pkgdir"
|
||||||
|
|
||||||
|
# directory for overrides
|
||||||
|
mkdir -p "$pkgdir/etc/pipewire/pipewire-pulse.conf.d"
|
||||||
|
|
||||||
|
install -Dm644 /dev/null \
|
||||||
|
"$pkgdir/usr/share/pipewire/media-session.d/with-pulseaudio"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-roc() {
|
||||||
|
pkgdesc+=" - ROC streaming support"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
glibc
|
||||||
|
libgcc
|
||||||
|
roc-toolkit libroc.so
|
||||||
|
)
|
||||||
|
|
||||||
|
mv roc/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_gst-plugin-pipewire() {
|
||||||
|
pkgdesc="Multimedia graph framework - pipewire plugin"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
glib2 libg{lib,object}-2.0.so
|
||||||
|
glibc
|
||||||
|
gst-plugins-base-libs
|
||||||
|
gstreamer
|
||||||
|
libgcc
|
||||||
|
pipewire-session-manager
|
||||||
|
)
|
||||||
|
|
||||||
|
mv gst/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-zeroconf() {
|
||||||
|
pkgdesc+=" - Zeroconf support"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
avahi libavahi-{client,common}.so
|
||||||
|
glibc
|
||||||
|
libgcc
|
||||||
|
openssl libcrypto.so
|
||||||
|
opus libopus.so
|
||||||
|
)
|
||||||
|
|
||||||
|
mv zeroconf/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-v4l2() {
|
||||||
|
pkgdesc+=" - V4L2 interceptor"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
glibc
|
||||||
|
pipewire-session-manager
|
||||||
|
sh
|
||||||
|
)
|
||||||
|
|
||||||
|
mv v4l2/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-x11-bell() {
|
||||||
|
pkgdesc+=" - X11 bell"
|
||||||
|
depends=(
|
||||||
|
"libpipewire=$epoch:$pkgver-$pkgrel" lib$_pwname.so
|
||||||
|
"pipewire-audio=$epoch:$pkgver-$pkgrel"
|
||||||
|
"pipewire=$epoch:$pkgver-$pkgrel"
|
||||||
|
glibc
|
||||||
|
libcanberra libcanberra.so
|
||||||
|
libx11
|
||||||
|
libxfixes
|
||||||
|
)
|
||||||
|
|
||||||
|
mv x11-bell/* "$pkgdir"
|
||||||
|
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 pipewire/COPYING
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pipewire-session-manager() {
|
||||||
|
pkgdesc="Session manager for PipeWire (default provider)"
|
||||||
|
license=(CC0-1.0)
|
||||||
|
depends=(wireplumber)
|
||||||
|
}
|
||||||
|
|
||||||
|
package_pulse-native-provider() {
|
||||||
|
pkgdesc="PulseAudio sound server (default provider)"
|
||||||
|
license=(CC0-1.0)
|
||||||
|
depends=(pipewire-pulse)
|
||||||
|
}
|
||||||
|
|
||||||
|
# vim:set sw=2 sts=-1 et:
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# WARNING: This script assumes being run inside XDG compliant session,
|
||||||
|
# which means D-Bus session instance is expected to be correctly set up
|
||||||
|
# prior to this script starting. If that is not true, things may break!
|
||||||
|
|
||||||
|
DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z'
|
||||||
|
|
||||||
|
for init in dinit openrc runit s6; do
|
||||||
|
[[ -f /sbin/$init-init ]] && case $init in
|
||||||
|
openrc) SUPPORT='' ;;
|
||||||
|
dinit|runit|s6) SUPPORT='YES' ;;
|
||||||
|
esac && break
|
||||||
|
done
|
||||||
|
|
||||||
|
[ $SUPPORT ] || { echo "Unsupported method; use the service manager (rc-service/dinitctl) to control PipeWire."; exit 1; }
|
||||||
|
|
||||||
|
startpw() {
|
||||||
|
# The core daemon which by itself does probably nothing.
|
||||||
|
echo "[$(date "${DATE_FORMAT}")] Starting PipeWire." 1>>"${ARTIX_PIPEWIRE_LOG}"
|
||||||
|
echo -n "Starting PipeWire... "
|
||||||
|
/usr/bin/pipewire 1>>"${ARTIX_PIPEWIRE_LOG}" 2>&1 &
|
||||||
|
|
||||||
|
# The so called pipewire-pulse daemon used for PulseAudio compatibility.
|
||||||
|
# Commenting this out will stop the PA proxying daemon from starting,
|
||||||
|
# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using
|
||||||
|
# clients will still have access to audio and may end up clashing with
|
||||||
|
# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon).
|
||||||
|
echo "[$(date "${DATE_FORMAT}")] Starting PipeWire-Pulse." 1>>"${ARTIX_PIPEWIRE_PULSE_LOG}"
|
||||||
|
echo -n "PipeWire-Pulse... "
|
||||||
|
/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${ARTIX_PIPEWIRE_PULSE_LOG}" 2>&1 &
|
||||||
|
|
||||||
|
# Hack for bug #822498
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Finally a session manager is required for PipeWire to do anything
|
||||||
|
echo "[$(date "${DATE_FORMAT}")] Starting WirePlumber." 1>>"${ARTIX_WIREPLUMBER_LOG}"
|
||||||
|
echo -n "WirePlumber... "
|
||||||
|
/usr/bin/wireplumber 1>>"${ARTIX_WIREPLUMBER_LOG}" 2>&1 &
|
||||||
|
echo "done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
echo -n "Terminating PipeWire processes... "
|
||||||
|
pkill -9 -u "${USER}" -x "pipewire|wireplumber" 1>/dev/null 2>&1
|
||||||
|
pidwait -u "${USER}" -x "pipewire|wireplumber" 2>/dev/null || sleep 1
|
||||||
|
echo "terminated."
|
||||||
|
startpw
|
||||||
|
}
|
||||||
|
|
||||||
|
CONF="${XDG_CONFIG_HOME}/artix-pipewire-launcher.conf"
|
||||||
|
if [ -f "${CONF}" ]; then
|
||||||
|
. "${CONF}"
|
||||||
|
else
|
||||||
|
ARTIX_PIPEWIRE_LOG='/dev/null'
|
||||||
|
ARTIX_PIPEWIRE_PULSE_LOG='/dev/null'
|
||||||
|
ARTIX_WIREPLUMBER_LOG='/dev/null'
|
||||||
|
fi
|
||||||
|
|
||||||
|
for L in \
|
||||||
|
"${ARTIX_PIPEWIRE_LOG}" \
|
||||||
|
"${ARTIX_PIPEWIRE_PULSE_LOG}" \
|
||||||
|
"${ARTIX_WIREPLUMBER_LOG}"; do
|
||||||
|
if [ ! -e "${L}" ]; then
|
||||||
|
touch "${L}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
pwpid=$(pgrep -u "${USER}" -x "pipewire")
|
||||||
|
wppid=$(pgrep -u "${USER}" -x "wireplumber")
|
||||||
|
[[ ! -z "$pwpid$wppid" && "${1}" != "restart" ]] && { echo "PipeWire/WirePlumber already running."; exit 0; }
|
||||||
|
|
||||||
|
[ -z "${1}" ] && startpw
|
||||||
|
|
||||||
|
if [ "${#}" -gt 0 ]; then
|
||||||
|
if [ "${1}" = 'restart' ]; then
|
||||||
|
restart
|
||||||
|
else
|
||||||
|
echo "Unrecognised argument." >&2
|
||||||
|
echo "Usage: artix-pipewire-launcher [restart]" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/meson_options.txt b/meson_options.txt
|
||||||
|
index 206d68659..14994734e 100644
|
||||||
|
--- a/meson_options.txt
|
||||||
|
+++ b/meson_options.txt
|
||||||
|
@@ -33,7 +33,7 @@ option('gstreamer-device-provider',
|
||||||
|
option('libsystemd',
|
||||||
|
description: 'Enable code that depends on libsystemd',
|
||||||
|
type: 'feature',
|
||||||
|
- value: 'auto')
|
||||||
|
+ value: 'disabled')
|
||||||
|
option('logind',
|
||||||
|
description: 'Enable logind integration',
|
||||||
|
type: 'feature',
|
||||||
|
@@ -50,7 +50,7 @@ option('systemd-system-service',
|
||||||
|
option('systemd-user-service',
|
||||||
|
description: 'Install systemd user service file',
|
||||||
|
type: 'feature',
|
||||||
|
- value: 'auto')
|
||||||
|
+ value: 'disabled')
|
||||||
|
option('selinux',
|
||||||
|
description: 'Enable SELinux integration',
|
||||||
|
type: 'feature',
|
||||||
|
@@ -394,4 +394,4 @@ option('fftw',
|
||||||
|
option('onnxruntime',
|
||||||
|
description: 'Enable code that depends on onnxruntime',
|
||||||
|
type: 'feature',
|
||||||
|
- value: 'auto')
|
||||||
|
+ value: 'disabled')
|
||||||
Reference in New Issue
Block a user