blob: d351184bd7159ef6831fbb3254c25f0dcdb4ebd4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic 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/"
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
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 )
"
# 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() {
# -Werror=lto-type-mismatch
# https://bugs.gentoo.org/932794
# https://github.com/tvheadend/tvheadend/issues/1732
filter-lto
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
}
|