diff -Naur a/libsmartcols/meson.build b/libsmartcols/meson.build --- a/libsmartcols/meson.build 2026-06-16 04:34:39.314348277 -0500 +++ b/libsmartcols/meson.build 2026-07-08 18:27:43.133267018 -0500 @@ -14,7 +14,7 @@ scols_bison = generator( bison, output : ['@BASENAME@.c', '@BASENAME@.h'], - arguments : ['@INPUT@', '--output=@OUTPUT0@', '--defines=@OUTPUT1@']) + arguments : ['-o@OUTPUT0@', '-H@OUTPUT1@', '@INPUT@']) scols_parser_c = scols_bison.process('src/filter-parser.y') scols_flex = generator( diff -Naur a/libsmartcols/src/filter-parser.y b/libsmartcols/src/filter-parser.y --- a/libsmartcols/src/filter-parser.y 2026-06-09 04:39:48.958828649 -0500 +++ b/libsmartcols/src/filter-parser.y 2026-07-08 18:25:46.288175609 -0500 @@ -24,7 +24,7 @@ %lex-param {void *scanner} %parse-param {void *scanner}{struct libscols_filter *fltr} -%define parse.error verbose +%error-verbose %code requires { @@ -60,14 +60,6 @@ %token T_INVALID_NUMBER -%destructor { - /* This destruct is called on error. The root node will be deallocated - * by scols_unref_filter(). - */ - if (fltr->root != $$) - filter_unref_node($$); - } - %% %start filter; diff -Naur a/meson.build b/meson.build --- a/meson.build 2026-06-16 07:01:17.105953806 -0500 +++ b/meson.build 2026-07-08 18:27:39.359167044 -0500 @@ -976,7 +976,7 @@ have = get_option('use-tty-group') conf.set('USE_TTY_GROUP', have ? 1 : false) -bison = find_program('bison') +bison = find_program('bison', 'byacc', 'yacc') flex = find_program('flex') sed = find_program('sed') @@ -984,7 +984,7 @@ bison_gen = generator( bison, output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'], - arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']) + arguments : ['-H@OUTPUT1@', '-o@OUTPUT0@', '@INPUT@']) python_program = find_program('python3', 'python', native : true)