Bug #3854

fails to build parsers (FTBFS)

Added by Dmitry Smirnov about 6 years ago. Updated almost 6 years ago.

Status:NewStart date:06/29/2015
Priority:LowDue date:
Assignee:-% Done:


Target version:-
Resolution: Pull request:
Affected Versions:OpenNebula 4.12


On Debian build of OpenNebula 4.12.3 with "parsers=yes" fails as follows:

build_bison(["src/template/template_syntax.cc", "src/template/template_syntax.h"], ["src/template/template_syntax.y"]) 
template_syntax.y:81.1-12: warning: deprecated directive, use ‘%pure-parser’ [-Wdeprecated] 
template_syntax.y:82.1-14: warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated] 
 %name-prefix = "template__" 
template_syntax.y:83.1-14: warning: deprecated directive, use ‘%output’ [-Wdeprecated] 
 %output      = "template_syntax.cc" 
g++ -o src/template/Template.o -c -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-strong -Wformat -Werror=format-security -fno-strict-aliasing -g -g -Wall -DSQLITE_DB -DMYSQL_DB -DOLD_XMLRPC -DBIG_JOINS=1 -DNDEBUG -Iinclude -I/usr/include/mysql -I/usr/include -I/usr/include/libxml2 src/template/Template.cc 
In file included from src/template/Template.cc:18:0: 
template_syntax.hh:91:22: error: 'mem_collector' was not declared in this scope 
template_syntax.hh:91:38: error: 'mc' was not declared in this scope 
template_syntax.hh:91:51: error: expected primary-expression before '*' token 
template_syntax.hh:91:53: error: 'tmpl' was not declared in this scope 
template_syntax.hh:91:59: error: expected primary-expression before 'char' 
template_syntax.hh:91:76: error: expression list treated as compound expression in initializer [-fpermissive] 
scons: *** [src/template/Template.o] Error 1 
scons: building terminated because of errors. 

Installed versions:

  • Bison 2:3.0.2.dfsg-2
  • Flex 2.5.39-8+b1


#1 Updated by Ruben S. Montero about 6 years ago

  • Status changed from Pending to New
  • Priority changed from Normal to Low

Hi Dimitri,

This is actually a known issue, the include files re-define one of the functions, and we just remove the wrong lines at syntax.h lines; and upload those files to the repo. Unless there is a good reason to dig in the mysteries of lex&yacc we'll update manually the repo. Note also that the parsers are pretty stable right now and usually there is now need to rebuild them....

Anyway thanks for looking into it and reporting back!

#2 Updated by Dmitry Smirnov almost 6 years ago

IMHO there are pretty good reasons to re-build those files such as to make sure that everything it properly and consistently re-built from source on all architectures as well as to to avoid shipping pre-built files. This is a good practice and almost "a must" for Debian packages.

According to Debian, pre-built files that can't be re-built from source on build-time are non-free and therefore can't be shipped.
This qualifies for "serious" bug that can get "opennebula" package removed from Debian.

I'd very much like to have it fixed please.

Also available in: Atom PDF