summaryrefslogtreecommitdiff
blob: 0afedfd5e02a9d078154027a0702a4cbaa40b11b (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
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_SETUPTOOLS=no
PYTHON_COMPAT=( python3_{9..11} )
PYTHON_REQ_USE="sqlite"

inherit distutils-r1 optfeature xdg

DESCRIPTION="A free cross-platform podcast aggregator"
HOMEPAGE="https://gpodder.github.io/"
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="+dbus bluetooth mtp"

RDEPEND="
	$(python_gen_cond_dep '
		dev-python/html5lib[${PYTHON_USEDEP}]
		dev-python/pycairo[${PYTHON_USEDEP}]
		>=dev-python/pygobject-3.22.0:3[${PYTHON_USEDEP}]
		>=dev-python/podcastparser-0.6.0[${PYTHON_USEDEP}]
		>=dev-python/mygpoclient-1.8[${PYTHON_USEDEP}]
		dev-python/requests[${PYTHON_USEDEP}]
		dbus? ( dev-python/dbus-python[${PYTHON_USEDEP}] )
	')
	bluetooth? ( net-wireless/bluez )
	mtp? ( >=media-libs/libmtp-1.0.0:= )
	kernel_linux? ( sys-apps/iproute2 )
"
BDEPEND="
	dev-util/desktop-file-utils
	dev-util/intltool
	sys-apps/help2man
	test? (
		$(python_gen_cond_dep '
			dev-python/minimock[${PYTHON_USEDEP}]
			dev-python/pytest-httpserver[${PYTHON_USEDEP}]
		')
	)
"

distutils_enable_tests pytest

src_prepare() {
	default

	sed -i -e 's:--cov=gpodder::' makefile || die
}

python_test() {
	# These are pulled out from the Makefile to give us more control
	# See bug #795165
	# Previously, we used 'emake releasetest' in src_test
	LC_ALL=C epytest --ignore=tests --ignore=src/gpodder/utilwin32ctypes.py --doctest-modules src/gpodder/util.py src/gpodder/jsonconfig.py \
		-p no:localserver
	LC_ALL=C epytest tests --ignore=src/gpodder/utilwin32ctypes.py --ignore=src/mygpoclient \
		-p no:localserver
}

src_install() {
	emake PYTHON="${EPYTHON}" DESTDIR="${D}" install

	distutils-r1_src_install

	touch "${ED}"/usr/share/gpodder/no-update-check || die
}

pkg_postinst() {
	xdg_pkg_postinst

	optfeature "track length detection for device sync (only one package is needed)" media-video/mplayer dev-python/eyeD3
	optfeature "for the YouTube extension" net-misc/yt-dlp net-misc/youtube-dl
	optfeature "iPod sync support" media-libs/libgpod
}