commit:     f10a6dcb44069f076ff6401ecabf04e5553fc790
Author:     Martin Dummer <martin.dummer <AT> gmx <DOT> net>
AuthorDate: Sat Sep 27 13:52:18 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 00:42:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f10a6dcb

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

introduce subslot dependency on media-video/vdr

Closes: https://bugs.gentoo.org/963496
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>

 .../vdr-vcd/files/vdr-vcd-0.9_Control.patch        | 56 ++++++++++++++++++++++
 media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild        |  2 +-
 ...vdr-vcd-0.9-r4.ebuild => vdr-vcd-0.9-r5.ebuild} |  9 ++--
 3 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/media-plugins/vdr-vcd/files/vdr-vcd-0.9_Control.patch 
b/media-plugins/vdr-vcd/files/vdr-vcd-0.9_Control.patch
new file mode 100644
index 000000000000..085799717a84
--- /dev/null
+++ b/media-plugins/vdr-vcd/files/vdr-vcd-0.9_Control.patch
@@ -0,0 +1,56 @@
+diff '--color=auto' -Naur vcd-0.9.orig/menucontrol.c vcd-0.9/menucontrol.c
+--- vcd-0.9.orig/menucontrol.c 2025-09-27 15:32:52.262205083 +0200
++++ vcd-0.9/menucontrol.c      2025-09-27 15:39:34.901524119 +0200
+@@ -56,7 +56,8 @@
+ 
+ void cMenuSpiControl::SetItem(int Spi, cVcd *Vcd)
+ {
+-  cControl *control = cControl::Control();
++  cMutexLock MutexLock;
++  cControl *control = cControl::Control(MutexLock);
+   if (control && typeid(*control)==typeid(cMenuVcdControl))
+      static_cast<cMenuVcdControl*>(control)->Stop();
+   if (control && typeid(*control)==typeid(cMenuSpiControl)
+@@ -146,7 +147,8 @@
+ 
+ void cMenuVcdControl::SetTrack(int Track, cVcd *Vcd)
+ {
+-  cControl *control = cControl::Control();
++  cMutexLock MutexLock;
++  cControl *control = cControl::Control(MutexLock);
+   if (control && typeid(*control)==typeid(cMenuSpiControl))
+      static_cast<cMenuSpiControl*>(control)->Stop();
+   if (control && typeid(*control)==typeid(cMenuVcdControl) &&
+diff '--color=auto' -Naur vcd-0.9.orig/psdcontrol.c vcd-0.9/psdcontrol.c
+--- vcd-0.9.orig/psdcontrol.c  2025-09-27 15:43:52.708831004 +0200
++++ vcd-0.9/psdcontrol.c       2025-09-27 15:47:19.216149801 +0200
+@@ -100,7 +100,8 @@
+ 
+ void cPsdSpiControl::SetItem(int Spi, cVcd *Vcd, union psd_vcd *PsdVcd)
+ {
+-  cControl *control = cControl::Control();
++  cMutexLock MutexLock;
++  cControl *control = cControl::Control(MutexLock);
+   if (control && typeid(*control)==typeid(cPsdVcdControl))
+      static_cast<cPsdVcdControl*>(control)->Stop();
+ 
+@@ -262,7 +263,8 @@
+ 
+ void cPsdVcdControl::SetTrack(int Track, cVcd *Vcd, union psd_vcd *PsdVcd)
+ {
+-  cControl *control = cControl::Control();
++  cMutexLock MutexLock;
++  cControl *control = cControl::Control(MutexLock);
+   if (control && typeid(*control)==typeid(cPsdSpiControl))
+      static_cast<cPsdSpiControl*>(control)->Stop();
+ 
+@@ -298,7 +300,8 @@
+ 
+ void cPsdVcdControl::SetEntry(int Entry, cVcd *Vcd, union psd_vcd *PsdVcd)
+ {
+-  cControl *control = cControl::Control();
++  cMutexLock MutexLock;
++  cControl *control = cControl::Control(MutexLock);
+   if (control && typeid(*control)==typeid(cPsdSpiControl))
+      static_cast<cPsdSpiControl*>(control)->Stop();
+ 

diff --git a/media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild 
b/media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild
index 16af019be9d4..c28272d69b50 100644
--- a/media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild
+++ b/media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8

diff --git a/media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild 
b/media-plugins/vdr-vcd/vdr-vcd-0.9-r5.ebuild
similarity index 79%
copy from media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild
copy to media-plugins/vdr-vcd/vdr-vcd-0.9-r5.ebuild
index 16af019be9d4..0582cd3f982b 100644
--- a/media-plugins/vdr-vcd/vdr-vcd-0.9-r4.ebuild
+++ b/media-plugins/vdr-vcd/vdr-vcd-0.9-r5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -11,15 +11,16 @@ SRC_URI="http://vdr.websitec.de/download/vdr-vcd/${P}.tgz";
 
 LICENSE="GPL-2"
 SLOT="0"
-KEYWORDS="~amd64 x86"
+KEYWORDS="~amd64 ~x86"
 
-DEPEND=">=media-video/vdr-1.5.9"
+DEPEND="media-video/vdr:="
 RDEPEND="${DEPEND}"
 
 PATCHES=( "${FILESDIR}/${P}_xgettext.diff"
                "${FILESDIR}/${P}_vdr-1.7.2.diff"
                "${FILESDIR}/${P}_devicetrickspeed.patch"
-               "${FILESDIR}/${P}_gcc-6.patch" )
+               "${FILESDIR}/${P}_gcc-6.patch"
+               "${FILESDIR}/${P}_Control.patch" )
 
 src_prepare() {
        vdr-plugin-2_src_prepare

Reply via email to