diff options
author | Matthias Schwarzott <zzam@gentoo.org> | 2005-07-23 16:50:22 +0000 |
---|---|---|
committer | Matthias Schwarzott <zzam@gentoo.org> | 2005-07-23 16:50:22 +0000 |
commit | a995e634c3de4b2dc8fd8873fad3d28b48afee8b (patch) | |
tree | d81c8ee885648d20097321a3d4577ff05c5ee5f3 /media-video/vdr | |
parent | added 7 local use flags for media-video/vdr (diff) | |
download | historical-a995e634c3de4b2dc8fd8873fad3d28b48afee8b.tar.gz historical-a995e634c3de4b2dc8fd8873fad3d28b48afee8b.tar.bz2 historical-a995e634c3de4b2dc8fd8873fad3d28b48afee8b.zip |
new version with completely new ebuild, but without init and other additional scripts
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'media-video/vdr')
-rw-r--r-- | media-video/vdr/ChangeLog | 10 | ||||
-rw-r--r-- | media-video/vdr/Manifest | 10 | ||||
-rw-r--r-- | media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps-lnb-sharing.diff | 208 | ||||
-rw-r--r-- | media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps.diff | 206 | ||||
-rw-r--r-- | media-video/vdr/files/digest-vdr-1.3.27 | 5 | ||||
-rw-r--r-- | media-video/vdr/vdr-1.3.27.ebuild | 149 |
6 files changed, 584 insertions, 4 deletions
diff --git a/media-video/vdr/ChangeLog b/media-video/vdr/ChangeLog index 3574d9ae0b4a..eb3f26b028e5 100644 --- a/media-video/vdr/ChangeLog +++ b/media-video/vdr/ChangeLog @@ -1,6 +1,14 @@ # 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.13 2005/05/21 15:14:23 blubb Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/vdr/ChangeLog,v 1.14 2005/07/23 16:50:22 zzam Exp $ + +*vdr-1.3.27 (23 Jul 2005) + + 23 Jul 2005; Matthias Schwarzott <zzam@gentoo.org> + +files/1.3.27/vdr-1.3.27-SourceCaps.diff, + +files/1.3.27/vdr-1.3.27-SourceCaps-lnb-sharing.diff, +vdr-1.3.27.ebuild: + new version with completely new ebuild, but without init and other + additional scripts 21 May 2005; Simon Stelling <blubb@gentoo.org> vdr-1.2.6-r1.ebuild: added ~amd64 keyword diff --git a/media-video/vdr/Manifest b/media-video/vdr/Manifest index efc1b266e924..7595f7c9abfd 100644 --- a/media-video/vdr/Manifest +++ b/media-video/vdr/Manifest @@ -1,6 +1,10 @@ -MD5 d6a2540d361f0388086fc8bbb71ffc00 ChangeLog 1704 -MD5 9ef4af14dad87b03fde8e43f19e08d26 metadata.xml 225 MD5 ed73745f0560d6fcecae19dfd61babe0 vdr-1.2.6-r1.ebuild 1404 +MD5 30b075c869af39290b85446619b472b1 vdr-1.3.27.ebuild 3700 +MD5 b3a1567f02f675cab5989b04ca6ffaf7 ChangeLog 1994 +MD5 9ef4af14dad87b03fde8e43f19e08d26 metadata.xml 225 +MD5 aa18122fb081cdc19d419d53ad1f63de files/vdr-1.2.6_CAN-2005-0071.patch 893 +MD5 4e0e788481ae4a07c9260bcdbaab3465 files/digest-vdr-1.3.27 370 MD5 5df3de1f888e3fc8f8ba27623a19f40b files/digest-vdr-1.2.6-r1 62 MD5 aa8d0f66c8831be73c049584d6143c8b files/vdr-1.2.6-gentoo.diff 1995 -MD5 aa18122fb081cdc19d419d53ad1f63de files/vdr-1.2.6_CAN-2005-0071.patch 893 +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 diff --git a/media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps-lnb-sharing.diff b/media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps-lnb-sharing.diff new file mode 100644 index 000000000000..f9c011352b6d --- /dev/null +++ b/media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps-lnb-sharing.diff @@ -0,0 +1,208 @@ +diff -u vdr-1.3.27-before/config.c vdr-1.3.27/config.c +--- vdr-1.3.27-before/config.c 2005-06-28 23:45:26.000000000 +0200 ++++ vdr-1.3.27/config.c 2005-06-28 23:50:08.000000000 +0200 +@@ -14,6 +14,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 +@@ -299,6 +300,7 @@ + MultiSpeedMode = 0; + ShowReplayMode = 0; + ResumeID = 0; ++ memset(SourceCaps, 0, sizeof(SourceCaps)); + CurrentChannel = -1; + CurrentVolume = MAXVOLUME; + CurrentDolby = 0; +@@ -370,6 +372,54 @@ + return false; + } + ++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) ++{ ++ bool erg = true; ++ char *p; ++ int d = strtol(Value, &p, 10), i = 0; ++ d--; ++ while(p<Value+strlen(Value)) ++ { ++ if(*p==0) return erg; ++ if(isblank(*p)) ++p; ++ if(isalpha(*p)) ++ { ++ int source = cSource::FromString(p); ++ if(source != cSource::stNone) ++ SourceCaps[d][i++] = source; ++ else ++ return false; ++ //printf("SourceCaps[%i][%i] = %i ... p = %s\n", d, i-1, SourceCaps[d][i-1], p); ++ while(!isblank(*p) && *p) ++ ++p; ++ if(i>MAXSOURCECAPS) return false; ++ } ++ } ++ return true; ++} ++ + void cSetup::StoreLanguages(const char *Name, int *Values) + { + char buffer[I18nNumLanguages * 4]; +@@ -462,6 +512,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); +@@ -541,6 +592,7 @@ + Store("MultiSpeedMode", MultiSpeedMode); + Store("ShowReplayMode", ShowReplayMode); + Store("ResumeID", ResumeID); ++ StoreSourceCaps("SourceCaps"); + Store("CurrentChannel", CurrentChannel); + Store("CurrentVolume", CurrentVolume); + Store("CurrentDolby", CurrentDolby); +diff -u vdr-1.3.27-before/config.h vdr-1.3.27/config.h +--- vdr-1.3.27-before/config.h 2005-06-28 23:45:26.000000000 +0200 ++++ vdr-1.3.27/config.h 2005-06-28 23:50:08.000000000 +0200 +@@ -198,6 +198,8 @@ + private: + void StoreLanguages(const char *Name, int *Values); + bool ParseLanguages(const char *Value, int *Values); ++ void StoreSourceCaps(const char *Name); ++ bool ParseSourceCaps(const char *Value); + bool Parse(const char *Name, 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); +@@ -253,6 +255,7 @@ + int MultiSpeedMode; + int ShowReplayMode; + int ResumeID; ++ int SourceCaps[MAXDEVICES][MAXSOURCECAPS]; + int CurrentChannel; + int CurrentVolume; + int CurrentDolby; +diff -u vdr-1.3.27-before/device.c vdr-1.3.27/device.c +--- vdr-1.3.27-before/device.c 2005-06-28 23:45:26.000000000 +0200 ++++ vdr-1.3.27/device.c 2005-06-28 23:50:08.000000000 +0200 +@@ -187,8 +187,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!"); + } +@@ -430,6 +432,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 -u vdr-1.3.27-before/device.h vdr-1.3.27/device.h +--- vdr-1.3.27-before/device.h 2005-06-28 23:45:26.000000000 +0200 ++++ vdr-1.3.27/device.h 2005-06-28 23:53:14.000000000 +0200 +@@ -23,6 +23,7 @@ + #include "tools.h" + + #define MAXDEVICES 16 // the maximum number of devices in the system ++#define MAXSOURCECAPS 128 // the maximum number of different sources per device + #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device + #define MAXRECEIVERS 16 // the maximum number of receivers per device + #define MAXVOLUME 255 +@@ -127,7 +128,10 @@ + ///< 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. ++ ///< By default the SourceCaps of all devices are set. ++ + //ML + private: + char LNBstate; // Frequenzband und Polarisation des DVB-Empfängers +@@ -152,6 +156,8 @@ + static int nextCardIndex; + int cardIndex; + protected: ++ int sourceCaps[MAXSOURCECAPS]; ++protected: + cDevice(void); + virtual ~cDevice(); + static int NextCardIndex(int n = 0); +diff -u vdr-1.3.27-before/dvbdevice.c vdr-1.3.27/dvbdevice.c +--- vdr-1.3.27-before/dvbdevice.c 2005-06-28 23:45:26.000000000 +0200 ++++ vdr-1.3.27/dvbdevice.c 2005-06-28 23:50:08.000000000 +0200 +@@ -772,9 +772,16 @@ + bool cDvbDevice::ProvidesSource(int Source) const + { + int type = Source & cSource::st_Mask; ++ if(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; + } + +diff -u vdr-1.3.27-before/sources.c vdr-1.3.27/sources.c +--- vdr-1.3.27-before/sources.c 2005-06-28 23:45:26.000000000 +0200 ++++ vdr-1.3.27/sources.c 2005-06-28 23:50:08.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.27/vdr-1.3.27-SourceCaps.diff b/media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps.diff new file mode 100644 index 000000000000..a7f5b9c01d59 --- /dev/null +++ b/media-video/vdr/files/1.3.27/vdr-1.3.27-SourceCaps.diff @@ -0,0 +1,206 @@ +diff -Nur vdr-1.3.21/config.c vdr-1.3.21-SC/config.c +--- vdr-1.3.21/config.c 2005-02-05 11:43:04.000000000 +0100 ++++ vdr-1.3.21-SC/config.c 2005-02-16 00:29:02.631359088 +0100 +@@ -14,6 +14,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 +@@ -297,6 +298,7 @@ + MultiSpeedMode = 0; + ShowReplayMode = 0; + ResumeID = 0; ++ memset(SourceCaps, 0, sizeof(SourceCaps)); + CurrentChannel = -1; + CurrentVolume = MAXVOLUME; + CurrentDolby = 0; +@@ -363,6 +365,54 @@ + return false; + } + ++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) ++{ ++ bool erg = true; ++ char *p; ++ int d = strtol(Value, &p, 10), i = 0; ++ d--; ++ while(p<Value+strlen(Value)) ++ { ++ if(*p==0) return erg; ++ if(isblank(*p)) ++p; ++ if(isalpha(*p)) ++ { ++ int source = cSource::FromString(p); ++ if(source != cSource::stNone) ++ SourceCaps[d][i++] = source; ++ else ++ return false; ++ //printf("SourceCaps[%i][%i] = %i ... p = %s\n", d, i-1, SourceCaps[d][i-1], p); ++ while(!isblank(*p) && *p) ++ ++p; ++ if(i>MAXSOURCECAPS) return false; ++ } ++ } ++ return true; ++} ++ + void cSetup::StoreLanguages(const char *Name, int *Values) + { + char buffer[I18nNumLanguages * 4]; +@@ -453,6 +503,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); +@@ -516,6 +567,7 @@ + Store("MultiSpeedMode", MultiSpeedMode); + Store("ShowReplayMode", ShowReplayMode); + Store("ResumeID", ResumeID); ++ StoreSourceCaps("SourceCaps"); + Store("CurrentChannel", CurrentChannel); + Store("CurrentVolume", CurrentVolume); + Store("CurrentDolby", CurrentDolby); +diff -Nur vdr-1.3.21/config.h vdr-1.3.21-SC/config.h +--- vdr-1.3.21/config.h 2005-02-08 12:22:14.000000000 +0100 ++++ vdr-1.3.21-SC/config.h 2005-02-16 00:29:02.634358632 +0100 +@@ -198,6 +198,8 @@ + private: + void StoreLanguages(const char *Name, int *Values); + bool ParseLanguages(const char *Value, int *Values); ++ void StoreSourceCaps(const char *Name); ++ bool ParseSourceCaps(const char *Value); + bool Parse(const char *Name, 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); +@@ -251,6 +253,7 @@ + int MultiSpeedMode; + int ShowReplayMode; + int ResumeID; ++ int SourceCaps[MAXDEVICES][MAXSOURCECAPS]; + int CurrentChannel; + int CurrentVolume; + int CurrentDolby; +diff -Nur vdr-1.3.21/device.c vdr-1.3.21-SC/device.c +--- vdr-1.3.21/device.c 2005-02-13 10:51:48.000000000 +0100 ++++ vdr-1.3.21-SC/device.c 2005-02-16 00:29:02.639357872 +0100 +@@ -175,8 +175,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 -Nur vdr-1.3.21/device.h vdr-1.3.21-SC/device.h +--- vdr-1.3.21/device.h 2005-02-06 12:43:04.000000000 +0100 ++++ vdr-1.3.21-SC/device.h 2005-02-16 00:29:02.644357112 +0100 +@@ -22,6 +22,7 @@ + #include "tools.h" + + #define MAXDEVICES 16 // the maximum number of devices in the system ++#define MAXSOURCECAPS 128 // the maximum number of different sources per device + #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device + #define MAXRECEIVERS 16 // the maximum number of receivers per device + #define MAXVOLUME 255 +@@ -122,6 +123,9 @@ + ///< 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. ++ ///< By default the SourceCaps of all devices are set. + static void Shutdown(void); + ///< Closes down all devices. + ///< Must be called at the end of the program. +@@ -129,6 +133,8 @@ + static int nextCardIndex; + int cardIndex; + protected: ++ int sourceCaps[MAXSOURCECAPS]; ++protected: + cDevice(void); + virtual ~cDevice(); + static int NextCardIndex(int n = 0); +diff -Nur vdr-1.3.21/dvbdevice.c vdr-1.3.21-SC/dvbdevice.c +--- vdr-1.3.21/dvbdevice.c 2005-02-13 15:26:37.000000000 +0100 ++++ vdr-1.3.21-SC/dvbdevice.c 2005-02-16 00:29:02.647356656 +0100 +@@ -707,9 +707,16 @@ + bool cDvbDevice::ProvidesSource(int Source) const + { + int type = Source & cSource::st_Mask; ++ if(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; + return true; + } +diff -Nur vdr-1.3.21/sources.c vdr-1.3.21-SC/sources.c +--- vdr-1.3.21/sources.c 2004-12-26 12:58:52.000000000 +0100 ++++ vdr-1.3.21-SC/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.27 b/media-video/vdr/files/digest-vdr-1.3.27 new file mode 100644 index 000000000000..420ef938cfbc --- /dev/null +++ b/media-video/vdr/files/digest-vdr-1.3.27 @@ -0,0 +1,5 @@ +MD5 071534050dcf4018ee71bbb51bf1dd72 vdr-1.3.27.tar.bz2 491983 +MD5 accced96061d71b6eb33448428cbd633 BETA-configurableLNBshare-VDR_1.3.26.patch 17651 +MD5 969fb761f3dd0d83b637877f3818f70f vdr-1.3.27-enAIO-2.4.diff.gz 9821 +MD5 09c24560792a3a0e99433ddc7da59241 vdr-1.3.27-bigpatch-test4.diff.bz2 68563 +MD5 08f1340e9dc3c5078f334d19ca223bff vdr-jumpplay-0.6-1.3.24.diff 18680 diff --git a/media-video/vdr/vdr-1.3.27.ebuild b/media-video/vdr/vdr-1.3.27.ebuild new file mode 100644 index 000000000000..9009fe56ee9b --- /dev/null +++ b/media-video/vdr/vdr-1.3.27.ebuild @@ -0,0 +1,149 @@ +# 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.27.ebuild,v 1.1 2005/07/23 16:50:22 zzam Exp $ + +inherit eutils + +IUSE="lirc vfat rcu + lnbsharing sourcecaps aio bigpatch jumpplay" + +# Names of patches +FNAME_AIO="vdr-1.3.27-enAIO-2.4.diff" +FNAME_BIGPATCH="vdr-1.3.27-bigpatch-test4.diff" +FNAME_JUMPPLAY="vdr-jumpplay-0.6-1.3.24.diff" +FNAME_LNBSHARING="BETA-configurableLNBshare-VDR_1.3.26.patch" +FNAME_SOURCECAPS_NORMAL="vdr-1.3.27-SourceCaps.diff" +FNAME_SOURCECAPS_LNBSHARING="vdr-1.3.27-SourceCaps-lnb-sharing.diff" + +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/1.3.27/BETA/${FNAME_BIGPATCH}.bz2 ) + jumpplay? ( http://www.toms-cafe.de/vdr/download/${FNAME_JUMPPLAY} )" + +KEYWORDS="~x86" +SLOT="0" +LICENSE="GPL-2" + + +RDEPEND="media-libs/jpeg + lirc? ( app-misc/lirc ) + dev-lang/perl" + +DEPEND="${RDEPEND} + || ( + >=sys-kernel/linux-headers-2.6.11-r2 + media-tv/linuxtv-dvb + ) + sys-apps/gawk" + +# Relevant Pathes for vdr on gentoo +DVBDIR=/usr/include +VDRDIR=/usr/include/vdr +PLUGINDIR=/usr/lib/vdr/plugins +CONFDIR=/etc/vdr + +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 = ${DVBDIR} + PLUGINLIBDIR = ${PLUGINDIR} + CONFIGDIR = ${CONFDIR} + + 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 "../${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" +} + +src_install() { + exeinto /usr/bin + doexe vdr + doexe svdrpsend.pl + + insinto /usr/include/vdr + doins *.h + doins Make.config + + insinto /etc/vdr + doins *.conf channels.conf.* + + doman vdr.1 vdr.5 +} + +pkg_postinst() { + einfo "Up to now this ebuild does not contain any scripts needed for use" + einfo "of vdr as a STB (no scripts for init, shutdown, automatic wakeup, ...)." +} |