diff --git a/audio/openal-soft/Makefile b/audio/openal-soft/Makefile index d846c23752a2..bd9233ebee7f 100644 --- a/audio/openal-soft/Makefile +++ b/audio/openal-soft/Makefile @@ -1,115 +1,119 @@ PORTNAME= openal-soft -PORTVERSION= 1.24.3 +PORTVERSION= 1.25.0 CATEGORIES= audio MASTER_SITES= https://openal-soft.org/openal-releases/ MAINTAINER= multimedia@FreeBSD.org COMMENT= Software implementation of the OpenAL specification WWW= https://openal-soft.org/ LICENSE= LGPL20+ LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libdbus-1.so:devel/dbus -USES= cmake compiler:c++17-lang pkgconfig tar:bzip2 +USES= cmake compiler:c++20-lang pkgconfig tar:bzip2 USE_LDCONFIG= yes CMAKE_ARGS= -DCMAKE_INSTALL_DATADIR:STRING="${PREFIX}/etc" CMAKE_ON= ALSOFT_BACKEND_WAVE -CMAKE_OFF= ALSOFT_BACKEND_ALSA ALSOFT_DLOPEN ALSOFT_EXAMPLES \ - ALSOFT_REQUIRE_SOLARIS +CMAKE_OFF= ALSOFT_BACKEND_ALSA \ + ALSOFT_DLOPEN \ + ALSOFT_EXAMPLES \ + ALSOFT_ENABLE_MODULES \ + ALSOFT_REQUIRE_SOLARIS \ + CMAKE_CXX_SCAN_FOR_MODULES # Use pthread instead of C11 threads CFLAGS+= -D__STDC_NO_THREADS__ # do not link with librt and libdl. LDFLAGS+= -Wl,--as-needed LDFLAGS_i386= -Wl,-z,notext PLIST_SUB= SOVERSION=${PORTVERSION} OPTIONS_DEFINE= CONFIG EXAMPLES JACK OSS PIPEWIRE PORTAUDIO \ PULSEAUDIO SDL SNDIO UTILS OPTIONS_DEFINE_aarch64= SIMD OPTIONS_DEFINE_amd64= SIMD OPTIONS_DEFINE_i386= SIMD OPTIONS_DEFAULT= OSS UTILS OPTIONS_DEFAULT_aarch64=SIMD OPTIONS_DEFAULT_amd64= SIMD OPTIONS_DEFAULT_i386= SIMD OPTIONS_SUB= yes -CONFIG_DESC= Install configuration utility (needs Qt 5) +CONFIG_DESC= Install configuration utility (needs Qt6) UTILS_DESC= Build and install utility programs CONFIG_IMPLIES= UTILS -CONFIG_USES= qt:5 -CONFIG_USE= QT=core,gui,widgets,buildtools:build,qmake:build +CONFIG_USES= qt:6 +CONFIG_USE= QT=base CONFIG_CMAKE_BOOL_OFF= ALSOFT_NO_CONFIG_UTIL JACK_LIB_DEPENDS= libjack.so:audio/jack JACK_CMAKE_BOOL= ALSOFT_BACKEND_JACK ALSOFT_REQUIRE_JACK OSS_CMAKE_BOOL= ALSOFT_BACKEND_OSS ALSOFT_REQUIRE_OSS PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire PIPEWIRE_USES= localbase:ldflags PIPEWIRE_CMAKE_BOOL= ALSOFT_BACKEND_PIPEWIRE ALSOFT_REQUIRE_PIPEWIRE PORTAUDIO_LIB_DEPENDS= libportaudio.so:audio/portaudio PORTAUDIO_CMAKE_BOOL= ALSOFT_BACKEND_PORTAUDIO ALSOFT_REQUIRE_PORTAUDIO PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CMAKE_BOOL= ALSOFT_BACKEND_PULSEAUDIO ALSOFT_REQUIRE_PULSEAUDIO SDL_USES= sdl SDL_USE= SDL=sdl2 SDL_CMAKE_BOOL= ALSOFT_BACKEND_SDL2 ALSOFT_REQUIRE_SDL2 SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio SNDIO_CMAKE_BOOL= ALSOFT_BACKEND_SNDIO ALSOFT_REQUIRE_SNDIO UTILS_LIB_DEPENDS= libmysofa.so:audio/libmysofa UTILS_CMAKE_BOOL= ALSOFT_UTILS .include .if ${PORT_OPTIONS:MSIMD} . if !${MACHINE_CPU:Msse} CMAKE_OFF+= ALSOFT_CPUEXT_SSE . endif . if !${MACHINE_CPU:Msse2} CMAKE_OFF+= ALSOFT_CPUEXT_SSE2 . endif . if !${MACHINE_CPU:Msse3} CMAKE_OFF+= ALSOFT_CPUEXT_SSE3 . endif . if !${MACHINE_CPU:Msse41} CMAKE_OFF+= ALSOFT_CPUEXT_SSE4_1 . endif .else CMAKE_OFF+= ALSOFT_CPUEXT_NEON \ ALSOFT_CPUEXT_SSE \ ALSOFT_CPUEXT_SSE2 \ ALSOFT_CPUEXT_SSE3 \ ALSOFT_CPUEXT_SSE4_1 .endif # The following is actually meant for lld 15.0 and later, but the ports # framework does not support LINKER_TYPE and LINKER_VERSION yet. .if ${COMPILER_TYPE} == "clang" # Turn off checking of dynamic relocations, to avoid lld diagnostics about # possibly incorrect addend values. LDFLAGS_i386+= -Wl,--no-check-dynamic-relocations .endif post-patch: @${REINPLACE_CMD} 's|/etc/openal|${ETCDIR}|' \ ${WRKSRC}/alc/alconfig.cpp post-install-EXAMPLES-on: (cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . \ ${STAGEDIR}${EXAMPLESDIR}) .include diff --git a/audio/openal-soft/distinfo b/audio/openal-soft/distinfo index 4c70f2736a10..a38c45c7f411 100644 --- a/audio/openal-soft/distinfo +++ b/audio/openal-soft/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1746663895 -SHA256 (openal-soft-1.24.3.tar.bz2) = cb5e6197a1c0da0edcf2a81024953cc8fa8545c3b9474e48c852af709d587892 -SIZE (openal-soft-1.24.3.tar.bz2) = 1025568 +TIMESTAMP = 1766818253 +SHA256 (openal-soft-1.25.0.tar.bz2) = f671087c9043b1e92cd0b125af6f43663249d3c02bc6d580d774a47a91050e0e +SIZE (openal-soft-1.25.0.tar.bz2) = 1111903 diff --git a/audio/openal-soft/files/patch-CMakeLists.txt b/audio/openal-soft/files/patch-CMakeLists.txt index 59cc59de4b5b..a500c699a2c3 100644 --- a/audio/openal-soft/files/patch-CMakeLists.txt +++ b/audio/openal-soft/files/patch-CMakeLists.txt @@ -1,25 +1,25 @@ ---- CMakeLists.txt.orig 2020-11-04 10:00:35 UTC +--- CMakeLists.txt.orig 2025-12-22 09:17:45 UTC +++ CMakeLists.txt -@@ -1394,19 +1394,19 @@ endif() +@@ -1876,19 +1876,19 @@ if(ALSOFT_INSTALL_CONFIG) if(ALSOFT_INSTALL_CONFIG) install(FILES alsoftrc.sample - DESTINATION ${CMAKE_INSTALL_DATADIR}/openal) + DESTINATION ${CMAKE_INSTALL_DATADIR}/openal-soft) message(STATUS "Installing sample configuration") endif() if(ALSOFT_INSTALL_HRTF_DATA) install(DIRECTORY hrtf - DESTINATION ${CMAKE_INSTALL_DATADIR}/openal) + DESTINATION ${CMAKE_INSTALL_DATADIR}/openal-soft) message(STATUS "Installing HRTF data files") endif() if(ALSOFT_INSTALL_AMBDEC_PRESETS) install(DIRECTORY presets - DESTINATION ${CMAKE_INSTALL_DATADIR}/openal) + DESTINATION ${CMAKE_INSTALL_DATADIR}/openal-soft) message(STATUS "Installing AmbDec presets") endif() message(STATUS "") diff --git a/audio/openal-soft/files/patch-alc_backends_oss.cpp b/audio/openal-soft/files/patch-alc_backends_oss.cpp new file mode 100644 index 000000000000..b8e75ecf6ec1 --- /dev/null +++ b/audio/openal-soft/files/patch-alc_backends_oss.cpp @@ -0,0 +1,69 @@ +Backport upstream commits to fix build. + +https://github.com/kcat/openal-soft/commit/278d1dc4d607b84e4e7b2d93af094d7932588962 +https://github.com/kcat/openal-soft/commit/b93a15cc886cda8ce7626e84c637bdaf7c346773 + +https://github.com/kcat/openal-soft/issues/1215 + +--- alc/backends/oss.cpp.orig 2025-12-22 09:17:45 UTC ++++ alc/backends/oss.cpp +@@ -121,7 +121,7 @@ class FileHandle { (public) + ~FileHandle() { if(mFd != -1) ::close(mFd); } + + template +- [[nodiscard]] auto open(const char *fname, Args&& ...args) -> bool ++ [[nodiscard]] auto open(gsl::czstring const fname, Args&& ...args) -> bool + { + close(); + mFd = ::open(fname, std::forward(args)...); +@@ -149,21 +149,25 @@ void ALCossListAppend(std::vector &list, std:: + if(strncmp(path.data() + i, handle.data() + hoffset, path.size() - i) == 0) + handle = handle.substr(0, hoffset); + path = path.substr(0, i); ++ break; + } + } + #endif +- if(handle.empty()) +- handle = path; ++ if(path.empty()) ++ return; + + if(std::ranges::find(list, path, &DevMap::device_name) != list.end()) + return; + ++ if(handle.empty()) ++ handle = path; ++ + auto count = 1; + auto newname = std::string{handle}; + while(std::ranges::find(list, newname, &DevMap::name) != list.end()) + newname = al::format("{} #{}", handle, ++count); + +- const auto &entry = list.emplace_back(std::move(newname), path); ++ const auto &entry = list.emplace_back(std::move(newname), std::string{path}); + TRACE("Got device \"{}\", \"{}\"", entry.name, entry.device_name); + } + +@@ -208,16 +212,12 @@ done: + done: + file.close(); + +- const char *defdev{((type_flag==DSP_CAP_INPUT) ? DefaultCapture : DefaultPlayback).c_str()}; +- auto iter = std::ranges::find(devlist, defdev, &DevMap::device_name); +- if(iter == devlist.end()) +- devlist.insert(devlist.begin(), DevMap{GetDefaultName(), defdev}); ++ auto const &defdev = (type_flag == DSP_CAP_INPUT) ? DefaultCapture : DefaultPlayback; ++ if(auto const iter = std::ranges::find(devlist, defdev, &DevMap::device_name); ++ iter != devlist.end()) ++ std::ranges::rotate(devlist.begin(), iter, iter+1); + else +- { +- auto entry = DevMap{std::move(*iter)}; +- devlist.erase(iter); +- devlist.insert(devlist.begin(), std::move(entry)); +- } ++ devlist.insert(devlist.begin(), DevMap{std::string{GetDefaultName()}, defdev}); + devlist.shrink_to_fit(); + } + diff --git a/audio/openal-soft/pkg-plist b/audio/openal-soft/pkg-plist index 2788e8ed9529..883989b43b16 100644 --- a/audio/openal-soft/pkg-plist +++ b/audio/openal-soft/pkg-plist @@ -1,43 +1,44 @@ %%CONFIG%%bin/alsoft-config %%UTILS%%bin/makemhr %%UTILS%%bin/openal-info %%ETCDIR%%/alsoftrc.sample %%ETCDIR%%/hrtf/Default HRTF.mhr %%ETCDIR%%/presets/3D7.1.ambdec %%ETCDIR%%/presets/hex-quad.ambdec %%ETCDIR%%/presets/hexagon.ambdec %%ETCDIR%%/presets/itu5.1-nocenter.ambdec %%ETCDIR%%/presets/itu5.1.ambdec %%ETCDIR%%/presets/presets.txt %%ETCDIR%%/presets/rectangle.ambdec %%ETCDIR%%/presets/square.ambdec include/AL/al.h include/AL/alc.h include/AL/alext.h include/AL/efx-creative.h include/AL/efx-presets.h include/AL/efx.h lib/cmake/OpenAL/OpenALConfig.cmake lib/cmake/OpenAL/OpenALTargets-%%CMAKE_BUILD_TYPE%%.cmake lib/cmake/OpenAL/OpenALTargets.cmake lib/libopenal.so lib/libopenal.so.1 lib/libopenal.so.%%SOVERSION%% libdata/pkgconfig/openal.pc %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alconvolve.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/aldebug.cpp %%PORTEXAMPLES%%%%EXAMPLESDIR%%/aldirect.cpp %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alffplay.cpp %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alhrtf.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/allafplay.cpp %%PORTEXAMPLES%%%%EXAMPLESDIR%%/allatency.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alloopback.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/almultireverb.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alplay.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alrecord.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alreverb.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alstream.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/alstreamcb.cpp %%PORTEXAMPLES%%%%EXAMPLESDIR%%/altonegen.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/common/alhelpers.c %%PORTEXAMPLES%%%%EXAMPLESDIR%%/common/alhelpers.h +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/common/alhelpers.hpp