summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-misc/vdradmin-am/vdradmin-am-3.6.10.ebuild')
-rw-r--r--www-misc/vdradmin-am/vdradmin-am-3.6.10.ebuild178
1 files changed, 178 insertions, 0 deletions
diff --git a/www-misc/vdradmin-am/vdradmin-am-3.6.10.ebuild b/www-misc/vdradmin-am/vdradmin-am-3.6.10.ebuild
new file mode 100644
index 000000000000..8a59565a1714
--- /dev/null
+++ b/www-misc/vdradmin-am/vdradmin-am-3.6.10.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils ssl-cert systemd user
+
+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="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ipv6 ssl"
+
+DEPEND="dev-lang/perl
+ dev-perl/Template-Toolkit
+ dev-perl/libwww-perl
+ dev-perl/URI
+ 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
+CACHE_DIR=/var/cache/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
+}
+
+pkg_setup() {
+ enewgroup ${VDRADMIN_GROUP}
+ enewuser ${VDRADMIN_USER} -1 /bin/bash ${CACHE_DIR} ${VDRADMIN_GROUP}
+}
+
+src_unpack() {
+ unpack ${A}
+ cp "${FILESDIR}"/vdradmind.service "${WORKDIR}"/vdradmind.service
+}
+
+src_prepare() {
+ 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
+ fi
+
+ if use ssl; then
+ sed -e "s:/usr/bin/vdradmind:/usr/bin/vdradmind --ssl:" \
+ -i "${WORKDIR}"/vdradmind.service
+ fi
+}
+
+src_install() {
+ newinitd "${FILESDIR}"/vdradmin-3.6.7.init vdradmin
+ newconfd "${FILESDIR}"/vdradmin-3.6.6.conf vdradmin
+
+ systemd_dounit "${WORKDIR}"/vdradmind.service
+ systemd_dotmpfilesd "${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/*
+
+ diropts "-m755 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP}"
+ keepdir ${ETC_DIR}
+ use ssl && keepdir ${CERTS_DIR}
+}
+
+pkg_preinst() {
+ install -m 0644 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} /dev/null \
+ "${D}"${ETC_DIR}/vdradmind.conf || die
+
+ if [[ -f "${ROOT}"${ETC_DIR}/vdradmind.conf ]]; then
+ cp "${ROOT}"${ETC_DIR}/vdradmind.conf \
+ "${D}"${ETC_DIR}/vdradmind.conf || die
+ else
+ elog
+ elog "Creating a new config-file."
+ echo
+
+ cat <<-EOF > "${D}"${ETC_DIR}/vdradmind.conf
+ VDRCONFDIR = "${ROOT%/}"/etc/vdr
+ VIDEODIR = "${ROOT%/}"/var/vdr/video
+ EPG_FILENAME = "${ROOT%/}"/var/vdr/video/epg.data
+ EPGIMAGES = "${ROOT%/}"/var/vdr/video/epgimages
+ PASSWORD = gentoo-vdr
+ USERNAME = gentoo-vdr
+ EOF
+ # Feed it with newlines
+ yes "" \
+ | "${D}"/usr/bin/vdradmind --cfgdir "${D}"${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() {
+ if use ipv6; then
+ elog
+ elog "To make use of the ipv6 protocol"
+ elog "you need to enable it in ${ROOT%/}/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 ${ROOT%/}/etc/conf.d/vdradmin"
+
+ if [[ ! -f "${ROOT}"${CERTS_DIR}/server-cert.pem || \
+ ! -f "${ROOT}"${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 "${ROOT}"${CERTS_DIR}/server-key.pem || die
+ install -D -m 0444 -o ${VDRADMIN_USER} -g ${VDRADMIN_GROUP} \
+ "${base}".crt "${ROOT}"${CERTS_DIR}/server-cert.pem || die
+ fi
+ fi
+
+ elog
+ elog "To extend ${PN} you can emerge"
+ elog ">=media-plugins/vdr-epgsearch-0.9.25 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() {
+ "${ROOT}"/usr/bin/vdradmind -c
+}