diff options
author | Mart Raudsepp <leio@gentoo.org> | 2021-09-24 21:07:09 +0300 |
---|---|---|
committer | Mart Raudsepp <leio@gentoo.org> | 2021-09-24 21:15:57 +0300 |
commit | 26646b27529e13f7beb0c78fac339e1d78bf07d4 (patch) | |
tree | 4f66e5dd34df5e1e70c4fb5220ae84c2d7d594d1 /media-sound/pulseaudio-daemon/files | |
parent | media-libs/libpulse: Add split package for pulseaudio libraries (diff) | |
download | gentoo-26646b27529e13f7beb0c78fac339e1d78bf07d4.tar.gz gentoo-26646b27529e13f7beb0c78fac339e1d78bf07d4.tar.bz2 gentoo-26646b27529e13f7beb0c78fac339e1d78bf07d4.zip |
media-sound/pulseaudio-daemon: Add split package for pulseaudio daemon
Bug: https://bugs.gentoo.org/536780
Package-Manager: Portage-3.0.20, Repoman-3.0.2
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
Diffstat (limited to 'media-sound/pulseaudio-daemon/files')
6 files changed, 399 insertions, 0 deletions
diff --git a/media-sound/pulseaudio-daemon/files/15.0-daemon-only.patch b/media-sound/pulseaudio-daemon/files/15.0-daemon-only.patch new file mode 100644 index 000000000000..9b18310f9e24 --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/15.0-daemon-only.patch @@ -0,0 +1,277 @@ +From 5bcbd2ba656ac38ba500dc110cc13dbaa0d77853 Mon Sep 17 00:00:00 2001 +From: Mart Raudsepp <mart@leio.tech> +Date: Fri, 24 Sep 2021 15:19:05 +0300 +Subject: [PATCH] build-sys: meson: Allow building the daemon only + +--- + meson.build | 23 ++++++++++++++++++++--- + meson_options.txt | 3 +++ + po/meson.build | 3 --- + shell-completion/bash/meson.build | 2 ++ + src/daemon/meson.build | 4 ++-- + src/meson.build | 11 +++++++++++ + src/modules/gsettings/meson.build | 3 +-- + src/tests/meson.build | 9 +++++++-- + src/utils/meson.build | 10 ++++++---- + 9 files changed, 52 insertions(+), 16 deletions(-) + +diff --git a/meson.build b/meson.build +index 63ed62342..420cc6fac 100644 +--- a/meson.build ++++ b/meson.build +@@ -53,6 +53,8 @@ libpulse_mainloop_glib_version = '@0@.@1@.@2@'.format( + libpulse_mainloop_glib_version_info[1], + ) + ++i18n = import('i18n') ++ + # Paths + + prefix = get_option('prefix') +@@ -68,6 +70,7 @@ localedir = join_paths(prefix, get_option('localedir')) + localstatedir = join_paths(prefix, get_option('localstatedir')) + sysconfdir = join_paths(prefix, get_option('sysconfdir')) + privlibdir = join_paths(libdir, 'pulseaudio') ++po_dir = join_paths(meson.current_source_dir(), 'po') + + if host_machine.system() == 'windows' + # Windows only supports loading libraries from the same dir as the executable +@@ -796,20 +799,28 @@ check_dep = dependency('check', version : '>= 0.9.10', required : get_option('te + if get_option('doxygen') + subdir('doxygen') + endif +-subdir('po') ++if not get_option('daemon-only') ++ subdir('po') ++endif + if get_option('man') + subdir('man') + endif + subdir('shell-completion/bash') +-subdir('shell-completion/zsh') ++if not get_option('daemon-only') ++ subdir('shell-completion/zsh') ++endif + subdir('src') +-subdir('vala') ++if not get_option('daemon-only') ++ subdir('vala') ++endif + + # Now generate config.h from everything above + configure_file(output : 'config.h', configuration : cdata) + + # pkg-config files + ++if not get_option('daemon-only') ++ + pc_cdata = configuration_data() + + pc_cdata.set('prefix', prefix) +@@ -842,8 +853,12 @@ foreach file : pc_files + install_dir : pkgconfigdir) + endforeach + ++endif # !daemon-only ++ + # CMake files + ++if not get_option('daemon-only') ++ + m4 = find_program('m4', required: true) + + cmakedir = join_paths(libdir, 'cmake', 'PulseAudio') +@@ -872,6 +887,8 @@ configure_file( + install_dir : cmakedir, + ) + ++endif # !daemon-only ++ + ############################################################ + + # Final summary +diff --git a/meson_options.txt b/meson_options.txt +index bb41a42a7..62828ac5c 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -1,6 +1,9 @@ + option('daemon', + type : 'boolean', value : true, + description : 'Enable building and installation of pulseaudio daemon and supporting configuration files') ++option('daemon-only', ++ type : 'boolean', value : false, ++ description : 'Build and install only the pulseaudio daemon and supporting configuration files, relying on a system installation of libpulse') + option('doxygen', + type : 'boolean', value : true, + description : 'Enable building and installation of documentation generated with doxygen') +diff --git a/po/meson.build b/po/meson.build +index 34278db47..33429373c 100644 +--- a/po/meson.build ++++ b/po/meson.build +@@ -1,4 +1,3 @@ +-i18n = import('i18n') + i18n.gettext( + meson.project_name(), + preset: 'glib', +@@ -7,5 +6,3 @@ i18n.gettext( + args: ['--msgid-bugs-address=https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/new', + '--width=90'], + ) +- +-po_dir = meson.current_source_dir() +diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build +index 3ba5cb16f..83d90b94b 100644 +--- a/shell-completion/bash/meson.build ++++ b/shell-completion/bash/meson.build +@@ -8,6 +8,7 @@ if bashcompletiondir != 'no' + ] + endif + ++ if not get_option('daemon-only') + aliases += [ + 'pacat', + 'pactl', +@@ -16,6 +17,7 @@ if bashcompletiondir != 'no' + 'parec', + 'parecord', + ] ++ endif + + install_data('pulseaudio', install_dir : bashcompletiondir) + +diff --git a/src/daemon/meson.build b/src/daemon/meson.build +index 262e193b2..e8f70a453 100644 +--- a/src/daemon/meson.build ++++ b/src/daemon/meson.build +@@ -30,8 +30,8 @@ executable('pulseaudio', + install_rpath : privlibdir, + include_directories : [configinc, topinc], + link_args : ['-ffast-math'], +- link_with : [libpulsecore, libpulsecommon, libpulse], +- dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep], ++ link_with : [libpulsecore], ++ dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep, libpulsecommon_dep, libpulse_dep], + c_args : pa_c_args, + ) + +diff --git a/src/meson.build b/src/meson.build +index e2860811b..a56667271 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -188,6 +188,15 @@ else + endif + # FIXME: Do SIMD things + ++if get_option('daemon-only') ++ libpulsecommon_dep = cc.find_library('pulsecommon-' + pa_version_major_minor, dirs : privlibdir, required : true) ++ libpulse_dep = dependency('libpulse', required : true) ++ libpulse_simple_dep = dependency('libpulse-simple', required : true) ++ if glib_dep.found() ++ libpulse_mainloop_glib_dep = dependency('libpulse-mainloop-glib', required : true) ++ endif ++else ++ + libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor, + libpulsecommon_sources, + libpulsecommon_headers, +@@ -207,6 +216,8 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor, + libpulsecommon_dep = declare_dependency(link_with: libpulsecommon) + + subdir('pulse') ++endif ++ + if get_option('daemon') + subdir('pulsecore') + subdir('daemon') +diff --git a/src/modules/gsettings/meson.build b/src/modules/gsettings/meson.build +index 68a72c3ff..9604699e7 100644 +--- a/src/modules/gsettings/meson.build ++++ b/src/modules/gsettings/meson.build +@@ -8,8 +8,7 @@ gsettings_helper = executable('gsettings-helper', + gsettings_helper_sources, + c_args : pa_c_args, + include_directories : [configinc, topinc], +- link_with : [libpulsecommon, libpulse], +- dependencies : [gio_dep], ++ dependencies : [gio_dep, libpulsecommon_dep, libpulse_dep], + install_dir : pulselibexecdir, + install_rpath : privlibdir, + install : true, +diff --git a/src/tests/meson.build b/src/tests/meson.build +index acd301037..56d71299f 100644 +--- a/src/tests/meson.build ++++ b/src/tests/meson.build +@@ -20,8 +20,6 @@ default_tests += [ + [ check_dep, libpulse_dep, libpulsecommon_dep ] ], + [ 'json-test', 'json-test.c', + [ check_dep, libpulse_dep, libpulsecommon_dep ] ], +- [ 'mainloop-test', 'mainloop-test.c', +- [ check_dep, libpulse_dep, libpulsecommon_dep ] ], + [ 'proplist-test', 'proplist-test.c', + [ check_dep, libpulse_dep, libpulsecommon_dep ] ], + [ 'thread-mainloop-test', 'thread-mainloop-test.c', +@@ -32,6 +30,13 @@ default_tests += [ + [ check_dep, libm_dep, libpulse_dep, libpulsecommon_dep ] ], + ] + ++if not get_option('daemon-only') ++ default_tests += [ ++ [ 'mainloop-test', 'mainloop-test.c', ++ [ check_dep, libpulse_dep, libpulsecommon_dep ] ], ++ ] ++endif ++ + if get_option('daemon') + default_tests += [ + [ 'asyncmsgq-test', 'asyncmsgq-test.c', +diff --git a/src/utils/meson.build b/src/utils/meson.build +index c9635fdb6..7ed6e738f 100644 +--- a/src/utils/meson.build ++++ b/src/utils/meson.build +@@ -1,3 +1,4 @@ ++if not get_option('daemon-only') + pacat_sources = [ + 'pacat.c', + ] +@@ -41,6 +42,7 @@ executable('pactl', + dependencies : [sndfile_dep, libintl_dep], + c_args : pa_c_args, + ) ++endif + + if get_option('daemon') + if host_machine.system() != 'windows' +@@ -53,8 +55,7 @@ if get_option('daemon') + install: true, + install_rpath : privlibdir, + include_directories : [configinc, topinc], +- link_with : [libpulsecommon, libpulse], +- dependencies: [libintl_dep], ++ dependencies: [libintl_dep, libpulsecommon_dep, libpulse_dep], + c_args : pa_c_args, + ) + +@@ -67,13 +68,13 @@ if get_option('daemon') + install: true, + install_rpath : privlibdir, + include_directories : [configinc, topinc], +- link_with : [libpulsecommon, libpulse], +- dependencies: [libintl_dep], ++ dependencies: [libintl_dep, libpulsecommon_dep, libpulse_dep], + c_args : pa_c_args, + ) + endif + endif + ++if not get_option('daemon-only') + if x11_dep.found() + pax11publish_sources = [ + 'pax11publish.c', +@@ -121,3 +122,4 @@ if dbus_dep.found() and fftw_dep.found() + endif + + install_data('pa-info', install_dir : bindir) ++endif +-- +2.32.0 + diff --git a/media-sound/pulseaudio-daemon/files/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch b/media-sound/pulseaudio-daemon/files/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch new file mode 100644 index 000000000000..f3df62031d34 --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch @@ -0,0 +1,25 @@ +https://bugs.gentoo.org/806052 + +commit 42af3ee08381faa5807fde68d4c8ec0d7ad5e9a5 +Author: Igor V. Kovalenko <igor.v.kovalenko@gmail.com> +Date: Tue Aug 3 09:43:32 2021 +0300 + + build-sys: meson: Require xice, xsm and xtst for daemon only + + Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/613> + +--- a/meson.build ++++ b/meson.build +@@ -681,9 +681,9 @@ endif + x11_dep = dependency('x11-xcb', required : get_option('x11')) + if x11_dep.found() + xcb_dep = dependency('xcb', required : true, version : '>= 1.6') +- ice_dep = dependency('ice', required : true) +- sm_dep = dependency('sm', required : true) +- xtst_dep = dependency('xtst', required : true) ++ ice_dep = dependency('ice', required : get_option('daemon')) ++ sm_dep = dependency('sm', required : get_option('daemon')) ++ xtst_dep = dependency('xtst', required : get_option('daemon')) + cdata.set('HAVE_X11', 1) + if cc.has_function('XSetIOErrorExitHandler', dependencies: x11_dep) + cdata.set('HAVE_XSETIOERROREXITHANDLER', 1) diff --git a/media-sound/pulseaudio-daemon/files/pulseaudio.conf.d b/media-sound/pulseaudio-daemon/files/pulseaudio.conf.d new file mode 100644 index 000000000000..9e7245344a57 --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/pulseaudio.conf.d @@ -0,0 +1,6 @@ +# Config file for /etc/init.d/pulseaudio + +# For more see "pulseaudio -h". + +# Startup options +PA_OPTS="--log-target=syslog --disallow-module-loading=1" diff --git a/media-sound/pulseaudio-daemon/files/pulseaudio.init.d-5 b/media-sound/pulseaudio-daemon/files/pulseaudio.init.d-5 new file mode 100644 index 000000000000..a14f5e74aa53 --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/pulseaudio.init.d-5 @@ -0,0 +1,80 @@ +#!/sbin/openrc-run +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need localmount + use net + + local script="/etc/pulse/system.pa" + + for opt in ${PA_OPTS}; do + case "$opt" in + --file=*) script="${opt#*=}" ;; + -F*) script="${opt#-F}" ;; + esac + done + + config "$script" + + local needs="$(get_options need)" + if [ -n "${needs}" ]; then + need ${needs} + return + fi + + if egrep -q '^[[:space:]]*load-module[[:space:]]+module-console-kit' "$script"; then + needs="${needs} consolekit" + fi + +#ifdef UDEV + if egrep -q '^[[:space:]]*load-module[[:space:]]+module-udev-detect' "$script"; then + needs="${needs} udev" + fi +#endif + +#ifdef AVAHI + if egrep -q '^[[:space:]]*load-module[[:space:]]+module-zeroconf-publish' "$script"; then + needs="${needs} avahi-daemon" + fi +#endif + +#ifdef BLUETOOTH + if egrep -q '^[[:space:]]*load-module[[:space:]]+module-bt-proximity' "$script"; then + needs="${needs} bluetooth" + fi +#endif + +#ifdef ALSA + if egrep -q '^[[:space:]]*load-module[[:space:]]+module-alsa-(sink|source)' "$script" || + egrep -q '^[[:space:]]*load-module[[:space:]]+module-(udev-)?detect' "$script" || + egrep -q '^[[:space:]]*add-autoload-source[[:space:]]+(input|output)[[:space:]]+module-alsa-(sink|source)' "$script"; then + needs="${needs} alsasound" + fi +#endif + + need "${needs}" + save_options need "${needs}" +} + +start() { + if [ -z "${PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE}" ]; then + eerror "Please don't use system wide PulseAudio unless you read the" + eerror "documentation available at http://www.pulseaudio.org/wiki/WhatIsWrongWithSystemMode" + eerror "" + eerror "When you're done, please set the variable PULSEAUDIO_SHOULD_NOT_GO_SYSTEMWIDE in" + eerror "/etc/conf.d/pulseaudio . Please remember that upstream does not support this mode" + eerror "when used for standard desktop configurations." + return 1 + fi + ebegin "Starting pulseaudio" + PA_ALL_OPTS="${PA_OPTS} --fail=1 --daemonize=1 --system" + start-stop-daemon --start --exec /usr/bin/pulseaudio -- ${PA_ALL_OPTS} + eend $? +} + +stop() { + ebegin "Stopping pulseaudio" + start-stop-daemon --stop --quiet --exec /usr/bin/pulseaudio --pidfile /var/run/pulse/pid + eend $? +} diff --git a/media-sound/pulseaudio-daemon/files/pulseaudio.service b/media-sound/pulseaudio-daemon/files/pulseaudio.service new file mode 100644 index 000000000000..c5f0d5799929 --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/pulseaudio.service @@ -0,0 +1,10 @@ +[Unit] +Description=System wide PulseAudio instance +After=syslog.target network.target alsasound.service + +[Service] +Restart=always +ExecStart=/usr/bin/pulseaudio --system --log-target=syslog + +[Install] +WantedBy=multi-user.target diff --git a/media-sound/pulseaudio-daemon/files/pulseaudio.tmpfiles b/media-sound/pulseaudio-daemon/files/pulseaudio.tmpfiles new file mode 100644 index 000000000000..88374e35574b --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/pulseaudio.tmpfiles @@ -0,0 +1 @@ +d /var/run/pulse 0755 pulse audio - |