Re: SETENVI, make "port" and poudriere weirdness

Tijl Coosemans <[email protected]>
Newsgroups gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
On Wed, 24 Sep 2025 13:46:07 +0200 A FreeBSD User wrote:
> Hello,
> 
> running FreeBSD CURRENT and FreeBSD 15-STABLE on several machines, I
> face some issues with the traditional way of compiling ports and the
> more resource-eating way with poudriere.
> 
> Some ports when compiled via "cd /usr/ports/PORT; make all" do fail
> with an obscur error reporting
> 
> : invalid option -- D
> 
> followed by a bunch of gmake options (for instance see PR 277961,
> x11-wm/libwraster which is still open). Those ports fail in an
> "unclean natural" environment while compiling in the artificial
> sterile poudriere environment. In almost all cases the problem is due
> to "overlapping" environments, targeted by the introduction of SETENVI
> - see /usr/ports/CHANGES, tag 20240229:.
> 
> I try to compile a well maintainded ESP32 toolchain
> (https://github.com/trombik/xtensa-esp32-elf, here:
> devel/riscv32-esp-elf and/or devel/xtensa-esp-elf).
> 
> The non-official port compiles flawless within recent FreeBSD CURRENT
> and 15-STABLE with poudriere-devel. 
> 
> It fails on all boxes running CURRENT and 15-STABLE  using "make all":
> It fails in those portions of the make process while "do build" uses
> ${SETENV} instead of ${SETENVI} [${WRK_ENV}]. After fixing that I'm
> stuck in the last step of do-build:
> 
> I do not want to go into too much details here since I want to point
> out that the real world "make all" differs in a significant way from
> the artificial sterile way of doing poudriere (which is to much efford
> on development/experimental platforms where we change options very
> often).
> I'd like to understand the underlying behaviour to fix the
> misbehaviour in "make all" - this seems to be very hard and I fear
> that I miss something, some knowledge about the PORTS framework, the
> role of the environment and so on. I almost changed EVERY posiible
> permutation of the line (see Makefile of xtensa-esp-elf):
> 
> [...]
> 
> do-build:
> ORIG:
>     cd ${BUILD_WRKSRC} && ${SETENV} ${MAKE_ENV} ${BUILD_ENV} ./ct-ng build
> VARIANT1:
> 	cd ${BUILD_WRKSRC} && ${SETENVI} ${MAKE_ENV} ${BUILD_ENV} ./ct-ng build
> VARIANT2:
> 	cd ${BUILD_WRKSRC} && ${SETENVI} ${WRK_ENV} ${MAKE_ENV} ${BUILD_ENV} ./ct-ng build
> 
> 
> The great magic here seems to be one needs to understand the
> difference between poudriere's enviroenment and the environment of my
> account on several boxes. My (blunt and stupid) approach is to replace
> on a bail out the first occurence of "${SETENV}" with "${SETENVI}
> ${WRK_ENV}" as suggested in the above mentioned reference in CHANGES.

Is your ports tree up to date because this appears to have been fixed in
https://cgit.freebsd.org/ports/commit/?id=b8bbb207f55db
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.