[Debian-med-packaging] Bug#812681: mira: FTBFS with flex >= 2.6

Michael Tautschnig mt at debian.org
Mon Jan 25 20:58:48 UTC 2016


Package: mira
Version: 4.9.5-2
Severity: serious
Usertags: goto-cc

During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and pbuilder) the build failed with the following error. It should be noted
right away that this may be one of first attempts building with flex 2.6.
Notably, the flex NEWS says:

"C++ scanners now use references instead of pointers. See the manual for details."

[...]
g++ -DPACKAGE_NAME=\"mira\" -DPACKAGE_TARNAME=\"mira\" -DPACKAGE_VERSION=\"4.9.5_2\" -DPACKAGE_STRING=\"mira\ 4.9.5_2\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mira\" -DVERSION=\"4.9.5_2\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DENABLE64=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE__BOOL=1 -DHAVE_STDBOOL_H=1 -Drestrict=__restrict -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_STDLIB_H=1 -DHAVE_REALLOC=1 -DLSTAT_FOLLOWS_SLASHED_SYMLINK=1 -DHAVE_STRFTIME=1 -DHAVE_MEMSET=1 -DHAVE_FSEEKO=1 -DHAVE_ISBLANK=1 -DHAVE_BOOST=/\*\*/ -DHAVE_BOOST_THREAD=/\*\*/ -DHAVE_BOOST_REGEX=/\*\*/ -DHAVE_BOOST_SYSTEM=/\*\*/ -DHAVE_BOOST_FILESYSTEM=/\*\*/ -DHAVE_BOOST_IOSTREAMS=/\*\*/ -DHAVE_LIBRT=1 -DHAVE_GZOFFSET=1 -DBOUNDTRACKFLAG=1 -DBUGTRACKFLAG=1 -I.  -I../../src  -Wdate-time  -DPUBLICQUIET -DAJ_Linux64 -g -O0 -fstack-protector-strong -Wformat -Werror=format-security  -I/usr/include -O3 -funroll-loops -pthread -I/usr/include -I/usr/include -Werror=uninitialized -Werror=return-type -Werror=parentheses -Werror=unused-value -std=c++14 -c -o exp_flexer.o exp_flexer.cc
exp_flexer.cc: In member function 'virtual int EXPFlexLexer::yylex()':
exp_flexer.cc:766:9: error: no match for 'operator=' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'std::istream* {aka std::basic_istream<char>*}')
    yyin = & std::cin;
         ^
In file included from /usr/include/c++/5/iostream:40:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/istream:625:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator=(basic_istream&& __rhs)
       ^
/usr/include/c++/5/istream:625:7: note:   no known conversion for argument 1 from 'std::istream* {aka std::basic_istream<char>*}' to 'std::basic_istream<char>&&'
exp_flexer.cc:769:10: error: no match for 'operator=' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::ostream* {aka std::basic_ostream<char>*}')
    yyout = & std::cout;
          ^
In file included from /usr/include/c++/5/iostream:39:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/ostream:402:7: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator=(basic_ostream&& __rhs)
       ^
/usr/include/c++/5/ostream:402:7: note:   no known conversion for argument 1 from 'std::ostream* {aka std::basic_ostream<char>*}' to 'std::basic_ostream<char>&&'
exp_flexer.cc:1260:44: error: cannot convert 'std::istream {aka std::basic_istream<char>}' to 'std::istream* {aka std::basic_istream<char>*}' in assignment
    YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
                                            ^
In file included from /usr/include/c++/5/iostream:40:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/istream: In constructor 'EXPFlexLexer::EXPFlexLexer(std::istream*, std::ostream*)':
/usr/include/c++/5/istream:606:7: error: 'std::basic_istream<_CharT, _Traits>::basic_istream() [with _CharT = char; _Traits = std::char_traits<char>]' is protected
       basic_istream()
       ^
exp_flexer.cc:1370:75: error: within this context
 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
                                                                           ^
In file included from /usr/include/c++/5/iostream:39:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/ostream:384:7: error: 'std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char; _Traits = std::char_traits<char>]' is protected
       basic_ostream()
       ^
exp_flexer.cc:1370:75: error: within this context
 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
                                                                           ^
exp_flexer.cc:1372:7: error: no match for 'operator=' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'std::istream* {aka std::basic_istream<char>*}')
  yyin = arg_yyin;
       ^
In file included from /usr/include/c++/5/iostream:40:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/istream:625:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator=(basic_istream&& __rhs)
       ^
/usr/include/c++/5/istream:625:7: note:   no known conversion for argument 1 from 'std::istream* {aka std::basic_istream<char>*}' to 'std::basic_istream<char>&&'
exp_flexer.cc:1373:8: error: no match for 'operator=' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::ostream* {aka std::basic_ostream<char>*}')
  yyout = arg_yyout;
        ^
In file included from /usr/include/c++/5/iostream:39:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/ostream:402:7: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator=(basic_ostream&& __rhs)
       ^
/usr/include/c++/5/ostream:402:7: note:   no known conversion for argument 1 from 'std::ostream* {aka std::basic_ostream<char>*}' to 'std::basic_ostream<char>&&'
exp_flexer.cc: In member function 'virtual void EXPFlexLexer::switch_streams(std::istream*, std::ostream*)':
exp_flexer.cc:1419:9: error: no match for 'operator=' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::ostream* {aka std::basic_ostream<char>*}')
   yyout = new_out;
         ^
In file included from /usr/include/c++/5/iostream:39:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/ostream:402:7: note: candidate: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator=(std::basic_ostream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator=(basic_ostream&& __rhs)
       ^
/usr/include/c++/5/ostream:402:7: note:   no known conversion for argument 1 from 'std::ostream* {aka std::basic_ostream<char>*}' to 'std::basic_ostream<char>&&'
exp_flexer.cc: In member function 'virtual int EXPFlexLexer::LexerInput(char*, int)':
exp_flexer.cc:1428:11: error: base operand of '->' has non-pointer type 'std::istream {aka std::basic_istream<char>}'
  if ( yyin->eof() || yyin->fail() )
           ^
exp_flexer.cc:1428:26: error: base operand of '->' has non-pointer type 'std::istream {aka std::basic_istream<char>}'
  if ( yyin->eof() || yyin->fail() )
                          ^
exp_flexer.cc:1432:6: error: base operand of '->' has non-pointer type 'std::istream {aka std::basic_istream<char>}'
  yyin->get( buf[0] );
      ^
exp_flexer.cc:1434:11: error: base operand of '->' has non-pointer type 'std::istream {aka std::basic_istream<char>}'
  if ( yyin->eof() )
           ^
exp_flexer.cc:1437:11: error: base operand of '->' has non-pointer type 'std::istream {aka std::basic_istream<char>}'
  if ( yyin->bad() )
           ^
exp_flexer.cc: In member function 'virtual void EXPFlexLexer::LexerOutput(const char*, int)':
exp_flexer.cc:1454:14: error: base operand of '->' has non-pointer type 'std::ostream {aka std::basic_ostream<char>}'
  (void) yyout->write( buf, size );
              ^
exp_flexer.cc: In member function 'virtual void EXPFlexLexer::yyrestart(std::istream*)':
exp_flexer.cc:1774:48: error: no matching function for call to 'EXPFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream*&)'
  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
                                                ^
In file included from exp_flexer.cc:323:0:
/usr/include/FlexLexer.h:160:7: note: candidate: void EXPFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)
  void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream& s );
       ^
/usr/include/FlexLexer.h:160:7: note:   no known conversion for argument 2 from 'std::istream* {aka std::basic_istream<char>*}' to 'std::istream& {aka std::basic_istream<char>&}'
exp_flexer.cc: In member function 'void EXPFlexLexer::yy_load_buffer_state()':
exp_flexer.cc:1817:7: error: no match for 'operator=' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'std::istream* {aka std::basic_istream<char>*}')
  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
       ^
In file included from /usr/include/c++/5/iostream:40:0,
                 from exp_flexer.cc:96:
/usr/include/c++/5/istream:625:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator=(std::basic_istream<_CharT, _Traits>&&) [with _CharT = char; _Traits = std::char_traits<char>]
       operator=(basic_istream&& __rhs)
       ^
/usr/include/c++/5/istream:625:7: note:   no known conversion for argument 1 from 'std::istream* {aka std::basic_istream<char>*}' to 'std::basic_istream<char>&&'
exp_flexer.cc: In member function 'virtual yy_buffer_state* EXPFlexLexer::yy_create_buffer(std::istream*, int)':
exp_flexer.cc:1846:26: error: no matching function for call to 'EXPFlexLexer::yy_init_buffer(yy_buffer_state*&, std::istream*&)'
  yy_init_buffer( b, file );
                          ^
In file included from exp_flexer.cc:323:0:
/usr/include/FlexLexer.h:160:7: note: candidate: void EXPFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)
  void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream& s );
       ^
/usr/include/FlexLexer.h:160:7: note:   no known conversion for argument 2 from 'std::istream* {aka std::basic_istream<char>*}' to 'std::istream& {aka std::basic_istream<char>&}'
exp_flexer.cc: At global scope:
exp_flexer.cc:23:25: error: prototype for 'void EXPFlexLexer::yy_init_buffer(YY_BUFFER_STATE, std::istream*)' does not match any in class 'EXPFlexLexer'
     #define yyFlexLexer EXPFlexLexer
                         ^
exp_flexer.cc:1876:10: note: in expansion of macro 'yyFlexLexer'
     void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
          ^
In file included from exp_flexer.cc:323:0:
/usr/include/FlexLexer.h:160:7: error: candidate is: void EXPFlexLexer::yy_init_buffer(yy_buffer_state*, std::istream&)
  void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream& s );
       ^
Makefile:482: recipe for target 'exp_flexer.o' failed
make[7]: *** [exp_flexer.o] Error 1

The full build log is attached; please do let me know if the problem is
unreproducible, in which case I shall try to investigate further.

Best,
Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mira-build-log.txt.gz
Type: application/x-gunzip
Size: 21291 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-med-packaging/attachments/20160125/f4fee337/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/debian-med-packaging/attachments/20160125/f4fee337/attachment-0001.sig>


More information about the Debian-med-packaging mailing list