Re: Wow: Building the likes of devel/llvm16 now requires building rust first (when rust is out of date). . . A WORKAROUND

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm,gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
On Sep 13, 2023, at 23:20, Mark Millard <[email protected]> wrote:

> Note: py39 is in use in my context.
> 
> Building devel/llvm16 requires building textproc/py-recommonmark@py39
> Building textproc/py-recommonmark@py39 requires building textproc/py-sphinx@py39
> Building textproc/py-sphinx@py39 requires building www/py-requests@py39
> Building www/py-requests@py39 requires building net/py-urllib3@py39
> Building net/py-urllib3@py39 requires building security/py-openssl@py39
> Building security/py-openssl@py39 requires building security/py-cryptography@py39
> Building security/py-cryptography@py39 requires building devel/py-setuptools-rust@py39
> Building devel/py-setuptools-rust@py39 requires building lang/rust
> 
> Building devel/llvm16 and the like just got more
> resource intensive for those not already building
> lang/rust . Building lang/rust in my context uses
> system-clang ( not a devel/llvm* ). So no loop in
> my context.
> 
> I normally build rust anyway. But other folks may
> have been avoiding such.
> 

I have the file (for other reasons):

/usr/local/etc/poudriere.d/make.conf

and I added to it:

.if ${.CURDIR:M*/devel/llvm*}
OPTIONS_UNSET=DOCS
.endif

This overrides the "always on" for DOCS for
the various devel/llvm* . (In more complicated
contexts += would be appropriate i order to
allow multiple assignments to accumulate.)

This stopped the recommonmark use and, so, stopped
the sequence of dependencies leading to lang/rust
being required.

This appears to do more than whatever John F Carr did
to get it to report in his context:

===> The following configuration options are available for llvm17-17.0.0.r4:
   . . .
   DOCS=off: Build and/or install documentation
   . . .

(Likely normal style options file content was involved.)

I did not make any such "normal style" OPTIONS changes and the
log file for my build  attempt reported:

---Begin OPTIONS List---
===> The following configuration options are available for llvm17-17.0.0.r4:
     BE_AMDGPU=on: AMD GPU backend (required by mesa)
     BE_WASM=on: WebAssembly backend (required by firefox via wasi)
     CLANG=on: Build clang
     COMPILER_RT=on: Sanitizer libraries
     DOCS=off: Build and/or install documentation
     EXTRAS=on: Extra clang tools
     FLANG=off: Flang FORTRAN compiler
     GOLD=on: Build the LLVM Gold plugin for LTO
     LIT=on: Install lit and FileCheck test tools
     LLD=on: Install lld, the LLVM linker
     LLDB=on: Install lldb, the LLVM debugger
     MLIR=on: Multi-Level Intermediate Representation
     OPENMP=on: Install libomp, the LLVM OpenMP runtime library
     POLLY=on: Polyhedral loop and data-locality optimizer
     PYCLANG=on: Install python bindings to libclang
     STATIC_LIBS=on: Install static libraries (does not effect sanitizers)
====> Options available for the single BACKENDS: you have to select exactly one of them
     BE_FREEBSD=off: Backends for FreeBSD architectures
     BE_NATIVE=off: Backend(s) for this architecture (X86)
     BE_STANDARD=on: All non-experimental backends
===> Use 'make config' to modify these settings
---End OPTIONS List---

The --PLIST_SUB-- section ended up listing: PORTDOCS="@comment
and: DOCS="@comment " NO_DOCS=""
but still listed: DOCSDIR="share/doc/llvm17"

The --SUB_LIST-- section ended up listing: DOCS="@comment " NO_DOCS=""
but still listed: DOCSDIR=/usr/local/share/doc/llvm17


FYI, without rust having been built, my first ever build
of llvm17 (not reporting on the 49 prior poort->package
builds before devel/llvm17 started):

[00:43:30] Finished devel/llvm17@default | llvm17-17.0.0.r4: Success



FYI:

5.14.1.3 Default Options in:

https://docs.freebsd.org/en/books/porters-handbook/makefiles/#makefile-options

reports the always-on status for DOCS (and some more)
but not the way(s) to override that status for specific
ports. It seems that only some ways actually change the
status to off --and I've found one such.

===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.