[vdr] Update to 1.7.21. Clean up specfile constructs no longer needed with Fedora or EL6+.
Ville Skyttä
scop at fedoraproject.org
Sun Nov 6 16:30:25 UTC 2011
commit 08a8083c479d865cc0cf56042166d5f65d91d48e
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Sun Nov 6 18:30:10 2011 +0200
Update to 1.7.21.
Clean up specfile constructs no longer needed with Fedora or EL6+.
.gitignore | 21 +--
0002-Add-and-install-pkg-config-file.patch | 93 +++++++++
sources | 20 +-
vdr-1.5.17-progressbar-support-0.0.1.diff | 106 ----------
vdr-1.5.18-use-pkgconfig.patch | 14 --
vdr-1.6.0-const.diff | 70 -------
vdr-1.6.0-dxr3-subtitles.patch | 29 ---
vdr-1.6.0-epgsearch-exttimeredit-0.0.2.diff | 111 ----------
vdr-1.6.0-fedora-pkgconfig.patch | 16 --
vdr-1.6.0-hlcutter-0.2.2-finnish.patch | 49 -----
vdr-1.6.0-includes+pkgconfig.patch | 92 --------
vdr-1.6.0-man-section.patch | 112 ----------
vdr-1.6.0-msgidbugs.patch | 12 -
vdr-1.6.0-remove-dvb-abi-check.patch | 13 --
vdr-1.6.0-scriptnames.patch | 113 ----------
vdr-1.6.0-sky-lirc-device.patch | 25 ---
vdr-1.6.0-v4l2.patch | 171 ---------------
vdr-1.7.21-fedora-pkgconfig.patch | 16 ++
vdr-1.7.21-hlcutter-0.2.2-finnish.patch | 23 ++
vdr-1.7.21-jumpplay-finnish.patch | 19 ++
vdr-1.7.21-jumpplay.patch | 249 ++++++++++++++++++++++
vdr-1.7.21-msgidbugs.patch | 12 +
vdr-1.6.0-paths.patch => vdr-1.7.21-paths.patch | 82 +++-----
vdr-1.7.21-plugin-missing.patch | 25 +++
vdr-1.7.21-timercmd.patch | 107 ++++++++++
vdr-dvbhddevice.conf | 5 +
vdr-dvbsddevice.conf | 5 +
vdr-jumpplay-1.0-1.6.0-finnish.patch | 22 --
vdr-sky.conf | 5 -
vdr.spec | 254 ++++++++++-------------
vdr.sysconfig | 4 +-
31 files changed, 720 insertions(+), 1175 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 1a6c89a..ed48f90 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,7 @@
-vdr_1.4.5-2.ds.diff.gz
-vdr-1.6.0.tar.bz2
-/MainMenuHooks-v1_0_1.diff.gz
-timercmd-0.1_1.6.0.diff
-vdr-1.6.0-1.diff
-vdr-1.6.0-2.diff
-vdr-timer-info-0.5-1.5.15.diff
-vdr-1.6.0-2-ttxtsubs.patch
-vdr-1.6.0-subtitles-button.patch.gz
-vdr-1.6.0-ionice.patch.gz
-vdr-1.6.0-cap_sys_nice.patch.gz
-vdr-1.6.0-liemikuutio-1.27.diff.gz
-vdr-jumpplay-1.0-1.6.0.diff
-vdr-1.5.13-hlcutter-0.2.2.diff
+/*.gz
+/*.bz2
+/vdr-1.5.17-progressbar-support-0.0.1.diff
+/vdr-1.7.14-hlcutter-0.2.2.diff
+/vdr-1.7.21-ttxtsubs.patch
+/vdr-timer-info-0.5-1.7.13.diff
+/vdr.epgsearch-exttimeredit-0.0.2.diff
diff --git a/0002-Add-and-install-pkg-config-file.patch b/0002-Add-and-install-pkg-config-file.patch
new file mode 100644
index 0000000..a49ffc1
--- /dev/null
+++ b/0002-Add-and-install-pkg-config-file.patch
@@ -0,0 +1,93 @@
+From cb205323c4102807bc7cbd16baff284a26b465c3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta at iki.fi>
+Date: Sun, 3 Apr 2011 18:32:42 +0300
+Subject: [PATCH 2/4] Add and install pkg-config file.
+
+---
+ Makefile | 35 ++++++++++++++++++++++++++++++++---
+ 1 files changed, 32 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 18d7eb9..6fa9588 100644
+--- a/Makefile
++++ b/Makefile
+@@ -33,6 +33,8 @@ CONFDIR = $(VIDEODIR)
+ DOXYGEN = /usr/bin/doxygen
+ DOXYFILE = Doxyfile
+
++PCDIR ?= $(firstword $(subst :, , ${PKG_CONFIG_PATH}:$(shell pkg-config --variable=pc_path pkg-config):$(PREFIX)/lib/pkgconfig))
++
+ include Make.global
+ -include Make.config
+
+@@ -77,7 +79,7 @@ DEFINES += -DLOCDIR=\"$(LOCDIR)\"
+ VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
+ APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' config.h)
+
+-all: vdr i18n
++all: vdr i18n vdr.pc
+
+ # Implicit rules:
+
+@@ -103,6 +105,25 @@ vdr: $(OBJS) $(SILIB)
+ $(SILIB):
+ $(MAKE) -C $(LSIDIR) all
+
++# pkg-config file:
++
++vdr.pc: Makefile Make.global
++ @echo "bindir=$(BINDIR)" > $@
++ @echo "includedir=$(INCDIR)" >> $@
++ @echo "configdir=$(CONFDIR)" >> $@
++ @echo "videodir=$(VIDEODIR)" >> $@
++ @echo "plugindir=$(PLUGINLIBDIR)" >> $@
++ @echo "localedir=$(LOCDIR)" >> $@
++ @echo "apiversion=$(APIVERSION)" >> $@
++ @echo "cflags=$(CXXFLAGS) $(DEFINES) -I\$${includedir}" >> $@
++ @echo "plugincflags=\$${cflags} -fPIC" >> $@
++ @echo "" >> $@
++ @echo "Name: VDR" >> $@
++ @echo "Description: Video Disk Recorder" >> $@
++ @echo "URL: http://www.tvdr.de/" >> $@
++ @echo "Version: $(VDRVERSION)" >> $@
++ @echo "Cflags: \$${cflags}" >> $@
++
+ # Internationalization (I18N):
+
+ PODIR = po
+@@ -163,7 +184,7 @@ clean-plugins:
+
+ # Install the files:
+
+-install: install-bin install-conf install-doc install-plugins install-i18n install-includes
++install: install-bin install-conf install-doc install-plugins install-i18n install-includes install-pc
+
+ # VDR binary:
+
+@@ -200,6 +221,14 @@ install-includes: include-dir
+ @mkdir -p $(DESTDIR)$(INCDIR)
+ @cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
+
++# pkg-config file:
++
++install-pc: vdr.pc
++ if [ -n "$(PCDIR)" ] ; then \
++ mkdir -p $(DESTDIR)$(PCDIR) ; \
++ cp vdr.pc $(DESTDIR)$(PCDIR) ; \
++ fi
++
+ # Source documentation:
+
+ srcdoc:
+@@ -212,7 +241,7 @@ srcdoc:
+
+ clean:
+ $(MAKE) -C $(LSIDIR) clean
+- -rm -f $(OBJS) $(DEPFILE) vdr core* *~
++ -rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~
+ -rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot
+ -rm -rf include
+ -rm -rf srcdoc
+--
+1.7.6
+
diff --git a/sources b/sources
index 9c292d8..bbcc495 100644
--- a/sources
+++ b/sources
@@ -1,14 +1,10 @@
3e9287f726df5a667054a15078235791 vdr_1.4.5-2.ds.diff.gz
-76f4ebe6525a35e33313d27a3f8e80c0 vdr-1.6.0.tar.bz2
c34d06b00218d3c04f5bbca3fc773535 MainMenuHooks-v1_0_1.diff.gz
-e9b82b88c1fa21b6fa9734ca240f6192 timercmd-0.1_1.6.0.diff
-4a6be2d47afa3a275837f1703c4df77b vdr-1.6.0-1.diff
-875b66a90d1c6f2e25aa1221b319136b vdr-1.6.0-2.diff
-92ee6cdf60b795d9fbcf4fdcafe401b4 vdr-timer-info-0.5-1.5.15.diff
-ded3dacb4be2958c03a50e3064164eb8 vdr-1.6.0-2-ttxtsubs.patch
-bd3221bb080788a87b4560eb0f323f2b vdr-1.6.0-subtitles-button.patch.gz
-bc2dbfe11e0ddbc791ceb2f659081c8c vdr-1.6.0-ionice.patch.gz
-32004893569e9a68f17d2b4b93410ed5 vdr-1.6.0-cap_sys_nice.patch.gz
-189117c22de7932bbfa770091f5d36e0 vdr-1.6.0-liemikuutio-1.27.diff.gz
-1ff8f1a90e02b11a42218ffba18b5f26 vdr-jumpplay-1.0-1.6.0.diff
-6c3dccda1910103449984677ed0bfcf4 vdr-1.5.13-hlcutter-0.2.2.diff
+49db9691fe6023270d443a62bab0411b vdr-1.5.17-progressbar-support-0.0.1.diff
+65d8616d536c0743efc60f155edcfa1f vdr-1.7.14-hlcutter-0.2.2.diff
+92cad9fbffa9f810c0c7cdc640732627 vdr-1.7.21-liemikuutio-1.32.patch.gz
+fae3698214bd45de1f675c2b037d5f3b vdr-1.7.21-ttxtsubs.patch
+7300bfd997db1a848bd774fefe4aec80 vdr-1.7.21.tar.bz2
+04511ae02243eb1bab94f3f45b59e574 vdr-timer-info-0.5-1.7.13.diff
+71f7281d55eba1957f4267f596b11e29 vdr.epgsearch-exttimeredit-0.0.2.diff
+2b6adcd1e09f009ba12d0fb454e29808 vdr_1.7.20-1.debian.tar.bz2
diff --git a/vdr-1.7.21-fedora-pkgconfig.patch b/vdr-1.7.21-fedora-pkgconfig.patch
new file mode 100644
index 0000000..27203f2
--- /dev/null
+++ b/vdr-1.7.21-fedora-pkgconfig.patch
@@ -0,0 +1,16 @@
+--- Makefile~ 2011-10-16 16:43:32.153166558 +0300
++++ Makefile 2011-10-16 16:44:43.588716860 +0300
+@@ -120,6 +120,13 @@
+ @echo "cflags=$(CXXFLAGS) $(DEFINES) -I\$${includedir}" >> $@
+ @echo "plugincflags=\$${cflags} -fPIC" >> $@
+ @echo "" >> $@
++ @echo "datadir=$(DATADIR)" >> $@
++ @echo "cachedir=$(CACHEDIR)" >> $@
++ @echo "rundir=$(RUNDIR)" >> $@
++ @echo "vardir=$(VARDIR)" >> $@
++ @echo "user=$(VDR_USER)" >> $@
++ @echo "group=$(VDR_GROUP)" >> $@
++ @echo "" >> $@
+ @echo "Name: VDR" >> $@
+ @echo "Description: Video Disk Recorder" >> $@
+ @echo "URL: http://www.tvdr.de/" >> $@
diff --git a/vdr-1.7.21-hlcutter-0.2.2-finnish.patch b/vdr-1.7.21-hlcutter-0.2.2-finnish.patch
new file mode 100644
index 0000000..fbb0539
--- /dev/null
+++ b/vdr-1.7.21-hlcutter-0.2.2-finnish.patch
@@ -0,0 +1,23 @@
+diff --git a/po/fi_FI.po b/po/fi_FI.po
+index b093e88..92ecbc9 100644
+--- a/po/fi_FI.po
++++ b/po/fi_FI.po
+@@ -1058,12 +1058,18 @@ msgstr "Pikatallennuksen kesto (min)"
+ msgid "Setup.Recording$Max. video file size (MB)"
+ msgstr "Suurin tiedostokoko (Mt)"
+
++msgid "Setup.Recording$Max. recording size (GB)"
++msgstr "Suurin tallennekoko (Gt)"
++
+ msgid "Setup.Recording$Split edited files"
+ msgstr "Jaottele muokatut tallenteet"
+
+ msgid "Setup.Recording$Delete timeshift recording"
+ msgstr "Poista ajansiirtotallenne"
+
++msgid "Setup.Recording$Hard Link Cutter"
++msgstr "Käytä kovia linkkejä muokkauksessa"
++
+ msgid "Replay"
+ msgstr "Toisto"
+
diff --git a/vdr-1.7.21-jumpplay-finnish.patch b/vdr-1.7.21-jumpplay-finnish.patch
new file mode 100644
index 0000000..fb68794
--- /dev/null
+++ b/vdr-1.7.21-jumpplay-finnish.patch
@@ -0,0 +1,19 @@
+diff -up vdr-1.7.21/po/fi_FI.po~ vdr-1.7.21/po/fi_FI.po
+--- vdr-1.7.21/po/fi_FI.po~ 2011-10-17 21:42:33.775916357 +0300
++++ vdr-1.7.21/po/fi_FI.po 2011-10-17 21:43:11.112400439 +0300
+@@ -1076,6 +1076,15 @@ msgstr "Käytä kovia linkkejä muokkauk
+ msgid "Replay"
+ msgstr "Toisto"
+
++msgid "Setup.Replay$Jump&Play"
++msgstr "Jatka toistoa hypyn jälkeen"
++
++msgid "Setup.Replay$Play&Jump"
++msgstr "Ohita merkityt katkot"
++
++msgid "Setup.Replay$Pause at last mark"
++msgstr "Tauko viimeisessä merkinnässä"
++
+ msgid "Setup.Replay$Multi speed mode"
+ msgstr "Käytä toiston moninopeustilaa"
+
diff --git a/vdr-1.7.21-jumpplay.patch b/vdr-1.7.21-jumpplay.patch
new file mode 100644
index 0000000..1d62964
--- /dev/null
+++ b/vdr-1.7.21-jumpplay.patch
@@ -0,0 +1,249 @@
+diff -up vdr-1.7.21/config.c~ vdr-1.7.21/config.c
+--- vdr-1.7.21/config.c~ 2011-10-19 20:51:42.842811197 +0300
++++ vdr-1.7.21/config.c 2011-10-19 20:53:39.408658278 +0300
+@@ -393,6 +393,9 @@ cSetup::cSetup(void)
+ MultiSpeedMode = 0;
+ ShowReplayMode = 0;
+ ResumeID = 0;
++ JumpPlay = 0;
++ PlayJump = 0;
++ PauseLastMark = 0;
+ CurrentChannel = -1;
+ CurrentVolume = MAXVOLUME;
+ CurrentDolby = 0;
+@@ -586,6 +589,9 @@ bool cSetup::Parse(const char *Name, con
+ 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, "JumpPlay")) JumpPlay = atoi(Value);
++ else if (!strcasecmp(Name, "PlayJump")) PlayJump = atoi(Value);
++ else if (!strcasecmp(Name, "PauseLastMark")) PauseLastMark = atoi(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);
+@@ -683,6 +689,9 @@ bool cSetup::Save(void)
+ Store("MultiSpeedMode", MultiSpeedMode);
+ Store("ShowReplayMode", ShowReplayMode);
+ Store("ResumeID", ResumeID);
++ Store("JumpPlay", JumpPlay);
++ Store("PlayJump", PlayJump);
++ Store("PauseLastMark", PauseLastMark);
+ Store("CurrentChannel", CurrentChannel);
+ Store("CurrentVolume", CurrentVolume);
+ Store("CurrentDolby", CurrentDolby);
+diff -up vdr-1.7.21/config.h~ vdr-1.7.21/config.h
+--- vdr-1.7.21/config.h~ 2011-10-19 20:51:42.843811290 +0300
++++ vdr-1.7.21/config.h 2011-10-19 20:53:38.807602345 +0300
+@@ -36,6 +36,8 @@
+ // plugins to work with newer versions of the core VDR as long as no
+ // VDR header files have changed.
+
++#define JUMPPLAYVERSNUM 100
++
+ #define LIEMIKUUTIO 132
+
+ #define MAXPRIORITY 99
+@@ -287,6 +289,9 @@ public:
+ int MultiSpeedMode;
+ int ShowReplayMode;
+ int ResumeID;
++ int JumpPlay;
++ int PlayJump;
++ int PauseLastMark;
+ int CurrentChannel;
+ int CurrentVolume;
+ int CurrentDolby;
+diff -up vdr-1.7.21/dvbplayer.c~ vdr-1.7.21/dvbplayer.c
+--- vdr-1.7.21/dvbplayer.c~ 2010-03-07 16:24:26.000000000 +0200
++++ vdr-1.7.21/dvbplayer.c 2011-10-19 20:53:39.809695598 +0300
+@@ -204,6 +204,7 @@ private:
+ cNonBlockingFileReader *nonBlockingFileReader;
+ cRingBufferFrame *ringBuffer;
+ cPtsIndex ptsIndex;
++ cMarks marks;
+ cFileName *fileName;
+ cIndexFile *index;
+ cUnbufferedFile *replayFile;
+@@ -282,6 +283,7 @@ cDvbPlayer::cDvbPlayer(const char *FileN
+ delete index;
+ index = NULL;
+ }
++ marks.Load(FileName, framesPerSecond, isPesRecording);
+ }
+
+ cDvbPlayer::~cDvbPlayer()
+@@ -360,6 +362,10 @@ bool cDvbPlayer::Save(void)
+ if (index) {
+ int Index = ptsIndex.FindIndex(DeviceGetSTC());
+ if (Index >= 0) {
++ // set resume position to 0 if replay stops at the first mark
++ if (Setup.PlayJump && marks.First() &&
++ abs(Index - marks.First()->position) <= int(round(RESUMEBACKUP * framesPerSecond)))
++ Index = 0;
+ Index -= int(round(RESUMEBACKUP * framesPerSecond));
+ if (Index > 0)
+ Index = index->GetNextIFrame(Index, false);
+@@ -386,11 +392,26 @@ void cDvbPlayer::Action(void)
+ {
+ uchar *p = NULL;
+ int pc = 0;
++ bool cutIn = false;
++ int total = -1;
+
+ readIndex = Resume();
+ if (readIndex >= 0)
+ isyslog("resuming replay at index %d (%s)", readIndex, *IndexToHMSF(readIndex, true, framesPerSecond));
+
++ if (Setup.PlayJump && readIndex <= 0 && marks.First() && index) {
++ int Index = marks.First()->position;
++ uint16_t FileNumber;
++ off_t FileOffset;
++ if (index->Get(Index, &FileNumber, &FileOffset) &&
++ NextFile(FileNumber, FileOffset)) {
++ isyslog("PlayJump: start replay at first mark %d (%s)",
++ Index, *IndexToHMSF(Index, true, framesPerSecond));
++ readIndex = Index;
++ }
++ }
++
++ bool LastMarkPause = false;
+ nonBlockingFileReader = new cNonBlockingFileReader;
+ int Length = 0;
+ bool Sleep = false;
+@@ -415,7 +436,7 @@ void cDvbPlayer::Action(void)
+
+ // Read the next frame from the file:
+
+- if (playMode != pmStill && playMode != pmPause) {
++ if (playMode != pmStill && playMode != pmPause && !LastMarkPause) {
+ if (!readFrame && (replayFile || readIndex >= 0)) {
+ if (!nonBlockingFileReader->Reading()) {
+ if (!SwitchToPlayFrame && (playMode == pmFast || (playMode == pmSlow && playDir == pdBackward))) {
+@@ -452,6 +473,44 @@ void cDvbPlayer::Action(void)
+ else if (index) {
+ uint16_t FileNumber;
+ off_t FileOffset;
++ if (Setup.PlayJump || Setup.PauseLastMark) {
++ // check for end mark - jump to next mark or pause
++ readIndex++;
++ marks.Update();
++ cMark *m = marks.Get(readIndex);
++ if (m && (m->Index() & 0x01) != 0) {
++ m = marks.Next(m);
++ int Index;
++ if (m)
++ Index = m->position;
++ else if (Setup.PauseLastMark) {
++ // pause at last mark
++ isyslog("PauseLastMark: pause at position %d (%s)",
++ readIndex, *IndexToHMSF(readIndex, true, framesPerSecond));
++ LastMarkPause = true;
++ Index = -1;
++ }
++ else if (total == index->Last())
++ // at last mark jump to end of recording
++ Index = index->Last() - 1;
++ else
++ // jump but stay off end of live-recordings
++ Index = index->GetNextIFrame(index->Last() - int(round(MAXSTUCKATEOF * framesPerSecond)), true);
++ // don't jump in edited recordings
++ if (Setup.PlayJump && Index > readIndex &&
++ Index > index->GetNextIFrame(readIndex, true)) {
++ isyslog("PlayJump: %d frames to %d (%s)",
++ Index - readIndex, Index,
++ *IndexToHMSF(Index, true, framesPerSecond));
++ readIndex = Index;
++ cutIn = true;
++ }
++ }
++ readIndex--;
++ }
++ // for detecting growing length of live-recordings
++ if (index->Get(readIndex + 1, &FileNumber, &FileOffset, &readIndependent) && readIndependent)
++ total = index->Last();
+ if (index->Get(readIndex + 1, &FileNumber, &FileOffset, &readIndependent, &Length) && NextFile(FileNumber, FileOffset))
+ readIndex++;
+ else
+@@ -496,6 +555,13 @@ void cDvbPlayer::Action(void)
+ // Store the frame in the buffer:
+
+ if (readFrame) {
++ if (cutIn) {
++ if (isPesRecording)
++ cRemux::SetBrokenLink(readFrame->Data(), readFrame->Count());
++ else
++ TsSetTeiOnBrokenPackets(readFrame->Data(), readFrame->Count());
++ cutIn = false;
++ }
+ if (ringBuffer->Put(readFrame))
+ readFrame = NULL;
+ else
+@@ -561,8 +627,13 @@ void cDvbPlayer::Action(void)
+ p = NULL;
+ }
+ }
+- else
++ else {
++ if (LastMarkPause) {
++ LastMarkPause = false;
++ playMode = pmPause;
++ }
+ Sleep = true;
++ }
+
+ // Handle hitting begin/end of recording:
+
+diff -up vdr-1.7.21/menu.c~ vdr-1.7.21/menu.c
+--- vdr-1.7.21/menu.c~ 2011-10-19 20:51:42.854812316 +0300
++++ vdr-1.7.21/menu.c 2011-10-19 20:53:38.486572473 +0300
+@@ -3408,6 +3408,9 @@ cMenuSetupReplay::cMenuSetupReplay(void)
+ Add(new cMenuEditBoolItem(tr("Setup.Replay$Multi speed mode"), &data.MultiSpeedMode));
+ Add(new cMenuEditBoolItem(tr("Setup.Replay$Show replay mode"), &data.ShowReplayMode));
+ Add(new cMenuEditIntItem(tr("Setup.Replay$Resume ID"), &data.ResumeID, 0, 99));
++ Add(new cMenuEditBoolItem(tr("Setup.Replay$Jump&Play"), &data.JumpPlay));
++ Add(new cMenuEditBoolItem(tr("Setup.Replay$Play&Jump"), &data.PlayJump));
++ Add(new cMenuEditBoolItem(tr("Setup.Replay$Pause at last mark"), &data.PauseLastMark));
+ }
+
+ void cMenuSetupReplay::Store(void)
+@@ -5007,8 +5010,10 @@ void cReplayControl::MarkToggle(void)
+ ShowTimed(2);
+ bool Play, Forward;
+ int Speed;
+- if (GetReplayMode(Play, Forward, Speed) && !Play)
++ if (GetReplayMode(Play, Forward, Speed) && !Play) {
+ Goto(Current, true);
++ displayFrames = true;
++ }
+ }
+ marks.Save();
+ }
+@@ -5021,8 +5026,17 @@ void cReplayControl::MarkJump(bool Forwa
+ if (GetIndex(Current, Total)) {
+ cMark *m = Forward ? marks.GetNext(Current) : marks.GetPrev(Current);
+ if (m) {
+- Goto(m->Position(), true);
+- displayFrames = true;
++ bool Play2, Forward2;
++ int Speed;
++ if (Setup.JumpPlay && GetReplayMode(Play2, Forward2, Speed) &&
++ Play2 && Forward && m->position < Total - SecondsToFrames(3, FramesPerSecond())) {
++ Goto(m->position);
++ Play();
++ }
++ else {
++ Goto(m->position, true);
++ displayFrames = true;
++ }
+ }
+ }
+ }
+@@ -5078,7 +5092,7 @@ void cReplayControl::EditTest(void)
+ if (!m)
+ m = marks.GetNext(Current);
+ if (m) {
+- if ((m->Index() & 0x01) != 0)
++ if ((m->Index() & 0x01) != 0 && !Setup.PlayJump)
+ m = marks.Next(m);
+ if (m) {
+ Goto(m->Position() - SecondsToFrames(3, FramesPerSecond()));
diff --git a/vdr-1.7.21-msgidbugs.patch b/vdr-1.7.21-msgidbugs.patch
new file mode 100644
index 0000000..cc168f8
--- /dev/null
+++ b/vdr-1.7.21-msgidbugs.patch
@@ -0,0 +1,12 @@
+diff -up vdr-1.7.21/i18n-to-gettext.pl~ vdr-1.7.21/i18n-to-gettext.pl
+--- vdr-1.7.21/i18n-to-gettext.pl~ 2009-10-18 17:07:49.000000000 +0300
++++ vdr-1.7.21/i18n-to-gettext.pl 2011-10-16 20:32:19.878167497 +0300
+@@ -90,7 +90,7 @@ $TITLE = "VDR plugin language source fil
+ $COPYRIGHT = "2007 Klaus Schmidinger <kls\@tvdr.de>";
+ $PACKAGE = "VDR";
+ $VERSION = "1.5.7";
+-$MSGIDBUGS = "" || die "enter your email address here"; # escape the '@', as in "user\@domain.tld"
++$MSGIDBUGS = "<vdr\@linuxtv.org>";
+ $LANGUAGETEAM = "<vdr\@linuxtv.org>";
+
+ # Gettext environment:
diff --git a/vdr-1.6.0-paths.patch b/vdr-1.7.21-paths.patch
similarity index 62%
rename from vdr-1.6.0-paths.patch
rename to vdr-1.7.21-paths.patch
index e7bdeb7..f43d08f 100644
--- a/vdr-1.6.0-paths.patch
+++ b/vdr-1.7.21-paths.patch
@@ -1,18 +1,6 @@
-diff -up vdr-1.6.0/PLUGINS/src/sky/README~ vdr-1.6.0/PLUGINS/src/sky/README
---- vdr-1.6.0/PLUGINS/src/sky/README~ 2007-08-12 14:08:16.000000000 +0300
-+++ vdr-1.6.0/PLUGINS/src/sky/README 2008-03-23 16:24:18.000000000 +0200
-@@ -37,7 +37,7 @@ derived from the actual channel data and
- 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
-diff -up vdr-1.6.0/epg2html.pl~ vdr-1.6.0/epg2html.pl
---- vdr-1.6.0/epg2html.pl~ 2006-04-17 15:19:08.000000000 +0300
-+++ vdr-1.6.0/epg2html.pl 2008-03-23 16:24:07.000000000 +0200
+diff -up vdr-1.7.21/epg2html.pl~ vdr-1.7.21/epg2html.pl
+--- vdr-1.7.21/epg2html.pl~ 2006-04-17 15:19:08.000000000 +0300
++++ vdr-1.7.21/epg2html.pl 2011-10-16 22:20:16.199200873 +0300
@@ -2,12 +2,12 @@
# A simple EPG to HTML converter
@@ -23,14 +11,26 @@ diff -up vdr-1.6.0/epg2html.pl~ vdr-1.6.0/epg2html.pl
# plus an 'index.htm' file. All output files are written into the current
# directory.
#
--# Usage: epg2html < /video/epg.data
-+# Usage: epg2html < __CACHEDIR__/epg.data
+-# 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.
-diff -up vdr-1.6.0/vdr.1~ vdr-1.6.0/vdr.1
---- vdr-1.6.0/vdr.1~ 2008-03-09 18:07:06.000000000 +0200
-+++ vdr-1.6.0/vdr.1 2008-03-23 16:24:04.000000000 +0200
+diff -up vdr-1.7.21/newplugin~ vdr-1.7.21/newplugin
+--- vdr-1.7.21/newplugin~ 2011-02-27 12:06:06.000000000 +0200
++++ vdr-1.7.21/newplugin 2011-10-16 22:22:23.996772653 +0300
+@@ -24,7 +24,7 @@ $PLUGIN_VERSION = "0.0.1";
+ $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).
+diff -up vdr-1.7.21/vdr.1~ vdr-1.7.21/vdr.1
+--- vdr-1.7.21/vdr.1~ 2011-08-15 15:28:54.000000000 +0300
++++ vdr-1.7.21/vdr.1 2011-10-16 22:22:23.006682907 +0300
@@ -45,7 +45,7 @@ Send Dolby Digital audio to stdin of com
.TP
.BI \-c\ dir ,\ \-\-config= dir
@@ -40,7 +40,7 @@ diff -up vdr-1.6.0/vdr.1~ vdr-1.6.0/vdr.1
.TP
.B \-d, \-\-daemon
Run in daemon mode (implies \-\-no\-kbd).
-@@ -56,7 +56,7 @@ There may be several \fB\-D\fR options (
+@@ -61,7 +61,7 @@ The program will return immediately afte
.TP
.BI \-E\ file ,\ \-\-epgfile= file
Write the EPG data into the given \fIfile\fR
@@ -49,7 +49,7 @@ diff -up vdr-1.6.0/vdr.1~ vdr-1.6.0/vdr.1
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 @@ If logging should be done to LOG_LOCAL\f
+@@ -114,7 +114,7 @@ If logging should be done to LOG_LOCAL\f
LOG_USER, add '.n' to LEVEL, as in 3.7 (n=0..7).
.TP
.BI \-L\ dir ,\ \-\-lib= dir
@@ -58,7 +58,7 @@ diff -up vdr-1.6.0/vdr.1~ vdr-1.6.0/vdr.1
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
-@@ -151,7 +151,7 @@ with VFAT file systems.
+@@ -190,7 +190,7 @@ with VFAT file systems.
.TP
.BI \-v\ dir ,\ \-\-video= dir
Use \fIdir\fR as video directory.
@@ -67,10 +67,10 @@ diff -up vdr-1.6.0/vdr.1~ vdr-1.6.0/vdr.1
.TP
.B \-V, \-\-version
Print version information and exit.
-diff -up vdr-1.6.0/vdr.5~ vdr-1.6.0/vdr.5
---- vdr-1.6.0/vdr.5~ 2008-03-09 17:46:57.000000000 +0200
-+++ vdr-1.6.0/vdr.5 2008-03-23 16:24:02.000000000 +0200
-@@ -506,7 +506,7 @@ The file \fIsetup.conf\fR contains the b
+diff -up vdr-1.7.21/vdr.5~ vdr-1.7.21/vdr.5
+--- vdr-1.7.21/vdr.5~ 2011-08-21 17:06:50.000000000 +0300
++++ vdr-1.7.21/vdr.5 2011-10-16 22:22:23.465724517 +0300
+@@ -659,7 +659,7 @@ The file \fIsetup.conf\fR contains the b
Each line contains one option in the format "Name = Value".
See the MANUAL file for a description of the available options.
.SS THEMES
@@ -79,19 +79,19 @@ diff -up vdr-1.6.0/vdr.5~ vdr-1.6.0/vdr.5
color theme definitions for the various skins. In the actual file names \fI<skin>\fR
will be replaced by the name if the skin this theme belongs to, and \fI<theme>\fR
will be the name of this theme.
-diff -up vdr-1.6.0/vdr.c~ vdr-1.6.0/vdr.c
---- vdr-1.6.0/vdr.c~ 2008-03-14 15:22:39.000000000 +0200
-+++ vdr-1.6.0/vdr.c 2008-03-23 16:23:59.000000000 +0200
-@@ -403,7 +403,7 @@ int main(int argc, char *argv[])
- " there may be several -D options (default: all DVB\n"
+diff -up vdr-1.7.21/vdr.c~ vdr-1.7.21/vdr.c
+--- vdr-1.7.21/vdr.c~ 2011-08-15 15:42:39.000000000 +0300
++++ vdr-1.7.21/vdr.c 2011-10-16 22:22:21.508547111 +0300
+@@ -427,7 +427,7 @@ int main(int argc, char *argv[])
" devices will be used)\n"
+ " --edit=REC cut recording REC and exit\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"
-@@ -560,7 +560,7 @@ int main(int argc, char *argv[])
+@@ -593,7 +593,7 @@ int main(int argc, char *argv[])
ConfigDirectory = DEFAULTCONFDIR;
cPlugin::SetConfigDirectory(ConfigDirectory);
@@ -99,8 +99,8 @@ diff -up vdr-1.6.0/vdr.c~ vdr-1.6.0/vdr.c
+ cThemes::SetThemesDirectory("__VARDIR__/themes");
Setup.Load(AddDirectory(ConfigDirectory, "setup.conf"));
- if (!(Sources.Load(AddDirectory(ConfigDirectory, "sources.conf"), true, true) &&
-@@ -595,7 +595,7 @@ int main(int argc, char *argv[])
+ Sources.Load(AddDirectory(ConfigDirectory, "sources.conf"), true, true);
+@@ -627,7 +627,7 @@ int main(int argc, char *argv[])
EpgDataFileName = DEFAULTEPGDATAFILENAME;
}
else if (*EpgDataFileName != '/' && *EpgDataFileName != '.')
@@ -109,15 +109,3 @@ diff -up vdr-1.6.0/vdr.c~ vdr-1.6.0/vdr.c
if (EpgDirectory)
cSchedules::SetEpgDataFileName(AddDirectory(EpgDirectory, EpgDataFileName));
else
-diff -up vdr-1.6.0/newplugin~ vdr-1.6.0/newplugin
---- vdr-1.6.0/newplugin~ 2008-01-13 15:00:23.000000000 +0200
-+++ vdr-1.6.0/newplugin 2008-03-23 16:23:49.000000000 +0200
-@@ -24,7 +24,7 @@ $PLUGIN_VERSION = "0.0.1";
- $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).
diff --git a/vdr-1.7.21-plugin-missing.patch b/vdr-1.7.21-plugin-missing.patch
new file mode 100644
index 0000000..011a0f1
--- /dev/null
+++ b/vdr-1.7.21-plugin-missing.patch
@@ -0,0 +1,25 @@
+diff -up vdr-1.7.21/plugin.c~ vdr-1.7.21/plugin.c
+--- vdr-1.7.21/plugin.c~ 2010-01-06 13:36:46.000000000 +0200
++++ vdr-1.7.21/plugin.c 2011-10-17 21:18:07.432419915 +0300
+@@ -317,6 +317,12 @@ void cPluginManager::AddPlugin(const cha
+ char *p = strchr(s, ' ');
+ if (p)
+ *p = 0;
++ struct stat st;
++ if (stat (cString::sprintf("%s/%s%s%s%s", directory, LIBVDR_PREFIX, s, SO_INDICATOR, APIVERSION), &st) && errno == ENOENT) {
++ esyslog("WARN: missing plugin '%s'", s);
++ fprintf(stderr, "vdr: missing plugin '%s'\n", s);
++ }
++ else
+ dlls.Add(new cDll(cString::sprintf("%s/%s%s%s%s", directory, LIBVDR_PREFIX, s, SO_INDICATOR, APIVERSION), Args));
+ free(s);
+ }
+@@ -325,7 +331,7 @@ bool cPluginManager::LoadPlugins(bool Lo
+ {
+ for (cDll *dll = dlls.First(); dll; dll = dlls.Next(dll)) {
+ if (!dll->Load(Log))
+- return false;
++ /*return false*/;
+ }
+ return true;
+ }
diff --git a/vdr-1.7.21-timercmd.patch b/vdr-1.7.21-timercmd.patch
new file mode 100644
index 0000000..8d31543
--- /dev/null
+++ b/vdr-1.7.21-timercmd.patch
@@ -0,0 +1,107 @@
+diff -up vdr-1.7.21/config.c~ vdr-1.7.21/config.c
+--- vdr-1.7.21/config.c~ 2011-10-18 00:02:51.394223695 +0300
++++ vdr-1.7.21/config.c 2011-10-18 00:12:30.255855027 +0300
+@@ -211,6 +211,7 @@ bool cNestedItemList::Save(void)
+ cNestedItemList Folders;
+ cNestedItemList Commands;
+ cNestedItemList RecordingCommands;
++cNestedItemList TimerCommands;
+
+ // --- cSVDRPhosts -----------------------------------------------------------
+
+diff -up vdr-1.7.21/config.h~ vdr-1.7.21/config.h
+--- vdr-1.7.21/config.h~ 2011-10-18 00:02:51.438227770 +0300
++++ vdr-1.7.21/config.h 2011-10-18 00:12:30.702896536 +0300
+@@ -187,6 +187,7 @@ public:
+ extern cNestedItemList Folders;
+ extern cNestedItemList Commands;
+ extern cNestedItemList RecordingCommands;
++extern cNestedItemList TimerCommands;
+ extern cSVDRPhosts SVDRPhosts;
+
+ class cSetupLine : public cListObject {
+diff -up vdr-1.7.21/menu.c~ vdr-1.7.21/menu.c
+--- vdr-1.7.21/menu.c~ 2011-10-18 00:02:51.428226843 +0300
++++ vdr-1.7.21/menu.c 2011-10-18 00:12:29.520786768 +0300
+@@ -1142,6 +1142,7 @@ void cTimerEntry::SetDiskStatus(char Dis
+
+ class cMenuTimers : public cOsdMenu {
+ private:
++ eOSState Commands(eKeys Key = kNone);
+ int helpKeys;
+ eOSState Edit(void);
+ eOSState New(void);
+@@ -1259,6 +1260,53 @@ eOSState cMenuTimers::Delete(void)
+ return osContinue;
+ }
+
++#define CHECK_2PTR_NULL(x_,y_) ((x_)? ((y_)? y_:""):"")
++
++eOSState cMenuTimers::Commands(eKeys Key)
++{
++ if (HasSubMenu() || Count() == 0)
++ return osContinue;
++ cTimer *ti = CurrentTimer();
++ if (ti) {
++ char *parameter = NULL;
++ const cEvent *pEvent = ti->Event();
++ int iRecNumber=0;
++
++ if(!pEvent) {
++ Timers.SetEvents();
++ pEvent = ti->Event();
++ }
++ if(pEvent) {
++// create a dummy recording to get the real filename
++ cRecording *rc_dummy = new cRecording(ti, pEvent);
++ Recordings.Load();
++ cRecording *rc = Recordings.GetByName(rc_dummy->FileName());
++
++ delete rc_dummy;
++ if(rc)
++ iRecNumber=rc->Index() + 1;
++ }
++//Parameter format TimerNumber 'ChannelId' Start Stop 'Titel' 'Subtitel' 'file' RecNumer
++// 1 2 3 4 5 6 7 8
++ asprintf(¶meter, "%d '%s' %d %d '%s' '%s' '%s' %d", ti->Index(),
++ *ti->Channel()->GetChannelID().ToString(),
++ (int)ti->StartTime(),
++ (int)ti->StopTime(),
++ CHECK_2PTR_NULL(pEvent, pEvent->Title()),
++ CHECK_2PTR_NULL(pEvent, pEvent->ShortText()),
++ ti->File(),
++ iRecNumber);
++ isyslog("timercmd: %s", parameter);
++ cMenuCommands *menu;
++ eOSState state = AddSubMenu(menu = new cMenuCommands(tr("Timer commands"), &TimerCommands, parameter));
++ free(parameter);
++ if (Key != kNone)
++ state = menu->ProcessKey(Key);
++ return state;
++ }
++ return osContinue;
++}
++
+ eOSState cMenuTimers::Info(void)
+ {
+ if (HasSubMenu() || Count() == 0)
+@@ -1346,6 +1394,8 @@ eOSState cMenuTimers::ProcessKey(eKeys K
+ case kInfo:
+ case kBlue: return Info();
+ break;
++ case k1...k9: return Commands(Key);
++ case k0: return (TimerCommands.Count()? Commands():osContinue);
+ default: break;
+ }
+ }
+diff -up vdr-1.7.21/vdr.c~ vdr-1.7.21/vdr.c
+--- vdr-1.7.21/vdr.c~ 2011-10-18 00:02:51.284213503 +0300
++++ vdr-1.7.21/vdr.c 2011-10-18 00:12:31.901007794 +0300
+@@ -602,6 +602,7 @@ int main(int argc, char *argv[])
+ Timers.Load(AddDirectory(ConfigDirectory, "timers.conf"));
+ Commands.Load(AddDirectory(ConfigDirectory, "commands.conf"));
+ RecordingCommands.Load(AddDirectory(ConfigDirectory, "reccmds.conf"));
++ TimerCommands.Load(AddDirectory(ConfigDirectory, "timercmds.conf"));
+ SVDRPhosts.Load(AddDirectory(ConfigDirectory, "svdrphosts.conf"), true);
+ Keys.Load(AddDirectory(ConfigDirectory, "remote.conf"));
+ KeyMacros.Load(AddDirectory(ConfigDirectory, "keymacros.conf"), true);
diff --git a/vdr-dvbhddevice.conf b/vdr-dvbhddevice.conf
new file mode 100644
index 0000000..98a0973
--- /dev/null
+++ b/vdr-dvbhddevice.conf
@@ -0,0 +1,5 @@
+# Configuration snippet for vdr-dvbhddevice -*- sh -*-
+#
+# Add command line options to pass to the skincurses plugin to PLUGIN_OPTIONS.
+
+PLUGIN_OPTIONS=""
diff --git a/vdr-dvbsddevice.conf b/vdr-dvbsddevice.conf
new file mode 100644
index 0000000..263b2d6
--- /dev/null
+++ b/vdr-dvbsddevice.conf
@@ -0,0 +1,5 @@
+# Configuration snippet for vdr-dvbsddevice -*- sh -*-
+#
+# Add command line options to pass to the skincurses plugin to PLUGIN_OPTIONS.
+
+PLUGIN_OPTIONS=""
diff --git a/vdr.spec b/vdr.spec
index 0598d75..050ddc2 100644
--- a/vdr.spec
+++ b/vdr.spec
@@ -20,80 +20,63 @@
%global vdr_user vdr
%global vdr_group video
# From APIVERSION in config.h
-%global apiver 1.6.0
+%global apiver 1.7.21
Name: vdr
-Version: 1.6.0
-Release: 41%{?dist}
+Version: 1.7.21
+Release: 1%{?dist}
Summary: Video Disk Recorder
-Group: Applications/Multimedia
License: GPLv2+
URL: http://www.tvdr.de/
-Source0: ftp://ftp.tvdr.de/vdr/%{name}-%{version}.tar.bz2
+Source0: ftp://ftp.tvdr.de/vdr/Developer/%{name}-%{version}.tar.bz2
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}.sudoers
-# TODO
Source4: %{name}-udev.rules
Source5: %{name}-reccmds.conf
Source6: %{name}-commands.conf
Source7: %{name}-runvdr.sh
+Source8: %{name}-dvbsddevice.conf
Source9: %{name}-config.sh
Source10: %{name}-README.package
Source11: %{name}-skincurses.conf
-Source12: %{name}-sky.conf
+Source12: %{name}-dvbhddevice.conf
Source13: %{name}-timercmds.conf
Source14: %{name}-shutdown.sh
Source15: %{name}-moveto.sh
Source16: %{name}-CHANGES.package.old
Source17: %{name}.macros
+Source18: http://cdn.debian.net/debian/pool/main/v/vdr/vdr_1.7.20-1.debian.tar.bz2
Patch0: %{name}-channel+epg.patch
-# TODO
Patch1: http://zap.tartarus.org/~ds/debian/dists/stable/main/source/vdr_1.4.5-2.ds.diff.gz
-Patch2: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-liemikuutio-1.27.diff.gz
-Patch3: %{name}-1.6.0-scriptnames.patch
-Patch4: %{name}-1.6.0-paths.patch
-Patch5: %{name}-1.5.18-use-pkgconfig.patch
+Patch2: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.7.21-liemikuutio-1.32.patch.gz
+# Extracted from http://copperhead.htpc-forum.de/downloads/extensionpatch/extpngvdr1.7.21v1.diff.gz
+Patch3: %{name}-1.7.21-plugin-missing.patch
+Patch4: %{name}-1.7.21-paths.patch
+Patch5: http://toms-cafe.de/vdr/download/vdr-timer-info-0.5-1.7.13.diff
# http://article.gmane.org/gmane.linux.vdr/36097
Patch6: %{name}-1.5.18-syncearly.patch
-# http://projects.vdr-developer.org/projects/plg-ttxtsubs/repository/raw/patches/vdr-1.6.0-2-ttxtsubs.patch?rev=release%2Fv0.1.0
-Patch7: %{name}-1.6.0-2-ttxtsubs.patch
-Patch8: %{name}-1.6.0-man-section.patch
+Patch7: http://projects.vdr-developer.org/projects/plg-ttxtsubs/repository/revisions/master/raw/patches/vdr-1.7.21-ttxtsubs.patch
+# Extracted from http://copperhead.htpc-forum.de/downloads/extensionpatch/extpngvdr1.7.21v1.diff.gz
+# Original at http://toms-cafe.de/vdr/download/vdr-jumpplay-1.0-1.7.6.diff
+Patch8: %{name}-1.7.21-jumpplay.patch
# http://www.udo-richter.de/vdr/patches.en.html#hlcutter
-Patch9: http://www.udo-richter.de/vdr/files/vdr-1.5.13-hlcutter-0.2.2.diff
-# Sent to hlcutter upstream 2009-06-15
-Patch10: %{name}-1.6.0-hlcutter-0.2.2-finnish.patch
+Patch9: http://www.udo-richter.de/vdr/files/vdr-1.7.14-hlcutter-0.2.2.diff
+# Sent to hlcutter upstream 2009-06-15 and 2011-10-16
+Patch10: %{name}-1.7.21-hlcutter-0.2.2-finnish.patch
# http://article.gmane.org/gmane.linux.vdr/43590
Patch11: MainMenuHooks-v1_0_1.diff.gz
-# timercmd and progressbar-support from
-# http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz
-Patch12: timercmd-0.1_1.6.0.diff
-Patch13: %{name}-1.5.17-progressbar-support-0.0.1.diff
-Patch14: %{name}-1.6.0-includes+pkgconfig.patch
-Patch15: %{name}-1.6.0-fedora-pkgconfig.patch
-Patch16: %{name}-1.6.0-dxr3-subtitles.patch
-Patch17: http://toms-cafe.de/vdr/download/vdr-timer-info-0.5-1.5.15.diff
-Patch18: ftp://ftp.tvdr.de/vdr/Developer/vdr-1.6.0-1.diff
-Patch19: ftp://ftp.tvdr.de/vdr/Developer/vdr-1.6.0-2.diff
-Patch20: %{name}-1.6.0-remove-dvb-abi-check.patch
-Patch21: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-subtitles-button.patch.gz
-Patch22: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-cap_sys_nice.patch.gz
-Patch23: http://www.saunalahti.fi/~rahrenbe/vdr/patches/vdr-1.6.0-ionice.patch.gz
-# From openSUSE's vdr-1.6.0-62.3, to fix build with gcc 4.4:
-# http://download.opensuse.org/repositories/vdr/
-Patch24: %{name}-1.6.0-const.diff
-Patch25: http://toms-cafe.de/vdr/download/vdr-jumpplay-1.0-1.6.0.diff
-Patch26: %{name}-jumpplay-1.0-1.6.0-finnish.patch
-# http://projects.vdr-developer.org/git/?p=vdr-plugin-epgsearch.git;a=blob;f=patches/vdr.epgsearch-exttimeredit-0.0.2.diff
-# Modified so that it applies on top of our other patches
-Patch27: %{name}-1.6.0-epgsearch-exttimeredit-0.0.2.diff
-# https://bugzilla.redhat.com/show_bug.cgi?id=538604, upstreamed 2009-11-22
-Patch28: %{name}-1.6.0-sky-lirc-device.patch
-Patch29: %{name}-1.6.0-msgidbugs.patch
-# Backport from VDR 1.7.x
-Patch30: %{name}-1.6.0-v4l2.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+# http://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/plain/patches/timercmd-0.1_1.7.17.diff
+# Modified so that it applies over the timer-info patch
+Patch12: %{name}-1.7.21-timercmd.patch
+Patch13: http://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/plain/patches/vdr-1.5.17-progressbar-support-0.0.1.diff
+# Sent upstream 2011-10-16
+Patch14: 0002-Add-and-install-pkg-config-file.patch
+Patch15: %{name}-1.7.21-fedora-pkgconfig.patch
+Patch16: %{name}-1.7.21-jumpplay-finnish.patch
+Patch17: http://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/plain/patches/vdr.epgsearch-exttimeredit-0.0.2.diff
+Patch18: %{name}-1.7.21-msgidbugs.patch
BuildRequires: libjpeg-devel
BuildRequires: libcap-devel
@@ -123,6 +106,7 @@ Provides: vdr(abi)%{?_isa} = %{apiver}
Provides: vdr(abi) = %{apiver}
%endif
Obsoletes: vdr-subtitles <= 0.5.0
+Obsoletes: vdr-sky < 1.7.11
%description
VDR implements a complete digital set-top-box and video recorder.
@@ -132,8 +116,6 @@ is required to run VDR.
%package devel
Summary: Development files for VDR
-Group: Development/Libraries
-Requires: pkgconfig
Requires: gettext
Provides: vdr-devel(api) = %{apiver}
@@ -142,55 +124,52 @@ Provides: vdr-devel(api) = %{apiver}
%package docs
Summary: Developer documentation for VDR
-Group: Documentation
-%if 0%{?fedora} > 9 || 0%{?rhel} > 5
BuildArch: noarch
-%endif
%description docs
%{summary}.
+%package dvbhddevice
+Summary: VDR output device plugin for TechnoTrend S2-6400 DVB cards
+Requires: vdr(abi)%{?_isa} = %{apiver}
+
+%description dvbhddevice
+The dvbhddevice plugin implements a VDR output device for the "Full
+Featured TechnoTrend S2-6400" DVB cards.
+
+%package dvbsddevice
+Summary: VDR output device plugin for full featured SD DVB cards
+Requires: vdr(abi)%{?_isa} = %{apiver}
+# To get this subpackage pulled in on upgrades
+Obsoletes: vdr < 1.7.11
+
+%description dvbsddevice
+The dvbsddevice plugin implements the output device for the "Full
+Featured" DVB cards based on the TechnoTrend/Fujitsu-Siemens design.
+
%package skincurses
Summary: Shell window skin plugin for VDR
-Group: Applications/Multimedia
-%if %{with plugins}
BuildRequires: ncurses-devel
-%endif # plugins
Requires: vdr(abi)%{?_isa} = %{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)%{?_isa} = %{apiver}
-Requires: wget
-Requires: /usr/bin/logger
-
-%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
+%setup -q -a 18
%patch0 -p1
%patch1 -p1
-# TODO: does not apply
-#patch -F 0 -i debian/patches/02_plugin_missing.dpatch
# sort_options would be nice, but it conflicts with channel+epg which is nicer
#patch -F 0 -i debian/patches/02_sort_options.dpatch
patch -F 0 -i debian/patches/06_recording_scan_speedup.dpatch
patch -F 2 -i debian/patches/07_blockify_define.dpatch
-patch -F 0 -i debian/patches/10_livelock.dpatch
-patch -F 0 -i debian/patches/11_atsc.dpatch
-echo "DEFINES += -DHAVE_ATSC" >> Makefile
+# TODO: does not apply
+#patch -F 0 -i debian/patches/10_livelock.dpatch
+# TODO: does not apply
+#patch -F 0 -i debian/patches/11_atsc.dpatch
+#echo "DEFINES += -DHAVE_ATSC" >> Makefile
patch -F 0 -i debian/patches/19_debian_osdbase_maxitems.dpatch
%patch2 -p1
%patch3 -p1
@@ -200,37 +179,26 @@ sed \
-e 's|__PLUGINDIR__|%{plugindir}|' \
-e 's|__VARDIR__|%{vardir}|' \
-e 's|__VIDEODIR__|%{videodir}|' \
- %{PATCH4} | patch -p1 -F 1
+ %{PATCH4} | patch -F 0 -p1
%patch5 -p1
-%patch6 -p0
+# TODO: does not apply
+#patch6 -p0
%patch7 -p1
%patch8 -p1
-# fuzz=3 so it applies on top of liemikuutio patch (menu.c)
-%patch9 -p0 -F 3
+%patch9 -p1
%patch10 -p1
%patch11 -p1 -F 2
-# timer-info patch needs to come before timercmd patch to avoid conflicts
-%patch17 -p1
-%patch12 -p1 -F 2
-%patch13 -p1
-%patch14 -p0 -F 2
+%patch12 -p1
+# TODO: does not apply
+#patch13 -p1
+%patch14 -p1
%patch15 -p0
-%patch16 -p0
+%patch16 -p1
+# TODO: build failure
+#patch17 -p0 -F 3
%patch18 -p1
-%patch19 -p1
-%patch20 -p0
-%patch21 -p1
-%patch22 -p1
-%patch23 -p1
-%patch24 -p1
-%patch25 -p1 -F 2
-%patch26 -p1
-%patch27 -p1
-%patch28 -p1
-%patch29 -p1
-%patch30 -p1
-
-for f in CONTRIBUTORS HISTORY* UPDATE-1.4.0 README.{jumpplay,timer-info} ; do
+
+for f in CONTRIBUTORS HISTORY UPDATE-1.4.0 README.timer-info ; do
iconv -f iso-8859-1 -t utf-8 -o $f.utf8 $f && mv $f.utf8 $f
done
@@ -265,6 +233,8 @@ done
%build
+export RPM_OPT_FLAGS="${RPM_OPT_FLAGS/-O2/-O3}" # see HISTORY for 1.7.17
+
cat << EOF > Make.config
CC = %{__cc}
CXX = %{__cxx}
@@ -278,9 +248,9 @@ else
CXXFLAGS = \$(RPM_OPT_FLAGS) -Wall -Woverloaded-virtual -Wno-parentheses
LDFLAGS = \$(RPM_LD_FLAGS)
endif
+
ifdef PLUGIN
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
+ include \$(VDRDIR)/Make.global # some plugins fail to do this
endif
MANDIR = %{_mandir}
@@ -290,7 +260,7 @@ LOCDIR = \$(shell pkg-config vdr --variable=localedir)
PLUGINLIBDIR = \$(shell pkg-config vdr --variable=plugindir)
VIDEODIR = \$(shell pkg-config vdr --variable=videodir)
CONFDIR = \$(shell pkg-config vdr --variable=configdir)
-INCLUDEDIR = \$(shell pkg-config vdr --variable=includedir)
+INCDIR = \$(shell pkg-config vdr --variable=includedir)
LIBDIR = \$(PLUGINLIBDIR)
LIRC_DEVICE = %{_localstatedir}/run/lirc/lircd
@@ -298,26 +268,24 @@ VDR_USER = %{vdr_user}
EOF
make %{?_smp_mflags} vdr vdr.pc include-dir \
- BINDIR=%{_sbindir} INCLUDEDIR=%{_includedir} CONFDIR=%{configdir} \
+ BINDIR=%{_sbindir} INCDIR=%{_includedir} CONFDIR=%{configdir} \
VIDEODIR=%{videodir} PLUGINLIBDIR=%{plugindir} LOCDIR=%{_datadir}/locale \
DATADIR=%{datadir} CACHEDIR=%{cachedir} \
RUNDIR=%{rundir} VARDIR=%{vardir} VDR_GROUP=%{vdr_group}
make %{?_smp_mflags} i18n LOCALEDIR=./locale
+make %{?_smp_mflags} -C PLUGINS/src/dvbhddevice LIBDIR=. all
+make %{?_smp_mflags} -C PLUGINS/src/dvbsddevice LIBDIR=. all
+make %{?_smp_mflags} -C PLUGINS/src/skincurses LIBDIR=. all
+
%if %{with docs}
make %{?_smp_mflags} srcdoc
find srcdoc -type f -size 0 -delete
%endif # docs
-%if %{with plugins}
-make %{?_smp_mflags} -C PLUGINS/src/skincurses LIBDIR=. all
-make %{?_smp_mflags} -C PLUGINS/src/sky LIBDIR=. all
-%endif # plugins
-
%install
-rm -rf $RPM_BUILD_ROOT
abs2rel() { perl -MFile::Spec -e 'print File::Spec->abs2rel(@ARGV)' "$@" ; }
@@ -330,6 +298,7 @@ install -pm 755 epg2html.pl $RPM_BUILD_ROOT%{_bindir}/epg2html
make install-pc DESTDIR=$RPM_BUILD_ROOT
PKG_CONFIG_PATH=$RPM_BUILD_ROOT%{_libdir}/pkgconfig \
make install-i18n install-includes install-doc DESTDIR=$RPM_BUILD_ROOT
+install -pm 644 debian/svdrpsend.1 $RPM_BUILD_ROOT%{_mandir}/man1
install -dm 755 $RPM_BUILD_ROOT%{configdir}/plugins
install -pm 644 *.conf $RPM_BUILD_ROOT%{configdir}
@@ -391,16 +360,18 @@ chmod 644 $RPM_BUILD_ROOT%{_sysconfdir}/udev/rules.d/*-%{name}.rules
install -Dpm 644 %{name}.rwtab $RPM_BUILD_ROOT%{_sysconfdir}/rwtab.d/%{name}
# devel
+
install -pm 755 %{SOURCE9} $RPM_BUILD_ROOT%{_bindir}/vdr-config
install -pm 755 i18n-to-gettext.pl \
$RPM_BUILD_ROOT%{_bindir}/vdr-i18n-to-gettext
install -pm 755 newplugin $RPM_BUILD_ROOT%{_bindir}/vdr-newplugin
-install -pm 644 Make.config $RPM_BUILD_ROOT%{_libdir}/vdr
+install -pm 644 Make.config Make.global $RPM_BUILD_ROOT%{_libdir}/vdr
ln -s $(abs2rel %{_includedir}/vdr/config.h %{_libdir}/vdr) \
$RPM_BUILD_ROOT%{_libdir}/vdr
install -Dpm 644 %{SOURCE17} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.vdr
# i18n
+
%find_lang %{name}
sed -i -e '1i%%defattr(-,root,root,-)' %{name}.lang
@@ -413,23 +384,23 @@ echo "%%config(noreplace) %{_sysconfdir}/tmpfiles.d/%{name}.conf" \
%endif
# plugins
-%if %{with plugins}
+
+install -pm 755 PLUGINS/src/dvbhddevice/libvdr-dvbhddevice.so.%{apiver} \
+ $RPM_BUILD_ROOT%{plugindir}
+install -pm 644 %{SOURCE12} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d/dvbhddevice.conf
+%find_lang %{name}-dvbhddevice
+
+install -pm 755 PLUGINS/src/dvbsddevice/libvdr-dvbsddevice.so.%{apiver} \
+ $RPM_BUILD_ROOT%{plugindir}
+install -pm 644 %{SOURCE8} \
+ $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/vdr-plugins.d/dvbsddevice.conf
+
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
%find_lang %{name}-skincurses
-sed -i -e '1i%%defattr(-,root,root,-)' %{name}-skincurses.lang
-
-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 # plugins
%check
@@ -439,10 +410,6 @@ if [ "$(pkg-config vdr --variable=apiversion)" != "%{apiver}" ] ; then
fi
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-
%pre
getent passwd %{vdr_user} >/dev/null || \
useradd -r -g %{vdr_group} -d %{vardir} -s /sbin/nologin -M -N \
@@ -466,7 +433,6 @@ fi
%files -f %{name}.lang
-%defattr(-,root,root,-)
%doc CONTRIBUTORS COPYING HISTORY* INSTALL MANUAL README* UPDATE-1.?.0
%doc CHANGES.package.old
%config(noreplace) %{_sysconfdir}/sudoers.d/vdr
@@ -484,7 +450,9 @@ fi
%{plugindir}/bin/%{name}-moveto.sh
%{plugindir}/bin/%{name}-shutdown.sh
%{datadir}/
-%{_mandir}/man[58]/vdr.[58]*
+%{_mandir}/man1/svdrpsend.1*
+%{_mandir}/man1/vdr.1*
+%{_mandir}/man5/vdr.5*
%dir %{varbase}/
%defattr(-,%{vdr_user},%{vdr_group},-)
# TODO: tighten ownerships to root:root for some files in %{configdir}
@@ -503,7 +471,6 @@ fi
%dir %{cachedir}/
%files devel
-%defattr(-,root,root,-)
%doc COPYING
%if ! %{with docs}
%doc PLUGINS.html
@@ -517,33 +484,38 @@ fi
%{_libdir}/pkgconfig/vdr.pc
%dir %{_libdir}/vdr/
%{_libdir}/vdr/Make.config
+%{_libdir}/vdr/Make.global
%{_libdir}/vdr/config.h
%if %{with docs}
%files docs
-%defattr(-,root,root,-)
%doc COPYING PLUGINS.html srcdoc/html/
%endif
-%if %{with plugins}
+%files dvbhddevice -f %{name}-dvbhddevice.lang
+%doc PLUGINS/src/dvbhddevice/COPYING PLUGINS/src/dvbhddevice/HISTORY
+%doc PLUGINS/src/dvbhddevice/README
+%config(noreplace) %{_sysconfdir}/sysconfig/vdr-plugins.d/dvbhddevice.conf
+%{plugindir}/libvdr-dvbhddevice.so.%{apiver}
+
+%files dvbsddevice
+%doc PLUGINS/src/dvbsddevice/COPYING PLUGINS/src/dvbsddevice/HISTORY
+%doc PLUGINS/src/dvbsddevice/README
+%config(noreplace) %{_sysconfdir}/sysconfig/vdr-plugins.d/dvbsddevice.conf
+%{plugindir}/libvdr-dvbsddevice.so.%{apiver}
+
%files skincurses -f %{name}-skincurses.lang
-%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 # plugins
%changelog
+* Sun Nov 6 2011 Ville Skyttä <ville.skytta at iki.fi> - 1.7.21-1
+- Update to 1.7.21.
+- Clean up specfile constructs no longer needed with Fedora or EL6+.
+
* Mon Sep 5 2011 Ville Skyttä <ville.skytta at iki.fi> - 1.6.0-41
- Build with $RPM_LD_FLAGS, add them to Make.config.
- Ship various macros in -devel to ease plugin packaging.
diff --git a/vdr.sysconfig b/vdr.sysconfig
index 72cf323..b9c3672 100644
--- a/vdr.sysconfig
+++ b/vdr.sysconfig
@@ -1,7 +1,7 @@
# System configuration for VDR -*- sh -*-
# The "master" options. Some examples of options you may want to set
-# here are -r, -t, and --rcu. See the vdr(8) man page for more info.
+# here are -r, -t, and --rcu. See the vdr(1) man page for more info.
#
# The default shutdown script (/usr/lib*/vdr/bin/vdr-shutdown.sh) needs
# sudo(8) configuration to work as expected, see the script source for
@@ -23,6 +23,8 @@ softdevice
streamdev-client
xine
xineliboutput
+dvbhddevice
+dvbsddevice
tvonscreen
osdteletext
ttxtsubs
More information about the scm-commits
mailing list