diff --git a/mythtv-33.1-binutils-2.41.patch b/mythtv-33.1-binutils-2.41.patch new file mode 100644 index 0000000..3c68815 --- /dev/null +++ b/mythtv-33.1-binutils-2.41.patch @@ -0,0 +1,86 @@ +From 9572dc5a124b46ac60c6cea34994ccc69ec53442 Mon Sep 17 00:00:00 2001 +From: David Engel +Date: Thu, 27 Jul 2023 20:49:56 -0500 +Subject: [PATCH] Fix FFmpeg compilation with binutils >= 2.41. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is from FFmpeg commit effadce6c756247ea8bae32dc13bb3e6f464f0eb . + + Author: RĂ©mi Denis-Courmont + Date: Sun Jul 16 18:18:02 2023 +0300 + + avcodec/x86/mathops: clip constants used with shift instructions within inline assembly + + Fixes assembling with binutil as >= 2.41 + + Signed-off-by: James Almer + +Refs #765 + +(cherry picked from commit f9f9bba62ee2743c816cb2b9634b6b4397e5e2e3) +--- + .../external/FFmpeg/libavcodec/x86/mathops.h | 26 ++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +diff --git a/mythtv/external/FFmpeg/libavcodec/x86/mathops.h b/mythtv/external/FFmpeg/libavcodec/x86/mathops.h +index 6298f5ed198..ca7e2dffc10 100644 +--- a/mythtv/external/FFmpeg/libavcodec/x86/mathops.h ++++ b/mythtv/external/FFmpeg/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + diff --git a/mythtv.spec b/mythtv.spec index e34ed8f..aec8cd9 100644 --- a/mythtv.spec +++ b/mythtv.spec @@ -2,7 +2,7 @@ %define majver %(echo %version | cut -d. -f1-2) Name: mythtv Version: 33.1 -Release: 1mamba +Release: 3mamba Summary: A digital video recorder (DVR) application Group: Applications/Multimedia Vendor: openmamba @@ -26,6 +26,7 @@ Patch0: mythtv-0.26.0-libva-1.2.1.patch Patch1: mythtv-31.0-gcc-11.patch Patch2: mythtv-31.0-qt5-5.12.patch Patch3: mythtv-32.0-glibc-2.35.patch +Patch4: mythtv-33.1-binutils-2.41.patch License: GPL, LGPL ## AUTOBUILDREQ-BEGIN BuildRequires: glibc-devel @@ -56,7 +57,7 @@ BuildRequires: liblzo-devel BuildRequires: libopenssl-devel BuildRequires: libperl BuildRequires: libpulseaudio-devel -BuildRequires: libpython3-devel +BuildRequires: libpython311-devel BuildRequires: libraw1394-devel BuildRequires: libsamplerate-devel BuildRequires: libsoundtouch-devel @@ -77,6 +78,7 @@ BuildRequires: libzip-devel BuildRequires: perl-DBD-mysql BuildRequires: perl-DBI BuildRequires: perl-DateTime +BuildRequires: perl-Encode BuildRequires: perl-HTML-Parser BuildRequires: perl-HTML-Tree BuildRequires: perl-HTTP-Message @@ -88,10 +90,10 @@ BuildRequires: perl-XML-Simple BuildRequires: perl-XML-TreeBuilder BuildRequires: perl-devel BuildRequires: perl-libwww -BuildRequires: python3.7dist(mysqlclient) BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtscript-devel ## AUTOBUILDREQ-END +BuildRequires: python3-devel >= 3.11.5-3mamba BuildRequires: desktop-file-utils BuildRequires: gcc-c++ BuildRequires: nasm @@ -144,7 +146,7 @@ This package provides a perl-based interface to interacting with MythTV. %package -n python-MythTV Group: Development/Libraries/Python Summary: Python bindings for MythTV -Requires: python3.7dist(mysqlclient) +#Requires: python3dist(mysqlclient) %description -n python-MythTV MythTV provides a unified graphical interface for recording and viewing television programs. @@ -164,9 +166,10 @@ This package contains the documentation for %{name}, %setup -q #-D -T #:<< _EOF -%patch1 -p1 -#%patch2 -p1 -%patch3 -p1 +%patch 1 -p1 +#%patch 2 -p1 +%patch 3 -p1 +%patch 4 -p1 -b .binutils-2.41 rm -rf contrib/Win32 contrib/OSX #chmod -x themes/default/htmls/*.html @@ -352,6 +355,12 @@ rm -rf %{buildroot}%{_libdir}/mythtv/filters/*.*a ##%doc contrib database %changelog +* Mon Oct 02 2023 Silvan Calarco 33.1-3mamba +- fixed python-MythTV requirement + +* Sun Oct 01 2023 Silvan Calarco 33.1-2mamba +- rebuilt with python3 = 3.11 + * Tue Feb 07 2023 Automatic Build System 33.1-1mamba - automatic version update by autodist