summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang-Huang2021-02-12 18:38:46 +0800
committerHuang-Huang2021-02-12 18:38:46 +0800
commit37c71b3348ef95a23d66894cc7286d218e67a467 (patch)
treeafd90d72f3a121c690c6bddde02b9bd2495709ae
downloadaur-37c71b3348ef95a23d66894cc7286d218e67a467.tar.gz
Initial commit
-rw-r--r--.SRCINFO144
-rw-r--r--.gitignore9
-rw-r--r--PKGBUILD200
-rw-r--r--pipewire-pulse.install14
-rw-r--r--pipewire.install14
5 files changed, 381 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..6d9883480163
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,144 @@
+pkgbase = pipewire-full-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines
+ pkgver = 0.3.21.r85.g58d2fe44
+ pkgrel = 1
+ url = https://pipewire.org
+ arch = x86_64
+ license = MIT
+ makedepends = git
+ makedepends = meson
+ makedepends = doxygen
+ makedepends = graphviz
+ makedepends = xmltoman
+ makedepends = valgrind
+ makedepends = jack2
+ makedepends = alsa-lib
+ makedepends = gst-plugins-base
+ makedepends = sbc
+ makedepends = rtkit
+ makedepends = vulkan-icd-loader
+ makedepends = dbus
+ makedepends = sdl2
+ makedepends = ncurses
+ makedepends = libsndfile
+ makedepends = bluez-libs
+ makedepends = vulkan-headers
+ makedepends = libldac
+ makedepends = libopenaptx
+ makedepends = libfdk-aac
+ makedepends = ffmpeg
+ source = git+https://gitlab.freedesktop.org/pipewire/pipewire.git
+ sha256sums = SKIP
+
+pkgname = pipewire-full-git
+ install = pipewire.install
+ depends = sbc
+ depends = rtkit
+ depends = libdbus-1.so
+ depends = libncursesw.so
+ depends = libsndfile.so
+ depends = libudev.so
+ depends = libasound.so
+ depends = libsystemd.so
+ optdepends = pipewire-full-docs-git: Documentation
+ optdepends = pipewire-full-alsa-git: ALSA support
+ optdepends = pipewire-full-jack-git: JACK support
+ optdepends = pipewire-full-pulse-git: PulseAudio support
+ optdepends = gst-plugin-pipewire-full-git: GStreamer support
+ optdepends = pipewire-full-ffmpeg-git: FFmpeg support
+ optdepends = pipewire-full-bluez5-git: Bluetooth audio support
+ optdepends = pipewire-full-bluez5-hsphfpd-git: Bluetooth audio support (using hsphfpd for HSP/HFP support)
+ provides = pipewire
+ provides = alsa-card-profiles
+ provides = libpipewire-0.3.so
+ conflicts = pipewire
+ conflicts = alsa-card-profiles
+ backup = etc/pipewire/pipewire.conf
+ backup = etc/pipewire/media-session.d/media-session.conf
+ backup = etc/pipewire/media-session.d/alsa-monitor.conf
+ backup = etc/pipewire/media-session.d/bluez-monitor.conf
+ backup = etc/pipewire/media-session.d/v4l2-monitor.conf
+
+pkgname = pipewire-full-docs-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (documentation)
+ provides = pipewire-docs
+ conflicts = pipewire-docs
+
+pkgname = pipewire-full-jack-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (JACK support)
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ depends = libjack.so
+ provides = pipewire-jack
+ conflicts = pipewire-jack
+
+pkgname = pipewire-full-pulse-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (PulseAudio replacement)
+ install = pipewire-pulse.install
+ depends = pipewire-full-git
+ depends = pipewire-bluez5
+ depends = libpulse
+ provides = pipewire-pulse
+ provides = pulseaudio
+ provides = pulseaudio-bluetooth
+ conflicts = pipewire-pulse
+ conflicts = pulseaudio
+ conflicts = pulseaudio-bluetooth
+
+pkgname = pipewire-full-alsa-git
+ pkgdesc = ALSA Configuration for PipeWire
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ provides = pipewire-alsa
+ provides = pulseaudio-alsa
+ conflicts = pipewire-alsa
+
+pkgname = gst-plugin-pipewire-full-git
+ pkgdesc = Multimedia graph framework - pipewire plugin
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ depends = gst-plugins-base-libs
+ provides = gst-plugin-pipewire
+ conflicts = gst-plugin-pipewire
+
+pkgname = pipewire-full-vulkan-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (Vulkan SPA plugin)
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ depends = vulkan-icd-loader
+ provides = pipewire-vulkan
+ conflicts = pipewire-vulkan
+
+pkgname = pipewire-full-ffmpeg-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (FFmpeg SPA plugin)
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ depends = libavcodec.so
+ depends = libavformat.so
+ provides = pipewire-ffmpeg
+ conflicts = pipewire-ffmpeg
+
+pkgname = pipewire-full-bluez5-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (BlueZ 5 SPA plugin)
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ depends = bluez-libs
+ depends = libldacBT_enc.so
+ depends = libopenaptx.so
+ depends = libfdk-aac.so
+ optdepends = ofono: HFP support
+ provides = pipewire-bluez5
+ conflicts = pipewire-bluez5
+
+pkgname = pipewire-full-bluez5-hsphfpd-git
+ pkgdesc = Server and user space API to deal with multimedia pipelines (BlueZ 5 SPA plugin, using hsphfpd for HSP/HFP support)
+ depends = pipewire-full-git
+ depends = libpipewire-0.3.so
+ depends = bluez-libs
+ depends = hsphfpd
+ depends = libldacBT_enc.so
+ depends = libopenaptx.so
+ depends = libfdk-aac.so
+ provides = pipewire-bluez5
+ conflicts = pipewire-bluez5
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..bf6f72229a47
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+*
+!.gitignore
+
+!PKGBUILD
+!.SRCINFO
+!*.install
+
+!*.diff
+!*.patch
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..8639ac85416d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,200 @@
+# Maintainer: Huang-Huang Bao <eh5@sokka.cn>
+# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbase=pipewire
+pkgbase=pipewire-full-git
+pkgname=(pipewire-full-git pipewire-full-docs-git pipewire-full-jack-git
+ pipewire-full-pulse-git pipewire-full-alsa-git
+ gst-plugin-pipewire-full-git
+ pipewire-full-vulkan-git pipewire-full-ffmpeg-git
+ pipewire-full-bluez5-git pipewire-full-bluez5-hsphfpd-git)
+pkgver=0.3.21.r85.g58d2fe44
+pkgrel=1
+pkgdesc="Server and user space API to deal with multimedia pipelines"
+url="https://pipewire.org"
+license=(MIT)
+arch=(x86_64)
+makedepends=(git meson doxygen graphviz xmltoman valgrind jack2
+ alsa-lib gst-plugins-base sbc rtkit vulkan-icd-loader dbus sdl2
+ ncurses libsndfile bluez-libs vulkan-headers libldac libopenaptx
+ libfdk-aac ffmpeg)
+source=("git+https://gitlab.freedesktop.org/pipewire/pipewire.git")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd $_pkgbase
+ git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
+}
+
+prepare() {
+ cd $_pkgbase
+}
+
+build() {
+ arch-meson $_pkgbase build
+ meson configure build \
+ -D docs=true \
+ -D vulkan=true \
+ -D ffmpeg=true \
+ -D bluez5-backend-hsp-native=true \
+ -D bluez5-backend-hfp-native=true \
+ -D bluez5-backend-ofono=true \
+ -D bluez5-backend-hsphfpd=false \
+ -D udevrulesdir=/usr/lib/udev/rules.d
+ 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
+}
+
+_ver=${pkgver:0:3}
+
+package_pipewire-full-git() {
+ depends=(sbc rtkit
+ libdbus-1.so libncursesw.so libsndfile.so libudev.so libasound.so
+ libsystemd.so)
+ optdepends=('pipewire-full-docs-git: Documentation'
+ 'pipewire-full-alsa-git: ALSA support'
+ 'pipewire-full-jack-git: JACK support'
+ 'pipewire-full-pulse-git: PulseAudio support'
+ 'gst-plugin-pipewire-full-git: GStreamer support'
+ 'pipewire-full-bluez5-git: Bluetooth audio support'
+ 'pipewire-full-bluez5-hsphfpd-git: Bluetooth audio support (using hsphfpd for HSP/HFP support)')
+ provides=(pipewire alsa-card-profiles libpipewire-$_ver.so)
+ conflicts=(pipewire alsa-card-profiles)
+ backup=(etc/pipewire/pipewire.conf
+ etc/pipewire/media-session.d/media-session.conf
+ etc/pipewire/media-session.d/{alsa,bluez,v4l2}-monitor.conf)
+ install=pipewire.install
+
+ DESTDIR="$pkgdir" meson install -C build
+
+ install -Dm644 "$_pkgbase/LICENSE" "$pkgdir/usr/share/licenses/$_pkgbase/LICENSE"
+ install -Dm644 "$_pkgbase/COPYING" "$pkgdir/usr/share/licenses/$_pkgbase/COPYING"
+
+ cd "$pkgdir"
+
+ _pick bluez5 usr/lib/spa-0.2/bluez5
+
+
+ # Rebuild with different options
+ cd "$srcdir"
+
+ meson configure build \
+ -D bluez5-backend-hsp-native=false \
+ -D bluez5-backend-hfp-native=false \
+ -D bluez5-backend-ofono=false \
+ -D bluez5-backend-hsphfpd=true
+ meson compile -C build
+ DESTDIR="$pkgdir" meson install -C build --only-changed
+
+ cd "$pkgdir"
+
+ _pick bluez5-hsphfpd usr/lib/spa-0.2/bluez5
+
+ _pick docs usr/share/doc
+
+ _pick jack etc/pipewire/media-session.d/with-jack
+ _pick jack usr/bin/pw-jack usr/lib/pipewire-$_ver/jack
+ _pick jack usr/lib/spa-0.2/jack
+ _pick jack usr/share/man/man1/pw-jack.1
+
+ _pick pulse etc/pipewire/media-session.d/with-pulseaudio
+
+ _pick gst usr/lib/gstreamer-1.0
+
+ _pick vulkan usr/lib/spa-0.2/vulkan
+
+ _pick ffmpeg usr/lib/spa-0.2/ffmpeg
+}
+
+package_pipewire-full-docs-git() {
+ provides=(pipewire-docs)
+ conflicts=(pipewire-docs)
+ pkgdesc+=" (documentation)"
+ mv docs/* "$pkgdir"
+}
+
+package_pipewire-full-jack-git() {
+ pkgdesc+=" (JACK support)"
+ depends=(pipewire-full-git libpipewire-$_ver.so libjack.so)
+ provides=(pipewire-jack)
+ conflicts=(pipewire-jack)
+ mv jack/* "$pkgdir"
+}
+
+package_pipewire-full-pulse-git() {
+ pkgdesc+=" (PulseAudio replacement)"
+ depends=(pipewire-full-git pipewire-bluez5 libpulse)
+ provides=(pipewire-pulse pulseaudio pulseaudio-bluetooth)
+ conflicts=(pipewire-pulse pulseaudio pulseaudio-bluetooth)
+ install=pipewire-pulse.install
+ mv pulse/* "$pkgdir"
+}
+
+package_pipewire-full-alsa-git() {
+ pkgdesc="ALSA Configuration for PipeWire"
+ depends=(pipewire-full-git libpipewire-$_ver.so)
+ provides=(pipewire-alsa pulseaudio-alsa)
+ conflicts=(pipewire-alsa)
+
+ mkdir -p "$pkgdir"/etc/{alsa/conf.d,pipewire/media-session.d}
+ ln -st "$pkgdir/etc/alsa/conf.d" \
+ /usr/share/alsa/alsa.conf.d/{50-pipewire,99-pipewire-default}.conf
+ touch "$pkgdir/etc/pipewire/media-session.d/with-alsa"
+}
+
+package_gst-plugin-pipewire-full-git() {
+ pkgdesc="Multimedia graph framework - pipewire plugin"
+ depends=(pipewire-full-git libpipewire-$_ver.so gst-plugins-base-libs)
+ provides=(gst-plugin-pipewire)
+ conflicts=(gst-plugin-pipewire)
+ mv gst/* "$pkgdir"
+}
+
+package_pipewire-full-vulkan-git() {
+ pkgdesc+=" (Vulkan SPA plugin)"
+ depends=(pipewire-full-git libpipewire-$_ver.so vulkan-icd-loader)
+ provides=(pipewire-vulkan)
+ conflicts=(pipewire-vulkan)
+ mv vulkan/* "${pkgdir}"
+}
+
+package_pipewire-full-ffmpeg-git() {
+ pkgdesc+=" (FFmpeg SPA plugin)"
+ depends=(pipewire-full-git libpipewire-$_ver.so libavcodec.so libavformat.so)
+ provides=(pipewire-ffmpeg)
+ conflicts=(pipewire-ffmpeg)
+ mv ffmpeg/* "${pkgdir}"
+}
+
+package_pipewire-full-bluez5-git() {
+ pkgdesc+=" (BlueZ 5 SPA plugin)"
+ depends=(pipewire-full-git libpipewire-$_ver.so bluez-libs
+ libldacBT_enc.so libopenaptx.so libfdk-aac.so)
+ optdepends=('ofono: HFP support')
+ provides=(pipewire-bluez5)
+ conflicts=(pipewire-bluez5)
+ mv bluez5/* "${pkgdir}"
+}
+
+package_pipewire-full-bluez5-hsphfpd-git() {
+ pkgdesc+=" (BlueZ 5 SPA plugin, using hsphfpd for HSP/HFP support)"
+ depends=(pipewire-full-git libpipewire-$_ver.so bluez-libs hsphfpd
+ libldacBT_enc.so libopenaptx.so libfdk-aac.so)
+ provides=(pipewire-bluez5)
+ conflicts=(pipewire-bluez5)
+ mv bluez5-hsphfpd/* "${pkgdir}"
+}
diff --git a/pipewire-pulse.install b/pipewire-pulse.install
new file mode 100644
index 000000000000..051abb3a0c75
--- /dev/null
+++ b/pipewire-pulse.install
@@ -0,0 +1,14 @@
+post_install() {
+ # Enable socket by default
+ systemctl --global enable pipewire-pulse.socket
+}
+
+post_upgrade() {
+ if (( $(vercmp $2 0.3.16-1) < 0)); then
+ systemctl --global enable pipewire-pulse.socket
+ fi
+}
+
+pre_remove() {
+ systemctl --global disable pipewire-pulse.socket
+}
diff --git a/pipewire.install b/pipewire.install
new file mode 100644
index 000000000000..416e5ed97a1d
--- /dev/null
+++ b/pipewire.install
@@ -0,0 +1,14 @@
+post_install() {
+ # Enable socket by default
+ systemctl --global enable pipewire.socket
+}
+
+post_upgrade() {
+ if (( $(vercmp $2 0.1.6-2) < 0)); then
+ systemctl --global enable pipewire.socket
+ fi
+}
+
+pre_remove() {
+ systemctl --global disable pipewire.socket
+}