patch to fix assert in libudev >= 256 ( https://github.com/LibreELEC/LibreELEC.tv/pull/8982 ) [release 21.1-3mamba;Wed Dec 25 2024]

This commit is contained in:
Silvan Calarco 2024-12-26 01:13:16 +01:00
parent 980e5fae88
commit 8ed9df36f7
5 changed files with 159 additions and 6 deletions

View File

@ -0,0 +1,12 @@
--- xbmc-21.1-Omega/tools/depends/target/ffmpeg/CMakeLists.txt.orig 2024-12-24 14:31:11.853284309 +0100
+++ xbmc-21.1-Omega/tools/depends/target/ffmpeg/CMakeLists.txt 2024-12-24 14:31:47.599368276 +0100
@@ -38,6 +38,9 @@
--enable-runtime-cpudetect
--enable-pthreads
--extra-version="Kodi"
+ --disable-ffnvcodec
+ --disable-nvdec
+ --disable-nvenc
)
if(CMAKE_C_FLAGS)

View File

@ -0,0 +1,68 @@
From 6b1d29cd25daf1fdfd27897b7d43f1b8756aa2bc Mon Sep 17 00:00:00 2001
From: Stephan Sundermann <stephansundermann@gmail.com>
Date: Sun, 15 Dec 2024 04:03:03 +0100
Subject: [PATCH] [depends] Update to libnfs 6.0.2
---
tools/depends/target/libnfs/LIBNFS-VERSION | 4 ++--
xbmc/filesystem/NFSFile.cpp | 14 ++++++++++++--
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/tools/depends/target/libnfs/LIBNFS-VERSION b/tools/depends/target/libnfs/LIBNFS-VERSION
index 892aa7afcfd48..699a31c70fcae 100644
--- a/tools/depends/target/libnfs/LIBNFS-VERSION
+++ b/tools/depends/target/libnfs/LIBNFS-VERSION
@@ -1,6 +1,6 @@
LIBNAME=libnfs
-VERSION=5.0.2
+VERSION=6.0.2
ARCHIVE=$(LIBNAME)-$(VERSION).tar.gz
-SHA512=6dcf4ea8a01b35beb53694625d20fbebd858a88725c2742671878ad6fe7877999f93d262fb58a435b00c283c3e6fb6fa7222d04bb4540bf674b7ce196e9424f5
+SHA512=539790ab98aac7b2f25755b745d1f5e016518f1adb3748b8c58df187048bc31e091915d59e6359bb95c49dd986361cbbf2536edcda02598b0fac236762b61a46
BYPRODUCT=libnfs.a
BYPRODUCT_WIN=nfs.lib
diff --git a/xbmc/filesystem/NFSFile.cpp b/xbmc/filesystem/NFSFile.cpp
index b96b2bc4fad4b..0dd311a694d16 100644
--- a/xbmc/filesystem/NFSFile.cpp
+++ b/xbmc/filesystem/NFSFile.cpp
@@ -477,7 +477,11 @@ void CNfsConnection::keepAlive(const std::string& _exportPath, struct nfsfh* _pF
nfs_lseek(pContext, _pFileHandle, 0, SEEK_CUR, &offset);
+#ifdef LIBNFS_API_V2
+ int bytes = nfs_read(pContext, _pFileHandle, buffer, sizeof(buffer));
+#else
int bytes = nfs_read(pContext, _pFileHandle, 32, buffer);
+#endif
if (bytes < 0)
{
CLog::LogF(LOGERROR, "nfs_read - Error ({}, {})", bytes, nfs_get_error(pContext));
@@ -741,9 +745,11 @@ ssize_t CNFSFile::Read(void *lpBuf, size_t uiBufSize)
if (m_pFileHandle == NULL || m_pNfsContext == NULL )
return -1;
-
+#ifdef LIBNFS_API_V2
+ numberOfBytesRead = nfs_read(m_pNfsContext, m_pFileHandle, lpBuf, uiBufSize);
+#else
numberOfBytesRead = nfs_read(m_pNfsContext, m_pFileHandle, uiBufSize, (char *)lpBuf);
-
+#endif
lock.unlock(); //no need to keep the connection lock after that
gNfsConnection.resetKeepAlive(m_exportPath, m_pFileHandle);//triggers keep alive timer reset for this filehandle
@@ -843,10 +849,14 @@ ssize_t CNFSFile::Write(const void* lpBuf, size_t uiBufSize)
}
//write chunk
//! @bug libnfs < 2.0.0 isn't const correct
+#ifdef LIBNFS_API_V2
+ writtenBytes = nfs_write(m_pNfsContext, m_pFileHandle, lpBuf + numberOfBytesWritten, chunkSize);
+#else
writtenBytes = nfs_write(m_pNfsContext,
m_pFileHandle,
chunkSize,
const_cast<char*>((const char *)lpBuf) + numberOfBytesWritten);
+#endif
//decrease left bytes
leftBytes-= writtenBytes;
//increase overall written bytes

View File

@ -0,0 +1,33 @@
From 8a78c59791ba408c3f03e285b68f9afbac2658d8 Mon Sep 17 00:00:00 2001
From: Rudi Heitbaum <rudi@heitbaum.com>
Date: Wed, 12 Jun 2024 21:45:23 +0000
Subject: [PATCH] PeripheralBusUSBLibUdev: fix assert issue with systemd udev
do not call udev_device_get_parent(udev_device_get_parent(dev))
directly as a null return on the parent will cause an assert in
udev_device_get_parent
---
.../platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp b/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp
index aeb5e71d9f..3b649652c3 100644
--- a/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp
+++ b/xbmc/platform/linux/peripherals/PeripheralBusUSBLibUdev.cpp
@@ -108,7 +108,12 @@ bool CPeripheralBusUSB::PerformDeviceScan(PeripheralScanResults &results)
if (bContinue)
{
- dev = udev_device_get_parent(udev_device_get_parent(parent));
+ // do not call udev_device_get_parent(udev_device_get_parent(dev))
+ // directly as a null return on the parent will cause an assert in
+ // udev_device_get_parent
+ dev = udev_device_get_parent(parent);
+ if (dev)
+ dev = udev_device_get_parent(dev);
if (!dev || !udev_device_get_sysattr_value(dev,"idVendor") || !udev_device_get_sysattr_value(dev, "idProduct"))
bContinue = false;
}
--
2.43.0

View File

@ -0,0 +1,26 @@
From 4ff0ba903bed472cddb0d6e5c53c8176cded6b09 Mon Sep 17 00:00:00 2001
From: Rudi Heitbaum <rudi@heitbaum.com>
Date: Mon, 21 Oct 2024 22:10:29 +1100
Subject: [PATCH] [swig] Fix building with swig 4.3.0
swig 4.3.0 has dropped the -xmllang option used with -xml, which had no effect on the output.
Ref:
- https://github.com/swig/swig/commit/86498e46c6a6218a3d091c12513c40076ac2ce63
---
xbmc/interfaces/swig/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xbmc/interfaces/swig/CMakeLists.txt b/xbmc/interfaces/swig/CMakeLists.txt
index 1951b2a336789..46c84c7f7efc5 100644
--- a/xbmc/interfaces/swig/CMakeLists.txt
+++ b/xbmc/interfaces/swig/CMakeLists.txt
@@ -22,7 +22,7 @@ function(generate_file file)
add_custom_command(OUTPUT ${CPP_FILE}
COMMAND ${SWIG_EXECUTABLE}
- ARGS -w401 -c++ -o ${file}.xml -xml -I${CMAKE_SOURCE_DIR}/xbmc -xmllang python ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file}
+ ARGS -w401 -c++ -o ${file}.xml -xml -I${CMAKE_SOURCE_DIR}/xbmc ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file}
COMMAND ${Java_JAVA_EXECUTABLE}
ARGS ${JAVA_OPEN_OPTS} -cp "${classpath}" groovy.ui.GroovyMain ${CMAKE_SOURCE_DIR}/tools/codegenerator/Generator.groovy ${file}.xml ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template ${file}.cpp > ${devnull}
${CLANG_FORMAT_COMMAND}

View File

@ -25,7 +25,7 @@
Name: kodi
Version: 21.1
Release: 1mamba
Release: 3mamba
Summary: A media player and entertainment hub for digital media
Group: Graphical Desktop/Applications/Multimedia
Vendor: openmamba
@ -43,8 +43,11 @@ Source7: https://mirrors.kodi.tv/build-deps/sources/flatbuffers-%{_flatbuf
Source8: https://mirrors.kodi.tv/build-deps/sources/libudfread-%{_libudfread_version}.tar.gz
Patch1: xbmc-12.0-set_native_cxxflags.patch
Patch2: xbmc-12.0-relax_badcolordepth_check.patch
Patch3: kodi-21.1-ffmpeg-6-disable-nv-codec.patch
Patch4: kodi-21.1-libnfs-6.0.2.patch
Patch5: kodi-21.1-swig-4.3.0.patch
Patch6: kodi-21.1-libudev-256.patch
License: GPL
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libX11-devel
@ -56,7 +59,6 @@ BuildRequires: libatomic-devel
BuildRequires: libavahi-devel
BuildRequires: libbluetooth-devel
BuildRequires: libbluray-devel
BuildRequires: libbrotli-devel
BuildRequires: libbzip2-devel
BuildRequires: libcap-devel
BuildRequires: libcdio-devel
@ -80,7 +82,7 @@ BuildRequires: libgnutls-devel
BuildRequires: libharfbuzz-devel
BuildRequires: libidn2-devel
BuildRequires: libinput-devel
BuildRequires: libjpeg-devel
BuildRequires: libjpeg-turbo
BuildRequires: liblcms2-devel
BuildRequires: liblzma-devel
BuildRequires: liblzo-devel
@ -117,12 +119,11 @@ BuildRequires: libxkbcommon-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
BuildRequires: libz-devel
BuildRequires: libzstd-devel
BuildRequires: lirc-devel
BuildRequires: trousers-devel
## AUTOBUILDREQ-END
BuildRequires: libspdlog-devel >= 0:1.15.0-1mamba
BuildRequires: libdisplay-info-devel >= 0:0.2.0-1mamba
BuildRequires: libspdlog-devel >= 1.14.1-1mamba
BuildRequires: doxygen
BuildRequires: gperf
BuildRequires: java-openjdk17
@ -185,6 +186,8 @@ XBMC is an award-winning free and open source (GPL) software media player and en
%debug_package
%global _lto_cflags %{nil}
%prep
%setup -q -n xbmc-%{pkgver}%{?codenameadd}
#-D -T
@ -195,6 +198,11 @@ XBMC is an award-winning free and open source (GPL) software media player and en
%patch 2 -p1
%endif
%patch 3 -p1
%patch 4 -p1 -b .libnfs-6.0.2
%patch 5 -p1 -b .swig-4.3.0
%patch 6 -p1 -b .libudev-256
%build
export JAVA_HOME=%{jvmdir}/java-17
#:<< ___EOF
@ -296,6 +304,12 @@ fi
%doc README.md
%changelog
* Wed Dec 25 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 21.1-3mamba
- patch to fix assert in libudev >= 256 ( https://github.com/LibreELEC/LibreELEC.tv/pull/8982 )
* Sun Dec 22 2024 Automatic Build System <autodist@openmamba.org> 21.1-2mamba
- rebuilt by autoport with build requirements: libspdlog-devel>=0:1.15.0-1mamba
* Tue Sep 03 2024 Automatic Build System <autodist@openmamba.org> 21.1-1mamba
- automatic version update by autodist