diff --git a/sources b/sources index 7b67f09..2a16883 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (vdr-2.7.4.tar.bz2) = 8f6e19f2b497300efeeb6bb7b9dc43e4b390b9e65da0b3700c8c133a333d4124afaf649d659864e7f8177246e6d26ce5503e0e978c97f237a62b33095cf8dd4a +SHA512 (vdr-2.7.7.tar.bz2) = 22c561aea6c2ae29f27d024249501c3c748cd77e9c182ed969a59f24b4b360b59cf807e1214665bbec7797b6ec11beeac0b2f02e8427f0c91cf9c29144bd5154 SHA512 (vdr-rcu-2.2.0.tgz) = 56abebcfde3511c4dcf6f414915c7aa70a16b8e138e2d9364080828edc9b0da045acaadaaa4094d1315ddefdafa5f966aebcfacf979c068e077f1e32e29773b7 SHA512 (vdr-dvbsddevice-2.2.0.tgz) = ac0b94b8b192208ad7e736d7c4f27cca6517134b17fc86a79cdd19453176d5f6076418bf679435899cd953053f3b54776342bcdab23a659e8331e9f2ed4ee364 SHA512 (3473a7b939d7.zip) = fc405ac81cc1374de3a2d457f76972e605cf51c20c5e86f4fb683bb7fc78fde51690e65f463870c6881a65308722ccecd60d4a8957e3e2d43ecfd665f0e5aa8f diff --git a/vdr-1.7.37-fedora-pkgconfig.patch b/vdr-1.7.37-fedora-pkgconfig.patch deleted file mode 100644 index a80fd82..0000000 --- a/vdr-1.7.37-fedora-pkgconfig.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up vdr-1.7.37/Makefile~ vdr-1.7.37/Makefile ---- vdr-1.7.37/Makefile~ 2013-02-14 21:57:22.306077727 +0200 -+++ vdr-1.7.37/Makefile 2013-02-14 22:05:04.016086224 +0200 -@@ -152,6 +152,12 @@ vdr.pc: - @echo "cflags=$(CFLAGS) $(CDEFINES) $(CINCLUDES) $(HDRDIR)" >> $@ - @echo "cxxflags=$(CXXFLAGS) $(CDEFINES) $(CINCLUDES) $(HDRDIR)" >> $@ - @echo "" >> $@ -+ @echo "datadir=\$${resdir}" >> $@ -+ @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-2.4.6-ClearObsoleteChannels.diff b/vdr-2.4.6-ClearObsoleteChannels.diff deleted file mode 100644 index fdde1a6..0000000 --- a/vdr-2.4.6-ClearObsoleteChannels.diff +++ /dev/null @@ -1,78 +0,0 @@ -diff -Nurp vdr-2.4.6.orig/channels.c vdr-2.4.6/channels.c ---- vdr-2.4.6.orig/channels.c 2020-04-11 11:22:05.000000000 +0200 -+++ vdr-2.4.6/channels.c 2021-01-02 14:56:49.883831519 +0100 -@@ -16,6 +16,8 @@ - // format characters in order to allow any number of blanks after a numeric - // value! - -+#define CHANNELMARKOBSOLETE "OBSOLETE" -+ - // --- tChannelID ------------------------------------------------------------ - - const tChannelID tChannelID::InvalidID; -@@ -434,6 +436,24 @@ void cChannel::SetSeen(void) - seen = time(NULL); - } - -+bool cChannel::ClearObsoleteChannel(void) -+{ -+ bool ChannelsModified = false; -+ if (endswith(name, CHANNELMARKOBSOLETE)) { -+ int mlen = strlen(CHANNELMARKOBSOLETE); -+ int e = strlen(name) - mlen - 1; -+ name[e] = '\0'; -+ cString clrname = cString::sprintf("%s", name); -+ name[e] = ' '; -+ -+ int OldShowChannelNamesWithSource = Setup.ShowChannelNamesWithSource; -+ Setup.ShowChannelNamesWithSource = 0; -+ ChannelsModified |= SetName(clrname, shortName, provider + mlen + 1); -+ Setup.ShowChannelNamesWithSource = OldShowChannelNamesWithSource; -+ } -+ return ChannelsModified; -+} -+ - void cChannel::DelLinkChannel(cChannel *LinkChannel) - { - if (linkChannels) { -@@ -1112,7 +1132,6 @@ cChannel *cChannels::NewChannel(const cC - return NULL; - } - --#define CHANNELMARKOBSOLETE "OBSOLETE" - #define CHANNELTIMEOBSOLETE 3600 // seconds to wait before declaring a channel obsolete (in case it has actually been seen before) - - bool cChannels::MarkObsoleteChannels(int Source, int Nid, int Tid) -diff -Nurp vdr-2.4.6.orig/channels.h vdr-2.4.6/channels.h ---- vdr-2.4.6.orig/channels.h 2020-06-10 16:00:36.000000000 +0200 -+++ vdr-2.4.6/channels.h 2021-01-02 12:58:13.693581025 +0100 -@@ -202,6 +202,7 @@ public: - void SetRefChannel(cChannel *RefChannel); - bool SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *CompositionPageIds, uint16_t *AncillaryPageIds); - void SetSeen(void); -+ bool ClearObsoleteChannel(void); - void DelLinkChannel(cChannel *LinkChannel); - }; - -diff -Nurp vdr-2.4.6.orig/pat.c vdr-2.4.6/pat.c ---- vdr-2.4.6.orig/pat.c 2020-12-18 15:51:57.000000000 +0100 -+++ vdr-2.4.6/pat.c 2021-01-02 12:56:25.480243876 +0100 -@@ -489,6 +489,9 @@ void cPatFilter::Process(u_short Pid, u_ - SwitchToNextPmtPid(); - cChannel *Channel = Channels->GetByServiceID(Source(), Transponder(), pmt.getServiceId()); - if (Channel) { -+ bool seen = Channel->Seen(); -+ if (!seen) // not yet seen in sdt.c -+ Channel->SetSeen(); - SI::CaDescriptor *d; - cCaDescriptors *CaDescriptors = new cCaDescriptors(Channel->Source(), Channel->Transponder(), Channel->Sid(), Pid); - // Scan the common loop: -@@ -723,6 +726,8 @@ void cPatFilter::Process(u_short Pid, u_ - ChannelsModified |= Channel->SetCaIds(CaDescriptors->CaIds()); - ChannelsModified |= Channel->SetSubtitlingDescriptors(SubtitlingTypes, CompositionPageIds, AncillaryPageIds); - } -+ if (!seen && (Setup.UpdateChannels == 1 || Setup.UpdateChannels >= 3)) -+ ChannelsModified |= Channel->ClearObsoleteChannel(); // just in case - ChannelsModified |= Channel->SetCaDescriptors(CaDescriptorHandler.AddCaDescriptors(CaDescriptors)); - } - StateKey.Remove(ChannelsModified); diff --git a/vdr-2.6.2-timer-still-recording.patch b/vdr-2.6.2-timer-still-recording.patch deleted file mode 100644 index 2be2cfb..0000000 --- a/vdr-2.6.2-timer-still-recording.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/menu.c 2022/11/22 15:53:07 5.8 -+++ b/menu.c 2022/12/01 12:55:34 -@@ -3250,7 +3250,7 @@ - int Id; - char *RemoteBuf = NULL; - cString Remote; -- if (2 == sscanf(TimerId, "%d@%m[^ \n]", &Id, &RemoteBuf)) { -+ if (2 == sscanf(TimerId, "%d@%m[^ \n]", &Id, &RemoteBuf) && Id != 0) { - Remote = RemoteBuf; - free(RemoteBuf); - if (Interface->Confirm(tr("Timer still recording - really delete?"))) { diff --git a/vdr-2.7.2-remux-PTS.patch b/vdr-2.7.2-remux-PTS.patch deleted file mode 100644 index 4cdedf5..0000000 --- a/vdr-2.7.2-remux-PTS.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- remux.c 2024/09/21 19:18:18 5.13 -+++ remux.c 2024/10/08 08:39:54 -@@ -2073,8 +2073,10 @@ - Report("duplicate backref"); - backRefs |= b; - } -- else -+ else { - Report("rev diff too big"); -+ lastPts = Pts; -+ } - } - else - Report("zero diff"); diff --git a/vdr-2.7.2-timers.patch b/vdr-2.7.2-timers.patch new file mode 100644 index 0000000..56669da --- /dev/null +++ b/vdr-2.7.2-timers.patch @@ -0,0 +1,44 @@ +--- timers.c 2024/03/06 14:37:15 5.20 ++++ timers.c 2024/10/10 09:23:34 +@@ -726,10 +726,39 @@ + bool cTimer::Expired(void) const + { + if (IsSingleEvent() && !Recording()) { ++ time_t Now = time(NULL); + time_t ExpireTime = StopTimeEvent(); +- if (HasFlags(tfVps)) ++ if (HasFlags(tfVps)) { + ExpireTime += EXPIRELATENCY; +- return ExpireTime <= time(NULL); ++ if (ExpireTime <= Now) { ++ LOCK_SCHEDULES_READ; ++ const cSchedule *Schedule = event ? event->Schedule() : NULL; ++ const cEvent *FirstEvent = event; ++ if (Schedule) ++ FirstEvent = Schedule->Events()->Next(FirstEvent); ++ else if ((Schedule = Schedules->GetSchedule(Channel())) != NULL) { ++ FirstEvent = Schedule->Events()->First(); ++ if (FirstEvent) ++ dsyslog("timer %s had no event, got %s from channel/schedule", *ToDescr(), *FirstEvent->ToDescr()); ++ } ++ if (FirstEvent) { ++ if (Schedule) { ++ for (const cEvent *e = FirstEvent; e; e = Schedule->Events()->Next(e)) { ++ if (e->Vps() == startTime) { ++ ExpireTime = e->EndTime() + EXPIRELATENCY; ++ dsyslog("timer %s is waiting for next VPS event %s", *ToDescr(), *e->ToDescr()); ++ break; ++ } ++ } ++ } ++ } ++ else { ++ dsyslog("timer %s has no event, setting expiration to +24h", *ToDescr()); ++ ExpireTime += 3600 * 24; ++ } ++ } ++ } ++ return ExpireTime <= Now; + } + return false; + } diff --git a/vdr.spec b/vdr.spec index 846a4c0..a17c165 100644 --- a/vdr.spec +++ b/vdr.spec @@ -24,16 +24,17 @@ %global vdr_user vdr %global vdr_group video # From APIVERSION in config.h -%global apiver 6 +%global apiver 9 Name: vdr -Version: 2.7.4 -Release: 3%{?dist} +Version: 2.7.7 +Release: 1%{?dist} Summary: Video Disk Recorder License: GPL-2.0-or-later URL: http://www.tvdr.de/ -# Get vdr source from http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.4;sf=tbz2 +# Get vdr source from http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.7;sf=tbz2 +# wget --content-disposition "http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.7;sf=tbz2" Source0: %{name}-%{version}.tar.bz2 Source1: %{name}.service Source2: %{name}.sysconfig @@ -69,8 +70,6 @@ Patch4: %{name}-2.4.0-paths.patch Patch5: 12_osdbase-maxitems.patch # https://www.vdr-portal.de/forum/thread/135091-installation-eines-vdr-plugins-nativ-auf-coreelec-boxen/?postID=1379567#post1379567 Patch11: MainMenuHooks-v1_0_4.diff.txt -# Sent upstream 2016-06-17 -### Patch15: %%{name}-1.7.37-fedora-pkgconfig.patch Patch15: %{name}-2.7.4-fedora-pkgconfig.patch # https://www.vdr-portal.de/index.php?attachment/44831-vdr-2-4-6-clearobsoletechannels-diff Patch99: %{name}-2.4.6-ClearObsoleteChannels2.diff @@ -449,7 +448,6 @@ if [ "$(pkg-config vdr --variable=apiversion)" != "%{apiver}" ] ; then fi - %post %systemd_post %{name}.service systemctl daemon-reload @@ -554,6 +552,19 @@ systemctl daemon-reload %changelog +* Fri Jul 25 2025 Martin Gansser - 2.7.7-1 +- Update to 2.7.7 + +* Fri Jul 25 2025 Fedora Release Engineering - 2.7.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jun 21 2025 Martin Gansser - 2.7.6-1 +- Update to 2.7.6 + +* Tue May 27 2025 Martin Gansser - 2.7.5-1 +- Update to 2.7.5 +- Add vdr-2.7.5-override-keyword.patch + * Sun May 11 2025 Peter Bieringer - 2.7.4-3 - Re-add MainMenuHooks patch for 2.7.x