On Fri, Sep 13, 2024 at 08:50:00AM +0200, Antoine Jacoutot wrote:
> On Thu, Sep 12, 2024 at 06:38:17PM +0200, Jeremie Courreges-Anglas wrote:
> > On Thu, Sep 12, 2024 at 08:49:33AM +0200, Matthieu Herrb wrote:
> > > On Wed, Sep 11, 2024 at 10:51:50PM +0200, Antoine Jacoutot wrote:
> > > > On Wed, Sep 11, 2024 at 10:13:12PM +0200, Jeremie Courreges-Anglas 
> > > > wrote:
> > > > > (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.
> > 
> > Probably, but "when" and "how" also matter.
> > 
> > As also stressed by sthen, adding it blindly as a build dep to all
> > those ports may uncover even more unregistered deps.
> > 
> > Also, it brings *no value* to the ports using gnulib: they're already
> > using pthread-based threading and locking implementations.  And
> > detecting threads.h brings some #ifdef maze using weak symbols.  The
> > implementation in libstdthreads.so isn't even used.
> > 
> > > > #3 is horrible, we already struggle with such constructs in ports and 
> > > > honestly
> > > > it's a pain
> > 
> > I agree that #3 is a pain and not desirable.  I looked less ugly to me
> > than #1, though...
> > 
> > > > (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?
> > > 
> > > Yes that's what I've been saying since c2k23 in Tallinn. The consensus
> > > was to first add it in ports and wait.
> > > 
> > > Ihmo if it causes too much trouble for the release just un-hook it
> > > again (with UNLINKED = wayland) together with fcft and foot.
> > >
> > > No one will miss those ports. and we can work on this later again.
> > 
> > Let's call that approach #4.  Current ranking of the options here
> > would be #4, #2, #1 and #3 from most to least desirable.  Option #4
> > has the advantage to leave us with a clean slate after release.
> > 
> > Antoine, would you object to just going back to the status quo ante?
> 
> It would mean downgrading textproc/link-grammar and fixing
> multimedia/pipewire/pipewire as well as going back to the previous state for 
> the
> ports that matthieu mentioned.
> 
> Would poisonning threads.h be enough for gnu ports and we can leave pipewire 
> and
> link-grammar as-is?

I hope the answer is "yes".  That was the idea behind my initial
proposal.  The result of the poisoning:

  checking for threads.h... (cached) no

ok?


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      13 Sep 2024 13:42:26 -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       13 Sep 2024 13:42:26 -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
Index: math/octave/Makefile
===================================================================
RCS file: /home/cvs/ports/math/octave/Makefile,v
diff -u -p -r1.142 Makefile
--- math/octave/Makefile        4 Sep 2024 07:30:39 -0000       1.142
+++ math/octave/Makefile        13 Sep 2024 13:50:03 -0000
@@ -2,7 +2,7 @@ COMMENT =      Scientific Programming La
 
 VERSION =      7.3.0
 DISTNAME =     octave-${VERSION}
-REVISION =     8
+REVISION =     9
 EXTRACT_SUFX = .tar.xz
 CATEGORIES =   math
 
@@ -40,7 +40,6 @@ MODULES =     fortran \
                x11/qt5
 
 BUILD_DEPENDS =        ${MODFORTRAN_BUILD_DEPENDS} \
-               devel/libstdthreads \
                math/gnuplot \
                print/texinfo \
                textproc/gsed
Index: math/pspp/Makefile
===================================================================
RCS file: /home/cvs/ports/math/pspp/Makefile,v
diff -u -p -r1.16 Makefile
--- math/pspp/Makefile  9 Sep 2024 11:25:30 -0000       1.16
+++ math/pspp/Makefile  13 Sep 2024 13:53:36 -0000
@@ -1,6 +1,6 @@
 COMMENT =      program for statistical analysis of sampled data
 DISTNAME =     pspp-1.4.1
-REVISION =     5
+REVISION =     6
 CATEGORIES =   math x11
 
 HOMEPAGE =     https://www.gnu.org/software/pspp/
@@ -30,7 +30,6 @@ MODULES =     lang/python
 MODPY_RUNDEP = No
 
 BUILD_DEPENDS =        devel/gettext,-tools \
-               devel/libstdthreads \
                print/texinfo
 
 LIB_DEPENDS =  databases/postgresql \


-- 
jca

Reply via email to