From 94aeb45fa6fca75ee3cdf48ce827dd4e963eec27 Mon Sep 17 00:00:00 2001 From: SFG545 Date: Fri, 17 Jul 2026 07:45:45 -0500 Subject: [PATCH] Add patches for Doxygen and GObject introspection to improve compatibility with Yacc --- doxygen/doxygen-1.17.0-byacc.patch | 60 +++++++++++++++++++ ...patch => fontconfig-2.18.1-posixify.patch} | 56 +++++++---------- .../gobject-introspection-1.86.0-yacc.patch | 39 ++++++++++++ 3 files changed, 122 insertions(+), 33 deletions(-) create mode 100644 doxygen/doxygen-1.17.0-byacc.patch rename fontconfig/{fontconfig-2.17.1-posixify.patch => fontconfig-2.18.1-posixify.patch} (50%) create mode 100644 gobject-introspection/gobject-introspection-1.86.0-yacc.patch diff --git a/doxygen/doxygen-1.17.0-byacc.patch b/doxygen/doxygen-1.17.0-byacc.patch new file mode 100644 index 0000000..75ce441 --- /dev/null +++ b/doxygen/doxygen-1.17.0-byacc.patch @@ -0,0 +1,60 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -256,8 +256,9 @@ + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_ALLOW_KEYWORD_MACROS=") + endif() + endif() ++find_program(BISON_EXECUTABLE NAMES bison byacc yacc) + find_package(BISON REQUIRED) +-if(BISON_VERSION VERSION_LESS 2.7) ++if(BISON_VERSION AND BISON_VERSION VERSION_LESS 2.7) + message(SEND_ERROR "Doxygen requires at least bison version 2.7 (installed: ${BISON_VERSION})") + endif() + find_package(Threads) +--- a/deps/libmscgen/CMakeLists.txt ++++ b/deps/libmscgen/CMakeLists.txt +@@ -30,6 +30,7 @@ + mscgen_ps_out.c + mscgen_null_out.c + ${GENERATED_SRC}/mscgen_language.cpp ++${GENERATED_SRC}/mscgen_language.h + ${GENERATED_SRC}/mscgen_lexer.cpp + ${GENERATED_SRC}/mscgen_lexer.l.h + mscgen_api.c +@@ -44,4 +45,5 @@ + BISON_TARGET(mscgen_language + mscgen_language.y + ${GENERATED_SRC}/mscgen_language.cpp ++ DEFINES_FILE ${GENERATED_SRC}/mscgen_language.h + COMPILE_FLAGS "${YACC_FLAGS}") +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -182,7 +182,8 @@ + BISON_TARGET(constexp + ${CMAKE_CURRENT_LIST_DIR}/constexp.y + ${GENERATED_SRC}/ce_parse.cpp +- COMPILE_FLAGS "${YACC_FLAGS}") ++ DEFINES_FILE ${GENERATED_SRC}/ce_parse.hpp ++ COMPILE_FLAGS "${YACC_FLAGS} -p constexpYY") + + if(enable_coverage) + add_custom_command( +--- a/src/constexp.y ++++ b/src/constexp.y +@@ -22,6 +22,8 @@ + #include + #include + ++#define YYSTACKDATA constexpYYSTACKDATA ++ + int constexpYYerror(yyscan_t yyscanner, const char *s) + { + struct constexpYY_state* yyextra = constexpYYget_extra(yyscanner); +@@ -33,7 +35,6 @@ + + %} + +-%define api.prefix {constexpYY} + %define api.pure full + %lex-param {yyscan_t yyscanner} + %parse-param {yyscan_t yyscanner} diff --git a/fontconfig/fontconfig-2.17.1-posixify.patch b/fontconfig/fontconfig-2.18.1-posixify.patch similarity index 50% rename from fontconfig/fontconfig-2.17.1-posixify.patch rename to fontconfig/fontconfig-2.18.1-posixify.patch index 2b8cb38..125c743 100644 --- a/fontconfig/fontconfig-2.17.1-posixify.patch +++ b/fontconfig/fontconfig-2.18.1-posixify.patch @@ -1,30 +1,3 @@ -diff --git a/test/run-test.sh b/test/run-test.sh -index 9b3c91c..73c0d3e 100644 ---- a/test/run-test.sh -+++ b/test/run-test.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # fontconfig/test/run-test.sh - # - # Copyright © 2000 Keith Packard -@@ -84,11 +84,11 @@ fstat() { - ret=$(stat -c "$fmt" "$fn") - else - # BSD -- if [ "x$fmt" == "x%Y" ]; then -+ if [ "x$fmt" = "x%Y" ]; then - ret=$(stat -f "%m" "$fn") -- elif [ "x$fmt" == "x%y" ]; then -+ elif [ "x$fmt" = "x%y" ]; then - ret=$(stat -f "%Sm" -t "%F %T %z" "$fn") -- elif [ "x$fmt" == "x%n %s %y %z" ]; then -+ elif [ "x$fmt" = "x%n %s %y %z" ]; then - ret=$(stat -f "%SN %z %Sm %Sc" -t "%F %T %z" "$fn") - else - echo "E: Unknown format" -diff --git a/test/run-test-map.sh b/test/run-test-map.sh -index 869d7b2..c634bb8 100755 --- a/test/run-test-map.sh +++ b/test/run-test-map.sh @@ -1,4 +1,4 @@ @@ -33,7 +6,7 @@ index 869d7b2..c634bb8 100755 # fontconfig/test/run-test-cache-map.sh # # Copyright © 2018 Keith Packard -@@ -41,9 +41,8 @@ EXPECTED="out-map.expected" +@@ -41,9 +41,8 @@ FCLIST=../fc-list/fc-list$EXEEXT FCCACHE=../fc-cache/fc-cache$EXEEXT @@ -45,16 +18,33 @@ index 869d7b2..c634bb8 100755 fi FONT1=$TESTDIR/4x6.pcf -diff --git a/test/wrapper-script.sh b/test/wrapper-script.sh -index 94dcb85..ae68c6d 100755 +--- a/test/run-test.d/remap-flatpak.sh ++++ b/test/run-test.d/remap-flatpak.sh +@@ -83,13 +83,13 @@ + $BWRAP --bind / / --ro-bind "$TESTCACHE2DIR" /usr/lib/fontconfig/cache --ro-bind "$TESTFONT2DIR" /usr/share/fonts --bind "$TESTBUILD2DIR" /usr/share/fontconfig --ro-bind "$TESTRUNDIR" "$TESTRUNDIR" --ro-bind "$TESTCACHE1DIR" "$TESTRUNDIR"/fonts-cache --ro-bind "$TESTFONT1DIR" "$TESTRUNDIR"/fonts --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD2DIR"/bind-fonts.conf ls $(sed 's/:file=//' "$TESTRESULT3") > /dev/null + + # Check the amount of cache files +-if [ $(ls "$TESTCACHE1DIR"|wc -l) == 2 ]; then : ; else ++if [ "$(ls "$TESTCACHE1DIR" | wc -l)" -eq 2 ]; then : ; else + echo "*** Test failed: $TEST" + echo "Too much cache files created at host cache dir." + ls "$TESTCACHE1DIR" + exit 1 + fi +-if [ $(ls "$TESTCACHE2DIR"|wc -l) == 2 ]; then : ; else ++if [ "$(ls "$TESTCACHE2DIR" | wc -l)" -eq 2 ]; then : ; else + echo "*** Test failed: $TEST" + echo "Too much cache files created at runtime cache dir." + ls "$TESTCACHE2DIR" --- a/test/wrapper-script.sh +++ b/test/wrapper-script.sh -@@ -1,20 +1,24 @@ +@@ -1,4 +1,4 @@ -#! /bin/bash +#! /bin/sh - CC=${CC:-gcc} + set -e +@@ -7,16 +7,20 @@ case "$1" in *.exe) export WINEPATH=$(${CC} -print-sysroot)/mingw/bin @@ -69,7 +59,7 @@ index 94dcb85..ae68c6d 100755 + esac + done) + cd "$mingw_path" || exit 1 -+ if [ "$(dirname -- "$1")" = "." ]; then ++ if [ "$(dirname "$1")" = "." ]; then + /usr/bin/env wine "$fccwd/$1" else - /usr/bin/env wine $@ diff --git a/gobject-introspection/gobject-introspection-1.86.0-yacc.patch b/gobject-introspection/gobject-introspection-1.86.0-yacc.patch new file mode 100644 index 0000000..d54a378 --- /dev/null +++ b/gobject-introspection/gobject-introspection-1.86.0-yacc.patch @@ -0,0 +1,39 @@ +--- a/giscanner/meson.build ++++ b/giscanner/meson.build +@@ -55,12 +55,12 @@ + subdir('doctemplates/mallard') + + flex = find_program('flex', 'win_flex') +-bison = find_program('bison', 'win_bison') ++yacc = find_program('yacc', 'bison', 'win_bison') + + scannerparser = custom_target('scannerparser', + input: 'scannerparser.y', + output: ['scannerparser.c', 'scannerparser.h'], +- command: [bison, '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'] ++ command: [yacc, '-d', '-o', '@OUTPUT0@', '@INPUT@'] + + ) + +--- a/giscanner/scannerparser.y ++++ b/giscanner/scannerparser.y +@@ -250,7 +250,7 @@ + + %} + +-%define parse.error verbose ++%error-verbose + %union { + char *str; + GList *list; +@@ -266,8 +266,8 @@ + %lex-param { GISourceScanner* scanner } + + %token BASIC_TYPE +-%token IDENTIFIER "identifier" +-%token TYPEDEF_NAME "typedef-name" ++%token IDENTIFIER ++%token TYPEDEF_NAME + + %token INTEGER FLOATING BOOLEAN CHARACTER STRING +