Added patch for better daemonization.
authorMatthias Schwarzott <zzam@gentoo.org>
Mon, 24 Oct 2005 11:30:35 +0000 (11:30 +0000)
committerMatthias Schwarzott <zzam@gentoo.org>
Mon, 24 Oct 2005 11:30:35 +0000 (11:30 +0000)
Package-Manager: portage-2.0.51.22-r3

media-video/vdr/ChangeLog
media-video/vdr/Manifest
media-video/vdr/files/digest-vdr-1.3.34-r2 [new file with mode: 0644]
media-video/vdr/files/vdr-1.3.32-daemon.patch [new file with mode: 0644]
media-video/vdr/vdr-1.3.34-r2.ebuild [new file with mode: 0644]

index 602173efa118ca86edcdea7e2624dbdc6245f5cc..53db256776cf56af0abdfb8e22127eb7e808e885 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for media-video/vdr
 # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/ChangeLog,v 1.25 2005/10/22 20:36:56 zzam Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/ChangeLog,v 1.26 2005/10/24 11:30:35 zzam Exp $
+
+*vdr-1.3.34-r2 (24 Oct 2005)
+
+  24 Oct 2005; Matthias Schwarzott <zzam@gentoo.org>
+  +files/vdr-1.3.32-daemon.patch, +vdr-1.3.34-r2.ebuild:
+  Added patch for better daemonization.
 
   22 Oct 2005; Matthias Schwarzott <zzam@gentoo.org> vdr-1.3.34-r1.ebuild:
   Better source installation for debugging
index 8a33115e004bcebf0451b36b59308c712f8c54b6..ac3c26d28aaad86c905bccf71ca7c39835149198 100644 (file)
@@ -1,15 +1,18 @@
 MD5 85028e3cc03f1ac1ba27a5ee0391e96d vdr-1.2.6-r1.ebuild 1433
 MD5 3157799f6d2dea384d8db6a8673e8325 vdr-1.3.34-r1.ebuild 4491
 MD5 27cbd03c0fde4fcddf379f306ea8e981 vdr-1.3.27.ebuild 4236
-MD5 1ae56a33b47fa19ccba5037666b1debb ChangeLog 3618
+MD5 8554f7d2baba12e38b4c15115f4e2f20 vdr-1.3.34-r2.ebuild 4537
+MD5 289ffc88d5174a9551f0c58b559ba8fa ChangeLog 3799
 MD5 a973dfa1638779880ca99f1c1435cac7 metadata.xml 259
 MD5 4d3ece4e7bb6ec5913f33dd5952e658e vdr-1.3.34.ebuild 4225
 MD5 aa18122fb081cdc19d419d53ad1f63de files/vdr-1.2.6_CAN-2005-0071.patch 893
 MD5 4e0e788481ae4a07c9260bcdbaab3465 files/digest-vdr-1.3.27 370
 MD5 3d3b8b271925155442f660f5a9da86da files/digest-vdr-1.3.34 366
+MD5 472e23b8b78fd88b22e140386af74b3d files/vdr-1.3.32-daemon.patch 794
 MD5 5df3de1f888e3fc8f8ba27623a19f40b files/digest-vdr-1.2.6-r1 62
 MD5 aa8d0f66c8831be73c049584d6143c8b files/vdr-1.2.6-gentoo.diff 1995
 MD5 3d3b8b271925155442f660f5a9da86da files/digest-vdr-1.3.34-r1 366
+MD5 3d3b8b271925155442f660f5a9da86da files/digest-vdr-1.3.34-r2 366
 MD5 0d386d3861b6fc42122c42da4bef26f8 files/1.3.27/vdr-1.3.27-SourceCaps-lnb-sharing.diff 7138
 MD5 f45571c5192376c05c3acc204fbdfef8 files/1.3.27/vdr-1.3.27-SourceCaps.diff 7152
 MD5 05d546888439560f03f1857d32af2062 files/1.3.34/SourceCaps-1.3.33-lnb-sharing.patch 7959
diff --git a/media-video/vdr/files/digest-vdr-1.3.34-r2 b/media-video/vdr/files/digest-vdr-1.3.34-r2
new file mode 100644 (file)
index 0000000..3a0d211
--- /dev/null
@@ -0,0 +1,5 @@
+MD5 9ac7300d0cba39a84b66bedb509de263 vdr-1.3.34.tar.bz2 511498
+MD5 6d30f22d3a86f851bac2167296912ad0 configurableLNBshare-VDR_1.3.33.patch 20188
+MD5 41f0b90e6c42e9b217b82a3a5e6af5fa vdr-1.3.34-enAIO-2.6.diff.gz 11557
+MD5 e0625aedad55dbb4654c7a8a331aa24f vdr-1.3.34-bigpatch-test1.tar.bz2 139114
+MD5 3b276851190bac5dc03ab81ba55ac193 vdr-jumpplay-0.6-1.3.29.diff 18904
diff --git a/media-video/vdr/files/vdr-1.3.32-daemon.patch b/media-video/vdr/files/vdr-1.3.32-daemon.patch
new file mode 100644 (file)
index 0000000..024770d
--- /dev/null
@@ -0,0 +1,27 @@
+2005-09-17 17:52  Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+       - vdr.c: use daemon(3) instead of forking manually; this
+         executes 'setsid()' and creates better FDs 0-2
+
+--- vdr-1.3.32/vdr.c.daemon    2005-09-17 13:40:57.000000000 +0200
++++ vdr-1.3.32/vdr.c   2005-09-17 13:46:41.000000000 +0200
+@@ -508,17 +508,11 @@
+   // Daemon mode:
+ 
+   if (DaemonMode) {
+-     pid_t pid = fork();
+-     if (pid < 0) {
+-        fprintf(stderr, "%m\n");
++     if (daemon(1, 0)==-1) {
+         esyslog("ERROR: %m");
++        perror("daemon()");
+         return 2;
+-        }
+-     if (pid != 0)
+-        return 0; // initial program immediately returns
+-     fclose(stdin);
+-     fclose(stdout);
+-     fclose(stderr);
++       }
+      }
+   else if (Terminal) {
+      // Claim new controlling terminal
diff --git a/media-video/vdr/vdr-1.3.34-r2.ebuild b/media-video/vdr/vdr-1.3.34-r2.ebuild
new file mode 100644 (file)
index 0000000..495c68f
--- /dev/null
@@ -0,0 +1,190 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/vdr-1.3.34-r2.ebuild,v 1.1 2005/10/24 11:30:35 zzam Exp $
+
+inherit eutils
+
+IUSE="lirc vfat rcu
+       lnbsharing sourcecaps aio bigpatch jumpplay"
+
+# Names of patches
+FNAME_AIO="${P}-enAIO-2.6.diff"
+FNAME_BIGPATCH="BigPatch/bigpatch-current.diff"
+FNAME_JUMPPLAY="vdr-jumpplay-0.6-1.3.29.diff"
+FNAME_LNBSHARING="configurableLNBshare-VDR_1.3.33.patch"
+FNAME_SOURCECAPS_NORMAL="SourceCaps-1.3.33.patch"
+FNAME_SOURCECAPS_LNBSHARING="SourceCaps-1.3.33-lnb-sharing.patch"
+
+DESCRIPTION="Video Disk Recorder - turns a pc into a powerful set top box for DVB"
+HOMEPAGE="http://www.cadsoft.de/vdr/"
+SRC_URI="ftp://ftp.cadsoft.de/vdr/Developer/${P}.tar.bz2
+       lnbsharing? ( http://xn--ltzke-jua.de/dvb/VDR_LNB_sharing_patch/${FNAME_LNBSHARING} )
+       aio? ( http://www.saunalahti.fi/~rahrenbe/vdr/patches/${FNAME_AIO}.gz )
+       bigpatch? ( http://bigpatch.vdr-developer.org/$PV/${P}-bigpatch-test1.tar.bz2 )
+       jumpplay? ( http://www.toms-cafe.de/vdr/download/${FNAME_JUMPPLAY} )"
+
+KEYWORDS="~amd64 ~x86"
+SLOT="0"
+LICENSE="GPL-2"
+
+
+_DEPEND="media-libs/jpeg
+       lirc? ( app-misc/lirc )
+       sys-apps/gawk"
+
+RDEPEND="${_DEPEND}
+       dev-lang/perl
+       media-tv/vdrplugin-rebuild
+       media-tv/gentoo-vdr-scripts"
+
+DEPEND="${_DEPEND}
+       || (
+               >=sys-kernel/linux-headers-2.6.11-r2
+               media-tv/linuxtv-dvb
+       )"
+
+# Relevant Pathes for vdr on gentoo
+DVB_DIR=/usr/include
+VDR_INCLUDE_DIR=/usr/include/vdr
+PLUGIN_DIR=/usr/lib/vdr/plugins
+CONF_DIR=/etc/vdr
+RC_DIR=/usr/lib/vdr/rcscript
+CAP_FILE=${S}/vdr-capabilities.sh
+VDR_HOME=/var/vdr
+
+pkg_setup() {
+       enewgroup vdr
+       enewuser vdr -1 /bin/bash ${VDR_HOME} vdr,video
+}
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+
+       ebegin "Changing pathes for gentoo"
+       sed -e 's-$(DVBDIR)/include-$(DVBDIR)-' -i Makefile
+
+       sed \
+         -e 's-ConfigDirectory = VideoDirectory;-ConfigDirectory = CONFIGDIR;-' \
+         -i vdr.c
+
+       cat > Make.config <<-EOT
+               #
+               # Generated by ebuild ${PF}
+               #
+               DVBDIR       = ${DVB_DIR}
+               PLUGINLIBDIR = ${PLUGIN_DIR}
+               CONFIGDIR    = ${CONF_DIR}
+
+               DEFINES     += -DCONFIGDIR=\"\$(CONFIGDIR)\"
+       EOT
+       eend 0
+
+       if use rcu; then
+               echo "REMOTE=RCU" >> Make.config
+               use lirc && ewarn "Only one remotes can be used: dropping lirc and keeping rcu"
+       else
+               use lirc && echo "REMOTE=LIRC" >> Make.config
+       fi
+       use vfat && echo "VFAT=1" >> Make.config
+
+       # apply standard patches
+       local PATCHDIR=${FILESDIR}/${PV}
+       local MY_SOURCECAPS="${PATCHDIR}/${FNAME_SOURCECAPS_NORMAL}"
+
+       epatch "${PATCHDIR}/${P}-shutdown-retry.diff"
+       epatch "${FILESDIR}/vdr-1.3.32-daemon.patch"
+
+       if use bigpatch; then
+               epatch "${WORKDIR}/${FNAME_BIGPATCH}"
+       else
+               # All these patches are included in bigpatch
+               if use aio; then
+                       if use lnbsharing; then
+                               ewarn "At the moment lnbsharing can not be combined with aio, dropping aio patch!"
+                       else
+                               epatch "../${FNAME_AIO}"
+                       fi
+               fi
+
+               if use lnbsharing; then
+                       epatch "${DISTDIR}/${FNAME_LNBSHARING}"
+                       MY_SOURCECAPS="${PATCHDIR}/${FNAME_SOURCECAPS_LNBSHARING}"
+               fi
+
+               use sourcecaps && epatch "${MY_SOURCECAPS}"
+
+               if use jumpplay; then
+                       if use sourcecaps; then
+                               ewarn "At the moment sourcecaps can not be combined with jumpplay, dropping jumpplay patch."
+                       else
+                               epatch "${DISTDIR}/${FNAME_JUMPPLAY}"
+                       fi
+               fi
+       fi
+
+
+
+       # apply local patches defined by variable VDR_LOCAL_PATCHES_DIR
+       if test -n "${VDR_LOCAL_PATCHES_DIR}"; then
+               echo
+               einfo "Applying local patches"
+               for LOCALPATCH in ${VDR_LOCAL_PATCHES_DIR}/${PV}/*.{diff,patch}; do
+                       test -f "${LOCALPATCH}" && epatch "${LOCALPATCH}"
+               done
+       fi
+
+       if [[ -n "${VDRSOURCE_DIR}" ]]; then
+               cp -r ${S} ${T}/source-tree
+       fi
+
+       cat > ${CAP_FILE} <<-EOT
+               CAP_IRCTRL_RUNTIME_PARAM=1
+               CAP_VFAT_RUNTIME_PARAM=1
+               CAP_SHUTDOWN_AUTO_RETRY=1
+       EOT
+}
+
+src_install() {
+       exeinto /usr/bin
+       doexe vdr
+       doexe svdrpsend.pl
+
+       insinto ${VDR_INCLUDE_DIR}
+       doins *.h
+       doins Make.config
+
+       insinto ${VDR_INCLUDE_DIR}/libsi
+       doins libsi/*.h
+
+       diropts -m755 -ovdr -gvdr
+       keepdir ${CONF_DIR}
+       keepdir ${CONF_DIR}/plugins
+       keepdir ${VDR_HOME}
+       keepdir ${VDR_HOME}/video
+
+       insinto ${CONF_DIR}
+       insopts -m0644 -ovdr -gvdr
+       doins *.conf channels.conf.*
+       insopts -m0644
+       diropts -m755
+
+
+       keepdir "${PLUGIN_DIR}"
+
+       doman vdr.1 vdr.5
+
+       insinto ${RC_DIR}
+       doins ${CAP_FILE}
+
+       if [[ -n "${VDRSOURCE_DIR}" ]]; then
+               einfo "Installing sources"
+               insinto ${VDRSOURCE_DIR}/${P}
+               doins -r ${T}/source-tree/*
+               keepdir ${VDRSOURCE_DIR}/${P}/PLUGINS/lib
+       fi
+}
+
+pkg_postinst() {
+       einfo "It is a good idea to run vdrplugin-rebuild now"
+}