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


Reply via email to