New issue by pullmoll on void-packages repository https://github.com/void-linux/void-packages/issues/25876 Description: The update of `biso-3.7.3` broke the `qt5-webkit` build. It seems to be related to the automagically chosen filename for the header files with defines, i.e. the `-d` option of bison. The newer bison's choice for a name is obviously not what the perl script expects. I tried to patch `Source/WebCore/css/makegrammar.pl` to cure that - to no avail. Here's my patch: ``` --- Source/WebCore/css/makegrammar.pl 2020-04-14 00:51:51.000000000 +0200 +++ Source/WebCore/css/makegrammar.pl 2020-10-25 14:59:39.879927464 +0100 @@ -73,7 +73,6 @@ } my $fileBase = File::Spec->join($outputDir, $filename); -my @bisonCommand = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp"); +my @bisonCommand = ($bison, "--no-lines", "--defines=$fileBase.hpp", "-p", $symbolsPrefix, $grammarFilePath , "-o", $fileBase.cpp); -push @bisonCommand, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives. system(@bisonCommand) == 0 or die; --- Source/WebCore/css/CSSGrammar.y.in 2020-04-14 00:51:51.000000000 +0200 +++ Source/WebCore/css/CSSGrammar.y.in 2020-10-25 15:35:20.818799854 +0100 @@ -21,7 +21,7 @@ * */ -%pure-parser +%define api.pure %parse-param { CSSParser* parser } %lex-param { CSSParser* parser } ``` Now the previously missing `XPathGrammar.hpp` is created now yet the file `CSSGrammar.h` is still missing and the build fails with: ``` In file included from /builddir/qtwebkit-opensource-src-5.212/Source/WebCore/css/CSSAllInOne.cpp:69: /builddir/qtwebkit-opensource-src-5.212/Source/WebCore/css/CSSParser.cpp:11161:10: fatal error: CSSGrammar.h : No such file or directory 11161 | #include "CSSGrammar.h" | ^~~~~~~~~~~~~~ compilation terminated. ``` Note: I also tried `--defines=$fileBase.cpp.h` which is an alternative name for the input file which is read and wrapped in `makegrammar.pl` a few lines below the patch. I also tried with and without changing the obsolete `%pure-parser` to `%define api.pure`. If anyone has a better knowledge of bison/yacc and how to fix the perl script please help fixing this issue.