Index | Thread | Search

From:
"Anthony J. Bentley" <bentley@openbsd.org>
Subject:
UPDATE: www/netsurf
To:
ports@openbsd.org
Date:
Fri, 12 Apr 2024 15:45:49 -0600

Download raw body.

Thread
  • Anthony J. Bentley:

    UPDATE: www/netsurf

Hi,

This updates netsurf and netsurf-fb and their dependencies to the latest
versions.

As always, tests on additional architectures appreciated.

ok?

Index: browser/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/browser/Makefile,v
diff -u -p -r1.45 Makefile
--- browser/Makefile	27 Sep 2023 19:13:03 -0000	1.45
+++ browser/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,8 +1,7 @@
 COMMENT =		lightweight web browser, with GTK interface
 
 NETSURF_PROJECT =	netsurf
-NETSURF_VERSION =	3.10
-REVISION =		3
+NETSURF_VERSION =	3.11
 
 HOMEPAGE =		https://www.netsurf-browser.org/
 SITES =		https://download.netsurf-browser.org/netsurf/releases/source/
@@ -45,14 +44,14 @@ MAKE_FLAGS +=		NETSURF_USE_HARU_PDF=NO \
 
 post-patch:
 	#https://bugs.netsurf-browser.org/mantis/view.php?id=2045
-	cp ${WRKSRC}/frontends/gtk/res/options.gtk3.ui{,.unfixed}
-	cd ${WRKSRC} && egrep translatable.*preferences frontends/gtk/res/options.gtk3.ui | \
+	cp ${WRKSRC}/frontends/gtk/res/gtk3/options.ui{,.unfixed}
+	cd ${WRKSRC} && egrep translatable.*preferences frontends/gtk/res/gtk3/options.ui | \
 		sed -e 's/.*>\(.*\)<.*/\1/' | while read c ; do \
 		v=$$(egrep ^en\..*$$c: ${WRKSRC}/resources/FatMessages | cut -d : -f2 | sed -e 's/</\&lt;/g') ; \
-		perl -pi -e "s#>$$c<#>$$v<#" ${WRKSRC}/frontends/gtk/res/options.gtk3.ui ; done
+		perl -pi -e "s#>$$c<#>$$v<#" ${WRKSRC}/frontends/gtk/res/gtk3/options.ui ; done
 post-install:
 	${INSTALL_MAN} ${WRKSRC}/docs/netsurf-gtk.1 \
-		${PREFIX}/man/man1/netsurf-gtk.1
+		${PREFIX}/man/man1/netsurf-gtk3.1
 	${INSTALL_DATA_DIR} ${PREFIX}/share/applications
 	${INSTALL_DATA} ${WRKSRC}/frontends/gtk/res/netsurf-gtk.desktop \
 		${PREFIX}/share/applications/netsurf.desktop
Index: browser/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/browser/distinfo,v
diff -u -p -r1.16 distinfo
--- browser/distinfo	27 May 2020 11:38:18 -0000	1.16
+++ browser/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (netsurf-3.10-src.tar.gz) = NkhEKeGTYUaFwv8kb1W9Cm3d8xoBi+5F4NH3wohRmV4=
-SIZE (netsurf-3.10-src.tar.gz) = 4084480
+SHA256 (netsurf-3.11-src.tar.gz) = wopiau/uQo0FOxP4i1xECSIkWXZSLRLq8TfP0y0gHLI=
+SIZE (netsurf-3.11-src.tar.gz) = 4311767
Index: browser/patches/patch-content_fetchers_about_certificate_c
===================================================================
RCS file: browser/patches/patch-content_fetchers_about_certificate_c
diff -N browser/patches/patch-content_fetchers_about_certificate_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ browser/patches/patch-content_fetchers_about_certificate_c	12 Apr 2024 21:40:55 -0000
@@ -0,0 +1,369 @@
+Sync with upstream 3be91870a4d9094ef2955a10a05cb5674ea2f387:
+"fetchers: drop support for ancient OpenSSL"
+
+Index: content/fetchers/about/certificate.c
+--- content/fetchers/about/certificate.c.orig
++++ content/fetchers/about/certificate.c
+@@ -134,26 +134,29 @@ static nserror free_ns_cert_info(struct ns_cert_info *
+ #include <openssl/ssl.h>
+ #include <openssl/x509v3.h>
+ 
+-/* OpenSSL 1.0.x, 1.0.2, 1.1.0 and 1.1.1 API all changed
+- * LibreSSL declares its OpenSSL version as 2.1 but only supports 1.0.x API
+- */
+-#if (defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x1010000fL))
+-/* 1.0.x */
++#if (OPENSSL_VERSION_NUMBER < 0x30000000L)
++/* OpenSSL 1.1.1 or LibreSSL */
+ 
+-#if (defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x1000200fL))
+-/* pre 1.0.2 */
++# if defined(LIBRESSL_VERSION_NUMBER)
++  /* LibreSSL */
++#  if (LIBRESSL_VERSION_NUMBER < 0x3050000fL)
++   /* LibreSSL <3.5.0 */
++
++#   if (LIBRESSL_VERSION_NUMBER < 0x2070000fL)
++    /* LibreSSL <2.7.0 */
+ static int ns_X509_get_signature_nid(X509 *cert)
+ {
+ 	return OBJ_obj2nid(cert->cert_info->key->algor->algorithm);
+ }
+-#else
+-#define ns_X509_get_signature_nid X509_get_signature_nid
+-#endif
+ 
+ static const unsigned char *ns_ASN1_STRING_get0_data(ASN1_STRING *asn1str)
+ {
+ 	return (const unsigned char *)ASN1_STRING_data(asn1str);
+ }
++#   else
++#    define ns_X509_get_signature_nid X509_get_signature_nid
++#    define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
++#   endif
+ 
+ static const BIGNUM *ns_RSA_get0_n(const RSA *d)
+ {
+@@ -164,6 +167,20 @@ static const BIGNUM *ns_RSA_get0_e(const RSA *d)
+ {
+ 	return d->e;
+ }
++#  else
++   /* LibreSSL >= 3.5.0 */
++#   define ns_X509_get_signature_nid X509_get_signature_nid
++#   define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
++#   define ns_RSA_get0_n RSA_get0_n
++#   define ns_RSA_get0_e RSA_get0_e
++#  endif
++# else
++  /* OpenSSL 1.1.1 */
++#  define ns_X509_get_signature_nid X509_get_signature_nid
++#  define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
++#  define ns_RSA_get0_n RSA_get0_n
++#  define ns_RSA_get0_e RSA_get0_e
++# endif
+ 
+ static int ns_EVP_PKEY_get_bn_param(const EVP_PKEY *pkey,
+ 		const char *key_name, BIGNUM **bn) {
+@@ -296,300 +313,8 @@ static int ns_EVP_PKEY_get_octet_string_param(const EV
+ 
+ 	return ret;
+ }
+-#elif (OPENSSL_VERSION_NUMBER < 0x1010100fL)
+-/* 1.1.0 */
+-#define ns_X509_get_signature_nid X509_get_signature_nid
+-#define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
+-
+-static const BIGNUM *ns_RSA_get0_n(const RSA *r)
+-{
+-	const BIGNUM *n;
+-	const BIGNUM *e;
+-	const BIGNUM *d;
+-	RSA_get0_key(r, &n, &e, &d);
+-	return n;
+-}
+-
+-static const BIGNUM *ns_RSA_get0_e(const RSA *r)
+-{
+-	const BIGNUM *n;
+-	const BIGNUM *e;
+-	const BIGNUM *d;
+-	RSA_get0_key(r, &n, &e, &d);
+-	return e;
+-}
+-
+-static int ns_EVP_PKEY_get_bn_param(const EVP_PKEY *pkey,
+-		const char *key_name, BIGNUM **bn) {
+-	RSA *rsa;
+-	BIGNUM *result = NULL;
+-
+-	/* Check parameters: only support allocation-form *bn */
+-	if (pkey == NULL || key_name == NULL || bn == NULL || *bn != NULL)
+-		return 0;
+-
+-	/* Only support RSA keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA)
+-		return 0;
+-
+-	rsa = EVP_PKEY_get1_RSA((EVP_PKEY *) pkey);
+-	if (rsa == NULL)
+-		return 0;
+-
+-	if (strcmp(key_name, "n") == 0) {
+-		const BIGNUM *n = ns_RSA_get0_n(rsa);
+-		if (n != NULL)
+-			result = BN_dup(n);
+-	} else if (strcmp(key_name, "e") == 0) {
+-		const BIGNUM *e = ns_RSA_get0_e(rsa);
+-		if (e != NULL)
+-			result = BN_dup(e);
+-	}
+-
+-	RSA_free(rsa);
+-
+-	*bn = result;
+-
+-	return (result != NULL) ? 1 : 0;
+-}
+-
+-static int ns_EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, char *str, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const char *group;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	/* Only support fetching the group */
+-	if (strcmp(key_name, "group") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup == NULL) {
+-		group = "";
+-	} else {
+-		group = OBJ_nid2ln(EC_GROUP_get_curve_name(ecgroup));
+-	}
+-
+-	if (str != NULL && max_len > strlen(group)) {
+-		strcpy(str, group);
+-		str[strlen(group)] = '\0';
+-		ret = 1;
+-	}
+-	if (out_len != NULL)
+-		*out_len = strlen(group);
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+-
+-static int ns_EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, unsigned char *buf, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const EC_POINT *ecpoint;
+-	size_t len;
+-	BN_CTX *bnctx;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	if (strcmp(key_name, "encoded-pub-key") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-	if (ec == NULL)
+-		return 0;
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup != NULL) {
+-		ecpoint = EC_KEY_get0_public_key(ec);
+-		if (ecpoint != NULL) {
+-			bnctx = BN_CTX_new();
+-			len = EC_POINT_point2oct(ecgroup,
+-						 ecpoint,
+-						 POINT_CONVERSION_UNCOMPRESSED,
+-						 NULL,
+-						 0,
+-						 bnctx);
+-			if (len != 0 && len <= max_len) {
+-				if (EC_POINT_point2oct(ecgroup,
+-						       ecpoint,
+-						       POINT_CONVERSION_UNCOMPRESSED,
+-						       buf,
+-						       len,
+-						       bnctx) == len)
+-					ret = 1;
+-			}
+-			if (out_len != NULL)
+-				*out_len = len;
+-			BN_CTX_free(bnctx);
+-		}
+-	}
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+-#elif (OPENSSL_VERSION_NUMBER < 0x30000000L)
+-/* 1.1.1  */
+-#define ns_X509_get_signature_nid X509_get_signature_nid
+-#define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
+-#define ns_RSA_get0_n RSA_get0_n
+-#define ns_RSA_get0_e RSA_get0_e
+-
+-static int ns_EVP_PKEY_get_bn_param(const EVP_PKEY *pkey,
+-		const char *key_name, BIGNUM **bn) {
+-	RSA *rsa;
+-	BIGNUM *result = NULL;
+-
+-	/* Check parameters: only support allocation-form *bn */
+-	if (pkey == NULL || key_name == NULL || bn == NULL || *bn != NULL)
+-		return 0;
+-
+-	/* Only support RSA keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA)
+-		return 0;
+-
+-	rsa = EVP_PKEY_get1_RSA((EVP_PKEY *) pkey);
+-	if (rsa == NULL)
+-		return 0;
+-
+-	if (strcmp(key_name, "n") == 0) {
+-		const BIGNUM *n = ns_RSA_get0_n(rsa);
+-		if (n != NULL)
+-			result = BN_dup(n);
+-	} else if (strcmp(key_name, "e") == 0) {
+-		const BIGNUM *e = ns_RSA_get0_e(rsa);
+-		if (e != NULL)
+-			result = BN_dup(e);
+-	}
+-
+-	RSA_free(rsa);
+-
+-	*bn = result;
+-
+-	return (result != NULL) ? 1 : 0;
+-}
+-
+-static int ns_EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, char *str, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const char *group;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	/* Only support fetching the group */
+-	if (strcmp(key_name, "group") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup == NULL) {
+-		group = "";
+-	} else {
+-		group = OBJ_nid2ln(EC_GROUP_get_curve_name(ecgroup));
+-	}
+-
+-	if (str != NULL && max_len > strlen(group)) {
+-		strcpy(str, group);
+-		str[strlen(group)] = '\0';
+-		ret = 1;
+-	}
+-	if (out_len != NULL)
+-		*out_len = strlen(group);
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+-
+-static int ns_EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, unsigned char *buf, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const EC_POINT *ecpoint;
+-	size_t len;
+-	BN_CTX *bnctx;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	if (strcmp(key_name, "encoded-pub-key") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-	if (ec == NULL)
+-		return 0;
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup != NULL) {
+-		ecpoint = EC_KEY_get0_public_key(ec);
+-		if (ecpoint != NULL) {
+-			bnctx = BN_CTX_new();
+-			len = EC_POINT_point2oct(ecgroup,
+-						 ecpoint,
+-						 POINT_CONVERSION_UNCOMPRESSED,
+-						 NULL,
+-						 0,
+-						 bnctx);
+-			if (len != 0 && len <= max_len) {
+-				if (EC_POINT_point2oct(ecgroup,
+-						       ecpoint,
+-						       POINT_CONVERSION_UNCOMPRESSED,
+-						       buf,
+-						       len,
+-						       bnctx) == len)
+-					ret = 1;
+-			}
+-			if (out_len != NULL)
+-				*out_len = len;
+-			BN_CTX_free(bnctx);
+-		}
+-	}
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+ #else
+-/* 3.x and later */
++/* OpenSSL 3.x and later */
+ #define ns_X509_get_signature_nid X509_get_signature_nid
+ #define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
+ #define ns_RSA_get0_n RSA_get0_n
Index: browser/patches/patch-content_fetchers_curl_c
===================================================================
RCS file: /cvs/ports/www/netsurf/browser/patches/patch-content_fetchers_curl_c,v
diff -u -p -r1.5 patch-content_fetchers_curl_c
--- browser/patches/patch-content_fetchers_curl_c	11 Mar 2022 20:10:07 -0000	1.5
+++ browser/patches/patch-content_fetchers_curl_c	12 Apr 2024 21:40:55 -0000
@@ -4,9 +4,11 @@ X509_free has always been available.
 Index: content/fetchers/curl.c
 --- content/fetchers/curl.c.orig
 +++ content/fetchers/curl.c
-@@ -92,7 +92,7 @@
+@@ -96,9 +96,8 @@
+ #include <openssl/x509v3.h>
+ 
  /* OpenSSL 1.0.x to 1.1.0 certificate reference counting changed
-  * LibreSSL declares its OpenSSL version as 2.1 but only supports the old way
+- * LibreSSL declares its OpenSSL version as 2.1 but only supports the old way
   */
 -#if (defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x1010000fL))
 +#if (OPENSSL_VERSION_NUMBER < 0x1010000fL)
Index: browser/patches/patch-docs_netsurf-gtk_1
===================================================================
RCS file: browser/patches/patch-docs_netsurf-gtk_1
diff -N browser/patches/patch-docs_netsurf-gtk_1
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ browser/patches/patch-docs_netsurf-gtk_1	12 Apr 2024 21:40:55 -0000
@@ -0,0 +1,12 @@
+Index: docs/netsurf-gtk.1
+--- docs/netsurf-gtk.1.orig
++++ docs/netsurf-gtk.1
+@@ -13,7 +13,7 @@
+ .Nm netsurf
+ .Nd a small fast web browser
+ .Sh SYNOPSIS
+-.Nm netsurf-gtk
++.Nm netsurf-gtk3
+ .Op Ar options
+ .Op Ar url
+ .Sh DESCRIPTION
Index: browser/pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/netsurf/browser/pkg/PLIST,v
diff -u -p -r1.17 PLIST
--- browser/pkg/PLIST	11 Mar 2022 20:10:07 -0000	1.17
+++ browser/pkg/PLIST	12 Apr 2024 21:40:55 -0000
@@ -1,5 +1,5 @@
 @bin bin/netsurf-gtk3
-@man man/man1/netsurf-gtk.1
+@man man/man1/netsurf-gtk3.1
 share/applications/netsurf.desktop
 share/netsurf/
 share/netsurf/C
@@ -7,14 +7,14 @@ share/netsurf/Messages
 share/netsurf/SearchEngines
 share/netsurf/adblock.css
 share/netsurf/ca-bundle.txt
-share/netsurf/cookies.gtk3.ui
+share/netsurf/cookies.ui
 share/netsurf/credits.html
 share/netsurf/de/
 share/netsurf/de/Messages
 share/netsurf/de/welcome.html
 share/netsurf/default.css
 share/netsurf/default.ico
-share/netsurf/downloads.gtk3.ui
+share/netsurf/downloads.ui
 share/netsurf/en/
 share/netsurf/en/Messages
 share/netsurf/en/credits.html
@@ -23,8 +23,8 @@ share/netsurf/en/welcome.html
 share/netsurf/favicon.png
 share/netsurf/fr/
 share/netsurf/fr/Messages
-share/netsurf/globalhistory.gtk3.ui
-share/netsurf/hotlist.gtk3.ui
+share/netsurf/globalhistory.ui
+share/netsurf/hotlist.ui
 share/netsurf/icons/
 share/netsurf/icons/arrow-l.png
 share/netsurf/icons/content.png
@@ -45,21 +45,21 @@ share/netsurf/ja/
 share/netsurf/ja/welcome.html
 share/netsurf/languages
 share/netsurf/licence.html
-share/netsurf/localhistory.gtk3.ui
+share/netsurf/localhistory.ui
 share/netsurf/netsurf-16x16.xpm
-share/netsurf/netsurf.gtk3.ui
 share/netsurf/netsurf.png
+share/netsurf/netsurf.ui
 share/netsurf/netsurf.xpm
 share/netsurf/nl/
 share/netsurf/nl/Messages
 share/netsurf/nl/credits.html
 share/netsurf/nl/licence.html
 share/netsurf/nl/welcome.html
-share/netsurf/options.gtk3.ui
-share/netsurf/pageinfo.gtk3.ui
-share/netsurf/password.gtk3.ui
+share/netsurf/options.ui
+share/netsurf/pageinfo.ui
+share/netsurf/password.ui
 share/netsurf/quirks.css
-share/netsurf/tabcontents.gtk3.ui
+share/netsurf/tabcontents.ui
 share/netsurf/throbber/
 share/netsurf/throbber/throbber0.png
 share/netsurf/throbber/throbber1.png
@@ -70,8 +70,13 @@ share/netsurf/throbber/throbber5.png
 share/netsurf/throbber/throbber6.png
 share/netsurf/throbber/throbber7.png
 share/netsurf/throbber/throbber8.png
-share/netsurf/toolbar.gtk3.ui
-share/netsurf/viewdata.gtk3.ui
-share/netsurf/warning.gtk3.ui
+share/netsurf/toolbar.ui
+share/netsurf/viewdata.ui
+share/netsurf/warning.ui
 share/netsurf/welcome.html
+share/netsurf/zh_CN/
+share/netsurf/zh_CN/Messages
+share/netsurf/zh_CN/credits.html
+share/netsurf/zh_CN/licence.html
+share/netsurf/zh_CN/welcome.html
 @tag update-desktop-database
Index: buildsystem/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/buildsystem/Makefile,v
diff -u -p -r1.16 Makefile
--- buildsystem/Makefile	11 Mar 2022 20:10:07 -0000	1.16
+++ buildsystem/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,7 +1,7 @@
 COMMENT =		makefiles for building NetSurf
 
 NETSURF_PROJECT =	buildsystem
-NETSURF_VERSION =	1.9
+NETSURF_VERSION =	1.10
 DISTNAME =		${NETSURF_PROJECT}-${NETSURF_VERSION}
 PKGNAME =		netsurf-${NETSURF_PROJECT}-${NETSURF_VERSION}
 
Index: buildsystem/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/buildsystem/distinfo,v
diff -u -p -r1.10 distinfo
--- buildsystem/distinfo	27 May 2020 11:38:18 -0000	1.10
+++ buildsystem/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (buildsystem-1.9.tar.gz) = k4QeMUpoggmiC4dF8GU5PzqQ8Bvmj0Xpa8jS9KKqmio=
-SIZE (buildsystem-1.9.tar.gz) = 38723
+SHA256 (buildsystem-1.10.tar.gz) = PT451WnkRnfEsXkSm95hTGV5jis+YlMWAjnR/W6uTXk=
+SIZE (buildsystem-1.10.tar.gz) = 39221
Index: buildsystem/patches/patch-makefiles_Makefile_top
===================================================================
RCS file: /cvs/ports/www/netsurf/buildsystem/patches/patch-makefiles_Makefile_top,v
diff -u -p -r1.6 patch-makefiles_Makefile_top
--- buildsystem/patches/patch-makefiles_Makefile_top	11 Mar 2022 20:10:07 -0000	1.6
+++ buildsystem/patches/patch-makefiles_Makefile_top	12 Apr 2024 21:40:55 -0000
@@ -1,33 +1,27 @@
 Index: makefiles/Makefile.top
 --- makefiles/Makefile.top.orig
 +++ makefiles/Makefile.top
-@@ -190,8 +190,8 @@ endif
- ifeq ($(findstring lib,$(COMPONENT_TYPE)),lib)
-   ifeq ($(findstring lib-shared,$(COMPONENT_TYPE)),lib-shared)
-     SHAREDLIBNAME := lib$(COMPONENT)$(LIBEXT)
--    SONAME := $(SHAREDLIBNAME).$(major-version)
--    OUTPUT := $(BUILDDIR)/$(SHAREDLIBNAME).$(COMPONENT_VERSION)
-+    SONAME := $(SHAREDLIBNAME).$(NS_LIB_VERSION)
-+    OUTPUT := $(BUILDDIR)/$(SHAREDLIBNAME).$(NS_LIB_VERSION)
+@@ -197,8 +197,8 @@ ifeq ($(findstring lib,$(COMPONENT_TYPE)),lib)
+       OUTPUT := $(BUILDDIR)/lib$(COMPONENT).$(COMPONENT_VERSION)$(LIBEXT)
+     else
+       SHAREDLIBNAME := lib$(COMPONENT)$(LIBEXT)
+-      SONAME := $(SHAREDLIBNAME).$(major-version)
+-      OUTPUT := $(BUILDDIR)/$(SHAREDLIBNAME).$(COMPONENT_VERSION)
++      SONAME := $(SHAREDLIBNAME).$(NS_LIB_VERSION)
++      OUTPUT := $(BUILDDIR)/$(SHAREDLIBNAME).$(NS_LIB_VERSION)
+     endif
    else
      OUTPUT := $(BUILDDIR)/lib$(COMPONENT)$(LIBEXT)
-   endif
-@@ -206,14 +206,6 @@ endif
- .PHONY: all test coverage profile docs clean distclean install uninstall \
- 	__default __precov __partial_clean __postshared
+@@ -226,8 +226,6 @@ test: all $(TEST_PREREQS) $(TEST_BINARIES) $(TEST_TARG
+ 	$(VQ)$(ECHO) $(ECHOFLAGS) "    TEST: Testing complete"
  
--ifeq ($(COMPONENT_TYPE),lib-shared)
--  POST_TARGETS := __postshared $(POST_TARGETS)
--
--__postshared:
+ __postshared:
 -	$(Q)$(LN) $(LNFLAGS) -f -s $(notdir $(OUTPUT)) $(BUILDDIR)/$(SONAME)
 -	$(Q)$(LN) $(LNFLAGS) -f -s $(notdir $(OUTPUT)) $(BUILDDIR)/$(SHAREDLIBNAME)
--endif
--
- # Default target
- all: $(PRE_TARGETS) $(OUTPUT) $(POST_TARGETS)
  
-@@ -295,7 +287,7 @@ __libraries = $(if $(REQUIRED_LIBS),-l$(subst $(__spac
+ # Compute coverage
+ __precov: __partial_clean
+@@ -303,7 +301,7 @@ __libraries = $(if $(REQUIRED_LIBS),-l$(subst $(__spac
  define install_pkgconfig
  	$(Q)$(ECHO) $(ECHOFLAGS) "sed -e... $1 >$(BUILDDIR)/$(1:.in=)"
  	$(Q)$(SED) \
@@ -36,7 +30,7 @@ Index: makefiles/Makefile.top
  		-e 's#LIBDIR#$(LIBDIR)#' \
  		-e 's#MAJOR#$(major-version)#' \
  		-e 's#MINOR#$(minor-version)#' \
-@@ -313,8 +305,6 @@ endef
+@@ -321,8 +319,6 @@ endef
  # TODO: Is this scheme portable?
  define install_shared_lib
    $(INSTALL) $(INSTALLFLAGS) -m 755 $1 $2/$(notdir $1)
Index: hubbub/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/hubbub/Makefile,v
diff -u -p -r1.24 Makefile
--- hubbub/Makefile	11 Mar 2022 20:10:07 -0000	1.24
+++ hubbub/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,16 +1,17 @@
 COMMENT =		HTML parser
 
 NETSURF_PROJECT =	libhubbub
-NETSURF_VERSION =	0.3.7
+NETSURF_VERSION =	0.3.8
 PKGNAME =		hubbub-${NETSURF_VERSION}
 HOMEPAGE =		https://www.netsurf-browser.org/projects/hubbub/
 
-SHARED_LIBS =		hubbub 3.0 #0.3.4
+SHARED_LIBS =		hubbub 3.1 #0.3.8
 
 LIB_DEPENDS =		converters/libiconv \
 			www/netsurf/libparserutils>=0.2.1
 WANTLIB += iconv parserutils
 
+BUILD_DEPENDS =		devel/gperf
 TEST_DEPENDS =		devel/json-c>=0.10
 
 pre-build:
Index: hubbub/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/hubbub/distinfo,v
diff -u -p -r1.12 distinfo
--- hubbub/distinfo	27 May 2020 11:38:18 -0000	1.12
+++ hubbub/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libhubbub-0.3.7-src.tar.gz) = nnriU+bJBp51frmtTkhG84tNtSwMoBUURqn6Spd3NbY=
-SIZE (libhubbub-0.3.7-src.tar.gz) = 784780
+SHA256 (libhubbub-0.3.8-src.tar.gz) = isHm9fPUjAUUHVk5FxlTQpDFnNAp78JJ60/brBAs1aU=
+SIZE (libhubbub-0.3.8-src.tar.gz) = 780549
Index: libcss/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libcss/Makefile,v
diff -u -p -r1.25 Makefile
--- libcss/Makefile	11 Mar 2022 20:10:07 -0000	1.25
+++ libcss/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,9 +1,9 @@
 COMMENT =		CSS parser and selection engine
 
 NETSURF_PROJECT =	libcss
-NETSURF_VERSION =	0.9.1
+NETSURF_VERSION =	0.9.2
 
-SHARED_LIBS =		css 6.0 #0.9.0
+SHARED_LIBS =		css 6.1 #0.9.2
 
 LIB_DEPENDS =		converters/libiconv \
 			www/netsurf/libparserutils>=0.2.1 \
Index: libcss/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libcss/distinfo,v
diff -u -p -r1.15 distinfo
--- libcss/distinfo	27 May 2020 11:38:18 -0000	1.15
+++ libcss/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libcss-0.9.1-src.tar.gz) = 0tzhbpM5Lo1qcglCDUfC1Wo4EXAaDoGnJPxUHGPTxtw=
-SIZE (libcss-0.9.1-src.tar.gz) = 522715
+SHA256 (libcss-0.9.2-src.tar.gz) = LfIVu+w01R1gwaBLAbLfTV0Y9RDx86evS4DN21ZxFU4=
+SIZE (libcss-0.9.2-src.tar.gz) = 545016
Index: libcss/pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/netsurf/libcss/pkg/PLIST,v
diff -u -p -r1.5 PLIST
--- libcss/pkg/PLIST	11 Mar 2022 20:10:07 -0000	1.5
+++ libcss/pkg/PLIST	12 Apr 2024 21:40:55 -0000
@@ -10,5 +10,6 @@ include/libcss/properties.h
 include/libcss/select.h
 include/libcss/stylesheet.h
 include/libcss/types.h
+include/libcss/unit.h
 @lib lib/libcss.so.${LIBcss_VERSION}
 lib/pkgconfig/libcss.pc
Index: libdom/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libdom/Makefile,v
diff -u -p -r1.17 Makefile
--- libdom/Makefile	11 Mar 2022 20:10:07 -0000	1.17
+++ libdom/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,9 +1,9 @@
 COMMENT =		W3C DOM implementation
 
 NETSURF_PROJECT =	libdom
-NETSURF_VERSION =	0.4.1
+NETSURF_VERSION =	0.4.2
 
-SHARED_LIBS =		dom 2.0 #0.4.1
+SHARED_LIBS =		dom 2.1 #0.4.2
 
 LIB_DEPENDS =		converters/libiconv \
 			www/netsurf/hubbub>=0.3.4 \
Index: libdom/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libdom/distinfo,v
diff -u -p -r1.10 distinfo
--- libdom/distinfo	27 May 2020 11:38:18 -0000	1.10
+++ libdom/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libdom-0.4.1-src.tar.gz) = mO4HJHHlXiCMmHjlFcQQrUYso2+HtK/L7K0CPzos70o=
-SIZE (libdom-0.4.1-src.tar.gz) = 872954
+SHA256 (libdom-0.4.2-src.tar.gz) = 0F5FrxZUcBTCsKOuzzZw+hPUGfUFs/X8esihSR/DDzw=
+SIZE (libdom-0.4.2-src.tar.gz) = 878706
Index: libdom/pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/netsurf/libdom/pkg/PLIST,v
diff -u -p -r1.6 PLIST
--- libdom/pkg/PLIST	11 Mar 2022 20:10:08 -0000	1.6
+++ libdom/pkg/PLIST	12 Apr 2024 21:40:55 -0000
@@ -24,6 +24,7 @@ include/dom/core/nodelist.h
 include/dom/core/pi.h
 include/dom/core/string.h
 include/dom/core/text.h
+include/dom/core/tokenlist.h
 include/dom/core/typeinfo.h
 include/dom/dom.h
 include/dom/events/
@@ -102,5 +103,6 @@ include/dom/html/html_text_area_element.
 include/dom/html/html_title_element.h
 include/dom/html/html_ulist_element.h
 include/dom/inttypes.h
+include/dom/walk.h
 @lib lib/libdom.so.${LIBdom_VERSION}
 lib/pkgconfig/libdom.pc
Index: libnsbmp/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsbmp/Makefile,v
diff -u -p -r1.15 Makefile
--- libnsbmp/Makefile	11 Mar 2022 20:10:08 -0000	1.15
+++ libnsbmp/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,7 +1,7 @@
 COMMENT =		BMP/ICO decoding library
 
 NETSURF_PROJECT =	libnsbmp
-NETSURF_VERSION =	0.1.6
+NETSURF_VERSION =	0.1.7
 
 CATEGORIES =		graphics
 SHARED_LIBS =		nsbmp 1.0 #0.1.3
Index: libnsbmp/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsbmp/distinfo,v
diff -u -p -r1.9 distinfo
--- libnsbmp/distinfo	27 May 2020 11:38:18 -0000	1.9
+++ libnsbmp/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libnsbmp-0.1.6-src.tar.gz) = ecSTZfhg7UUb/EEJ7d7I3j6bfOWjvgaVlr0qoZJ5Mk8=
-SIZE (libnsbmp-0.1.6-src.tar.gz) = 463348
+SHA256 (libnsbmp-0.1.7-src.tar.gz) = VAenaCoSK6qqWhW1BSkOLTffVME8Xt70sJ0SyGLYIpM=
+SIZE (libnsbmp-0.1.7-src.tar.gz) = 466530
Index: libnsgif/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsgif/Makefile,v
diff -u -p -r1.15 Makefile
--- libnsgif/Makefile	11 Mar 2022 20:10:08 -0000	1.15
+++ libnsgif/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,10 +1,9 @@
 COMMENT =		GIF decoding library
 
 NETSURF_PROJECT =	libnsgif
-NETSURF_VERSION =	0.2.1
-REVISION =		0
+NETSURF_VERSION =	1.0.0
 
 CATEGORIES =		graphics
-SHARED_LIBS =		nsgif 1.0 #0.2.0
+SHARED_LIBS =		nsgif 2.0 #1.0.0
 
 .include <bsd.port.mk>
Index: libnsgif/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsgif/distinfo,v
diff -u -p -r1.9 distinfo
--- libnsgif/distinfo	25 Sep 2018 08:48:59 -0000	1.9
+++ libnsgif/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libnsgif-0.2.1-src.tar.gz) = nq6lNM1wtTxar0UxeulXcBaFprSojb407Sb0+q6Hmks=
-SIZE (libnsgif-0.2.1-src.tar.gz) = 268328
+SHA256 (libnsgif-1.0.0-src.tar.gz) = YBTIQvYUVNL1oPgkPXqNe96bfaPM/cotNGx8CyxMBhs=
+SIZE (libnsgif-1.0.0-src.tar.gz) = 282568
Index: libnsgif/pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsgif/pkg/PLIST,v
diff -u -p -r1.4 PLIST
--- libnsgif/pkg/PLIST	11 Mar 2022 20:10:08 -0000	1.4
+++ libnsgif/pkg/PLIST	12 Apr 2024 21:40:55 -0000
@@ -1,3 +1,3 @@
-include/libnsgif.h
+include/nsgif.h
 @lib lib/libnsgif.so.${LIBnsgif_VERSION}
 lib/pkgconfig/libnsgif.pc
Index: libnspsl/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libnspsl/Makefile,v
diff -u -p -r1.9 Makefile
--- libnspsl/Makefile	9 Apr 2023 14:28:14 -0000	1.9
+++ libnspsl/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,8 +1,7 @@
 COMMENT =		public suffix list library for netsurf
 
 NETSURF_PROJECT =	libnspsl
-NETSURF_VERSION =	0.1.6
-REVISION =		0
+NETSURF_VERSION =	0.1.7
 
 CATEGORIES =		www
 SHARED_LIBS =		nspsl 0.0 #0.1.0
Index: libnspsl/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libnspsl/distinfo,v
diff -u -p -r1.5 distinfo
--- libnspsl/distinfo	27 May 2020 11:38:19 -0000	1.5
+++ libnspsl/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libnspsl-0.1.6-src.tar.gz) = 08WCBct40xC/gcpVNHotCYcZzsrHBGvDZ5g7E4tFAgs=
-SIZE (libnspsl-0.1.6-src.tar.gz) = 320130
+SHA256 (libnspsl-0.1.7-src.tar.gz) = NoTOwy9VXa7UMZk+C/bL2TdPbJCERiN+CJ8LYdaUrIA=
+SIZE (libnspsl-0.1.7-src.tar.gz) = 337538
Index: libnsutils/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsutils/Makefile,v
diff -u -p -r1.9 Makefile
--- libnsutils/Makefile	11 Mar 2022 20:10:08 -0000	1.9
+++ libnsutils/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,7 +1,7 @@
 COMMENT =		miscellaneous internal functions for netsurf
 
 NETSURF_PROJECT =	libnsutils
-NETSURF_VERSION =	0.1.0
+NETSURF_VERSION =	0.1.1
 
 CATEGORIES =		www
 SHARED_LIBS =		nsutils 1.1 #0.1.0
Index: libnsutils/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsutils/distinfo,v
diff -u -p -r1.5 distinfo
--- libnsutils/distinfo	27 May 2020 11:38:19 -0000	1.5
+++ libnsutils/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libnsutils-0.1.0-src.tar.gz) = eQxlFjRKvoL2KJ1lY5LpzOvkdbIMx+Hi2EMBE4X3rvA=
-SIZE (libnsutils-0.1.0-src.tar.gz) = 8840
+SHA256 (libnsutils-0.1.1-src.tar.gz) = VpS0Um5FjtAAQTzmAnWJy+EKJXp+zwZaAUIdxymd6pI=
+SIZE (libnsutils-0.1.1-src.tar.gz) = 8996
Index: libnsutils/pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/netsurf/libnsutils/pkg/PLIST,v
diff -u -p -r1.4 PLIST
--- libnsutils/pkg/PLIST	11 Mar 2022 20:10:08 -0000	1.4
+++ libnsutils/pkg/PLIST	12 Apr 2024 21:40:55 -0000
@@ -1,4 +1,5 @@
 include/nsutils/
+include/nsutils/assert.h
 include/nsutils/base64.h
 include/nsutils/endian.h
 include/nsutils/errors.h
Index: libparserutils/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libparserutils/Makefile,v
diff -u -p -r1.14 Makefile
--- libparserutils/Makefile	11 Mar 2022 20:10:08 -0000	1.14
+++ libparserutils/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,11 +1,10 @@
 COMMENT =		utility library for parser building
 
 NETSURF_PROJECT =	libparserutils
-NETSURF_VERSION =	0.2.4
-REVISION =		0
+NETSURF_VERSION =	0.2.5
 
 CATEGORIES =		devel
-SHARED_LIBS =		parserutils 2.0 #0.2.1
+SHARED_LIBS =		parserutils 2.1 #0.2.5
 
 WANTLIB =		iconv
 
Index: libparserutils/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libparserutils/distinfo,v
diff -u -p -r1.8 distinfo
--- libparserutils/distinfo	25 Sep 2018 08:48:59 -0000	1.8
+++ libparserutils/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libparserutils-0.2.4-src.tar.gz) = MiuuYbMMzt4+MFv26uJBSSBkl3W8X/HRtogBKjxJR9g=
-SIZE (libparserutils-0.2.4-src.tar.gz) = 74521
+SHA256 (libparserutils-0.2.5-src.tar.gz) = MX7VxxjxeSe1chl0uuXeMsP9bQVdsTGtMbQxKgMu0Tk=
+SIZE (libparserutils-0.2.5-src.tar.gz) = 74518
Index: libsvgtiny/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/libsvgtiny/Makefile,v
diff -u -p -r1.9 Makefile
--- libsvgtiny/Makefile	11 Mar 2022 20:10:09 -0000	1.9
+++ libsvgtiny/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,8 +1,7 @@
 COMMENT =		SVG Tiny implementation
 
 NETSURF_PROJECT =	libsvgtiny
-NETSURF_VERSION =	0.1.7
-REVISION =		0
+NETSURF_VERSION =	0.1.8
 
 CATEGORIES =		graphics
 SHARED_LIBS =		svgtiny 0.0 #0.1.4
Index: libsvgtiny/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/libsvgtiny/distinfo,v
diff -u -p -r1.4 distinfo
--- libsvgtiny/distinfo	25 Sep 2018 08:48:59 -0000	1.4
+++ libsvgtiny/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (libsvgtiny-0.1.7-src.tar.gz) = LA3PlS8c2ILD6VQB75RZ8W27U8XT5FEjObL563add4E=
-SIZE (libsvgtiny-0.1.7-src.tar.gz) = 760963
+SHA256 (libsvgtiny-0.1.8-src.tar.gz) = w1cifwLoP7KnaxK5ARkaCCIp2x8Ac2Lo8xx1RRDCoBw=
+SIZE (libsvgtiny-0.1.8-src.tar.gz) = 764959
Index: netsurf-fb/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/netsurf-fb/Makefile,v
diff -u -p -r1.16 Makefile
--- netsurf-fb/Makefile	27 Sep 2023 19:13:04 -0000	1.16
+++ netsurf-fb/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,9 +1,8 @@
 COMMENT =		lightweight web browser, with SDL interface
 
 NETSURF_PROJECT =	netsurf-fb
-NETSURF_VERSION =	3.9
+NETSURF_VERSION =	3.11
 DISTNAME =		netsurf-${NETSURF_VERSION}-src
-REVISION =		2
 
 HOMEPAGE =		https://www.netsurf-browser.org/
 SITES =		https://download.netsurf-browser.org/netsurf/releases/source/
Index: netsurf-fb/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/netsurf-fb/distinfo,v
diff -u -p -r1.5 distinfo
--- netsurf-fb/distinfo	9 Aug 2019 22:37:28 -0000	1.5
+++ netsurf-fb/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (netsurf-3.9-src.tar.gz) = 1y8cb2EToB5UH4R2qTw0cjUGh3kUAJDfVbpALrSo7MM=
-SIZE (netsurf-3.9-src.tar.gz) = 3989742
+SHA256 (netsurf-3.11-src.tar.gz) = wopiau/uQo0FOxP4i1xECSIkWXZSLRLq8TfP0y0gHLI=
+SIZE (netsurf-3.11-src.tar.gz) = 4311767
Index: netsurf-fb/patches/patch-content_fetchers_about_certificate_c
===================================================================
RCS file: netsurf-fb/patches/patch-content_fetchers_about_certificate_c
diff -N netsurf-fb/patches/patch-content_fetchers_about_certificate_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ netsurf-fb/patches/patch-content_fetchers_about_certificate_c	12 Apr 2024 21:40:55 -0000
@@ -0,0 +1,366 @@
+Index: content/fetchers/about/certificate.c
+--- content/fetchers/about/certificate.c.orig
++++ content/fetchers/about/certificate.c
+@@ -134,26 +134,29 @@ static nserror free_ns_cert_info(struct ns_cert_info *
+ #include <openssl/ssl.h>
+ #include <openssl/x509v3.h>
+ 
+-/* OpenSSL 1.0.x, 1.0.2, 1.1.0 and 1.1.1 API all changed
+- * LibreSSL declares its OpenSSL version as 2.1 but only supports 1.0.x API
+- */
+-#if (defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x1010000fL))
+-/* 1.0.x */
++#if (OPENSSL_VERSION_NUMBER < 0x30000000L)
++/* OpenSSL 1.1.1 or LibreSSL */
+ 
+-#if (defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x1000200fL))
+-/* pre 1.0.2 */
++# if defined(LIBRESSL_VERSION_NUMBER)
++  /* LibreSSL */
++#  if (LIBRESSL_VERSION_NUMBER < 0x3050000fL)
++   /* LibreSSL <3.5.0 */
++
++#   if (LIBRESSL_VERSION_NUMBER < 0x2070000fL)
++    /* LibreSSL <2.7.0 */
+ static int ns_X509_get_signature_nid(X509 *cert)
+ {
+ 	return OBJ_obj2nid(cert->cert_info->key->algor->algorithm);
+ }
+-#else
+-#define ns_X509_get_signature_nid X509_get_signature_nid
+-#endif
+ 
+ static const unsigned char *ns_ASN1_STRING_get0_data(ASN1_STRING *asn1str)
+ {
+ 	return (const unsigned char *)ASN1_STRING_data(asn1str);
+ }
++#   else
++#    define ns_X509_get_signature_nid X509_get_signature_nid
++#    define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
++#   endif
+ 
+ static const BIGNUM *ns_RSA_get0_n(const RSA *d)
+ {
+@@ -164,6 +167,20 @@ static const BIGNUM *ns_RSA_get0_e(const RSA *d)
+ {
+ 	return d->e;
+ }
++#  else
++   /* LibreSSL >= 3.5.0 */
++#   define ns_X509_get_signature_nid X509_get_signature_nid
++#   define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
++#   define ns_RSA_get0_n RSA_get0_n
++#   define ns_RSA_get0_e RSA_get0_e
++#  endif
++# else
++  /* OpenSSL 1.1.1 */
++#  define ns_X509_get_signature_nid X509_get_signature_nid
++#  define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
++#  define ns_RSA_get0_n RSA_get0_n
++#  define ns_RSA_get0_e RSA_get0_e
++# endif
+ 
+ static int ns_EVP_PKEY_get_bn_param(const EVP_PKEY *pkey,
+ 		const char *key_name, BIGNUM **bn) {
+@@ -296,300 +313,8 @@ static int ns_EVP_PKEY_get_octet_string_param(const EV
+ 
+ 	return ret;
+ }
+-#elif (OPENSSL_VERSION_NUMBER < 0x1010100fL)
+-/* 1.1.0 */
+-#define ns_X509_get_signature_nid X509_get_signature_nid
+-#define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
+-
+-static const BIGNUM *ns_RSA_get0_n(const RSA *r)
+-{
+-	const BIGNUM *n;
+-	const BIGNUM *e;
+-	const BIGNUM *d;
+-	RSA_get0_key(r, &n, &e, &d);
+-	return n;
+-}
+-
+-static const BIGNUM *ns_RSA_get0_e(const RSA *r)
+-{
+-	const BIGNUM *n;
+-	const BIGNUM *e;
+-	const BIGNUM *d;
+-	RSA_get0_key(r, &n, &e, &d);
+-	return e;
+-}
+-
+-static int ns_EVP_PKEY_get_bn_param(const EVP_PKEY *pkey,
+-		const char *key_name, BIGNUM **bn) {
+-	RSA *rsa;
+-	BIGNUM *result = NULL;
+-
+-	/* Check parameters: only support allocation-form *bn */
+-	if (pkey == NULL || key_name == NULL || bn == NULL || *bn != NULL)
+-		return 0;
+-
+-	/* Only support RSA keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA)
+-		return 0;
+-
+-	rsa = EVP_PKEY_get1_RSA((EVP_PKEY *) pkey);
+-	if (rsa == NULL)
+-		return 0;
+-
+-	if (strcmp(key_name, "n") == 0) {
+-		const BIGNUM *n = ns_RSA_get0_n(rsa);
+-		if (n != NULL)
+-			result = BN_dup(n);
+-	} else if (strcmp(key_name, "e") == 0) {
+-		const BIGNUM *e = ns_RSA_get0_e(rsa);
+-		if (e != NULL)
+-			result = BN_dup(e);
+-	}
+-
+-	RSA_free(rsa);
+-
+-	*bn = result;
+-
+-	return (result != NULL) ? 1 : 0;
+-}
+-
+-static int ns_EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, char *str, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const char *group;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	/* Only support fetching the group */
+-	if (strcmp(key_name, "group") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup == NULL) {
+-		group = "";
+-	} else {
+-		group = OBJ_nid2ln(EC_GROUP_get_curve_name(ecgroup));
+-	}
+-
+-	if (str != NULL && max_len > strlen(group)) {
+-		strcpy(str, group);
+-		str[strlen(group)] = '\0';
+-		ret = 1;
+-	}
+-	if (out_len != NULL)
+-		*out_len = strlen(group);
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+-
+-static int ns_EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, unsigned char *buf, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const EC_POINT *ecpoint;
+-	size_t len;
+-	BN_CTX *bnctx;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	if (strcmp(key_name, "encoded-pub-key") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-	if (ec == NULL)
+-		return 0;
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup != NULL) {
+-		ecpoint = EC_KEY_get0_public_key(ec);
+-		if (ecpoint != NULL) {
+-			bnctx = BN_CTX_new();
+-			len = EC_POINT_point2oct(ecgroup,
+-						 ecpoint,
+-						 POINT_CONVERSION_UNCOMPRESSED,
+-						 NULL,
+-						 0,
+-						 bnctx);
+-			if (len != 0 && len <= max_len) {
+-				if (EC_POINT_point2oct(ecgroup,
+-						       ecpoint,
+-						       POINT_CONVERSION_UNCOMPRESSED,
+-						       buf,
+-						       len,
+-						       bnctx) == len)
+-					ret = 1;
+-			}
+-			if (out_len != NULL)
+-				*out_len = len;
+-			BN_CTX_free(bnctx);
+-		}
+-	}
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+-#elif (OPENSSL_VERSION_NUMBER < 0x30000000L)
+-/* 1.1.1  */
+-#define ns_X509_get_signature_nid X509_get_signature_nid
+-#define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
+-#define ns_RSA_get0_n RSA_get0_n
+-#define ns_RSA_get0_e RSA_get0_e
+-
+-static int ns_EVP_PKEY_get_bn_param(const EVP_PKEY *pkey,
+-		const char *key_name, BIGNUM **bn) {
+-	RSA *rsa;
+-	BIGNUM *result = NULL;
+-
+-	/* Check parameters: only support allocation-form *bn */
+-	if (pkey == NULL || key_name == NULL || bn == NULL || *bn != NULL)
+-		return 0;
+-
+-	/* Only support RSA keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_RSA)
+-		return 0;
+-
+-	rsa = EVP_PKEY_get1_RSA((EVP_PKEY *) pkey);
+-	if (rsa == NULL)
+-		return 0;
+-
+-	if (strcmp(key_name, "n") == 0) {
+-		const BIGNUM *n = ns_RSA_get0_n(rsa);
+-		if (n != NULL)
+-			result = BN_dup(n);
+-	} else if (strcmp(key_name, "e") == 0) {
+-		const BIGNUM *e = ns_RSA_get0_e(rsa);
+-		if (e != NULL)
+-			result = BN_dup(e);
+-	}
+-
+-	RSA_free(rsa);
+-
+-	*bn = result;
+-
+-	return (result != NULL) ? 1 : 0;
+-}
+-
+-static int ns_EVP_PKEY_get_utf8_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, char *str, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const char *group;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	/* Only support fetching the group */
+-	if (strcmp(key_name, "group") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup == NULL) {
+-		group = "";
+-	} else {
+-		group = OBJ_nid2ln(EC_GROUP_get_curve_name(ecgroup));
+-	}
+-
+-	if (str != NULL && max_len > strlen(group)) {
+-		strcpy(str, group);
+-		str[strlen(group)] = '\0';
+-		ret = 1;
+-	}
+-	if (out_len != NULL)
+-		*out_len = strlen(group);
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+-
+-static int ns_EVP_PKEY_get_octet_string_param(const EVP_PKEY *pkey,
+-		const char *key_name, unsigned char *buf, size_t max_len,
+-		size_t *out_len)
+-{
+-	const EC_GROUP *ecgroup;
+-	const EC_POINT *ecpoint;
+-	size_t len;
+-	BN_CTX *bnctx;
+-	EC_KEY *ec;
+-	int ret = 0;
+-
+-	if (pkey == NULL || key_name == NULL)
+-		return 0;
+-
+-	/* Only support EC keys */
+-	if (EVP_PKEY_base_id(pkey) != EVP_PKEY_EC)
+-		return 0;
+-
+-	if (strcmp(key_name, "encoded-pub-key") != 0)
+-		return 0;
+-
+-	ec = EVP_PKEY_get1_EC_KEY((EVP_PKEY *) pkey);
+-	if (ec == NULL)
+-		return 0;
+-
+-	ecgroup = EC_KEY_get0_group(ec);
+-	if (ecgroup != NULL) {
+-		ecpoint = EC_KEY_get0_public_key(ec);
+-		if (ecpoint != NULL) {
+-			bnctx = BN_CTX_new();
+-			len = EC_POINT_point2oct(ecgroup,
+-						 ecpoint,
+-						 POINT_CONVERSION_UNCOMPRESSED,
+-						 NULL,
+-						 0,
+-						 bnctx);
+-			if (len != 0 && len <= max_len) {
+-				if (EC_POINT_point2oct(ecgroup,
+-						       ecpoint,
+-						       POINT_CONVERSION_UNCOMPRESSED,
+-						       buf,
+-						       len,
+-						       bnctx) == len)
+-					ret = 1;
+-			}
+-			if (out_len != NULL)
+-				*out_len = len;
+-			BN_CTX_free(bnctx);
+-		}
+-	}
+-
+-	EC_KEY_free(ec);
+-
+-	return ret;
+-}
+ #else
+-/* 3.x and later */
++/* OpenSSL 3.x and later */
+ #define ns_X509_get_signature_nid X509_get_signature_nid
+ #define ns_ASN1_STRING_get0_data ASN1_STRING_get0_data
+ #define ns_RSA_get0_n RSA_get0_n
Index: netsurf-fb/patches/patch-content_fetchers_curl_c
===================================================================
RCS file: /cvs/ports/www/netsurf/netsurf-fb/patches/patch-content_fetchers_curl_c,v
diff -u -p -r1.3 patch-content_fetchers_curl_c
--- netsurf-fb/patches/patch-content_fetchers_curl_c	11 Mar 2022 20:10:09 -0000	1.3
+++ netsurf-fb/patches/patch-content_fetchers_curl_c	12 Apr 2024 21:40:55 -0000
@@ -4,9 +4,11 @@ X509_free has always been available.
 Index: content/fetchers/curl.c
 --- content/fetchers/curl.c.orig
 +++ content/fetchers/curl.c
-@@ -149,7 +149,7 @@ static bool inside_curl = false;
+@@ -96,9 +96,8 @@
+ #include <openssl/x509v3.h>
+ 
  /* OpenSSL 1.0.x to 1.1.0 certificate reference counting changed
-  * LibreSSL declares its OpenSSL version as 2.1 but only supports the old way
+- * LibreSSL declares its OpenSSL version as 2.1 but only supports the old way
   */
 -#if (defined(LIBRESSL_VERSION_NUMBER) || (OPENSSL_VERSION_NUMBER < 0x1010000fL))
 +#if (OPENSSL_VERSION_NUMBER < 0x1010000fL)
Index: netsurf-fb/pkg/PLIST
===================================================================
RCS file: /cvs/ports/www/netsurf/netsurf-fb/pkg/PLIST,v
diff -u -p -r1.4 PLIST
--- netsurf-fb/pkg/PLIST	11 Mar 2022 20:10:09 -0000	1.4
+++ netsurf-fb/pkg/PLIST	12 Apr 2024 21:40:55 -0000
@@ -7,7 +7,6 @@ share/netsurf-fb/credits.html
 share/netsurf-fb/default.css
 share/netsurf-fb/internal.css
 share/netsurf-fb/licence.html
-share/netsurf-fb/maps.html
 share/netsurf-fb/netsurf.png
 share/netsurf-fb/quirks.css
 share/netsurf-fb/welcome.html
Index: nsgenbind/Makefile
===================================================================
RCS file: /cvs/ports/www/netsurf/nsgenbind/Makefile,v
diff -u -p -r1.9 Makefile
--- nsgenbind/Makefile	11 Mar 2022 20:10:09 -0000	1.9
+++ nsgenbind/Makefile	12 Apr 2024 21:40:55 -0000
@@ -1,7 +1,7 @@
 COMMENT =		JavaScript bindings generator
 
 NETSURF_PROJECT =	nsgenbind
-NETSURF_VERSION =	0.8
+NETSURF_VERSION =	0.9
 
 BUILD_DEPENDS +=	devel/bison
 
Index: nsgenbind/distinfo
===================================================================
RCS file: /cvs/ports/www/netsurf/nsgenbind/distinfo,v
diff -u -p -r1.6 distinfo
--- nsgenbind/distinfo	27 May 2020 11:38:19 -0000	1.6
+++ nsgenbind/distinfo	12 Apr 2024 21:40:55 -0000
@@ -1,2 +1,2 @@
-SHA256 (nsgenbind-0.8-src.tar.gz) = TY1TrQAK2nEncjZeanPrj8XOl1hK+chlrFsmohh/HLM=
-SIZE (nsgenbind-0.8-src.tar.gz) = 117463
+SHA256 (nsgenbind-0.9-src.tar.gz) = Iyzg9my8LD7tYoiuJt4sVnu/u8Adiw9vxsHBZJ1LOF0=
+SIZE (nsgenbind-0.9-src.tar.gz) = 117484