Bug 254326

Summary: multimedia/gstreamer1: build error: make[6]: *** [Makefile:842: grammar.tab.h] Error 139
Product: Ports & Packages Reporter: O. Hartmann <ohartmann>
Component: Individual Port(s)Assignee: freebsd-multimedia (Nobody) <multimedia>
Status: New ---    
Severity: Affects Some People CC: bink19th, dan.kotowski, pi, pkubaj, rhurlin
Priority: --- Flags: bugzilla: maintainer-feedback? (multimedia)
Version: Latest   
Hardware: Any   
OS: Any   
Description Flags
Make log
patch with updated define for api.pure none

Description O. Hartmann 2021-03-16 04:32:20 UTC
On recent CURRENT (FreeBSD 14.0-CURRENT #57 main-n245471-b55c0d5f56bd: Mon Mar 15 16:35:53 CET 2021 amd64) building of the port multimedia/gstreamer1 fails with the error shown below. The port has  already been rebuilt recursively to catch all changes due to ncurses changes in 14-CURRENT, but without success. This failure also affects the build of editors/libreoffice which is unwilling to build.

cat grammar.tab_tmp.c >> grammar.tab_tmp2.c && \
rm grammar.tab_tmp.c && \
mv grammar.tab_tmp2.c grammar.tab.c
./grammar.y:799.1-12: warning: deprecated directive: ‘%pure-parser’, use ‘%define api.pure’ [
                                                                                             gmake[6]: *** [Makefile:842: grammar.tab.h] Error 139
gmake[6]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2/gst/parse'
gmake[5]: *** [Makefile:1813: all-recursive] Error 1
gmake[5]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2/gst'
gmake[4]: *** [Makefile:1011: all] Error 2
gmake[4]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2/gst'
gmake[3]: *** [Makefile:742: all-recursive] Error 1
gmake[3]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2'
gmake[2]: *** [Makefile:648: all] Error 2
gmake[2]: Leaving directory '/usr/ports/multimedia/gstreamer1/work/gstreamer-1.16.2'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

make[1]: stopped in /usr/ports/multimedia/gstreamer1
*** Error code 1
Comment 1 Dan Kotowski 2021-03-24 09:56:19 UTC
Also broken on 13.0-STABLE
Comment 2 David Armstrong 2021-04-13 10:16:31 UTC
Also broken on 13.0-RC5.
Comment 3 Tobias Kortkamp freebsd_committer 2021-04-13 10:34:26 UTC
Builds fine on the cluster:

There's very little to go on. Why don't you guys post the full build log?
Comment 4 David Armstrong 2021-04-13 10:55:07 UTC
(In reply to Tobias Kortkamp from comment #3)

A fair point.  I'm upgrading to 13.0-RELEASE.  I'll try again and share the log, if it still fails.
Comment 5 David Armstrong 2021-04-14 05:13:19 UTC
Created attachment 224095 [details]
Make log

Please find the attached make log.

Interestingly, the very act of piping the output into the log file, circumvented the issue.  The error still appears in the log file on line 475, but the build completed.

I'm using csh shell.  Running "make" results in a failed build.  Running "make >& log.txt" results in a successful build.
Comment 6 David Armstrong 2021-04-14 08:06:58 UTC
(In reply to David Armstrong from comment #5)

The same workaround of directing output to a log file, worked for bug #254757
Comment 7 Piotr Kubaj freebsd_committer 2021-04-25 19:47:55 UTC
I just had the same error. Replacing "%pure-parser" with "%define api.pure" in grammar.y:799 fixed build for me.
Comment 8 Rainer Hurling freebsd_committer 2021-05-23 14:36:34 UTC
Created attachment 225196 [details]
patch with updated define for api.pure

On my side the described error occurs on Poudriere and in a newly created VBox, both with 14.0-CURRENT i386. With amd64 all seems fine.

The attached patch contains the change from comment #7 (thanks to Piotr) and is tested on Poudriere and with 'portlint -AC'.