git: ed5fe1155b2d - main - www/h2o*: meld devel flavour into main port

From: Dave Cottlehuber <dch_at_FreeBSD.org>
Date: Sun, 24 Mar 2024 14:15:50 UTC
The branch main has been updated by dch:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ed5fe1155b2d2eac7f0081683d886571b9fffacc

commit ed5fe1155b2d2eac7f0081683d886571b9fffacc
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2024-03-24 14:15:48 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2024-03-24 14:15:48 +0000

    www/h2o*: meld devel flavour into main port
    
    - upstream has indicated there will be no more versioned releases
    - only master branch updates
    - all remaining consumers of libh2o have moved to alternatives
---
 MOVED                                              |   1 +
 www/Makefile                                       |   1 -
 www/h2o-devel/Makefile                             |  77 ------------
 www/h2o-devel/distinfo                             |   3 -
 www/h2o-devel/files/h2o.conf.sample.in             |  97 ---------------
 www/h2o-devel/files/h2o.in                         |  43 -------
 www/h2o-devel/pkg-descr                            |  22 ----
 www/h2o-devel/pkg-plist                            | 132 ---------------------
 www/h2o/Makefile                                   |  37 +++---
 www/h2o/distinfo                                   |   8 +-
 www/h2o/files/patch-deps_mruby_Rakefile            |  63 ----------
 www/h2o/files/patch-deps_neverbleed_neverbleed.c   |  22 ----
 .../files/patch-deps_quicly_lib_quicly.c           |   0
 www/{h2o-devel => h2o}/files/patch-src_ssl.c       |   0
 www/h2o/pkg-plist                                  | 110 ++++++++++-------
 15 files changed, 84 insertions(+), 532 deletions(-)

diff --git a/MOVED b/MOVED
index 5889cd87df46..c0fa74bed157 100644
--- a/MOVED
+++ b/MOVED
@@ -3055,3 +3055,4 @@ lang/swi-pl|lang/swipl|2024-03-17|Port renamed on request
 devel/rubygem-with_advisory_lock|devel/rubygem-with_advisory_lock61|2024-03-18|Port renamed to follow naming convention
 emulators/cpmemu||2024-03-19|Has expired: BROKEN on all versions since last year
 devel/grpc142||2024-03-20|Has expired: Please use devel/grpc instead
+www/h2o-devel|www/h2o|2024-03-23|Upstream no longer supports releases, this port is folded into www/h2o instead
diff --git a/www/Makefile b/www/Makefile
index 80060a3c1ab2..9fce0bd7ad1b 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -240,7 +240,6 @@
     SUBDIR += gwsocket
     SUBDIR += h2c
     SUBDIR += h2o
-    SUBDIR += h2o-devel
     SUBDIR += habari
     SUBDIR += hiawatha
     SUBDIR += hiawatha-monitor
diff --git a/www/h2o-devel/Makefile b/www/h2o-devel/Makefile
deleted file mode 100644
index fb4319266318..000000000000
--- a/www/h2o-devel/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-PORTNAME=	h2o
-DISTVERSIONPREFIX=	v
-DISTVERSION=	2.3.0-dev.20231107
-CATEGORIES=	www
-PKGNAMESUFFIX=	-devel
-
-MAINTAINER=	dch@FreeBSD.org
-COMMENT=	Optimized HTTP/2 server including support for TLS 1.3 and HTTP/1.x
-WWW=		https://github.com/h2o/h2o
-
-LICENSE=	BSD2CLAUSE MIT
-LICENSE_COMB=	multi
-
-BROKEN_armv6=	fails to compile: asm_arm.inc:139:36: '.syntax divided' arm assembly not supported
-BROKEN_armv7=	fails to compile: asm_arm.inc:139:36: '.syntax divided' arm assembly not supported
-
-BUILD_DEPENDS=	rubygem-rake>=0:devel/rubygem-rake
-LIB_DEPENDS=	libuv.so:devel/libuv
-
-USES=		cmake:noninja compiler:c11 cpe perl5 pkgconfig shebangfix ssl
-CPE_VENDOR=	dena
-USE_GITHUB=	yes
-GH_TAGNAME=	b15937e
-
-USE_LDCONFIG=	yes
-USE_RC_SUBR=	${PORTNAME}
-
-SHEBANG_FILES=	share/h2o/start_server
-
-CMAKE_ARGS+=	-DBUILD_SHARED_LIBS=OFF
-
-CONFLICTS=	h2o
-
-SUB_FILES=	${PORTNAME} ${PORTNAME}.conf.sample
-SUB_LIST+=	H2O_GROUP=${H2O_GROUP} \
-		H2O_LOGDIR=${H2O_LOGDIR} \
-		H2O_USER=${H2O_USER}
-
-PLIST_SUB=	H2O_GROUP=${H2O_GROUP} \
-		H2O_LOGDIR=${H2O_LOGDIR} \
-		H2O_USER=${H2O_USER}
-PORTDOCS=	README.md
-
-.ifnmake portclippy
-H2O_USER?=	www
-H2O_GROUP?=	www
-
-H2O_LOGDIR=	/var/log/${PORTNAME}/
-.endif
-
-OPTIONS_DEFINE=		DOCS MRUBY
-OPTIONS_DEFAULT=	MRUBY
-OPTIONS_SUB=		yes
-MRUBY_DESC=		Build with embedded mruby handler support
-MRUBY_USES=		bison ruby:build
-MRUBY_CMAKE_BOOL=	WITH_MRUBY
-
-.include <bsd.port.pre.mk>
-
-.if ${ARCH} == i386
-CMAKE_ARGS+=	-DWITH_FUSION=OFF
-.endif
-
-.include <bsd.port.options.mk>
-
-post-install:
-	${MKDIR} ${STAGEDIR}${ETCDIR} \
-		${STAGEDIR}${H2O_LOGDIR}
-	${INSTALL_DATA} \
-		${WRKDIR}/${PORTNAME}.conf.sample \
-		${STAGEDIR}${ETCDIR}/${PORTNAME}.conf.sample
-
-post-install-DOCS-on:
-	${MKDIR} ${STAGEDIR}${DOCSDIR}
-	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
-
-.include <bsd.port.post.mk>
diff --git a/www/h2o-devel/distinfo b/www/h2o-devel/distinfo
deleted file mode 100644
index 2ba3cd8e0770..000000000000
--- a/www/h2o-devel/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1699740447
-SHA256 (h2o-h2o-v2.3.0-dev.20231107-b15937e_GH0.tar.gz) = 3d70ad17d24f9e8ec575c235004f22ef3cf4d2c93f95f351928d05cbc5ed0c76
-SIZE (h2o-h2o-v2.3.0-dev.20231107-b15937e_GH0.tar.gz) = 30565861
diff --git a/www/h2o-devel/files/h2o.conf.sample.in b/www/h2o-devel/files/h2o.conf.sample.in
deleted file mode 100644
index 38c703f3a938..000000000000
--- a/www/h2o-devel/files/h2o.conf.sample.in
+++ /dev/null
@@ -1,97 +0,0 @@
-# this sample config gives you a feel for how h2o can be used
-# and a high-security configuration for TLS and HTTP headers
-# see https://h2o.examp1e.net/ for detailed documentation
-# and h2o --help for command-line options and settings
-user: www
-pid-file: /var/run/h2o.pid
-# log normal access to file
-access-log: /var/log/h2o/access.log
-# send errors to syslog
-error-log:  "| logger -i -p daemon.err -t h2o"
-
-# as of 2017-12-01 the following TLS config and headers, with
-# DNS CAA records and custom diffie-hellmann parameters via
-# `openssl dhparam -out %%PREFIX%%/etc/ssl/dhparam.pem 4096`
-# will get you:
-
-# A+ on https://www.ssllabs.com/ssltest/
-listen: 80
-listen:
-  port: 443
-  ssl:
-    # using at least TLS1.2 restricts many older devices
-    minimum-version: TLSv1.1
-    dh-file: %%PREFIX%%/etc/ssl/dhparam.pem
-    # generate your own certificates with security/acme-client
-    certificate-file: %%PREFIX%%/etc/ssl/acme/example.org/fullchain.pem
-    key-file: %%PREFIX%%/etc/ssl/acme/private/example.org/privkey.pem
-    cipher-preference: server
-    cipher-suite: ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
-
-# A+ on https://securityheaders.io/
-header.set: "x-frame-options: deny"
-header.set: "X-XSS-Protection: 1; mode=block"
-header.set: "X-Content-Type-Options: nosniff"
-header.set: "X-UA-Compatible: IE=Edge"
-header.set: "Referrer-Policy: strict-origin"
-header.set: "Cache-Control: no-transform"
-header.set: "Content-Security-Policy: default-src https:"
-# 6 months HSTS pinning
-header.set: "Strict-Transport-Security: max-age=16000000"
-
-# limit POST bodies
-limit-request-body: 10485760 # 10MiB
-
-file.mime.addtypes:
-  text/plain: .log
-  text/css: .css
-  application/atom+xml: .xml
-  "text/html; charset=utf-8": .html
-
-# per-host configurations
-hosts:
-  # a basic fileserver
-  www.example.org:
-    # enable Apache-style directory listings
-    file.dirlisting: on
-    file.send-gzip: on
-    paths:
-      "/":
-        file.dir: "/var/www/www.example.org"
-      # a simple permanent URL redirect
-      "/blog":
-        redirect:
-          status: 301
-          url: https://blog.example.org/
-      # a password-restricted url
-      "/server-status":
-        mruby.handler: |
-          require "htpasswd.rb"
-          Htpasswd.new("%%ETCDIR%%/private/htpasswd", "example.org")
-        status: ON
-      # redireect Lets Encrypt ACME protocol to a specific challenge directory
-      "/.well-known/acme-challenge":
-        file.dir: "/var/www/acme"
-  # virtual directory layout to support serving FreeBSD packages built by poudriere
-  pkg.example.org:
-    paths:
-      "/poudriere":
-        file.dir: "%%PREFIX%%/poudriere/data/logs/bulk"
-      "/FreeBSD:10:amd64":
-        file.dir: "%%PREFIX%%/poudriere/data/packages/10_amd64-default/"
-      "/FreeBSD:11:amd64":
-        file.dir: "%%PREFIX%%/poudriere/data/packages/11_amd64-default/"
-  # a simple ruby-powered embedded JSON API
-  api.example.net:
-    paths:
-      "/ok.json":
-        mruby.handler: |
-          Proc.new do |env|
-            [200, {'content-type' => 'application/json'}, ['{"status":"ok"}']]
-          end
-  # a websockets-aware reverse proxy
-  ws.example.net:
-    paths:
-      "/":
-        proxy.websocket: ON
-        proxy.reverse.url: "http://localhost:1080/"
diff --git a/www/h2o-devel/files/h2o.in b/www/h2o-devel/files/h2o.in
deleted file mode 100644
index c6f0fb2c41ec..000000000000
--- a/www/h2o-devel/files/h2o.in
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-
-# PROVIDE: h2o
-# REQUIRE: LOGIN DAEMON NETWORKING
-# KEYWORD: shutdown
-
-# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
-# to enable this service:
-#
-# h2o_enable    (bool):   Set to NO by default.
-# Set it to YES to enable h2o.
-#
-# h2o_config    (string): Optional full path for h2o config file
-# h2o_perl      (string): Optional full path to perl executable
-
-. /etc/rc.subr
-
-name=h2o
-rcvar=h2o_enable
-desc="An HTTP/2 high-performance webserver"
-
-load_rc_config $name
-
-extra_commands="configtest reload"
-configtest_cmd="h2o_configtest"
-
-# defaults
-: ${h2o_enable:=NO}
-: ${h2o_config:=%%PREFIX%%/etc/${name}/${name}.conf}
-: ${h2o_perl:=%%LOCALBASE%%/bin/perl}
-
-# daemon
-pidfile=`grep pid-file ${h2o_config} | awk '{print $2}'`
-h2o_env="H2O_PERL=${h2o_perl}"
-command="%%PREFIX%%/bin/${name}"
-command_args="-m daemon -c ${h2o_config}"
-procname="%%LOCALBASE%%/bin/perl"
-
-h2o_configtest() {
-	"${command}" -c "${h2o_config}" -t
-}
-
-run_rc_command "$1"
diff --git a/www/h2o-devel/pkg-descr b/www/h2o-devel/pkg-descr
deleted file mode 100644
index f6b5bcf6b3fd..000000000000
--- a/www/h2o-devel/pkg-descr
+++ /dev/null
@@ -1,22 +0,0 @@
-H2O is a very fast HTTP server written in C. It can also be used as a library.
-
-It supports:
-
-- HTTP/1.0, HTTP/1.1
-- HTTP/2
-- persistent connections
-- chunked encoding
-- negotiation methods: NPN, ALPN, Upgrade, direct
-- dependency and weight-based prioritization
-- server push
-- TLS up to 1.3
-- support OpenSSL and LibreSSL
-- forward secrecy
-- AEAD ciphers
-- OCSP stapling (automatically enabled)
-- session resumption (internal memory)
-- conditional GET using last-modified / etag
-- mime-type configuration
-- reverse proxy
-- websocket support
-- embedded mruby interpreter for high speed custom functions
diff --git a/www/h2o-devel/pkg-plist b/www/h2o-devel/pkg-plist
deleted file mode 100644
index d67651f52feb..000000000000
--- a/www/h2o-devel/pkg-plist
+++ /dev/null
@@ -1,132 +0,0 @@
-@comment bin/h2o-httpclient
-@dir(%%H2O_USER%%,%%H2O_GROUP%%,0750) %%H2O_LOGDIR%%
-@sample %%ETCDIR%%/h2o.conf.sample
-%%DATADIR%%/annotate-backtrace-symbols
-%%DATADIR%%/ca-bundle.crt
-%%DATADIR%%/fastcgi-cgi
-%%DATADIR%%/fetch-ocsp-response
-%%DATADIR%%/kill-on-close
-%%DATADIR%%/setuidgid
-%%DATADIR%%/start_server
-%%DATADIR%%/status/index.html
-%%MRUBY%%%%DATADIR%%/mruby/acl.rb
-%%MRUBY%%%%DATADIR%%/mruby/bootstrap.rb
-%%MRUBY%%%%DATADIR%%/mruby/dos_detector.rb
-%%MRUBY%%%%DATADIR%%/mruby/htpasswd.rb
-%%MRUBY%%%%DATADIR%%/mruby/lru_cache.rb
-%%MRUBY%%%%DATADIR%%/mruby/preloads.rb
-%%MRUBY%%%%DATADIR%%/mruby/prometheus.rb
-%%MRUBY%%%%DATADIR%%/mruby/trie_addr.rb
-%%PORTDOCS%%%%DOCSDIR%%/assets/8mbps100msec-nginx195-h2o150.png
-%%PORTDOCS%%%%DOCSDIR%%/assets/firstpaintbench.png
-%%PORTDOCS%%%%DOCSDIR%%/assets/remotebench.png
-%%PORTDOCS%%%%DOCSDIR%%/assets/searchstyle.css
-%%PORTDOCS%%%%DOCSDIR%%/assets/staticfile612-nginx1910-h2o170.png
-%%PORTDOCS%%%%DOCSDIR%%/assets/style.css
-%%PORTDOCS%%%%DOCSDIR%%/benchmarks.html
-%%PORTDOCS%%%%DOCSDIR%%/configure.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/access_control.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/access_log_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/base_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/basic_auth.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/cgi.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/command_options.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/compress_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/dos_detection.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/errordoc_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/expires_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/fastcgi_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/file_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/h2olog.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/headers_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/http1_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/http2_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/http3_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/mruby_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/mruby.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/proxy_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/quick_start.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/redirect_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/reproxy_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/server_timing_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/status_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/syntax_and_structure.html
-%%PORTDOCS%%%%DOCSDIR%%/configure/throttle_response_directives.html
-%%PORTDOCS%%%%DOCSDIR%%/examples/doc_root.alternate/index.txt
-%%PORTDOCS%%%%DOCSDIR%%/examples/doc_root.third/index.txt
-%%PORTDOCS%%%%DOCSDIR%%/examples/doc_root/index.html
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o_mruby/h2o.conf
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o_mruby/hello.rb
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/alternate.crt
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/alternate.key
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/ech.key
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/h2o.conf
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/server.crt
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/server.key
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/server.pub
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/wildcard.crt
-%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/wildcard.key
-%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/latency-optimization.c
-%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/redis-client.c
-%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/simple.c
-%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/socket-client.c
-%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/websocket.c
-%%PORTDOCS%%%%DOCSDIR%%/faq.html
-%%PORTDOCS%%%%DOCSDIR%%/h2o.conf.5
-%%PORTDOCS%%%%DOCSDIR%%/index.html
-%%PORTDOCS%%%%DOCSDIR%%/install.html
-%%PORTDOCS%%%%DOCSDIR%%/search/jquery-1.9.1.min.js
-%%PORTDOCS%%%%DOCSDIR%%/search/oktavia-english-search.js
-%%PORTDOCS%%%%DOCSDIR%%/search/oktavia-jquery-ui.js
-%%PORTDOCS%%%%DOCSDIR%%/search/searchindex.js
-bin/h2o
-include/h2o.h
-include/h2o/absprio.h
-include/h2o/balancer.h
-include/h2o/cache_digests.h
-include/h2o/cache.h
-include/h2o/configurator.h
-include/h2o/ebpf.h
-include/h2o/file.h
-include/h2o/filecache.h
-include/h2o/header.h
-include/h2o/hiredis_.h
-include/h2o/hostinfo.h
-include/h2o/hpack.h
-include/h2o/http1.h
-include/h2o/http2_casper.h
-include/h2o/http2_common.h
-include/h2o/http2_internal.h
-include/h2o/http2_scheduler.h
-include/h2o/http2.h
-include/h2o/http3_common.h
-include/h2o/http3_internal.h
-include/h2o/http3_server.h
-include/h2o/httpclient.h
-include/h2o/linklist.h
-include/h2o/memcached.h
-include/h2o/memory.h
-include/h2o/mruby_.h
-include/h2o/multithread.h
-include/h2o/openssl_backport.h
-include/h2o/qpack.h
-include/h2o/rand.h
-include/h2o/redis.h
-include/h2o/send_state.h
-include/h2o/serverutil.h
-include/h2o/socket.h
-include/h2o/socket/evloop.h
-include/h2o/socket/uv-binding.h
-include/h2o/socketpool.h
-include/h2o/string_.h
-include/h2o/time_.h
-include/h2o/timerwheel.h
-include/h2o/token_table.h
-include/h2o/token.h
-include/h2o/url.h
-include/h2o/version.h
-include/h2o/websocket.h
-libdata/pkgconfig/libh2o-evloop.pc
-libdata/pkgconfig/libh2o.pc
-share/man/man5/h2o.conf.5.gz
-share/man/man8/h2o.8.gz
diff --git a/www/h2o/Makefile b/www/h2o/Makefile
index fe51682ffaea..80e0fa4ae240 100644
--- a/www/h2o/Makefile
+++ b/www/h2o/Makefile
@@ -1,12 +1,8 @@
 PORTNAME=	h2o
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.2.6
-PORTREVISION=	2
+DISTVERSION=	2.3.0-dev.20240314
 CATEGORIES=	www
 
-PATCH_SITES=	https://github.com/h2o/h2o/pull/:github
-PATCHFILES=	3293.patch:-p1:github
-
 MAINTAINER=	dch@FreeBSD.org
 COMMENT=	Optimized HTTP/2 server including support for TLS 1.3 and HTTP/1.x
 WWW=		https://github.com/h2o/h2o
@@ -14,25 +10,23 @@ WWW=		https://github.com/h2o/h2o
 LICENSE=	BSD2CLAUSE MIT
 LICENSE_COMB=	multi
 
-DEPRECATED=	Upstream EOL confirmed on 2023-10-10, removal planned for 2023-12-30
 BROKEN_armv6=	fails to compile: asm_arm.inc:139:36: '.syntax divided' arm assembly not supported
 BROKEN_armv7=	fails to compile: asm_arm.inc:139:36: '.syntax divided' arm assembly not supported
 
+BUILD_DEPENDS=	rubygem-rake>=0:devel/rubygem-rake
 LIB_DEPENDS=	libuv.so:devel/libuv
 
 USES=		cmake:noninja compiler:c11 cpe perl5 pkgconfig shebangfix ssl
 CPE_VENDOR=	dena
 USE_GITHUB=	yes
+GH_TAGNAME=	7545f5f
+
 USE_LDCONFIG=	yes
-USE_PERL5=	run
 USE_RC_SUBR=	${PORTNAME}
 
 SHEBANG_FILES=	share/h2o/start_server
 
-CMAKE_ARGS+=	-DBUILD_SHARED_LIBS=ON \
-		-DWITH_BUNDLED_SSL=OFF
-
-CONFLICTS=	h2o-devel
+CMAKE_ARGS+=	-DBUILD_SHARED_LIBS=OFF
 
 SUB_FILES=	${PORTNAME} ${PORTNAME}.conf.sample
 SUB_LIST+=	H2O_GROUP=${H2O_GROUP} \
@@ -42,30 +36,29 @@ SUB_LIST+=	H2O_GROUP=${H2O_GROUP} \
 PLIST_SUB=	H2O_GROUP=${H2O_GROUP} \
 		H2O_LOGDIR=${H2O_LOGDIR} \
 		H2O_USER=${H2O_USER}
-
 PORTDOCS=	README.md
 
+.ifnmake portclippy
 H2O_USER?=	www
 H2O_GROUP?=	www
 
 H2O_LOGDIR=	/var/log/${PORTNAME}/
+.endif
 
 OPTIONS_DEFINE=		DOCS MRUBY
 OPTIONS_DEFAULT=	MRUBY
 OPTIONS_SUB=		yes
 MRUBY_DESC=		Build with embedded mruby handler support
-
 MRUBY_USES=		bison ruby:build
 MRUBY_CMAKE_BOOL=	WITH_MRUBY
 
-post-patch:
-	@${REINPLACE_CMD} -e 's|exec perl|exec ${LOCALBASE}/bin/perl|' \
-		${WRKSRC}/share/h2o/annotate-backtrace-symbols \
-		${WRKSRC}/share/h2o/fastcgi-cgi \
-		${WRKSRC}/share/h2o/fetch-ocsp-response \
-		${WRKSRC}/share/h2o/kill-on-close \
-		${WRKSRC}/share/h2o/setuidgid \
-		${WRKSRC}/share/h2o/start_server
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} == i386
+CMAKE_ARGS+=	-DWITH_FUSION=OFF
+.endif
+
+.include <bsd.port.options.mk>
 
 post-install:
 	${MKDIR} ${STAGEDIR}${ETCDIR} \
@@ -78,4 +71,4 @@ post-install-DOCS-on:
 	${MKDIR} ${STAGEDIR}${DOCSDIR}
 	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/www/h2o/distinfo b/www/h2o/distinfo
index cc5d472a2c6c..5aa371be9f97 100644
--- a/www/h2o/distinfo
+++ b/www/h2o/distinfo
@@ -1,5 +1,3 @@
-TIMESTAMP = 1697026111
-SHA256 (h2o-h2o-v2.2.6_GH0.tar.gz) = f8cbc1b530d85ff098f6efc2c3fdbc5e29baffb30614caac59d5c710f7bda201
-SIZE (h2o-h2o-v2.2.6_GH0.tar.gz) = 16257760
-SHA256 (3293.patch) = 4e093c92840dd82df3e90868f7e957087f1631cea0fd67892e87b10445277c91
-SIZE (3293.patch) = 10243
+TIMESTAMP = 1711233165
+SHA256 (h2o-h2o-v2.3.0-dev.20240314-7545f5f_GH0.tar.gz) = e7fd874375b735e30eeea96539f37db5f10de64d797ea8b5269d9f1969784f68
+SIZE (h2o-h2o-v2.3.0-dev.20240314-7545f5f_GH0.tar.gz) = 30755375
diff --git a/www/h2o/files/patch-deps_mruby_Rakefile b/www/h2o/files/patch-deps_mruby_Rakefile
deleted file mode 100644
index edbd51a02ecd..000000000000
--- a/www/h2o/files/patch-deps_mruby_Rakefile
+++ /dev/null
@@ -1,63 +0,0 @@
---- deps/mruby/Rakefile.orig	2019-08-12 14:09:44 UTC
-+++ deps/mruby/Rakefile
-@@ -37,15 +37,15 @@ bin_path = ENV['INSTALL_DIR'] || "#{MRUBY_ROOT}/bin"
- task :default => :all
- 
- bin_path = ENV['INSTALL_DIR'] || "#{MRUBY_ROOT}/bin"
--FileUtils.mkdir_p bin_path, { :verbose => $verbose }
-+FileUtils.mkdir_p bin_path, verbose: $verbose
- 
- depfiles = MRuby.targets['host'].bins.map do |bin|
-   install_path = MRuby.targets['host'].exefile("#{bin_path}/#{bin}")
-   source_path = MRuby.targets['host'].exefile("#{MRuby.targets['host'].build_dir}/bin/#{bin}")
- 
-   file install_path => source_path do |t|
--    FileUtils.rm_f t.name, { :verbose => $verbose }
--    FileUtils.cp t.prerequisites.first, t.name, { :verbose => $verbose }
-+    FileUtils.rm_f t.name, verbose: $verbose
-+    FileUtils.cp t.prerequisites.first, t.name, verbose: $verbose
-   end
- 
-   install_path
-@@ -78,8 +78,8 @@ MRuby.each_target do |target|
-         install_path = MRuby.targets['host'].exefile("#{bin_path}/#{bin}")
- 
-         file install_path => exec do |t|
--          FileUtils.rm_f t.name, { :verbose => $verbose }
--          FileUtils.cp t.prerequisites.first, t.name, { :verbose => $verbose }
-+          FileUtils.rm_f t.name, verbose: $verbose
-+          FileUtils.cp t.prerequisites.first, t.name, verbose: $verbose
-         end
-         depfiles += [ install_path ]
-       elsif target == MRuby.targets['host-debug']
-@@ -87,8 +87,8 @@ MRuby.each_target do |target|
-           install_path = MRuby.targets['host-debug'].exefile("#{bin_path}/#{bin}")
- 
-           file install_path => exec do |t|
--            FileUtils.rm_f t.name, { :verbose => $verbose }
--            FileUtils.cp t.prerequisites.first, t.name, { :verbose => $verbose }
-+            FileUtils.rm_f t.name, verbose: $verbose
-+            FileUtils.cp t.prerequisites.first, t.name, verbose: $verbose
-           end
-           depfiles += [ install_path ]
-         end
-@@ -127,16 +127,16 @@ task :clean do
- desc "clean all built and in-repo installed artifacts"
- task :clean do
-   MRuby.each_target do |t|
--    FileUtils.rm_rf t.build_dir, { :verbose => $verbose }
-+    FileUtils.rm_rf t.build_dir, verbose: $verbose
-   end
--  FileUtils.rm_f depfiles, { :verbose => $verbose }
-+  FileUtils.rm_f depfiles, verbose: $verbose
-   puts "Cleaned up target build folder"
- end
- 
- desc "clean everything!"
- task :deep_clean => ["clean"] do
-   MRuby.each_target do |t|
--    FileUtils.rm_rf t.gem_clone_dir, { :verbose => $verbose }
-+    FileUtils.rm_rf t.gem_clone_dir, verbose: $verbose
-   end
-   puts "Cleaned up mrbgems build folder"
- end
diff --git a/www/h2o/files/patch-deps_neverbleed_neverbleed.c b/www/h2o/files/patch-deps_neverbleed_neverbleed.c
deleted file mode 100644
index 4fd3bcd79533..000000000000
--- a/www/h2o/files/patch-deps_neverbleed_neverbleed.c
+++ /dev/null
@@ -1,22 +0,0 @@
---- deps/neverbleed/neverbleed.c.orig	2019-08-12 14:09:44 UTC
-+++ deps/neverbleed/neverbleed.c
-@@ -45,7 +45,9 @@
- #endif
- #include "neverbleed.h"
-
--#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x1010000fL)
-+#if (OPENSSL_VERSION_NUMBER >= 0x1010000fL \
-+    || (defined(LIBRESSL_VERSION_NUMBER) \
-+    && LIBRESSL_VERSION_NUMBER >= 0x3050300fL))
- #define OPENSSL_1_1_API 1
- #else
- #define OPENSSL_1_1_API 0
-@@ -630,7 +632,7 @@ static int sign_stub(struct expbuf_t *buf)
-     return 0;
- }
- 
--#if !OPENSSL_1_1_API
-+#if !OPENSSL_1_1_API && (!defined(LIBRESSL_VERSION_NUMBER) || LIBRESSL_VERSION_NUMBER < 0x2070000fL)
- 
- static void RSA_get0_key(const RSA *rsa, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
- {
diff --git a/www/h2o-devel/files/patch-deps_quicly_lib_quicly.c b/www/h2o/files/patch-deps_quicly_lib_quicly.c
similarity index 100%
rename from www/h2o-devel/files/patch-deps_quicly_lib_quicly.c
rename to www/h2o/files/patch-deps_quicly_lib_quicly.c
diff --git a/www/h2o-devel/files/patch-src_ssl.c b/www/h2o/files/patch-src_ssl.c
similarity index 100%
rename from www/h2o-devel/files/patch-src_ssl.c
rename to www/h2o/files/patch-src_ssl.c
diff --git a/www/h2o/pkg-plist b/www/h2o/pkg-plist
index 3a5b4cf0e46c..d67651f52feb 100644
--- a/www/h2o/pkg-plist
+++ b/www/h2o/pkg-plist
@@ -1,45 +1,6 @@
-bin/h2o
-include/h2o.h
-include/h2o/cache_digests.h
-include/h2o/cache.h
-include/h2o/configurator.h
-include/h2o/file.h
-include/h2o/filecache.h
-include/h2o/hostinfo.h
-include/h2o/http1.h
-include/h2o/http1client.h
-include/h2o/http2_casper.h
-include/h2o/http2_internal.h
-include/h2o/http2_scheduler.h
-include/h2o/http2.h
-include/h2o/linklist.h
-include/h2o/memcached.h
-include/h2o/memory.h
-include/h2o/mruby_.h
-include/h2o/multithread.h
-include/h2o/openssl_backport.h
-include/h2o/rand.h
-include/h2o/serverutil.h
-include/h2o/socket.h
-include/h2o/socket/evloop.h
-include/h2o/socket/uv-binding.h
-include/h2o/socketpool.h
-include/h2o/string_.h
-include/h2o/time_.h
-include/h2o/timeout.h
-include/h2o/token.h
-include/h2o/tunnel.h
-include/h2o/url.h
-include/h2o/version.h
-include/h2o/websocket.h
-lib/libh2o-evloop.so
-lib/libh2o-evloop.so.0.13
-lib/libh2o-evloop.so.0.13.6
-lib/libh2o.so
-lib/libh2o.so.0.13
-lib/libh2o.so.0.13.6
-libdata/pkgconfig/libh2o-evloop.pc
-libdata/pkgconfig/libh2o.pc
+@comment bin/h2o-httpclient
+@dir(%%H2O_USER%%,%%H2O_GROUP%%,0750) %%H2O_LOGDIR%%
+@sample %%ETCDIR%%/h2o.conf.sample
 %%DATADIR%%/annotate-backtrace-symbols
 %%DATADIR%%/ca-bundle.crt
 %%DATADIR%%/fastcgi-cgi
@@ -54,6 +15,7 @@ libdata/pkgconfig/libh2o.pc
 %%MRUBY%%%%DATADIR%%/mruby/htpasswd.rb
 %%MRUBY%%%%DATADIR%%/mruby/lru_cache.rb
 %%MRUBY%%%%DATADIR%%/mruby/preloads.rb
+%%MRUBY%%%%DATADIR%%/mruby/prometheus.rb
 %%MRUBY%%%%DATADIR%%/mruby/trie_addr.rb
 %%PORTDOCS%%%%DOCSDIR%%/assets/8mbps100msec-nginx195-h2o150.png
 %%PORTDOCS%%%%DOCSDIR%%/assets/firstpaintbench.png
@@ -75,38 +37,96 @@ libdata/pkgconfig/libh2o.pc
 %%PORTDOCS%%%%DOCSDIR%%/configure/expires_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/fastcgi_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/file_directives.html
+%%PORTDOCS%%%%DOCSDIR%%/configure/h2olog.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/headers_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/http1_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/http2_directives.html
+%%PORTDOCS%%%%DOCSDIR%%/configure/http3_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/mruby_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/mruby.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/proxy_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/quick_start.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/redirect_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/reproxy_directives.html
+%%PORTDOCS%%%%DOCSDIR%%/configure/server_timing_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/status_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/syntax_and_structure.html
 %%PORTDOCS%%%%DOCSDIR%%/configure/throttle_response_directives.html
 %%PORTDOCS%%%%DOCSDIR%%/examples/doc_root.alternate/index.txt
+%%PORTDOCS%%%%DOCSDIR%%/examples/doc_root.third/index.txt
 %%PORTDOCS%%%%DOCSDIR%%/examples/doc_root/index.html
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o_mruby/h2o.conf
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o_mruby/hello.rb
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o/alternate.crt
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o/alternate.key
+%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/ech.key
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o/h2o.conf
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o/server.crt
 %%PORTDOCS%%%%DOCSDIR%%/examples/h2o/server.key
-%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/http1client.c
+%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/server.pub
+%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/wildcard.crt
+%%PORTDOCS%%%%DOCSDIR%%/examples/h2o/wildcard.key
 %%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/latency-optimization.c
+%%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/redis-client.c
 %%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/simple.c
 %%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/socket-client.c
 %%PORTDOCS%%%%DOCSDIR%%/examples/libh2o/websocket.c
 %%PORTDOCS%%%%DOCSDIR%%/faq.html
+%%PORTDOCS%%%%DOCSDIR%%/h2o.conf.5
 %%PORTDOCS%%%%DOCSDIR%%/index.html
 %%PORTDOCS%%%%DOCSDIR%%/install.html
 %%PORTDOCS%%%%DOCSDIR%%/search/jquery-1.9.1.min.js
 %%PORTDOCS%%%%DOCSDIR%%/search/oktavia-english-search.js
 %%PORTDOCS%%%%DOCSDIR%%/search/oktavia-jquery-ui.js
 %%PORTDOCS%%%%DOCSDIR%%/search/searchindex.js
-@dir(%%H2O_USER%%,%%H2O_GROUP%%,0750) %%H2O_LOGDIR%%
-@sample %%ETCDIR%%/h2o.conf.sample
+bin/h2o
+include/h2o.h
+include/h2o/absprio.h
+include/h2o/balancer.h
+include/h2o/cache_digests.h
+include/h2o/cache.h
+include/h2o/configurator.h
+include/h2o/ebpf.h
+include/h2o/file.h
+include/h2o/filecache.h
+include/h2o/header.h
+include/h2o/hiredis_.h
+include/h2o/hostinfo.h
+include/h2o/hpack.h
+include/h2o/http1.h
+include/h2o/http2_casper.h
+include/h2o/http2_common.h
+include/h2o/http2_internal.h
+include/h2o/http2_scheduler.h
+include/h2o/http2.h
+include/h2o/http3_common.h
+include/h2o/http3_internal.h
+include/h2o/http3_server.h
+include/h2o/httpclient.h
+include/h2o/linklist.h
+include/h2o/memcached.h
+include/h2o/memory.h
+include/h2o/mruby_.h
+include/h2o/multithread.h
+include/h2o/openssl_backport.h
+include/h2o/qpack.h
+include/h2o/rand.h
+include/h2o/redis.h
+include/h2o/send_state.h
+include/h2o/serverutil.h
+include/h2o/socket.h
+include/h2o/socket/evloop.h
+include/h2o/socket/uv-binding.h
+include/h2o/socketpool.h
+include/h2o/string_.h
+include/h2o/time_.h
+include/h2o/timerwheel.h
+include/h2o/token_table.h
+include/h2o/token.h
+include/h2o/url.h
+include/h2o/version.h
+include/h2o/websocket.h
+libdata/pkgconfig/libh2o-evloop.pc
+libdata/pkgconfig/libh2o.pc
+share/man/man5/h2o.conf.5.gz
+share/man/man8/h2o.8.gz