mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-07 22:54:11 -05:00
* crew: Add a LD_PRELOAD library for hijacking linker/library path Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Add `glibc_{build,dev.lib}` to deprecated package list Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Bump version Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Minor changes Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Move static libraries to CREW_LIB_PREFIX Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Remove glibc_build from const.rb Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Make rubocop happy Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Fix arm build and add binaries. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * cleanup Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Adjust x86_64 unit tests to use the Nocturne M90 container image and armv7l unit tests to use the fievel M91 container image since we are using the same glibc for everything now. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Adjust build containers to use the oldest glibc based containers. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add i686 builds. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Add x86_64 build. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Set LD_PRELOAD before running any command Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Use File.join Signed-off-by: SupeChicken666 <me@supechicken666.dev> * Use File.join Signed-off-by: SupeChicken666 <me@supechicken666.dev> * adjust unit tests. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Fix arm CREW_GLIBC_INTERPRETER Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Update Rhythmbox Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Update Rhythmbox Signed-off-by: Satadru Pramanik <satadru@gmail.com> * lint Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Do not install crew_sudo in container. Signed-off-by: Satadru Pramanik <satadru@gmail.com> * Bump version Signed-off-by: SupeChicken666 <me@supechicken666.dev> --------- Signed-off-by: SupeChicken666 <me@supechicken666.dev> Signed-off-by: Satadru Pramanik <satadru@gmail.com> Co-authored-by: Satadru Pramanik <satadru@gmail.com>
127 lines
4.8 KiB
Ruby
127 lines
4.8 KiB
Ruby
require 'buildsystems/meson'
|
|
|
|
class Pulseaudio < Meson
|
|
description 'PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for your sound applications.'
|
|
homepage 'https://www.freedesktop.org/wiki/Software/PulseAudio/'
|
|
version '17.0-1'
|
|
license 'LGPL-2.1 and GPL-2'
|
|
compatibility 'aarch64 armv7l x86_64'
|
|
source_url 'https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git'
|
|
git_hashtag "v#{version.split('-').first}"
|
|
binary_compression 'tar.zst'
|
|
|
|
binary_sha256({
|
|
aarch64: 'e7b80a2ed41c08c7e702459361bedb07946773631ba317f62ec3951b590f4fab',
|
|
armv7l: 'e7b80a2ed41c08c7e702459361bedb07946773631ba317f62ec3951b590f4fab',
|
|
x86_64: 'c779ca6d9f8a108dd12523185e33b683e1aa3e72abd41b06f56262a8fd72986b'
|
|
})
|
|
|
|
depends_on 'alsa_lib' # R
|
|
# depends_on 'alsa_plugins' => :build
|
|
depends_on 'avahi' # R
|
|
depends_on 'check' => :build
|
|
depends_on 'cras' # L
|
|
depends_on 'dbus' # R
|
|
depends_on 'elogind' # R
|
|
depends_on 'eudev' # R
|
|
depends_on 'gcc_lib' # R
|
|
depends_on 'glibc' # R
|
|
depends_on 'glib' # R
|
|
# depends_on 'gsettings_desktop_schemas' # L
|
|
depends_on 'gstreamer' # R
|
|
depends_on 'jack' # R
|
|
depends_on 'json_c' => :build
|
|
depends_on 'libcap' # R
|
|
depends_on 'libgconf' => :build
|
|
depends_on 'libice' # R
|
|
depends_on 'libsm' # R
|
|
depends_on 'libsndfile' # R
|
|
depends_on 'libsoxr' # R
|
|
depends_on 'libtool' # R
|
|
depends_on 'libx11' # R
|
|
depends_on 'libxcb' # R
|
|
depends_on 'libxfixes' => :build
|
|
depends_on 'libxtst' # R
|
|
depends_on 'openssl' # R
|
|
# depends_on 'pipewire' # R
|
|
depends_on 'speexdsp' # R
|
|
depends_on 'tcpwrappers' # R
|
|
depends_on 'tdb' # R
|
|
depends_on 'valgrind' => :build
|
|
|
|
git_fetchtags
|
|
|
|
meson_options "-Dsystem_user=chronos \
|
|
-Dsystem_group=cras \
|
|
-Daccess_group=cras \
|
|
-Dbluez5=disabled \
|
|
-Dalsa=enabled \
|
|
-Dgstreamer=disabled \
|
|
-Delogind=enabled \
|
|
-Dtests=false \
|
|
-Dudevrulesdir=#{CREW_PREFIX}/libexec/rules.d \
|
|
-Dalsadatadir=#{CREW_PREFIX}/share/alsa-card-profile \
|
|
-Dlocalstatedir=#{CREW_PREFIX}/var/run"
|
|
|
|
def self.check
|
|
# 39/50 thread-test FAIL 4.02s exit status 1
|
|
# >>> MALLOC_PERTURB_=232 MAKE_CHECK=1 /usr/local/tmp/crew/pulseaudio-14.2.tar.xz.dir/pulseaudio-14.2/builddir/src/tests/thread-test
|
|
# ――――――――――――――――――――――――――――――――――――― ✀ ―――――――――――――――――――――――――――――――――――――
|
|
# stdout:
|
|
# Running suite(s): Thread
|
|
# 0%: Checks: 1, Failures: 0, Errors: 1
|
|
# ../src/tests/thread-test.c:108:E:thread:thread_test:0: (after this point) Test timeout expired
|
|
# stderr:
|
|
# loop-init
|
|
# once!
|
|
# system 'ninja -C builddir test || true'
|
|
end
|
|
|
|
def self.install
|
|
system "DESTDIR=#{CREW_DEST_DIR} #{CREW_NINJA} -C builddir install"
|
|
pulseaudio_daemon_conf = <<~PAUDIO_DAEMON_CONF_HEREDOC
|
|
# Replace these with the proper values
|
|
exit-idle-time = 10 # Exit as soon as unneeded
|
|
flat-volumes = yes # Prevent messing with the master volume
|
|
PAUDIO_DAEMON_CONF_HEREDOC
|
|
File.write("#{CREW_DEST_PREFIX}/etc/pulse/daemon.conf", pulseaudio_daemon_conf, perm: 0o666)
|
|
pulseaudio_client_conf = <<~PAUDIO_CLIENT_CONF_HEREDOC
|
|
# Replace these with the proper values
|
|
|
|
# Applications that uses PulseAudio *directly* will spawn it,
|
|
# use it, and pulse will exit itself when done because of the
|
|
# exit-idle-time setting in daemon.conf
|
|
autospawn = yes
|
|
PAUDIO_CLIENT_CONF_HEREDOC
|
|
File.write("#{CREW_DEST_PREFIX}/etc/pulse/client.conf", pulseaudio_client_conf, perm: 0o666)
|
|
pulseaudio_default_pa = <<~PAUDIO_DEFAULT_PA_HEREDOC
|
|
# Replace the *entire* content of this file with these few lines and
|
|
# read the comments
|
|
|
|
.fail
|
|
# Set tsched=0 here if you experience glitchy playback. This will
|
|
# revert back to interrupt-based scheduling and should fix it.
|
|
#
|
|
# Replace the device= part if you want pulse to use a specific device
|
|
# such as "dmix" and "dsnoop" so it doesn't lock an hw: device.
|
|
|
|
# INPUT/RECORD
|
|
load-module module-alsa-source device="default" tsched=1
|
|
|
|
# OUTPUT/PLAYBACK
|
|
load-module module-alsa-sink device="default" tsched=1
|
|
|
|
# Accept clients -- very important
|
|
load-module module-native-protocol-unix
|
|
|
|
.nofail
|
|
.ifexists module-x11-publish.so
|
|
# Publish to X11 so the clients know how to connect to Pulse. Will
|
|
# clear itself on unload.
|
|
load-module module-x11-publish
|
|
.endif
|
|
PAUDIO_DEFAULT_PA_HEREDOC
|
|
File.write("#{CREW_DEST_PREFIX}/etc/pulse/default.pa", pulseaudio_default_pa, perm: 0o666)
|
|
end
|
|
end
|