From e2e6c01dd3db42b179287116f2befbda94883534 Mon Sep 17 00:00:00 2001 From: EnumDev Date: Tue, 24 Mar 2026 12:12:53 +0200 Subject: [PATCH] Split package --- pkg.info | 77 ++++++++++++++++++++++++++++++++++++++++--------------- source.sh | 61 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 115 insertions(+), 23 deletions(-) diff --git a/pkg.info b/pkg.info index 0707100..70ac5da 100644 --- a/pkg.info +++ b/pkg.info @@ -1,54 +1,89 @@ name: pipewire description: Low-latency audio/video router and processor version: 1.6.2 -revision: 1 +revision: 2 url: https://pipewire.org/ license: LGPL2.1-or-later,MIT maintainers: - enumdev@enumerated.dev architecture: any type: source -depends: +make_depends: - alsa-lib - avahi - - gcc-libs - - glibc + - bluez + - bzip2 - dbus + - doxygen + - gcc-libs - glib + - glibc + - graphviz + - gst-plugins-base + - libcanberra - libfdk-aac - liblc3 - libldac - libsndfile - libpulse - libusb - - ncurses - - opus - - readline - - sbc -optional_depends: - - rtkit -make_depends: - - bluez - - bzip2 - - doxygen - - graphviz - - gst-plugins-base - - libcanberra - libx11 - libxfixes + - ncurses - meson + - opus - python-docutils - python-packaging + - readline - rtkit + - sbc - sdl2-compat - valgrind - desktop-file-utils -conflicts: - - pulseaudio -provides: - - jack downloads: - url: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${BPM_PKG_VERSION}/pipewire-${BPM_PKG_VERSION}.tar.bz2 extract_to: ${BPM_SOURCE} extract_strip_components: 1 checksum: 3649ff3502c93036088b61154aa12dc375c95031db18efb2c4abab691d2e758e +split_packages: + - name: pipewire + depends: + - alsa-lib + - gcc-libs + - dbus + - glib + - libfdk-aac + - liblc3 + - libldac + - libpipewire + - libsndfile + - libpulse + - libusb + - ncurses + - opus + - readline + - sbc + optional_depends: + - pipewire-jack:For JACK + - rtkit:For realtime privileges using the rtkit module + conflicts: + - pulseaudio + - name: libpipewire + description: Pipewire client library + depends: + - glibc + - gcc-libs + - name: pipewire-jack + description: JACK replacement for Pipewire + depends: + - pipewire + - sh + provides: + - jack + - name: pipewire-pulse + description: PulseAudio replacement for Pipewire + depends: + - avahi + - dbus + - glibc + - pipewire diff --git a/source.sh b/source.sh index 1dd5c56..0cebd26 100644 --- a/source.sh +++ b/source.sh @@ -34,14 +34,71 @@ check() { meson test -C build } +_pick() { + local p="$1" f d; shift + for f; do + [ -d "$BPM_WORKDIR"/output_"$p" ] || { echo "Split package $p not found"; exit 1; } + d="$BPM_WORKDIR"/output_"$p"/"${f#$BPM_OUTPUT}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done +} + # The package function is executed in the source directory # This function is used to move the compiled files into the output directory -package() { +package_pipewire() { meson install -C build --destdir="$BPM_OUTPUT" + cd "$BPM_OUTPUT" + + # Move libpipewire files into split package + _pick libpipewire usr/include/{pipewire-*,spa-*} + _pick libpipewire usr/lib/libpipewire* + _pick libpipewire usr/lib/pkgconfig/{libpipewire-*,libspa-*} + + # Move jack files into split package + _pick pipewire-jack usr/bin/pw-jack + _pick pipewire-jack usr/include/jack + _pick pipewire-jack usr/lib/libjack* + _pick pipewire-jack usr/lib/pipewire-*/libpipewire-module-jack* + _pick pipewire-jack usr/lib/spa-*/jack + _pick pipewire-jack usr/lib/pkgconfig/jack*.pc + _pick pipewire-jack usr/share/man/man1/pw-jack.1 + _pick pipewire-jack usr/share/man/man5/pipewire-jack.conf.5 + _pick pipewire-jack usr/share/man/man7/libpipewire-module-jack*.7 + _pick pipewire-jack usr/share/pipewire/jack.conf + + # Move pulse files into split package + _pick pipewire-pulse usr/bin/pipewire-pulse + _pick pipewire-pulse usr/lib/pipewire-*/libpipewire-module-{protocol-pulse.so,pulse-tunnel.so} + _pick pipewire-pulse usr/share/man/man1/pipewire-pulse.1 + _pick pipewire-pulse usr/share/man/man5/pipewire-pulse.conf.5 + _pick pipewire-pulse usr/share/man/man7/libpipewire-module-{protocol-pulse,pulse-tunnel}.7 + _pick pipewire-pulse usr/share/man/man7/pipewire-pulse*.7 + _pick pipewire-pulse usr/share/pipewire/pipewire-pulse.conf + + # Install package license + install -d "$BPM_OUTPUT"/usr/share/licenses/ + ln -sf libpipewire "$BPM_OUTPUT"/usr/share/licenses/pipewire +} + +package_libpipewire() { + # Install package license + install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/libpipewire/COPYING +} + +package_pipewire-jack() { + # Install package license + install -d "$BPM_OUTPUT"/usr/share/licenses/ + ln -sf libpipewire "$BPM_OUTPUT"/usr/share/licenses/pipewire-jack +} + +package_pipewire-pulse() { # Install pipewire-pulse launcher config file from Void Linux install -Dm644 "$BPM_WORKDIR"/20-pipewire-pulse.conf "$BPM_OUTPUT"/usr/share/examples/pipewire/20-pipewire-pulse.conf # Install package license - install -Dm644 "$BPM_SOURCE"/COPYING "$BPM_OUTPUT"/usr/share/licenses/pipewire/COPYING + install -d "$BPM_OUTPUT"/usr/share/licenses/ + ln -sf libpipewire "$BPM_OUTPUT"/usr/share/licenses/pipewire-pulse }