From e0d5ad833e89f47c88601e15158015319e568af8 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 8 Sep 2020 13:23:42 -0400 Subject: meta-speech-framework: Update Alexa Auto SDK to v2.3 Changes: - Mask out the duplicate libopus recipe, the same version is available from a recipe in meta-oe. - Update BBFILES addition for the audio module in the feature template to work with yet another new audio output backend. - Update the AlexaAutoCoreEngineConfig.json.in template based on the new sample JSON in 2.3. - Update alexa-voiceagent-config recipe to add new configuration variables ALEXA_LOCALE, ALEXA_TIMEZONE, ALEXA_MFG_NAME, and ALEXA_DESCRIPTION to match requirements of the updated configuration JSON. - Remove local alexa-voiceagent-service patches merged by Amazon, and update 0001-remove-library-dependency-copying.patch for 2.3. - Update SDK module DEPENDS for alexa-voiceagent-service recipe to match what seems required now with 2.3. - Remove avs-device-sdk patch for building with g++ 9.x, as it is no longer required. - Add avs-device-sdk patch to workaround hang seen on first connection. - Add bbappends for aac-module-car-control and aac-module-messaging recipes to fix their nlohmann-json DEPENDS to work with the recipe that is available in meta-oe. - Rework aac-module-system-audio.bbappend to enable the PipeWire support that has been merged into the module. Bug-AGL: SPEC-3783 Signed-off-by: Scott Murray Change-Id: I18c910f9cbf874fef85d1d84508f6666d53629ed --- .../0001-connection-deadlock-workaround.patch | 35 ++++++++++++++++++++++ .../0001-enable-building-with-g++-9.patch | 24 --------------- .../avs-device-sdk/avs-device-sdk_1.13.bbappend | 3 -- .../avs-device-sdk/avs-device-sdk_1.19.1.bbappend | 3 ++ 4 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch delete mode 100644 meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch delete mode 100644 meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.13.bbappend create mode 100644 meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.19.1.bbappend (limited to 'meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk') diff --git a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch new file mode 100644 index 00000000..3bf79835 --- /dev/null +++ b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-connection-deadlock-workaround.patch @@ -0,0 +1,35 @@ +Workaround for connection deadlock + +Change the maximum (effectively infinite) delay in HTTP2Transport's +connecting state handling code to use the inactivity timeout value, +which is currently 5 minutes. This seems to avoid triggering a +deadlock between the condition variable checking in the +monitorSharedQueueWhileWaiting method and use of the object's m_mutex +member in sendPostConnectMessage and onActivity methods. +At present, my theory is this issue stems from some change or bug +in the newer g++/libstdc++ coming with dunfell versus the thud release +that Amazon supports. + +Upstream-Status: Inappropriate [other] + +Signed-off-by: Scott Murray + +diff --git a/ACL/src/Transport/HTTP2Transport.cpp b/ACL/src/Transport/HTTP2Transport.cpp +index f1b5c03..dec7424 100644 +--- a/ACL/src/Transport/HTTP2Transport.cpp ++++ b/ACL/src/Transport/HTTP2Transport.cpp +@@ -618,7 +618,13 @@ HTTP2Transport::State HTTP2Transport::handleConnecting() { + return m_state; + } + +- return monitorSharedQueueWhileWaiting(State::CONNECTING); ++ // Wait for connection for the same length of time as the post-connection ++ // inactivity monitor timeout (currently 5 minutes). ++ // This seems to avoid triggering an issue where connecting deadlocks when ++ // using the maximum timeout of std::chrono:steady_clock. ++ std::chrono::time_point timeout = ++ std::chrono::steady_clock::now() + INACTIVITY_TIMEOUT; ++ return monitorSharedQueueWhileWaiting(State::CONNECTING, timeout); + } + + HTTP2Transport::State HTTP2Transport::handleWaitingToRetryConnecting() { diff --git a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch deleted file mode 100644 index 0e4f14fd..00000000 --- a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk/0001-enable-building-with-g++-9.patch +++ /dev/null @@ -1,24 +0,0 @@ -Enable building with g++ 9.x - -Disable -Werror for new warning "deprecated-copy" to avoid build -failure in the packaged copy of googletest with g++ 9.x. This is -hopefully temporary until googletest is upgraded or it becomes -straightforward to build against an externally provided copy. - -Upstream-Status: pending - -Signed-off-by: Scott Murray - -diff --git a/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake b/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake -index 777b91e..7832f20 100644 ---- a/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake -+++ b/ThirdParty/googletest-release-1.8.0/googletest/cmake/internal_utils.cmake -@@ -91,7 +91,7 @@ macro(config_compiler_and_linker) - set(cxx_no_exception_flags "-D_HAS_EXCEPTIONS=0") - set(cxx_no_rtti_flags "-GR-") - elseif (CMAKE_COMPILER_IS_GNUCXX) -- set(cxx_base_flags "-Wall -Wshadow") -+ set(cxx_base_flags "-Wall -Wshadow -Wno-error=deprecated-copy") - set(cxx_exception_flags "-fexceptions") - set(cxx_no_exception_flags "-fno-exceptions") - # Until version 4.3.2, GCC doesn't define a macro to indicate diff --git a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.13.bbappend b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.13.bbappend deleted file mode 100644 index 8afb91a9..00000000 --- a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.13.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" - -SRC_URI += "file://0001-enable-building-with-g++-9.patch" diff --git a/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.19.1.bbappend b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.19.1.bbappend new file mode 100644 index 00000000..d4ea2592 --- /dev/null +++ b/meta-speech-framework/meta-aac/recipes-avs/avs-device-sdk/avs-device-sdk_1.19.1.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI += "file://0001-connection-deadlock-workaround.patch" -- cgit 1.2.3-korg