pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
qt6-qtwebengine: add audioio and pulseaudio
Module Name: pkgsrc-wip
Committed By: Mark Davies <mark%ecs.vuw.ac.nz@localhost>
Pushed By: markd
Date: Fri Apr 25 15:47:12 2025 +1200
Changeset: 90a26a4ba842a3dbf30754b570c1939d75051265
Modified Files:
qt6-qtwebengine/Makefile
qt6-qtwebengine/distinfo
qt6-qtwebengine/patches/patch-src_core_CMakeLists.txt
qt6-qtwebengine/patches/patch-src_core_api_configure.cmake
Added Files:
qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audio__manager__audioio.cc
qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__input.cc
qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__output.cc
Log Message:
qt6-qtwebengine: add audioio and pulseaudio
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=90a26a4ba842a3dbf30754b570c1939d75051265
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
qt6-qtwebengine/Makefile | 19 ++++++++-
qt6-qtwebengine/distinfo | 10 ++++-
..._media_audio_audioio_audio__manager__audioio.cc | 31 ++++++++++++++
..._chromium_media_audio_audioio_audioio__input.cc | 42 +++++++++++++++++++
...chromium_media_audio_audioio_audioio__output.cc | 49 ++++++++++++++++++++++
.../patches/patch-src_core_CMakeLists.txt | 19 ++++++++-
.../patches/patch-src_core_api_configure.cmake | 15 +++++--
7 files changed, 177 insertions(+), 8 deletions(-)
diffs:
diff --git a/qt6-qtwebengine/Makefile b/qt6-qtwebengine/Makefile
index e6b9550007..500d6b7e05 100644
--- a/qt6-qtwebengine/Makefile
+++ b/qt6-qtwebengine/Makefile
@@ -10,6 +10,13 @@ CMAKE_GENERATOR= ninja
.include "../../x11/qt6-qtbase/Makefile.common"
+AUDIOIO= kikadf-chromium-audioio-v130.0.tar.gz
+DISTFILES+= ${DEFAULT_DISTFILES}
+DISTFILES+= ${AUDIOIO}
+SITES.${AUDIOIO}= ${MASTER_SITE_GITHUB:=kikadf/chromium-audioio/archive/v130.0.tat.gz}
+EXTRACT_DIR.${AUDIOIO}= ${WRKSRC}/src/3rdparty/chromium/media/audio/audioio
+EXTRACT_OPTS_TAR.${AUDIOIO}= --strip-components=1
+
TOOL_DEPENDS+= gperf>=3.2:../../devel/gperf
TOOL_DEPENDS+= ninja-build-[0-9]*:../../devel/ninja-build
TOOL_DEPENDS+= nodejs-[0-9]*:../../lang/nodejs
@@ -33,6 +40,8 @@ PKGCONFIG_OVERRIDE+= lib/pkgconfig/Qt6WebEngineQuick.pc
PKGCONFIG_OVERRIDE+= lib/pkgconfig/Qt6WebEngineQuickDelegatesQml.pc
PKGCONFIG_OVERRIDE+= lib/pkgconfig/Qt6WebEngineWidgets.pc
+.include "../../mk/bsd.prefs.mk"
+
CMAKE_CONFIGURE_ARGS+= -G Ninja
CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_pdf_v8=ON
CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_proprietary_codecs=ON
@@ -49,6 +58,13 @@ CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_system_zlib=ON
CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_system_re2=OFF
CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_kerberos=ON
CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_vulkan=OFF
+.if ${OPSYS} == "NetBSD"
+CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_system_audioio=ON
+.endif
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "OpenBSD"
+CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_system_sndio=ON
+.endif
+CMAKE_CONFIGURE_ARGS+= -DQT_FEATURE_webengine_system_pulseaudio=ON
CONFIGURE_ENV+= NINJAFLAGS=-j${_MAKE_JOBS_N:U1}
@@ -95,13 +111,12 @@ do-build:
do-install:
cd ${WRKSRC} && ${SETENV} ${INSTALL_ENV} ninja -j ${_MAKE_JOBS_N:U1} ${INSTALL_TARGET}
-.include "../../mk/bsd.prefs.mk"
-
.include "../../archivers/minizip/buildlink3.mk"
.if ${OPSYS} != "Darwin"
.include "../../audio/alsa-lib/buildlink3.mk"
.endif
.include "../../audio/libopus/buildlink3.mk"
+.include "../../audio/pulseaudio/buildlink3.mk"
.if ${OPSYS} == "Darwin" || ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
.include "../../devel/libexecinfo/buildlink3.mk"
.endif
diff --git a/qt6-qtwebengine/distinfo b/qt6-qtwebengine/distinfo
index cbc370dd5f..8776c68c02 100644
--- a/qt6-qtwebengine/distinfo
+++ b/qt6-qtwebengine/distinfo
@@ -3,6 +3,9 @@ $NetBSD$
BLAKE2s (qtwebengine-everywhere-src-6.8.3.tar.xz) = 084140048a7a3d5d9d68e3d260caa29ff55c024df795dac06bc6e1b979d5cc5c
SHA512 (qtwebengine-everywhere-src-6.8.3.tar.xz) = 01e8988c76ff40ca5e38f76e90791d7ef708c29f2e9f8e83ca8604b6335fbecdee71473678a63633ec1edec85088256b20e56a618ca95748ccbe1e7b9673c298
Size (qtwebengine-everywhere-src-6.8.3.tar.xz) = 566553436 bytes
+BLAKE2s (kikadf-chromium-audioio-v130.0.tar.gz) = 45fe07cb8280f81b8ef490059002da426b59fe69b5ebd53951fe1dc3e9495a10
+SHA512 (kikadf-chromium-audioio-v130.0.tar.gz) = 840aed119dc69982f14fd5f4767e144bfc8a66672b660f0f05f5459070d7f6a36b8719ae7c0de049f7345dec39266759aedcdd5ee37aa4e98bcd2b44d06a3a4c
+Size (kikadf-chromium-audioio-v130.0.tar.gz) = 7824 bytes
SHA1 (patch-cmake_Functions.cmake) = 40fa3beae3151fa399adb16c84c22096137fe500
SHA1 (patch-configure.cmake) = 82aeec6c9cb2296dba41b552b53318bd976d0ec4
SHA1 (patch-src_3rdparty_chromium_BUILD.gn) = a30601c51cc74ba0b1d6892396364d176a3d68b4
@@ -474,6 +477,9 @@ SHA1 (patch-src_3rdparty_chromium_media_audio_BUILD.gn) = 7c1ec08f0f408add785afc
SHA1 (patch-src_3rdparty_chromium_media_audio_alsa_audio__manager__alsa.cc) = 57aca596b8ba807b6eb7916c2363f35e9b0316b4
SHA1 (patch-src_3rdparty_chromium_media_audio_audio__input__device.cc) = fd2f64f3dd6209e24f67f0297d0250715aa74d60
SHA1 (patch-src_3rdparty_chromium_media_audio_audio__output__proxy__unittest.cc) = d1ef65416d783ffd309928c42c83d5a5d601bc0b
+SHA1 (patch-src_3rdparty_chromium_media_audio_audioio_audio__manager__audioio.cc) = 0d5dec95421d539febbd83869fdb8f92017e775c
+SHA1 (patch-src_3rdparty_chromium_media_audio_audioio_audioio__input.cc) = b7bb7b842ae0fc5b96a63539799afe7ea9918a73
+SHA1 (patch-src_3rdparty_chromium_media_audio_audioio_audioio__output.cc) = df5a28089d24755122a2790a19008c8b9d6c854a
SHA1 (patch-src_3rdparty_chromium_media_audio_pulse_pulse__util.cc) = ad136d0f35bf05d03313234b612e0a906b5c307c
SHA1 (patch-src_3rdparty_chromium_media_audio_sndio_audio__manager__sndio.cc) = 479d1eef38b617c4f71c6798c4b6ffc2cc209b93
SHA1 (patch-src_3rdparty_chromium_media_audio_sndio_audio__manager__sndio.h) = 6fd0966023434aec68f11eb9ba3ac178ecaceb3b
@@ -1018,8 +1024,8 @@ SHA1 (patch-src_3rdparty_chromium_v8_tools_run-paxctl.py) = 0a2aa78fd50836fb66f6
SHA1 (patch-src_3rdparty_gn_src_gn_c__tool.cc) = 6167583fe68fd1238fcca76dc66a3e89fd494c25
SHA1 (patch-src_3rdparty_gn_src_gn_ninja__binary__target__writer.cc) = 2cc5e43ab3c87ee7d965f1c88c6aac158c993e1d
SHA1 (patch-src_3rdparty_gn_src_gn_tool.h) = c136d13d8be6e21d6d3441b3f8cae35245ef1081
-SHA1 (patch-src_core_CMakeLists.txt) = 9bf0965ad21d415383c61f29ec323b2d86845def
-SHA1 (patch-src_core_api_configure.cmake) = ae0eb5b4afeca48a54898560cb88305d7f6a538a
+SHA1 (patch-src_core_CMakeLists.txt) = f53728fd3e623d22d643a70d724ae6e6b6e7d76b
+SHA1 (patch-src_core_api_configure.cmake) = 8db0b923dbe173c9d5882fb4c6f2ed2dd85fe9ed
SHA1 (patch-src_core_api_qt__cmdline.cmake) = fe994c072bec116651b186b0c40b16d23284046d
SHA1 (patch-src_pdf_CMakeLists.txt) = 725684a016055db1e68a6aceb2d97da976682c0a
SHA1 (patch-src_pdf_configure_BUILD.root.gn.in) = c5839871ef47b9b284736d47d773187401eba1ee
diff --git a/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audio__manager__audioio.cc b/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audio__manager__audioio.cc
new file mode 100644
index 0000000000..a4fb4dd3a2
--- /dev/null
+++ b/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audio__manager__audioio.cc
@@ -0,0 +1,31 @@
+$NetBSD$
+
+rename kMaxOutputStreams so doesn't clash with one in audio_manager_alsa.cc
+
+--- src/3rdparty/chromium/media/audio/audioio/audio_manager_audioio.cc.orig 2024-11-04 10:01:05.000000000 +0000
++++ src/3rdparty/chromium/media/audio/audioio/audio_manager_audioio.cc
+@@ -15,7 +15,7 @@
+ namespace media {
+
+ // Maximum number of output streams that can be open simultaneously.
+-static const int kMaxOutputStreams = 50;
++static const int kMaxOutputStreamsAIO = 50;
+
+ // Default sample rate for input and output streams.
+ static const int kDefaultSampleRate = 48000;
+@@ -66,7 +66,7 @@ AudioManagerAudioIO::AudioManagerAudioIO
+ : AudioManagerBase(std::move(audio_thread),
+ audio_log_factory) {
+ LOG(INFO) << "[AUDIOIO] AudioManagerAudioIO";
+- SetMaxOutputStreamsAllowed(kMaxOutputStreams);
++ SetMaxOutputStreamsAllowed(kMaxOutputStreamsAIO);
+ }
+
+ AudioManagerAudioIO::~AudioManagerAudioIO() = default;
+@@ -156,4 +156,4 @@ std::unique_ptr<media::AudioManager> Cre
+ audio_log_factory);
+ }
+
+-} // namespace media
+\ No newline at end of file
++} // namespace media
diff --git a/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__input.cc b/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__input.cc
new file mode 100644
index 0000000000..2019a6ee02
--- /dev/null
+++ b/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__input.cc
@@ -0,0 +1,42 @@
+$NetBSD$
+
+use a unique name to not clash with audioio_output.cc
+
+--- src/3rdparty/chromium/media/audio/audioio/audioio_input.cc.orig 2024-11-04 10:01:05.000000000 +0000
++++ src/3rdparty/chromium/media/audio/audioio/audioio_input.cc
+@@ -9,7 +9,7 @@
+
+ namespace media {
+
+-static const SampleFormat kSampleFormat = kSampleFormatS16;
++static const SampleFormat kSampleFormatAAI = kSampleFormatS16;
+
+ void *AudioIOAudioInputStream::ThreadEntry(void *arg) {
+ AudioIOAudioInputStream* self = static_cast<AudioIOAudioInputStream*>(arg);
+@@ -52,7 +52,7 @@ AudioInputStream::OpenOutcome AudioIOAud
+ info.mode = AUMODE_RECORD;
+ info.record.sample_rate = params.sample_rate();
+ info.record.channels = params.channels();
+- info.record.precision = SampleFormatToBitsPerChannel(kSampleFormat);
++ info.record.precision = SampleFormatToBitsPerChannel(kSampleFormatAAI);
+ info.record.encoding = AUDIO_ENCODING_SLINEAR_LE;
+ info.record.pause = true;
+
+@@ -72,7 +72,7 @@ AudioInputStream::OpenOutcome AudioIOAud
+ state = kStopped;
+ inputvol = 1.0;
+ vol = AUDIO_MAX_GAIN;
+- buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormatAAI)];
+ LOG(INFO) << "[AUDIOIO] InputStream opened.";
+ return OpenOutcome::kSuccess;
+ error:
+@@ -206,7 +206,7 @@ void AudioIOAudioInputStream::SetOutputD
+
+ void AudioIOAudioInputStream::ThreadLoop(void) {
+ size_t bytes, n, frames, nframes, move, count;
+- size_t framesize = params.GetBytesPerFrame(kSampleFormat);
++ size_t framesize = params.GetBytesPerFrame(kSampleFormatAAI);
+ size_t read_bytes = 0;
+ size_t hw_delay = 0;
+ double normalized_volume = 0.0;
diff --git a/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__output.cc b/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__output.cc
new file mode 100644
index 0000000000..2b943a2268
--- /dev/null
+++ b/qt6-qtwebengine/patches/patch-src_3rdparty_chromium_media_audio_audioio_audioio__output.cc
@@ -0,0 +1,49 @@
+$NetBSD$
+
+use a unique name to not clash with audioio_input.cc
+
+--- src/3rdparty/chromium/media/audio/audioio/audioio_output.cc.orig 2024-11-04 10:01:05.000000000 +0000
++++ src/3rdparty/chromium/media/audio/audioio/audioio_output.cc
+@@ -10,7 +10,7 @@
+
+ namespace media {
+
+-static const SampleFormat kSampleFormat = kSampleFormatS16;
++static const SampleFormat kSampleFormatAAO = kSampleFormatS16;
+
+ void *AudioIOAudioOutputStream::ThreadEntry(void *arg) {
+ AudioIOAudioOutputStream* self = static_cast<AudioIOAudioOutputStream*>(arg);
+@@ -49,7 +49,7 @@ bool AudioIOAudioOutputStream::Open() {
+ info.mode = AUMODE_PLAY;
+ info.play.sample_rate = params.sample_rate();
+ info.play.channels = params.channels();
+- info.play.precision = SampleFormatToBitsPerChannel(kSampleFormat);
++ info.play.precision = SampleFormatToBitsPerChannel(kSampleFormatAAO);
+ info.play.encoding = AUDIO_ENCODING_SLINEAR_LE;
+ info.play.pause = true;
+
+@@ -69,7 +69,7 @@ bool AudioIOAudioOutputStream::Open() {
+ state = kStopped;
+ volpending = 0;
+ vol = AUDIO_MAX_GAIN;
+- buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++ buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormatAAO)];
+ LOG(INFO) << "[AUDIOIO] OutputStream opened.";
+ return true;
+
+@@ -187,7 +187,7 @@ void AudioIOAudioOutputStream::Flush() {
+ void AudioIOAudioOutputStream::ThreadLoop(void) {
+ int avail, count, ret, frames, move;
+ int written_bytes = 0;
+- int framesize = params.GetBytesPerFrame(kSampleFormat);
++ int framesize = params.GetBytesPerFrame(kSampleFormatAAO);
+ int hw_delay = 0;
+ struct audio_info info;
+ struct audio_offset offset;
+@@ -249,4 +249,4 @@ void AudioIOAudioOutputStream::ThreadLoo
+ LOG(INFO) << "[AUDIOIO] Output:ThreadLoop() stopped.";
+ }
+
+-} // namespace media
+\ No newline at end of file
++} // namespace media
diff --git a/qt6-qtwebengine/patches/patch-src_core_CMakeLists.txt b/qt6-qtwebengine/patches/patch-src_core_CMakeLists.txt
index eeb54b318a..c6a7798ef1 100644
--- a/qt6-qtwebengine/patches/patch-src_core_CMakeLists.txt
+++ b/qt6-qtwebengine/patches/patch-src_core_CMakeLists.txt
@@ -2,8 +2,10 @@ $NetBSD$
* Based on OpenBSD's qt6-qtwebengine patches, and
pkgsrc's qt5-qtwebengine patches
+ - add sndio
+ - add audioio
---- src/core/CMakeLists.txt.orig 2025-01-24 10:49:20.000000000 +0000
+--- src/core/CMakeLists.txt.orig 2025-03-18 19:28:59.000000000 +0000
+++ src/core/CMakeLists.txt
@@ -21,7 +21,7 @@ add_subdirectory(tools/qwebengine_conver
# TOOLCHAIN SETUP
@@ -41,3 +43,18 @@ $NetBSD$
list(APPEND gnArgArg
angle_enable_gl=true
use_gtk=false # GTK toolkit bindings
+@@ -506,6 +506,14 @@ foreach(arch ${archs})
+ CONDITION QT_FEATURE_webengine_system_pulseaudio
+ )
+ extend_gn_list(gnArgArg
++ ARGS use_sndio
++ CONDITION QT_FEATURE_webengine_system_sndio
++ )
++ extend_gn_list(gnArgArg
++ ARGS use_audioio
++ CONDITION QT_FEATURE_webengine_system_audioio
++ )
++ extend_gn_list(gnArgArg
+ ARGS use_system_minigbm
+ CONDITION QT_FEATURE_webengine_system_gbm
+ )
diff --git a/qt6-qtwebengine/patches/patch-src_core_api_configure.cmake b/qt6-qtwebengine/patches/patch-src_core_api_configure.cmake
index 3678e83210..0a80b01c2d 100644
--- a/qt6-qtwebengine/patches/patch-src_core_api_configure.cmake
+++ b/qt6-qtwebengine/patches/patch-src_core_api_configure.cmake
@@ -3,8 +3,9 @@ $NetBSD$
* Based on OpenBSD's qt6-qtwebengine patches, and
pkgsrc's qt5-qtwebengine patches
- add sndio
+ - add audioio
---- src/core/api/configure.cmake.orig 2024-11-21 04:36:37.000000000 +0000
+--- src/core/api/configure.cmake.orig 2025-03-18 19:28:59.000000000 +0000
+++ src/core/api/configure.cmake
@@ -11,6 +11,7 @@ if(NOT QT_CONFIGURE_RUNNING)
pkg_check_modules(ALSA alsa IMPORTED_TARGET)
@@ -14,7 +15,7 @@ $NetBSD$
pkg_check_modules(POPPLER_CPP poppler-cpp IMPORTED_TARGET)
pkg_check_modules(GBM gbm)
pkg_check_modules(LIBVA libva>=1.14)
-@@ -87,6 +88,11 @@ qt_feature("webengine-printing-and-pdf"
+@@ -87,6 +88,16 @@ qt_feature("webengine-printing-and-pdf"
AUTODETECT NOT QT_FEATURE_webengine_embedded_build
CONDITION TARGET Qt::PrintSupport AND QT_FEATURE_printer
)
@@ -22,11 +23,16 @@ $NetBSD$
+ LABEL "Use sndio"
+ AUTODETECT UNIX
+ CONDITION SNDIO_FOUND
++)
++qt_feature("webengine-system-audioio" PRIVATE
++ LABEL "Use audioio"
++ AUTODETECT UNIX
++ CONDITION AUDIOIO_FOUND
+)
qt_feature("webengine-pepper-plugins" PRIVATE
LABEL "Pepper Plugins"
PURPOSE "Enables use of Pepper plugins."
-@@ -219,7 +225,10 @@ qt_configure_add_summary_entry(
+@@ -220,7 +231,13 @@ qt_configure_add_summary_entry(
)
qt_configure_add_summary_entry(
ARGS "webengine-system-pulseaudio"
@@ -35,6 +41,9 @@ $NetBSD$
+)
+qt_configure_add_summary_entry(
+ ARGS "webengine-system-sndio"
++)
++qt_configure_add_summary_entry(
++ ARGS "webengine-system-audioio"
)
qt_configure_add_summary_entry(ARGS "webengine-v8-context-snapshot")
qt_configure_add_summary_entry(ARGS "webenginedriver")
Home |
Main Index |
Thread Index |
Old Index