Bug 259577 - devel/bison: Update to 3.8.2
Summary: devel/bison: Update to 3.8.2
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Po-Chuan Hsieh
URL: https://git.savannah.gnu.org/cgit/bis...
Keywords: patch
Depends on: 262252
Blocks:
  Show dependency treegraph
 
Reported: 2021-10-31 14:48 UTC by Matthias Andree
Modified: 2022-03-25 13:52 UTC (History)
1 user (show)

See Also:
mandree: maintainer-feedback+


Attachments
patch to update bison from 3.7.6 to 3.8.2, on top of Git 11e71f6720af (10.15 KB, patch)
2021-10-31 14:48 UTC, Matthias Andree
no flags Details | Diff
parallelize "make test" (967 bytes, patch)
2022-03-07 23:23 UTC, Matthias Andree
mandree: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Matthias Andree freebsd_committer freebsd_triage 2021-10-31 14:48:26 UTC
Created attachment 229175 [details]
patch to update bison from 3.7.6 to 3.8.2, on top of Git 11e71f6720af

devel/bison: Update to 3.8.2
    
    While here, parallelize tests
     - MAKE_ARGS lacks ${_MAKE_JOBS} <https://bugs.freebsd.org/259576>
     - USES+=gmake because the test driver only parallelizes the 700 tests
       with GNU make, but not with BSD make.
    
    Replace bulky and dynamic Makefile.in patch by systematic edit.
Comment 1 Matthias Andree freebsd_committer freebsd_triage 2021-10-31 14:54:00 UTC
Note there is a separate patch in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259572 to make INFO an option, which is unrelated and may collide.

Also I forgot this link:
ChangeLog: https://git.savannah.gnu.org/cgit/bison.git/tree/NEWS?h=v3.8.2#n3
Comment 2 Matthias Andree freebsd_committer freebsd_triage 2021-11-13 11:23:52 UTC
There are no ports that have devel/bison as run-time requisite.

There are four ports that list devel/bison in BUILD_DEPENDS, one of them conditionally, as DOCS_BUILD_DEPENDS. Three ports have built successfully, qt5-webengine still building.

I am planning to invoke maintainer timeout and commit if and as soon as qt5-webengine passes its build in my poudriere 13.0-RELEASE-p5 amd64 jail has passed.
Comment 3 Matthias Andree freebsd_committer freebsd_triage 2021-11-13 11:27:21 UTC
Oh, I missed USES+=bison. Re-checking.
Comment 4 Matthias Andree freebsd_committer freebsd_triage 2021-11-13 11:42:29 UTC
320 ports to test overall, including MATHML option on abiword and SPOTLIGHT option on samba412, samba413 to really pull in bison. In my jail that means 1056 packages to build.  Grind away, Ryzen!
Comment 5 Po-Chuan Hsieh freebsd_committer freebsd_triage 2021-11-14 17:26:31 UTC
(In reply to Matthias Andree from comment #0)

I've used bison 3.8.2 locally for a period of time but did not have time to test all dependent ports.

The patch file should be kept. It is preferred to use static patch file instead 
of REINPLACE_CMD because it's easier to detect stale patches. In fact, it was converted from REINPLACE_CMD in 27551199f0078c7d75bcf2d102e134db965b5ec6.

Regarding of the gmake and _MAKE_JOBS issue, I'd like to keep it unchanged for now.
Comment 6 Matthias Andree freebsd_committer freebsd_triage 2021-11-15 20:52:53 UTC
editors/libreoffice6 | libreoffice6-6.4.7_18 needs further investigation (and possibly also apache-openoffice):

[00:06:29] S=/wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/YaccTarget/connectivity/source/parse/ && bison -d -l -pSQLyy -bsql -v --defines=$W/YaccTarget/connectivity/source/parse/sqlbison.hxx -o $W/YaccTarget/connectivity/source/parse/sqlbison.cxx $S/connectivity/source/parse/sqlbison.y && touch $W/YaccTarget/connectivity/source/parse/sqlbison.done 
[00:06:29] perl /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/solenv/bin/generate-tokens.pl /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/xmloff/source/token/tokens.txt /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/CustomTarget/xmloff/generated/misc/tokenids.inc /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/CustomTarget/xmloff/generated/tokennames.inc  /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/CustomTarget/xmloff/generated/misc/tokenhash.gperf  && cat /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/xmloff/source/token/tokens.hxx.head /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/CustomTarget/xmloff/generated/misc/tokenids.inc /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/xmloff/source/token/tokens.hxx.tail > /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/CustomTarget/xmloff/generated/xmloff/token/tokens.hxx && touch /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/CustomTarget/xmloff/generated/xmloff/token/tokens.hxx
[00:06:29] [build LEX] connectivity/source/parse/sqlflex
[00:06:29] S=/wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/LexTarget/connectivity/source/parse/ && /usr/local/bin/flex -i -8 -PSQLyy -L -o$W/LexTarget/connectivity/source/parse/sqlflex.cxx $S/connectivity/source/parse/sqlflex.l && touch $W/LexTarget/connectivity/source/parse/sqlflex.done 
[00:06:29] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/connectivity/source/parse/sqlbison.y: warning: 13 shift/reduce conflicts [-Wconflicts-sr]
[00:06:29] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/connectivity/source/parse/sqlbison.y: warning: 15 reduce/reduce conflicts [-Wconflicts-rr]
[00:06:29] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/connectivity/source/parse/sqlbison.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples
[...]
[00:24:13] S=/wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2 && I=$S/instdir && W=$S/workdir &&  mkdir -p $W/GenCxxObject/LexTarget/connectivity/source/parse/ $W/Dep/GenCxxObject/LexTarget/connectivity/source/parse/ && cd /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2 && CCACHE_CPP2=1 CCACHE_DEPEND=1   c++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DFREEBSD -DNDEBUG -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86_64 -D_PTHREADS -D_REENTRANT -isystem /usr/local/include -DOOO_DLLIMPLEMENTATION_DBTOOLS -DBOOST_SPIRIT_USE_OLD_NAMESPACE   -fvisibility=hidden    -Wall -Wno-missing-braces -Wnon-virtual-dtor -Wendif-labels -Wextra -Wundef -Wunreachable-code -Wunused-macros -finput-charset=UTF-8 -fmessage-length=0 -fno-common -pipe -fstack-protector-strong  -Wimplicit-fallthrough -Wunused-exception-parameter -Wrange-loop-analysis -fvisibility-inlines-hidden -fPIC -Woverloaded-virtual -Wno-unused-parameter -Wno-unused-local-typedefs -std=c++17 -pthread  -O2 -pipe -fstack-protector-strong -DLDAP_DEPRECATED -fno-strict-aliasing    -Wno-unused-macros -DEXCEPTIONS_ON -fexceptions   -DLIBO_INTERNAL_ONLY  -c $W/LexTarget/connectivity/source/parse/sqlflex.cxx -o $W/GenCxxObject/LexTarget/connectivity/source/parse/sqlflex.o  -I$S/include   -I$S/config_host  -I$S/connectivity/inc -I$S/connectivity/source/inc  -I/usr/local/include  -I$W/UnoApiHeadersTarget/udkapi/normal -I$W/UnoApiHeadersTarget/offapi/normal -I$W/YaccTarget/connectivity/source/parse/   
[00:24:16] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx:5484:42: error: use of undeclared identifier 'yyn'; did you mean 'yyk'?
[00:24:16]                 ((*yyvalp).pParseNode) = SQL_NEW_RULE;
[00:24:16]                                          ^
[00:24:16] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx:138:61: note: expanded from macro 'SQL_NEW_RULE'
[00:24:16] #define SQL_NEW_RULE                    newNode("", SQLNodeType::Rule, yyr1[yyn])
[00:24:16]                                                                             ^
[00:24:16] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx:5435:49: note: 'yyk' declared here
[00:24:16]               yyGLRStack* yystackp, YYPTRDIFF_T yyk,
[00:24:16]                                                 ^
[00:24:16] /wrkdirs/usr/ports/editors/libreoffice6/work/libreoffice-6.4.7.2/workdir/YaccTarget/connectivity/source/parse/sqlbison.cxx:5490:43: error: use of undeclared identifier 'yyn'; did you mean 'yyk'?
[00:24:16]                 {((*yyvalp).pParseNode) = SQL_NEW_RULE;
[00:24:16]                                           ^

And some more occurrences that follow the same scheme.
Comment 7 Matthias Andree freebsd_committer freebsd_triage 2021-12-13 22:44:26 UTC
So after my big test compile, how do we get this forward, should we contact the maintainers of the failing ports? should we contact the maintainers of all ports that use bison? And who is doing it?  Or should we keep a devel/bison37 for the few failing ports? 

Do you want to do it with the 'authority' of the devel/bison maintainer hat or do you need support?
Comment 8 Matthias Andree freebsd_committer freebsd_triage 2022-03-07 23:23:47 UTC
Created attachment 232311 [details]
parallelize "make test"

parallelize tests
     - MAKE_ARGS lacks ${_MAKE_JOBS} <https://bugs.freebsd.org/259576>
     - USES+=gmake because the test driver only parallelizes the 700 tests
       with GNU make, but not with BSD make.
Comment 9 Matthias Andree freebsd_committer freebsd_triage 2022-03-07 23:24:32 UTC
(In reply to Matthias Andree from comment #8)
This updates the patch after 5726e1d60f8a already updated Bison to 3.8.2.
Comment 10 commit-hook freebsd_committer freebsd_triage 2022-03-25 13:51:33 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e36d72335812d16c3e6aa8046d12fc2807bb99cc

commit e36d72335812d16c3e6aa8046d12fc2807bb99cc
Author:     Matthias Andree <mandree@FreeBSD.org>
AuthorDate: 2022-03-25 13:12:26 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2022-03-25 13:38:02 +0000

    devel/bison: Parallelize make test

    PR:             259577

 devel/bison/Makefile | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
Comment 11 Matthias Andree freebsd_committer freebsd_triage 2022-03-25 13:52:21 UTC
Thank you!