This commit is contained in:
Mario Fetka
2023-04-06 11:47:15 +02:00
parent 011cd6e696
commit 1f44a2d3b4
96 changed files with 3912 additions and 51 deletions

5
dev-libs/libcec/Manifest Normal file
View File

@@ -0,0 +1,5 @@
AUX libcec-4.0.7-no-override-udev.patch 850 BLAKE2B ce5c795ba3db2d6600b93af6d15d95794435b22c29eb0b65f1d6dbcbb877f076abafd2b2b8d7bd751b981a34a939d61bf7389118a7252d7fc0517c472f583fc2 SHA512 fb23ccc01fee0c61453490e2f8037b1d30124077847e09f8a5e08365bca3253fa883484d412ae1f60cd7beefc6f2075a83bcdd36e160b14ebae23f4be41fb78b
AUX libcec-6.0.2-musl-nullptr.patch 829 BLAKE2B cfad08ba094e7ca92caec9a38d77d3d65b5baedf49db2b131b33a84543c2ccd0f60b99e7100434a302710c8bcf0d526a6033aa119c8f274efeff277388e75d6d SHA512 015055905a639a8599d5b0766a17bd6b3c91feb59eba543b55919fe40d9bcd0deebdd1b29a9b92e718c7d1bf8486d8413dfea986bf2639e984ba9f8b7a162d0a
DIST libcec-6.0.2.tar.gz 355807 BLAKE2B 007530d839493355f283992a4390550d6ddd432977d7489c17087f7e5bb6f503c35e967ed6a620d55e2e7c25ce10814f360d146a28b860cdcdd108fae152f896 SHA512 c16ac268e67b01d4e35fad644e5927e1d9fc7bcaeff698ac5f0eadd31ec63a0bef2a2b2bc37860d1571e1e0cdc55911c2de468c661c7c7ae1d492f80188035cb
EBUILD libcec-6.0.2.ebuild 3331 BLAKE2B e6a6f745c08ed9f620d011ea4f81338f5aa5df2841a01b070fa7a1da2a8400f10e782093953cb34c2c71f20bfd7d8c29160c5da95bc6da7ccc5b13e594f2604d SHA512 4a6249b78f8cdab6529bdf139a032d6f95587ddfc4e7753c8c2cfd59a27c1b5bd4f40af8a9ba6d91f3477ba6bab2e17880d20b494911cb152abd3153357e9576
MISC metadata.xml 828 BLAKE2B 55df5b9af327507fdb9f415c8616affc437d82ac5a7e57b53f21f7917285b10f70e58b3fdbebf6899aa8c10dbe73186f84643842b04953da74f94b6c4112b3d6 SHA512 25e981d2c88ce87c9c41f6816dfadeb00bf3e0d5dfebc8b135ceba09552c40c29501bede0e3a73a63dcacb0741167f6180a674d82cf2b66dfb649a4aa968387a

View File

@@ -0,0 +1,24 @@
src/libcec/cmake/CheckPlatformSupport.cmake | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
index 5d423df..9e77924 100644
--- a/src/libcec/cmake/CheckPlatformSupport.cmake
+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
@@ -90,6 +90,7 @@ else()
check_function_exists(flock HAVE_FLOCK)
# udev
+ if (${HAVE_LIBUDEV})
pkg_check_modules(UDEV udev)
if (UDEV_FOUND)
set(PLATFORM_LIBREQUIRES "${PLATFORM_LIBREQUIRES} ${UDEV_LIBRARIES}")
@@ -106,6 +107,7 @@ else()
list(APPEND CMAKE_REQUIRED_LIBRARIES "${UDEV_LIBRARIES}")
set(HAVE_P8_USB_DETECT ON CACHE BOOL "p8 usb-cec detection supported" FORCE)
endif()
+ endif()
# xrandr
check_include_files("X11/Xlib.h;X11/Xatom.h;X11/extensions/Xrandr.h" HAVE_RANDR_HEADERS)

View File

@@ -0,0 +1,29 @@
https://github.com/Pulse-Eight/libcec/pull/599
From 452b2049b2ee3e73968c603e5524b2d349ac0c3e Mon Sep 17 00:00:00 2001
From: psykose <alice@ayaya.dev>
Date: Sat, 9 Apr 2022 17:59:11 +0000
Subject: [PATCH] cecloader.h: fix null return
returning NULL is invalid for a return type of bool when NULL is defined
as `nullptr` instead of 0L
--- 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();

View File

@@ -0,0 +1,125 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{9..11} )
MY_PV=${PV/_p/-}
MY_P=${PN}-${MY_PV}
inherit cmake linux-info python-single-r1 toolchain-funcs udev
DESCRIPTION="Library for communicating with the Pulse-Eight USB HDMI-CEC Adaptor"
HOMEPAGE="http://libcec.pulse-eight.com"
SRC_URI="https://github.com/Pulse-Eight/${PN}/archive/${MY_P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~riscv x86"
IUSE="cubox exynos python raspberry-pi kernel-cec tools +xrandr udev"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND=">=dev-libs/libplatform-2.0.0
python? ( ${PYTHON_DEPS} )
raspberry-pi? ( >=media-libs/raspberrypi-userland-0_pre20160305-r1 )
tools? ( sys-libs/ncurses:= )
udev? ( virtual/udev )
xrandr? ( x11-libs/libXrandr )
"
DEPEND="${RDEPEND}
python? ( dev-lang/swig )"
BDEPEND="virtual/pkgconfig"
CONFIG_CHECK="~USB_ACM"
S="${WORKDIR}/${PN}-${MY_P}"
PATCHES=(
"${FILESDIR}/${PN}-4.0.7-no-override-udev.patch"
"${FILESDIR}/${PN}-6.0.2-musl-nullptr.patch"
)
pkg_pretend() {
use udev || CONFIG_CHECK+=" ~SYSFS"
ERROR_SYSFS="When using libcec build without udev, kernel config option CONFIG_SYSFS is required to automatically detect P8 USB-CEC adapter port number"
linux-info_pkg_setup
}
pkg_setup() {
linux-info_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
cmake_src_prepare
# Do not hardcode the python libpath #577612
sed -i \
-e '/DESTINATION/s:"lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}":${PYTHON_SITEDIR}:' \
src/libcec/cmake/CheckPlatformSupport.cmake || die
sed -Ee 's|[ ~]?#DIST#;?||g' debian/changelog.in > ChangeLog || die
(use tools && use python) || cmake_comment_add_subdirectory "src/pyCecClient"
if ! use tools; then
cmake_comment_add_subdirectory "src/cec-client"
cmake_comment_add_subdirectory "src/cecc-client"
sed -i -Ee 's|add_dependencies\(cecc?-client cec\)|#DO NOT BUILD \0|' \
CMakeLists.txt || die
fi
}
src_configure() {
local mycmakeargs=(
-DHAVE_LINUX_API=$(usex kernel-cec ON OFF)
-DHAVE_LIBUDEV=$(usex udev ON OFF)
-DSKIP_PYTHON_WRAPPER=$(usex python OFF ON)
-DHAVE_EXYNOS_API=$(usex exynos ON OFF)
-DHAVE_TDA995X_API=$(usex cubox ON OFF)
-DHAVE_RPI_API=$(usex raspberry-pi ON OFF)
)
if linux_config_exists && linux_chkconfig_present SYSFS; then
mycmakeargs+=( -DHAVE_P8_USB_DETECT=ON )
fi
# raspberrypi-userland itself does not provide .pc file so using
# bcm_host.pc instead
use raspberry-pi && mycmakeargs+=(
-DRPI_INCLUDE_DIR=$( $(tc-getPKG_CONFIG) --variable=includedir bcm_host) \
-DRPI_LIB_DIR=$( $(tc-getPKG_CONFIG) --variable=libdir bcm_host)
)
cmake_src_configure
}
src_compile() {
cmake_src_compile
if use udev ; then
cp "${S}/debian/pulse-eight-usb-cec.udev" \
"${BUILD_DIR}/65-pulse-eight-usb-cec.udev" || die
fi
}
src_install() {
cmake_src_install
use python && python_optimize "${D}$(python_get_sitedir)"
use tools && doman debian/cec-client.1
if use udev; then
udev_dorules "${BUILD_DIR}/65-pulse-eight-usb-cec.udev"
fi
}
pkg_postinst() {
use udev && udev_reload
elog "You will need to ensure the user running your CEC client has"
elog "read/write access to the device. You can ensure this by adding"
elog "them to the uucp group"
}

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
<flag name="cubox">Enable support for enable support for the TDA995x</flag>
<flag name="exynos">Enable support for Exynos chipsets</flag>
<flag name="raspberry-pi">Enable support for the Raspberry Pi</flag>
<flag name="xrandr">Enable detection of active HDMI using xrandr extensions</flag>
<flag name="kernel-cec">Enable support for Linux kernel CEC framework</flag>
<flag name="tools">Enable build of cec-client and other test and demo executable tools</flag>
<flag name="udev">Enable detection of USB-CEC port by udev</flag>
</use>
<upstream>
<remote-id type="github">Pulse-Eight/libcec</remote-id>
</upstream>
</pkgmetadata>