I think the best approach long-term would be to have this in base, but now pre\release is the wrong time.
Short-term probably avoid adding to dependencies where possible to reduce the number of ports accidentally picking it up... On 2024/09/11 22:51, Antoine Jacoutot wrote: > On Wed, Sep 11, 2024 at 10:13:12PM +0200, Jeremie Courreges-Anglas wrote: > > > > So I spotted threads.h being picked up by math/octave and the > > libstdthreads being junked after the configure step, something already > > fixed by ajacoutot@ in the following ports: > > > > math/octave > > math/pspp > > textproc/link-grammar > > > > by adding devel/libstdthreads to BUILD_DEPENDS. These three ports use > > gnulib's threadlib.m4. Other ports that may be affected by this issue: > > > > archivers/gcpio > > archivers/gtar > > astro/gnuastro > > converters/recode > > devel/bison > > devel/gettext > > devel/objfw > > devel/universal-ctags > > editors/le > > editors/nano > > editors/poke > > games/trader > > graphics/ttfautohint > > lang/guile3 > > math/datamash > > misc/findutils > > net/dico > > net/isc-bind > > net/lftp > > net/monitoring-plugins > > net/wget > > net/wget2 > > print/a2ps > > print/libpaper > > print/texinfo > > security/gnutls > > security/libgpg-error > > security/libgsasl > > sysutils/augeas > > sysutils/coreutils > > sysutils/ggrep > > textproc/gdiff > > textproc/gsed > > textproc/recutils > > x11/vlc > > > > (List found with grep '^checking for threads.h' on the latest amd64 > > build logs.) > > > > I can think of several approaches to fix this: > > > > 1. add libstdthreads as a build dep to all those ports. Simple but > > slightly problematic: > > - IIUC, brings no functional value > > - increases the chance of libstdthreads being picked up by future ports > > > > 2. "poison" threads.h detection for gnu.port.mk ports. This should be > > enough for the gnulib occurences. > > > > 3. move libstdthreads header and libs to a subdirectory, to avoid > > threads.h being picked up just because it's in the commonly used > > /usr/local/include directory. > > > > The diff below, tested with sysutils/ggrep, implements approach #2. > > If a gnu.port.mk port really wants libstdthreads, one needs to add > > devel/libstdthreads to BUILD_DEPENDS (even though it really belongs in > > LIB_DEPENDS), or add an override in CONFIGURE_ENV. > > The diff isn't complete: it lacks at least REVISION bumps for at least > > octave, pspp and link-grammar, and possibly safety bumps for all other > > affected ports; but it shows the intent. > > > > Approach #3 seems to work too but is slightly tricker. wayland/foot > > would need a meson.build patch. > > > > Thoughts? > > I vote for #1. > This is something we should have. > #3 is horrible, we already struggle with such constructs in ports and honestly > it's a pain (aka, this should be a short term solution that always ends up for > eternity). > > Matthieu, should this be implemented / moved into base at some point? > > > > Index: infrastructure/db/config.no-stdthreads > > =================================================================== > > RCS file: infrastructure/db/config.no-stdthreads > > diff -N infrastructure/db/config.no-stdthreads > > --- /dev/null 1 Jan 1970 00:00:00 -0000 > > +++ infrastructure/db/config.no-stdthreads 11 Sep 2024 17:11:24 -0000 > > @@ -0,0 +1,3 @@ > > +# $OpenBSD$ > > +# included unless devel/libstdthreads > > +ac_cv_header_threads_h=${ac_cv_header_threads_h=no} > > Index: infrastructure/mk/gnu.port.mk > > =================================================================== > > RCS file: /home/cvs/ports/infrastructure/mk/gnu.port.mk,v > > diff -u -p -r1.61 gnu.port.mk > > --- infrastructure/mk/gnu.port.mk 14 May 2019 14:59:56 -0000 1.61 > > +++ infrastructure/mk/gnu.port.mk 11 Sep 2024 17:02:52 -0000 > > @@ -43,7 +43,8 @@ CONFIG_SITE_LIST += config.site > > textproc/gsed gsed \ > > archivers/gtar* gtar \ > > lang/gawk gawk \ > > - sysutils/coreutils coreutils > > + sysutils/coreutils coreutils \ > > + devel/libstdthreads stdthreads > > . if !defined(BUILD_DEPENDS) || !${BUILD_DEPENDS:M$d} > > CONFIG_SITE_LIST += config.no-${name} > > . endif > > > > > > -- > > jca > > -- > Antoine >