commit: 88d6dd816df0e6e950a31d98f30717b7c7f73b04 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Sat Jul 19 18:13:35 2025 +0000 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> CommitDate: Sun Jul 20 09:30:12 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88d6dd81
media-tv/mythtv: drop 33.1-r4 Closes: https://bugs.gentoo.org/915800 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> media-tv/mythtv/Manifest | 1 - media-tv/mythtv/files/mythbackend.init-r3 | 72 ---- .../files/mythtv-33.1-ffmpeg-binutils-2.41.patch | 75 ---- .../files/mythtv-33.1-linux-headers-6.5.patch | 30 -- media-tv/mythtv/files/mythtv-33.1-python3.12.patch | 265 -------------- media-tv/mythtv/metadata.xml | 1 - media-tv/mythtv/mythtv-33.1-r4.ebuild | 386 --------------------- 7 files changed, 830 deletions(-) diff --git a/media-tv/mythtv/Manifest b/media-tv/mythtv/Manifest index d9f767eb6cf0..9fb837da2419 100644 --- a/media-tv/mythtv/Manifest +++ b/media-tv/mythtv/Manifest @@ -1,2 +1 @@ -DIST mythtv-33.1.tar.gz 116920982 BLAKE2B bc784a12ee0acf3066d46896343ed15a2f7097364595d20e832da3197eb37c8d05342f82171b66ec842ec48b5829b7ace8c6043835b8de4a04afd8a4df72df1d SHA512 4dc2943915e5e3ca047edc0a005a9e0b58edf7bc51c7fb097a6715bbbb52028260065a7f52f35e4ed98559cc4f4ccca76f1cf6ae68e76b1f2d06a1befd4776e9 DIST mythtv-35.0.tar.gz 120302443 BLAKE2B 0997262ebc586e500824bee738b0a3e47aa7f04f0b7e03afbdda1f67d8b8134f712af29bcd289d317d253160c36ab423aac509700d3e74d538c8b7ccb04cae40 SHA512 7a4f44400bb0a1739fb713a3e3f82dfe2e18f97103d97331b01948bc5a9f01be964076ea5f6dc68d54aa3a0e4ec95ad833cc2080e4ff79c020d991e8f5c1e28d diff --git a/media-tv/mythtv/files/mythbackend.init-r3 b/media-tv/mythtv/files/mythbackend.init-r3 deleted file mode 100644 index 3de2bf91511e..000000000000 --- a/media-tv/mythtv/files/mythbackend.init-r3 +++ /dev/null @@ -1,72 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -description="MythTV backend recording daemon" -extra_started_commands="resched upnprebuild" -description_resched="Forces the recording scheduler to update" -description_upnprebuild="Rebuilds the UPnP media cache" - -MYTHBACKEND_OPTS=${MYTHBACKEND_OPTS:-"${MYTHBACKEND_OPTS}"} -MYTHBACKEND_VERBOSE=${MYTHBACKEND_VERBOSE:-"general"} -MYTHBACKEND_LOGGING=${MYTHBACKEND_LOGGING:-"files"} - -name="MythTV backend" -command="/usr/bin/mythbackend" -pidfile="/run/mythtv/mythbackend.pid" -start_stop_daemon_args="--pidfile ${pidfile} --user mythtv:mythtv" -command_args="--daemon --pidfile ${pidfile} --verbose ${MYTHBACKEND_VERBOSE} ${MYTHBACKEND_OPTS}" - -depend() { - # mythbackend doesn't need to run on the same machine that - # mysql runs on. so its use for that reason - use logger net.lo mysql LCDd -} - -start_pre() { - case "${MYTHBACKEND_LOGGING}" in - database) logging="--enable-dblog" ;; - syslog\ *) logging="--${MYTHBACKEND_LOGGING}" ;; - files) logging="--logpath /var/log/mythtv" ;; - console) logging="--nologserver" ;; - *) - eerror "Invalid MYTHBACKEND_LOGGING value" - exit 1 - ;; - esac - - #fixes for bug #101308 - unset DISPLAY - unset SESSION_MANAGER - - # Work around any strange permissions that may be on these files. - [ "x${MYTHBACKEND_LOGGING}" = "xfiles" ] && \ - checkpath --directory --owner mythtv:mythtv --mode 0755 /var/log/mythtv - checkpath --directory --owner mythtv:mythtv --mode 0775 "{$HOME}" - checkpath --directory --owner mythtv:mythtv --mode 0750 /run/mythtv -} - -start() { - ebegin "Starting ${name}" - start-stop-daemon --start ${start_stop_daemon_args} --exec ${command} \ - -- ${command_args} ${logging} - eend $? -} - -stop() { - ebegin "Stopping ${name}" - start-stop-daemon --stop --retry 10 --progress --pidfile ${pidfile} - eend $? -} - -resched() { - ebegin "Updating the recording scheduler" - ${command} --resched - eend $? -} - -upnprebuild() { - ebegin "Rebuilding UPnP media cache" - ${command} --upnprebuild - eend $? -} diff --git a/media-tv/mythtv/files/mythtv-33.1-ffmpeg-binutils-2.41.patch b/media-tv/mythtv/files/mythtv-33.1-ffmpeg-binutils-2.41.patch deleted file mode 100644 index e976d8344a2d..000000000000 --- a/media-tv/mythtv/files/mythtv-33.1-ffmpeg-binutils-2.41.patch +++ /dev/null @@ -1,75 +0,0 @@ -https://bugs.gentoo.org/912708 -https://bugs.gentoo.org/911582 -https://trac.ffmpeg.org/ticket/10405 -https://git.videolan.org/?p=ffmpeg.git;a=commit;h=25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e -https://sourceware.org/PR30578 -https://gcc.gnu.org/PR108941 - -From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001 -From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <[email protected]> -Date: Sun, 16 Jul 2023 18:18:02 +0300 -Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift - instructions within inline assembly - -Fixes assembling with binutil as >= 2.41 - -Signed-off-by: James Almer <[email protected]> -(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb) ---- a/external/FFmpeg/libavcodec/x86/mathops.h -+++ b/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/media-tv/mythtv/files/mythtv-33.1-linux-headers-6.5.patch b/media-tv/mythtv/files/mythtv-33.1-linux-headers-6.5.patch deleted file mode 100644 index 0ead0d51d665..000000000000 --- a/media-tv/mythtv/files/mythtv-33.1-linux-headers-6.5.patch +++ /dev/null @@ -1,30 +0,0 @@ -https://bugs.gentoo.org/913866 -https://github.com/MythTV/mythtv/issues/775 -https://github.com/MythTV/mythtv/commit/7d6c7d605f87b697c7488d1eb4a3246b83e31f01 - -From 7d6c7d605f87b697c7488d1eb4a3246b83e31f01 Mon Sep 17 00:00:00 2001 -From: David Hampton <[email protected]> -Date: Fri, 21 Jul 2023 00:59:43 -0400 -Subject: [PATCH] Work around Linux kernel header 6.5 using C++ reserved - keyword. - -Starting with kernel 6.5.0, a rewrite of the linux/ioprio.h header -file uses the C++ reserved keyword "class" as a variable name. -Fortunately we can redefine the string "class" for the duration of the -inclusion without any ill effects. ---- a/libs/libmythbase/mythmiscutil.cpp -+++ b/libs/libmythbase/mythmiscutil.cpp -@@ -702,7 +702,12 @@ void myth_yield(void) - #include <sys/ptrace.h> - #include <sys/syscall.h> - #if __has_include(<linux/ioprio.h>) -+// Starting with kernel 6.5.0, the following include uses the C++ -+// reserved keyword "class" as a variable name. Fortunately we can -+// redefine it without any ill effects. -+#define class class2 - #include <linux/ioprio.h> -+#undef class - #else - static constexpr int8_t IOPRIO_BITS { 16 }; - static constexpr int8_t IOPRIO_CLASS_SHIFT { 13 }; - diff --git a/media-tv/mythtv/files/mythtv-33.1-python3.12.patch b/media-tv/mythtv/files/mythtv-33.1-python3.12.patch deleted file mode 100644 index 91f72ab13ac3..000000000000 --- a/media-tv/mythtv/files/mythtv-33.1-python3.12.patch +++ /dev/null @@ -1,265 +0,0 @@ -From ea59f869dcbd73b1d0dca973314604f689b50c34 Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <[email protected]> -Date: Thu, 4 Jan 2024 16:18:00 -0500 -Subject: [PATCH 1/2] hardwareprofile: remove external dependency on simplejson - -This uses the requests module and converts requests responses to json -using requests' own `.json()` method on responses. For incomprehensible -reasons, requests has spent about a decade using either simplejson or -the standard library's json module more or less at will, and returning -either one or the other exception types. They don't know why they use -simplejson, we don't know why they use simplejson. In requests 3 (which -will be released in the Year Of The Linux Desktop or when pigs fly, -whichever one comes later) simplejson is dropped entirely. - -There are innumerable issues discussing the problem on the requests -bugtracker, with the general consensus being that it's better to -randomly return either one of two different libraries and two different -library return types in errors -- because it was historically done that -way and people might be depending on it. ?????? - -Bugs: - -https://github.com/psf/requests/pull/710 -https://github.com/psf/requests/pull/2516 -https://github.com/psf/requests/issues/3052 -https://github.com/psf/requests/issues/4169 -https://github.com/psf/requests/issues/4842 -https://github.com/psf/requests/issues/5794 -https://github.com/psf/requests/issues/6084 - -The awkward workaround is to guarantee that requests' silent behavior of -using simplejson *if it is installed* is forcibly triggered by forcibly -depending on simplejson, and then catching the simplejson exception. - -The better solution here is pretty simple: do not rely on the requests -module's automatic json conversion, this is as simple as using the -already-imported json module and calling json.loads() on the retrieved -content. - -Fixes: 1df343e9ab7defa284a73390210a65cf2112f17e -Reimplements: bb154a843b737cc3ad8c1a45fa04a1a3609aff05 -(cherry picked from commit 6348dc01a45af6ed63c09326ec94cd425db1d6d7) ---- - mythtv/configure | 1 - - mythtv/programs/scripts/hardwareprofile/smolt.py | 5 ++--- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/mythtv/configure b/mythtv/configure -index 7e966ef817..3429c208e2 100755 ---- a/mythtv/configure -+++ b/mythtv/configure -@@ -6555,7 +6555,6 @@ if enabled bindings_python; then - check_py_lib MySQLdb || disable_bindings_python "MySQLdb" - check_py_lib lxml || disable_bindings_python "lxml" - check_py_lib requests || disable_bindings_python "requests" -- check_py_lib simplejson || disable_bindings_python "simplejson" - check_py_lib future || disable_bindings_python "future" - fi - -diff --git a/mythtv/programs/scripts/hardwareprofile/smolt.py b/mythtv/programs/scripts/hardwareprofile/smolt.py -index 1bcc8060d0..464f068d6f 100644 ---- a/mythtv/programs/scripts/hardwareprofile/smolt.py -+++ b/mythtv/programs/scripts/hardwareprofile/smolt.py -@@ -50,7 +50,6 @@ except ImportError: - from urlparse import urlparse - import json - from json import JSONEncoder --from simplejson import errors as sje - import datetime - import logging - -@@ -790,8 +789,8 @@ class _HardwareProfile: - sys.exit(1) - - try: -- admin_obj = admin_token.json() -- except sje.JSONDecodeError: -+ admin_obj = json.loads(admin_token.content) -+ except json.JSONDecodeError: - self.session.close() - error(_('Incorrect server response. Expected a JSON string')) - return (1, None, None) --- -2.41.0 - - -From 7c1dbe7a86dc9b445a1a491f5a849b0eba21aead Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <[email protected]> -Date: Wed, 13 Dec 2023 23:11:11 -0500 -Subject: [PATCH 2/2] hardwareprofile: remove ancient "future" compatibility - library for python2 - -Ironically, for a package that was intended to provide portability -between python2 and python3, it is broken with python 3.12. A better -library to use in all cases is "six". - -However, mythtv requires python 3.8 for a while now. Using -"future.standard_library" is a no-op other than costing a pointless -import and being troublesome to actually install. - -The hacky copy of six.with_metaclass included in "future" is rewritten -to use the pure python3 form of a metaclass. - -(cherry picked from commit 4a1ea331bb2b106e7ae7e7e9bb7970f71b8a84b3) ---- - mythtv/configure | 1 - - .../scripts/hardwareprofile/MultipartPostHandler.py | 2 -- - .../hardwareprofile/distros/mythtv_data/request.py | 2 -- - .../scripts/hardwareprofile/distros/mythtv_data/uuiddb.py | 2 -- - mythtv/programs/scripts/hardwareprofile/hwdata.py | 8 +++----- - mythtv/programs/scripts/hardwareprofile/os_detect.py | 5 ++--- - mythtv/programs/scripts/hardwareprofile/request.py | 2 -- - mythtv/programs/scripts/hardwareprofile/scan.py | 2 -- - mythtv/programs/scripts/hardwareprofile/uuiddb.py | 2 -- - 9 files changed, 5 insertions(+), 21 deletions(-) - -diff --git a/mythtv/configure b/mythtv/configure -index 3429c208e2..4bfbbd8c64 100755 ---- a/mythtv/configure -+++ b/mythtv/configure -@@ -6555,7 +6555,6 @@ if enabled bindings_python; then - check_py_lib MySQLdb || disable_bindings_python "MySQLdb" - check_py_lib lxml || disable_bindings_python "lxml" - check_py_lib requests || disable_bindings_python "requests" -- check_py_lib future || disable_bindings_python "future" - fi - - # Check for perl dependencies -diff --git a/mythtv/programs/scripts/hardwareprofile/MultipartPostHandler.py b/mythtv/programs/scripts/hardwareprofile/MultipartPostHandler.py -index 51619096b8..6ff2443d2e 100644 ---- a/mythtv/programs/scripts/hardwareprofile/MultipartPostHandler.py -+++ b/mythtv/programs/scripts/hardwareprofile/MultipartPostHandler.py -@@ -41,8 +41,6 @@ Further Example: - """ - from __future__ import print_function - --from future import standard_library --standard_library.install_aliases() - from builtins import object - from email.generator import _make_boundary - import mimetypes -diff --git a/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/request.py b/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/request.py -index 2ae4fd3fdd..81362ba8b7 100644 ---- a/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/request.py -+++ b/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/request.py -@@ -21,8 +21,6 @@ - # providing the base url, user agent, and proxy information. - # The object returned is slightly modified, with a shortcut to urlopen. - --from future import standard_library --standard_library.install_aliases() - from builtins import object - import urllib.request, urllib.error, urllib.parse - import urllib.parse -diff --git a/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/uuiddb.py b/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/uuiddb.py -index 6960f8705a..9d22556c04 100644 ---- a/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/uuiddb.py -+++ b/mythtv/programs/scripts/hardwareprofile/distros/mythtv_data/uuiddb.py -@@ -16,8 +16,6 @@ - # along with this program; if not, write to the Free Software - # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - --from future import standard_library --standard_library.install_aliases() - from builtins import map - from builtins import str - from builtins import object -diff --git a/mythtv/programs/scripts/hardwareprofile/hwdata.py b/mythtv/programs/scripts/hardwareprofile/hwdata.py -index ba297bf24f..0770d32b96 100644 ---- a/mythtv/programs/scripts/hardwareprofile/hwdata.py -+++ b/mythtv/programs/scripts/hardwareprofile/hwdata.py -@@ -25,8 +25,6 @@ from __future__ import division - from __future__ import absolute_import - from builtins import int - from builtins import open --from future import standard_library --standard_library.install_aliases() - from builtins import object - from smolt_config import get_config_attr - -@@ -71,9 +69,9 @@ class DeviceMap(object): - pass - else: - raise Exception('Hardware data file not found. Please set the location HWDATA_DIR in config.py') -- -- -- -+ -+ -+ - vendors = {} - curvendor = None - curdevice = None -diff --git a/mythtv/programs/scripts/hardwareprofile/os_detect.py b/mythtv/programs/scripts/hardwareprofile/os_detect.py -index 7d0edee00e..beabf7d865 100644 ---- a/mythtv/programs/scripts/hardwareprofile/os_detect.py -+++ b/mythtv/programs/scripts/hardwareprofile/os_detect.py -@@ -26,7 +26,6 @@ - from __future__ import print_function - from builtins import object - import os --from future.utils import with_metaclass - - class OrderedType( type ): - # provide global sequencing for OS class and subclasses to ensure -@@ -37,7 +36,7 @@ class OrderedType( type ): - mcs.nextorder += 1 - return type.__new__(mcs, name, bases, attrs) - --class OS( with_metaclass(OrderedType, object) ): -+class OS(metaclass=OrderedType): - _requires_func = True - def __init__(self, ostype=-1, func=None, inst=None): - if callable(ostype): -@@ -189,7 +188,7 @@ class OSInfoType( type ): - # fall through to Unknown - return 'Unknown' - --class get_os_info( with_metaclass(OSInfoType, object) ): -+class get_os_info(metaclass=OSInfoType): - @OS('nt') - def windows(self): - win_version = { -diff --git a/mythtv/programs/scripts/hardwareprofile/request.py b/mythtv/programs/scripts/hardwareprofile/request.py -index 6e6a20b9e7..d6668cef3d 100644 ---- a/mythtv/programs/scripts/hardwareprofile/request.py -+++ b/mythtv/programs/scripts/hardwareprofile/request.py -@@ -21,8 +21,6 @@ - # providing the base url, user agent, and proxy information. - # The object returned is slightly modified, with a shortcut to urlopen. - --from future import standard_library --standard_library.install_aliases() - from builtins import object - - try: -diff --git a/mythtv/programs/scripts/hardwareprofile/scan.py b/mythtv/programs/scripts/hardwareprofile/scan.py -index 1389400ece..d100bfe692 100644 ---- a/mythtv/programs/scripts/hardwareprofile/scan.py -+++ b/mythtv/programs/scripts/hardwareprofile/scan.py -@@ -18,8 +18,6 @@ - # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - - from __future__ import print_function --from future import standard_library --standard_library.install_aliases() - import smolt - import json - -diff --git a/mythtv/programs/scripts/hardwareprofile/uuiddb.py b/mythtv/programs/scripts/hardwareprofile/uuiddb.py -index e7ba3891ec..3c2fc16d86 100644 ---- a/mythtv/programs/scripts/hardwareprofile/uuiddb.py -+++ b/mythtv/programs/scripts/hardwareprofile/uuiddb.py -@@ -16,8 +16,6 @@ - # along with this program; if not, write to the Free Software - # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - --from future import standard_library --standard_library.install_aliases() - from builtins import object - import configparser - import logging --- -2.41.0 - diff --git a/media-tv/mythtv/metadata.xml b/media-tv/mythtv/metadata.xml index 332d894c764c..b4ae8c12f54b 100644 --- a/media-tv/mythtv/metadata.xml +++ b/media-tv/mythtv/metadata.xml @@ -16,7 +16,6 @@ <flag name="cec">Allows control of CEC enabled TVs via HDMI</flag> <flag name="ceton">Ceton InfiniTV 4 a CableCARD-enabled tuner support</flag> <flag name="debug">Instructs Qt to use the 'debug' target</flag> - <flag name="fftw">Support visualizations via <pkg>sci-libs/fftw</pkg></flag> <flag name="hdhomerun">Silicondust USA Inc.network-attached tuner support</flag> <flag name="ieee1394">Firewire enabled Cable boxe support</flag> <flag name="jack">Allows MythTV to use JACK as your sound output device</flag> diff --git a/media-tv/mythtv/mythtv-33.1-r4.ebuild b/media-tv/mythtv/mythtv-33.1-r4.ebuild deleted file mode 100644 index ed9813a8ee4d..000000000000 --- a/media-tv/mythtv/mythtv-33.1-r4.ebuild +++ /dev/null @@ -1,386 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISABLE_AUTOFORMATTING="yes" -PYTHON_COMPAT=( python3_{11..12} ) - -inherit edo flag-o-matic java-pkg-opt-2 python-any-r1 -inherit qmake-utils readme.gentoo-r1 systemd toolchain-funcs user-info - -DESCRIPTION="Open Source DVR and media center hub" -HOMEPAGE="https://www.mythtv.org https://github.com/MythTV/mythtv" -if [[ ${PV} == *_p* ]] ; then - MY_COMMIT="5824c588db24b4e71a7d94e829e6419f71089297" - SRC_URI="https://github.com/MythTV/mythtv/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" - # mythtv and mythplugins are separate builds in the github MythTV project - S="${WORKDIR}/mythtv-${MY_COMMIT}/mythtv" -else - SRC_URI="https://github.com/MythTV/mythtv/archive/v${PV}.tar.gz -> ${P}.tar.gz" - # mythtv and mythplugins are separate builds in the github mythtv project - S="${WORKDIR}/${P}/mythtv" -fi - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE_INPUT_DEVICES="input_devices_joystick" -IUSE_VIDEO_CAPTURE_DEVICES="v4l ieee1394 hdhomerun vbox ceton" -IUSE="alsa asi autostart cdda cdr cec cpu_flags_ppc_altivec debug dvd dvb exif fftw jack java" -IUSE+=" +lame lcd libass lirc nvdec +opengl oss perl pulseaudio python raw systemd vaapi vdpau vpx" -IUSE+=" +wrapper x264 x265 +xml xmltv +xvid +X zeroconf" -IUSE+=" ${IUSE_INPUT_DEVICES} ${IUSE_VIDEO_CAPTURE_DEVICES}" -REQUIRED_USE=" - cdr? ( cdda ) -" - -RDEPEND=" - acct-user/mythtv - dev-libs/glib:2 - dev-libs/lzo - dev-libs/libzip:= - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5[jpeg] - dev-qt/qtnetwork:5 - dev-qt/qtscript:5 - dev-qt/qtsql:5[mysql] - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - media-fonts/corefonts - media-fonts/dejavu - media-fonts/liberation-fonts - media-fonts/tex-gyre - media-gfx/exiv2:= - media-libs/freetype:2 - media-libs/libbluray:=[java?] - media-libs/libsamplerate - media-libs/libsoundtouch - media-libs/taglib:= - sys-libs/zlib - alsa? ( media-libs/alsa-lib ) - autostart? ( - net-dialup/mingetty - x11-apps/xset - x11-wm/evilwm - ) - cec? ( dev-libs/libcec ) - dvd? ( - dev-libs/libcdio:= - media-libs/libdvdcss - sys-fs/udisks:2 - ) - fftw? ( sci-libs/fftw:3.0=[threads] ) - hdhomerun? ( media-libs/libhdhomerun ) - ieee1394? ( - media-libs/libiec61883 - sys-libs/libavc1394 - sys-libs/libraw1394 - ) - jack? ( virtual/jack ) - lame? ( media-sound/lame ) - lcd? ( app-misc/lcdproc ) - libass? ( media-libs/libass:= ) - lirc? ( app-misc/lirc ) - nvdec? ( x11-drivers/nvidia-drivers ) - opengl? ( dev-qt/qtopengl:5 ) - pulseaudio? ( media-libs/libpulse ) - systemd? ( sys-apps/systemd:= ) - vaapi? ( media-libs/libva:= ) - vdpau? ( x11-libs/libvdpau ) - vpx? ( media-libs/libvpx:= ) - x264? ( media-libs/x264:= ) - X? ( - x11-apps/xinit - x11-libs/libX11:= - x11-libs/libXext:= - x11-libs/libXinerama:= - x11-libs/libXrandr:= - x11-libs/libXv:= - x11-libs/libXxf86vm:= - x11-misc/wmctrl:= - ) - x265? ( media-libs/x265 ) - xml? ( dev-libs/libxml2:2= ) - xmltv? ( - dev-perl/XML-LibXML - media-tv/xmltv - ) - xvid? ( media-libs/xvid ) - zeroconf? ( - dev-libs/openssl:= - net-dns/avahi[mdnsresponder-compat] - ) -" -DEPEND=" - ${RDEPEND} - dev-lang/yasm - sys-kernel/linux-headers - x11-base/xorg-proto - perl? ( - dev-perl/DBD-mysql - dev-perl/DBI - dev-perl/HTTP-Message - dev-perl/IO-Socket-INET6 - dev-perl/LWP-Protocol-https - dev-perl/Net-UPnP - dev-perl/XML-Simple - ) -" -BDEPEND=" - virtual/pkgconfig - java? ( >=dev-java/ant-1.10.14-r3 ) - opengl? ( virtual/opengl ) - python? ( - ${PYTHON_DEPS} - $(python_gen_any_dep ' - dev-python/python-dateutil[${PYTHON_USEDEP}] - dev-python/lxml[${PYTHON_USEDEP}] - dev-python/mysqlclient[${PYTHON_USEDEP}] - dev-python/requests-cache[${PYTHON_USEDEP}] - ') - ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-33.1-libva.patch - "${FILESDIR}"/${PN}-33.1-ffmpeg-binutils-2.41.patch - "${FILESDIR}"/${PN}-33.1-linux-headers-6.5.patch -) - -python_check_deps() { - use python || return 0 - python_has_version "dev-python/python-dateutil[${PYTHON_USEDEP}]" && - python_has_version "dev-python/lxml[${PYTHON_USEDEP}]" && - python_has_version "dev-python/mysqlclient[${PYTHON_USEDEP}]" && - python_has_version "dev-python/requests-cache[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use python && python-any-r1_pkg_setup -} - -src_prepare() { - default - cat > external/libmythbluray/src/libbluray/bdj/build.properties <<-EOF - java_version_asm=1.8 - java_version_bdj=1.8 - EOF - # https://github.com/MythTV/mythtv/pull/824 - # https://github.com/MythTV/mythtv/pull/838 - # https://bugs.gentoo.org/888291 - eapply -p2 "${FILESDIR}"/${PN}-33.1-python3.12.patch - - # Perl bits need to go into vendor_perl and not site_perl - sed -e "s:pure_install:pure_install INSTALLDIRS=vendor:" \ - -i "${S}"/bindings/perl/Makefile || die "Cannot convert site_perl to vendor_perl!" - -} - -src_configure() { - local -a myconf=() - - # Setup paths - myconf+=( --prefix="${EPREFIX}"/usr ) - myconf+=( --libdir="${EPREFIX}"/usr/$(get_libdir) ) - myconf+=( --libdir-name=$(get_libdir) ) - myconf+=( --mandir="${EPREFIX}"/usr/share/man ) - - if use debug; then - myconf+=( --compile-type=debug ) - myconf+=( --disable-stripping ) # FIXME: does not disable for all files, only for some - myconf+=( --enable-valgrind ) # disables timeouts for valgrind memory debugging - else - myconf+=( --compile-type=release ) - fi - - # Build boosters - has ccache "${FEATURES}" || myconf+=( --disable-ccache ) - has distcc "${FEATURES}" || myconf+=( --disable-distcc ) - - # CPU settings - # Mythtv's configure is borrowed from ffmpeg, - # Bug #172723 - # Try to get cpu type based on CFLAGS. - # We need to do this so that features of that CPU will be better used - # If they contain an unknown CPU it will not hurt since ffmpeg's configure - # will just ignore it. - local i - for i in $(get-flag march) $(get-flag mcpu) $(get-flag mtune) ; do - [[ "${i}" == "native" ]] && i="host" # bug #273421 - myconf+=( --cpu="${i}" ) - break - done - myconf+=( $(use_enable cpu_flags_ppc_altivec altivec) ) - - # Sound Output Support - myconf+=( - $(use_enable oss audio-oss) - - $(use_enable alsa audio-alsa) - $(use_enable jack audio-jack) - $(use_enable pulseaudio audio-pulseoutput) - ) - - # Input Support - myconf+=( - $(use_enable lirc) - $(use_enable input_devices_joystick joystick-menu) - $(use_enable cec libcec) - $(use_enable ieee1394 firewire) - $(use_enable hdhomerun) - $(use_enable vbox) - $(use_enable ceton) - $(use_enable v4l v4l2) - $(use_enable dvb) - $(use_enable asi) - ) - - # Video Output Support - myconf+=( - $(use_enable X x11) - ) - - # Hardware accelerators - myconf+=( - $(use_enable nvdec) - $(use_enable vaapi) - $(use_enable vdpau) - $(use_enable opengl) - $(use_enable opengl egl) - $(use_enable libass) - ) - - # System tools - myconf+=( - $(use_enable systemd systemd_notify) - $(use_enable systemd systemd_journal) - $(use_enable xml libxml2) - $(use_enable zeroconf libdns-sd) - ) - - # Bindings - if use perl && use python; then - myconf+=( --with-bindings=perl,python ) - elif use perl; then - myconf+=( --without-bindings=python ) - myconf+=( --with-bindings=perl ) - elif use python; then - myconf+=( --without-bindings=perl ) - myconf+=( --with-bindings=python ) - else - myconf+=( --without-bindings=perl,python ) - fi - use python && myconf+=( --python="${EPYTHON}" ) - myconf+=( $(use_enable java bdjava) ) - - # External codec library options (used for mythffmpeg and streaming transcode) - # lame is required for some broadcasts for silence detection of commercials - # default enable in IUSE with +lame - myconf+=( - $(use_enable lame libmp3lame) - $(use_enable xvid libxvid) - $(use_enable x264 libx264) - $(use_enable x265 libx265) - $(use_enable vpx libvpx) - ) - - # Clean up DSO load times and other compiler bits - myconf+=( --enable-symbol-visibility ) - myconf+=( --enable-pic ) - - if tc-is-cross-compiler ; then - myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) ) - myconf+=( --cross-prefix="${CHOST}"- ) - fi - - # econf sets these options that are not handled by configure: - # --build --host --infodir --localstatedir --sysconfdir - - edo ./configure \ - --prefix="${EPREFIX}/usr" \ - --cc="$(tc-getCC)" \ - --cxx="$(tc-getCXX)" \ - --ar="$(tc-getAR)" \ - --optflags="${CFLAGS}" \ - --extra-cflags="${CFLAGS}" \ - --extra-cxxflags="${CXXFLAGS}" \ - --extra-ldflags="${LDFLAGS}" \ - --qmake="$(qt5_get_bindir)"/qmake \ - "${myconf[@]}" -} - -src_install() { - emake STRIP="true" INSTALL_ROOT="${D}" install - use python && python_optimize # does all packages by default - dodoc AUTHORS README - readme.gentoo_create_doc - - insinto /usr/share/mythtv/database - doins database/* - - newinitd "${FILESDIR}"/mythbackend.init-r3 mythbackend - newconfd "${FILESDIR}"/mythbackend.conf-r1 mythbackend - if use systemd; then - systemd_newunit "${FILESDIR}"/mythbackend.service-28 mythbackend.service - fi - - # The acct-user/mythtv package creates/manages the user 'mythtv' - keepdir /etc/mythtv - fowners -R mythtv /etc/mythtv - keepdir /var/log/mythtv - fowners -R mythtv /var/log/mythtv - - insinto /etc/logrotate.d - newins "${FILESDIR}"/mythtv.logrotate.d-r4 mythtv - - insinto /usr/share/mythtv/contrib - # Ensure we don't install scripts needing the perl bindings (bug #516968) Finding none is OK. - if ! use perl; then - find contrib/ -name '*.pl' -exec rm {} \; - fi - # Ensure we don't install scripts needing the python bindings (bug #516968) Finding none is OK. - if ! use python; then - find contrib/ -name '*.py' -exec rm {} \; - fi - doins -r contrib/* - - # Install our mythfrontend wrapper which is similar to Mythbuntu's - if use wrapper; then - mv "${ED}/usr/bin/mythfrontend" "${ED}/usr/bin/mythfrontend.real" || die "Failed to install mythfrontend.real" - newbin "${FILESDIR}"/mythfrontend.wrapper mythfrontend - newconfd "${FILESDIR}"/mythfrontend.conf mythfrontend - fi - - if use autostart; then - newenvd - 95mythtv <<- _EOF_ - CONFIG_PROTECT=\"$(egethome mythtv)\" - _EOF_ - insinto $(egethome mythtv) - newins "${FILESDIR}"/bash_profile .bash_profile - newins "${FILESDIR}"/xinitrc-r1 .xinitrc - fi - - # Make Python files executable but not files named "__init__.py" - find "${ED}/usr/share/mythtv" -type f -name '*.py' -exec expr \( {} : '.*__init__.py' \) = 0 \; \ - -exec chmod a+x {} \; || die "Failed to make python file $(basename ${file}) executable" - - # Ensure that Python scripts are executed by Python 2 - use python && python_fix_shebang "${ED}/usr/share/mythtv" - - # Make shell & perl scripts executable - find "${ED}" -type f \( -name '*.sh' -o -name '*.pl' \) -exec chmod a+x {} \; \ - || die "Failed to make script executable" -} - -pkg_postinst() { - readme.gentoo_print_elog -} - -pkg_config() { - if [[ -e "${EROOT}"/usr/bin/mysql ]]; then - "${EROOT}"/usr/bin/mysql -u root -p < "${EROOT}"/usr/share/mythtv/database/mc.sql - fi -}
