Konrad Weihmann [Sun, 18 Sep 2022 08:51:11 +0000 (08:51 +0000)]
python3-idna: migrate to flit-core
setup.py in latest release is broken after move to flit-core
was released by the project.
This broke the version detection in consuming libs like requests.
Remove the not needed egg.info removal as well
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Joslyn [Sun, 18 Sep 2022 17:22:02 +0000 (10:22 -0700)]
flac: Update 1.3.4 to 1.4.0
This is a major update with some breaking library changes. Full release
notes are available at: https://xiph.org/flac/changelog.html
As part of this update, make some changes to the recipe:
* Development has moved from sourceforge to github, update BUGTRACKER
link.
* Move ogg support to a PACKAGECONFIG option rather than force enabled.
Keep it enabled by default to retain previous behavior.
* Move altivec, vsx, and sse flags to PACKAGECONFIG as well to make them
easier to toggle. Add new avx flag which enables runtime detection of
AVX/AVX2 instructions.
* Remove liboggflac and liboggflac++ packaging. This was merged into the
main libflac and libflac++ libraries in version 1.1.3, so these
packages have been empty.
License-Update: Updated copyright years
Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 16 Sep 2022 12:21:12 +0000 (13:21 +0100)]
oeqa/utils/decorators: Drop getResults
Now there are no users of getResults, drop it. The code doesn't work with
python 3.8 onwards and is pretty horrible with internal python knowledge.
We don't need this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 16 Sep 2022 12:19:07 +0000 (13:19 +0100)]
oeqa/utils/decorators: Drop unused decorators
These decorators aren't used anywhere in core and broke from python 3.8
onwards. The code implementing them (in getResults) is pretty horrible
and I'm happy to see them and it removed.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 16 Sep 2022 12:16:40 +0000 (13:16 +0100)]
oetest: Drop getResults usage from oeRuntimeTest
Despite the name, this code is only used from testexport and the function
in question is broken on python 3.8 onwards. Since nobody is using it
and the failure log handling here is of questionable benefit anyway, drop it.
We should be using the same code for normal test runs and testexport,
not having two different codepaths.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The character '%' is not a valid part of a recipe filename and has been used
here only to suggest a wildcard regarding the recipe's version, see reply [1] in
a companioned thread. Correct that by using the current recipe version instead.
Andrei Gherzan [Wed, 14 Sep 2022 12:08:35 +0000 (14:08 +0200)]
rootfs.py: Drop FAKEROOT support in exec function
The _exec_shell_cmd function is used by a couple of other functions that
are ultimatelly called from the create_rootfs function. The latter is
used in image bbclass' do_rootfs which is running using the fakeroot
support in bitbake. This makes the fakeroot support in _exec_shell_cmd
redundant and never actually used.
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix multilib sdk issue where gcc is unable to find linker. Previous
fix was in cdd86896c8d29135f937968e9aa07f919cf543d3 using real-ld
symlink, but that prevented switching between bfd and gold linkers.
Running compiler with debug arguments shows that collect2 tries and
fails to find linker using the multilib triples:
$ $CC -v -Wl,-debug
...
Looking for 'real-ld'
Looking for 'collect-ld'
Looking for 'mips-oemllib32-linux-ld'
Looking for 'mips-oe-linux-mips-oemllib32-linux-ld'
...
collect2 version 12.2.0
ld_file_name = not found
...
collect2: fatal error: cannot find ‘ld’
Using --with-plugin-ld=ld in gcc-cross-canadian builds to set default
linker name for collect2, lets it find the linker correctly:
Looking for 'real-ld'
Looking for 'collect-ld'
Looking for 'ld'
...
collect2 version 12.2.0
ld_file_name = /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/libexec/mips-oe-linux/gcc/mips-oe-linux/12.2.0/ld
Swith between bfd and gold linker works as expected now:
$ $CC -v -Wl,-debug -fuse-ld=gold
...
Looking for 'real-ld'
Looking for 'collect-ld'
Looking for 'ld.gold'
...
collect2 version 12.2.0
ld_file_name = /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/libexec/i686-oe-linux/gcc/i686-oe-linux/12.2.0/ld.gold
Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add packages for the new Qualcomm firmware released for Lenovo X13s
laptop.
The INSANE_SKIP:${PN} has to be provided to silent following warnings:
WARNING: File '/lib/firmware/qcom/sc8280xp/LENOVO/21BX/qcadsp8280.mbn' from linux-firmware was already stripped, this will prevent future debugging!
WARNING: File '/lib/firmware/qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn' from linux-firmware was already stripped, this will prevent future debugging!
WARNING: File '/lib/firmware/qcom/sc8280xp/LENOVO/21BX/qccdsp8280.mbn' from linux-firmware was already stripped, this will prevent future debugging!
WARNING: File '/lib/firmware/qcom/sc8280xp/LENOVO/21BX/qcslpi8280.mbn' from linux-firmware was already stripped, this will prevent future debugging!
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* c399271c10 nscd: Fix netlink cache invalidation if epoll is used [BZ #29415]
* b46412fb17 Add NEWS entry for CVE-2022-39046
* 645d94808a syslog: Remove extra whitespace between timestamp and message (BZ#29544)
* b3736d1a3c elf: Restore how vDSO dependency is printed with LD_TRACE_LOADED_OBJECTS (BZ #29539)
* 3c791f2031 Apply asm redirections in wchar.h before first use
* 924e4f3eaa elf: Call __libc_early_init for reused namespaces (bug 29528)
* b0e7888d1f syslog: Fix large messages (BZ#29536)
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 13 Sep 2022 09:29:01 +0000 (10:29 +0100)]
selftest/qemurunner: Work around possible control character contamination
Using a binary string as the login banner search expression is fraught with
risks. We've seen cases on the autobuilder where "login:" is clearly shown
but the code hasn't triggered. The most likely cause is hidden control characters
in the output causing the search to fail.
Take the opportunity to remove the horrible binary string search, at the expense of
decoding the bootlog multiple times.
Tweak the logging so we can know which log was printed (self.msg or bootlog)
just in case this isn't the issue and we need more information in future.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrei Gherzan [Fri, 9 Sep 2022 22:04:25 +0000 (00:04 +0200)]
rootfs.py: Run depmod(wrapper) against each compiled kernel
We run depmod (through depmodwrapper) at the end of the rootfs
generation process. This part of the process assumes in its current
implementation that the kernel package name is always 'kernel' and that
there is only one set of kernel modules for which we need to generate
the modules.dep and map files.
The kernel package name can be configured via a variable
(KERNEL_PACKAGE_NAME) and becomes a namespace that enables the build
system to deal with multiple compiled kernel recipes. This patch checks
for all the depmod pkgdata and runs depmod for each of the detected
kernel versions/kernel package name.
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrei Gherzan [Fri, 9 Sep 2022 22:04:22 +0000 (00:04 +0200)]
depmodwrapper-cross: Take into consideration kernel package name
depmodwrapper assumes that the kernel package name is "kernel". Since
this is configurable via KERNEL_PACKAGE_NAME variable, the wrapper can
easily look in the wrong place. This change adds an optional positional
argument that can be used to provide the kernel package name - when not
provided, it defaults to "kernel" (current behaviour).
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mikko Rapeli [Mon, 12 Sep 2022 07:32:17 +0000 (10:32 +0300)]
u-boot: switch from append to += in SRC_URI
+= allows custom layers to change the SRC_URI e.g. when
updating the whole recipe to newer u-boot version.
With :append, there is no way to change the variable
from a bbappend.
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rust: Use libc++ runtime when using clang with llvm runtime
meta-clang has options when it comes to C++ runtime, default is to use
gnu runtime, other options are llvm runtime and android runtime. This
patch helps when a distro is using llvm runtime for C/C++ runtime. It
informs the rust build system about right C++ runtime to configure for
when such a setting is used.
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Fri, 9 Sep 2022 16:36:40 +0000 (17:36 +0100)]
libxml2: don't override XML_CATALOG_FILES in xmllint wrapper if already set
The KDE build uses custom catalogs by setting XML_CATALOG_FILES, so this
wrapper should not override that value if it has already been set.
[RP: Add vardepsexclude since bitbake stores the expanded version of the variable
name in the siginfo data which would expand to a full build path in the native
case]
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This variable is used to denote the C/C++ compiler runtime to use.
Right now there are few alternatives out of the core which could
use this variable to define this property, the values it can take
are 'gnu' for gcc runtime. 'llvm' for using compiler-rt+libc++ and
'android' to use android runtime. Default settings is to use gnu
which is current silent default also.
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to be able to debug issues on the host that have an impact on the
guest, it is useful to get the uptime of the host while starting so we can
match with the events in dmesg. Also include the uptime when cleaning up.
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Import this recipe from meta-python, as it is needed by many recipes
from different layers e.g. wireplumber from meta-multimedia,
opengl-es-cts and vulkan-cts in meta-oe, yelp-tools in meta-gnome to
name a few, the real issue is that newer vulkan-cts has added this
dependency which is in meta-oe, and meta-oe can not depend on
meta-python
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa: qemurunner: Report UNIX Epoch timestamp on login
Updates the log message printed when login banner is seen in QEMU to
report the UNIX Epoch time in addition to the human readable time. This
makes it much easier and accurate to correlate logs with the guest, in
particular with the guest journalctl which prints log timestamps in
human readable format and the oeqa SSH debug logging which prints the
UNIX Epoch.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kristian Amlie [Thu, 8 Sep 2022 12:16:06 +0000 (14:16 +0200)]
externalsrc: Don't wipe out src dir when EXPORT_FUNCTIONS is used.
When 73fa855f6af5ef9c3 was introduced, the "cleandirs" variable flag
started applying to functions exported using EXPORT_FUNCTIONS.
The externalsrc class is supposed to remove cleandirs in order to
prevent wiping out an external src folder (home directory?), but
doesn't take the previous point into account. The result is that
cleandirs is still in effect.
To fix this, apply the cleandirs manipulation to all variables, not
just predefined ones. This is expensive, but since it executes inside
an `if externalsrc` clause, and EXTERNALSRC is usually only set for
specific single recipes, it won't affect most recipes.
Richard Purdie <richard.purdie@linuxfoundation.org> is the original
author of this patch. I just submitted it under my name for blame
purposes, and also we have been testing it a lot in my company.
This is the original discussion:
https://lists.openembedded.org/g/openembedded-core/topic/91374926
Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 9 Sep 2022 08:15:55 +0000 (09:15 +0100)]
qemurunner: Update to match qmp changes
Upstream made changes to the qmp module. We need to use the legacy one
for now since that matches the interface we use, ultimately we likely
need to update our code.
Also fix the generic exception handler to show the actual exception
which helps debugging when something does break.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 8 Sep 2022 20:59:22 +0000 (21:59 +0100)]
qemu: Upgrade 7.0.0 -> 7.1.0
Drop CVE backports and backported patch for pvrdma which was also applied upstream.
Refresh cross.patch.
Drop vnc-png option removed upstream.
Update ptest path manipulations for target.
qmp now has consists of multiple files so install them all as a python module.
The upgrade contains fixes for virtio block devices which we hope will
address vda device tracebacks on the autobuilder from qemu.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gobject-introspection: Do not hardcode objdump name
Use OBJDUMP variable in the script, this helps in using the lddwrapper
with recipes which maybe using different objdump tools e.g.l
llvm-objdump or vice-versa
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
boost: Refrain bjam from poking into host includes
bjam's logic to find icu during build time tries to poke at /usr/ for
various files and it succeeds for 32bit target build on my host and it adds
-I/usr/inclue to search paths because I do have icu installed on build
host in /usr/lib and /usr/include but does not succeed
for 64-bit target builds because its searching for same in /usr/lib64
on 32-bit log_dompile shows
- icu : yes [5]
on 64 bit
- icu : no [2]
On 64bit its getting lucky because the test is failing due to mismatches
in size of 'uintptr_t' since its reading half the headers from build
host and remaining from target C++ library.
In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/boost/1.80.0-r0/boost_1_80_0/libs/locale/build/has_icu_test.cpp:7:
In file included from /usr/include/unicode/locid.h:38:
In file included from /usr/include/unicode/bytestream.h:45:
In file included from /usr/include/unicode/std_string.h:37:
In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/boost/1.80.0-r0/recipe-sysroot/usr/include/c++/v1/string:549:
In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/boost/1.80.0-r0/recipe-sysroot/usr/include/c++/v1/memory:853:
In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/boost/1.80.0-r0/recipe-sysroot/usr/include/c++/v1/__memory/compressed_pair.h:16:
In file included from /mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/boost/1.80.0-r0/recipe-sysroot/usr/include/c++/v1/tuple:226:
/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/boost/1.80.0-r0/recipe-sysroot/usr/include/c++/v1/typeinfo:247:14: error: cast from pointer to smaller type 'std::__type_info_implementations::__non_unique_arm_rtti_bit_impl::__type_name_t' (aka 'unsigned int') loses information
return reinterpret_cast<__type_name_t>(__v);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Therefore, help bjam avoid peeking into build system includes entirely.
now if ICU is staged in sysroot it will look there for all headers.
Look into libs/locale/build/Jamfile.v2 after 'Xlocale' section if
you seek further information
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Thu, 8 Sep 2022 11:54:15 +0000 (12:54 +0100)]
oeqa/selftest/debuginfod: don't re-use the database
debuginfod writes the files it scans to a database in $HOME, which isn't
ideal when the build trees that get scanned typically are deleted after
the test has finished. This can result in debuginfod trying to return
objects that no longer exist on disk:
libc error: stat /home/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-1032306/tmp/deploy/rpm/core2_64/elfutils-dbg-0.187-r0.core2_64.rpm: No such file or directory
libc error: stat /home/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-1113320/tmp/deploy/rpm/core2_64/elfutils-dbg-0.187-r0.core2_64.rpm: No such file or directory
libc error: stat /home/pokybuild/yocto-worker/oe-selftest-debian/build/build-st-1113320/tmp/deploy/rpm/core2_64/elfutils-dbg-0.187-r0.core2_64.rpm: No such file or directory
Solve this, and save writing a database on disk at all, by using the
special database path :memory: which keeps the database in memory only,
so state can't leak between tests.
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest: Add lower layer test for overlayfs-etc
Place a test file on the /etc by means of overlayfs-user recipe.
Perform QA checks to make sure that:
- When lower layer is exposed, that it's read-only to avoid undefined behavior
- By default lower layer is not exposed
Tom Hochstein [Wed, 7 Sep 2022 22:38:51 +0000 (17:38 -0500)]
cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDK
When building using an SDK, cmake complains that the target
architecture 'cortexa53-crypto' is unknown. The same build in bitbake
uses the target architecture 'aarch64'.
Set CMAKE_SYSTEM_PROCESSOR the same as for bitbake.
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The intent of the templateconf.cfg file is to cache the value of
$TEMPLATECONF. To do this, it needs to be updated in case TEMPLATECONF
is manually specified.
oe-setup-builddir: Keep templateconf.cfg relative if $TEMPLATECONF is
Before commit 7b96dc80 (scripts/oe-setup-builddir: write to
conf/templateconf.cfg after the build is set up), the path written to
templateconf.cfg was relative if $TEMPLATECONF was relative, but
afterwards it became absolute.
Restore the original behavior of saving the relative path to
templateconf.cfg.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* SC2086: Double quote to prevent globbing and word splitting.
* SC2164: Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
* SC2166: Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.
* SC2236: Use -n instead of ! -z.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oe-setup-builddir: Correct when validation of the templates dir is run
The validation of the templates directory is supposed to be run as long
as $TEMPLATECONF is defined, but it was only done if the directory did
not exist.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cairo: Adapt the license information based on what is being built
If the "trace" PACKAGECONFIG is removed to disable cairo-trace (the
only part of the code licensed as GPL-3.0), we can adapt the licenses
for cairo-dbg and cairo-src so that they do not include
"GPL-3.0-or-later" and thus they can be used also when, e.g., GPL-3.0
is blacklisted in INCOMPATIBLE_LICENSE. Also drop the GPL-3.0 license
text from LIC_FILES_CHKSUM in this case.
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Markus Volk [Tue, 6 Sep 2022 10:59:29 +0000 (12:59 +0200)]
libsdl2: update 2.0.22 -> 2.24.0
In addition to lots of bug fixes, here are the major changes in this release:
General:
New version numbering scheme, similar to GLib and Flatpak.
An even number in the minor version (second component) indicates a production-ready stable release such as 2.24.0, which would have been 2.0.24 under the old system.
The patchlevel (micro version, third component) indicates a bugfix-only update: for example, 2.24.1 would be a bugfix-only release to fix bugs in 2.24.0, without adding new features.
An odd number in the minor version indicates a prerelease such as 2.23.0. Stable distributions should not use these prereleases.
The patchlevel indicates successive prereleases, for example 2.23.1 and 2.23.2 would be prereleases during development of the SDL 2.24.0 stable release.
Added SDL_GetPointDisplayIndex() and SDL_GetRectDisplayIndex() to get the display associated with a point and rectangle in screen space
Added SDL_bsearch(), SDL_crc16(), and SDL_utf8strnlen() to the stdlib routines
Added SDL_CPUPauseInstruction() as a macro in SDL_atomic.h
Added SDL_size_mul_overflow() and SDL_size_add_overflow() for better size overflow protection
Added SDL_ResetHint() to reset a hint to the default value
Added SDL_ResetKeyboard() to reset SDL's internal keyboard state, generating key up events for all currently pressed keys
Added the hint SDL_HINT_MOUSE_RELATIVE_WARP_MOTION to control whether mouse warping generates motion events in relative mode. This hint defaults off.
Added the hint SDL_HINT_TRACKPAD_IS_TOUCH_ONLY to control whether trackpads are treated as touch devices or mice. By default touchpads are treated as mouse input.
The hint SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS now defaults on
Added support for mini-gamepad mode for Nintendo Joy-Con controllers using the HIDAPI driver
Added the hint SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS to control whether Joy-Con controllers are automatically merged into a unified gamepad when using the HIDAPI driver. This hint defaults on.
The hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED can be set to a floating point value to set the brightness of the Home LED on Nintendo Switch controllers
Added the hint SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED to set the Home LED brightness for the Nintendo Joy-Con controllers. By default the Home LED is not modified.
Added the hint SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED to control whether the player LED should be lit on the Nintendo Joy-Con controllers
Added support for Nintendo Online classic controllers using the HIDAPI driver
Added the hint SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC to control whether the HIDAPI driver for Nintendo Online classic controllers should be used
Added support for the NVIDIA Shield Controller to the HIDAPI driver, supporting rumble and battery status
Added support for NVIDIA SHIELD controller to the HIDAPI driver, and a hint SDL_HINT_JOYSTICK_HIDAPI_SHIELD to control whether this is used
Added functions to get the platform dependent name for a joystick or game controller:
SDL_JoystickPathForIndex()
SDL_JoystickPath()
SDL_GameControllerPathForIndex()
SDL_GameControllerPath()
Added SDL_GameControllerGetFirmwareVersion() and SDL_JoystickGetFirmwareVersion(), currently implemented for DualSense(tm) Wireless Controllers using HIDAPI
Added SDL_JoystickAttachVirtualEx() for extended virtual controller support
Added joystick event SDL_JOYBATTERYUPDATED for when battery status changes
Added SDL_GUIDToString() and SDL_GUIDFromString() to convert between SDL GUID and string
Added SDL_HasLSX() and SDL_HasLASX() to detect LoongArch SIMD support
Added SDL_GetOriginalMemoryFunctions()
Added SDL_GetDefaultAudioInfo() to get the name and format of the default audio device, currently implemented for PipeWire, PulseAudio, WASAPI, and DirectSound
Added HIDAPI driver for the NVIDIA SHIELD controller (2017 model) to enable support for battery status and rumble
Added support for opening audio devices with 3 or 5 channels (2.1, 4.1). All channel counts from Mono to 7.1 are now supported.
Rewrote audio channel converters used by SDL_AudioCVT, based on the channel matrix coefficients used as the default for FAudio voices
SDL log messages are no longer limited to 4K and can be any length
Fixed a long-standing calling convention issue with dynapi affecting OpenWatcom or OS/2 builds
Windows:
Added initial support for building for Windows and Xbox with Microsoft's Game Development Kit (GDK), see docs/README-gdk.md for details
Added a D3D12 renderer implementation and SDL_RenderGetD3D12Device() to retrieve the D3D12 device associated with it
Added the hint SDL_HINT_WINDOWS_DPI_AWARENESS to set whether the application is DPI-aware. This hint must be set before initializing the video subsystem
Added the hint SDL_HINT_WINDOWS_DPI_SCALING to control whether the SDL coordinates are in DPI-scaled points or pixels
Added the hint SDL_HINT_DIRECTINPUT_ENABLED to control whether the DirectInput driver should be used
Added support for SDL_GetAudioDeviceSpec to the DirectSound backend
Linux:
Support for XVidMode has been removed, mode changes are only supported using the XRandR extension
Added the hint SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION to control whether to expose a set of emulated modes in addition to the native resolution modes available on Wayland
Added the hint SDL_HINT_KMSDRM_DEVICE_INDEX to specify which KMSDRM device to use if the default is not desired
Added the hint SDL_HINT_LINUX_DIGITAL_HATS to control whether to treat hats as digital rather than checking to see if they may be analog
Added the hint SDL_HINT_LINUX_HAT_DEADZONES to control whether to use deadzones on analog hats
macOS:
Bumped minimum OS deployment version to macOS 10.9
Added SDL_GL_FLOATBUFFERS to allow Cocoa GL contexts to use EDR
Added the hint SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH to control whether dispatching OpenGL context updates should block the dispatching thread until the main thread finishes processing. This hint defaults to blocking, which is the safer option on modern macOS.
Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>