Hi,
I’m looking into packaging Serna for Debian. Not sure how far I’ll get, but I’ll be posting my experiences here, mostly as notes for myself:
At first, I’m trying to simply get it to build.
- I started by checking out the current SVN,
- copying the files antlr-2.7.1.tar.gz DITA-OT1.4_fullpackage_bin.tar.gz docbook-xsl-1.68.1.tar.bz2 and qtpropertybrowser-2.5-opensource.tar.gz into 3rd/packages.
- Because I use git-svn, I had to create the directories 3rd/bin, 3rd/lib and 3rd/jade/lib
- I can now, in 3rd and with the right dependencies installed, run ./configure syspkgonly && ./checked_build.sh
- This fails in jade. I remove the flag "--no-verify" to ltconfig in antlr/2.7.1/antlr-2.7.1/lib/cpp/configure and try again (This needs to be investigated more). Now it works.
- In build/, I try ./configure syspkg && make.
- This fails due to some precision loss problems on amd64. I fix this by running
Code:
sed -e 's/typedef unsigned int size_type/typedef (void *) size_type/' -i $(fgrep -l size_type -r ../sfworks/ ../serna/)
and undoing the effect in the file ../sfworks/common/FlexString.h again.
- Now, a template definitions is overlapping. This needs to be fixed in sfworks/common/IterTraits.h.
- In sfworks/common/impl/ThreadMutex.cxx, an && defined(__amd64__) has to be added.
- In a few places, I changed a cast to (int) to (long int).
At this point, I’m stuck: It seems that the bison used on Debian (version 2.4.1) is too new and too strict, and does not allow refering to $1.asString() in some places in sfworks/xpath/impl3/xpathParser.y and sfworks/xslt/impl/xsltParser.y. It works somewhat when using $<asString()>1 instead, but then I get this error message, and I don’t know how to continue:
Code:
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx: In member function ‘int Xslt::XsltTokenizer::getToken(Xpath::TokenValue*)’:
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:63: error: ‘LITERAL’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:63: error: ‘OPSLASH’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:64: error: ‘OP2SLASH’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:64: error: ‘AXISNAME’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:65: error: ‘NTEST_NODE’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:65: error: ‘NTEST_COMMENT’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:66: error: ‘NTEST_TEXT’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:66: error: ‘NTEST_PI’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:67: error: ‘NCNAME’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:67: error: ‘OPUNION’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:68: error: ‘OPDCOLON’ was not declared in this scope
/home/jojo/debian/official/serna/serna-free/sfworks/xslt/impl/Tokenizer.cxx:70: error: ‘FUNCTIONNAME’ was not declared in this scope
I have put my repository up on
git.nomeata.de Git - serna.git/summary, where my changes can be found. I’d be grateful for any hints about the bison problem!