Diff vdradmin-am-3.6.10-r2 with a vdradmin-am-3.6.15

/usr/portage/www-misc/vdradmin-am/vdradmin-am-3.6.15.ebuild 2026-03-17 11:46:09.055969700 +0300
1
# Copyright 2021 Gentoo Authors
1
# Copyright 2024-2026 Gentoo Authors
2 2
# Distributed under the terms of the GNU General Public License v2
3 3

  
4
EAPI=7
4
EAPI=8
5 5

  
6 6
inherit ssl-cert systemd tmpfiles
7 7

  
8 8
DESCRIPTION="WWW Admin for the Video Disk Recorder"
9
HOMEPAGE="http://andreas.vdr-developer.org/vdradmin-am/index.html"
10
SRC_URI="http://andreas.vdr-developer.org/vdradmin-am/download/${P}.tar.bz2"
9
HOMEPAGE="https://github.com/vdr-projects/vdradmin-am"
10
SRC_URI="https://github.com/vdr-projects/vdradmin-am/archive/refs/tags/v${PV}.tar.gz -> ${P}.tgz"
11 11

  
12 12
LICENSE="GPL-2 LGPL-2.1"
13 13
SLOT="0"
14
KEYWORDS="amd64 x86"
15
IUSE="ipv6 ssl systemd"
14
KEYWORDS="~amd64 ~x86"
15
IUSE="ipv6 systemd"
16 16

  
17
DEPEND="
18
	acct-group/vdradmin
19
	acct-user/vdradmin
17
DEPEND="acct-user/vdradmin
20 18
	dev-lang/perl
21 19
	dev-perl/Authen-SASL
22 20
	dev-perl/CGI
23 21
	dev-perl/Digest-HMAC
22
	dev-perl/HTTP-Daemon
24 23
	dev-perl/Locale-gettext
25 24
	dev-perl/Template-Toolkit
26 25
	dev-perl/URI
......
28 27
	virtual/perl-IO-Compress
29 28
	virtual/perl-libnet
30 29
	ipv6? ( dev-perl/IO-Socket-INET6 )
31
	ssl? ( dev-perl/IO-Socket-SSL )
32
	systemd? ( sys-apps/systemd )
33
"
34
RDEPEND="${DEPEND}"
30
	ssl? ( dev-perl/HTTP-Daemon-SSL )
31
	systemd? ( sys-apps/systemd )"
32
RDEPEND="${DEPEND}
33
	app-admin/sudo"
34
BDEPEND="
35
	acct-user/vdradmin
36
	sys-devel/gettext"
35 37

  
36 38
ETC_DIR="/etc/vdradmin"
37 39
CERTS_DIR="/etc/vdradmin/certs"
......
40 42
VDRADMIN_GROUP="vdradmin"
41 43

  
42 44
create_ssl_cert() {
43
	# The ssl-cert eclass is not flexible enough, so do some steps manually
44
	SSL_ORGANIZATION="${SSL_ORGANIZATION:-vdradmin-am}"
45
	SSL_COMMONNAME="${SSL_COMMONNAME:-`hostname -f`}"
46

  
47
	gen_cnf || return 1
48

  
49
	gen_key 1 || return 1
50
	gen_csr 1 || return 1
51
	gen_crt 1 || return 1
45
	elog "Create and install SSL certificate"
46
	SSL_ORGANIZATION="VDR vdradmin-am"
47
	SSL_COMMONNAME=$("${ROOT}"/bin/hostname -f)
48
	elog "install_cert ${CERTS_DIR}/server-cert.pem for host $SSL_COMMONNAME"
49
	rm -f "${ROOT}${CERTS_DIR}/server-cert.pem" "${ROOT}${CERTS_DIR}/server-key.pem" || die
50
	install_cert "${ROOT}${CERTS_DIR}/vdradmin"
51
	ls -la "${ROOT}${CERTS_DIR}/"
52
	rm -f "${ROOT}${CERTS_DIR}/vdradmin.csr" "${ROOT}${CERTS_DIR}/vdradmin.pem" || die
53
	mv "${ROOT}${CERTS_DIR}/vdradmin.key" "${ROOT}${CERTS_DIR}/server-key.pem" || die
54
	mv "${ROOT}${CERTS_DIR}/vdradmin.crt" "${ROOT}${CERTS_DIR}/server-cert.pem" || die
55
	chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ROOT}${CERTS_DIR}/server-cert.pem" || die
56
	chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ROOT}${CERTS_DIR}/server-key.pem" || die
52 57
}
53 58

  
54 59
src_unpack() {
55 60
	unpack ${A}
56
	cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service
61
	cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service || die
57 62
}
58 63

  
59 64
src_prepare() {
60 65
	default
61 66

  
62 67
	sed -i vdradmind.pl \
63
		-e "s|FILES_IN_SYSTEM    = 0;|FILES_IN_SYSTEM    = 1;|g" || die
64

  
65
	if use ipv6; then
66
		sed -e "s|/usr/bin/vdradmind|/usr/bin/vdradmind --ipv6|" \
67
			-i "${WORKDIR}"/vdradmind.service || die
68
	fi
69

  
70
	if use ssl; then
71
		sed -e "s|/usr/bin/vdradmind|/usr/bin/vdradmind --ssl|" \
72
			-i "${WORKDIR}"/vdradmind.service || die
73
	fi
68
		-e "s|FILES_IN_SYSTEM\s*=\s*0;|FILES_IN_SYSTEM = 1;|" || die
74 69
}
75 70

  
76 71
src_install() {
......
80 75
	systemd_dounit "${WORKDIR}"/vdradmind.service
81 76
	dotmpfiles "${FILESDIR}"/vdradmind.conf
82 77

  
78
	exeinto /usr/share/vdradmin/systemd
79
	doexe "${FILESDIR}"/vdradmin-systemd-helper.sh
80

  
83 81
	insinto /etc/logrotate.d
84 82
	newins "${FILESDIR}"/vdradmin-3.6.6.logrotate vdradmin
85 83

  
......
91 89
	insinto "${LIB_DIR}"/lib/Template/Plugin
92 90
	doins -r "${S}"/lib/Template/Plugin/JavaScript.pm
93 91

  
94
	insinto /usr/share/locale/
95
	doins -r "${S}"/locale/*
96

  
97 92
	newman vdradmind.pl.1 vdradmind.8
98 93

  
99
	dodoc CREDITS ChangeLog FAQ HISTORY INSTALL README* REQUIREMENTS
94
	dodoc CREDITS FAQ HISTORY INSTALL README* REQUIREMENTS
100 95
	docinto contrib
101 96
	dodoc "${S}"/contrib/*
102 97

  
......
107 102
		keepdir "${CERTS_DIR}"
108 103
		fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${CERTS_DIR}"
109 104
	fi
105

  
106
	mkdir -p "${ED}/etc/sudoers.d/" || die
107
	echo "vdradmin ALL=NOPASSWD:/bin/systemctl daemon-reload" > "${ED}/etc/sudoers.d/${PN}" || die
108
	chmod 0440 "${ED}/etc/sudoers.d/${PN}" || die
109

  
110
	local PO L
111
	for PO in po/*.po
112
	do
113
		L=$(basename $PO .po)
114
		insinto /usr/share/locale/${L}/LC_MESSAGES/
115
		msgfmt po/${L}.po -o po/${L}.mo
116
		newins po/${L}.mo vdradmin.mo
117
	done
118

  
110 119
}
111 120

  
112 121
pkg_preinst() {
......
122 131
		echo
123 132

  
124 133
		cat <<-EOF > "${ED}"${ETC_DIR}/vdradmind.conf
125
			VDRCONFDIR = "${EROOT}"/etc/vdr
126
			VIDEODIR = "${EROOT}"/var/vdr/video
127
			EPG_FILENAME = "${EROOT}"/var/vdr/video/epg.data
128
			EPGIMAGES = "${EROOT}"/var/vdr/video/epgimages
134
			VDRCONFDIR = /etc/vdr
135
			VIDEODIR = /var/vdr/video
136
			EPG_FILENAME = /var/vdr/video/epg.data
137
			EPGIMAGES = /var/vdr/video/epgimages
129 138
			PASSWORD = gentoo-vdr
130 139
			USERNAME = gentoo-vdr
140
			VDR_PORT = 6419
131 141
		EOF
132 142
		# Feed it with newlines
133 143
		yes "" \
......
150 160
	tmpfiles_process vdradmind.conf
151 161

  
152 162
	if use ipv6; then
153
		if ! use systemd; then
154
			elog
155
			elog "To make use of the ipv6 protocol"
156
			elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
157
		fi
163
		elog
164
		elog "To make use of the ipv6 protocol"
165
		elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
158 166
	fi
159 167

  
160 168
	if use ssl; then
161
		if ! use systemd; then
162
			elog
163
			elog "To use ssl connection to your vdr"
164
			elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
165
		fi
169
		elog
170
		elog "To use ssl connection to your vdradmin"
171
		elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
166 172

  
167
		if [[ ! -f "${EROOT}"${CERTS_DIR}/server-cert.pem || \
168
			! -f "${EROOT}"${CERTS_DIR}/server-key.pem ]]; then
173
		# only create a certificate if none exists
174
		if [[ -f ${ROOT}${CERTS_DIR}/server-cert.pem ]]; then
175
			elog "Existing SSL cert found, not touching it."
176
		else
177
			elog "No SSL cert found, creating a default one now"
169 178
			create_ssl_cert
170
			local base=$(get_base 1)
171
			install -D -m 0400 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
172
				"${base}".key "${EROOT}"${CERTS_DIR}/server-key.pem || die
173
			install -D -m 0444 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
174
				"${base}".crt "${EROOT}"${CERTS_DIR}/server-cert.pem || die
175 179
		fi
176 180
	fi
177 181

  
182
	if [[ ! -f "${EROOT}"${ETC_DIR}/vdradmin-systemd.env ]]; then
183
		echo "# systemd environment file, created by pre-exec script, do not edit!" \
184
			> "${EROOT}"${ETC_DIR}/vdradmin-systemd.env
185
		chown "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${EROOT}"${ETC_DIR}/vdradmin-systemd.env || die
186
	fi
187

  
178 188
	elog
179
	elog "To extend ${PN} you can emerge"
189
	elog "To extend the functionality of ${PN} you can emerge"
180 190
	elog "  media-plugins/vdr-epgsearch to search the EPG"
181 191
	elog "  media-plugins/vdr-streamdev for livetv streaming"
182 192
	elog "on the machine running the VDR you connect to with ${PN}."
Thank you!