summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Schwarzott <zzam@gentoo.org>2005-10-08 21:48:38 +0000
committerMatthias Schwarzott <zzam@gentoo.org>2005-10-08 21:48:38 +0000
commit796cb6177ad13c183884ffd389c3e0a870b3c59d (patch)
tree76a04d4c34a66fba0e67705c6f040c2fb861bfe5 /media-video/vdr
parentStable on ppc. (diff)
downloadhistorical-796cb6177ad13c183884ffd389c3e0a870b3c59d.tar.gz
historical-796cb6177ad13c183884ffd389c3e0a870b3c59d.tar.bz2
historical-796cb6177ad13c183884ffd389c3e0a870b3c59d.zip
Version bumped.
Package-Manager: portage-2.0.51.22-r3
Diffstat (limited to 'media-video/vdr')
-rw-r--r--media-video/vdr/ChangeLog9
-rw-r--r--media-video/vdr/Manifest6
-rw-r--r--media-video/vdr/files/1.3.34/SourceCaps-1.3.33-lnb-sharing.patch215
-rw-r--r--media-video/vdr/files/1.3.34/SourceCaps-1.3.33.patch214
-rw-r--r--media-video/vdr/files/digest-vdr-1.3.345
-rw-r--r--media-video/vdr/vdr-1.3.34.ebuild177
6 files changed, 624 insertions, 2 deletions
diff --git a/media-video/vdr/ChangeLog b/media-video/vdr/ChangeLog
index d05a75a4918b..1a47064d7c7f 100644
--- a/media-video/vdr/ChangeLog
+++ b/media-video/vdr/ChangeLog
@@ -1,6 +1,13 @@
# 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.20 2005/09/09 16:51:16 zzam Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/ChangeLog,v 1.21 2005/10/08 21:48:38 zzam Exp $
+
+*vdr-1.3.34 (08 Oct 2005)
+
+ 08 Oct 2005; Matthias Schwarzott <zzam@gentoo.org>
+ +files/1.3.34/SourceCaps-1.3.33-lnb-sharing.patch,
+ +files/1.3.34/SourceCaps-1.3.33.patch, +vdr-1.3.34.ebuild:
+ Version bumped.
09 Sep 2005; Matthias Schwarzott <zzam@gentoo.org> vdr-1.3.27.ebuild:
Creating default video directory
diff --git a/media-video/vdr/Manifest b/media-video/vdr/Manifest
index e34a9b54685f..bcb1c9477c1e 100644
--- a/media-video/vdr/Manifest
+++ b/media-video/vdr/Manifest
@@ -1,10 +1,14 @@
MD5 ed73745f0560d6fcecae19dfd61babe0 vdr-1.2.6-r1.ebuild 1404
MD5 8d1c74f8069e62a56359b977ac35921e vdr-1.3.27.ebuild 4139
-MD5 f8633aca4034ebe5286ab4148a8ea3e7 ChangeLog 2699
+MD5 2102d93d4039d577950e39645ae034c9 ChangeLog 2912
MD5 a973dfa1638779880ca99f1c1435cac7 metadata.xml 259
+MD5 ef25a12a5627ac602c49612a834d9071 vdr-1.3.34.ebuild 4128
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 5df3de1f888e3fc8f8ba27623a19f40b files/digest-vdr-1.2.6-r1 62
MD5 aa8d0f66c8831be73c049584d6143c8b files/vdr-1.2.6-gentoo.diff 1995
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
+MD5 9b94d2f03c586e9c4dcf2b300af9fd45 files/1.3.34/SourceCaps-1.3.33.patch 7731
diff --git a/media-video/vdr/files/1.3.34/SourceCaps-1.3.33-lnb-sharing.patch b/media-video/vdr/files/1.3.34/SourceCaps-1.3.33-lnb-sharing.patch
new file mode 100644
index 000000000000..98bce1b01dfc
--- /dev/null
+++ b/media-video/vdr/files/1.3.34/SourceCaps-1.3.33-lnb-sharing.patch
@@ -0,0 +1,215 @@
+diff -ru vdr-1.3.34-lnbsharing/config.c vdr-1.3.34-lnbsharing-sourcecaps/config.c
+--- vdr-1.3.34-lnbsharing/config.c 2005-10-08 23:39:10.000000000 +0200
++++ vdr-1.3.34-lnbsharing-sourcecaps/config.c 2005-10-08 23:37:04.000000000 +0200
+@@ -15,6 +15,7 @@
+ #include "interface.h"
+ #include "plugin.h"
+ #include "recording.h"
++#include "sources.h"
+
+ // IMPORTANT NOTE: in the 'sscanf()' calls there is a blank after the '%d'
+ // format characters in order to allow any number of blanks after a numeric
+@@ -300,6 +301,8 @@
+ MultiSpeedMode = 0;
+ ShowReplayMode = 0;
+ ResumeID = 0;
++ memset(SourceCaps, 0, sizeof SourceCaps);
++ SourceCapsSet = false;
+ CurrentChannel = -1;
+ CurrentVolume = MAXVOLUME;
+ CurrentDolby = 0;
+@@ -407,6 +410,49 @@
+ return true;
+ }
+
++void cSetup::StoreSourceCaps(const char *Name)
++{
++ cSetupLine *l;
++ while ((l = Get(Name)) != NULL)
++ Del(l);
++
++ for (int i = 0; i < MAXDEVICES; i++) {
++ char buffer[MAXPARSEBUFFER]={0,}, *q = buffer;
++ int j = 0;
++ while (SourceCaps[i][j] && j < MAXSOURCECAPS) {
++ if (j==0)
++ q += snprintf(buffer, sizeof(buffer), "%i ", i+1);
++ q += snprintf(q, sizeof(buffer) - (q-buffer), "%s ", *cSource::ToString(SourceCaps[i][j++]));
++ }
++ if (*buffer)
++ Store(Name, buffer, NULL, true);
++ }
++}
++
++bool cSetup::ParseSourceCaps(const char *Value)
++{
++ char *p;
++ int d = strtol(Value, &p, 10)-1, i = 0;
++ while (p < Value+strlen(Value)) {
++ if (*p==0) return true;
++ if (isblank(*p)) ++p;
++ if (isalpha(*p)) {
++ int source = cSource::FromString(p);
++ if (source != cSource::stNone) {
++ SourceCaps[d][i++] = source;
++ SourceCapsSet = true;
++ }
++ else
++ return false;
++ while (!isblank(*p) && *p)
++ ++p;
++ if (i>MAXSOURCECAPS)
++ return false;
++ }
++ }
++ return true;
++}
++
+ bool cSetup::Parse(const char *Name, const char *Value)
+ {
+ if (!strcasecmp(Name, "OSDLanguage")) OSDLanguage = atoi(Value);
+@@ -464,6 +510,7 @@
+ else if (!strcasecmp(Name, "MultiSpeedMode")) MultiSpeedMode = atoi(Value);
+ else if (!strcasecmp(Name, "ShowReplayMode")) ShowReplayMode = atoi(Value);
+ else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value);
++ else if (!strcasecmp(Name, "SourceCaps")) return ParseSourceCaps(Value);
+ else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value);
+ else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value);
+ else if (!strcasecmp(Name, "CurrentDolby")) CurrentDolby = atoi(Value);
+@@ -545,6 +592,7 @@
+ Store("MultiSpeedMode", MultiSpeedMode);
+ Store("ShowReplayMode", ShowReplayMode);
+ Store("ResumeID", ResumeID);
++ if (SourceCapsSet) StoreSourceCaps("SourceCaps");
+ Store("CurrentChannel", CurrentChannel);
+ Store("CurrentVolume", CurrentVolume);
+ Store("CurrentDolby", CurrentDolby);
+diff -ru vdr-1.3.34-lnbsharing/config.h vdr-1.3.34-lnbsharing-sourcecaps/config.h
+--- vdr-1.3.34-lnbsharing/config.h 2005-10-08 23:39:10.000000000 +0200
++++ vdr-1.3.34-lnbsharing-sourcecaps/config.h 2005-10-08 23:37:04.000000000 +0200
+@@ -30,6 +30,9 @@
+ #define MINOSDHEIGHT 324
+ #define MAXOSDHEIGHT 567
+
++#define MAXDEVICES 16 // the maximum number of devices in the system
++#define MAXSOURCECAPS 128 // the maximum number of different sources per device
++
+ #define MaxFileName 256
+ #define MaxSkinName 16
+ #define MaxThemeName 16
+@@ -198,6 +201,8 @@
+ void StoreLanguages(const char *Name, int *Values);
+ bool ParseLanguages(const char *Value, int *Values);
+ bool Parse(const char *Name, const char *Value);
++ void StoreSourceCaps(const char *Name);
++ bool ParseSourceCaps(const char *Value);
+ cSetupLine *Get(const char *Name, const char *Plugin = NULL);
+ void Store(const char *Name, const char *Value, const char *Plugin = NULL, bool AllowMultiple = false);
+ void Store(const char *Name, int Value, const char *Plugin = NULL);
+@@ -252,6 +257,8 @@
+ int MultiSpeedMode;
+ int ShowReplayMode;
+ int ResumeID;
++ int SourceCaps[MAXDEVICES][MAXSOURCECAPS];
++ bool SourceCapsSet;
+ int CurrentChannel;
+ int CurrentVolume;
+ int CurrentDolby;
+diff -ru vdr-1.3.34-lnbsharing/device.c vdr-1.3.34-lnbsharing-sourcecaps/device.c
+--- vdr-1.3.34-lnbsharing/device.c 2005-10-08 23:39:10.000000000 +0200
++++ vdr-1.3.34-lnbsharing-sourcecaps/device.c 2005-10-08 23:37:04.000000000 +0200
+@@ -184,8 +184,10 @@
+ for (int i = 0; i < MAXRECEIVERS; i++)
+ receiver[i] = NULL;
+
+- if (numDevices < MAXDEVICES)
++ if (numDevices < MAXDEVICES) {
+ device[numDevices++] = this;
++ SetSourceCaps(cardIndex);
++ }
+ else
+ esyslog("ERROR: too many devices!");
+ }
+@@ -440,6 +442,17 @@
+ return d;
+ }
+
++void cDevice::SetSourceCaps(int Index)
++{
++ for (int d = 0; d < numDevices; d++) {
++ if (Index < 0 || Index == device[d]->CardIndex()) {
++ for (int i = 0; i < MAXSOURCECAPS; i++)
++ device[d]->sourceCaps[i] = Setup.SourceCaps[device[d]->CardIndex()][i];
++ }
++ }
++}
++
++
+ void cDevice::Shutdown(void)
+ {
+ primaryDevice = NULL;
+diff -ru vdr-1.3.34-lnbsharing/device.h vdr-1.3.34-lnbsharing-sourcecaps/device.h
+--- vdr-1.3.34-lnbsharing/device.h 2005-10-08 23:39:10.000000000 +0200
++++ vdr-1.3.34-lnbsharing-sourcecaps/device.h 2005-10-08 23:37:36.000000000 +0200
+@@ -23,7 +23,6 @@
+ #include "thread.h"
+ #include "tools.h"
+
+-#define MAXDEVICES 16 // the maximum number of devices in the system
+ #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device
+ #define MAXRECEIVERS 16 // the maximum number of receivers per device
+ #define MAXVOLUME 255
+@@ -160,6 +159,8 @@
+ ///< would not be affected by switching to the requested channel.
+ //ML-Ende
+
++ static void SetSourceCaps(int Index = -1);
++ ///< Sets the SourceCaps of the given device according to the Setup data.
+ static void Shutdown(void);
+ ///< Closes down all devices.
+ ///< Must be called at the end of the program.
+@@ -167,6 +168,7 @@
+ static int nextCardIndex;
+ int cardIndex;
+ protected:
++ int sourceCaps[MAXSOURCECAPS];
+ cDevice(void);
+ virtual ~cDevice();
+ virtual bool Ready(void);
+diff -ru vdr-1.3.34-lnbsharing/dvbdevice.c vdr-1.3.34-lnbsharing-sourcecaps/dvbdevice.c
+--- vdr-1.3.34-lnbsharing/dvbdevice.c 2005-10-08 23:38:46.000000000 +0200
++++ vdr-1.3.34-lnbsharing-sourcecaps/dvbdevice.c 2005-10-08 23:37:04.000000000 +0200
+@@ -754,10 +754,17 @@
+ bool cDvbDevice::ProvidesSource(int Source) const
+ {
+ int type = Source & cSource::st_Mask;
+- return type == cSource::stNone
+- || type == cSource::stCable && frontendType == FE_QAM
+- || type == cSource::stSat && frontendType == FE_QPSK
+- || type == cSource::stTerr && frontendType == FE_OFDM;
++ if (Setup.SourceCapsSet && type == cSource::stSat && frontendType == FE_QPSK) {
++ for (int i = 0; i < MAXSOURCECAPS; i++)
++ if (sourceCaps[i] == Source)
++ return true;
++ return false;
++ }
++ else
++ return type == cSource::stNone
++ || type == cSource::stCable && frontendType == FE_QAM
++ || type == cSource::stSat && frontendType == FE_QPSK
++ || type == cSource::stTerr && frontendType == FE_OFDM;
+ }
+
+ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
+diff -ru vdr-1.3.34-lnbsharing/sources.c vdr-1.3.34-lnbsharing-sourcecaps/sources.c
+--- vdr-1.3.34-lnbsharing/sources.c 2005-10-08 23:38:46.000000000 +0200
++++ vdr-1.3.34-lnbsharing-sourcecaps/sources.c 2005-10-08 23:37:04.000000000 +0200
+@@ -68,7 +68,7 @@
+ int pos = 0;
+ bool dot = false;
+ bool neg = false;
+- while (*++s) {
++ while (*++s && !isblank(*s)) {
+ switch (toupper(*s)) {
+ case '0' ... '9': pos *= 10;
+ pos += *s - '0';
diff --git a/media-video/vdr/files/1.3.34/SourceCaps-1.3.33.patch b/media-video/vdr/files/1.3.34/SourceCaps-1.3.33.patch
new file mode 100644
index 000000000000..52488c6a1f6c
--- /dev/null
+++ b/media-video/vdr/files/1.3.34/SourceCaps-1.3.33.patch
@@ -0,0 +1,214 @@
+diff -ur vdr-1.3.33/config.c vdr-1.3.33+SourceCaps/config.c
+--- vdr-1.3.33/config.c 2005-09-09 17:08:59.000000000 +0200
++++ vdr-1.3.33+SourceCaps/config.c 2005-09-25 20:25:45.869496656 +0200
+@@ -15,6 +15,7 @@
+ #include "interface.h"
+ #include "plugin.h"
+ #include "recording.h"
++#include "sources.h"
+
+ // IMPORTANT NOTE: in the 'sscanf()' calls there is a blank after the '%d'
+ // format characters in order to allow any number of blanks after a numeric
+@@ -300,6 +301,8 @@
+ MultiSpeedMode = 0;
+ ShowReplayMode = 0;
+ ResumeID = 0;
++ memset(SourceCaps, 0, sizeof SourceCaps);
++ SourceCapsSet = false;
+ CurrentChannel = -1;
+ CurrentVolume = MAXVOLUME;
+ CurrentDolby = 0;
+@@ -401,6 +404,49 @@
+ return true;
+ }
+
++void cSetup::StoreSourceCaps(const char *Name)
++{
++ cSetupLine *l;
++ while ((l = Get(Name)) != NULL)
++ Del(l);
++
++ for (int i = 0; i < MAXDEVICES; i++) {
++ char buffer[MAXPARSEBUFFER]={0,}, *q = buffer;
++ int j = 0;
++ while (SourceCaps[i][j] && j < MAXSOURCECAPS) {
++ if (j==0)
++ q += snprintf(buffer, sizeof(buffer), "%i ", i+1);
++ q += snprintf(q, sizeof(buffer) - (q-buffer), "%s ", *cSource::ToString(SourceCaps[i][j++]));
++ }
++ if (*buffer)
++ Store(Name, buffer, NULL, true);
++ }
++}
++
++bool cSetup::ParseSourceCaps(const char *Value)
++{
++ char *p;
++ int d = strtol(Value, &p, 10)-1, i = 0;
++ while (p < Value+strlen(Value)) {
++ if (*p==0) return true;
++ if (isblank(*p)) ++p;
++ if (isalpha(*p)) {
++ int source = cSource::FromString(p);
++ if (source != cSource::stNone) {
++ SourceCaps[d][i++] = source;
++ SourceCapsSet = true;
++ }
++ else
++ return false;
++ while (!isblank(*p) && *p)
++ ++p;
++ if (i>MAXSOURCECAPS)
++ return false;
++ }
++ }
++ return true;
++}
++
+ bool cSetup::Parse(const char *Name, const char *Value)
+ {
+ if (!strcasecmp(Name, "OSDLanguage")) OSDLanguage = atoi(Value);
+@@ -458,6 +504,7 @@
+ else if (!strcasecmp(Name, "MultiSpeedMode")) MultiSpeedMode = atoi(Value);
+ else if (!strcasecmp(Name, "ShowReplayMode")) ShowReplayMode = atoi(Value);
+ else if (!strcasecmp(Name, "ResumeID")) ResumeID = atoi(Value);
++ else if (!strcasecmp(Name, "SourceCaps")) return ParseSourceCaps(Value);
+ else if (!strcasecmp(Name, "CurrentChannel")) CurrentChannel = atoi(Value);
+ else if (!strcasecmp(Name, "CurrentVolume")) CurrentVolume = atoi(Value);
+ else if (!strcasecmp(Name, "CurrentDolby")) CurrentDolby = atoi(Value);
+@@ -523,6 +570,7 @@
+ Store("MultiSpeedMode", MultiSpeedMode);
+ Store("ShowReplayMode", ShowReplayMode);
+ Store("ResumeID", ResumeID);
++ if (SourceCapsSet) StoreSourceCaps("SourceCaps");
+ Store("CurrentChannel", CurrentChannel);
+ Store("CurrentVolume", CurrentVolume);
+ Store("CurrentDolby", CurrentDolby);
+diff -ur vdr-1.3.33/config.h vdr-1.3.33+SourceCaps/config.h
+--- vdr-1.3.33/config.h 2005-09-14 18:04:09.000000000 +0200
++++ vdr-1.3.33+SourceCaps/config.h 2005-09-25 20:25:45.871496352 +0200
+@@ -30,6 +30,9 @@
+ #define MINOSDHEIGHT 324
+ #define MAXOSDHEIGHT 567
+
++#define MAXDEVICES 16 // the maximum number of devices in the system
++#define MAXSOURCECAPS 128 // the maximum number of different sources per device
++
+ #define MaxFileName 256
+ #define MaxSkinName 16
+ #define MaxThemeName 16
+@@ -198,6 +201,8 @@
+ void StoreLanguages(const char *Name, int *Values);
+ bool ParseLanguages(const char *Value, int *Values);
+ bool Parse(const char *Name, const char *Value);
++ void StoreSourceCaps(const char *Name);
++ bool ParseSourceCaps(const char *Value);
+ cSetupLine *Get(const char *Name, const char *Plugin = NULL);
+ void Store(const char *Name, const char *Value, const char *Plugin = NULL, bool AllowMultiple = false);
+ void Store(const char *Name, int Value, const char *Plugin = NULL);
+@@ -252,6 +257,8 @@
+ int MultiSpeedMode;
+ int ShowReplayMode;
+ int ResumeID;
++ int SourceCaps[MAXDEVICES][MAXSOURCECAPS];
++ bool SourceCapsSet;
+ int CurrentChannel;
+ int CurrentVolume;
+ int CurrentDolby;
+diff -ur vdr-1.3.33/device.c vdr-1.3.33+SourceCaps/device.c
+--- vdr-1.3.33/device.c 2005-09-17 16:29:44.000000000 +0200
++++ vdr-1.3.33+SourceCaps/device.c 2005-09-25 20:25:45.873496048 +0200
+@@ -174,8 +174,10 @@
+ for (int i = 0; i < MAXRECEIVERS; i++)
+ receiver[i] = NULL;
+
+- if (numDevices < MAXDEVICES)
++ if (numDevices < MAXDEVICES) {
+ device[numDevices++] = this;
++ SetSourceCaps(cardIndex);
++ }
+ else
+ esyslog("ERROR: too many devices!");
+ }
+@@ -313,6 +315,17 @@
+ return d;
+ }
+
++void cDevice::SetSourceCaps(int Index)
++{
++ for (int d = 0; d < numDevices; d++) {
++ if (Index < 0 || Index == device[d]->CardIndex()) {
++ for (int i = 0; i < MAXSOURCECAPS; i++)
++ device[d]->sourceCaps[i] = Setup.SourceCaps[device[d]->CardIndex()][i];
++ }
++ }
++}
++
++
+ void cDevice::Shutdown(void)
+ {
+ primaryDevice = NULL;
+diff -ur vdr-1.3.33/device.h vdr-1.3.33+SourceCaps/device.h
+--- vdr-1.3.33/device.h 2005-09-17 16:29:28.000000000 +0200
++++ vdr-1.3.33+SourceCaps/device.h 2005-09-25 20:25:45.874495896 +0200
+@@ -23,7 +23,6 @@
+ #include "thread.h"
+ #include "tools.h"
+
+-#define MAXDEVICES 16 // the maximum number of devices in the system
+ #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device
+ #define MAXRECEIVERS 16 // the maximum number of receivers per device
+ #define MAXVOLUME 255
+@@ -133,6 +132,8 @@
+ ///< given Priority.
+ ///< See ProvidesChannel() for more information on how
+ ///< priorities are handled, and the meaning of NeedsDetachReceivers.
++ static void SetSourceCaps(int Index = -1);
++ ///< Sets the SourceCaps of the given device according to the Setup data.
+ static void Shutdown(void);
+ ///< Closes down all devices.
+ ///< Must be called at the end of the program.
+@@ -140,6 +141,7 @@
+ static int nextCardIndex;
+ int cardIndex;
+ protected:
++ int sourceCaps[MAXSOURCECAPS];
+ cDevice(void);
+ virtual ~cDevice();
+ virtual bool Ready(void);
+diff -ur vdr-1.3.33/dvbdevice.c vdr-1.3.33+SourceCaps/dvbdevice.c
+--- vdr-1.3.33/dvbdevice.c 2005-08-21 11:17:20.000000000 +0200
++++ vdr-1.3.33+SourceCaps/dvbdevice.c 2005-09-25 20:25:45.876495592 +0200
+@@ -754,10 +754,17 @@
+ bool cDvbDevice::ProvidesSource(int Source) const
+ {
+ int type = Source & cSource::st_Mask;
+- return type == cSource::stNone
+- || type == cSource::stCable && frontendType == FE_QAM
+- || type == cSource::stSat && frontendType == FE_QPSK
+- || type == cSource::stTerr && frontendType == FE_OFDM;
++ if (Setup.SourceCapsSet && type == cSource::stSat && frontendType == FE_QPSK) {
++ for (int i = 0; i < MAXSOURCECAPS; i++)
++ if (sourceCaps[i] == Source)
++ return true;
++ return false;
++ }
++ else
++ return type == cSource::stNone
++ || type == cSource::stCable && frontendType == FE_QAM
++ || type == cSource::stSat && frontendType == FE_QPSK
++ || type == cSource::stTerr && frontendType == FE_OFDM;
+ }
+
+ bool cDvbDevice::ProvidesTransponder(const cChannel *Channel) const
+--- vdr-1.3.23/sources.c 2004-12-26 12:58:52.000000000 +0100
++++ vdr-1.3.23+SourceCaps/sources.c 2005-02-16 00:29:02.652355896 +0100
+@@ -68,7 +68,7 @@
+ int pos = 0;
+ bool dot = false;
+ bool neg = false;
+- while (*++s) {
++ while (*++s && !isblank(*s)) {
+ switch (toupper(*s)) {
+ case '0' ... '9': pos *= 10;
+ pos += *s - '0';
diff --git a/media-video/vdr/files/digest-vdr-1.3.34 b/media-video/vdr/files/digest-vdr-1.3.34
new file mode 100644
index 000000000000..3a0d211fdaee
--- /dev/null
+++ b/media-video/vdr/files/digest-vdr-1.3.34
@@ -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/vdr-1.3.34.ebuild b/media-video/vdr/vdr-1.3.34.ebuild
new file mode 100644
index 000000000000..1bcc756cbc87
--- /dev/null
+++ b/media-video/vdr/vdr-1.3.34.ebuild
@@ -0,0 +1,177 @@
+# 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.ebuild,v 1.1 2005/10/08 21:48:38 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="The Video Disk Recorder"
+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
+
+
+ # apply standard patches
+ local PATCHDIR=${FILESDIR}/${PV}
+ local MY_SOURCECAPS="${PATCHDIR}/${FNAME_SOURCECAPS_NORMAL}"
+
+ 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
+}
+
+
+src_compile() {
+ local myconf=""
+ if use rcu; then
+ myconf="${myconf} REMOTE=RCU"
+ use lirc && ewarn "Only one remotes can be used: dropping lirc and keeping rcu"
+ else
+ use lirc && myconf="${myconf} REMOTE=LIRC"
+ fi
+ use vfat && myconf="${myconf} VFAT=1"
+
+ test -n "${myconf}" && einfo "Compiling with: ${myconf}"
+ emake ${myconf} || die "compilation failed"
+
+ touch ${CAP_FILE}
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe vdr
+ doexe svdrpsend.pl
+
+ insinto ${VDR_INCLUDE_DIR}
+ doins *.h
+ doins Make.config
+
+ 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}
+}
+
+pkg_postinst() {
+ einfo "It is a good idea to run vdrplugin-rebuild now"
+}