commit: e00bdcb69041b521a71a3b089884485a219e409c Author: Martin Dummer <martin.dummer <AT> gmx <DOT> net> AuthorDate: Wed Aug 13 21:08:59 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Sep 20 09:15:42 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e00bdcb6
media-video/vdr: add 2.7.7 introducing a subslot, reverse dependencies (media-plugins/vdr-*) will receive the new subslot dependency later Signed-off-by: Martin Dummer <martin.dummer <AT> gmx.net> Part-of: https://github.com/gentoo/gentoo/pull/39879 Closes: https://github.com/gentoo/gentoo/pull/39879 Signed-off-by: Sam James <sam <AT> gentoo.org> media-video/vdr/Manifest | 4 + ...1_pinplugin.patch => vdr-2.7.4_pinplugin.patch} | 131 ++++++-------- .../vdr/files/vdr-2.7.5_demoplugin-fix.patch | 39 ++++ media-video/vdr/vdr-2.7.7.ebuild | 198 +++++++++++++++++++++ 4 files changed, 298 insertions(+), 74 deletions(-) diff --git a/media-video/vdr/Manifest b/media-video/vdr/Manifest index 662139e1093c..53bf85269a03 100644 --- a/media-video/vdr/Manifest +++ b/media-video/vdr/Manifest @@ -4,4 +4,8 @@ DIST vdr-2.6.9.tbz2 949889 BLAKE2B 25416907562b061a38fbe29478010d1d790695f1eab2a DIST vdr-2.6.9_ttxtsubs_v2.patch 40549 BLAKE2B 525c05b72fa957372cc1ef91428428f664f42d92eebc06fd0b179afbe99e4ecc4919c69cef000cc15c8340c9a2506d38cbf755fd6665cde1708ce17d4320a35f SHA512 590c43e63818de8be9637cb3b32bf3399b82a181ca151d67e2341232669619020ab78ba9934da3a9c58cdb3bac56fc2a332a5838a92ee0851e42c3707726eb49 DIST vdr-2.7.3.tbz2 953575 BLAKE2B c2380c3ece50683faf63c0df09011859c61a66dbd684b87abe8deb60b0676937063271edc4c26809f4cc8fc95273386ce9ce8566244de1eb043c1e46842c9fa3 SHA512 a2e7421d94bdd5d994b7584115e3b297b069557b12a831363ab2fb4fe3a65117ec43fe24f988e290dd2fa33a50a6bc1fe33c1076b179a6fe1b5d24b786a0930d DIST vdr-2.7.3_ttxtsubs_v2.patch 40541 BLAKE2B 5848009c6ef432a9852a0e86a448bb3d2c1a037523c5f1ce9563eb0e65ad4c174e4e1f290fd7f583cfa3915cad6297e1d4d7833b89883bb09c4dbf14d715656f SHA512 d8123c91096ff9734cdc46bacd253b153627091a90aa94288dc60ea74792b5ab6e62cd48adc6b830d83ca81d7d6ad11d7b478aaad67d597d1141ffe8e29abbf8 +DIST vdr-2.7.7.tbz2 960454 BLAKE2B ce4961fb40fc62ead50cb7a39f2a539b5c08fdce494d9d49b4eaa09780c5ebc320cec2e5a61b15681937e1d5d6851bbcb05042fd2ce8f710b016848c146f3ac0 SHA512 22c561aea6c2ae29f27d024249501c3c748cd77e9c182ed969a59f24b4b360b59cf807e1214665bbec7797b6ec11beeac0b2f02e8427f0c91cf9c29144bd5154 +DIST vdr-2.7.7_naludump.patch 20054 BLAKE2B 4c326c71b60d7d46cb5c846be7c415d41bde01920b28dc102e8f0f85dd59e1d489c5e042a5c35e131e5aebac042a58dfd49f584d1efb0362446111e8a2c347b1 SHA512 c6d467ad37cfd34eef6da83506140b563269b16a06fecf40b6d61b0c75b8019b353d3c740766b65f0a656770b185f51eec6bb08760c03ba9aba275c7846d6a79 +DIST vdr-2.7.7_patch-for-permashift.patch 15401 BLAKE2B c73a0b66745cbb3b97d7678e4f5597cf8be1b5153126967fa8d16ad2ee1db070ad521688d00d291392f83f7309de8210f8a170026db9f9cf90f3b39d90c75db7 SHA512 11fc1c2599687dcf774253295e3ce9bc7ef890c5e40102d183242b59d228ff0828151d5b40e6c6015f1140f077f24e32373dee15eeb972fe89aee40bf3d4589c +DIST vdr-2.7.7_ttxtsubs_v2.patch 38346 BLAKE2B 8244793a77fadfe0aed84fbb1e2bb24abd45dde37c81a4b788c515231f860d79c84a0ede0509d3b599b7408d2d0909365d5b26c09fa62569e762e2981c3cb587 SHA512 4f8b9a92bea821f93bae5dec9aaea6a678b4599eb73e5b9574a656d3a893dad7103478c118d1424b754384e317b7e6820aa16e9c7c0a486285cd52be27a1facc DIST vdr-menuorg-2.3.x.diff 8852 BLAKE2B 19b98d51a69f52ecda5500f51ef1741a8397953b20c490055eab0393da5f56ff9598c3e1e8ed8b915f5877e08deeb9ba7a9ef8d9356ad3a1fa12e3778869174a SHA512 7b41c3a529858a4953a57f21619ea01864e140cc1755ee0b03caf1c4de41e80c3f805653502bc8d39d02a4dfcddf720acd4a8c8bd91f4871eef31d86e8e915c0 diff --git a/media-video/vdr/files/vdr-2.6.1_pinplugin.patch b/media-video/vdr/files/vdr-2.7.4_pinplugin.patch similarity index 87% rename from media-video/vdr/files/vdr-2.6.1_pinplugin.patch rename to media-video/vdr/files/vdr-2.7.4_pinplugin.patch index 2552f9e7109f..6d41aae29e81 100644 --- a/media-video/vdr/files/vdr-2.6.1_pinplugin.patch +++ b/media-video/vdr/files/vdr-2.7.4_pinplugin.patch @@ -1,24 +1,7 @@ -original vdr-pinplugin_vdr-2.3.1.diff -rebased for media-video/vdr-2.6.1 - -Signed-off-by: Christian Kunkel <[email protected]> ( 2021 Feb 12 ) -Reviewed-by: Martin Dummer <[email protected]> ( 2022-06-22 ) -diff -Naur a/Makefile b/Makefile ---- a/Makefile 2022-02-02 10:56:43.000000000 +0100 -+++ b/Makefile 2022-06-20 08:08:11.346956148 +0200 -@@ -351,7 +351,7 @@ - clean: - @$(MAKE) --no-print-directory -C $(LSIDIR) clean - @-rm -f $(OBJS) $(DEPFILE) vdr vdr.pc core* *~ -- @-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot -+ @-rm -rf $(LOCALEDIR) $(PODIR)/*~ $(PODIR)/*.mo $(PODIR)/*.pot - @-rm -rf include - @-rm -rf srcdoc - CLEAN: clean -diff -Naur a/device.c b/device.c ---- a/device.c 2022-02-02 10:56:43.000000000 +0100 -+++ b/device.c 2022-06-20 08:08:11.346956148 +0200 -@@ -839,6 +839,7 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/device.c vdr-2.7.4/device.c +--- vdr-2.7.4.orig/device.c 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/device.c 2025-04-09 21:26:38.951141144 +0200 +@@ -857,6 +857,7 @@ const cChannel *Channel; while ((Channel = Channels->GetByNumber(n, Direction)) != NULL) { // try only channels which are currently available @@ -26,7 +9,7 @@ diff -Naur a/device.c b/device.c if (GetDevice(Channel, LIVEPRIORITY, true, true)) break; n = Channel->Number() + Direction; -@@ -860,6 +861,12 @@ +@@ -878,6 +879,12 @@ eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) { @@ -39,10 +22,10 @@ diff -Naur a/device.c b/device.c cMutexLock MutexLock(&mutexChannel); // to avoid a race between SVDRP CHAN and HasProgramme() cStatus::MsgChannelSwitch(this, 0, LiveView); -diff -Naur a/menu.c b/menu.c ---- a/menu.c 2022-02-02 10:56:43.000000000 +0100 -+++ b/menu.c 2022-06-20 08:08:11.346956148 +0200 -@@ -1035,6 +1035,18 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/menu.c vdr-2.7.4/menu.c +--- vdr-2.7.4.orig/menu.c 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/menu.c 2025-04-09 21:26:38.955141126 +0200 +@@ -1037,6 +1037,18 @@ Add(new cMenuEditBitItem( tr("VPS"), &data.flags, tfVps)); Add(new cMenuEditIntItem( tr("Priority"), &data.priority, 0, MAXPRIORITY)); Add(new cMenuEditIntItem( tr("Lifetime"), &data.lifetime, 0, MAXLIFETIME)); @@ -61,7 +44,7 @@ diff -Naur a/menu.c b/menu.c Add(file = new cMenuEditStrItem( tr("File"), data.file, sizeof(data.file))); SetFirstDayItem(); SetPatternItem(true); -@@ -3130,7 +3142,8 @@ +@@ -3135,7 +3147,8 @@ } } } @@ -81,7 +64,7 @@ diff -Naur a/menu.c b/menu.c if (ri->IsDirectory()) Open(); else { -@@ -4506,28 +4522,32 @@ +@@ -4519,28 +4535,32 @@ // Basic menu items: @@ -119,7 +102,7 @@ diff -Naur a/menu.c b/menu.c Add(new cOsdItem(hk(tr("Commands")), osCommands)); Update(true); -@@ -4600,6 +4620,14 @@ +@@ -4613,6 +4633,14 @@ eOSState state = cOsdMenu::ProcessKey(Key); HadSubMenu |= HasSubMenu(); @@ -134,7 +117,7 @@ diff -Naur a/menu.c b/menu.c switch (state) { case osSchedule: return AddSubMenu(new cMenuSchedule); case osChannels: return AddSubMenu(new cMenuChannels); -@@ -4624,6 +4652,7 @@ +@@ -4637,6 +4665,7 @@ if (item) { cPlugin *p = cPluginManager::GetPlugin(item->PluginIndex()); if (p) { @@ -142,7 +125,7 @@ diff -Naur a/menu.c b/menu.c cOsdObject *menu = p->MainMenuAction(); if (menu) { if (menu->IsMenu()) -@@ -4635,6 +4664,7 @@ +@@ -4648,6 +4677,7 @@ } } } @@ -150,7 +133,7 @@ diff -Naur a/menu.c b/menu.c state = osEnd; } break; -@@ -4814,6 +4844,7 @@ +@@ -4828,6 +4858,7 @@ Channel = Direction > 0 ? Channels->Next(Channel) : Channels->Prev(Channel); if (!Channel && Setup.ChannelsWrap) Channel = Direction > 0 ? Channels->First() : Channels->Last(); @@ -158,7 +141,7 @@ diff -Naur a/menu.c b/menu.c if (Channel && !Channel->GroupSep() && cDevice::GetDevice(Channel, LIVEPRIORITY, true, true)) return Channel; } -@@ -5491,6 +5522,7 @@ +@@ -5505,6 +5536,7 @@ for (int i = 0; i < MAXRECORDCONTROLS; i++) { if (!RecordControls[i]) { RecordControls[i] = new cRecordControl(device, Timers, Timer, Pause); @@ -166,10 +149,10 @@ diff -Naur a/menu.c b/menu.c return RecordControls[i]->Process(time(NULL)); } } -diff -Naur a/osd.c b/osd.c ---- a/osd.c 2022-02-02 10:56:43.000000000 +0100 -+++ b/osd.c 2022-06-20 08:08:11.346956148 +0200 -@@ -1844,6 +1844,7 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/osd.c vdr-2.7.4/osd.c +--- vdr-2.7.4.orig/osd.c 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/osd.c 2025-04-09 21:26:38.955141126 +0200 +@@ -1907,6 +1907,7 @@ cSize cOsd::maxPixmapSize(INT_MAX, INT_MAX); cVector<cOsd *> cOsd::Osds; cMutex cOsd::mutex; @@ -177,10 +160,10 @@ diff -Naur a/osd.c b/osd.c cOsd::cOsd(int Left, int Top, uint Level) { -diff -Naur a/osd.h b/osd.h ---- a/osd.h 2022-02-02 10:56:43.000000000 +0100 -+++ b/osd.h 2022-06-20 08:08:11.346956148 +0200 -@@ -957,6 +957,7 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/osd.h vdr-2.7.4/osd.h +--- vdr-2.7.4.orig/osd.h 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/osd.h 2025-04-09 21:26:38.955141126 +0200 +@@ -994,6 +994,7 @@ ///< ///< If a plugin uses a derived cPixmap implementation, it needs to use that ///< type instead of cPixmapMemory. @@ -188,9 +171,9 @@ diff -Naur a/osd.h b/osd.h }; #define MAXOSDIMAGES 64 -diff -Naur a/status.c b/status.c ---- a/status.c 2022-02-02 10:56:43.000000000 +0100 -+++ b/status.c 2022-06-20 08:08:11.346956148 +0200 +diff '--color=auto' -Naur vdr-2.7.4.orig/status.c vdr-2.7.4/status.c +--- vdr-2.7.4.orig/status.c 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/status.c 2025-04-09 21:26:38.955141126 +0200 @@ -136,3 +136,55 @@ for (cStatus *sm = statusMonitors.First(); sm; sm = statusMonitors.Next(sm)) sm->OsdProgramme(PresentTime, PresentTitle, PresentSubtitle, FollowingTime, FollowingTitle, FollowingSubtitle); @@ -247,18 +230,18 @@ diff -Naur a/status.c b/status.c + return true; + return false; +} -diff -Naur a/status.h b/status.h ---- a/status.h 2022-02-02 10:56:43.000000000 +0100 -+++ b/status.h 2022-06-20 08:08:11.350956230 +0200 -@@ -14,6 +14,7 @@ - #include "device.h" +diff '--color=auto' -Naur vdr-2.7.4.orig/status.h vdr-2.7.4/status.h +--- vdr-2.7.4.orig/status.h 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/status.h 2025-04-09 21:26:38.959141108 +0200 +@@ -15,6 +15,7 @@ #include "player.h" + #include "skins.h" #include "tools.h" +#include "plugin.h" // Several member functions of the following classes are called with a pointer to // an object from a global list (cTimer, cChannel, cRecording or cEvent). In these -@@ -99,6 +100,22 @@ +@@ -107,6 +108,22 @@ // The OSD displays the single line Text with the current channel information. virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle) {} // The OSD displays the given programme information. @@ -281,7 +264,7 @@ diff -Naur a/status.h b/status.h public: cStatus(void); virtual ~cStatus(); -@@ -122,6 +139,14 @@ +@@ -132,6 +149,14 @@ static void MsgOsdTextItem(const char *Text, bool Scroll = false); static void MsgOsdChannel(const char *Text); static void MsgOsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle); @@ -296,10 +279,10 @@ diff -Naur a/status.h b/status.h }; #endif //__STATUS_H -diff -Naur a/timers.c b/timers.c ---- a/timers.c 2022-02-02 10:56:43.000000000 +0100 -+++ b/timers.c 2022-06-20 08:14:07.898392829 +0200 -@@ -81,6 +81,7 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/timers.c vdr-2.7.4/timers.c +--- vdr-2.7.4.orig/timers.c 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/timers.c 2025-04-09 21:26:38.959141108 +0200 +@@ -85,6 +85,7 @@ stop -= 2400; priority = Pause ? Setup.PausePriority : Setup.DefaultPriority; lifetime = Pause ? Setup.PauseLifetime : Setup.DefaultLifetime; @@ -307,7 +290,7 @@ diff -Naur a/timers.c b/timers.c if (Instant && channel) snprintf(file, sizeof(file), "%s%s", Setup.MarkInstantRecord ? "@" : "", *Setup.NameInstantRecord ? Setup.NameInstantRecord : channel->Name()); } -@@ -212,11 +213,13 @@ +@@ -220,11 +221,13 @@ stop -= 2400; priority = PatternTimer ? PatternTimer->Priority() : Setup.DefaultPriority; lifetime = PatternTimer ? PatternTimer->Lifetime() : Setup.DefaultLifetime; @@ -321,15 +304,15 @@ diff -Naur a/timers.c b/timers.c } cTimer::cTimer(const cTimer &Timer) -@@ -255,6 +258,7 @@ +@@ -263,6 +266,7 @@ stop = Timer.stop; priority = Timer.priority; lifetime = Timer.lifetime; + fskProtection = Timer.fskProtection; // PIN PATCH + vpsNotRunning = 0; + vpsActive = false; strncpy(pattern, Timer.pattern, sizeof(pattern)); - strncpy(file, Timer.file, sizeof(file)); - free(aux); -@@ -484,6 +488,7 @@ +@@ -496,6 +500,7 @@ result = false; } } @@ -337,7 +320,7 @@ diff -Naur a/timers.c b/timers.c free(channelbuffer); free(daybuffer); free(filebuffer); -@@ -1037,6 +1042,36 @@ +@@ -1102,6 +1107,36 @@ Matches(); // refresh start and end time } @@ -374,10 +357,10 @@ diff -Naur a/timers.c b/timers.c // --- cTimers --------------------------------------------------------------- cTimers cTimers::timers; -diff -Naur a/timers.h b/timers.h ---- a/timers.h 2022-02-02 10:56:43.000000000 +0100 -+++ b/timers.h 2022-06-20 08:08:11.350956230 +0200 -@@ -45,6 +45,7 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/timers.h vdr-2.7.4/timers.h +--- vdr-2.7.4.orig/timers.h 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/timers.h 2025-04-09 21:26:38.959141108 +0200 +@@ -47,6 +47,7 @@ int start; ///< the start and stop time of this timer as given by the user, int stop; ///< in the form hhmm, with hh (00..23) and mm (00..59) added as hh*100+mm int priority; @@ -385,7 +368,7 @@ diff -Naur a/timers.h b/timers.h int lifetime; mutable char pattern[NAME_MAX * 2 + 1]; // same size as 'file', to be able to initially fill 'pattern' with 'file' in the 'Edit timer' menu mutable char file[NAME_MAX * 2 + 1]; // *2 to be able to hold 'title' and 'episode', which can each be up to 255 characters long -@@ -70,6 +71,7 @@ +@@ -72,6 +73,7 @@ int Start(void) const { return start; } int Stop(void) const { return stop; } int Priority(void) const { return priority; } @@ -393,7 +376,7 @@ diff -Naur a/timers.h b/timers.h int Lifetime(void) const { return lifetime; } const char *Pattern(void) const { return pattern; } const char *File(void) const { return file; } -@@ -120,6 +122,7 @@ +@@ -122,6 +124,7 @@ void SetRemote(const char *Remote); void SetDeferred(int Seconds); void SetFlags(uint Flags); @@ -401,10 +384,10 @@ diff -Naur a/timers.h b/timers.h void ClrFlags(uint Flags); void InvFlags(uint Flags); bool HasFlags(uint Flags) const; -diff -Naur a/vdr.c b/vdr.c ---- a/vdr.c 2022-02-02 10:56:43.000000000 +0100 -+++ b/vdr.c 2022-06-20 08:08:11.350956230 +0200 -@@ -71,6 +71,7 @@ +diff '--color=auto' -Naur vdr-2.7.4.orig/vdr.c vdr-2.7.4/vdr.c +--- vdr-2.7.4.orig/vdr.c 2025-02-26 10:35:03.000000000 +0100 ++++ vdr-2.7.4/vdr.c 2025-04-09 21:26:38.959141108 +0200 +@@ -72,6 +72,7 @@ #include "tools.h" #include "transfer.h" #include "videodir.h" @@ -412,7 +395,7 @@ diff -Naur a/vdr.c b/vdr.c #define MINCHANNELWAIT 10 // seconds to wait between failed channel switchings #define ACTIVITYTIMEOUT 60 // seconds before starting housekeeping -@@ -1210,6 +1211,7 @@ +@@ -1218,6 +1219,7 @@ if (!Menu) Interact = Control = cControl::Control(ControlMutexLock); if (ISREALKEY(key)) { @@ -420,7 +403,7 @@ diff -Naur a/vdr.c b/vdr.c EITScanner.Activity(); // Cancel shutdown countdown: if (ShutdownHandler.countdown) -@@ -1282,10 +1284,12 @@ +@@ -1290,10 +1292,12 @@ Control->Hide(); cPlugin *plugin = cPluginManager::GetPlugin(PluginName); if (plugin) { @@ -433,7 +416,7 @@ diff -Naur a/vdr.c b/vdr.c else esyslog("ERROR: unknown plugin '%s'", PluginName); } -@@ -1505,9 +1509,11 @@ +@@ -1513,9 +1517,11 @@ case kPlay: if (cReplayControl::LastReplayed()) { Control = NULL; diff --git a/media-video/vdr/files/vdr-2.7.5_demoplugin-fix.patch b/media-video/vdr/files/vdr-2.7.5_demoplugin-fix.patch new file mode 100644 index 000000000000..dfd3cb40ac13 --- /dev/null +++ b/media-video/vdr/files/vdr-2.7.5_demoplugin-fix.patch @@ -0,0 +1,39 @@ +--- a/PLUGINS/src/skincurses/skincurses.c ++++ b/PLUGINS/src/skincurses/skincurses.c +@@ -647,7 +647,7 @@ + cSkinCursesDisplayTracks(const char *Title, int NumTracks, const char * const *Tracks); + virtual ~cSkinCursesDisplayTracks() override; + virtual void SetTrack(int Index, const char * const *Tracks) override; +- virtual void SetAudioChannel(int AudioChannel) { override} ++ virtual void SetAudioChannel(int AudioChannel) override { } + virtual void Flush(void) override; + }; + +@@ -799,7 +799,7 @@ + virtual bool Initialize(void) override; + virtual bool Start(void) override; + virtual void Housekeeping(void) override; +- virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); override} ++ virtual const char *MainMenuEntry(void) override { return tr(MAINMENUENTRY); } + virtual cOsdObject *MainMenuAction(void) override; + virtual cMenuSetupPage *SetupMenu(void) override; + virtual bool SetupParse(const char *Name, const char *Value) override; +--- a/PLUGINS/src/hello/hello.c ++++ b/PLUGINS/src/hello/hello.c +@@ -24,13 +24,13 @@ + public: + cPluginHello(void); + virtual ~cPluginHello() override; +- virtual const char *Version(void) { return VERSION; override} +- virtual const char *Description(void) { return tr(DESCRIPTION); override} ++ virtual const char *Version(void) override { return VERSION;} ++ virtual const char *Description(void) override { return tr(DESCRIPTION);} + virtual const char *CommandLineHelp(void) override; + virtual bool ProcessArgs(int argc, char *argv[]) override; + virtual bool Start(void) override; + virtual void Housekeeping(void) override; +- virtual const char *MainMenuEntry(void) { return tr(MAINMENUENTRY); override} ++ virtual const char *MainMenuEntry(void) override { return tr(MAINMENUENTRY);} + virtual cOsdObject *MainMenuAction(void) override; + virtual cMenuSetupPage *SetupMenu(void) override; + virtual bool SetupParse(const char *Name, const char *Value) override; diff --git a/media-video/vdr/vdr-2.7.7.ebuild b/media-video/vdr/vdr-2.7.7.ebuild new file mode 100644 index 000000000000..20ee128c3f80 --- /dev/null +++ b/media-video/vdr/vdr-2.7.7.ebuild @@ -0,0 +1,198 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic strip-linguas toolchain-funcs user-info + +DESCRIPTION="Video Disk Recorder - turns a pc into a powerful set top box for DVB" +HOMEPAGE="https://www.tvdr.de/" +SRC_URI="https://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/${PV};sf=tbz2 -> ${P}.tbz2 + menuorg? ( https://github.com/vdr-projects/vdr-plugin-menuorg/raw/master/vdr-patch/vdr-menuorg-2.3.x.diff ) + naludump? ( https://md11.it.cx/download/${PN}/${P}_naludump.patch ) + permashift? ( https://md11.it.cx/download/${PN}/${P}_patch-for-permashift.patch ) + ttxtsubs? ( https://md11.it.cx/download/${PN}/${P}_ttxtsubs_v2.patch )" + +LICENSE="GPL-2+" +SLOT="0/9" # config.h: APIVERSION "9" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86" +IUSE="bidi debug demoplugins keyboard menuorg naludump permashift pinplugin systemd ttxtsubs verbose" + +COMMON_DEPEND=" + acct-group/vdr + acct-user/vdr + media-libs/fontconfig + media-libs/freetype + media-libs/libjpeg-turbo:= + sys-libs/libcap" +DEPEND="${COMMON_DEPEND} + sys-kernel/linux-headers" +RDEPEND="${COMMON_DEPEND} + dev-lang/perl + media-tv/gentoo-vdr-scripts + media-fonts/corefonts + bidi? ( dev-libs/fribidi ) + systemd? ( sys-apps/systemd )" +BDEPEND=" + sys-devel/gettext + virtual/pkgconfig" + +REQUIRED_USE="permashift? ( !naludump !pinplugin )" + +CONF_DIR="/etc/vdr" +CAP_FILE="${S}/capabilities.sh" +CAPS="# Capabilities of the vdr-executable for use by startscript etc." + +pkg_setup() { + use debug && append-flags -g + + PLUGIN_LIBDIR="/usr/$(get_libdir)/vdr/plugins" + VIDEO_DIR="$(egethome vdr)/video" + + tc-export CC CXX AR +} + +add_cap() { + local arg + for arg; do + CAPS="${CAPS}\n${arg}=1" + done +} + +lang_po() { + LING_PO=$( ls "${S}"/po | sed -e "s:.po::g" | cut -d_ -f1 | tr \\\012 ' ' ) +} + +src_prepare() { + # apply maintenance-patches + ebegin "Changing paths for gentoo" + + local DVBDIR=/usr/include + local i + for i in ${DVB_HEADER_PATH} /usr/include/v4l-dvb-hg /usr/include; do + [[ -d ${i} ]] || continue + if [[ -f ${i}/linux/dvb/dmx.h ]]; then + einfo "Found DVB header files in ${i}" + DVBDIR=${i} + break + fi + done + + # checking for s2api headers + local api_version + api_version=$(awk -F' ' '/define DVB_API_VERSION / {print $3}' "${DVBDIR}"/linux/dvb/version.h) + api_version=${api_version}*$(awk -F' ' '/define DVB_API_VERSION_MINOR / {print $3}' "${DVBDIR}"/linux/dvb/version.h) + + if [[ ${api_version:-0} -lt 5*3 ]]; then + eerror "DVB header files do not contain s2api support or too old for ${P}" + eerror "You cannot compile VDR against old dvb-header" + die "DVB headers too old" + fi + + cat > Make.config <<-EOT || die "cannot write to Make.config" + # + # Generated by ebuild ${PF} + # + PREFIX = /usr + DVBDIR = ${DVBDIR} + PLUGINLIBDIR = ${PLUGIN_LIBDIR} + CONFDIR = ${CONF_DIR} + ARGSDIR = \$(CONFDIR)/conf.d + VIDEODIR = ${VIDEO_DIR} + LOCDIR = \$(PREFIX)/share/locale + INCDIR = \$(PREFIX)/include + + DEFINES += -DCONFDIR=\"\$(CONFDIR)\" + INCLUDES += -I\$(DVBDIR) + + # >=vdr-1.7.36-r1; parameter only used for compiletime on vdr + # PLUGINLIBDIR (plugin Makefile old) = LIBDIR (plugin Makefile new) + LIBDIR = ${PLUGIN_LIBDIR} + PCDIR = /usr/$(get_libdir)/pkgconfig + + EOT + eend 0 + + eapply "${FILESDIR}/vdr-2.6.6_gentoo.patch" + use demoplugins || eapply "${FILESDIR}/vdr-2.4_remove_plugins.patch" + eapply "${FILESDIR}/${PN}-2.4.6_makefile-variables.patch" + + # fix clang/LLVM compile + eapply "${FILESDIR}/${PN}-2.4.6_clang.patch" + + use naludump && eapply "${DISTDIR}/${P}_naludump.patch" + use permashift && eapply "${DISTDIR}/${P}_patch-for-permashift.patch" + use pinplugin && eapply "${FILESDIR}/${PN}-2.7.4_pinplugin.patch" + use ttxtsubs && eapply "${DISTDIR}/${P}_ttxtsubs_v2.patch" + use menuorg && eapply "${DISTDIR}/vdr-menuorg-2.3.x.diff" + + add_cap CAP_UTF8 \ + CAP_IRCTRL_RUNTIME_PARAM \ + CAP_VFAT_RUNTIME_PARAM \ + CAP_CHUID \ + CAP_SHUTDOWN_AUTO_RETRY + + echo -e ${CAPS} > "${CAP_FILE}" || die "cannot write to CAP_FILE" + + # LINGUAS support + einfo "\n \t VDR supports the LINGUAS values" + + lang_po + + einfo "\t Please set one of this values in your sytem make.conf" + einfo "\t LINGUAS=\"${LING_PO}\"\n" + + if [[ -z ${LINGUAS} ]]; then + einfo "\n \t No values in LINGUAS=" + einfo "\t You will get only english text on OSD \n" + fi + + strip-linguas ${LING_PO} en + + default +} + +src_configure() { + # support languages, written from right to left + export "BIDI=$(usex bidi 1 0)" + # systemd notification support + export "SDNOTIFY=$(usex systemd 1 0)" + # with/without keyboard + export "USE_KBD=$(usex keyboard 1 0)" + # detailed compile output for debug + export "VERBOSE=$(usex verbose 1 0)" +} + +src_install() { + # trick the makefile to not create a VIDEODIR by supplying it with an + # existing directory + emake VIDEODIR="/" DESTDIR="${ED}" install + + keepdir "${PLUGIN_LIBDIR}" + + # backup for plugins they don't be able to create this dir + keepdir "${CONF_DIR}/plugins" + + local HTML_DOCS=( *.html ) + local DOCS=( MANUAL INSTALL README* HISTORY CONTRIBUTORS UPDATE-2* ) + einstalldocs + + insinto /usr/share/vdr + doins "${CAP_FILE}" + + fowners vdr:vdr "${CONF_DIR}" -R +} + +pkg_postinst() { + elog "Please read the /usr/share/doc/${PF}/UPDATE-2.4" + elog "for major changes in this version\n" + + elog "It is a good idea to run vdrplugin-rebuild now.\n" + + elog "To get nice symbols in OSD we recommend to install" + elog "\t1. emerge media-fonts/vdrsymbols-ttf" + elog "\t2. select font VDRSymbolsSans in Setup\n" + + elog "To get an idea how to proceed now, have a look at our vdr-guide:" + elog "\thttps://wiki.gentoo.org/wiki/VDR" +}
