From 186fec90edaa698dab12d39a89ddb8adb801456a Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Tue, 16 Mar 2021 17:24:30 +0100 Subject: [PATCH 01/18] Update to bison 3.7.6 (#1920078) --- bison.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bison.spec b/bison.spec index 0f0fad4..a8da3b2 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison -Version: 3.7.4 -Release: 2%{?dist} +Version: 3.7.6 +Release: 1%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Tue Mar 16 2021 Arjun Shankar - 3.7.6-1 +- Update to bison 3.7.6 (#1920078) + * Tue Jan 26 2021 Fedora Release Engineering - 3.7.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index b636373..085f270 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (bison-3.7.4.tar.xz) = 3fc13ab21e28218afc9b7f1196a5607de7ff4403c4126df359848422a8057ac6c17ce4344864dd320b7c47a08d98e0f3e2929f25b06be3b1f1c867c0568f367c -SHA512 (bison-3.7.4.tar.xz.sig) = 40154e23cbd50a3fb11ce2dbd84895905e3346c118d9ab8f58f5ca3df0c1289a2151abccd977cf1d7b644e559c2fd5cc18b59ab2d559a5ea1e1b825aaceebdbb +SHA512 (bison-3.7.6.tar.xz) = 6c1c9b825fbd2c94b8903f03a7e68e6832599f7bbd8d3c49864537c11b038c45a15de02fd36128d662af314334c83515bbc132df84e9acc6c651e98649c65bad +SHA512 (bison-3.7.6.tar.xz.sig) = ed01c5355a7f28f3670184ecf15ab08cf5e8aacf87ee5c210d2ca2e6aa0829e443cabb18e4dd146a0d7d84a166623f36dff17b6b5150238da7c857484b2356c6 From 64ffd40f85715f1630120ebb12f4e81c3aa608c8 Mon Sep 17 00:00:00 2001 From: Edjunior Machado Date: Mon, 22 Feb 2021 17:32:58 +0100 Subject: [PATCH 02/18] Introduce CI gating --- .fmf/version | 1 + gating.yaml | 19 ++++++ plans/ci.fmf | 6 ++ tests/Sanity/basic-test/Makefile | 63 ++++++++++++++++++ tests/Sanity/basic-test/PURPOSE | 3 + tests/Sanity/basic-test/calc.y | 100 +++++++++++++++++++++++++++++ tests/Sanity/basic-test/main.fmf | 14 ++++ tests/Sanity/basic-test/runtest.sh | 61 ++++++++++++++++++ 8 files changed, 267 insertions(+) create mode 100644 .fmf/version create mode 100644 gating.yaml create mode 100644 plans/ci.fmf create mode 100644 tests/Sanity/basic-test/Makefile create mode 100644 tests/Sanity/basic-test/PURPOSE create mode 100644 tests/Sanity/basic-test/calc.y create mode 100644 tests/Sanity/basic-test/main.fmf create mode 100755 tests/Sanity/basic-test/runtest.sh diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..1ad2c12 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: CI Gating Plan +discover: + how: fmf + directory: tests +execute: + how: beakerlib diff --git a/tests/Sanity/basic-test/Makefile b/tests/Sanity/basic-test/Makefile new file mode 100644 index 0000000..9a64167 --- /dev/null +++ b/tests/Sanity/basic-test/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/bison/Sanity/basic-test +# Description: bison basic test +# Author: Edjunior Machado +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/bison/Sanity/basic-test +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE calc.y + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Edjunior Machado " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: bison basic test" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 1h" >> $(METADATA) + @echo "RunFor: bison" >> $(METADATA) + @echo "Requires: bison gcc" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Sanity/basic-test/PURPOSE b/tests/Sanity/basic-test/PURPOSE new file mode 100644 index 0000000..fe778df --- /dev/null +++ b/tests/Sanity/basic-test/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/bison/Sanity/basic-test +Description: bison basic test +Author: Edjunior Machado diff --git a/tests/Sanity/basic-test/calc.y b/tests/Sanity/basic-test/calc.y new file mode 100644 index 0000000..f1fac0b --- /dev/null +++ b/tests/Sanity/basic-test/calc.y @@ -0,0 +1,100 @@ +%code top { + #include + #include /* isdigit. */ + #include /* printf. */ + #include /* abort. */ + #include /* strcmp. */ + + int yylex (void); + void yyerror (char const *); +} + +/* Generate YYSTYPE from the types used in %token and %type. */ +%define api.value.type union +%token NUM "number" +%type expr term fact + +/* Generate the parser description file (calc.output). */ +%verbose + +/* Nice error messages with details. */ +%define parse.error verbose + +/* Enable run-time traces (yydebug). */ +%define parse.trace + +/* Formatting semantic values in debug traces. */ +%printer { fprintf (yyo, "%g", $$); } ; + +%% /* The grammar follows. */ +input: + %empty +| input line +; + +line: + '\n' +| expr '\n' { printf ("%.10g\n", $1); } +| error '\n' { yyerrok; } +; + +expr: + expr '+' term { $$ = $1 + $3; } +| expr '-' term { $$ = $1 - $3; } +| term +; + +term: + term '*' fact { $$ = $1 * $3; } +| term '/' fact { $$ = $1 / $3; } +| fact +; + +fact: + "number" +| '(' expr ')' { $$ = $2; } +; + +%% + +int +yylex (void) +{ + int c; + + /* Ignore white space, get first nonwhite character. */ + while ((c = getchar ()) == ' ' || c == '\t') + continue; + + if (c == EOF) + return 0; + + /* Char starts a number => parse the number. */ + if (c == '.' || isdigit (c)) + { + ungetc (c, stdin); + if (scanf ("%lf", &yylval.NUM) != 1) + abort (); + return NUM; + } + + /* Any other character is a token by itself. */ + return c; +} + +/* Called by yyparse on error. */ +void +yyerror (char const *s) +{ + fprintf (stderr, "%s\n", s); +} + +int +main (int argc, char const* argv[]) +{ + /* Enable parse traces on option -p. */ + for (int i = 1; i < argc; ++i) + if (!strcmp (argv[i], "-p")) + yydebug = 1; + return yyparse (); +} diff --git a/tests/Sanity/basic-test/main.fmf b/tests/Sanity/basic-test/main.fmf new file mode 100644 index 0000000..9efa915 --- /dev/null +++ b/tests/Sanity/basic-test/main.fmf @@ -0,0 +1,14 @@ +summary: bison basic test +description: '' +contact: +- Edjunior Machado +component: +- bison +test: ./runtest.sh +framework: beakerlib +recommend: +- bison +- gcc +duration: 1h +extra-summary: /tools/bison/Sanity/basic-test +extra-task: /tools/bison/Sanity/basic-test diff --git a/tests/Sanity/basic-test/runtest.sh b/tests/Sanity/basic-test/runtest.sh new file mode 100755 index 0000000..be397d7 --- /dev/null +++ b/tests/Sanity/basic-test/runtest.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/bison/Sanity/basic-test +# Description: bison basic test +# Author: Edjunior Machado +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="bison" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "cp calc.y $TmpDir" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest + # calc.y from http://git.savannah.gnu.org/cgit/bison.git/tree/examples/c/calc?h=v3.7.5 + rlRun -c "bison --defines --xml --graph=calc.gv -o calc.c calc.y" + + rlAssertExists "calc.c" + rlAssertGrep "int yylex (void);" calc.c + rlAssertExists "calc.h" + rlAssertGrep "int yyparse (void);" calc.h + + rlRun -c "gcc -std=c99 -o calc calc.c" + rlAssertExists "calc" + + rlAssertEquals "Testing if './calc <<< 1+2*3' is equal '7'" $(./calc <<< 1+2*3) 7 + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd From 8201a40ccb0dff8e142162b32cfb5d3e2f2f436c Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Tue, 18 May 2021 21:37:22 +0200 Subject: [PATCH 03/18] Rebuild with binutils-2.36.1-12.fc35 --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index a8da3b2..e0c4178 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.7.6 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Tue May 18 2021 Arjun Shankar - 3.7.6-2 +- Rebuild with binutils-2.36.1-12.fc35 + * Tue Mar 16 2021 Arjun Shankar - 3.7.6-1 - Update to bison 3.7.6 (#1920078) From 10f098be0e4636df5f457c9717f9b6f08caa42d4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 13:41:50 +0000 Subject: [PATCH 04/18] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From fabe45b9ac94ed67586f8817a72afa701f703050 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 18:38:37 +0000 Subject: [PATCH 05/18] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index e0c4178..839892c 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.7.6 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 3.7.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue May 18 2021 Arjun Shankar - 3.7.6-2 - Rebuild with binutils-2.36.1-12.fc35 From a3b0abe3438bfcef7469fc11993095c5c4bc4407 Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Mon, 13 Dec 2021 21:28:37 +0100 Subject: [PATCH 06/18] Update to bison 3.8.2 (#2002074) --- bison.spec | 7 +++++-- sources | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bison.spec b/bison.spec index 839892c..eae9ac0 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison -Version: 3.7.6 -Release: 3%{?dist} +Version: 3.8.2 +Release: 1%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Mon Dec 13 2021 Arjun Shankar - 3.8.2-1 +- Update to bison 3.8.2 (#2002074) + * Wed Jul 21 2021 Fedora Release Engineering - 3.7.6-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 085f270..f3f2816 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (bison-3.7.6.tar.xz) = 6c1c9b825fbd2c94b8903f03a7e68e6832599f7bbd8d3c49864537c11b038c45a15de02fd36128d662af314334c83515bbc132df84e9acc6c651e98649c65bad -SHA512 (bison-3.7.6.tar.xz.sig) = ed01c5355a7f28f3670184ecf15ab08cf5e8aacf87ee5c210d2ca2e6aa0829e443cabb18e4dd146a0d7d84a166623f36dff17b6b5150238da7c857484b2356c6 +SHA512 (bison-3.8.2.tar.xz) = d4d23af6671406e97257892f90651b67f2ab95219831372be032190b7156c10a3435d457857e677445df8b2327aacccc15344acbbc3808a6f332a93cce23b444 +SHA512 (bison-3.8.2.tar.xz.sig) = 8bb7743ca326e81a6c091b1413e3c09bd43c7eabbb80bac0638ccd52bdf7e3395cce300a86acd95f4637a9ec8a1b0e9a4d3d25d95ab0a8f03e57fd82eb87a7ac From baa17dc79e6e739e32898324c9d2ed47d2a062b2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 22:22:12 +0000 Subject: [PATCH 07/18] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index eae9ac0..b6bfc8e 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 3.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Mon Dec 13 2021 Arjun Shankar - 3.8.2-1 - Update to bison 3.8.2 (#2002074) From dd185e287c2805f0b2c433f14b3ddb4440a6e8a7 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 22:01:07 +0000 Subject: [PATCH 08/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index b6bfc8e..b8c69ad 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 3.8.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Wed Jan 19 2022 Fedora Release Engineering - 3.8.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From d50b04b4e6911db11b23dfd979f83dbdbcab0d55 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 22:54:54 +0000 Subject: [PATCH 09/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index b8c69ad..cdbc2e8 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 3.8.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Wed Jul 20 2022 Fedora Release Engineering - 3.8.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 2368a74ed4b6f35120f7219b8219e03befd39ffe Mon Sep 17 00:00:00 2001 From: Edjunior Machado Date: Fri, 9 Dec 2022 17:02:29 +0100 Subject: [PATCH 10/18] tests: Fix fmf plan deprecated attributes --- plans/ci.fmf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plans/ci.fmf b/plans/ci.fmf index 1ad2c12..3fd3ab7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,5 @@ summary: CI Gating Plan discover: how: fmf - directory: tests execute: - how: beakerlib + how: tmt From 17cf2b8eab90f0ac7b2d614240eb56f437e7f8cf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 14:39:20 +0000 Subject: [PATCH 11/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index cdbc2e8..c1dce25 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv3+ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig @@ -120,6 +120,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 3.8.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Wed Jan 18 2023 Fedora Release Engineering - 3.8.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 067a9cbdac9cedcdac2f17eb2dff62be4e930963 Mon Sep 17 00:00:00 2001 From: Arjun Shankar Date: Fri, 1 Sep 2023 12:33:32 +0200 Subject: [PATCH 12/18] Migrate License field to SPDX identifiers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2 Reviewed-by: Frédéric Bérat --- bison-license-check.sh | 108 +++++++++++++++++++++++++++++++++++++++++ bison.spec | 14 +++++- 2 files changed, 120 insertions(+), 2 deletions(-) create mode 100755 bison-license-check.sh diff --git a/bison-license-check.sh b/bison-license-check.sh new file mode 100755 index 0000000..e39c8e9 --- /dev/null +++ b/bison-license-check.sh @@ -0,0 +1,108 @@ +#!/bin/bash + +# Run this in a bison source tree basedir to quickly guess the licensing +# status of various bison source files. e.g. when using +# glibc-maintainer-scripts for package maintenance, this means running it in +# the bison-patches directory. +# We use this because for some reason, fossology is unable to grok bison +# sources for a license analysis. + +for f in $(find . -type f | grep -v '\.git/' | grep -v 'gnulib/'); do + + if file $f | grep -q text; then # Hoping this is true iff the file is a text file + + license="Unknown" + + if head -n50 $f \ + | grep -C50 -i "This.*file is free software; the Free Software Foundation" \ + | grep -C50 -i "unlimited permission to copy and/or distribute it" \ + | grep -C50 -i "with or without" \ + | grep -qi "modifications, as long as this notice is preserved"; then + license="FSFULLR" + fi + + if head -n50 $f \ + | grep -C50 -i "This.*\(program\|file\) is free software" \ + | grep -C50 -i "GNU General Public License" \ + | grep -C50 -i "either version 2" \ + | grep -qi "any later version"; then + license="GPL-2.0-or-later" + fi + + if head -n50 $f \ + | grep -C50 -i "This.*\(program\|file\) is free" \ + | grep -C50 -i "GNU General Public License" \ + | grep -C50 -i "either version 3" \ + | grep -qi "any later version"; then + license="GPL-3.0-or-later" + fi + + # Order of check for v2 and v2.1 is important here; + # "either version 2" will also match "either version 2.1" + if head -n50 $f \ + | grep -C50 -i "This.*\(program\|file\) is free software" \ + | grep -C50 -i "GNU Lesser General Public License" \ + | grep -C50 -i "either version 2" \ + | grep -qi "any later version"; then + license="LGPL-2.0-or-later" + fi + + if head -n50 $f \ + | grep -C50 -i "Th.* is free software" \ + | grep -C50 -i "GNU Lesser General Public" \ + | grep -C50 -i "License" \ + | grep -C50 -i "either" \ + | grep -C50 -i "version 2.1" \ + | grep -qi "any later version"; then + license="LGPL-2.1-or-later" + fi + + if head -n50 $f \ + | grep -C50 -i "This.*\(program\|file\) is free software" \ + | grep -C50 -i "GNU Lesser General Public License" \ + | grep -C50 -i "either version 3" \ + | grep -qi "any later version"; then + license="LGPL-3.0-or-later" + fi + + if head -n50 $f \ + | grep -C50 -i "Permission is granted" \ + | grep -C50 -i "copy, distribute.*modify" \ + | grep -C50 -i "GNU Free Documentation License" \ + | grep -C50 -i "Version 1.3" \ + | grep -qi "any later version"; then + license="GFDL-1.3-or-later" + fi + + if head -n50 $f \ + | grep -C50 -i "Permission is hereby granted, free of charge" \ + | grep -C50 -i "to any person" \ + | grep -C50 -i "the Software without restriction" \ + | grep -C50 -i "use, copy, modify, merge, publish, distribute, sublicense" \ + | grep -qi "X Consortium"; then + license="X11" + fi + + if head -n50 $f \ + | grep -C50 -i "This file is distributed under the same license as" \ + | grep -qi "package"; then + license="Same-as-package-license" + fi + + if head -n50 $f \ + | grep -A20 -i "as .*exception" \ + | grep -qi "2\.2 of bison"; then + license="$license WITH Bison-exception-2.2" + fi + + if head -n50 $f \ + | grep -A20 -i "as .*exception" \ + | grep -A20 -i "distribute" \ + | grep -A20 -i "generated by autoconf" \ + | grep -qi "same distribution terms"; then + license="$license WITH Autoconf-exception-generic-3.0" + fi + + echo $license "("$f")" + fi; +done | sort diff --git a/bison.spec b/bison.spec index c1dce25..d61b57e 100644 --- a/bison.spec +++ b/bison.spec @@ -1,8 +1,12 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 5%{?dist} -License: GPLv3+ +Release: 6%{?dist} + +# An SPDX license string check done against bison-3.8.2 found strings +# corresponding to the following licenses across the bison source tree: +License: GPL-3.0-or-later AND GPL-3.0-or-later WITH Autoconf-exception-generic-3.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-2.0-or-later AND GPL-2.0-or-later WITH Autoconf-exception-generic AND LGPL-3.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later AND FSFULLR AND GFDL-1.3-or-later AND X11 + Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig # genereted from https://ftp.gnu.org/gnu/gnu-keyring.gpg via: @@ -120,6 +124,12 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Fri Sep 1 2023 Arjun Shankar - 3.8.2-6 +- Analyse bison sources for license information +- Migrate License field to SPDX identifiers for + https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_2 + (#2222079) + * Wed Jul 19 2023 Fedora Release Engineering - 3.8.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 08afa5a30b0cf837226c545faaef6fe06564ed88 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 14:25:50 +0000 Subject: [PATCH 13/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index d61b57e..038d2f4 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 6%{?dist} +Release: 7%{?dist} # An SPDX license string check done against bison-3.8.2 found strings # corresponding to the following licenses across the bison source tree: @@ -124,6 +124,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 3.8.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Sep 1 2023 Arjun Shankar - 3.8.2-6 - Analyse bison sources for license information - Migrate License field to SPDX identifiers for From d83cfd466ffb3aa29771c3f7adc48141aa62d42a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 23 Jan 2024 00:26:44 +0000 Subject: [PATCH 14/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index 038d2f4..a61c93a 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 7%{?dist} +Release: 8%{?dist} # An SPDX license string check done against bison-3.8.2 found strings # corresponding to the following licenses across the bison source tree: @@ -124,6 +124,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Tue Jan 23 2024 Fedora Release Engineering - 3.8.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 3.8.2-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 4dae81436197449b8eec5d16de5b7e35f5a9bb76 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 18:19:38 +0000 Subject: [PATCH 15/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index a61c93a..be0e4c2 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 8%{?dist} +Release: 9%{?dist} # An SPDX license string check done against bison-3.8.2 found strings # corresponding to the following licenses across the bison source tree: @@ -124,6 +124,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 3.8.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Tue Jan 23 2024 Fedora Release Engineering - 3.8.2-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 73bc4f2166091cd4fba554c3fde78aba86d8c32d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 12:32:26 +0000 Subject: [PATCH 16/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index be0e4c2..ff10c6b 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 9%{?dist} +Release: 10%{?dist} # An SPDX license string check done against bison-3.8.2 found strings # corresponding to the following licenses across the bison source tree: @@ -124,6 +124,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 3.8.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jul 17 2024 Fedora Release Engineering - 3.8.2-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 20bb1a840e2933e3f1d9fd6c5c400b63a61d2c0b Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 22 Apr 2025 18:48:04 -0400 Subject: [PATCH 17/18] Fix build with GCC 15 GCC 15 added bounds-checks to vector when assertions are enabled, which caused test "764: Leaked lookahead after nondeterministic parse syntax error: glr2.cc FAILED (glr-regression.at:1862)". The patch is from Gentoo and was submitted upstream without response. https://bugs.gentoo.org/935754 https://bugzilla.redhat.com/show_bug.cgi?id=2336443 --- bison-3.8.2-gcc15-glibcxx-assertions.patch | 69 ++++++++++++++++++++++ bison.spec | 5 +- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 bison-3.8.2-gcc15-glibcxx-assertions.patch diff --git a/bison-3.8.2-gcc15-glibcxx-assertions.patch b/bison-3.8.2-gcc15-glibcxx-assertions.patch new file mode 100644 index 0000000..245cc84 --- /dev/null +++ b/bison-3.8.2-gcc15-glibcxx-assertions.patch @@ -0,0 +1,69 @@ +https://bugs.gentoo.org/935754 +https://lists.gnu.org/archive/html/bison-patches/2024-07/msg00000.html + +* data/skeletons/glr2.cc (yyundeleteLastStack): Recover +yylookaheadNeeds stack entry also, to prevent desyncing the sizes +of yystates and yylookaheadNeeds. +(class glr_state_set): New field yylookaheadNeedLastDeleted, +tracks lookahead need of last deleted state. +(yymarkStackDeleted): Save yylookaheadNeeds also. +--- +Hi! + +GCC 15 has added bounds-checks to vector when assertions are +enabled. This has caught a bug in Bison. See bug referenced above. + +Now, WRT the fix: I am not sure of its correctness, but it appears to +pass tests and everything seems to indicate that the presumption it is +based on is correct. That presumption is that the two stacks mentioned +above (yylookaheadNeeds and yystates) ought to be the same size. I +inferred this because all other locations that alter the size of the two +vectors appear to do so in lock-step. + +TIA, have a lovely day. + + data/skeletons/glr2.cc | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc +index 970ccfdf..8b962d6f 100644 +--- a/data/skeletons/glr2.cc ++++ b/data/skeletons/glr2.cc +@@ -1080,7 +1080,10 @@ namespace + { + size_t k = yyk.uget (); + if (yystates[k] != YY_NULLPTR) +- yylastDeleted = yystates[k]; ++ { ++ yylastDeleted = yystates[k]; ++ yylookaheadNeedLastDeleted = yylookaheadNeeds[k]; ++ } + yystates[k] = YY_NULLPTR; + } + +@@ -1093,6 +1096,7 @@ namespace + if (yylastDeleted == YY_NULLPTR || !yystates.empty ()) + return; + yystates.push_back (yylastDeleted); ++ yylookaheadNeeds.push_back (yylookaheadNeedLastDeleted); + YYCDEBUG << "Restoring last deleted stack as stack #0.\n"; + clearLastDeleted (); + } +@@ -1102,6 +1106,7 @@ namespace + void + yyremoveDeletes () + { ++ YYASSERT(yystates.size () == yylookaheadNeeds.size ()); + size_t newsize = yystates.size (); + /* j is the number of live stacks we have seen. */ + for (size_t i = 0, j = 0; j < newsize; ++i) +@@ -1160,6 +1165,7 @@ namespace + + /** The last stack we invalidated. */ + glr_state* yylastDeleted; ++ bool yylookaheadNeedLastDeleted; + }; // class glr_state_set + } // namespace + +-- +2.45.2 diff --git a/bison.spec b/bison.spec index ff10c6b..786b35e 100644 --- a/bison.spec +++ b/bison.spec @@ -14,6 +14,9 @@ Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig # gpg2 --export --export-options export-minimal 7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E > gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg Source2: gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg +# from Gentoo sys-devel/bison +Patch0: bison-3.8.2-gcc15-glibcxx-assertions.patch + # testsuite dependency BuildRequires: gcc-c++ BuildRequires: autoconf @@ -80,7 +83,7 @@ Bison manual section for more information. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%autosetup +%autosetup -p1 %build %configure From 96d07b164cfdc864a2ef75a16cd9e6b83eeb41c0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 17:43:03 +0000 Subject: [PATCH 18/18] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- bison.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bison.spec b/bison.spec index 786b35e..eabe3b8 100644 --- a/bison.spec +++ b/bison.spec @@ -1,7 +1,7 @@ Summary: A GNU general-purpose parser generator Name: bison Version: 3.8.2 -Release: 10%{?dist} +Release: 11%{?dist} # An SPDX license string check done against bison-3.8.2 found strings # corresponding to the following licenses across the bison source tree: @@ -127,6 +127,9 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* %{_libdir}/liby.a %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 3.8.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu Jan 16 2025 Fedora Release Engineering - 3.8.2-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild