commit:     93ca9d5a05871b5aea01f8db24350d829a6d0011
Author:     Martin Dummer <martin.dummer <AT> gmx <DOT> net>
AuthorDate: Sat Sep 27 14:13:02 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 00:42:31 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=93ca9d5a

media-plugins/vdr-extrecmenu: fix usage of cControl::Control()

introduce subslot dependency on media-video/vdr

Closes: https://bugs.gentoo.org/963482
Signed-off-by: Martin Dummer <martin.dummer <AT> gmx.net>
Part-of: https://github.com/gentoo/gentoo/pull/43960
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/vdr-extrecmenu-2.0.12_cControl.patch     | 33 +++++++++++++++++++
 .../vdr-extrecmenu/vdr-extrecmenu-2.0.12-r1.ebuild | 37 ++++++++++++++++++++++
 2 files changed, 70 insertions(+)

diff --git 
a/media-plugins/vdr-extrecmenu/files/vdr-extrecmenu-2.0.12_cControl.patch 
b/media-plugins/vdr-extrecmenu/files/vdr-extrecmenu-2.0.12_cControl.patch
new file mode 100644
index 000000000000..4ed99d46f699
--- /dev/null
+++ b/media-plugins/vdr-extrecmenu/files/vdr-extrecmenu-2.0.12_cControl.patch
@@ -0,0 +1,33 @@
+diff '--color=auto' -Naur extrecmenung-v2.0.12.orig/mymenu.c 
extrecmenung-v2.0.12/mymenu.c
+--- extrecmenung-v2.0.12.orig/mymenu.c 2024-03-16 12:06:32.000000000 +0100
++++ extrecmenung-v2.0.12/mymenu.c      2025-09-27 16:08:59.981088185 +0200
+@@ -1642,7 +1642,8 @@
+ 
+   Display(); // this keeps the higher level menus from showing up briefly 
when pressing 'Back' during replay
+ 
+-  if (wasdvd && !cControl::Control()) {
++  cMutexLock MutexLock;
++  if (wasdvd && !cControl::Control(MutexLock)) {
+      char *cmd = NULL;
+      if (-1 != asprintf(&cmd, "dvdarchive.sh umount \"%s\"", 
*strescape(myReplayControl::LastReplayed(), "'\\\"$"))) {
+         isyslog("[extrecmenu] calling %s to unmount dvd", cmd);
+@@ -1658,7 +1659,8 @@
+ 
+      wasdvd = false;
+      }
+-  if (washdd &&! cControl::Control()) {
++  cMutexLock MutexLock2;
++  if (washdd &&! cControl::Control(MutexLock2)) {
+      char *cmd=NULL;
+      if (-1 != asprintf(&cmd, "hddarchive.sh umount \"%s\"", 
*strescape(myReplayControl::LastReplayed(), "'\\\"$"))) {
+         isyslog("[extrecmenu] calling %s to unmount Archive-HDD", cmd);
+@@ -1982,7 +1984,8 @@
+                  }
+               else if (CurrentRecording && strcmp(CurrentRecording, 
Recording->FileName()) == 0) {
+                  SetCurrent(LastDir ? LastDir : LastItem);
+-                 if (Item && !Item->IsDirectory() && (Item->IsDVD() || 
Item->IsHDD()) && !cControl::Control())
++                 cMutexLock MutexLock;
++                 if (Item && !Item->IsDirectory() && (Item->IsDVD() || 
Item->IsHDD()) && !cControl::Control(MutexLock))
+                     
cReplayControl::ClearLastReplayed(cReplayControl::LastReplayed());
+                  }
+               }

diff --git a/media-plugins/vdr-extrecmenu/vdr-extrecmenu-2.0.12-r1.ebuild 
b/media-plugins/vdr-extrecmenu/vdr-extrecmenu-2.0.12-r1.ebuild
new file mode 100644
index 000000000000..06593cf95b08
--- /dev/null
+++ b/media-plugins/vdr-extrecmenu/vdr-extrecmenu-2.0.12-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit vdr-plugin-2
+
+DESCRIPTION="VDR Plugin: Extended recordings menu (NG)"
+HOMEPAGE="https://gitlab.com/kamel5/extrecmenung";
+SRC_URI="https://gitlab.com/kamel5/extrecmenung/-/archive/v${PV}/extrecmenung-v${PV}.tar.bz2
 -> ${P}.tbz2"
+S="${WORKDIR}/extrecmenung-v${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+DEPEND="media-video/vdr:="
+RDEPEND="${DEPEND}
+       media-fonts/vdrsymbols-ttf"
+
+PATCHES=( "${FILESDIR}/${P}_cControl.patch" )
+
+src_prepare() {
+       rm 
"${S}"/po/{ca_ES,da_DK,el_GR,et_EE,hr_HR,hu_HU,nl_NL,nn_NO,pl_PL,pt_PT,ro_RO,ru_RU,sl_SI,sv_SE,tr_TR}.po
 || die
+
+       vdr-plugin-2_src_prepare
+}
+
+src_install() {
+       vdr-plugin-2_src_install
+
+       cd "${S}/scripts"
+       dobin dvdarchive.sh hddarchive.sh
+
+       insinto /etc/vdr
+       doins "${FILESDIR}"/dvdarchive.conf
+}

Reply via email to