blob: 52304569d7ffee793c1a920dd3a9649756427b96 (
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
|
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Otherwise ExternalProject_add fails, see https://github.com/nzbgetcom/nzbget/issues/460
CMAKE_MAKEFILE_GENERATOR="emake"
inherit cmake systemd
PAR2_TURBO_VER="1.1.1-nzbget-20241128"
DESCRIPTION="A command-line based binary newsgrabber supporting .nzb files"
HOMEPAGE="https://nzbget.com/"
SRC_URI="
parcheck? (
https://github.com/nzbgetcom/par2cmdline-turbo/archive/v${PAR2_TURBO_VER}.tar.gz
-> nzbgetcom-par2turbo-${PAR2_TURBO_VER}.tar.gz
)
https://github.com/nzbgetcom/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86"
IUSE="gnutls ncurses +parcheck ssl test zlib"
RESTRICT="!test? ( test )"
DEPEND="
dev-libs/boost:=
dev-libs/libxml2:=
ncurses? ( sys-libs/ncurses:0= )
ssl? (
gnutls? (
net-libs/gnutls:=
dev-libs/nettle:=
)
!gnutls? ( dev-libs/openssl:0=[-bindist(-)] )
)
zlib? ( sys-libs/zlib:= )"
RDEPEND="
${DEPEND}
acct-user/nzbget
acct-group/nzbget
"
BDEPEND="
test? (
|| (
app-arch/rar
app-arch/unrar
)
)
virtual/pkgconfig
"
DOCS=( ChangeLog.md README.md nzbget.conf )
PATCHES=(
"${FILESDIR}/${P}-build-with-par2-turbo-offline.patch"
)
src_prepare() {
if use parcheck; then
mv "${WORKDIR}/par2cmdline-turbo-${PAR2_TURBO_VER}" par2-turbo || die
else
# See https://github.com/nzbgetcom/nzbget/issues/480
rm tests/postprocess/ParCheckerTest.cpp \
tests/postprocess/ParRenamerTest.cpp || die
sed -Ei '/(ParCheckerTest|ParRenamerTest)\.cpp/d' \
tests/postprocess/CMakeLists.txt || die
fi
cmake_src_prepare
# Update the main configuration file with the correct paths
sed -i nzbget.conf \
-e "s:^WebDir=.*:WebDir=${EPREFIX}/usr/share/nzbget/webui:" \
-e "s:^ConfigTemplate=.*:ConfigTemplate=${EPREFIX}/usr/share/nzbget/nzbget.conf:" \
|| die
# Update the daemon-specific configuration file (used by the OpenRC and
# systemd services)
sed nzbget.conf > nzbgetd.conf \
-e "s:^MainDir=.*:MainDir=${EPREFIX}/var/lib/nzbget:" \
-e "s:^LogFile=.*:LogFile=${EPREFIX}/var/log/nzbget/nzbget.log:" \
-e 's:^DaemonUsername=.*:DaemonUsername=nzbget:' \
|| die
}
src_configure() {
local mycmakeargs=(
-DDISABLE_CURSES=$(usex !ncurses)
-DDISABLE_PARCHECK=$(usex !parcheck)
-DDISABLE_TLS=$(usex !ssl)
-DDISABLE_GZIP=$(usex !zlib)
-DUSE_OPENSSL=$(usex !gnutls)
-DUSE_GNUTLS=$(usex gnutls)
-DENABLE_TESTS=$(usex test)
)
cmake_src_configure
}
src_install() {
cmake_src_install
insinto /etc
doins nzbget.conf
doins nzbgetd.conf
# The configuration file's "ConfigTemplate" option points to this, we must
# make sure it exists as the Web UI reads it. It is not installed by
# default, see the "install-conf" target in cmake/install.cmake.
insinto /usr/share/nzbget
doins nzbget.conf
keepdir /var/log/nzbget
newinitd "${FILESDIR}"/nzbget.initd-r1 nzbget
newconfd "${FILESDIR}"/nzbget.confd nzbget
systemd_dounit "${FILESDIR}"/nzbget.service
}
pkg_preinst() {
fowners nzbget:nzbget /var/log/nzbget
fperms 750 /var/log/nzbget
fowners nzbget:nzbget /etc/nzbgetd.conf
fperms 640 /etc/nzbgetd.conf
}
pkg_postinst() {
if [[ -z ${REPLACING_VERSIONS} ]] ; then
elog
elog "Please add users that you want to be able to use the system-wide"
elog "nzbget daemon to the nzbget group. To access the daemon, run nzbget"
elog "with the --configfile /etc/nzbgetd.conf option."
elog
fi
}
|