On Wed, Sep 11, 2024 at 10:13:12PM +0200, Jeremie Courreges-Anglas wrote: [...] > 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.
WIP diff for approach #3 below. > Thoughts? Index: devel/libstdthreads/Makefile =================================================================== RCS file: /home/cvs/ports/devel/libstdthreads/Makefile,v diff -u -p -r1.3 Makefile --- devel/libstdthreads/Makefile 2 Sep 2024 16:39:12 -0000 1.3 +++ devel/libstdthreads/Makefile 11 Sep 2024 19:53:41 -0000 @@ -2,6 +2,7 @@ COMMENT = C11 standard threads library DISTNAME = libstdthreads-${V} V = 0.3.2 +REVISION = 0 CATEGORIES = devel @@ -16,12 +17,19 @@ WANTLIB = pthread COMPILER = base-clang ports-gcc COMPILER_LANGS = c -FAKE_FLAGS = LIBDIR=${TRUEPREFIX}/lib \ +MAKE_FLAGS = PREFIX=${PREFIX}/lib/stdthreads +FAKE_FLAGS = LIBDIR=${TRUEPREFIX}/lib/stdthreads/lib \ MANDIR=${TRUEPREFIX}/man/man +pre-install: + ${INSTALL_DATA_DIR} ${PREFIX}/lib/stdthreads/{lib/pkgconfig,include} + post-install: cd ${WRKSRC} && ${INSTALL} -c -m 444 -o root -g bin \ - threads.h ${PREFIX}/include + threads.h ${PREFIX}/lib/stdthreads/include + mv ${PREFIX}/lib/stdthreads/lib/pkgconfig/stdthreads.pc \ + ${PREFIX}/lib/pkgconfig + rmdir ${PREFIX}/lib/stdthreads/lib/pkgconfig/ DEBUG_PACKAGES = ${BUILD_PACKAGES} Index: devel/libstdthreads/patches/patch-stdthreads_pc_in =================================================================== RCS file: devel/libstdthreads/patches/patch-stdthreads_pc_in diff -N devel/libstdthreads/patches/patch-stdthreads_pc_in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ devel/libstdthreads/patches/patch-stdthreads_pc_in 11 Sep 2024 19:45:42 -0000 @@ -0,0 +1,9 @@ +Index: stdthreads.pc.in +--- stdthreads.pc.in.orig ++++ stdthreads.pc.in +@@ -8,4 +8,4 @@ Description: The C11 standard threads library + Version: @PACKAGE_VERSION@ + + Cflags: -I${includedir} +-Libs: -L${libdir} -lstdthreads -lpthread ++Libs: -L${libdir} -R${libdir} -lstdthreads -lpthread Index: devel/libstdthreads/pkg/PLIST =================================================================== RCS file: /home/cvs/ports/devel/libstdthreads/pkg/PLIST,v diff -u -p -r1.1.1.1 PLIST --- devel/libstdthreads/pkg/PLIST 2 Sep 2023 08:30:00 -0000 1.1.1.1 +++ devel/libstdthreads/pkg/PLIST 11 Sep 2024 19:44:44 -0000 @@ -1,6 +1,9 @@ -include/threads.h -@static-lib lib/libstdthreads.a -@lib lib/libstdthreads.so.${LIBstdthreads_VERSION} -@static-lib lib/libstdthreads_p.a lib/pkgconfig/stdthreads.pc +lib/stdthreads/ +lib/stdthreads/include/ +lib/stdthreads/include/threads.h +lib/stdthreads/lib/ +@static-lib lib/stdthreads/lib/libstdthreads.a +@lib lib/stdthreads/lib/libstdthreads.so.${LIBstdthreads_VERSION} +@static-lib lib/stdthreads/lib/libstdthreads_p.a @man man/man3/thrd_create.3 Index: graphics/fcft/Makefile =================================================================== RCS file: /home/cvs/ports/graphics/fcft/Makefile,v diff -u -p -r1.6 Makefile --- graphics/fcft/Makefile 31 Aug 2024 16:30:54 -0000 1.6 +++ graphics/fcft/Makefile 11 Sep 2024 20:14:55 -0000 @@ -2,6 +2,7 @@ COMMENT = small font loading and glyph DISTNAME = fcft-$V V = 3.1.7 +REVISION = 0 SITES = https://codeberg.org/dnkl/fcft/archive/ DISTFILES = fcft-{}${V}${EXTRACT_SUFX} @@ -21,7 +22,8 @@ COMPILER_LANGS = c MODULES = devel/meson WANTLIB += fontconfig freetype harfbuzz m pixman-1 -WANTLIB += stdthreads pthread utf8proc +WANTLIB += pthread utf8proc +WANTLIB += lib/stdthreads/lib/stdthreads BUILD_DEPENDS = devel/tllist \ textproc/scdoc Index: wayland/foot/Makefile =================================================================== RCS file: /home/cvs/ports/wayland/foot/Makefile,v diff -u -p -r1.8 Makefile --- wayland/foot/Makefile 31 Aug 2024 16:30:54 -0000 1.8 +++ wayland/foot/Makefile 11 Sep 2024 20:15:22 -0000 @@ -2,6 +2,7 @@ COMMENT = fast, lightweight and minimal DISTNAME = foot-${V} V = 1.18.0 +REVISION = 0 SITES = https://codeberg.org/dnkl/foot/archive/ DISTFILES = foot-{}${V}${EXTRACT_SUFX} @@ -21,8 +22,9 @@ COMPILER_LANGS = c MODULES = devel/meson WANTLIB = c epoll-shim fcft fontconfig m pixman-1 -WANTLIB += pthread stdthreads utf8proc wayland-client wayland-cursor +WANTLIB += pthread utf8proc wayland-client wayland-cursor WANTLIB += xkbcommon +WANTLIB += lib/stdthreads/lib/stdthreads BUILD_DEPENDS = devel/tllist \ textproc/scdoc \ Index: wayland/foot/patches/patch-meson_build =================================================================== RCS file: /home/cvs/ports/wayland/foot/patches/patch-meson_build,v diff -u -p -r1.3 patch-meson_build --- wayland/foot/patches/patch-meson_build 16 Aug 2024 13:09:53 -0000 1.3 +++ wayland/foot/patches/patch-meson_build 11 Sep 2024 20:09:03 -0000 @@ -50,3 +50,12 @@ Index: meson.build tllist, fcft], link_with: pgolib, install: true) +@@ -308,7 +310,7 @@ executable( + 'macros.h', + 'util.h', + version, +- dependencies: [tllist], ++ dependencies: [stdthreads, tllist], + link_with: common, + install: true) + -- jca