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/.gitignore b/.gitignore index 45f963b..9c0b9aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,6 @@ -bison-2.4.tar.bz2 -bison-2.4.1.tar.bz2 -bison-2.4.2.tar.bz2 -bison-2.4.3.tar.bz2 -bison-*/ -/bison-2.5.tar.bz2 -/bison-2.6.1.tar.xz -/bison-2.6.4.tar.xz -/bison-2.7.tar.xz -/bison-3.0.2.tar.xz -/bison-3.0.4.tar.xz +# Release tarballs. +/bison-*.tar.[bgx]z* +# Generated (source) RPMs. +/*.rpm +# Expanded source trees. +/bison-*/ diff --git a/bison-3.0.4-c++-test-failure.patch b/bison-3.0.4-c++-test-failure.patch deleted file mode 100644 index 89fc5f6..0000000 --- a/bison-3.0.4-c++-test-failure.patch +++ /dev/null @@ -1,151 +0,0 @@ -commit 952416114729b95209dccfc4edacfc1ff13b4e82 -Author: Akim Demaille -Date: Mon Jan 26 18:23:12 2015 +0100 - - tests: c++: fix symbol lookup issue - - Sun C 5.13 SunOS_sparc 2014/10/20 reports errors on tests 430-432. - - Reported by Dennis Clarke. - - - * tests/c++.at (Variants): Be sure to emit operator<< before using it: - use "%code top" rather than "%code". - Prefer std::vector to std::list. - Do not define anything in std::, to avoid undefined behavior. - -diff --git a/tests/c++.at b/tests/c++.at -index 55d7d40..60292f4 100644 ---- a/tests/c++.at -+++ b/tests/c++.at -@@ -96,7 +96,7 @@ AT_SETUP([C++ Variant-based Symbols]) - AT_KEYWORDS([variant]) - - AT_BISON_OPTION_PUSHDEFS([%skeleton "lalr1.cc" %debug $1]) --# Store strings and integers in a list of strings. -+# Store strings and integers in a vector of strings. - AT_DATA_GRAMMAR([list.y], - [[%skeleton "lalr1.cc" - %define api.value.type variant -@@ -114,20 +114,20 @@ AT_DATA_GRAMMAR([list.y], - } - - %token INT "int" --%type < std::list > exp -+%type < std::vector > exp - - %printer { yyo << $$; } - %printer - { -- for (std::list::const_iterator i = $$.begin (); i != $$.end (); ++i) -+ for (std::vector::const_iterator i = $$.begin (); i != $$.end (); ++i) - { - if (i != $$.begin ()) - yyo << ", "; - yyo << *i; - } -- } < std::list > -+ } < std::vector > - --%code requires { #include } -+%code requires { #include } - %code { int yylex (yy::parser::semantic_type* yylval); } - - %% -@@ -185,7 +185,7 @@ m4_pushdef([AT_TEST], - [AT_SETUP([Variants $1]) - - AT_BISON_OPTION_PUSHDEFS([%debug $1]) --# Store strings and integers in a list of strings. -+# Store strings and integers in a vector of strings. - AT_DATA_GRAMMAR([list.y], - [[%debug - %define api.value.type variant -@@ -194,29 +194,25 @@ AT_DATA_GRAMMAR([list.y], - - %code requires // code for the .hh file - { --#include -+#include - #include --typedef std::list strings_type; -+typedef std::vector strings_type; - } - --%code // code for the .cc file -+%code top // code for the .cc file. - { - #include // abort, getenv - #include -+#include - #include -+#include - -- namespace yy -- { -- static]AT_TOKEN_CTOR_IF([[ -- parser::symbol_type yylex ()]], [[ -- parser::token_type yylex (parser::semantic_type* yylval]AT_LOCATION_IF([, -- parser::location_type* yylloc])[)]])[; -- } - -- // Printing a list of strings (for %printer). -- // Koening look up will look into std, since that's an std::list. -- namespace std -+ typedef std::vector strings_type; -+ -+ namespace yy - { -+ // Must be available early, as is used in %destructor. - std::ostream& - operator<<(std::ostream& o, const strings_type& s) - { -@@ -230,16 +226,27 @@ typedef std::list strings_type; - return o << ')'; - } - } -+} - -- // Conversion to string. -- template -- inline -- std::string -- to_string (const T& t) -+%code // code for the .cc file. -+{ -+ namespace yy - { -- std::ostringstream o; -- o << t; -- return o.str (); -+ static]AT_TOKEN_CTOR_IF([[ -+ parser::symbol_type yylex ()]], [[ -+ parser::token_type yylex (parser::semantic_type* yylval]AT_LOCATION_IF([, -+ parser::location_type* yylloc])[)]])[; -+ -+ // Conversion to string. -+ template -+ inline -+ std::string -+ to_string (const T& t) -+ { -+ std::ostringstream o; -+ o << t; -+ return o.str (); -+ } - } - } - -@@ -252,10 +259,10 @@ typedef std::list strings_type; - // Using the template type to exercize its parsing. - // Starting with :: to ensure we don't output "<::" which starts by the - // digraph for the left square bracket. --%type <::std::list> list; -+%type <::std::vector> list; - - %printer { yyo << $$; } -- <::std::string> <::std::list>; -+ <::std::string> <::std::vector>; - %destructor { std::cerr << "Destroy: " << $$ << '\n'; } <*>; - %destructor { std::cerr << "Destroy: \"" << $$ << "\"\n"; } <::std::string>; - %% diff --git a/bison-3.0.5-gnulib-fseterr.patch b/bison-3.0.5-gnulib-fseterr.patch new file mode 100644 index 0000000..cd2a482 --- /dev/null +++ b/bison-3.0.5-gnulib-fseterr.patch @@ -0,0 +1,19 @@ +commit 4af4a4a71827c0bc5e0ec67af23edef4f15cee8e +Author: Paul Eggert +Date: Mon Mar 5 10:56:29 2018 -0800 + + fflush: adjust to glibc 2.28 libio.h removal + (Only part of this commit was backported as needed.) + +diff -Nrup a/lib/fseterr.c b/lib/fseterr.c +--- a/lib/fseterr.c 2018-05-08 06:02:48.000000000 -0400 ++++ b/lib/fseterr.c 2018-08-14 16:06:19.636282264 -0400 +@@ -29,7 +29,7 @@ fseterr (FILE *fp) + /* Most systems provide FILE as a struct and the necessary bitmask in + , because they need it for implementing getc() and putc() as + fast macros. */ +-#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 ++#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 + /* GNU libc, BeOS, Haiku, Linux libc5 */ + fp->_flags |= _IO_ERR_SEEN; + #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ 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-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 ce9cb56..eabe3b8 100644 --- a/bison.spec +++ b/bison.spec @@ -1,26 +1,33 @@ Summary: A GNU general-purpose parser generator Name: bison -Version: 3.0.4 -Release: 6%{?dist} -License: GPLv3+ -Group: Development/Tools -Source: ftp://ftp.gnu.org/pub/gnu/bison/bison-%{version}.tar.xz +Version: 3.8.2 +Release: 11%{?dist} -# https://bugzilla.redhat.com/show_bug.cgi?id=948856 -# Submitted for upstream inclusion on 2013-05-17. -Patch0: bison-3.0.4-c++-test-failure.patch +# 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: +# curl https://ftp.gnu.org/gnu/gnu-keyring.gpg | gpg2 --import +# 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 BuildRequires: flex +BuildRequires: gnupg2 -URL: http://www.gnu.org/software/bison/ -BuildRoot: %{_tmppath}/%{name}-root +URL: http://www.gnu.org/software/%{name}/ BuildRequires: m4 >= 1.4 +BuildRequires: make #java-1.7.0-openjdk-devel Requires: m4 >= 1.4 -Requires(post): /sbin/install-info -Requires(preun): /sbin/install-info # bison contains a copy of gnulib. As a copylib, gnulib was granted # an exception that allows bundling it with other software. For @@ -45,7 +52,6 @@ Bison. %package devel Summary: -ly library for development using Bison-generated parsers -Group: Development/Libraries Provides: bison-static = %{version}-%{release} %description devel @@ -67,7 +73,6 @@ simple programs to supply minimal support for the generated parsers. %package runtime Summary: Runtime support files used by Bison-generated parsers -Group: Development/Libraries %description runtime The bison-runtime package contains files used at runtime by parsers @@ -77,50 +82,35 @@ these files are available. See the Internationalization in the Bison manual section for more information. %prep -%setup -q -%patch0 -p1 +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 %build %configure -make +%make_build %check make check #make maintainer-check %install -rm -rf $RPM_BUILD_ROOT -%makeinstall +%make_install # Remove unpackaged files. -rm -f $RPM_BUILD_ROOT/%{_bindir}/yacc -rm -f $RPM_BUILD_ROOT/%{_infodir}/dir -rm -f $RPM_BUILD_ROOT/%{_mandir}/man1/yacc* -rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/calc++/* -rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/mfcalc/* -rm -f $RPM_BUILD_ROOT/%{_docdir}/%{name}/examples/rpcalc/* +rm -f %{buildroot}/%{_bindir}/yacc +rm -f %{buildroot}/%{_infodir}/dir +rm -f %{buildroot}/%{_mandir}/man1/yacc* +rm -rf %{buildroot}/%{_docdir}/%{name}/examples/* %find_lang %{name} %find_lang %{name}-runtime +%find_lang %{name}-gnulib gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info* -%post -if [ -f %{_infodir}/bison.info.gz ]; then # for --excludedocs - /sbin/install-info %{_infodir}/bison.info.gz %{_infodir}/dir --entry="* bison: (bison). The GNU parser generator." || : -fi - -%preun -if [ $1 = 0 ]; then - if [ -f %{_infodir}/bison.info.gz ]; then # for --excludedocs - /sbin/install-info --delete %{_infodir}/bison.info.gz %{_infodir}/dir --entry="* bison: (bison). The GNU parser generator." || : - fi -fi - # The distribution contains also source files. These are used by m4 # when the target parser file is generated. -%files -f %{name}.lang -%defattr(-,root,root) +%files -f %{name}.lang -f %{name}-gnulib.lang %doc AUTHORS ChangeLog NEWS README THANKS TODO COPYING %{_mandir}/*/bison* %{_datadir}/bison @@ -136,10 +126,109 @@ fi %defattr(-,root,root) %{_libdir}/liby.a -%clean -rm -rf $RPM_BUILD_ROOT - %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 + +* 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 + +* 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 + 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 + +* 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 + +* 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) + +* 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 + +* 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 + +* Mon Jan 11 2021 Arjun Shankar - 3.7.4-1 +- Update to bison 3.7.4 (#1897780) + +* Tue Nov 10 2020 Arjun Shankar - 3.7.3-1 +- Update to bison 3.7.3 (#1887766) + +* Tue Sep 8 2020 Arjun Shankar - 3.7.2-1 +- Update to bison 3.7.2 (#1876120) + +* Thu Aug 27 2020 Arjun Shankar - 3.7.1-1 +- Update to bison 3.7.1 (#1859887) + +* Sat Aug 01 2020 Fedora Release Engineering - 3.6.4-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 3.6.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Dan Čermák - 3.6.4-1 +- Update to bison 3.6.4 (#1792738, #1847608) + +* Tue Jan 28 2020 Fedora Release Engineering - 3.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 7 2020 Arjun Shankar - 3.5-1 +- Update to bison 3.5 (#1751843) + +* Wed Jul 24 2019 Fedora Release Engineering - 3.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Jun 21 2019 Arjun Shankar - 3.4.1-1 +- Update to bison 3.4.1 (#1631912) + +* Thu Jan 31 2019 Fedora Release Engineering - 3.0.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Aug 14 2018 Patsy Griffin Franklin - 3.0.5-1 +- _IO_ftrylockfile is obsolete as part of the removal of libio.h +- Build requires gcc-c++ to fix build failure. (#1603491) +- Update to bison 3.0.5 (#1583179) + +* Thu Jul 12 2018 Fedora Release Engineering - 3.0.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 3.0.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 3.0.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.0.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Mon Feb 13 2017 Patsy Franklin - 3.0.4-6 - Proposed upstream patch to fix testsuite failures for tests 430-432. BZ #1422261 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/gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg b/gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg new file mode 100644 index 0000000..3015744 Binary files /dev/null and b/gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg differ diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..3fd3ab7 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,5 @@ +summary: CI Gating Plan +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index b7e3f5c..f3f2816 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -c342201de104cc9ce0a21e0ad10d4021 bison-3.0.4.tar.xz +SHA512 (bison-3.8.2.tar.xz) = d4d23af6671406e97257892f90651b67f2ab95219831372be032190b7156c10a3435d457857e677445df8b2327aacccc15344acbbc3808a6f332a93cce23b444 +SHA512 (bison-3.8.2.tar.xz.sig) = 8bb7743ca326e81a6c091b1413e3c09bd43c7eabbb80bac0638ccd52bdf7e3395cce300a86acd95f4637a9ec8a1b0e9a4d3d25d95ab0a8f03e57fd82eb87a7ac 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 diff --git a/upstream-key.gpg b/upstream-key.gpg deleted file mode 100644 index 7e88f82..0000000 --- a/upstream-key.gpg +++ /dev/null @@ -1,48 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v1.4.1 (GNU/Linux) - -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 -=rfoO ------END PGP PUBLIC KEY BLOCK-----