You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/www-misc/vdradmin-am/vdradmin-am-3.6.10-r1.ebuild

181 lines
4.7 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit ssl-cert systemd tmpfiles
DESCRIPTION="WWW Admin for the Video Disk Recorder"
HOMEPAGE="http://andreas.vdr-developer.org/vdradmin-am/index.html"
SRC_URI="http://andreas.vdr-developer.org/vdradmin-am/download/${P}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="ipv6 ssl"
DEPEND="acct-group/vdradmin
acct-user/vdradmin
dev-lang/perl
dev-perl/Template-Toolkit
dev-perl/libwww-perl
dev-perl/URI
dev-perl/CGI
dev-perl/Locale-gettext
virtual/perl-IO-Compress
ipv6? ( dev-perl/IO-Socket-INET6 )
ssl? ( dev-perl/IO-Socket-SSL )
virtual/perl-libnet
dev-perl/Authen-SASL
dev-perl/Digest-HMAC"
RDEPEND="${DEPEND}"
ETC_DIR="/etc/vdradmin"
CERTS_DIR="/etc/vdradmin/certs"
LIB_DIR="/usr/share/vdradmin"
VDRADMIN_USER="vdradmin"
VDRADMIN_GROUP="vdradmin"
create_ssl_cert() {
# The ssl-cert eclass is not flexible enough, so do some steps manually
SSL_ORGANIZATION="${SSL_ORGANIZATION:-vdradmin-am}"
SSL_COMMONNAME="${SSL_COMMONNAME:-`hostname -f`}"
gen_cnf || return 1
gen_key 1 || return 1
gen_csr 1 || return 1
gen_crt 1 || return 1
}
src_unpack() {
unpack ${A}
cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service
}
src_prepare() {
default
sed -i vdradmind.pl \
-e "s-FILES_IN_SYSTEM = 0;-FILES_IN_SYSTEM = 1;-g" || die
if use ipv6; then
sed -e "s:/usr/bin/vdradmind:/usr/bin/vdradmind --ipv6:" \
-i "${WORKDIR}"/vdradmind.service || die
fi
if use ssl; then
sed -e "s:/usr/bin/vdradmind:/usr/bin/vdradmind --ssl:" \
-i "${WORKDIR}"/vdradmind.service || die
fi
}
src_install() {
newinitd "${FILESDIR}"/vdradmin-3.6.7.init vdradmin
newconfd "${FILESDIR}"/vdradmin-3.6.10.conf vdradmin
systemd_dounit "${WORKDIR}"/vdradmind.service
dotmpfiles "${FILESDIR}"/vdradmind.conf
insinto /etc/logrotate.d
newins "${FILESDIR}"/vdradmin-3.6.6.logrotate vdradmin
newbin vdradmind.pl vdradmind
insinto "${LIB_DIR}"/template
doins -r "${S}"/template/*
insinto "${LIB_DIR}"/lib/Template/Plugin
doins -r "${S}"/lib/Template/Plugin/JavaScript.pm
insinto /usr/share/locale/
doins -r "${S}"/locale/*
newman vdradmind.pl.1 vdradmind.8
dodoc CREDITS ChangeLog FAQ HISTORY INSTALL README* REQUIREMENTS
docinto contrib
dodoc "${S}"/contrib/*
keepdir "${ETC_DIR}"
fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${ETC_DIR}"
use ssl && keepdir "${CERTS_DIR}" && \
fowners "${VDRADMIN_USER}":"${VDRADMIN_GROUP}" "${CERTS_DIR}"
}
pkg_preinst() {
install -m 0644 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} /dev/null \
"${ED}"${ETC_DIR}/vdradmind.conf || die
if [[ -f "${EROOT}"${ETC_DIR}/vdradmind.conf ]]; then
cp "${EROOT}"${ETC_DIR}/vdradmind.conf \
"${ED}"${ETC_DIR}/vdradmind.conf || die
else
elog
elog "Creating a new config-file."
echo
cat <<-EOF > "${ED}"${ETC_DIR}/vdradmind.conf
VDRCONFDIR = "${EROOT}"/etc/vdr
VIDEODIR = "${EROOT}"/var/vdr/video
EPG_FILENAME = "${EROOT}"/var/vdr/video/epg.data
EPGIMAGES = "${EROOT}"/var/vdr/video/epgimages
PASSWORD = gentoo-vdr
USERNAME = gentoo-vdr
EOF
# Feed it with newlines
yes "" \
| "${ED}"/usr/bin/vdradmind --cfgdir "${ED}"${ETC_DIR} --config \
|sed -e 's/: /: \n/g'
[[ ${PIPESTATUS[1]} == "0" ]] \
|| die "Failed to create initial configuration."
elog
elog "Created default user/password: gentoo-vdr/gentoo-vdr"
elog
elog "You can run \"emerge --config ${PN}\" if the default-values"
elog "do not match your installation or change them in the Setup-Menu"
elog "of the Web-Interface."
fi
}
pkg_postinst() {
tmpfiles_process vdradmind.conf
if use ipv6; then
elog
elog "To make use of the ipv6 protocol"
elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
fi
if use ssl; then
elog
elog "To use ssl connection to your vdr"
elog "you need to enable it in ${EROOT}/etc/conf.d/vdradmin"
if [[ ! -f "${EROOT}"${CERTS_DIR}/server-cert.pem || \
! -f "${EROOT}"${CERTS_DIR}/server-key.pem ]]; then
create_ssl_cert
local base=$(get_base 1)
install -D -m 0400 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
"${base}".key "${EROOT}"${CERTS_DIR}/server-key.pem || die
install -D -m 0444 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
"${base}".crt "${EROOT}"${CERTS_DIR}/server-cert.pem || die
fi
fi
elog
elog "To extend ${PN} you can emerge"
elog "media-plugins/vdr-epgsearch to search the EPG,"
elog "media-plugins/vdr-streamdev for livetv streaming and/or"
elog "media-video/vdr with USE=\"liemikuutio/vasarajanauloja/none\" "
elog "(depend on your vdr version) to rename recordings"
elog "on the machine running the VDR you connect to with ${PN}."
}
pkg_config() {
"${EROOT}"/usr/bin/vdradmind -c
}