Bug 249223

Summary: editors/xvile: port broken by switch to parallel make
Product: Ports & Packages Reporter: Thomas E. Dickey <dickey>
Component: Individual Port(s)Assignee: Dmitry Marakasov <amdmi3>
Status: Closed Unable to Reproduce    
Severity: Affects Some People CC: dickey, lwhsu
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
updated makefile
none
replacement for editors/xvile/Makefile none

Description Thomas E. Dickey 2020-09-09 22:09:15 UTC
Created attachment 217857 [details]
updated makefile

A recent build-report showed a problem building the vile port.
The symptom pointed to a problem with parallel make.

The likely problem seems to be as reported against the make program here:

http://gnats.netbsd.org/55542
"make: parallel builds and double-colon don't get along"

That is, double-colon targets in the makefiles cause the build to fail.
vile uses this in several places, and rewriting the makefiles to work
around a bug in a given make-program isn't going to happen.  It works
well enough with gmake, but is easy to reproduce with bmake with my
Debian/testing for instance:

--- all ---
--- bnf-filt.o ---
rm -f bnf-filt.c
--- css-filt.o ---
echo "#include <flt_defs.h>" > css-filt.c
flex -t css-filt.l >> css-filt.c
clang -c -I. -I.. -I../filters -I.. -DHAVE_CONFIG_H -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -I./filters -g -O2 -Qunused-arguments -Wno-error=implicit-function-declaration   css-filt.c
bmake: all#1: cohort has parents

bmake: stopped in /usr/build/vile/vile

The problem with make appears to be recent; it works with FreeBSD 12.
(I tried installing FreeBSD-13-current...).  The Debian/testing package
also is new:

https://packages.debian.org/bullseye/bmake
"bmake (20200710-5)"

The port should be updated to suppress the parallel-make feature.
Comment 1 Thomas E. Dickey 2020-09-09 22:32:43 UTC
The attachment sets MAKE_JOBS_UNSAFE=yes as documented in

https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/building.html

however... reviewing the logs, I see that even with this change
the make program (in FreeBSD 12) gets a "-j4" option when redurring
to the filters subdirectory.
Comment 2 Thomas E. Dickey 2020-09-09 22:59:18 UTC
The leftover "-j4" was actually from a test-script which I used for checking ports.  (The suggested update to the makefile works as intended).
Comment 3 Li-Wen Hsu freebsd_committer freebsd_triage 2020-09-10 02:50:35 UTC
The patch in bug249224 is preferred, right?
Comment 4 Thomas E. Dickey 2020-09-10 09:06:24 UTC
no - these are two different ports for the same source.
I'm puzzled because I created the one for editors/vile first,
and the title looked correct.  I fixed it now...
Comment 5 Thomas E. Dickey 2020-09-10 09:12:09 UTC
(In reply to Thomas E. Dickey from comment #4)

Just a few minutes ago, I inspected both attachments, and they were for the correct ports, but on revisiting, both are for editors/vile.   I'll attach a diff instead.
Comment 6 Thomas E. Dickey 2020-09-10 09:32:32 UTC
(In reply to Thomas E. Dickey from comment #5)

When I opened this report, I copied the description from the other (editors/vile), without noticing that the copy/paste copied the link to the attachment.

Adding to the confusion (which oddly enough did not prevent building the port) was an earlier change to the portname:

https://svnweb.freebsd.org/ports/head/editors/xvile/Makefile?r1=346364&r2=354506
Comment 7 Thomas E. Dickey 2020-09-10 09:37:59 UTC
Created attachment 217866 [details]
replacement for editors/xvile/Makefile
Comment 8 Dmitry Marakasov freebsd_committer freebsd_triage 2021-03-11 23:22:59 UTC
The port builds fine on all FreeBSD versions incl 13 and 14. Not sure how netbsd and debian are related here.