Hi Ingo,

At 2026-09-25T18:37:34+0200, Ingo Schwarze wrote:
> As usual, the method described in INSTALL.REPO fails spectacularly
> for multiple reasons.

I suspect you're hitting paths that haven't been tested since after
1.24.1 was tagged and released.

You're reporting two completely unrelated problems.

One has to do with how gnulib calculates its dependencies and writes a
Makefile to represent them.

I'm afraid I can't help _at all_ with that.  What you have diagnosed
looks like a gnulib bug to me.

> ... And finally, "make" did
> 
>   CC  lib/lib_libgnu_a-asnprintf.o
> 
> as expected and progressed a bit further, until it died again saying
> 
>   GEN  font/devps/symbolsl.pfa
>   Using $< in a non-suffix rule context is a GNUmake idiom (Makefile:19502)
> 
> which is probably due to this target rule:
> 
>   $(DOC_LINE_LAYOUT_EPS): doc/line-layout.roff ...
>       ... && $(DOC_GROFF) -p -T ps -P -b16 $< ...
> 
> but it looks like there is more, similar breakage in other targets.

There are two other affected targets.

> Now, i have no idea whether this is a bug in groff (which seems
> possible) or in gnulib (which seems likely).

There are multiple bugs:

1.  Use of '$<' in target rules, which BSD make refuses to support;
2.  the aforementioned gnulib rule production problem.

The first of these issues is recent, dating back to July.[1]

> For two reasons, i'm not reporting this to gnulib.  First, i am
> not convinced it actually is a gnulib bug, maybe groff is using
> gnulib wrong?

I don't think I'm sophisticated enough a user of gnulib to use it wrong.
I furrow my brutish, protruding australopithecine brow while reading its
introductory documentation, and apply the simplest recipes I can find.

> Second and more importantly, gnulib is such a giant, hot, steaming
> mess that i don't feel comfortable talking to the gnulib maintainers.
> I just don't have the patience for dealing with them, and i fear i
> might end up insulting them rather than saying anything productive.

I'm sure they've come to expect that from anyone OpenBSD-affiliated. ;-)

> To be honest, i have no idea how to debug the lib_libgnu_a-asnprintf.o
> fiasco further and how or where to report it, let alone how to
> fix it properly.

Collin Funk monitors this list and works on gnulib; maybe he can rescue
us.

> Once again, for the umpteenth time, i lost half an afternoon
> searching for what's going on in the maze of the groff build system.

I had thought you had some trick where you basically defeated gnulib in
the official OpenBSD port of groff, and forced linkage with OpenBSD's
libc even gnulib's Autoconf macros would have diagnosed a POSIX
conformance problem in it?

Regards,
Branden

[1]

$ git blame doc/doc.am

...
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 642) # We also have 
to override Automake's built-in rule for generation of
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 643) # HTML from 
Texinfo to include our embedded images.
16dd442e0d (G. Branden Robinson 2026-07-04 04:48:02 -0500 644) #
16dd442e0d (G. Branden Robinson 2026-07-04 04:48:02 -0500 645) # TODO: Maybe 
split this into `GROFF_HTML_MONO` and `GROFF_HTML_NODE`?
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 646) $(GROFF_HTML): 
doc/groff.texi $(DOC_GNU_PNG) $(DOC_LINE_LAYOUT_PNG)
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 647)  
$(AM_V_GEN)$(MKDIR_P) `dirname $@` \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 648)  && LANG=C 
LC_ALL=C $(MAKEINFO) --html \
ae19f955f5 (G. Branden Robinson 2026-07-13 15:10:34 -0500 649)    
--css-ref="https://www.gnu.org/software/gnulib/manual.css"; \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 650)    -I 
$(doc_builddir) -I $(doc_srcdir) \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 651)    -o 
$(GROFF_HTML).node $< \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 652)  && if test -f 
"$(srcdir)/$(DOC_GNU_PNG)"; then \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 653)    cp -f 
"$(srcdir)/$(DOC_GNU_PNG)" \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 654)      
"$(srcdir)/$(DOC_LINE_LAYOUT_PNG)" $(GROFF_HTML).node; \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 655)  else \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 656)    cp -f 
"$(builddir)/$(DOC_GNU_PNG)" \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 657)      
"$(builddir)/$(DOC_LINE_LAYOUT_PNG)" $(GROFF_HTML).node; \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 658)  fi \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 659)  && LANG=C 
LC_ALL=C $(MAKEINFO) --html \
ae19f955f5 (G. Branden Robinson 2026-07-13 15:10:34 -0500 660)    
--css-ref="https://www.gnu.org/software/gnulib/manual.css"; \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 661)    -I 
$(doc_builddir) -I $(doc_srcdir) \
dc4e0f1803 (G. Branden Robinson 2026-07-02 13:01:09 -0500 662)    --no-split -o 
$@ $<
...

When I borrowed from Automake, I borrowed trouble, as seen on lines 651
and 662.

addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 929) 
$(DOC_LINE_LAYOUT_EPS): doc/line-layout.roff pic groff troff grops \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 930)   
font/devps/stamp
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 931)  
$(AM_V_GEN)$(MKDIR_P) `dirname $@` \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 932)  && $(DOC_GROFF) 
-p -T ps -P -b16 $< >$(DOC_LL).ps \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 933)  && gs -q 
-dNOPAUSE -sDEVICE=bbox -- $(DOC_LL).ps \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 934)    2> 
$(DOC_LL).bbox \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 935)  && sed -e 
'/^%%Orientation/r $(DOC_LL).bbox' \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 936)    -e 
'/^%!PS-Adobe-3.0/s/$$/ EPSF-3.0/' $(DOC_LL).ps >[email protected] \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 937)  && $(RM) 
$(DOC_LL).ps $(DOC_LL).bbox \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 938)  && mv [email protected] $@
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 939) 
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 940) 
$(DOC_LINE_LAYOUT_PNG): $(DOC_LINE_LAYOUT_EPS)
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 941)  
$(AM_V_GEN)$(MKDIR_P) `dirname $@` \
addb861989 (G. Branden Robinson 2026-07-03 00:17:07 -0500 942)  && convert 
-density 300 $< PNG24:$@
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 943) else
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 944) $(DOC_GNU_EPS) \
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 945)   $(DOC_GNU_PNG) 
\
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 946)   
$(DOC_LINE_LAYOUT_EPS) \
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 947)   
$(DOC_LINE_LAYOUT_PNG):
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 948)  @:
e2cd638955 (G. Branden Robinson 2026-07-19 08:38:32 -0500 949) endif # 
MAINTAINER_MODE

The uses of `$<` on lines 932 and 942 are unmitigatedly my fault.  I
simply forgot about the BSD Make limitation here.  As I said to you a
week or so ago, I need to do a build with `MAKE=bmake` before tagging
1.25.0.rc3.  If had done so already, I might have caught this and left
you with only the gnulib issue to discover.

Anybody might check out groff's "master" branch at any time, and do a
build with BSD Make to help keep us honest.  It doesn't need to be me.

Regards,
Branden

Attachment: signature.asc
Description: PGP signature

Reply via email to