Bug#984385: vdr-plugin-dvd: ftbfs with GCC-11

Matthias Klose doko at debian.org
Wed Mar 3 16:18:17 GMT 2021


Package: src:vdr-plugin-dvd
Version: 0.3.6~b03+cvs20090426.0013-28
Severity: normal
Tags: sid bookworm
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-11

[This bug is not targeted to the upcoming bullseye release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-11/g++-11, but succeeds to build with gcc-10/g++-10. The
severity of this report will be raised before the bookworm release,
so nothing has to be done for the bullseye release.

The full build log can be found at:
http://people.debian.org/~doko/logs/20210228/filtered/gcc11/vdr-plugin-dvd_0.3.6~b03+cvs20090426.0013-28_unstable_gcc11.log
The last lines of the build log are at the end of this report.

To build with GCC 11, either set CC=gcc-11 CXX=g++-11 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures are new warnings resulting in build failures with
-Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-11/porting_to.html

GCC 11 defaults to the GNU++17 standard.  If your package installs
header files in /usr/include, please don't work around C++17 issues
by choosing a lower C++ standard for the package build, but fix these
issues to build with the C++17 standard.

[...]
player-dvd.c:417:30: warning: format ‘%lld’ expects argument of type ‘long long int’, but argument 5 has type ‘int64_t’ {aka ‘long int’} [-Wformat=]
  417 |         fprintf(f, "%d:%d:%lld:%s\n", re->title, re->chapter, re->second, re->key);
      |                           ~~~^                                ~~~~~~~~~~
      |                              |                                    |
      |                              long long int                        int64_t {aka long int}
      |                           %ld
player-dvd.c: In member function ‘void cDvdPlayer::GetAudioLanguageStr(const char**) const’:
player-dvd.c:3066:30: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 3066 |             audioTypeDescr = "ac3";
      |                              ^~~~~
player-dvd.c:3069:30: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 3069 |             audioTypeDescr = "dts";
      |                              ^~~~~
player-dvd.c:3072:30: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 3072 |             audioTypeDescr = "pcm";
      |                              ^~~~~
player-dvd.c:3075:30: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 3075 |             audioTypeDescr = "mp2";
      |                              ^~~~~
player-dvd.c:3078:30: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
 3078 |             audioTypeDescr = "non";
      |                              ^~~~~
player-dvd.c:3083:33: warning: narrowing conversion of ‘audioStreamLanguageCode’ from ‘uint16_t’ {aka ‘short unsigned int’} to ‘char’ [-Wnarrowing]
 3083 |     char audioLanguageStr[3] = {audioStreamLanguageCode, audioStreamLanguageCode >> 8, 0};
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~
player-dvd.c:3083:82: warning: narrowing conversion of ‘(int)(audioStreamLanguageCode >> 8)’ from ‘int’ to ‘char’ [-Wnarrowing]
 3083 |     char audioLanguageStr[3] = {audioStreamLanguageCode, audioStreamLanguageCode >> 8, 0};
      |                                                          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~
player-dvd.c: In member function ‘void cDvdPlayer::GetSubtitleLanguageStr(const char**) const’:
player-dvd.c:3101:36: warning: narrowing conversion of ‘subtitleStreamLanguageCode’ from ‘int’ to ‘char’ [-Wnarrowing]
 3101 |     char subtitleLanguageStr[3] = {subtitleStreamLanguageCode, subtitleStreamLanguageCode >> 8, 0};
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~
player-dvd.c:3101:91: warning: narrowing conversion of ‘(subtitleStreamLanguageCode >> 8)’ from ‘int’ to ‘char’ [-Wnarrowing]
 3101 |     char subtitleLanguageStr[3] = {subtitleStreamLanguageCode, subtitleStreamLanguageCode >> 8, 0};
      |                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -g -O2 -fdebug-prefix-map=/build/vdr-J3eFss/vdr-2.4.1=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -O3 -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvd"' -D__STDC_LIMIT_MACROS -I/usr/include/vdr/include -I/usr/include/dvdnav control-dvd.c
control-dvd.c: In member function ‘void cDvdPlayerControl::TimeSearchProcess(eKeys)’:
control-dvd.c:435:27: error: ‘min’ was not declared in this scope; did you mean ‘std::min’?
  435 |                 Seconds = min(Total - Current - STAY_SECONDS_OFF_END, Seconds);
      |                           ^~~
      |                           std::min
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1927,
                 from /usr/include/c++/11/math.h:36,
                 from /usr/include/vdr/tools.h:18,
                 from /usr/include/vdr/i18n.h:14,
                 from control-dvd.c:12:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: ‘std::min’ declared here
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
control-dvd.c:453:23: error: ‘min’ was not declared in this scope; did you mean ‘std::min’?
  453 |             Seconds = min(Total - STAY_SECONDS_OFF_END, Seconds);
      |                       ^~~
      |                       std::min
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1927,
                 from /usr/include/c++/11/math.h:36,
                 from /usr/include/vdr/tools.h:18,
                 from /usr/include/vdr/i18n.h:14,
                 from control-dvd.c:12:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: ‘std::min’ declared here
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
make[2]: *** [Makefile:83: control-dvd.o] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j1 all VDRDIR=/usr/include/vdr LIBDIR=. LOCALEDIR=locale returned exit code 2
make[1]: *** [debian/rules:16: override_dh_auto_build] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:13: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2



More information about the pkg-vdr-dvb-devel mailing list