commit:     83a666612b950d27baf88c9de51e33dbd1f8ea67
Author:     Joerg Bornkessel <hd_brummy <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 15 15:05:47 2018 +0000
Commit:     Joerg Bornkessel <hd_brummy <AT> gentoo <DOT> org>
CommitDate: Sun Jul 15 15:05:47 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83a66661

media-video/vdr: fix gcc-7.2 issue, wrt bug 638348; cleanup

Package-Manager: Portage-2.3.41, Repoman-2.3.9

 media-video/vdr/files/vdr-2.0.6-r2_gentoo.patch    |  73 --------------
 .../vdr/files/vdr-2.2.0_unsignedtosigned.patch     | 112 +++++++++++++++++++++
 .../{vdr-2.2.0-r2.ebuild => vdr-2.2.0-r3.ebuild}   |  24 +++--
 3 files changed, 125 insertions(+), 84 deletions(-)

diff --git a/media-video/vdr/files/vdr-2.0.6-r2_gentoo.patch 
b/media-video/vdr/files/vdr-2.0.6-r2_gentoo.patch
deleted file mode 100644
index 516bb7b7254..00000000000
--- a/media-video/vdr/files/vdr-2.0.6-r2_gentoo.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-disabled plugin install from vdr source, we dont support this way
-patch to support LINGUAS variable
-fixed install on multicore cpu, creating CONFDIR on later time
-install libsi includes in own dir
-Signed-of-by: Joerg Bornkessel <[email protected]> 20/Jan/2015
-diff -Naur vdr-2.0.6.orig/Makefile vdr-2.0.6/Makefile
---- vdr-2.0.6.orig/Makefile    2014-09-22 22:17:23.000000000 +0200
-+++ vdr-2.0.6/Makefile 2014-09-24 15:22:43.000000000 +0200
-@@ -109,7 +109,7 @@
- VDRVERSION = $(shell sed -ne '/define VDRVERSION/s/^.*"\(.*\)".*$$/\1/p' 
config.h)
- APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' 
config.h)
- 
--all: vdr i18n plugins
-+all: vdr i18n
- 
- # Implicit rules:
- 
-@@ -162,7 +162,7 @@
- 
- PODIR     = po
- LOCALEDIR = locale
--I18Npo    = $(wildcard $(PODIR)/*.po)
-+I18Npo    = $(foreach dir,$(LINGUAS),$(wildcard $(PODIR)/$(dir)*.po))
- I18Nmo    = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
- I18Nmsgs  = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr.mo, 
$(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
- I18Npot   = $(PODIR)/vdr.pot
-@@ -185,7 +185,7 @@
- 
- install-i18n: i18n
-       @mkdir -p $(DESTDIR)$(LOCDIR)
--      cp -r $(LOCALEDIR)/* $(DESTDIR)$(LOCDIR)
-+      @(cd $(LOCALEDIR); for linguas in $(LINGUAS); do [ "$$linguas" = "en" ] 
&& continue; cp -r --parents $$linguas* $(DESTDIR)$(LOCDIR); done)
- 
- # The 'include' directory (for plugins):
- 
-@@ -247,7 +247,7 @@
- 
- # Install the files (note that 'install-pc' must be first!):
- 
--install: install-pc install-bin install-dirs install-conf install-doc 
install-plugins install-i18n install-includes
-+install: install-pc install-bin install-dirs install-conf install-doc 
install-i18n install-includes
- 
- # VDR binary:
- 
-@@ -259,11 +259,12 @@
- 
- install-dirs:
-       @mkdir -p $(DESTDIR)$(VIDEODIR)
--      @mkdir -p $(DESTDIR)$(CONFDIR)
--      @mkdir -p $(DESTDIR)$(CACHEDIR)
-+#     @mkdir -p $(DESTDIR)$(CONFDIR)
-+#     @mkdir -p $(DESTDIR)$(CACHEDIR)
-       @mkdir -p $(DESTDIR)$(RESDIR)
- 
- install-conf:
-+      @mkdir -p $(DESTDIR)$(CONFDIR)
-       @cp -pn *.conf $(DESTDIR)$(CONFDIR)
- 
- # Documentation:
-@@ -290,8 +291,11 @@
- # Includes:
- 
- install-includes: include-dir
--      @mkdir -p $(DESTDIR)$(INCDIR)
--      @cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
-+#     @mkdir -p $(DESTDIR)$(INCDIR)
-+#     @cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
-+      @mkdir -p $(DESTDIR)$(INCDIR)/vdr $(DESTDIR)$(INCDIR)/vdr/libsi
-+      @cp -pLR include/vdr $(DESTDIR)$(INCDIR)
-+      @cp -pLR include/libsi Make.config $(DESTDIR)$(INCDIR)/vdr
- 
- # pkg-config file:
- 

diff --git a/media-video/vdr/files/vdr-2.2.0_unsignedtosigned.patch 
b/media-video/vdr/files/vdr-2.2.0_unsignedtosigned.patch
new file mode 100644
index 00000000000..dd04abe1e2e
--- /dev/null
+++ b/media-video/vdr/files/vdr-2.2.0_unsignedtosigned.patch
@@ -0,0 +1,112 @@
+compile fix for gcc-7.2
+this will only attache the core vdr, not the extpatch-ng
+https://www.linuxtv.org/pipermail/vdr/2017-March/029229.html
+
+Signed-of by: Joerg Bornkessel <[email protected]> (2018/07/15)
+diff -Naur vdr-2.2.0.orig/diseqc.c vdr-2.2.0/diseqc.c
+--- vdr-2.2.0.orig/diseqc.c    2018-07-15 15:59:17.000000000 +0200
++++ vdr-2.2.0/diseqc.c 2018-07-15 16:04:00.000000000 +0200
+@@ -253,10 +253,10 @@
+   return result;
+ }
+ 
+-uint cDiseqc::SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t 
*Codes) const
++int cDiseqc::SetScrFrequency(int SatFrequency, const cScr *Scr, uint8_t 
*Codes) const
+ {
+   if ((Codes[0] & 0xF0) == 0x70 ) { // EN50607 aka JESS
+-     uint t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
++     int t = SatFrequency == 0 ? 0 : (SatFrequency - 100);
+      if (t < 2048 && Scr->Channel() >= 0 && Scr->Channel() < 32) {
+         Codes[1] = t >> 8 | Scr->Channel() << 3;
+         Codes[2] = t;
+@@ -266,7 +266,7 @@
+         }
+      }
+   else { // EN50494 aka Unicable
+-     uint t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 
4 - 350; // '+ 2' together with '/ 4' results in rounding!
++     int t = SatFrequency == 0 ? 0 : (SatFrequency + Scr->UserBand() + 2) / 4 
- 350; // '+ 2' together with '/ 4' results in rounding!
+      if (t < 1024 && Scr->Channel() >= 0 && Scr->Channel() < 8) {
+         Codes[3] = t >> 8 | (t == 0 ? 0 : scrBank << 2) | Scr->Channel() << 5;
+         Codes[4] = t;
+@@ -399,7 +399,7 @@
+   return NULL;
+ }
+ 
+-cDiseqc::eDiseqcActions cDiseqc::Execute(const char **CurrentAction, uchar 
*Codes, uint8_t *MaxCodes, const cScr *Scr, uint *Frequency) const
++cDiseqc::eDiseqcActions cDiseqc::Execute(const char **CurrentAction, uchar 
*Codes, uint8_t *MaxCodes, const cScr *Scr, int *Frequency) const
+ {
+   if (!*CurrentAction)
+      *CurrentAction = commands;
+diff -Naur vdr-2.2.0.orig/diseqc.h vdr-2.2.0/diseqc.h
+--- vdr-2.2.0.orig/diseqc.h    2018-07-15 15:59:17.000000000 +0200
++++ vdr-2.2.0/diseqc.h 2018-07-15 16:02:11.000000000 +0200
+@@ -86,7 +86,7 @@
+   mutable int scrBank;
+   char *commands;
+   bool parsing;
+-  uint SetScrFrequency(uint SatFrequency, const cScr *Scr, uint8_t *Codes) 
const;
++  int SetScrFrequency(int SatFrequency, const cScr *Scr, uint8_t *Codes) 
const;
+   int SetScrPin(const cScr *Scr, uint8_t *Codes) const;
+   const char *Wait(const char *s) const;
+   const char *GetPosition(const char *s) const;
+@@ -96,7 +96,7 @@
+   cDiseqc(void);
+   ~cDiseqc();
+   bool Parse(const char *s);
+-  eDiseqcActions Execute(const char **CurrentAction, uchar *Codes, uint8_t 
*MaxCodes, const cScr *Scr, uint *Frequency) const;
++  eDiseqcActions Execute(const char **CurrentAction, uchar *Codes, uint8_t 
*MaxCodes, const cScr *Scr, int *Frequency) const;
+       ///< Parses the DiSEqC commands and returns the appropriate action code
+       ///< with every call. CurrentAction must be the address of a character 
pointer,
+       ///< which is initialized to NULL. This pointer is used internally 
while parsing
+diff -Naur vdr-2.2.0.orig/dvbdevice.c vdr-2.2.0/dvbdevice.c
+--- vdr-2.2.0.orig/dvbdevice.c 2018-07-15 15:59:17.000000000 +0200
++++ vdr-2.2.0/dvbdevice.c      2018-07-15 16:02:11.000000000 +0200
+@@ -329,7 +329,7 @@
+   void ClearEventQueue(void) const;
+   bool GetFrontendStatus(fe_status_t &Status) const;
+   cPositioner *GetPositioner(void);
+-  void ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency);
++  void ExecuteDiseqc(const cDiseqc *Diseqc, int *Frequency);
+   void ResetToneAndVoltage(void);
+   bool SetFrontend(void);
+   virtual void Action(void);
+@@ -696,7 +696,7 @@
+   return positioner;
+ }
+ 
+-void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency)
++void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, int *Frequency)
+ {
+   if (!lnbPowerTurnedOn) {
+      CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must 
explicitly turn on LNB power
+@@ -806,7 +806,7 @@
+ 
+   SETCMD(DTV_DELIVERY_SYSTEM, frontendType);
+   if (frontendType == SYS_DVBS || frontendType == SYS_DVBS2) {
+-     unsigned int frequency = channel.Frequency();
++     int frequency = channel.Frequency();
+      if (Setup.DiSEqC) {
+         if (const cDiseqc *diseqc = Diseqcs.Get(device->CardIndex() + 1, 
channel.Source(), frequency, dtp.Polarization(), &scr)) {
+            frequency -= diseqc->Lof();
+@@ -829,7 +829,7 @@
+         }
+      else {
+         int tone = SEC_TONE_OFF;
+-        if (frequency < (unsigned int)Setup.LnbSLOF) {
++        if (frequency < Setup.LnbSLOF) {
+            frequency -= Setup.LnbFrequLo;
+            tone = SEC_TONE_OFF;
+            }
+diff -Naur vdr-2.2.0.orig/remux.c vdr-2.2.0/remux.c
+--- vdr-2.2.0.orig/remux.c     2018-07-15 15:59:17.000000000 +0200
++++ vdr-2.2.0/remux.c  2018-07-15 16:02:11.000000000 +0200
+@@ -1654,7 +1654,7 @@
+                           Div += parser->IFrameTemporalReferenceOffset();
+                        if (Div <= 0)
+                           Div = 1;
+-                       uint32_t Delta = ptsValues[0] / Div;
++                       int Delta = ptsValues[0] / Div;
+                        // determine frame info:
+                        if (isVideo) {
+                           if (abs(Delta - 3600) <= 1)
+diff -Naur vdr-2.2.0.orig/remux.c.orig vdr-2.2.0/remux.c.orig

diff --git a/media-video/vdr/vdr-2.2.0-r2.ebuild 
b/media-video/vdr/vdr-2.2.0-r3.ebuild
similarity index 93%
rename from media-video/vdr/vdr-2.2.0-r2.ebuild
rename to media-video/vdr/vdr-2.2.0-r3.ebuild
index 6062fc62c64..2b4a137a165 100644
--- a/media-video/vdr/vdr-2.2.0-r2.ebuild
+++ b/media-video/vdr/vdr-2.2.0-r3.ebuild
@@ -1,9 +1,9 @@
 # Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
-inherit flag-o-matic toolchain-funcs
+inherit eutils flag-o-matic toolchain-funcs
 
 # Switches supported by extensions-patch
 EXT_PATCH_FLAGS="alternatechannel graphtft naludump permashift_v1 pinplugin
@@ -186,7 +186,7 @@ src_prepare() {
                                tr ' ' '\n' |sort > "${T}"/old.IUSE
                        local DIFFS=$(diff -u "${T}"/old.IUSE 
"${T}"/new.IUSE|grep '^[+-][^+-]')
                        if [[ -z ${DIFFS} ]]; then
-                               einfo "EXT_PATCH_FLAGS is up to date."
+                               einfo "EXT_PATCH_FLAGS are up to date."
                        else
                                ewarn "IUSE differences!"
                                local diff
@@ -215,7 +215,9 @@ src_prepare() {
                eend $? "make depend failed"
        fi
 
-       eapply "${FILESDIR}/${P}-r2_gentoo.patch"
+       eapply "${FILESDIR}/${P}_gentoo.patch"
+       #gcc-7.2, this will fix only the core vdr, not the extpatch
+       eapply "${FILESDIR}/${P}_unsignedtosigned.patch"
 
        # fix some makefile issues
        sed -e "s:ifndef NO_KBD:ifeq (\$(USE_KBD),1):" \
@@ -234,16 +236,16 @@ src_prepare() {
 
        echo -e ${CAPS} > "${CAP_FILE}"
 
-       # L10N support
-       einfo "\n \t VDR supports the L10N values"
+       # 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 L10N=\"${LING_PO}\"\n"
+       einfo "\t LINGUAS=\"${LING_PO}\"\n"
 
-       if [[ -z ${L10N} ]]; then
-               einfo "\n \t No values in L10N="
+       if [[ -z ${LINGUAS} ]]; then
+               einfo "\n \t No values in LINGUAS="
                einfo "\t You will get only english text on OSD \n"
        fi
 
@@ -255,7 +257,7 @@ src_install() {
        # directory
        emake install \
        VIDEODIR="/" \
-       DESTDIR="${D}" install || die "emake install failed"
+       DESTDIR="${D%/}" install || die "emake install failed"
 
        keepdir "${PLUGIN_LIBDIR}"
 
@@ -278,7 +280,7 @@ src_install() {
                doins "${FILESDIR}"/channel_alternative.conf
        fi
 
-       chown -R vdr:vdr "${D}/${CONF_DIR}"
+       chown -R vdr:vdr "${D%/}/${CONF_DIR}"
 }
 
 pkg_postinst() {

Reply via email to