libcec: update 6.0.2 -> 7.0.0

Changelog

    modernise CMakeLists.txt
    Use cmake TIMESTAMP function to be more portable and to allow for reproducible builds
    fixed: potential null deref. closes #556
    python 3.13 compatibility
    added: vs2022 support
    fixed: creating (unsigned) windows installer
    fixed: nsis installer not creating start menu icons and uninstaller
    bump to .net framework 4.5 and .net 8.0
    fixed: null terminate .net device language field. added CecLogicalAddresses::Unset()
    fixed: don't call the config updated callback if nothing has changed. auto set wake devices or activate source so these values match what happens on the tv
    fixed: tv would power on even if the options to power on were disabled in cec-tray
    changed/fixed: windows installer, eventghost plugin, .net libraries, python imports, debug builds
    fixed: use input() for python3 and raw_input() for python2
    changed: debian python install to match arch specific too
    fixed: libusb0.dll wasn't included in the installer
    fixed: remove call to PyEcal_InitThreads(). swig already includes SWIG_PYTHON_INITIALIZE_THREADS in SWIG_init()
    CheckPlatformSupport.cmake: various improvements
    Ease copy-paste by invoking apt noninteractively
    Rename COPYING to LICENSE.md so follow standard naming conversion
    cecloader.h: fix null return
    Mark all devices as inactive when new active source is unknown
    Fix use after free in callbacks with results.
    Add a commandHandler callback to allow external libs to handle CEC commands themselves.
    Remove debug printfs.
    Attempt to fix race condition when freeing the callback wrapper.
    Allow command handler callback to intercept broadcast messages and fix inconsistent callback wrapper deletion again.
    Remove useless mutex.
    Remove useless 'keepResult' parameter and make sure the CCallbackWrap is only deleted once even in case of timeout.
    Fix Python module import
    fix assert issue with systemd udev
    tegra-cec support. closes #636
    Add support for Windows ARM64.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Markus Volk 2025-03-25 07:02:18 +01:00 committed by Khem Raj
parent b0a4bccd41
commit 868c11831b
No known key found for this signature in database
GPG Key ID: BB053355919D3314
4 changed files with 2 additions and 121 deletions

View File

@ -1,42 +0,0 @@
From 95d4df3b713925e2c4894a2e4d50b06df861d9ef Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 18 Dec 2019 23:37:40 -0800
Subject: [PATCH] CheckPlatformSupport.cmake: Do not hardcode lib path
Using CMAKE_INSTALL_LIBDIR ensures that we can build for multilib env
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/libcec/cmake/CheckPlatformSupport.cmake | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
index 2d7102f..55e78f8 100644
--- a/src/libcec/cmake/CheckPlatformSupport.cmake
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
@@ -224,16 +224,16 @@ else()
if (${PYTHON_MAJOR_VERSION} EQUAL 2)
install(TARGETS ${SWIG_MODULE_cec_REAL_NAME}
- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH}/cec)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH}/cec)
install(FILES ${CMAKE_BINARY_DIR}/src/libcec/cec.py
- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
+ DESTINATION l${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
install(FILES ${CMAKE_SOURCE_DIR}/src/libcec/cmake/__init__.py
- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/cec)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/cec)
else()
install(TARGETS ${SWIG_MODULE_cec_REAL_NAME}
- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH})
install(FILES ${CMAKE_BINARY_DIR}/src/libcec/cec.py
- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
endif()
endif()
endif()
--
2.24.1

View File

@ -1,33 +0,0 @@
From 8ce50bf569ec2d931735180079bbe507730626c8 Mon Sep 17 00:00:00 2001
From: Yann Dirson <yann@blade-group.com>
Date: Mon, 7 Sep 2020 18:17:21 +0200
Subject: [PATCH] Remove buggy test confusing host and target
---
Upstream-Status: Pending
src/libcec/cmake/CheckPlatformSupport.cmake | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
index 1d99bd8..31dac4f 100644
--- a/src/libcec/cmake/CheckPlatformSupport.cmake
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
@@ -266,14 +266,6 @@ else()
DESTINATION python/cec)
endif()
else()
- if(EXISTS "/etc/os-release")
- file(READ "/etc/os-release" OS_RELEASE)
- string(REGEX MATCH "ID(_LIKE)?=debian" IS_DEBIAN ${OS_RELEASE})
- if (IS_DEBIAN)
- SET(PYTHON_PKG_DIR "dist-packages")
- endif()
- endif()
-
if (NOT PYTHON_PKG_DIR)
SET(PYTHON_PKG_DIR "site-packages")
endif()
--
2.28.0

View File

@ -1,41 +0,0 @@
From 2241edc8b70c2a54d109ac9c0e821889ac138d40 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 27 Jan 2022 22:49:52 -0800
Subject: [PATCH] cecloader: Match return type of function LibCecBootloader
Fixes
include/cecloader.h:175:14: error: cannot initialize return object of type 'bool' with an rvalue of type 'nullptr_t'
return NULL;
^~~~
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
include/cecloader.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/cecloader.h b/include/cecloader.h
index be76468f..550f598e 100644
--- a/include/cecloader.h
+++ b/include/cecloader.h
@@ -172,7 +172,7 @@ bool LibCecBootloader(const char *strLib = NULL)
if (!g_libCEC)
{
std::cout << dlerror() << std::endl;
- return NULL;
+ return false;
}
}
@@ -181,7 +181,7 @@ bool LibCecBootloader(const char *strLib = NULL)
if (!LibCecBootloader)
{
std::cout << "cannot find CECStartBootloader" << std::endl;
- return NULL;
+ return false;
}
bool bReturn = LibCecBootloader();
--
2.35.0

View File

@ -2,19 +2,16 @@ SUMMARY = "USB CEC Adaptor communication Library"
HOMEPAGE = "http://libcec.pulse-eight.com/"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b3a719e97f49e4841e90573f9b1a98ac"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=b3a719e97f49e4841e90573f9b1a98ac"
DEPENDS = "p8platform udev ncurses swig-native python3"
DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11 libxrandr', '', d)}"
DEPENDS:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
SRCREV = "29d82c80bcc62be2878a9ac080de7eb286c4beb9"
SRCREV = "ceeec8bfd2242792b6de59ce8fb854437208dc11"
SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release;protocol=https \
file://0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch \
file://0001-Enhance-reproducibility.patch \
file://0001-Remove-buggy-test-confusing-host-and-target.patch \
file://0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch \
"
S = "${WORKDIR}/git"