From nobody Sat Sep 16 06:20:37 2023 X-Original-To: ports@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Rngsl3h7nz4tJq1 for ; Sat, 16 Sep 2023 06:20:43 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Rngsk31gnz3Rr7; Sat, 16 Sep 2023 06:20:41 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Authentication-Results: mx1.freebsd.org; none Received: from kalamity.joker.local (123-1-88-210.area1b.commufa.jp [123.1.88.210]) (authenticated bits=0) by www121.sakura.ne.jp (8.16.1/8.16.1/[SAKURA-WEB]/20201212) with ESMTPA id 38G6KbYO084260; Sat, 16 Sep 2023 15:20:38 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) Date: Sat, 16 Sep 2023 15:20:37 +0900 From: Tomoaki AOKI To: Brooks Davis Cc: ports@freebsd.org Subject: Re: Wow: Building the likes of devel/llvm16 now requires building rust first (when rust is out of date). . . A WORKAROUND Message-Id: <20230916152037.c19fb477397a249d7317f1fd@dec.sakura.ne.jp> In-Reply-To: References: <5620735A-FB8A-4AFE-B4E4-32D0D8D58962@yahoo.com> <6557AA51-D4E2-4E30-B3B4-BA0B356D5343@yahoo.com> <20230915183739.e6070e828ef769f611d78bc9@dec.sakura.ne.jp> Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd14.0) List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP] X-Rspamd-Queue-Id: 4Rngsk31gnz3Rr7 On Fri, 15 Sep 2023 15:38:24 +0000 Brooks Davis wrote: > On Fri, Sep 15, 2023 at 06:37:39PM +0900, Tomoaki AOKI wrote: > > On Thu, 14 Sep 2023 21:32:20 -0700 > > Mark Millard wrote: > > > > > On Sep 13, 2023, at 23:20, Mark Millard 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 > > > > So is it easily possible to docs of llvm ports to be separate ports? > > No. Docs are built as part of each enabled component. > > -- Brooks Not sure it's possible or not (maybe impossible now), if multiple packages can be generated by single port on single build, if DOCS option is set, generate 2 pkgs llvm(major)-(full-ver)_(rev),(epoch).pkg llvm(major)-doc-(full-ver)_(rev),(epoch).pkg if not, generate llvm(major)-(full-ver)_(rev),(epoch).pkg only, set DOCS by default for pkg build cluster and anyone who do not want suffer from rust hell can unset DOCS and install docs pkg from official repo. -- Tomoaki AOKI