git: b988824351d6 - main - www/envoy: the port had been updated to version 1.26.1 \o/

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Fri, 09 Jun 2023 10:18:16 UTC
The branch main has been updated by danfe:

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

commit b988824351d62cbfffe1fc6c905ec87de85f3e3f
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2023-06-09 10:16:26 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2023-06-09 10:16:26 +0000

    www/envoy: the port had been updated to version 1.26.1 \o/
    
    Currently, only a limited set of extensions is being built,
    e.g. WASM-related code was disabled due to unsolved issues.
    
    Please send patches to enable missing functionality, there
    are lots of features remain to be explored.
    
    Unfortunately, it still requires BoringSSL for the moment.
    
    PR:     262115
---
 www/envoy/Makefile                                 | 112 +++--
 www/envoy/distinfo                                 |  36 +-
 www/envoy/files/makefile-genproto                  | 212 +++++++-
 www/envoy/files/makefile-main                      | 539 ++++++++++++++++++---
 www/envoy/files/patch-envoy_common_platform.h      |  20 +
 .../files/patch-source_common_common_logger.cc     |  11 -
 ...atch-source_common_common_posix_thread__impl.cc |   2 +-
 .../patch-source_common_common_stack__array.h      |  12 -
 .../patch-source_common_json_json__internal.cc     |  12 +
 ...urce_common_network_io__socket__handle__impl.cc |  20 +
 ...ource_common_network_io__socket__handle__impl.h |  11 +
 .../files/patch-source_common_protobuf_utility.h   |  12 +-
 ...sions_access__loggers_open__telemetry_config.cc |  12 +
 13 files changed, 849 insertions(+), 162 deletions(-)

diff --git a/www/envoy/Makefile b/www/envoy/Makefile
index 5f0f7276ccbd..8b70454201e4 100644
--- a/www/envoy/Makefile
+++ b/www/envoy/Makefile
@@ -1,8 +1,9 @@
 PORTNAME=	envoy
-PORTVERSION=	1.10.0
+PORTVERSION=	1.26.1
 DISTVERSIONPREFIX=	v
-PORTREVISION=	28
 CATEGORIES=	www
+MASTER_SITES=	https://storage.googleapis.com/quiche-envoy-integration/:gurl
+DISTFILES=	dd4080fec0b443296c0ed0036e1e776df8813aa7${EXTRACT_SUFX}:gurl
 
 MAINTAINER=	danfe@FreeBSD.org
 COMMENT=	Edge and service proxy for cloud-native applications
@@ -14,83 +15,89 @@ BROKEN_i386=	makes a lot of 64-bit assumptions (patches welcome)
 BROKEN_SSL=	base openssl libressl libressl-devel
 BROKEN_SSL_REASON=	requires BoringSSL
 
-BUILD_DEPENDS=	${LOCALBASE}/include/absl/base/thread_annotations.h:devel/abseil \
-		${LOCALBASE}/include/fmt/format.h:devel/libfmt \
-		${LOCALBASE}/include/rapidjson/document.h:devel/rapidjson \
-		${LOCALBASE}/include/tclap/CmdLine.h:devel/tclap
-LIB_DEPENDS=	libcircllhist.so:devel/libcircllhist \
-		libevent.so:devel/libevent \
+BUILD_DEPENDS=	${NONEXISTENT}:devel/protobuf:patch \
+		${LOCALBASE}/include/flatbuffers/reflection.h:devel/flatbuffers \
+		${LOCALBASE}/include/nlohmann/json.hpp:devel/nlohmann-json \
+		${LOCALBASE}/include/spdlog/spdlog.h:devel/spdlog \
+		${LOCALBASE}/include/tclap/CmdLine.h:devel/tclap12
+LIB_DEPENDS=	libabsl_base.so:devel/abseil \
+		libcares.so:dns/c-ares \
+		libcircllhist.so:devel/libcircllhist \
+		libevent.so:devel/libevent-devel \
 		libfmt.so:devel/libfmt \
 		libgpr.so:devel/grpc \
+		libicuuc.so:devel/icu \
+		libnghttp2.so:www/libnghttp2 \
 		libprotobuf.so:devel/protobuf \
+		libre2.so:devel/re2 \
 		libxxhash.so:devel/xxhash \
-		libyaml-cpp.so:devel/yaml-cpp \
-		libcares.so:dns/c-ares \
-		libhttp_parser.so:www/http-parser \
-		libnghttp2.so:www/libnghttp2 \
-		libspdlog.so:devel/spdlog
+		libyaml-cpp.so:devel/yaml-cpp
 
-USES=		compiler:c++14-lang cpe gmake ssl
+USES=		compiler:c++17-lang cpe gmake python:build shebangfix ssl
 CPE_VENDOR=	${PORTNAME}proxy
+SHEBANG_FILES=	examples/*/verify.sh examples/grpc-bridge/client/client.py \
+		examples/shared/postgres/docker-healthcheck.sh
 USE_GITHUB=	yes
-GH_ACCOUNT=	${PORTNAME}proxy gogo:protobuf googleapis:gapis \
-		prometheus:pm grpc:grpc
-GH_PROJECT=	protoc-gen-validate:validate protobuf:protobuf \
-		googleapis:gapis client_model:pm grpc:grpc
-GH_TAGNAME=	v0.1.0:validate v1.1.1:protobuf b4c73fa:gapis \
-		fd36f42:pm v1.22.0:grpc
+
+GH_ACCOUNT=	${PORTNAME}proxy bufbuild:pgv cncf:xds googleapis:gapis \
+		census-instrumentation:ocp prometheus:pcm google:quiche \
+		open-telemetry:otp google:cel grpc:grpc
+GH_PROJECT=	protoc-gen-validate:pgv xds:xds googleapis:gapis \
+		opencensus-proto:ocp client_model:pcm quiche:quiche \
+		opentelemetry-proto:otp cel-cpp:cel grpc:grpc
+GH_TAGNAME=	v0.10.1:pgv 46e39c7:xds 114a745:gapis v0.4.1:ocp 147c58e:pcm \
+		37de4f7:quiche v0.19.0:otp 11f9d66:cel v1.49.2:grpc
+
+_PROTOBUF_WRKSRC=	${MAKE} -C ${PORTSDIR}/devel/protobuf -V WRKSRC
 
 PLIST_FILES=	bin/envoy
-PORTEXAMPLES=	cors/backend/front-envoy.yaml \
-		cors/backend/service-envoy.yaml \
-		cors/frontend/front-envoy.yaml \
-		cors/frontend/service-envoy.yaml \
-		front-proxy/front-envoy.yaml \
-		front-proxy/service-envoy.yaml \
-		grpc-bridge/config/s2s-grpc-envoy.yaml \
-		grpc-bridge/config/s2s-python-envoy.yaml \
-		jaeger-tracing/front-envoy-jaeger.yaml \
-		jaeger-tracing/service1-envoy-jaeger.yaml \
-		jaeger-tracing/service2-envoy-jaeger.yaml \
-		lua/envoy.yaml \
-		zipkin-tracing/front-envoy-zipkin.yaml \
-		zipkin-tracing/service1-envoy-zipkin.yaml \
-		zipkin-tracing/service2-envoy-zipkin.yaml
+PORTEXAMPLES=	*
 
 OPTIONS_DEFINE=	EXAMPLES
 
 post-extract:
-	${LN} -s ../../client_model-fd36f42/metrics.proto \
-		 ../../googleapis-b4c73fa/google \
-		 ../../grpc-1.22.0/src \
-		 ../../protobuf-1.1.1/gogoproto \
-		 ../../protoc-gen-validate-0.1.0/validate ${WRKSRC}/api
+	${LN} -s \
+		 ../../client_model-147c58e/io \
+		 ../../googleapis-114a745/google \
+		 ../../grpc-1.49.2/src \
+		 ../../opencensus-proto-0.4.1/src/opencensus \
+		 ../../opentelemetry-proto-0.19.0/opentelemetry \
+		 ../../protoc-gen-validate-0.10.1/validate \
+		 ../../xds-46e39c7/udpa \
+		 ../../xds-46e39c7/xds ${WRKSRC}/api
 
 post-patch:
-	@${REINPLACE_CMD} -e '/<endian\.h>/d' \
-		${WRKSRC}/source/common/common/byte_order.h
 	@${REINPLACE_CMD} -e 's,__APPLE__,__${OPSYS}__,' \
-		${WRKSRC}/source/common/network/address_impl.cc \
-		${WRKSRC}/source/common/network/udp_listener_impl.cc
+		${WRKSRC}/source/common/network/address_impl.cc
 	@${REINPLACE_CMD} -e 's,O_SYMLINK,O_NOFOLLOW,' \
 		${WRKSRC}/source/common/filesystem/kqueue/watcher_impl.cc
-	@${REINPLACE_CMD} -e '/#include/s,\.validate,,' \
-		${WRKSRC}/source/extensions/access_loggers/file/config.cc \
-		${WRKSRC}/source/server/overload_manager_impl.h
+	@${REINPLACE_CMD} -e '23s,^,#include "absl/status/status.h",' \
+		${WRKDIR}/cel-cpp-11f9d66/eval/public/ast_traverse.cc
+	@${REINPLACE_CMD} -e '/^#include "eval\/testutil\/test_message/d' \
+		${WRKDIR}/cel-cpp-11f9d66/eval/public/structs/cel_proto_wrap_util.cc
 
 do-configure:
 	${ECHO_CMD} '#define BUILD_VERSION_NUMBER "${PORTVERSION}"' \
-		> ${WRKSRC}/source/common/common/version_number.h
+		> ${WRKSRC}/source/common/version/version_number.h
+	cd ${WRKSRC} && PYTHONPATH=. ${PYTHON_CMD} \
+		tools/api_versioning/generate_api_version_header.py \
+		API_VERSION.txt > \
+		${WRKSRC}/source/common/version/api_version_number.h
 	${LN} -s kqueue/watcher_impl.h posix/filesystem_impl.h \
 		posix/directory_iterator_impl.h \
 		${WRKSRC}/source/common/filesystem
-	${LN} -s posix/platform_impl.h ${WRKSRC}/source/exe
+	${LN} -s posix/os_sys_calls_impl.h ${WRKSRC}/source/common/api
+	${LN} -s posix/signal_impl.h ${WRKSRC}/source/common/event
 	${LN} -s posix/thread_impl.h ${WRKSRC}/source/common/common
+	${LN} -s standard/logger_impl.h ${WRKSRC}/source/common/common
+	${LN} -s ../../quiche-37de4f7/quiche ${WRKSRC}/source
+	${LN} -s source/common/quic/platform ${WRKSRC}/quiche_platform_impl
+	${LN} -s ${_PROTOBUF_WRKSRC:sh}/src/google ${WRKDIR}
 
 do-build:
-	${MAKE_CMD} -C ${WRKSRC}/api -f ${FILESDIR}/makefile-genproto
+	${MAKE_CMD} -C ${WRKSRC} -f ${FILESDIR}/makefile-genproto
 	${MAKE_CMD} ${_MAKE_JOBS} -C ${WRKSRC}/source \
-		-f ${FILESDIR}/makefile-main
+		-f ${FILESDIR}/makefile-main all
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/source/${PORTNAME} \
@@ -98,7 +105,6 @@ do-install:
 
 do-install-EXAMPLES-on:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
-	${TAR} -cf - -C ${WRKSRC}/examples ${PORTEXAMPLES} | \
-		${TAR} -xf - -C ${STAGEDIR}${EXAMPLESDIR}
+	${CP} -a ${WRKSRC}/examples/ ${STAGEDIR}${EXAMPLESDIR}
 
 .include <bsd.port.mk>
diff --git a/www/envoy/distinfo b/www/envoy/distinfo
index 79a047de018d..c8544ddfa3ac 100644
--- a/www/envoy/distinfo
+++ b/www/envoy/distinfo
@@ -1,13 +1,23 @@
-TIMESTAMP = 1554487664
-SHA256 (envoyproxy-envoy-v1.10.0_GH0.tar.gz) = 0fd7a0d11662730abeb12b19ef52af771f7426132e13e7eca7ac1fe81287add1
-SIZE (envoyproxy-envoy-v1.10.0_GH0.tar.gz) = 3391626
-SHA256 (gogo-protobuf-v1.1.1_GH0.tar.gz) = 9f8c2ad49849ab063cd9fef67e77d49606640044227ecf7f3617ea2c92ef147c
-SIZE (gogo-protobuf-v1.1.1_GH0.tar.gz) = 1868227
-SHA256 (googleapis-googleapis-b4c73fa_GH0.tar.gz) = a8989197096e2643c472fe87d2ad38b58f1737330f16fd2e5d5f0ce6623a2697
-SIZE (googleapis-googleapis-b4c73fa_GH0.tar.gz) = 1773201
-SHA256 (prometheus-client_model-fd36f42_GH0.tar.gz) = 11f679aee5a14f33afc1ec14eefd7f7665f4d5a11718cb63d246bd36531813ac
-SIZE (prometheus-client_model-fd36f42_GH0.tar.gz) = 57479
-SHA256 (grpc-grpc-v1.22.0_GH0.tar.gz) = 11ac793c562143d52fd440f6549588712badc79211cdc8c509b183cb69bddad8
-SIZE (grpc-grpc-v1.22.0_GH0.tar.gz) = 15082718
-SHA256 (envoyproxy-protoc-gen-validate-v0.1.0_GH0.tar.gz) = 49a275b7aff7e9c7e84db38e405b49b1ac91bbd2fcbd0c253d39ec412ed3be61
-SIZE (envoyproxy-protoc-gen-validate-v0.1.0_GH0.tar.gz) = 9625220
+TIMESTAMP = 1682596808
+SHA256 (dd4080fec0b443296c0ed0036e1e776df8813aa7.tar.gz) = 59f14d4fb373083b9dc8d389f16bbb817b5f936d1d436aa67e16eb6936028a51
+SIZE (dd4080fec0b443296c0ed0036e1e776df8813aa7.tar.gz) = 417781
+SHA256 (envoyproxy-envoy-v1.26.1_GH0.tar.gz) = e8efbb73ef281206261396d7bcefb00c4b9f915a6758b5cff26a714adf966d18
+SIZE (envoyproxy-envoy-v1.26.1_GH0.tar.gz) = 22719702
+SHA256 (bufbuild-protoc-gen-validate-v0.10.1_GH0.tar.gz) = 884f7166893d4869d9e86c171777c11e51b138a6ec170e1d8eba8f091a9ef85a
+SIZE (bufbuild-protoc-gen-validate-v0.10.1_GH0.tar.gz) = 169369
+SHA256 (cncf-xds-46e39c7_GH0.tar.gz) = f49388ea0b3798e25b9cdca2982246a5beca7a32be56cf9ef7c7f3bd02ff36ca
+SIZE (cncf-xds-46e39c7_GH0.tar.gz) = 103751
+SHA256 (googleapis-googleapis-114a745_GH0.tar.gz) = 3d91c7d80b5c7d6be0ae412520f989b386be336588d005b45e6e852929b4f489
+SIZE (googleapis-googleapis-114a745_GH0.tar.gz) = 6781736
+SHA256 (census-instrumentation-opencensus-proto-v0.4.1_GH0.tar.gz) = e3d89f7f9ed84c9b6eee818c2e9306950519402bf803698b15c310b77ca2f0f3
+SIZE (census-instrumentation-opencensus-proto-v0.4.1_GH0.tar.gz) = 164379
+SHA256 (prometheus-client_model-147c58e_GH0.tar.gz) = 2807c0d58e5d21ead05dc1c89ce866c809935cfa4a4dee6fd50295de6bf358ed
+SIZE (prometheus-client_model-147c58e_GH0.tar.gz) = 12068
+SHA256 (google-quiche-37de4f7_GH0.tar.gz) = 2cb313b1b95846e540c8604f32dec1c2613942e0a19cf10c13d906a99e7eb8cb
+SIZE (google-quiche-37de4f7_GH0.tar.gz) = 2795298
+SHA256 (open-telemetry-opentelemetry-proto-v0.19.0_GH0.tar.gz) = 464bc2b348e674a1a03142e403cbccb01be8655b6de0f8bfe733ea31fcd421be
+SIZE (open-telemetry-opentelemetry-proto-v0.19.0_GH0.tar.gz) = 26558
+SHA256 (google-cel-cpp-11f9d66_GH0.tar.gz) = 1968c7a34d3e1fd64f7309c81191f9d74a509e16cc8f91b3e986ca7309aeac40
+SIZE (google-cel-cpp-11f9d66_GH0.tar.gz) = 441644
+SHA256 (grpc-grpc-v1.49.2_GH0.tar.gz) = cdeb805385fba23242bf87073e68d590c446751e09089f26e5e0b3f655b0f089
+SIZE (grpc-grpc-v1.49.2_GH0.tar.gz) = 8357385
diff --git a/www/envoy/files/makefile-genproto b/www/envoy/files/makefile-genproto
index c969b0eb7899..6fb7f6894d43 100644
--- a/www/envoy/files/makefile-genproto
+++ b/www/envoy/files/makefile-genproto
@@ -1,7 +1,7 @@
-LOCALBASE?=	/usr/local
-PROTOC_FLAGS=	-I. -I$(LOCALBASE)/include
+PROTOC_FLAGS=	$(addprefix -I,$(VPATH))
+VPATH=	api ../quiche-37de4f7
 
-PB_HEADERS=	\
+API_PB_HEADERS=	\
 	envoy/admin/v2alpha/certs.pb.h \
 	envoy/admin/v2alpha/clusters.pb.h \
 	envoy/admin/v2alpha/config_dump.pb.h \
@@ -9,29 +9,84 @@ PB_HEADERS=	\
 	envoy/admin/v2alpha/metrics.pb.h \
 	envoy/admin/v2alpha/mutex_stats.pb.h \
 	envoy/admin/v2alpha/server_info.pb.h \
+	envoy/admin/v3/certs.pb.h \
+	envoy/admin/v3/clusters.pb.h \
+	envoy/admin/v3/config_dump.pb.h \
+	envoy/admin/v3/config_dump_shared.pb.h \
+	envoy/admin/v3/init_dump.pb.h \
+	envoy/admin/v3/listeners.pb.h \
+	envoy/admin/v3/memory.pb.h \
+	envoy/admin/v3/metrics.pb.h \
+	envoy/admin/v3/mutex_stats.pb.h \
+	envoy/admin/v3/server_info.pb.h \
+	envoy/annotations/deprecation.pb.h \
+	envoy/annotations/resource.pb.h \
 	envoy/api/v2/auth/cert.pb.h \
+	envoy/api/v2/auth/common.pb.h \
+	envoy/api/v2/auth/secret.pb.h \
+	envoy/api/v2/auth/tls.pb.h \
 	envoy/api/v2/cds.pb.h \
+	envoy/api/v2/cluster.pb.h \
 	envoy/api/v2/cluster/circuit_breaker.pb.h \
+	envoy/api/v2/cluster/filter.pb.h \
 	envoy/api/v2/cluster/outlier_detection.pb.h \
 	envoy/api/v2/core/address.pb.h \
+	envoy/api/v2/core/backoff.pb.h \
 	envoy/api/v2/core/base.pb.h \
 	envoy/api/v2/core/config_source.pb.h \
+	envoy/api/v2/core/event_service_config.pb.h \
 	envoy/api/v2/core/grpc_service.pb.h \
 	envoy/api/v2/core/health_check.pb.h \
 	envoy/api/v2/core/http_uri.pb.h \
 	envoy/api/v2/core/protocol.pb.h \
+	envoy/api/v2/core/socket_option.pb.h \
 	envoy/api/v2/discovery.pb.h \
 	envoy/api/v2/eds.pb.h \
+	envoy/api/v2/endpoint.pb.h \
 	envoy/api/v2/endpoint/endpoint.pb.h \
+	envoy/api/v2/endpoint/endpoint_components.pb.h \
 	envoy/api/v2/endpoint/load_report.pb.h \
 	envoy/api/v2/lds.pb.h \
+	envoy/api/v2/listener.pb.h \
 	envoy/api/v2/listener/listener.pb.h \
+	envoy/api/v2/listener/listener_components.pb.h \
+	envoy/api/v2/listener/udp_listener_config.pb.h \
 	envoy/api/v2/ratelimit/ratelimit.pb.h \
 	envoy/api/v2/rds.pb.h \
+	envoy/api/v2/route.pb.h \
 	envoy/api/v2/route/route.pb.h \
+	envoy/api/v2/route/route_components.pb.h \
+	envoy/api/v2/scoped_route.pb.h \
 	envoy/config/accesslog/v2/als.pb.h \
 	envoy/config/accesslog/v2/file.pb.h \
+	envoy/config/accesslog/v3/accesslog.pb.h \
 	envoy/config/bootstrap/v2/bootstrap.pb.h \
+	envoy/config/bootstrap/v3/bootstrap.pb.h \
+	envoy/config/cluster/v3/circuit_breaker.pb.h \
+	envoy/config/cluster/v3/cluster.pb.h \
+	envoy/config/cluster/v3/filter.pb.h \
+	envoy/config/cluster/v3/outlier_detection.pb.h \
+	envoy/config/common/key_value/v3/config.pb.h \
+	envoy/config/common/matcher/v3/matcher.pb.h \
+	envoy/config/common/mutation_rules/v3/mutation_rules.pb.h \
+	envoy/config/core/v3/address.pb.h \
+	envoy/config/core/v3/backoff.pb.h \
+	envoy/config/core/v3/base.pb.h \
+	envoy/config/core/v3/config_source.pb.h \
+	envoy/config/core/v3/event_service_config.pb.h \
+	envoy/config/core/v3/extension.pb.h \
+	envoy/config/core/v3/grpc_service.pb.h \
+	envoy/config/core/v3/health_check.pb.h \
+	envoy/config/core/v3/http_uri.pb.h \
+	envoy/config/core/v3/protocol.pb.h \
+	envoy/config/core/v3/proxy_protocol.pb.h \
+	envoy/config/core/v3/resolver.pb.h \
+	envoy/config/core/v3/socket_option.pb.h \
+	envoy/config/core/v3/substitution_format_string.pb.h \
+	envoy/config/core/v3/udp_socket_config.pb.h \
+	envoy/config/endpoint/v3/endpoint.pb.h \
+	envoy/config/endpoint/v3/endpoint_components.pb.h \
+	envoy/config/endpoint/v3/load_report.pb.h \
 	envoy/config/filter/accesslog/v2/accesslog.pb.h \
 	envoy/config/filter/fault/v2/fault.pb.h \
 	envoy/config/filter/http/buffer/v2/buffer.pb.h \
@@ -48,41 +103,178 @@ PB_HEADERS=	\
 	envoy/config/filter/network/rate_limit/v2/rate_limit.pb.h \
 	envoy/config/filter/network/redis_proxy/v2/redis_proxy.pb.h \
 	envoy/config/filter/network/tcp_proxy/v2/tcp_proxy.pb.h \
+	envoy/config/listener/v2/api_listener.pb.h \
+	envoy/config/listener/v3/api_listener.pb.h \
+	envoy/config/listener/v3/listener.pb.h \
+	envoy/config/listener/v3/listener_components.pb.h \
+	envoy/config/listener/v3/quic_config.pb.h \
+	envoy/config/listener/v3/udp_listener_config.pb.h \
 	envoy/config/metrics/v2/metrics_service.pb.h \
 	envoy/config/metrics/v2/stats.pb.h \
+	envoy/config/metrics/v3/metrics_service.pb.h \
+	envoy/config/metrics/v3/stats.pb.h \
 	envoy/config/overload/v2alpha/overload.pb.h \
+	envoy/config/overload/v3/overload.pb.h \
 	envoy/config/ratelimit/v2/rls.pb.h \
-	envoy/config/rbac/v2alpha/rbac.pb.h \
+	envoy/config/rbac/v3/rbac.pb.h \
+	envoy/config/route/v3/route.pb.h \
+	envoy/config/route/v3/route_components.pb.h \
+	envoy/config/route/v3/scoped_route.pb.h \
+	envoy/config/trace/v2/datadog.pb.h \
+	envoy/config/trace/v2/dynamic_ot.pb.h \
+	envoy/config/trace/v2/http_tracer.pb.h \
+	envoy/config/trace/v2/lightstep.pb.h \
+	envoy/config/trace/v2/opencensus.pb.h \
+	envoy/config/trace/v2/service.pb.h \
 	envoy/config/trace/v2/trace.pb.h \
+	envoy/config/trace/v2/zipkin.pb.h \
+	envoy/config/trace/v3/http_tracer.pb.h \
 	envoy/data/accesslog/v2/accesslog.pb.h \
+	envoy/data/accesslog/v3/accesslog.pb.h \
 	envoy/data/cluster/v2alpha/outlier_detection_event.pb.h \
+	envoy/data/cluster/v3/outlier_detection_event.pb.h \
 	envoy/data/core/v2alpha/health_check_event.pb.h \
+	envoy/data/core/v3/health_check_event.pb.h \
+	envoy/data/dns/v3/dns_table.pb.h \
+	envoy/extensions/access_loggers/file/v3/file.pb.h \
+	envoy/extensions/access_loggers/grpc/v3/als.pb.h \
+	envoy/extensions/access_loggers/open_telemetry/v3/logs_service.pb.h \
+	envoy/extensions/access_loggers/stream/v3/stream.pb.h \
+	envoy/extensions/access_loggers/wasm/v3/wasm.pb.h \
+	envoy/extensions/common/dynamic_forward_proxy/v3/dns_cache.pb.h \
+	envoy/extensions/common/ratelimit/v3/ratelimit.pb.h \
+	envoy/extensions/early_data/v3/default_early_data_policy.pb.h \
+	envoy/extensions/filters/common/dependency/v3/dependency.pb.h \
+	envoy/extensions/filters/http/router/v3/router.pb.h \
+	envoy/extensions/filters/http/upstream_codec/v3/upstream_codec.pb.h \
+	envoy/extensions/filters/listener/proxy_protocol/v3/proxy_protocol.pb.h \
+	envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.h \
+	envoy/extensions/filters/udp/dns_filter/v3/dns_filter.pb.h \
+	envoy/extensions/http/header_validators/envoy_default/v3/header_validator.pb.h \
+	envoy/extensions/http/original_ip_detection/xff/v3/xff.pb.h \
+	envoy/extensions/load_balancing_policies/common/v3/common.pb.h \
+	envoy/extensions/load_balancing_policies/least_request/v3/least_request.pb.h \
+	envoy/extensions/load_balancing_policies/maglev/v3/maglev.pb.h \
+	envoy/extensions/load_balancing_policies/random/v3/random.pb.h \
+	envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.pb.h \
+	envoy/extensions/load_balancing_policies/round_robin/v3/round_robin.pb.h \
+	envoy/extensions/matching/common_inputs/network/v3/network_inputs.pb.h \
+	envoy/extensions/network/dns_resolver/apple/v3/apple_dns_resolver.pb.h \
+	envoy/extensions/network/dns_resolver/cares/v3/cares_dns_resolver.pb.h \
+	envoy/extensions/network/dns_resolver/getaddrinfo/v3/getaddrinfo_dns_resolver.pb.h \
+	envoy/extensions/network/socket_interface/v3/default_socket_interface.pb.h \
+	envoy/extensions/path/match/uri_template/v3/uri_template_match.pb.h \
+	envoy/extensions/path/rewrite/uri_template/v3/uri_template_rewrite.pb.h \
+	envoy/extensions/quic/connection_id_generator/v3/envoy_deterministic_connection_id_generator.pb.h \
+	envoy/extensions/quic/crypto_stream/v3/crypto_stream.pb.h \
+	envoy/extensions/quic/proof_source/v3/proof_source.pb.h \
+	envoy/extensions/regex_engines/v3/google_re2.pb.h \
+	envoy/extensions/request_id/uuid/v3/uuid.pb.h \
+	envoy/extensions/transport_sockets/quic/v3/quic_transport.pb.h \
+	envoy/extensions/transport_sockets/raw_buffer/v3/raw_buffer.pb.h \
+	envoy/extensions/transport_sockets/tls/v3/cert.pb.h \
+	envoy/extensions/transport_sockets/tls/v3/common.pb.h \
+	envoy/extensions/transport_sockets/tls/v3/secret.pb.h \
+	envoy/extensions/transport_sockets/tls/v3/tls.pb.h \
+	envoy/extensions/udp_packet_writer/v3/udp_default_writer_factory.pb.h \
+	envoy/extensions/upstreams/http/v3/http_protocol_options.pb.h \
+	envoy/extensions/upstreams/tcp/v3/tcp_protocol_options.pb.h \
 	envoy/service/accesslog/v2/als.pb.h \
+	envoy/service/accesslog/v3/als.pb.h \
+	envoy/service/cluster/v3/cds.pb.h \
 	envoy/service/discovery/v2/ads.pb.h \
 	envoy/service/discovery/v2/hds.pb.h \
 	envoy/service/discovery/v2/sds.pb.h \
+	envoy/service/discovery/v3/ads.pb.h \
+	envoy/service/discovery/v3/discovery.pb.h \
+	envoy/service/endpoint/v3/eds.pb.h \
+	envoy/service/endpoint/v3/leds.pb.h \
+	envoy/service/extension/v3/config_discovery.pb.h \
+	envoy/service/health/v3/hds.pb.h \
+	envoy/service/listener/v3/lds.pb.h \
 	envoy/service/load_stats/v2/lrs.pb.h \
+	envoy/service/load_stats/v3/lrs.pb.h \
 	envoy/service/metrics/v2/metrics_service.pb.h \
+	envoy/service/metrics/v3/metrics_service.pb.h \
 	envoy/service/ratelimit/v2/rls.pb.h \
+	envoy/service/ratelimit/v3/rls.pb.h \
+	envoy/service/route/v3/rds.pb.h \
+	envoy/service/route/v3/srds.pb.h \
+	envoy/service/runtime/v3/rtds.pb.h \
+	envoy/service/secret/v3/sds.pb.h \
+	envoy/type/hash_policy.pb.h \
+	envoy/type/http.pb.h \
+	envoy/type/http/v3/path_transformation.pb.h \
 	envoy/type/matcher/metadata.pb.h \
 	envoy/type/matcher/number.pb.h \
+	envoy/type/matcher/regex.pb.h \
 	envoy/type/matcher/string.pb.h \
+	envoy/type/matcher/v3/filter_state.pb.h \
+	envoy/type/matcher/v3/http_inputs.pb.h \
+	envoy/type/matcher/v3/metadata.pb.h \
+	envoy/type/matcher/v3/number.pb.h \
+	envoy/type/matcher/v3/path.pb.h \
+	envoy/type/matcher/v3/regex.pb.h \
+	envoy/type/matcher/v3/string.pb.h \
+	envoy/type/matcher/v3/value.pb.h \
 	envoy/type/matcher/value.pb.h \
+	envoy/type/metadata/v2/metadata.pb.h \
+	envoy/type/metadata/v3/metadata.pb.h \
 	envoy/type/percent.pb.h \
 	envoy/type/range.pb.h \
-	gogoproto/gogo.pb.h \
+	envoy/type/semantic_version.pb.h \
+	envoy/type/tracing/v2/custom_tag.pb.h \
+	envoy/type/tracing/v3/custom_tag.pb.h \
+	envoy/type/v3/hash_policy.pb.h \
+	envoy/type/v3/http.pb.h \
+	envoy/type/v3/percent.pb.h \
+	envoy/type/v3/range.pb.h \
+	envoy/type/v3/ratelimit_unit.pb.h \
+	envoy/type/v3/semantic_version.pb.h \
+	envoy/type/v3/token_bucket.pb.h \
+	envoy/watchdog/v3/abort_action.pb.h \
 	google/api/annotations.pb.h \
+	google/api/expr/v1alpha1/checked.pb.h \
+	google/api/expr/v1alpha1/syntax.pb.h \
 	google/api/http.pb.h \
 	google/rpc/status.pb.h \
-	metrics.pb.h \
+	io/prometheus/client/metrics.pb.h \
+	opencensus/proto/trace/v1/trace_config.pb.h \
+	opentelemetry/proto/collector/logs/v1/logs_service.pb.h \
+	opentelemetry/proto/common/v1/common.pb.h \
+	opentelemetry/proto/logs/v1/logs.pb.h \
+	opentelemetry/proto/resource/v1/resource.pb.h \
 	src/proto/grpc/health/v1/health.pb.h \
-	validate/validate.pb.h
+	udpa/annotations/migrate.pb.h \
+	udpa/annotations/security.pb.h \
+	udpa/annotations/sensitive.pb.h \
+	udpa/annotations/status.pb.h \
+	udpa/annotations/versioning.pb.h \
+	udpa/type/v1/typed_struct.pb.h \
+	validate/validate.pb.h \
+	xds/annotations/v3/status.pb.h \
+	xds/core/v3/authority.pb.h \
+	xds/core/v3/cidr.pb.h \
+	xds/core/v3/collection_entry.pb.h \
+	xds/core/v3/context_params.pb.h \
+	xds/core/v3/extension.pb.h \
+	xds/core/v3/resource_locator.pb.h \
+	xds/core/v3/resource_name.pb.h \
+	xds/type/matcher/v3/matcher.pb.h \
+	xds/type/matcher/v3/regex.pb.h \
+	xds/type/matcher/v3/string.pb.h \
+	xds/type/v3/typed_struct.pb.h
+
+MISC_PB_HEADERS=\
+	quiche/quic/core/proto/cached_network_parameters.pb.h \
+	quiche/quic/core/proto/crypto_server_config.pb.h \
+	quiche/quic/core/proto/source_address_token.pb.h
 
 %.pb.h: %.proto
-	protoc -I. -I$(LOCALBASE)/include --cpp_out=. $<
+	protoc $(PROTOC_FLAGS) --cpp_out=$(subst /$*,,$(basename $<)) $<
 # XXX: we're not ready for semantic validation just yet :(
-	echo >> $(basename $@).validate.h
+	echo >> $(basename $<).pb.validate.h
 
-all: $(PB_HEADERS)
+all: $(API_PB_HEADERS) $(MISC_PB_HEADERS)
 
 .phony: all
diff --git a/www/envoy/files/makefile-main b/www/envoy/files/makefile-main
index 702d339dcdc8..3fe9ad310fc4 100644
--- a/www/envoy/files/makefile-main
+++ b/www/envoy/files/makefile-main
@@ -1,10 +1,18 @@
 LOCALBASE?=	/usr/local
-CXXFLAGS+=	-std=c++14 -Wall -Wextra -Wno-unused-parameter -DSPDLOG_FMT_EXTERNAL=1
-CPPFLAGS+=	-I. -I../include -I../api -I$(LOCALBASE)/include \
+CXXFLAGS+=	-std=c++17 -Wall -Wextra -Wno-unused-parameter \
+		-DBUILD_SCM_REVISION=\"c7e8e73\" \
+		-DBUILD_SCM_STATUS=\"Modified\" \
 		-DNDEBUG -DENVOY_SSL_VERSION=\"BoringSSL\" \
-		-DBUILD_SCM_REVISION=\"e95ef6b\" \
-		-DBUILD_SCM_STATUS=\"Modified\"
-LDFLAGS+=	-L$(LOCALBASE)/lib -lfmt
+		-DSPDLOG_FMT_EXTERNAL -DENVOY_ENABLE_QUIC \
+		-DENVOY_ADMIN_HTML \
+		-I.. -I../api -I../bazel/external/http_parser \
+		-I../../cel-cpp-11f9d66 \
+		-I../../grpc-1.49.2/src/core/ext/upb-generated \
+		-I../../grpc-1.49.2/third_party/upb \
+		-I../../quiche-37de4f7 \
+		-I../../quiche-37de4f7/quiche/common/platform/default \
+		-I../.. -I$(LOCALBASE)/include
+LDFLAGS+=	-L$(LOCALBASE)/lib
 CCACHE?=	$(shell command -v ccache)
 
 api_OBJS=	envoy/admin/v2alpha/certs.pb.o \
@@ -14,28 +22,83 @@ api_OBJS=	envoy/admin/v2alpha/certs.pb.o \
 		envoy/admin/v2alpha/metrics.pb.o \
 		envoy/admin/v2alpha/mutex_stats.pb.o \
 		envoy/admin/v2alpha/server_info.pb.o \
+		envoy/admin/v3/certs.pb.o \
+		envoy/admin/v3/clusters.pb.o \
+		envoy/admin/v3/config_dump.pb.o \
+		envoy/admin/v3/config_dump_shared.pb.o \
+		envoy/admin/v3/init_dump.pb.o \
+		envoy/admin/v3/listeners.pb.o \
+		envoy/admin/v3/memory.pb.o \
+		envoy/admin/v3/metrics.pb.o \
+		envoy/admin/v3/mutex_stats.pb.o \
+		envoy/admin/v3/server_info.pb.o \
+		envoy/annotations/deprecation.pb.o \
+		envoy/annotations/resource.pb.o \
 		envoy/api/v2/auth/cert.pb.o \
+		envoy/api/v2/auth/common.pb.o \
+		envoy/api/v2/auth/secret.pb.o \
+		envoy/api/v2/auth/tls.pb.o \
 		envoy/api/v2/cds.pb.o \
+		envoy/api/v2/cluster.pb.o \
 		envoy/api/v2/cluster/circuit_breaker.pb.o \
+		envoy/api/v2/cluster/filter.pb.o \
 		envoy/api/v2/cluster/outlier_detection.pb.o \
 		envoy/api/v2/core/address.pb.o \
+		envoy/api/v2/core/backoff.pb.o \
 		envoy/api/v2/core/base.pb.o \
 		envoy/api/v2/core/config_source.pb.o \
+		envoy/api/v2/core/event_service_config.pb.o \
 		envoy/api/v2/core/grpc_service.pb.o \
 		envoy/api/v2/core/health_check.pb.o \
+		envoy/api/v2/core/http_uri.pb.o \
 		envoy/api/v2/core/protocol.pb.o \
+		envoy/api/v2/core/socket_option.pb.o \
 		envoy/api/v2/discovery.pb.o \
 		envoy/api/v2/eds.pb.o \
+		envoy/api/v2/endpoint.pb.o \
 		envoy/api/v2/endpoint/endpoint.pb.o \
+		envoy/api/v2/endpoint/endpoint_components.pb.o \
 		envoy/api/v2/endpoint/load_report.pb.o \
 		envoy/api/v2/lds.pb.o \
+		envoy/api/v2/listener.pb.o \
 		envoy/api/v2/listener/listener.pb.o \
+		envoy/api/v2/listener/listener_components.pb.o \
+		envoy/api/v2/listener/udp_listener_config.pb.o \
 		envoy/api/v2/ratelimit/ratelimit.pb.o \
 		envoy/api/v2/rds.pb.o \
+		envoy/api/v2/route.pb.o \
 		envoy/api/v2/route/route.pb.o \
+		envoy/api/v2/route/route_components.pb.o \
+		envoy/api/v2/scoped_route.pb.o \
 		envoy/config/accesslog/v2/als.pb.o \
 		envoy/config/accesslog/v2/file.pb.o \
+		envoy/config/accesslog/v3/accesslog.pb.o \
 		envoy/config/bootstrap/v2/bootstrap.pb.o \
+		envoy/config/bootstrap/v3/bootstrap.pb.o \
+		envoy/config/cluster/v3/circuit_breaker.pb.o \
+		envoy/config/cluster/v3/cluster.pb.o \
+		envoy/config/cluster/v3/filter.pb.o \
+		envoy/config/cluster/v3/outlier_detection.pb.o \
+		envoy/config/common/key_value/v3/config.pb.o \
+		envoy/config/common/matcher/v3/matcher.pb.o \
+		envoy/config/core/v3/address.pb.o \
+		envoy/config/core/v3/backoff.pb.o \
+		envoy/config/core/v3/base.pb.o \
+		envoy/config/core/v3/config_source.pb.o \
+		envoy/config/core/v3/event_service_config.pb.o \
+		envoy/config/core/v3/extension.pb.o \
+		envoy/config/core/v3/grpc_service.pb.o \
+		envoy/config/core/v3/health_check.pb.o \
+		envoy/config/core/v3/http_uri.pb.o \
+		envoy/config/core/v3/protocol.pb.o \
+		envoy/config/core/v3/proxy_protocol.pb.o \
+		envoy/config/core/v3/resolver.pb.o \
+		envoy/config/core/v3/socket_option.pb.o \
+		envoy/config/core/v3/substitution_format_string.pb.o \
+		envoy/config/core/v3/udp_socket_config.pb.o \
+		envoy/config/endpoint/v3/endpoint.pb.o \
+		envoy/config/endpoint/v3/endpoint_components.pb.o \
+		envoy/config/endpoint/v3/load_report.pb.o \
 		envoy/config/filter/accesslog/v2/accesslog.pb.o \
 		envoy/config/filter/fault/v2/fault.pb.o \
 		envoy/config/filter/http/fault/v2/fault.pb.o \
@@ -43,126 +106,490 @@ api_OBJS=	envoy/admin/v2alpha/certs.pb.o \
 		envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.pb.o \
 		envoy/config/filter/network/redis_proxy/v2/redis_proxy.pb.o \
 		envoy/config/filter/network/tcp_proxy/v2/tcp_proxy.pb.o \
+		envoy/config/listener/v2/api_listener.pb.o \
+		envoy/config/listener/v3/api_listener.pb.o \
+		envoy/config/listener/v3/listener.pb.o \
+		envoy/config/listener/v3/listener_components.pb.o \
+		envoy/config/listener/v3/quic_config.pb.o \
+		envoy/config/listener/v3/udp_listener_config.pb.o \
 		envoy/config/metrics/v2/metrics_service.pb.o \
 		envoy/config/metrics/v2/stats.pb.o \
+		envoy/config/metrics/v3/metrics_service.pb.o \
+		envoy/config/metrics/v3/stats.pb.o \
 		envoy/config/overload/v2alpha/overload.pb.o \
-		envoy/config/rbac/v2alpha/rbac.pb.o \
+		envoy/config/overload/v3/overload.pb.o \
+		envoy/config/rbac/v3/rbac.pb.o \
+		envoy/config/route/v3/route.pb.o \
+		envoy/config/route/v3/route_components.pb.o \
+		envoy/config/route/v3/scoped_route.pb.o \
+		envoy/config/trace/v2/datadog.pb.o \
+		envoy/config/trace/v2/dynamic_ot.pb.o \
+		envoy/config/trace/v2/http_tracer.pb.o \
+		envoy/config/trace/v2/lightstep.pb.o \
+		envoy/config/trace/v2/opencensus.pb.o \
+		envoy/config/trace/v2/service.pb.o \
 		envoy/config/trace/v2/trace.pb.o \
+		envoy/config/trace/v2/zipkin.pb.o \
+		envoy/config/trace/v3/http_tracer.pb.o \
 		envoy/data/accesslog/v2/accesslog.pb.o \
+		envoy/data/accesslog/v3/accesslog.pb.o \
 		envoy/data/cluster/v2alpha/outlier_detection_event.pb.o \
+		envoy/data/cluster/v3/outlier_detection_event.pb.o \
 		envoy/data/core/v2alpha/health_check_event.pb.o \
+		envoy/data/core/v3/health_check_event.pb.o \
+		envoy/extensions/access_loggers/file/v3/file.pb.o \
+		envoy/extensions/access_loggers/grpc/v3/als.pb.o \
+		envoy/extensions/access_loggers/open_telemetry/v3/logs_service.pb.o \
+		envoy/extensions/access_loggers/stream/v3/stream.pb.o \
+		envoy/extensions/common/ratelimit/v3/ratelimit.pb.o \
+		envoy/extensions/early_data/v3/default_early_data_policy.pb.o \
+		envoy/extensions/filters/common/dependency/v3/dependency.pb.o \
+		envoy/extensions/filters/http/upstream_codec/v3/upstream_codec.pb.o \
+		envoy/extensions/filters/listener/proxy_protocol/v3/proxy_protocol.pb.o \
+		envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.pb.o \
+		envoy/extensions/http/original_ip_detection/xff/v3/xff.pb.o \
+		envoy/extensions/load_balancing_policies/common/v3/common.pb.o \
+		envoy/extensions/load_balancing_policies/maglev/v3/maglev.pb.o \
+		envoy/extensions/load_balancing_policies/ring_hash/v3/ring_hash.pb.o \
+		envoy/extensions/network/dns_resolver/apple/v3/apple_dns_resolver.pb.o \
+		envoy/extensions/network/dns_resolver/cares/v3/cares_dns_resolver.pb.o \
+		envoy/extensions/network/dns_resolver/getaddrinfo/v3/getaddrinfo_dns_resolver.pb.o \
+		envoy/extensions/network/socket_interface/v3/default_socket_interface.pb.o \
+		envoy/extensions/quic/connection_id_generator/v3/envoy_deterministic_connection_id_generator.pb.o \
+		envoy/extensions/quic/crypto_stream/v3/crypto_stream.pb.o \
+		envoy/extensions/quic/proof_source/v3/proof_source.pb.o \
+		envoy/extensions/regex_engines/v3/google_re2.pb.o \
+		envoy/extensions/request_id/uuid/v3/uuid.pb.o \
+		envoy/extensions/transport_sockets/quic/v3/quic_transport.pb.o \
+		envoy/extensions/transport_sockets/raw_buffer/v3/raw_buffer.pb.o \
+		envoy/extensions/transport_sockets/tls/v3/common.pb.o \
+		envoy/extensions/transport_sockets/tls/v3/secret.pb.o \
+		envoy/extensions/transport_sockets/tls/v3/tls.pb.o \
+		envoy/extensions/upstreams/http/v3/http_protocol_options.pb.o \
 		envoy/service/accesslog/v2/als.pb.o \
+		envoy/service/accesslog/v3/als.pb.o \
+		envoy/service/cluster/v3/cds.pb.o \
 		envoy/service/discovery/v2/ads.pb.o \
 		envoy/service/discovery/v2/hds.pb.o \
 		envoy/service/discovery/v2/sds.pb.o \
+		envoy/service/discovery/v3/ads.pb.o \
+		envoy/service/discovery/v3/discovery.pb.o \
+		envoy/service/endpoint/v3/eds.pb.o \
+		envoy/service/endpoint/v3/leds.pb.o \
+		envoy/service/extension/v3/config_discovery.pb.o \
+		envoy/service/health/v3/hds.pb.o \
+		envoy/service/listener/v3/lds.pb.o \
 		envoy/service/load_stats/v2/lrs.pb.o \
+		envoy/service/load_stats/v3/lrs.pb.o \
 		envoy/service/metrics/v2/metrics_service.pb.o \
+		envoy/service/metrics/v3/metrics_service.pb.o \
 		envoy/service/ratelimit/v2/rls.pb.o \
+		envoy/service/ratelimit/v3/rls.pb.o \
+		envoy/service/route/v3/rds.pb.o \
+		envoy/service/route/v3/srds.pb.o \
+		envoy/service/runtime/v3/rtds.pb.o \
+		envoy/service/secret/v3/sds.pb.o \
+		envoy/type/hash_policy.pb.o \
+		envoy/type/http.pb.o \
+		envoy/type/http/v3/path_transformation.pb.o \
 		envoy/type/matcher/metadata.pb.o \
 		envoy/type/matcher/number.pb.o \
+		envoy/type/matcher/regex.pb.o \
 		envoy/type/matcher/string.pb.o \
+		envoy/type/matcher/v3/filter_state.pb.o \
+		envoy/type/matcher/v3/http_inputs.pb.o \
+		envoy/type/matcher/v3/metadata.pb.o \
+		envoy/type/matcher/v3/number.pb.o \
+		envoy/type/matcher/v3/path.pb.o \
+		envoy/type/matcher/v3/regex.pb.o \
+		envoy/type/matcher/v3/string.pb.o \
+		envoy/type/matcher/v3/value.pb.o \
 		envoy/type/matcher/value.pb.o \
+		envoy/type/metadata/v2/metadata.pb.o \
+		envoy/type/metadata/v3/metadata.pb.o \
 		envoy/type/percent.pb.o \
 		envoy/type/range.pb.o \
-		gogoproto/gogo.pb.o \
+		envoy/type/semantic_version.pb.o \
+		envoy/type/tracing/v2/custom_tag.pb.o \
+		envoy/type/tracing/v3/custom_tag.pb.o \
+		envoy/type/v3/hash_policy.pb.o \
+		envoy/type/v3/http.pb.o \
+		envoy/type/v3/percent.pb.o \
+		envoy/type/v3/range.pb.o \
+		envoy/type/v3/ratelimit_unit.pb.o \
+		envoy/type/v3/semantic_version.pb.o \
+		envoy/type/v3/token_bucket.pb.o \
+		envoy/watchdog/v3/abort_action.pb.o \
 		google/api/annotations.pb.o \
+		google/api/expr/v1alpha1/checked.pb.o \
+		google/api/expr/v1alpha1/syntax.pb.o \
 		google/api/http.pb.o \
 		google/rpc/status.pb.o \
-		metrics.pb.o \
-		src/proto/grpc/health/v1/health.pb.o \
-		validate/validate.pb.o
+		io/prometheus/client/metrics.pb.o \
+		opencensus/proto/trace/v1/trace_config.pb.o \
+		opentelemetry/proto/collector/logs/v1/logs_service.pb.o \
+		opentelemetry/proto/common/v1/common.pb.o \
+		opentelemetry/proto/logs/v1/logs.pb.o \
+		opentelemetry/proto/resource/v1/resource.pb.o \
+		src/core/lib/channel/channel_stack.o \
+		src/core/lib/gpr/env_posix.o \
+		src/core/lib/gprpp/global_config_env.o \
+		src/core/lib/gprpp/status_helper.o \
+		src/core/lib/gprpp/time.o \
+		src/core/lib/iomgr/combiner.o \
+		src/core/lib/iomgr/error.o \
+		src/core/lib/iomgr/exec_ctx.o \
+		src/core/lib/iomgr/executor.o \
+		src/core/lib/iomgr/iomgr.o \
+		src/core/lib/iomgr/iomgr_internal.o \
+		src/core/lib/iomgr/polling_entity.o \
+		src/core/lib/iomgr/pollset.o \
+		src/core/lib/iomgr/pollset_set.o \
+		src/core/lib/iomgr/timer.o \
+		src/core/lib/iomgr/timer_manager.o \
+		src/core/lib/slice/percent_encoding.o \
+		src/core/lib/slice/slice.o \
+		src/core/lib/slice/slice_buffer.o \
+		src/core/lib/surface/api_trace.o \
+		src/core/lib/surface/byte_buffer.o \
+		src/core/lib/surface/byte_buffer_reader.o \
+		src/core/lib/surface/call.o \
+		src/core/lib/surface/completion_queue.o \
+		src/core/lib/surface/completion_queue_factory.o \
+		src/core/lib/surface/event_string.o \
+		src/core/lib/surface/validate_metadata.o \
+		src/core/lib/transport/connectivity_state.o \
+		src/core/lib/transport/error_utils.o \
+		src/core/lib/transport/metadata_batch.o \
+		src/core/lib/transport/transport.o \
+		src/core/lib/transport/transport_op_string.o \
+		udpa/annotations/migrate.pb.o \
+		udpa/annotations/security.pb.o \
+		udpa/annotations/sensitive.pb.o \
+		udpa/annotations/status.pb.o \
+		udpa/annotations/versioning.pb.o \
+		udpa/type/v1/typed_struct.pb.o \
+		validate/validate.pb.o \
+		xds/annotations/v3/status.pb.o \
+		xds/core/v3/authority.pb.o \
+		xds/core/v3/collection_entry.pb.o \
+		xds/core/v3/context_params.pb.o \
+		xds/core/v3/extension.pb.o \
+		xds/core/v3/resource_locator.pb.o \
+		xds/core/v3/resource_name.pb.o \
+		xds/type/matcher/v3/matcher.pb.o \
+		xds/type/matcher/v3/regex.pb.o \
+		xds/type/matcher/v3/string.pb.o \
+		xds/type/v3/typed_struct.pb.o
 
 source_OBJS=	$(common_SRCS:.cc=.o) \
 		$(exe_SRCS:.cc=.o) \
 		$(extensions_SRCS:.cc=.o) \
 		$(server_SRCS:.cc=.o)
 
+external_OBJS=	../bazel/external/http_parser/http_parser.o \
+		$(addprefix ../../cel-cpp-11f9d66/,$(cel_cpp_SRCS:.cc=.o)) \
+		$(addprefix ../../,$(googleurl_SRCS:.cc=.o)) \
+		$(quiche_SRCS:.cc=.o)
+
 common_SRCS=	$(wildcard common/access_log/*.cc) \
 			   common/api/api_impl.cc \
-			   common/api/os_sys_calls_impl.cc \
+			   common/api/posix/os_sys_calls_impl.cc \
 		$(wildcard common/buffer/*.cc) \
 		$(wildcard common/chromium_url/*.cc) \
 		$(wildcard common/common/*.cc) \
 			   common/common/posix/thread_impl.cc \
 		$(wildcard common/config/*.cc) \
+		$(wildcard common/config/xds_mux/*.cc) \
+			   common/conn_pool/conn_pool_base.cc \
 		$(wildcard common/event/*.cc) \
+			   common/event/posix/signal_impl.cc \
 		$(wildcard common/filesystem/*.cc) \
 			   common/filesystem/kqueue/watcher_impl.cc \
 		$(wildcard common/filesystem/posix/*.cc) \
+			   common/filter/config_discovery_impl.cc \
+		$(wildcard common/formatter/*.cc) \
 		$(wildcard common/grpc/*.cc) \
 			   common/html/utility.cc \
 		$(wildcard common/http/*.cc) \
 		$(wildcard common/http/http1/*.cc) \
 		$(wildcard common/http/http2/*.cc) \
+		$(wildcard common/http/http3/*.cc) \
 		$(wildcard common/init/*.cc) \
 		$(wildcard common/json/*.cc) \
+			   common/local_reply/local_reply.cc \
 		$(wildcard common/memory/*.cc) \
 		$(wildcard common/network/*.cc) \
+			   common/network/dns_resolver/dns_factory_util.cc \
 			   common/profiler/profiler.cc \
-			   common/protobuf/utility.cc \
+		$(wildcard common/protobuf/*.cc) \
+			   common/quic/active_quic_listener.cc \
+			   common/quic/client_codec_impl.cc \
+			   common/quic/client_connection_factory_impl.cc \
+		$(wildcard common/quic/envoy_quic_*.cc) \
+		$(wildcard common/quic/platform/*.cc) \
+		$(wildcard common/quic/quic_*.cc) \
+			   common/quic/send_buffer_monitor.cc \
+		$(wildcard common/rds/*.cc) \
 		$(wildcard common/router/*.cc) \
 		$(wildcard common/runtime/*.cc) \
 		$(wildcard common/secret/*.cc) \
+		$(wildcard common/signal/*.cc) \
 		$(wildcard common/singleton/*.cc) \
 		$(wildcard common/ssl/*.cc) \
 		$(wildcard common/stats/*.cc) \
 		$(wildcard common/stream_info/*.cc) \
-			   common/tcp/conn_pool.cc \
-			   common/thread/thread_factory_singleton.cc \
+		$(wildcard common/tcp/*.cc) \
 			   common/thread_local/thread_local_impl.cc \
-			   common/tracing/http_tracer_impl.cc \
-		$(wildcard common/upstream/*.cc)
+		$(wildcard common/tracing/*.cc) \
+		$(wildcard common/upstream/*.cc) \
+		$(wildcard common/version/*.cc)
 
-exe_SRCS=	$(wildcard exe/*.cc)
+exe_SRCS=	$(wildcard exe/*.cc) \
+		exe/posix/platform_impl.cc
 
 extensions_SRCS=\
+		$(wildcard extensions/access_loggers/[^w]*/*.cc) \
+		extensions/early_data/default_early_data_policy.cc \
+		$(wildcard extensions/filters/common/expr/*.cc) \
 		extensions/filters/common/rbac/matchers.cc \
+		extensions/filters/network/http_connection_manager/config.cc \
+		$(wildcard extensions/listener_managers/listener_manager/*.cc) \
+		$(wildcard extensions/network/dns_resolver/[^a]*/*.cc) \
+		extensions/quic/crypto_stream/envoy_quic_crypto_client_stream.cc \
+		extensions/request_id/uuid/config.cc \
+		$(wildcard extensions/stat_sinks/metrics_service/*.cc) \
 		$(wildcard extensions/transport_sockets/tls/*.cc) \
-		$(wildcard extensions/access_loggers/*/*.cc) \
-		$(wildcard extensions/stat_sinks/metrics_service/*.cc)
+		extensions/transport_sockets/tls/cert_validator/factory.cc \
+		$(wildcard extensions/transport_sockets/tls/ocsp/*.cc) \
+		extensions/transport_sockets/tls/private_key/private_key_manager_impl.cc \
+		extensions/upstreams/http/config.cc
+
+define skiptests
+	$(filter-out %_fuzzer.cc %_test.cc,$(wildcard $(1)))
+endef
+
+quiche_SRCS=	$(call skiptests,quiche/balsa/*.cc) \
+		$(call skiptests,quiche/common/*.cc) \
+		quiche/common/platform/api/quiche_file_utils.cc \
+		quiche/common/platform/api/quiche_hostname_utils.cc \
+		quiche/common/platform/api/quiche_mutex.cc \
+		quiche/common/platform/default/quiche_platform_impl/quiche_file_utils_impl.cc \
+		quiche/common/platform/default/quiche_platform_impl/quiche_mutex_impl.cc \
+		quiche/common/platform/default/quiche_platform_impl/quiche_time_utils_impl.cc \
+		quiche/http2/adapter/callback_visitor.cc \
+		quiche/http2/adapter/event_forwarder.cc \
+		quiche/http2/adapter/header_validator.cc \
+		quiche/http2/adapter/http2_protocol.cc \
+		quiche/http2/adapter/http2_util.cc \
+		quiche/http2/adapter/nghttp2_adapter.cc \
+		quiche/http2/adapter/nghttp2_callbacks.cc \
+		quiche/http2/adapter/nghttp2_data_provider.cc \
+		quiche/http2/adapter/nghttp2_session.cc \
+		quiche/http2/adapter/nghttp2_util.cc \
+		quiche/http2/adapter/noop_header_validator.cc \
+		quiche/http2/adapter/oghttp2_adapter.cc \
+		quiche/http2/adapter/oghttp2_session.cc \
+		quiche/http2/adapter/oghttp2_util.cc \
+		quiche/http2/adapter/window_manager.cc \
+		quiche/http2/core/http2_trace_logging.cc \
+		$(call skiptests,quiche/http2/decoder/*.cc) \
+		$(wildcard quiche/http2/decoder/payload_decoders/*_payload_decoder.cc) \
+		$(call skiptests,quiche/http2/hpack/decoder/hpack_*.cc) \
+		quiche/http2/hpack/http2_hpack_constants.cc \
+		quiche/http2/hpack/huffman/hpack_huffman_decoder.cc \
+		quiche/http2/hpack/huffman/hpack_huffman_encoder.cc \
+		quiche/http2/hpack/huffman/huffman_spec_tables.cc \
+		quiche/http2/hpack/varint/hpack_varint_decoder.cc \
+		quiche/http2/hpack/varint/hpack_varint_encoder.cc \
+		quiche/http2/http2_constants.cc \
+		quiche/http2/http2_structures.cc \
+		quiche/quic/core/chlo_extractor.cc \
+		$(call skiptests,quiche/quic/core/congestion_control/*.cc) \
+		$(call skiptests,quiche/quic/core/crypto/*.cc) \
+		quiche/quic/core/deterministic_connection_id_generator.cc \
+		$(wildcard quiche/quic/core/frames/quic_*frame.cc) \
+		$(call skiptests,quiche/quic/core/http/*.cc) \
+		quiche/quic/core/legacy_quic_stream_id_manager.cc \
+		quiche/quic/core/proto/cached_network_parameters.pb.cc \
+		quiche/quic/core/proto/crypto_server_config.pb.cc \
+		quiche/quic/core/proto/source_address_token.pb.cc \
+		$(call skiptests,quiche/quic/core/qpack/*.cc) \
+		quiche/quic/core/quic_ack_listener_interface.cc \
+		quiche/quic/core/quic_alarm.cc \
+		quiche/quic/core/quic_bandwidth.cc \
+		quiche/quic/core/quic_buffered_packet_store.cc \
+		$(call skiptests,quiche/quic/core/quic_c*.cc) \
+		quiche/quic/core/quic_data_reader.cc \
+		quiche/quic/core/quic_data_writer.cc \
+		quiche/quic/core/quic_datagram_queue.cc \
+		quiche/quic/core/quic_dispatcher.cc \
+		quiche/quic/core/quic_error_codes.cc \
+		quiche/quic/core/quic_flow_controller.cc \
+		quiche/quic/core/quic_framer.cc \
+		quiche/quic/core/quic_idle_network_detector.cc \
+		quiche/quic/core/quic_mtu_discovery.cc \
+		quiche/quic/core/quic_network_blackhole_detector.cc \
+		quiche/quic/core/quic_packet_creator.cc \
+		quiche/quic/core/quic_packet_number.cc \
+		quiche/quic/core/quic_packets.cc \
+		quiche/quic/core/quic_path_validator.cc \
+		quiche/quic/core/quic_ping_manager.cc \
*** 372 LINES SKIPPED ***