Bug #3854
fails to build parsers (FTBFS)
Status: | New | Start date: | 06/29/2015 | |
---|---|---|---|---|
Priority: | Low | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | - | |||
Target version: | - | |||
Resolution: | Pull request: | |||
Affected Versions: | OpenNebula 4.12 |
Description
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] %pure_parser ^^^^^^^^^^^^ 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
History
#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.