commit: fea3b647b4b875c220b9f17d046455133b32095c Author: Martin Dummer <martin.dummer <AT> gmx <DOT> net> AuthorDate: Fri Sep 26 22:21:26 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Oct 3 00:45:35 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fea3b647
media-plugins/vdr-devstatus: add 0.5.0 introduce subslot dependency on media-video/vdr Signed-off-by: Martin Dummer <martin.dummer <AT> gmx.net> Part-of: https://github.com/gentoo/gentoo/pull/43952 Closes: https://github.com/gentoo/gentoo/pull/43952 Signed-off-by: Sam James <sam <AT> gentoo.org> media-plugins/vdr-devstatus/Manifest | 1 + .../vdr-devstatus-0.5.0-dvb-adapter-frontend.patch | 23 +++++++ .../files/vdr-devstatus-0.5.0-memoryleak.patch | 74 ++++++++++++++++++++++ media-plugins/vdr-devstatus/metadata.xml | 5 +- .../vdr-devstatus/vdr-devstatus-0.5.0.ebuild | 34 ++++++++++ 5 files changed, 136 insertions(+), 1 deletion(-) diff --git a/media-plugins/vdr-devstatus/Manifest b/media-plugins/vdr-devstatus/Manifest index 556d83bc7b20..682f2aff2ab7 100644 --- a/media-plugins/vdr-devstatus/Manifest +++ b/media-plugins/vdr-devstatus/Manifest @@ -1 +1,2 @@ DIST vdr-devstatus-0.4.1.tgz 22469 BLAKE2B 36e60b2d754209f5a2e30ff62114575565d9e0acf21e269797b39e9e487831288a7fcf0c12b32d2ed40f4c626ce6f6514169a767035d704a84c33ead25eb65c0 SHA512 4dde8cce6b4aaa6e0ce22b2cd5ad718ab04e7e5967a3cb2c05ac64946115b6291d395e36dff38d479e5a7d5c3c296feb4df7f8dce509c15ac0d8cafa179b7177 +DIST vdr-devstatus-0.5.0.tar.gz 22458 BLAKE2B fd94c422809c13734ca245641ef012cae8760ef0a3f228f8dbc7cdec30b23a7f4da8258e8960c17bab7ab6324d07f31eed87a76a56f56a8cee5588815641ad28 SHA512 c36330ada546ecc4cae23d3b0d4aecdc29992f680c6f381cd66b704190b6f0887bcf8b533bf1b76ecb494399b7291ac678ace57414fd9d894335fcf687eafad9 diff --git a/media-plugins/vdr-devstatus/files/vdr-devstatus-0.5.0-dvb-adapter-frontend.patch b/media-plugins/vdr-devstatus/files/vdr-devstatus-0.5.0-dvb-adapter-frontend.patch new file mode 100644 index 000000000000..2d0f9b5d5dab --- /dev/null +++ b/media-plugins/vdr-devstatus/files/vdr-devstatus-0.5.0-dvb-adapter-frontend.patch @@ -0,0 +1,23 @@ +--- a/devstatus.c ++++ b/devstatus.c +@@ -199,6 +199,10 @@ + private: + public: + void deviceinfoAsString(cDevice *d) { ++ cDvbDevice *dvb = dynamic_cast<cDvbDevice *>(d); ++ if (dvb == NULL) ++ return; ++ + struct dvb_frontend_info m_FrontendInfo; + int m_Frontend; + // fe_status_t status; +@@ -208,8 +212,7 @@ + char* output = NULL; + + #define FRONTEND_DEVICE "/dev/dvb/adapter%d/frontend%d" +-// cString dev = cString::sprintf(FRONTEND_DEVICE, d->CardIndex() + 1, 0); +- cString dev = cString::sprintf(FRONTEND_DEVICE, d->CardIndex(), 0); ++ cString dev = cString::sprintf(FRONTEND_DEVICE, dvb->Adapter(), dvb->Frontend()); + m_Frontend = open(dev, O_RDONLY | O_NONBLOCK); + if (m_Frontend < 0) { + return; diff --git a/media-plugins/vdr-devstatus/files/vdr-devstatus-0.5.0-memoryleak.patch b/media-plugins/vdr-devstatus/files/vdr-devstatus-0.5.0-memoryleak.patch new file mode 100644 index 000000000000..fc4d193b8f2b --- /dev/null +++ b/media-plugins/vdr-devstatus/files/vdr-devstatus-0.5.0-memoryleak.patch @@ -0,0 +1,74 @@ +--- a/devstatus.c ++++ b/devstatus.c +@@ -617,8 +617,8 @@ + cString cPluginDevstatus::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) { + // Process SVDRP commands this plugin implements + if(strcasecmp(Command, "DEVSTAT") == 0) { +- char* output = NULL; +- asprintf(&output, "%s:\n", tr("List of DVB devices")); ++ cString output; ++ output = cString::sprintf("%s:\n", tr("List of DVB devices")); + for (int i = 0; i < cDevice::NumDevices(); i++) { + cDevice *d = cDevice::GetDevice(i); + char* devName = NULL; +@@ -626,7 +626,7 @@ + if (d->HasDecoder() || d->IsPrimaryDevice()) + asprintf(&devInfo, " (%s%s%s)", d->HasDecoder() ? tr("device with decoder") : "", (d->HasDecoder() && d->IsPrimaryDevice()) ? ", " : "", d->IsPrimaryDevice() ? tr("primary device") : ""); + asprintf(&devName, "--- %s %d%s ---", tr("Device"), i+1, devInfo ? devInfo : ""); +- asprintf(&output, "%s %s:\n", output , devName); // add device output and there info's ++ output = cString::sprintf("%s %s:\n", *output , devName); // add device output and there info's + free(devName); + if (devInfo) + free(devInfo); +@@ -638,30 +638,29 @@ + Name = strdup(r->name); + char* itemText = NULL; + asprintf(&itemText, "%s %s", DAYDATETIME(r->timer->StartTime()), Name); +- asprintf(&output, "%s %s\n", output , itemText); ++ output = cString::sprintf("%s %s\n", *output , itemText); + free(itemText); + } + Count++; + } + } + if (Count == 0) +- asprintf(&output, "%s %s\n", output, tr("currently no recordings")); ++ output = cString::sprintf("%s %s\n", *output, tr("currently no recordings")); + if (i < cDevice::NumDevices()) +- asprintf(&output, "%s\n", output); ++ output = cString::sprintf("%s\n", *output); + } + // we use the default reply code here +- // return cString::sprintf("%s", output); + return output; + } + + if(strcasecmp(Command, "RECNUMBER") == 0) { +- char* output = NULL; +- asprintf(&output, "%s:\n", tr("Number of concurrent recordings")); ++ cString output; ++ output = cString::sprintf("%s:\n", tr("Number of concurrent recordings")); + for (int i = 0; i < cDevice::NumDevices(); i++) { + cDevice *d = cDevice::GetDevice(i); + char* devName = NULL; + asprintf(&devName, "%s %d", tr("Device"), i+1); +- asprintf(&output, "%s %s:", output , devName); // add device output and there info's ++ output = cString::sprintf("%s %s:", *output , devName); // add device output and there info's + free(devName); + int Count = 0; + for (cRecObj *r = CurrentRecordings.First(); r; r = CurrentRecordings.Next(r)){ // add recordings to the output +@@ -669,12 +668,11 @@ + Count++; + } + } +- asprintf(&output, "%s %i\n", output, Count); ++ output = cString::sprintf("%s %i\n", *output, Count); + if (i < cDevice::NumDevices()) +- asprintf(&output, "%s\n", output); ++ output = cString::sprintf("%s\n", *output); + } + // we use the default reply code here +- // return cString::sprintf("%s", output); + return output; + } + diff --git a/media-plugins/vdr-devstatus/metadata.xml b/media-plugins/vdr-devstatus/metadata.xml index cb1acdaa84f3..a1f70a2d40a3 100644 --- a/media-plugins/vdr-devstatus/metadata.xml +++ b/media-plugins/vdr-devstatus/metadata.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> + <pkgmetadata> <maintainer type="person" proxied="yes"> <email>[email protected]</email> <name>Martin Dummer</name> @@ -13,4 +13,7 @@ <email>[email protected]</email> <name>Gentoo VDR Project</name> </maintainer> + <upstream> + <remote-id type="github">vdr-projects/vdr-plugin-devstatus</remote-id> + </upstream> </pkgmetadata> diff --git a/media-plugins/vdr-devstatus/vdr-devstatus-0.5.0.ebuild b/media-plugins/vdr-devstatus/vdr-devstatus-0.5.0.ebuild new file mode 100644 index 000000000000..1a93b9b393c3 --- /dev/null +++ b/media-plugins/vdr-devstatus/vdr-devstatus-0.5.0.ebuild @@ -0,0 +1,34 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit vdr-plugin-2 + +DESCRIPTION="VDR plugin: display the usage status of the available DVB devices" +HOMEPAGE="https://github.com/vdr-projects/vdr-plugin-devstatus/" +SRC_URI="https://github.com/vdr-projects/vdr-plugin-devstatus/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/vdr-plugin-devstatus-${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +DEPEND="media-video/vdr:=" +RDEPEND="${DEPEND}" + +QA_FLAGS_IGNORED=" + usr/lib/vdr/plugins/libvdr-.* + usr/lib64/vdr/plugins/libvdr-.*" +PATCHES=( + "${FILESDIR}/${P}-dvb-adapter-frontend.patch" + "${FILESDIR}/${P}-memoryleak.patch" +) + +src_prepare() { + # remove untranslated .po files + rm "${S}"/po/{ca_ES,cs_CZ,da_DK,el_GR,et_EE,hr_HR,hu_HU,nl_NL,nn_NO,pl_PL,pt_PT,ro_RO,sl_SI,sv_SE,tr_TR}.po \ + || die "failed to remove untranslated .po files" + + vdr-plugin-2_src_prepare +}
