Bison 3.6.4 requirement causing packaging difficulty in KDE Neon
At the moment in KDE Neon (currently based on Ubuntu 20.04) the only currently available version of Bison is 3.5.1 which is causing some difficulty with building Kalk. This has been preventing us from producing new working Kalk packages for the Neon variant of plasma-mobile images.
The build system gracefully rejects our version of Bison, as it should:
src/mathengine/parser.yy:24.10-16: error: require bison 3.6.4, but have 3.5.1
24 | %require "3.6.4"
| ^~~~~~~
make[3]: *** [src/CMakeFiles/kalk.dir/build.make:65: src/parser.cc] Error 63
I have attempted very simple edits in order to get the build to try to build with older versions, but as I expected this did not go down too well.
/usr/share/bison/skeletons/bison.m4:1033: error: invalid error_verbose value:
/usr/share/bison/skeletons/bison.m4:1033: the top level
src/mathengine/parser.yy:45.1-28: error: invalid value for %define variable 'parse.error': 'detailed'
45 | %define parse.error detailed
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/mathengine/parser.yy:45.1-28: accepted value: 'simple'
src/mathengine/parser.yy:45.1-28: accepted value: 'verbose'
This lead me to attempting to try to backport newer releases of Bison packages, but I have quickly learned that this became a rabbit hole, discovering I needed to backport other parts of the build chain to support building a newer release of Bison (m4, autoconf and these of course required other newer dependencies etc) which becomes quite a significant undertaking.
The next Ubuntu LTS release is likely going to be in April 2022 and I would expect that Neon is likely to be rebased on that shortly after which would resolve this current issue entirely, but this is probably too long of a wait.
I am not really sure how to move forward from this point, so felt it best to raise this to discuss and find a solution.