rpms/vdr/devel vdr-1.4.1-dumpable.patch, NONE, 1.1 vdr-1.4.1-paths.patch, NONE, 1.1 vdr-1.4.3-1.diff, NONE, 1.1 vdr-README.package, NONE, 1.1 vdr-channel+epg.patch, NONE, 1.1 vdr-commands.conf, NONE, 1.1 vdr-config.sh, NONE, 1.1 vdr-reccmds.conf, NONE, 1.1 vdr-runvdr.sh, NONE, 1.1 vdr-skincurses.conf, NONE, 1.1 vdr-sky.conf, NONE, 1.1 vdr-udev.rules, NONE, 1.1 vdr.consoleperms, NONE, 1.1 vdr.init, NONE, 1.1 vdr.spec, NONE, 1.1 vdr.sysconfig, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2

Ville Skytta (scop) fedora-extras-commits at redhat.com
Mon Oct 16 18:51:05 UTC 2006


Author: scop

Update of /cvs/extras/rpms/vdr/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv20714/devel

Modified Files:
	.cvsignore sources 
Added Files:
	vdr-1.4.1-dumpable.patch vdr-1.4.1-paths.patch 
	vdr-1.4.3-1.diff vdr-README.package vdr-channel+epg.patch 
	vdr-commands.conf vdr-config.sh vdr-reccmds.conf vdr-runvdr.sh 
	vdr-skincurses.conf vdr-sky.conf vdr-udev.rules 
	vdr.consoleperms vdr.init vdr.spec vdr.sysconfig 
Log Message:
auto-import vdr-1.4.3-3 on branch devel from vdr-1.4.3-3.src.rpm
Initial import (#190343).

vdr-1.4.1-dumpable.patch:

--- NEW FILE vdr-1.4.1-dumpable.patch ---
--- vdr-1.4.1/vdr.c~	2006-06-04 12:04:47.000000000 +0300
+++ vdr-1.4.1/vdr.c	2006-07-16 18:15:11.000000000 +0300
@@ -102,9 +102,9 @@
         fprintf(stderr, "vdr: cannot set user id %u: %s\n", (unsigned int)user->pw_uid, strerror(errno));
         return false;
         }
-     if (prctl(PR_SET_DUMPABLE, 2, 0, 0, 0) < 0) {
+     if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) < 0) {
         fprintf(stderr, "vdr: warning - cannot set dumpable: %s\n", strerror(errno));
-        // always non-fatal, and will not work with kernel < 2.6.13
+        // non-fatal
         }
      }
   return true;

vdr-1.4.1-paths.patch:

--- NEW FILE vdr-1.4.1-paths.patch ---
--- vdr-1.4.1/epg2html.pl.orig	2006-04-17 15:19:08.000000000 +0300
+++ vdr-1.4.1/epg2html.pl	2006-07-01 13:30:16.000000000 +0300
@@ -2,12 +2,12 @@
 
 # A simple EPG to HTML converter
 #
-# Converts the EPG data written by 'vdr' into the file /video/epg.data
+# Converts the EPG data written by 'vdr' into the file __CACHEDIR__/epg.data
 # into a simple HTML programme listing, consisting of one file per channel
 # plus an 'index.htm' file. All output files are written into the current
 # directory.
 #
-# Usage: epg2html.pl < /video/epg.data
+# Usage: epg2html.pl < __CACHEDIR__/epg.data
 #
 # See the main source file 'vdr.c' for copyright information and
 # how to reach the author.
--- vdr-1.4.1/PLUGINS/src/sky/README.orig	2004-02-15 14:39:19.000000000 +0200
+++ vdr-1.4.1/PLUGINS/src/sky/README	2006-07-01 13:32:17.000000000 +0300
@@ -33,7 +33,7 @@
 data for each channel can be found (see below). Copy this file to your
 plugins config directory, in a subdirectory named 'sky', as in
 
-/video/plugins/sky/channels.conf.sky
+__CONFIGDIR__/plugins/sky/channels.conf.sky
 
 The Sky EPG is available on the Internet at http://www.bleb.org.
 The Perl script getskyepg.pl extracts the EPG data from these pages
--- vdr-1.4.1/vdr.c.orig	2006-06-04 12:04:47.000000000 +0300
+++ vdr-1.4.1/vdr.c	2006-07-01 13:30:16.000000000 +0300
@@ -379,7 +379,7 @@
                "                           there may be several -D options (default: all DVB\n"
                "                           devices will be used)\n"
                "  -E FILE,  --epgfile=FILE write the EPG data into the given FILE (default is\n"
-               "                           '%s' in the video directory)\n"
+               "                           __CACHEDIR__/%s)\n"
                "                           '-E-' disables this\n"
                "                           if FILE is a directory, the default EPG file will be\n"
                "                           created in that directory\n"
@@ -549,7 +549,7 @@
         EpgDataFileName = DEFAULTEPGDATAFILENAME;
         }
      else if (*EpgDataFileName != '/' && *EpgDataFileName != '.')
-        EpgDirectory = VideoDirectory;
+        EpgDirectory = "__CACHEDIR__";
      if (EpgDirectory)
         cSchedules::SetEpgDataFileName(AddDirectory(EpgDirectory, EpgDataFileName));
      else
--- vdr-1.4.1/newplugin.orig	2006-04-24 20:18:41.000000000 +0300
+++ vdr-1.4.1/newplugin	2006-07-01 13:30:16.000000000 +0300
@@ -24,7 +24,7 @@
 $PLUGIN_DESCRIPTION = "Enter description for '$PLUGIN_NAME' plugin";
 $PLUGIN_MAINENTRY = $PLUGIN_CLASS;
 
-$PLUGINS_SRC = "PLUGINS/src";
+$PLUGINS_SRC = ".";
 
 $README = qq
 {This is a "plugin" for the Video Disk Recorder (VDR).
--- vdr-1.4.1/vdr.1.orig	2006-04-30 11:55:12.000000000 +0300
+++ vdr-1.4.1/vdr.1	2006-07-01 13:30:16.000000000 +0300
@@ -45,7 +45,7 @@
 .TP
 .BI \-c\  dir ,\ \-\-config= dir
 Read config files from directory \fIdir\fR
-(default is to read them from the video directory).
+(default is to read them from __CONFIGDIR__).
 .TP
 .B \-d, \-\-daemon
 Run in daemon mode (implies \-\-no\-kbd).
@@ -56,7 +56,7 @@
 .TP
 .BI \-E\  file ,\ \-\-epgfile= file
 Write the EPG data into the given \fIfile\fR
-(default is \fI/video/epg.data\fR).
+(default is \fI__CACHEDIR__/epg.data\fR).
 Use \fB\-E\-\fR to disable this.
 If \fIfile\fR is a directory, the file \fIepg.data\fR
 will be created in that directory.
@@ -80,7 +80,7 @@
 LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7).
 .TP
 .BI \-L\  dir ,\ \-\-lib= dir
-Search for plugins in directory \fIdir\fR (default is ./PLUGINS/lib).
+Search for plugins in directory \fIdir\fR (default is __PLUGINDIR__).
 There can be several \fB\-L\fR options with different \fIdir\fR values.
 Each of them will apply to the \fB\-P\fR options following it.
 .TP
@@ -139,7 +139,7 @@
 .TP
 .BI \-v\  dir ,\ \-\-video= dir
 Use \fIdir\fR as video directory.
-The default is \fI/video\fR.
+The default is \fI__VIDEODIR__\fR.
 .TP
 .B \-V, \-\-version
 Print version information and exit.

vdr-1.4.3-1.diff:

--- NEW FILE vdr-1.4.3-1.diff ---
diff -ruN vdr-1.4.3/CONTRIBUTORS vdr-1.4.3-1/CONTRIBUTORS
--- vdr-1.4.3/CONTRIBUTORS	2006-09-16 14:14:06.000000000 +0200
+++ vdr-1.4.3-1/CONTRIBUTORS	2006-10-07 15:59:21.000000000 +0200
@@ -1468,6 +1468,8 @@
  for reporting a problem with cPlugin::ConfigDirectory() in case a plugin calls it
  from a separate thread
  for reporting that an assignment in svdrp.c didn't use the cTimer::operator=())
+ for suggesting that the function cThread::Cancel() should only set 'running' to
+ false and not actually kill the thread if the special value -1 is given
 
 Sven Kreiensen <svenk at kammer.uni-hannover.de>
  for his help in keeping 'channels.conf.terr' up to date
@@ -1821,6 +1823,8 @@
  the Makefile to avoid a crash in case a new version is installed on a running system
  for fixing handling video directory updates in case the timestamp of the .update
  file is in the future
+ for fixing handling video directory updates in case an other process has touched the
+ .update file after the last NeedsUpdate() check
 
 Marcel Schaeben <mts280 at gmx.de>
  for his "Easy Input" patch
@@ -2003,3 +2007,11 @@
 
 Martin Ostermann <martin at familie-ostermann.de>
  for fixing processing the PDCDescriptor in 'libsi' on big endian systems
+
+Boguslaw Juza <bogdan at uci.agh.edu.pl>
+ for reporting that there are stations that use blanks in the language codes
+ for reporting that events without an ExtendedEventDescriptor may get duplicate
+ information in their ShortText through the EPG bugfixes in case they are received
+ again
+ for reporting a problem with language codes of recorded audio tracks on channels with
+ multiple tracks
diff -ruN vdr-1.4.3/HISTORY vdr-1.4.3-1/HISTORY
--- vdr-1.4.3/HISTORY	2006-09-23 15:57:19.000000000 +0200
+++ vdr-1.4.3-1/HISTORY	2006-10-08 13:28:15.000000000 +0200
@@ -4930,3 +4930,23 @@
 2006-09-23: Version 1.4.3
 
 - Official release.
+
+2006-10-08: Version 1.4.3-1
+
+- The function cThread::Cancel() now only sets 'running' to false and does not
+  actually kill the thread if the special value -1 is given (suggested by Udo Richter).
+- Changed the I18nNormalizeLanguageCode() check to also allow blanks (and all other
+  printable characters) in the language codes (thanks to Boguslaw Juza for reporting
+  that there are stations that use blanks in these codes). Blanks are replaced with
+  underlines, so that all parts of VDR that rely on language codes to be one word
+  (without blanks) work as expected.
+- Now clearing an event's Title, ShortText and Description if there is no
+  ShortEventDescriptor or ExtendedEventDescriptor, respectively (thanks to Boguslaw
+  Juza for reporting that events without an ExtendedEventDescriptor may get
+  duplicate information in their ShortText through the EPG bugfixes in case they
+  are received again).
+- Fixed handling video directory updates in case an other process has touched the
+  .update file after the last NeedsUpdate() check (thanks to Petri Hintukainen).
+- Fixed handling language codes and descriptions of recorded audio tracks on channels
+  with multiple tracks where not all of them appear in the event data (reported by
+  Boguslaw Juza).
diff -ruN vdr-1.4.3/config.h vdr-1.4.3-1/config.h
--- vdr-1.4.3/config.h	2006-09-23 15:56:08.000000000 +0200
+++ vdr-1.4.3-1/config.h	2006-09-24 12:09:25.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: config.h 1.271 2006/09/23 13:56:08 kls Exp $
+ * $Id: config.h 1.272 2006/09/24 10:09:25 kls Exp $
  */
 
 #ifndef __CONFIG_H
@@ -21,7 +21,7 @@
 
 // VDR's own version number:
 
-#define VDRVERSION  "1.4.3"
+#define VDRVERSION  "1.4.3-1"
 #define VDRVERSNUM   10403  // Version * 10000 + Major * 100 + Minor
 
 // The plugin API's version number:
diff -ruN vdr-1.4.3/eit.c vdr-1.4.3-1/eit.c
--- vdr-1.4.3/eit.c	2006-08-05 12:01:21.000000000 +0200
+++ vdr-1.4.3-1/eit.c	2006-10-07 14:32:24.000000000 +0200
@@ -8,7 +8,7 @@
  * Robert Schneider <Robert.Schneider at web.de> and Rolf Hakenes <hakenes at hippomi.de>.
  * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg at gmx.de>.
  *
- * $Id: eit.c 1.120 2006/08/05 10:01:21 kls Exp $
+ * $Id: eit.c 1.121 2006/10/07 12:32:24 kls Exp $
  */
 
 #include "eit.h"
@@ -234,10 +234,16 @@
             pEvent->SetTitle(ShortEventDescriptor->name.getText(buffer, sizeof(buffer)));
             pEvent->SetShortText(ShortEventDescriptor->text.getText(buffer, sizeof(buffer)));
             }
+         else {
+            pEvent->SetTitle(NULL);
+            pEvent->SetShortText(NULL);
+            }
          if (ExtendedEventDescriptors) {
             char buffer[ExtendedEventDescriptors->getMaximumTextLength(": ") + 1];
             pEvent->SetDescription(ExtendedEventDescriptors->getText(buffer, sizeof(buffer), ": "));
             }
+         else
+            pEvent->SetDescription(NULL);
          }
       delete ExtendedEventDescriptors;
       delete ShortEventDescriptor;
diff -ruN vdr-1.4.3/epg.c vdr-1.4.3-1/epg.c
--- vdr-1.4.3/epg.c	2006-08-05 12:04:17.000000000 +0200
+++ vdr-1.4.3-1/epg.c	2006-10-07 15:47:28.000000000 +0200
@@ -7,7 +7,7 @@
  * Original version (as used in VDR before 1.3.0) written by
  * Robert Schneider <Robert.Schneider at web.de> and Rolf Hakenes <hakenes at hippomi.de>.
  *
- * $Id: epg.c 1.79 2006/08/05 10:04:17 kls Exp $
+ * $Id: epg.c 1.80 2006/10/07 13:47:28 kls Exp $
  */
 
 #include "epg.h"
@@ -87,7 +87,8 @@
 tComponent *cComponents::GetComponent(int Index, uchar Stream, uchar Type)
 {
   for (int i = 0; i < numComponents; i++) {
-      if (components[i].stream == Stream && components[i].type == Type) {
+      // In case of an audio stream the 'type' check actually just distinguishes between "normal" and "Dolby Digital":
+      if (components[i].stream == Stream && (Stream != 2 || (components[i].type < 5) == (Type < 5))) {
          if (!Index--)
             return &components[i];
          }
diff -ruN vdr-1.4.3/epg.h vdr-1.4.3-1/epg.h
--- vdr-1.4.3/epg.h	2006-03-25 13:39:39.000000000 +0100
+++ vdr-1.4.3-1/epg.h	2006-10-07 15:47:19.000000000 +0200
@@ -7,7 +7,7 @@
  * Original version (as used in VDR before 1.3.0) written by
  * Robert Schneider <Robert.Schneider at web.de> and Rolf Hakenes <hakenes at hippomi.de>.
  *
- * $Id: epg.h 1.34 2006/03/25 12:39:39 kls Exp $
+ * $Id: epg.h 1.35 2006/10/07 13:47:19 kls Exp $
  */
 
 #ifndef __EPG_H
@@ -43,6 +43,7 @@
   void SetComponent(int Index, uchar Stream, uchar Type, const char *Language, const char *Description);
   tComponent *Component(int Index) const { return (Index < numComponents) ? &components[Index] : NULL; }
   tComponent *GetComponent(int Index, uchar Stream, uchar Type); // Gets the Index'th component of Stream and Type, skipping other components
+                                                                 // In case of an audio stream the 'type' check actually just distinguishes between "normal" and "Dolby Digital"
   };
 
 class cSchedule;
diff -ruN vdr-1.4.3/i18n.c vdr-1.4.3-1/i18n.c
--- vdr-1.4.3/i18n.c	2006-09-16 11:08:30.000000000 +0200
+++ vdr-1.4.3-1/i18n.c	2006-10-08 10:50:30.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: i18n.c 1.282 2006/09/16 09:08:30 kls Exp $
+ * $Id: i18n.c 1.284 2006/10/08 08:50:30 kls Exp $
  *
  * Translations provided by:
  *
@@ -6243,12 +6243,31 @@
 
 const char *I18nNormalizeLanguageCode(const char *Code)
 {
-  if (Code[0] && !isalnum(Code[0]) || Code[1] && !isalnum(Code[1]) || Code[2] && !isalnum(Code[2])) {
-     // ISO 639 language codes are defined as alphabetical characters, but digits are apparently
-     // also used, for instance for "2ch"
-     //dsyslog("invalid language code: '%s'", Code);
-     return "???";
-     }
+  for (int i = 0; i < 3; i++) {
+      if (Code[i]) {
+         // ETSI EN 300 468 defines language codes as consisting of three letters
+         // according to ISO 639-2. This means that they are supposed to always consist
+         // of exactly three letters in the range a-z - no digits, UTF-8 or other
+         // funny characters. However, some broadcasters apparently don't have a
+         // copy of the DVB standard (or they do, but are perhaps unable to read it),
+         // so they put all sorts of non-standard stuff into the language codes,
+         // like nonsense as "2ch" or "A 1" (yes, they even go as far as using
+         // blanks!). Such things should go into the description of the EPG event's
+         // ComponentDescriptor.
+         // So, as a workaround for this broadcaster stupidity, let's ignore
+         // language codes with unprintable characters...
+         if (!isprint(Code[i])) {
+            //dsyslog("invalid language code: '%s'", Code);
+            return "???";
+            }
+         // ...and replace blanks with underlines (ok, this breaks the 'const'
+         // of the Code parameter - but hey, it's them who started this):
+         if (Code[i] == ' ')
+            *((char *)&Code[i]) = '_';
+         }
+      else
+         break;
+      }
   int n = I18nLanguageIndex(Code);
   return n >= 0 ? I18nLanguageCode(n) : Code;
 }
diff -ruN vdr-1.4.3/recording.c vdr-1.4.3-1/recording.c
--- vdr-1.4.3/recording.c	2006-09-16 14:12:34.000000000 +0200
+++ vdr-1.4.3-1/recording.c	2006-10-07 14:46:22.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: recording.c 1.150 2006/09/16 12:12:34 kls Exp $
+ * $Id: recording.c 1.151 2006/10/07 12:46:22 kls Exp $
  */
 
 #include "recording.h"
@@ -941,8 +941,10 @@
 
 void cRecordings::TouchUpdate(void)
 {
+  bool needsUpdate = NeedsUpdate();
   TouchFile(UpdateFileName());
-  lastUpdate = time(NULL); // make sure we don't tigger ourselves
+  if (!needsUpdate)
+     lastUpdate = time(NULL); // make sure we don't tigger ourselves
 }
 
 bool cRecordings::NeedsUpdate(void)
diff -ruN vdr-1.4.3/thread.c vdr-1.4.3-1/thread.c
--- vdr-1.4.3/thread.c	2006-08-20 12:20:44.000000000 +0200
+++ vdr-1.4.3-1/thread.c	2006-09-24 14:54:47.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: thread.c 1.57 2006/08/20 10:20:44 kls Exp $
+ * $Id: thread.c 1.58 2006/09/24 12:54:47 kls Exp $
  */
 
 #include "thread.h"
@@ -293,7 +293,7 @@
 void cThread::Cancel(int WaitSeconds)
 {
   running = false;
-  if (active) {
+  if (active && WaitSeconds > -1) {
      if (WaitSeconds > 0) {
         for (time_t t0 = time(NULL) + WaitSeconds; time(NULL) < t0; ) {
             if (!Active())
diff -ruN vdr-1.4.3/thread.h vdr-1.4.3-1/thread.h
--- vdr-1.4.3/thread.h	2006-01-08 12:40:23.000000000 +0100
+++ vdr-1.4.3-1/thread.h	2006-09-24 12:10:37.000000000 +0200
@@ -4,7 +4,7 @@
  * See the main source file 'vdr.c' for copyright information and
  * how to reach the author.
  *
- * $Id: thread.h 1.36 2006/01/08 11:40:23 kls Exp $
+ * $Id: thread.h 1.37 2006/09/24 10:10:37 kls Exp $
  */
 
 #ifndef __THREAD_H
@@ -103,6 +103,8 @@
        ///< the Action() loop can finish in an orderly fashion and then waiting
        ///< up to WaitSeconds seconds for the thread to actually end. If the
        ///< thread doesn't end by itself, it is killed.
+       ///< If WaitSeconds is -1, only 'running' is set to false and Cancel()
+       ///< returns immediately, without killing the thread.
 public:
   cThread(const char *Description = NULL);
        ///< Creates a new thread.


--- NEW FILE vdr-README.package ---
This file describes various things about the VDR contained in this
package.

Installation layout
-------------------

As usual, "rpm -ql vdr" should give a fairly good picture where things
are installed.  The goal in this package is to make file locations be
natural to people who are used to packaged software, which causes
quite a bit of deviation from the upstream layout as of 1.4.x.  Also,
as usual, "rpm -qc vdr" lists configuration files.

Configuration
-------------

First, refer to "man 5 vdr" for general upstream VDR configuration
stuff.  Then, have a look at /etc/sysconfig/vdr.  The file is fairly
well documented, and among other things, is where one should specify
command line options to VDR itself.  The standard "vdr" init script
invokes /usr/sbin/runvdr, which reads /etc/sysconfig/vdr.

The init script and the runner load per-plugin configuration files
from the /etc/sysconfig/vdr-plugins.d directory for each found plugin.
Those files are sourced shell (bash) scripts, named like
<pluginname>.conf (so eg. for plugin libvdr-foo.*,
/etc/sysconfig/vdr-plugins.d/foo.conf is loaded).  Configure command
line options for each plugin in their respective config snippets, in
the PLUGIN_OPTIONS environment variable.

Additional plugins
------------------

While there's a bunch of pre-packaged plugins available, not
everything obviously is.  The plugin rpm specfiles are pretty simple
and very close to each other, so it is recommended to use them as
examples and roll packages of extra plugins.

If you wish to compile unpackaged local plugins, first make sure that
the vdr-devel package is installed.  Then, edit the plugin's Makefile
in the dir you extracted it into, changing VDRDIR to /usr/lib/vdr, or
/usr/lib64/vdr if you have a 64-bit system.  That's about it, the rest
should be set up automatically.  "make all" (or "make all
VDRDIR=/usr/lib*/vdr" if you don't want to edit the Makefile) in the
same dir will usually build the plugin and try to copy it into VDR's
plugin directory.  You'll probably need root access for the copy to
succeed.

If the plugin needs command line options, add them to
/etc/sysconfig/vdr-plugins.d/<pluginname>.conf into PLUGIN_OPTIONS
(see previous chapter).

vdr-channel+epg.patch:

--- NEW FILE vdr-channel+epg.patch ---
--- vdr-1.3.15/menu.c.old	2004-11-19 20:54:29.000000000 +0100
+++ vdr-1.3.15/menu.c	2004-11-19 20:58:47.000000000 +0100
@@ -368,11 +368,21 @@
 void cMenuChannelItem::Set(void)
 {
   char *buffer = NULL;
+  const cEvent *Event = NULL;
   if (!channel->GroupSep()) {
+     cSchedulesLock SchedulesLock;
+     const cSchedules *Schedules = cSchedules::Schedules(SchedulesLock);
+     const cSchedule *Schedule = Schedules->GetSchedule(channel->GetChannelID());
+     if (Schedule) {
+       Event = Schedule->GetPresentEvent();
+     }
+
      if (sortMode == csmProvider)
-        asprintf(&buffer, "%d\t%s - %s", channel->Number(), channel->Provider(), channel->Name());
+        asprintf(&buffer, "%d\t%s - %s %c%s%c", channel->Number(), channel->Provider(), channel->Name(),
+			  Event ? '(' : ' ',Event ? Event->Title() : "", Event ? ')' : ' ');
      else
-        asprintf(&buffer, "%d\t%s", channel->Number(), channel->Name());
+        asprintf(&buffer, "%d\t%s %c%s%c", channel->Number(), channel->Name(),
+			  Event ? '(' : ' ',Event ? Event->Title() : "", Event ? ')' : ' ');
      }
   else
      asprintf(&buffer, "---\t%s ----------------------------------------------------------------", channel->Name());


--- NEW FILE vdr-commands.conf ---
# Main menu commands for VDR.  See the vdr(5) manual page.

# To rip audio CD's with abcde, uncomment this.  See /etc/abcde.conf (or the
# -o option) for output format and other settings, and CDDA_TRANSPORT at
# https://bugzilla.redhat.com/166141
#
#Rip audio CD?: cd /srv/audio ; env CDDA_TRANSPORT=cooked abcde -Np


--- NEW FILE vdr-config.sh ---
#!/bin/bash

case "$1" in
    --version)
        pkg-config vdr --modversion
        ;;
    --*dir|--apiversion|--user|--group)
        pkg-config vdr --variable=${1#--}
        ;;
    *)
        echo "Error: unknown option '$1'." >&2
        exit 1
        ;;
esac


--- NEW FILE vdr-reccmds.conf ---
# Recording commands for VDR.  See the vdr(5) manual page.



--- NEW FILE vdr-runvdr.sh ---
#!/bin/bash

# runvdr - VDR launcher
#
# runvdr [VDROPTION]...

VDR=/usr/sbin/vdr
PLUGINDIR=/usr/lib/vdr
PLUGINVER=VDR_PLUGIN_VERSION

prog=$(basename $0)
log()
{
    [ -x /usr/bin/logger ] && \
        /usr/bin/logger -s -pdaemon.info -t"$prog" "$1" || echo "INFO: $1"
}

plugconf()
{
    local plugin="$1" PLUGIN_OPTIONS=
    if [ -e "/etc/sysconfig/vdr-plugins.d/$plugin.conf" ] ; then
        . "/etc/sysconfig/vdr-plugins.d/$plugin.conf"
    fi
    VDR_OPTIONS[${#VDR_OPTIONS[@]}]=-P
    if [ -z "$PLUGIN_OPTIONS" ] ; then
        VDR_OPTIONS[${#VDR_OPTIONS[@]}]="$plugin"
    else
        VDR_OPTIONS[${#VDR_OPTIONS[@]}]="$plugin $PLUGIN_OPTIONS"
    fi
}

build_cmdline()
{
    local file= plugin= p= libsuf=$1
    # Add "priority" plugins.
    if [ -n "$VDR_PLUGIN_ORDER" ] ; then
        for plugin in $VDR_PLUGIN_ORDER ; do
            if [ -e $PLUGINDIR/libvdr-${plugin}.so$libsuf ] ; then
                plugconf $plugin
            fi
        done
    fi
    # Add the rest available.
    for file in $PLUGINDIR/libvdr-*.so$libsuf ; do
        plugin=`basename $file | sed -e 's/^libvdr-\(.*\)\.so.*$/\1/'`
        if [ -n "$VDR_PLUGIN_ORDER" ] ; then
            for p in $VDR_PLUGIN_ORDER ; do
                if [ "$plugin" = "$p" ] ; then
                    # Already added.
                    continue 2
                fi
            done
        fi
        if [ -e "$file" ] ; then
            plugconf "$plugin"
        fi
    done
}

reload_dvb()
{
    modules=$(/sbin/lsmod | grep ^dvb_core | awk '{ print $4 }' | tr , ' ')
    /sbin/modprobe -r $modules dvb_core
    for module in $modules ; do
        /sbin/modprobe $module
    done
}

rc=
while true ; do

    VDR_OPTIONS=()
    if [ -n "$VDR_INIT" ] ; then
        [ -f /etc/sysconfig/vdr ] && . /etc/sysconfig/vdr
        if [ -n "$DAEMON_COREFILE_LIMIT" ] ; then
            ulimit -S -c $DAEMON_COREFILE_LIMIT >/dev/null 2>&1 && cd /tmp
        fi
        build_cmdline ${PLUGINVER:+.$PLUGINVER}
    fi

    $VDR "$@" "${VDR_OPTIONS[@]}"
    rc=$?

    # 137: "kill -KILL" eg in killproc(), others: "man vdr"
    case $rc in
        0|2|137)
            log "VDR exited with status $rc, exiting"
            break
            ;;
        *)
            log "VDR exited with status $rc, attempting restart"
            reload_dvb
            ;;
    esac

done

exit $rc


--- NEW FILE vdr-skincurses.conf ---
# Configuration snippet for vdr-skincurses                           -*- sh -*-
#
# Add command line options to pass to the skincurses plugin to PLUGIN_OPTIONS.

PLUGIN_OPTIONS=""


--- NEW FILE vdr-sky.conf ---
# Configuration snippet for vdr-sky                                  -*- sh -*-
#
# Add command line options to pass to the sky plugin to PLUGIN_OPTIONS.

PLUGIN_OPTIONS=""


--- NEW FILE vdr-udev.rules ---
# VDR friendly udev rules for DVB and other devices

# See also /etc/security/console.perms.d/*-vdr.perms and
# https://bugzilla.redhat.com/202132

# DVB devices
KERNEL=="dvb*", GROUP="VDR_GROUP", MODE="0660"

# Remote controller, serial port 1 (eg. vdr --rcu=/dev/ttyS0):
#KERNEL=="ttyS0", GROUP="VDR_GROUP", MODE="0660"

# Remote controller, /dev/input/event2 (using the remote plugin):
#KERNEL=="event2", GROUP="VDR_GROUP", MODE="0660"

# Example rule for predictable event device name (/dev/input/event-remote;
# reported to work with a Hauppauge Nexus-S, "name" needs to be adjusted to
# match the device name for other remote controllers):
#SUBSYSTEM=="input", SYSFS{../name}=="DVB on-card IR receiver", SYMLINK+="input/event-remote"


--- NEW FILE vdr.consoleperms ---
# VDR friendly permissions and ownerships for various devices.  These take
# effect at boot time as well as on console logins and logouts.  See also
# /etc/udev/rules.d/*-vdr.rules and https://bugzilla.redhat.com/202132

# DVB devices:
<vdrdvb>=/dev/dvb/adapter*/*
<console>  0660 <vdrdvb>     0660 root.VDR_GROUP

# Optical drives; uncomment/adjust if you want to use them with VDR:
#<vdroptical>=/dev/cdrom* /dev/cdrw* /dev/cdwriter* /dev/dvd*
#<console>  0660 <vdroptical> 0660 root.VDR_GROUP

# Remote controller, serial port 1 (eg. vdr --rcu=/dev/ttyS0):
#<vdrremote>=/dev/ttyS0
# Remote controller, /dev/input/event2 (using the remote plugin):
#<vdrremote>=/dev/input/event2
# Remote controller using the example in /etc/udev/rules.d/*-vdr.rules:
#<vdrremote>=/dev/input/event-remote
# Uncomment this if you have any <vdrremote>s above uncommented:
#<console>  0660 <vdrremote>    0660 root.VDR_GROUP


--- NEW FILE vdr.init ---
#!/bin/bash
#
# vdr          Video Disk Recorder
#
# chkconfig:   - 30 70
# description: Video Disk Recorder (VDR) implements a complete digital \
#              set-top-box and video recorder.  It can work with signals \
#              received from satellites (DVB-S) as well as cable (DVB-C) \
#              and terrestrial (DVB-T) signals.  At least one DVB card \
#              is required to run VDR.
# processname: vdr

# Source function library.
. /etc/rc.d/init.d/functions

prog=vdr
runner=/usr/sbin/runvdr

log()
{
    [ -x /usr/bin/logger ] && \
        /usr/bin/logger -s -pdaemon.error -t"$prog" "$1" || echo "$1"
}

checkconf()
{
    cfg=/etc/vdr/channels.conf
    if [ ! -s "$cfg" ] ; then
        failure
        echo
        log $"Error: no valid $cfg found."
        log $"Use \"scandvb -o vdr\" from the dvb-apps package to create one."
        return 6
    else
        chown VDR_USER:VDR_GROUP "$cfg" && chmod 644 "$cfg"
    fi
}

lockfile=/var/lock/subsys/$prog

start() {
    echo -n $"Starting Video Disk Recorder ($prog): "
    checkconf || return $?
    VDR_INIT=1 daemon --check=$prog "$runner >/dev/null 2>&1 &"
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping Video Disk Recorder ($prog): "
    killproc $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

case "$1" in
    start|stop|restart)
        $1
        ;;
    reload|force-reload)
        restart
        ;;
    status)
        status $prog
        ;;
    condrestart|try-restart)
  	[ ! -f $lockfile ] || restart
	;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
        exit 2
esac


--- NEW FILE vdr.spec ---
# TODO, maybe some day:
# - livebuffer patch, http://www.vdr-portal.de/board/thread.php?threadid=37309
# - channelfilter patch, http://www.u32.de/vdr.html#patches
# - UTF-8 patch

%define videodir  /srv/vdr
%define audiodir  /srv/audio
%define plugindir %{_libdir}/vdr
%define configdir %{_sysconfdir}/vdr
%define datadir   %{_datadir}/vdr
%define cachedir  %{_var}/cache/vdr
%define rundir    %{_var}/run/vdr
%define vardir    %{_var}/lib/vdr
%define vdr_user  vdr
%define vdr_group video
# From APIVERSION in config.h
%define apiver    1.4.3

Name:           vdr
Version:        1.4.3
Release:        3%{?dist}
Summary:        Video Disk Recorder

Group:          Applications/Multimedia
License:        GPL
URL:            http://www.cadsoft.de/vdr/
Source0:        ftp://ftp.cadsoft.de/vdr/%{name}-%{version}.tar.bz2
Source1:        %{name}.init
Source2:        %{name}.sysconfig
Source4:        %{name}-udev.rules
Source5:        %{name}-reccmds.conf
Source6:        %{name}-commands.conf
Source7:        %{name}-runvdr.sh
Source8:        %{name}.consoleperms
Source9:        %{name}-config.sh
Source10:       %{name}-README.package
Source11:       %{name}-skincurses.conf
Source12:       %{name}-sky.conf
Patch0:         %{name}-channel+epg.patch
Patch1:         http://zap.tartarus.org/~ds/debian/dists/unstable/main/source/vdr_1.4.3-1.ds.diff.gz
Patch2:         http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.4.3-liemikuutio-1.13.diff.gz
Patch3:         %{name}-1.4.1-paths.patch
Patch4:         %{name}-1.4.1-dumpable.patch
Patch10:        ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.4.3-1.diff
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  libjpeg-devel
BuildRequires:  libcap-devel
BuildRequires:  pkgconfig
BuildRequires:  perl(File::Spec)
Requires:       udev
Requires(pre):  %{_sbindir}/groupadd
Requires(pre):  %{_sbindir}/useradd
Requires(post): /sbin/chkconfig
Requires(preun): /sbin/chkconfig
Provides:       vdr(abi) = %{apiver}

%description
VDR implements a complete digital set-top-box and video recorder.
It can work with signals received from satellites (DVB-S) as well as
cable (DVB-C) and terrestrial (DVB-T) signals.  At least one DVB card
is required to run VDR.

%package        devel
Summary:        Development files for VDR
Group:          Development/Libraries
Requires:       pkgconfig
Provides:       vdr-devel(api) = %{apiver}

%description    devel
%{summary}.

%package        skincurses
Summary:        Shell window skin plugin for VDR
Group:          Applications/Multimedia
%if 0%{?_with_plugins:1}
BuildRequires:  ncurses-devel
%endif
Requires:       vdr(abi) = %{apiver}

%description    skincurses
The skincurses plugin implements a VDR skin that works in a shell
window, using only plain text output.

%package        sky
Summary:        Sky Digibox plugin for VDR
Group:          Applications/Multimedia
Requires:       vdr(abi) = %{apiver}

%description    sky
The sky plugin implements a new device for VDR, which is based on the
MPEG2 encoder card described at linuxtv.org/mpeg2/kfir.xml.  It allows
you to connect the analog a/v output of your Sky Digibox to VDR, so
that you can enjoy the full recording flexibility of VDR with your Sky
subscription.  You will need a Sky Digibox and a valid subscription in
order to use this plugin.


%prep
%setup -q
%patch0 -p1
%patch1 -p1
#patch -i debian/patches/02_latin-1.dpatch
patch -i debian/patches/02_plugin_missing.dpatch
patch -i debian/patches/02_reload.dpatch
# sort_options would be nice, but it conflicts with channel+epg which is nicer
#patch -i debian/patches/02_sort_options.dpatch
#patch -i debian/patches/03_no-data_timeout.dpatch
#patch -i debian/patches/03_settime_segfault.dpatch
#patch -i debian/patches/04_cmdsubmenu.dpatch
#patch -i debian/patches/05_nissl_dvbplayer.dpatch
#patch -i debian/patches/06_recording_readonly.dpatch
patch -i debian/patches/06_recording_scan_speedup.dpatch
patch -i debian/patches/07_blockify_define.dpatch
#patch -i debian/patches/09_increase_epgscan_timeout.dpatch
patch -i debian/patches/10_livelock.dpatch
patch -i debian/patches/11_atsc.dpatch
echo "DEFINES += -DHAVE_ATSC" >> Makefile
#patch -i debian/patches/12_skinclassic_icons.dpatch
#patch -i debian/patches/15_cut_compensate_start_time.dpatch
patch -i debian/patches/19_debian_osdbase_maxitems.dpatch
#patch -i debian/patches/opt-20_epgsearch.dpatch
#patch -i debian/patches/opt-20_liemikuutio.dpatch
patch -i debian/patches/opt-20_subtitles_0.4.0_ttxtsubs_0.0.5.dpatch
patch -i debian/patches/opt-20_suspend.dpatch
#patch -i debian/patches/opt-20_vdr-timer-info.dpatch
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch10 -p1

# Fix up paths
sed -i -e 's|\b\(ConfigDirectory = \)VideoDirectory;|\1"%{configdir}";|' vdr.c
sed -i \
  -e 's|__CACHEDIR__|%{cachedir}|'   \
  -e 's|__CONFIGDIR__|%{configdir}|' \
  -e 's|__PLUGINDIR__|%{plugindir}|' \
  -e 's|__VIDEODIR__|%{videodir}|'   \
  epg2html.pl vdr.1 vdr.c PLUGINS/src/sky/README

# Fix up man page section
sed -i -e 's/\bvdr\(\s*\)(1)/vdr\1(8)/' HISTORY UPDATE-1.2.0 vdr.5
sed -i -e 's/\bvdr\([\. ]\)1\b/vdr\18/' HISTORY vdr.1

for f in CONTRIBUTORS HISTORY* UPDATE-1.4.0 ; do
  iconv -f iso-8859-1 -t utf-8 -o $f.utf8 $f && mv $f.utf8 $f
done

sed -i -e 's/epg2html.pl/epg2html/' CONTRIBUTORS HISTORY epg2html.pl
sed -i -e 's/svdrpsend.pl/svdrpsend/' HISTORY
sed -i -e 's/getskyepg.pl/getskyepg/' \
  PLUGINS/src/sky/{getskyepg.pl,README,HISTORY}

cp -p %{SOURCE5} reccmds.conf
sed -e 's|/srv/audio|%{audiodir}|' %{SOURCE6} > commands.conf
# Unfortunately these can't have comments in them, so ship 'em empty.
cat /dev/null > channels.conf
cat /dev/null > remote.conf
cat /dev/null > setup.conf
cat /dev/null > timers.conf

install -pm 644 %{SOURCE10} README.package


%build

# Intentionally not using %{version} or %{apiver} here, see %check
vdrver=$(sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$/\1/p' config.h)
apiver=$(sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$/\1/p' config.h)

cat << EOF > vdr.pc
videodir=%{videodir}
audiodir=%{audiodir}
plugindir=%{plugindir}
configdir=%{configdir}
datadir=%{datadir}
cachedir=%{cachedir}
rundir=%{rundir}
vardir=%{vardir}
user=%{vdr_user}
group=%{vdr_group}
apiversion=$apiver

Name: VDR
Description: Video Disk Recorder
Version: $vdrver
EOF

cat << EOF > Make.config
CC           = %{__cc}
CXX          = %{__cxx}

ifeq (\$(RPM_OPT_FLAGS),)
  CFLAGS     = $RPM_OPT_FLAGS
  CXXFLAGS   = $RPM_OPT_FLAGS -Wall -Woverloaded-virtual
else
  CFLAGS     = \$(RPM_OPT_FLAGS)
  CXXFLAGS   = \$(RPM_OPT_FLAGS) -Wall -Woverloaded-virtual
endif
ifdef PLUGIN
  CFLAGS    += -fPIC
  CXXFLAGS  += -fPIC
endif

PLUGINLIBDIR = \$(DESTDIR)\$(shell pkg-config vdr --variable=plugindir)
VIDEODIR     = \$(DESTDIR)\$(shell pkg-config vdr --variable=videodir)
LIBDIR       = \$(PLUGINLIBDIR)

VDR_USER     = %{vdr_user}
EOF

export PKG_CONFIG_PATH=$(pwd)
make %{?_smp_mflags} all include-dir
%if 0%{?_with_plugins:1}
make %{?_smp_mflags} -C PLUGINS/src/skincurses LIBDIR=. all
make %{?_smp_mflags} -C PLUGINS/src/sky        LIBDIR=. all
%endif


%install
rm -rf $RPM_BUILD_ROOT

abs2rel() { perl -MFile::Spec -e 'print File::Spec->abs2rel(@ARGV)' "$@" ; }

install -Dpm 755 vdr $RPM_BUILD_ROOT%{_sbindir}/vdr

install -dm 755 $RPM_BUILD_ROOT%{_bindir}
install -pm 755 svdrpsend.pl $RPM_BUILD_ROOT%{_bindir}/svdrpsend
install -pm 755 epg2html.pl $RPM_BUILD_ROOT%{_bindir}/epg2html

install -Dpm 644 vdr.1 $RPM_BUILD_ROOT%{_mandir}/man8/vdr.8
install -Dpm 644 vdr.5 $RPM_BUILD_ROOT%{_mandir}/man5/vdr.5

install -dm 755 $RPM_BUILD_ROOT%{configdir}/plugins
install -pm 644 *.conf $RPM_BUILD_ROOT%{configdir}

install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d

install -dm 755 $RPM_BUILD_ROOT%{configdir}/themes
touch $RPM_BUILD_ROOT%{configdir}/themes/{classic,sttng}-default.theme

install -Dpm 755 %{SOURCE1} $RPM_BUILD_ROOT%{_initrddir}/vdr
sed -i \
  -e 's|/usr/sbin/|%{_sbindir}/|'  \
  -e 's|/etc/vdr/|%{configdir}/|g' \
  -e 's|VDR_USER|%{vdr_user}|'     \
  -e 's|VDR_GROUP|%{vdr_group}|'   \
  $RPM_BUILD_ROOT%{_initrddir}/vdr

install -pm 755 %{SOURCE7} $RPM_BUILD_ROOT%{_sbindir}/runvdr
sed -i \
  -e 's|/usr/sbin/|%{_sbindir}/|'                    \
  -e 's|/etc/sysconfig/|%{_sysconfdir}/sysconfig/|g' \
  -e 's|/usr/lib/vdr\b|%{plugindir}|'                \
  -e 's|VDR_PLUGIN_VERSION|%{apiver}|'               \
  $RPM_BUILD_ROOT%{_sbindir}/runvdr

install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
sed -e 's|/usr/lib/vdr/|%{plugindir}/|' < %{SOURCE2} \
  > $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr
chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr

install -dm 755 $RPM_BUILD_ROOT%{videodir}
install -dm 755 $RPM_BUILD_ROOT%{audiodir}

install -dm 755 $RPM_BUILD_ROOT%{plugindir}/bin
install -dm 755 $RPM_BUILD_ROOT%{cachedir}
touch $RPM_BUILD_ROOT%{cachedir}/epg.data
install -dm 755 $RPM_BUILD_ROOT%{datadir}/logos
install -dm 755 $RPM_BUILD_ROOT%{rundir}
install -dm 755 $RPM_BUILD_ROOT%{vardir}

install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d
sed -e 's/VDR_GROUP/%{vdr_group}/' < %{SOURCE4} \
  > $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/51-%{name}.rules
chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/*-%{name}.rules

install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/security/console.perms.d
sed -e 's/VDR_GROUP/%{vdr_group}/' < %{SOURCE8} \
  > $RPM_BUILD_ROOT%{_sysconfdir}/security/console.perms.d/95-%{name}.perms
chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/security/console.perms.d/*%{name}.perms

# devel
install -Dpm 644 vdr.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/vdr.pc
install -pm 755 %{SOURCE9} $RPM_BUILD_ROOT%{_bindir}/vdr-config
install -pm 755 newplugin $RPM_BUILD_ROOT%{_bindir}/vdr-newplugin
install -dm 755 $RPM_BUILD_ROOT%{_libdir}/vdr/include/vdr
install -pm 644 Make.config $RPM_BUILD_ROOT%{_libdir}/vdr
ln -s $(abs2rel %{_includedir}/vdr/config.h %{_libdir}/vdr) \
  $RPM_BUILD_ROOT%{_libdir}/vdr
install -dm 755 $RPM_BUILD_ROOT%{_includedir}/{vdr,libsi}
install -pm 644 *.h $RPM_BUILD_ROOT%{_includedir}/vdr
install -pm 644 libsi/*.h $RPM_BUILD_ROOT%{_includedir}/libsi

# plugins
%if 0%{?_with_plugins:1}
install -pm 755 PLUGINS/src/skincurses/libvdr-skincurses.so.%{apiver} \
  $RPM_BUILD_ROOT%{plugindir}
install -pm 644 %{SOURCE11} \
  $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d/skincurses.conf
install -pm 755 PLUGINS/src/sky/libvdr-sky.so.%{apiver} \
  $RPM_BUILD_ROOT%{plugindir}
install -pm 644 %{SOURCE12} \
  $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d/sky.conf
install -pm 755 PLUGINS/src/sky/getskyepg.pl \
  $RPM_BUILD_ROOT%{_bindir}/getskyepg
install -Dpm 644 PLUGINS/src/sky/channels.conf.sky \
  $RPM_BUILD_ROOT%{configdir}/plugins/sky/channels.conf.sky
%endif


%check
export PKG_CONFIG_PATH=$RPM_BUILD_ROOT%{_libdir}/pkgconfig
if [ "$(pkg-config vdr --variable=apiversion)" != "%{apiver}" ] ; then
    echo "ERROR: API version mismatch in vdr.pc / package / config.h" ; exit 1
fi


%clean
rm -rf $RPM_BUILD_ROOT


%pre
%{_sbindir}/groupadd -r video 2>/dev/null || :
%{_sbindir}/useradd -c "Video Disk Recorder" -d %{videodir} \
  -g %{vdr_group} -M -n -r -s /sbin/nologin %{vdr_user} 2>/dev/null || :

%post
/sbin/chkconfig --add vdr

%preun
if [ $1 -eq 0 ] ; then
    %{_initrddir}/vdr stop >/dev/null 2>&1 || :
    /sbin/chkconfig --del vdr
fi

%postun
[ $1 -gt 0 ] && %{_initrddir}/vdr try-restart >/dev/null || :


%files
%defattr(-,root,root,-)
%doc CONTRIBUTORS COPYING HISTORY* MANUAL README* UPDATE-1.[24].0
%config(noreplace) %{_sysconfdir}/sysconfig/vdr
%config(noreplace) %{_sysconfdir}/udev/rules.d/*-%{name}.rules
# Temporarily not noreplace for upgrade from 1.4.1-8 due to #202132
%config %{_sysconfdir}/security/console.perms.d/*-%{name}.perms
%config %{_sysconfdir}/sysconfig/vdr-plugins.d/
%{_initrddir}/vdr
%{_bindir}/epg2html
%{_bindir}/svdrpsend
%{_sbindir}/runvdr
%{_sbindir}/vdr
%dir %{plugindir}/
%dir %{plugindir}/bin/
%{datadir}/
%{_mandir}/man[58]/vdr.[58]*
%defattr(-,%{vdr_user},%{vdr_group},-)
%dir %{rundir}/
%dir %{vardir}/
# TODO: tighten this (root:root ownership to some files/dirs)?
%dir %{configdir}/
%dir %{configdir}/plugins/
%dir %{configdir}/themes/
%ghost %{configdir}/themes/*.theme
%config(noreplace) %{configdir}/*.conf
%dir %{videodir}/
%dir %{audiodir}/
%dir %{cachedir}/
%ghost %{cachedir}/epg.data

%files devel
%defattr(-,root,root,-)
%doc COPYING PLUGINS.html
%{_bindir}/vdr-config
%{_bindir}/vdr-newplugin
%{_includedir}/libsi/
%{_includedir}/vdr/
%{_libdir}/pkgconfig/vdr.pc
%dir %{_libdir}/vdr/
%{_libdir}/vdr/Make.config
%{_libdir}/vdr/config.h

%if 0%{?_with_plugins:1}
%files skincurses
%defattr(-,root,root,-)
%doc PLUGINS/src/skincurses/COPYING PLUGINS/src/skincurses/HISTORY
%doc PLUGINS/src/skincurses/README
%config(noreplace) %{_sysconfdir}/sysconfig/vdr-plugins.d/skincurses.conf
%{plugindir}/libvdr-skincurses.so.%{apiver}

%files sky
%defattr(-,root,root,-)
%doc PLUGINS/src/sky/COPYING PLUGINS/src/sky/HISTORY
%doc PLUGINS/src/sky/README PLUGINS/src/sky/lircd.conf.sky
%{_bindir}/getskyepg
%config(noreplace) %{configdir}/plugins/sky/channels.conf.sky
%config(noreplace) %{_sysconfdir}/sysconfig/vdr-plugins.d/sky.conf
%{plugindir}/libvdr-sky.so.%{apiver}
%endif

%changelog
* Sun Oct 15 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.3-3
- Apply upstream 1.4.3-1 maintenance patch.
- Sync with 1.4.3-1.ds, update liemikuutio patch to 1.13.
- Drop no longer needed README.plugins.d, README.package is enough (#190343).

* Fri Oct 06 2006 Thorsten Leemhuis <fedora [AT] leemhuis [DOT] info> 1.4.3-2
- rebuilt for unwind info generation, broken in gcc-4.1.1-21

* Sat Sep 23 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.3-1
- 1.4.3, 1.4.2-1.ds, liemikuutio 1.12.

* Sun Sep  3 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.2-2
- 1.4.2-1, liemikuutio 1.10.

* Sun Aug 27 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.2-1
- 1.4.2, syscall and maintenance patches applied upstream.

* Mon Aug 21 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-11
- Set device permissions in both console.perms and udev (#202132).
- Implement restart and DVB module reload functionality roughly like
  upstream runvdr does it.

* Fri Aug 18 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-10
- Fix build with recent kernel headers where _syscallX are no longer visible.
- Drop ia64 patch (superseded by the above) and the thread poison patch.

* Fri Aug 11 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-9
- Set device permissions using console.perms instead of udev rules
  to work around new pam trumping udev config (#202132).

* Sun Aug  6 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-8
- Apply upstream 1.4.1-3 maintenance patch.

* Sun Jul 23 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-7
- Apply upstream 1.4.1-2 maintenance patch.
- Use VFAT compatible recording names by default.

* Sun Jul 16 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-6
- Don't use %%bcond_with to appease buildsys.

* Sat Jul 15 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-5
- Update liemikuutio patch to 1.8.
- Patch dumpability to work with PR_SET_DUMPABLE changes in recent kernels,
  add corresponding warning to sysconfig snippet comment.

* Sat Jul  1 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-4
- Update liemikuutio patch to 1.7.
- Conditionally build the skincurses and sky plugins; disabled by default,
  rebuild with "--with plugins" to enable.
- Make symlinks relative.

* Fri Jun 23 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-3
- Move headers to %%{_includedir}.
- Add README.package to docs, describing some aspects of the package (#1063).
- Add LIBDIR to Make.config to ease local plugin builds (#1063).
- Update VDR_PLUGIN_ORDER in sysconfig snippet, loading potential output
  plugins before others.  See commentary in the file for details.
- Add example how to affect OSD time/date formats to sysconfig snippet.

* Sun Jun 18 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-2
- 1.4.1-1 + 1.4.1-1.ds.
- Drop glibc-kernheaders dependency from -devel too.
- Make -devel multilib friendly, add pkgconfig file.

* Sun Jun 11 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.1-1
- 1.4.1, liemikuutio 1.6.

* Mon May 29 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.0-5
- Address some review notes in #190343 comment 2:
- Add example udev rule for predictable remote control device naming.
- Drop glibc-kernheaders build dependency.
- Specfile cleanups.

* Sun May 28 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.0-4
- Apply upstream 1.4.0-2 maintenance patch.

* Sun May 14 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.0-3
- Apply upstream 1.4.0-1 maintenance patch.
- Drop unneeded version check from %%check.

* Mon May  1 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.0-2
- Sync with 1.4.0-1.ds.

* Sun Apr 30 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.4.0-1
- 1.4.0 + 1.3.48-1.ds, re-enable reload patch.

* Sun Apr 23 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.48-1
- 1.3.48, no need to rebuild plugins, woo-hoo!

* Mon Apr 17 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.47-1
- 1.3.47 + the usual patchwork.
- Trim pre-RLO %%changelog entries.
- Add vdr(abi) and vdr-devel(api) versioned Provides for plugin versioning
  and --version and --apiversion to vdr-config, see HISTORY.
- Use sed instead of perl for edits during the build.
- Temporarily disable reload/SIGUSR1 patch.

* Sun Apr  9 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.46-1
- 1.3.46 + the usual patchwork.

* Sun Mar 26 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.45-1
- 1.3.45 + 1.3.44-2.ds + Rofa's mute fix.

* Thu Mar 09 2006 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- switch to new release field

* Sun Mar  5 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.44-0.lvn.2
- Sync with 1.3.44-1.ds, apply Rolf Ahrenberg's readline fix.

* Wed Mar  1 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.44-0.lvn.1
- 1.3.44, include Marko Mäkelä's suspend patch.
- Move runvdr to %%{_sbindir} and make it option-compatible with the
  upstream one.  If VDR_INIT is non-empty in the environment, automatic
  command line building is enabled.  The init script still does that.
  Also makes the init script and runvdr easier to adapt to alternative
  init systems such as initng (#781).

* Tue Feb 28 2006 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- add dist

* Tue Feb 21 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.43-0.lvn.2
- Sync with 1.3.43-1.ds.

* Sun Feb 19 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.43-0.lvn.1
- 1.3.43 + 1.3.42-2.ds + Rolf Ahrenberg's audiotracks patch.
- Drop Reinhard Nißl's dvbplayer patch at least for now.

* Sun Feb  5 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.42-0.lvn.1
- 1.3.42; dumpable, menu-in-replay and constness patches applied upstream.
- Make udev rules work as expected with later udev versions.

* Sun Jan 29 2006 Ville Skyttä <ville.skytta at iki.fi>
- 1.3.41; Finnish, EPG null title and LIRC reconnect patches
  applied/obsoleted upstream.
- Revert back to Udo Richter's more general purpose "menu in replay" patch.

* Sat Jan 28 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.40-0.lvn.3
- Patch LIRC support to try to reconnect if lircd connection is lost.
- Update liemikuutio patch to 1.2.

* Mon Jan 23 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.40-0.lvn.2
- Replace EPG null title crash fix with upstream one.

* Sun Jan 22 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.40-0.lvn.1
- 1.3.40, key macro and SVDRP CLRE crash patches applied upstream.
- Replace menu tweak patch with one from Luca Olivetti.

* Wed Jan 18 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.39-0.lvn.3
- Fix sysconfig stupidity introduced in 0.lvn.2, _only_ DAEMON_COREFILE_LIMIT
  was taken into account :P

* Mon Jan 16 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.39-0.lvn.2
- Apply upstream key macro and SVDRP CLRE crash patches.
- Source sysconfig snippet again in init script (so that eg.
  DAEMON_COREFILE_LIMIT etc works as expected).

* Sun Jan 15 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.39-0.lvn.1
- 1.3.39 + the usual patch shuffling, kudos to Rolf Ahrenberg and Udo
  Richter.

* Wed Jan 11 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.38-0.lvn.4
- Apply upstream menu fix patch.
- Add some comments to sysconfig file.

* Tue Jan 10 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.38-0.lvn.3
- Sync with 1.3.38-2.ds.

* Mon Jan  9 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.38-0.lvn.2
- Sync with 1.3.38-1.ds.
- Remove references to the removed ca.conf from the manpage.

* Sun Jan  8 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.38-0.lvn.1
- 1.3.38, su/capabilities stuff, low disk space crash, CAN-2005-0071,
  audio pids and timed recording deletion patches applied upstream.
- Patch to allow core dumps and startup script simplifications with the
  newly introduced set[ug]id functionality.
- Patch to fix gettid usage (includes).
- enAIO patchset replaced by liemikuutio 1.0.
- Updated Finnish translations.

* Wed Jan  4 2006 Ville Skyttä <ville.skytta at iki.fi> - 1.3.37-0.lvn.3
- Fix syntax error in sysconfig file (#714, Scott Tsai).
- Change built-in default of epg.data location to %%{cachedir}, drop it
  from the sysconfig file and update docs.

* Sat Dec 10 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.37-0.lvn.2
- Apply "low disk space" message crash from Andreas Brachold.
- Apply upstream fix for 2nd audio pid and live DD on encrypted channels.
- Add (commented out) sysconfig and console.perms.d samples for setting and
  retaining VDR-friendly CD/DVD drive permissions.
- Sync with 1.3.37-1.ds.

* Mon Nov 28 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.37-0.lvn.1
- 1.3.37.

* Sat Nov 12 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.36-0.lvn.2
- Default config improvements.
- Sync with 1.3.36-1.ds.

* Sun Nov  6 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.36-0.lvn.1
- 1.3.36, recording end crash fix applied upstream.
- Don't load LIRC unconditionally, pass --lirc by default in sysconfig/vdr.

* Tue Nov  1 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.35-0.lvn.1
- 1.3.35 + Joachim Wilke's recording end crash fix; Finnish, daemon and
  infloop patches applied upstream.

* Sun Oct 16 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.34-0.lvn.2
- Update enAIO patch to 2.7.
- Apply daemon and menu infinite loop patches from Enrico Scholz.

* Fri Oct  7 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.34-0.lvn.1
- 1.3.34 + 1.3.34-1.ds + Rolf Ahrenberg's Finnish i18n fixes.

* Sun Sep 25 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.33-0.lvn.1
- 1.3.33.
- Sync with 1.3.32-1.ds.
- Apply enAIO patch.

* Fri Sep 16 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.32-0.lvn.2
- Fix init script on multilib archs (#596, Jussi Lehtola).

* Sun Sep 11 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.32-0.lvn.1
- 1.3.32, bunch of patches applied upstream.
- Drop main package dependency from -devel.

* Sun Aug 28 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.31-0.lvn.1
- 1.3.31 + upstream warnings fix + Reinhard Nißl's patch bomb.
- Ship plugin creator script in -devel.

* Mon Aug 22 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.30-0.lvn.2
- Don't use stuff from the su/capabilities patch by default, it causes
  problems with getting core dumps if plugins crash.
- Simplify things by splitting stuff from init script to separate launcher.
- Sync with 1.3.30-1.ds, fix a warning in the svdrp grab patch.
- Add audio CD ripping example to commands.conf.

* Sun Aug 21 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.30-0.lvn.1
- 1.3.30, PPC/unaligned patch no longer needed.
- Tune default plugin load order, add muggle.
- Minor init script improvements.

* Wed Aug 17 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.29-0.lvn.2
- Sync with Darren Salt's 1.3.29-1.ds.
- Drop dvbplayer patch; no longer needed for recent recordings.
- Patch/hack (from reiserfsprogs) to fix PPC build (asm/unaligned.h).
- Start up earlier/shut down later by default at boot/shutdown.
- Add vardir for storing non-cache, non-video data; and audiodir for
  audio plugins.

* Mon Aug 15 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.29-0.lvn.1
- 1.3.29, Finnish patch applied upstream.

* Sat Aug 13 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.28-1.lvn.2
- Apply Rolf Ahrenberg's newest Finnish patch.
- Drop historical conflict with an old vdr-dxr3 snapshot.

* Thu Aug 11 2005 Ville Skyttä <ville.skytta at iki.fi> - 1.3.28-1.lvn.1
- Truncate config files in more portable manner during build.


--- NEW FILE vdr.sysconfig ---
# System configuration for VDR                                       -*- sh -*-

# The "master" options.  Some examples of options you may want to set
# here are -r, -s, -t, and --rcu.  See the vdr(8) man page for more info.
#
VDR_OPTIONS=(--lirc --vfat)

# VDR_PLUGIN_ORDER is a space separated list of plugins that should be
# loaded in a specific order.  This affects eg. the order the plugins'
# menu entries are displayed OSD menus by default.  The plugins in this
# list don't need to be installed, but if they are, they will be loaded
# before other possibly installed plugins.  Note that it is recommended
# to load output plugins before others so that all necessary features are
# present when needed by other plugins at startup/shutdown.
#
VDR_PLUGIN_ORDER="
dxr3
softdevice
streamdev-client
xine
xinelibout
tvonscreen
osdteletext
subtitles
osdpip
femon
sudoku
dvd
externalplayer
mplayer
mp3
muggle
burn
"

# I18N settings; VDR doesn't work with UTF-8.
#
. /etc/sysconfig/i18n 2>/dev/null || :
LANG=${LANG%.UTF-8}
LC_ALL=${LC_ALL%.UTF-8}
LC_CTYPE=${LC_CTYPE%.UTF-8}
# LC_TIME affects how dates and times are displayed.
#export LC_TIME=fi_FI

# PATH where to find the internally used executables.
#
PATH="/usr/lib/vdr/bin:$PATH"

# For debugging: allow vdr to dump core.  Note that depending on the operating
# environment, core dumps from setuid processes may be a security issue.
#DAEMON_COREFILE_LIMIT="unlimited"


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/vdr/devel/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	16 Oct 2006 18:48:23 -0000	1.1
+++ .cvsignore	16 Oct 2006 18:50:35 -0000	1.2
@@ -0,0 +1,3 @@
+vdr-1.4.3-liemikuutio-1.13.diff.gz
+vdr-1.4.3.tar.bz2
+vdr_1.4.3-1.ds.diff.gz


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/vdr/devel/sources,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sources	16 Oct 2006 18:48:23 -0000	1.1
+++ sources	16 Oct 2006 18:50:35 -0000	1.2
@@ -0,0 +1,3 @@
+ed95f0e5844816d313edcb7f7231e06a  vdr-1.4.3-liemikuutio-1.13.diff.gz
+9bb82d1f090dad746d784d147dbb0126  vdr-1.4.3.tar.bz2
+a0f1441e534715a190e4507c2f58268f  vdr_1.4.3-1.ds.diff.gz




More information about the scm-commits mailing list