From 78abc588b5811a3b597cc476a58f9881efc6adb9 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Sun, 24 Mar 2024 15:36:31 +0000 Subject: media-tv/tvheadend: Bump to 20240322 snapshot for ffmpeg 5+, fix Python deps Bug: https://bugs.gentoo.org/834399 Signed-off-by: James Le Cuirot --- media-tv/tvheadend/Manifest | 1 + media-tv/tvheadend/tvheadend-4.3_p20240322.ebuild | 168 ++++++++++++++++++++++ media-tv/tvheadend/tvheadend-9999.ebuild | 21 +-- 3 files changed, 182 insertions(+), 8 deletions(-) create mode 100644 media-tv/tvheadend/tvheadend-4.3_p20240322.ebuild diff --git a/media-tv/tvheadend/Manifest b/media-tv/tvheadend/Manifest index a4b0579a1fa6..66b6b6e2df8e 100644 --- a/media-tv/tvheadend/Manifest +++ b/media-tv/tvheadend/Manifest @@ -1 +1,2 @@ DIST tvheadend-4.2.8.tar.gz 21875281 BLAKE2B fdd99ca6aff56f8daa073394f9c58e9cba4ea988a2884e24c2288fd4870dd0460624fb700838ba92867a57473cc4133fed5fbd56f0e40f02a0878ffcd0642c00 SHA512 e629ffe1802e76b5121d5c22d11be86640f17816a5e902ed4842b2fd21df506d00d9caebafd931d71995e9d9049cb675c032478c9bed4f1ce82fc3f255f6166f +DIST tvheadend-4.3_p20240322.tar.gz 22572932 BLAKE2B b3c09c170a13765194885854ca162a2a55e8b10fca2f6c24eb7b03b9670adb0c88f082986ac974a174abc52db3c49704735b371de28050d12d4aad6cb4a8dfc0 SHA512 068e8f6c1d3b3da9af8babd25705c754b2d72173751d65086663a64a45c332c1e1b478f65b86665a531a1f3b9b2168df23f93583b82d96c08e80c475406986da diff --git a/media-tv/tvheadend/tvheadend-4.3_p20240322.ebuild b/media-tv/tvheadend/tvheadend-4.3_p20240322.ebuild new file mode 100644 index 000000000000..d151d6b97eea --- /dev/null +++ b/media-tv/tvheadend/tvheadend-4.3_p20240322.ebuild @@ -0,0 +1,168 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +COMMIT="c63115464d8f6556fb4cac93ce8740afea1b00d5" +PYTHON_COMPAT=( python3_{10..12} ) + +inherit linux-info python-single-r1 systemd toolchain-funcs + +DESCRIPTION="Tvheadend is a TV streaming server and digital video recorder" +HOMEPAGE="https://tvheadend.org/" +SRC_URI="https://github.com/tvheadend/tvheadend/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="dbus debug +ddci dvbcsa +dvb +ffmpeg hdhomerun +imagecache +inotify iptv opus satip systemd +timeshift uriparser vpx x264 x265 xmltv zeroconf zlib" + +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + ddci? ( dvb ) +" + +BDEPEND=" + ${PYTHON_DEPS} + sys-devel/gettext + virtual/pkgconfig +" + +RDEPEND=" + ${PYTHON_DEPS} + acct-user/tvheadend + virtual/libiconv + dbus? ( sys-apps/dbus ) + dvbcsa? ( media-libs/libdvbcsa ) + ffmpeg? ( media-video/ffmpeg:=[opus?,vpx?,x264?,x265?] ) + hdhomerun? ( media-libs/libhdhomerun ) + dev-libs/openssl:0= + uriparser? ( dev-libs/uriparser ) + zeroconf? ( net-dns/avahi ) + zlib? ( sys-libs/zlib ) +" + +# ffmpeg sub-dependencies needed for headers only. Check under +# src/transcoding/codec/codecs/libs for include statements. + +DEPEND=" + ${RDEPEND} + dvb? ( sys-kernel/linux-headers ) + ffmpeg? ( + opus? ( media-libs/opus ) + vpx? ( media-libs/libvpx ) + x264? ( media-libs/x264 ) + x265? ( media-libs/x265 ) + ) +" + +RDEPEND+=" + $(python_gen_cond_dep ' + dev-python/requests[${PYTHON_USEDEP}] + ') + dvb? ( media-tv/dtv-scan-tables ) + xmltv? ( media-tv/xmltv ) +" + +S="${WORKDIR}/${PN}-${COMMIT}" + +# Some patches from: +# https://github.com/rpmfusion/tvheadend + +PATCHES=( + "${FILESDIR}"/${PN}-4.0.9-use_system_queue.patch + "${FILESDIR}"/${PN}-4.3-hdhomerun.patch + "${FILESDIR}"/${PN}-4.2.2-dtv_scan_tables.patch + "${FILESDIR}"/${PN}-4.2.7-python3.patch +) + +DOCS=( README.md ) + +pkg_setup() { + python-single-r1_pkg_setup + + use inotify && + CONFIG_CHECK="~INOTIFY_USER" linux-info_pkg_setup +} + +# We unconditionally enable codecs that do not require additional +# dependencies when building tvheadend. If support is missing from +# ffmpeg at runtime then tvheadend will simply disable these codecs. + +# It is not necessary to specific all the --disable-*-static options as +# most of them only take effect when --enable-ffmpeg_static is given. + +src_configure() { + CC="$(tc-getCC)" \ + PKG_CONFIG="$(tc-getPKG_CONFIG)" \ + econf \ + --disable-bundle \ + --disable-ccache \ + --disable-dvbscan \ + --disable-ffmpeg_static \ + --disable-hdhomerun_static \ + --enable-libfdkaac \ + --enable-libtheora \ + --enable-libvorbis \ + --nowerror \ + $(use_enable dbus dbus_1) \ + $(use_enable debug trace) \ + $(use_enable ddci) \ + $(use_enable dvb linuxdvb) \ + $(use_enable dvbcsa) \ + $(use_enable dvbcsa capmt) \ + $(use_enable dvbcsa cccam) \ + $(use_enable dvbcsa constcw) \ + $(use_enable dvbcsa cwc) \ + $(use_enable ffmpeg libav) \ + $(use_enable hdhomerun hdhomerun_client) \ + $(use_enable imagecache) \ + $(use_enable inotify) \ + $(use_enable iptv) \ + $(use_enable opus libopus) \ + $(use_enable satip satip_server) \ + $(use_enable satip satip_client) \ + $(use_enable systemd libsystemd_daemon) \ + $(use_enable timeshift) \ + $(use_enable uriparser) \ + $(use_enable vpx libvpx) \ + $(use_enable x264 libx264) \ + $(use_enable x265 libx265) \ + $(use_enable zeroconf avahi) \ + $(use_enable zlib) +} + +src_compile() { + emake CC="$(tc-getCC)" +} + +src_install() { + default + python_fix_shebang "${ED}"/usr/bin/ + + newinitd "${FILESDIR}"/tvheadend.initd tvheadend + newconfd "${FILESDIR}"/tvheadend.confd tvheadend + + use systemd && + systemd_dounit "${FILESDIR}"/tvheadend.service +} + +pkg_postinst() { + elog "The Tvheadend web interface can be reached at:" + elog "http://localhost:9981/" + elog + elog "Make sure that you change the default username" + elog "and password via the Configuration / Access control" + elog "tab in the web interface." + + . "${EROOT}"/etc/conf.d/tvheadend &>/dev/null + + if [[ ${TVHEADEND_CONFIG} = ${EPREFIX}/etc/tvheadend ]]; then + echo + ewarn "The HOME directory for the tvheadend user has changed from" + ewarn "${EPREFIX}/etc/tvheadend to ${EPREFIX}/var/lib/tvheadend. The daemon will continue" + ewarn "to use the old location until you update TVHEADEND_CONFIG in" + ewarn "${EPREFIX}/etc/conf.d/tvheadend. Please manually move your existing files" + ewarn "before you do so." + fi +} diff --git a/media-tv/tvheadend/tvheadend-9999.ebuild b/media-tv/tvheadend/tvheadend-9999.ebuild index 570fce9e982d..21d9095d7d84 100644 --- a/media-tv/tvheadend/tvheadend-9999.ebuild +++ b/media-tv/tvheadend/tvheadend-9999.ebuild @@ -3,9 +3,9 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..12} ) +PYTHON_COMPAT=( python3_{10..12} ) -inherit git-r3 linux-info python-any-r1 systemd toolchain-funcs +inherit git-r3 linux-info python-single-r1 systemd toolchain-funcs DESCRIPTION="Tvheadend is a TV streaming server and digital video recorder" HOMEPAGE="https://tvheadend.org/" @@ -13,9 +13,13 @@ EGIT_REPO_URI="https://github.com/${PN}/${PN}.git" LICENSE="GPL-3" SLOT="0" - IUSE="dbus debug +ddci dvbcsa +dvb +ffmpeg hdhomerun +imagecache +inotify iptv opus satip systemd +timeshift uriparser vpx x264 x265 xmltv zeroconf zlib" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + ddci? ( dvb ) +" + BDEPEND=" ${PYTHON_DEPS} sys-devel/gettext @@ -23,6 +27,7 @@ BDEPEND=" " RDEPEND=" + ${PYTHON_DEPS} acct-user/tvheadend virtual/libiconv dbus? ( sys-apps/dbus ) @@ -50,14 +55,13 @@ DEPEND=" " RDEPEND+=" + $(python_gen_cond_dep ' + dev-python/requests[${PYTHON_USEDEP}] + ') dvb? ( media-tv/dtv-scan-tables ) xmltv? ( media-tv/xmltv ) " -REQUIRED_USE=" - ddci? ( dvb ) -" - # Some patches from: # https://github.com/rpmfusion/tvheadend @@ -71,7 +75,7 @@ PATCHES=( DOCS=( README.md ) pkg_setup() { - python-any-r1_pkg_setup + python-single-r1_pkg_setup use inotify && CONFIG_CHECK="~INOTIFY_USER" linux-info_pkg_setup @@ -130,6 +134,7 @@ src_compile() { src_install() { default + python_fix_shebang "${ED}"/usr/bin/ newinitd "${FILESDIR}"/tvheadend.initd tvheadend newconfd "${FILESDIR}"/tvheadend.confd tvheadend -- cgit v1.2.3-65-gdbad