cc'ing netsurf maintainer (in case you didn't read the earlier thread, neovim wants libutf8proc, Laurent has proposed a diff that builds a static library as part of neovim build, but this doesn't seem a good idea overall)
On 2025/04/15 15:49, Laurent Cheylus wrote: > Hi Edd, > > ----- Mail original ----- > > On Thu, Apr 03, 2025 at 05:12:38PM +0100, Stuart Henderson wrote: > > > You still need to be careful even if it's statically linked. In > > > particular you need to make sure that it can't accidentally pick up > > > anything from /usr/local/{include,lib} if present at build time. > > > Especially considering what Laurie reported. > > > > Laurent, did you make any progress on resolving this? > > No, I don't try to reproduce this "issue". > I think there is no issue with my patch to build and link utf8proc library > with Neovim 0.11 (as you confirm in your other message). > > Laurent > I don't see any evidence that this has been tested properly to make sure that files from /usr/local/{include,lib} are not picked up. I see that FreeBSD's netsurf port (same netsurf version as ours) uses a plain (updated) port of https://github.com/JuliaStrings/utf8proc rather than netsurf's outdated fork of that same library. Here's a diff to do the same here. netsurf seems to work similarly well to how it does with the previous utf8proc version (generally, it's not doing particularly well at rendering the pages I was testing with, but that doesn't seem to be utf8-related, and I'm not seeing any noticeable difference). It doesn't need quirks (@pkgpath marker added for the dir move, but the package stem doesn't change, and the version just goes upwards).
Index: textproc/libutf8proc/Makefile =================================================================== RCS file: textproc/libutf8proc/Makefile diff -N textproc/libutf8proc/Makefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ textproc/libutf8proc/Makefile 15 Apr 2025 19:24:00 -0000 @@ -0,0 +1,24 @@ +COMMENT = unicode library + +V = 2.10.0 +DISTNAME = utf8proc-$V +PKGNAME = libutf8proc-$V + +HOMEPAGE = https://juliastrings.github.io/utf8proc/ +SITES = https://github.com/JuliaStrings/utf8proc/releases/download/v$V/ + +CATEGORIES = textproc +SHARED_LIBS = utf8proc 2.2 # 3.1 + +# MIT +PERMIT_PACKAGE = Yes + +MODULES = devel/cmake +DEBUG_PACKAGES = ${BUILD_PACKAGES} + +CONFIGURE_ARGS = -DBUILD_SHARED_LIBS=On + +# requires extra files downloaded by cmake +NO_TEST = Yes + +.include <bsd.port.mk> Index: textproc/libutf8proc/distinfo =================================================================== RCS file: textproc/libutf8proc/distinfo diff -N textproc/libutf8proc/distinfo --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ textproc/libutf8proc/distinfo 15 Apr 2025 19:24:00 -0000 @@ -0,0 +1,2 @@ +SHA256 (utf8proc-2.10.0.tar.gz) = J2o33E0d0k14loJqV59EOdHl/jNgOt14a7CDyrgC4j4= +SIZE (utf8proc-2.10.0.tar.gz) = 195848 Index: textproc/libutf8proc/pkg/DESCR =================================================================== RCS file: textproc/libutf8proc/pkg/DESCR diff -N textproc/libutf8proc/pkg/DESCR --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ textproc/libutf8proc/pkg/DESCR 15 Apr 2025 19:24:00 -0000 @@ -0,0 +1,7 @@ +utf8proc is a library for processing UTF-8 encoded Unicode strings. +Some features are Unicode normalization, stripping of default ignorable +characters, case folding and detection of grapheme cluster boundaries. +A special character mapping is available, which converts for example the +characters "Hyphen" (U+2010), "Minus" (U+2212) and "Hyphen-Minus" +(U+002D, ASCII Minus) all into the ASCII minus sign, to make them equal +for comparisons. Index: textproc/libutf8proc/pkg/PLIST =================================================================== RCS file: textproc/libutf8proc/pkg/PLIST diff -N textproc/libutf8proc/pkg/PLIST --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ textproc/libutf8proc/pkg/PLIST 15 Apr 2025 19:24:00 -0000 @@ -0,0 +1,4 @@ +@pkgpath www/netsurf/libutf8proc +include/utf8proc.h +@lib lib/libutf8proc.so.${LIButf8proc_VERSION} +lib/pkgconfig/libutf8proc.pc Index: www/netsurf/Makefile =================================================================== RCS file: /cvs/ports/www/netsurf/Makefile,v diff -u -p -r1.8 Makefile --- www/netsurf/Makefile 11 Mar 2022 20:10:07 -0000 1.8 +++ www/netsurf/Makefile 15 Apr 2025 19:24:00 -0000 @@ -11,7 +11,6 @@ SUBDIR += libnsutils SUBDIR += libparserutils SUBDIR += libsvgtiny - SUBDIR += libutf8proc SUBDIR += libwapcaplet SUBDIR += netsurf-fb SUBDIR += nsgenbind Index: www/netsurf/browser/Makefile =================================================================== RCS file: /cvs/ports/www/netsurf/browser/Makefile,v diff -u -p -r1.48 Makefile --- www/netsurf/browser/Makefile 29 Oct 2024 09:46:26 -0000 1.48 +++ www/netsurf/browser/Makefile 15 Apr 2025 19:24:00 -0000 @@ -2,7 +2,7 @@ COMMENT = lightweight web browser, with NETSURF_PROJECT = netsurf NETSURF_VERSION = 3.11 -REVISION = 1 +REVISION = 2 HOMEPAGE = https://www.netsurf-browser.org/ SITES = https://download.netsurf-browser.org/netsurf/releases/source/ @@ -12,6 +12,7 @@ BUILD_DEPENDS = editors/vim \ www/p5-HTML-Parser LIB_DEPENDS = graphics/libjxl \ graphics/libwebp \ + textproc/libutf8proc \ www/netsurf/hubbub>=0.3.4 \ www/netsurf/libcss>=0.7.0 \ www/netsurf/libnsgif>=0.2.0 \ @@ -20,7 +21,6 @@ LIB_DEPENDS = graphics/libjxl \ www/netsurf/libdom>=0.3.2 \ www/netsurf/libnspsl>=0.1.2 \ www/netsurf/libnsutils>=0.0.3 \ - www/netsurf/libutf8proc>=1.3.1p0 \ x11/gtk+3 \ x11/gnome/librsvg \ net/curl Index: www/netsurf/browser/patches/patch-utils_idna_c =================================================================== RCS file: www/netsurf/browser/patches/patch-utils_idna_c diff -N www/netsurf/browser/patches/patch-utils_idna_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/netsurf/browser/patches/patch-utils_idna_c 15 Apr 2025 19:24:00 -0000 @@ -0,0 +1,12 @@ +Index: utils/idna.c +--- utils/idna.c.orig ++++ utils/idna.c +@@ -167,7 +167,7 @@ idna__ace_to_ucs4(const char *ace_label, + + #ifdef WITH_UTF8PROC + +-#include <libutf8proc/utf8proc.h> ++#include <utf8proc.h> + + int32_t idna_contexto[] = { + /* CONTEXTO codepoints which have a rule defined */ Index: www/netsurf/libutf8proc/Makefile =================================================================== RCS file: www/netsurf/libutf8proc/Makefile diff -N www/netsurf/libutf8proc/Makefile --- www/netsurf/libutf8proc/Makefile 11 Mar 2022 20:10:09 -0000 1.9 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,13 +0,0 @@ -COMMENT = unicode library - -NETSURF_PROJECT = libutf8proc -NETSURF_VERSION = 2.4.0 -DISTNAME = libutf8proc-2.4.0-1-src -REVISION = 0 - -CATEGORIES = textproc -SHARED_LIBS = utf8proc 2.1 #1.3.1-3 - -TEST_DEPENDS = devel/check - -.include <bsd.port.mk> Index: www/netsurf/libutf8proc/distinfo =================================================================== RCS file: www/netsurf/libutf8proc/distinfo diff -N www/netsurf/libutf8proc/distinfo --- www/netsurf/libutf8proc/distinfo 9 Aug 2019 22:37:28 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,2 +0,0 @@ -SHA256 (libutf8proc-2.4.0-1-src.tar.gz) = AasdaYnBx3VQkNskw/ZOSflcVgrknCa+xRQrrGgCxHI= -SIZE (libutf8proc-2.4.0-1-src.tar.gz) = 154746 Index: www/netsurf/libutf8proc/pkg/DESCR =================================================================== RCS file: www/netsurf/libutf8proc/pkg/DESCR diff -N www/netsurf/libutf8proc/pkg/DESCR --- www/netsurf/libutf8proc/pkg/DESCR 30 Mar 2015 02:57:35 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,7 +0,0 @@ -utf8proc is a library for processing UTF-8 encoded Unicode strings. -Some features are Unicode normalization, stripping of default ignorable -characters, case folding and detection of grapheme cluster boundaries. -A special character mapping is available, which converts for example the -characters "Hyphen" (U+2010), "Minus" (U+2212) and "Hyphen-Minus" -(U+002D, ASCII Minus) all into the ASCII minus sign, to make them equal -for comparisons. Index: www/netsurf/libutf8proc/pkg/PLIST =================================================================== RCS file: www/netsurf/libutf8proc/pkg/PLIST diff -N www/netsurf/libutf8proc/pkg/PLIST --- www/netsurf/libutf8proc/pkg/PLIST 11 Mar 2022 20:10:09 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,4 +0,0 @@ -include/libutf8proc/ -include/libutf8proc/utf8proc.h -@lib lib/libutf8proc.so.${LIButf8proc_VERSION} -lib/pkgconfig/libutf8proc.pc Index: www/netsurf/netsurf-fb/Makefile =================================================================== RCS file: /cvs/ports/www/netsurf/netsurf-fb/Makefile,v diff -u -p -r1.18 Makefile --- www/netsurf/netsurf-fb/Makefile 16 May 2024 04:52:59 -0000 1.18 +++ www/netsurf/netsurf-fb/Makefile 15 Apr 2025 19:24:00 -0000 @@ -2,7 +2,7 @@ COMMENT = lightweight web browser, with NETSURF_PROJECT = netsurf-fb NETSURF_VERSION = 3.11 -REVISION = 0 +REVISION = 1 DISTNAME = netsurf-${NETSURF_VERSION}-src HOMEPAGE = https://www.netsurf-browser.org/ @@ -16,6 +16,7 @@ LIB_DEPENDS = devel/sdl \ graphics/libjxl \ graphics/libwebp \ graphics/png \ + textproc/libutf8proc \ www/netsurf/hubbub>=0.3.4 \ www/netsurf/libcss>=0.7.0 \ www/netsurf/libnsgif>=0.2.0 \ @@ -26,7 +27,6 @@ LIB_DEPENDS = devel/sdl \ www/netsurf/libnspsl>=0.1.2 \ www/netsurf/libnsutils>=0.0.3 \ www/netsurf/libsvgtiny>=0.1.6 \ - www/netsurf/libutf8proc>=1.3.1p0 \ net/curl TEST_DEPENDS = devel/check Index: www/netsurf/netsurf-fb/patches/patch-utils_idna_c =================================================================== RCS file: www/netsurf/netsurf-fb/patches/patch-utils_idna_c diff -N www/netsurf/netsurf-fb/patches/patch-utils_idna_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/netsurf/netsurf-fb/patches/patch-utils_idna_c 15 Apr 2025 19:24:00 -0000 @@ -0,0 +1,12 @@ +Index: utils/idna.c +--- utils/idna.c.orig ++++ utils/idna.c +@@ -167,7 +167,7 @@ idna__ace_to_ucs4(const char *ace_label, + + #ifdef WITH_UTF8PROC + +-#include <libutf8proc/utf8proc.h> ++#include <utf8proc.h> + + int32_t idna_contexto[] = { + /* CONTEXTO codepoints which have a rule defined */