pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

trafficserver: Add new package



Module Name:	pkgsrc-wip
Committed By:	Andrew Parker <andrew%pmk1.net@localhost>
Pushed By:	andrewparker
Date:		Fri Nov 6 07:42:56 2026 -0500
Changeset:	ea53818eaf58a4fb63f6aad77df34bdecf535e2f

Added Files:
	trafficserver/COMMIT_MSG
	trafficserver/DESCR
	trafficserver/Makefile
	trafficserver/PLIST
	trafficserver/TODO
	trafficserver/buildlink3.mk
	trafficserver/distinfo
	trafficserver/files/trafficserver.sh
	trafficserver/patches/patch-CMakeLists.txt
	trafficserver/patches/patch-DbgCtl.h
	trafficserver/patches/patch-LogConfig.cc
	trafficserver/patches/patch-Server.cc
	trafficserver/patches/patch-ink_inet.cc
	trafficserver/patches/patch-swoc_file.h
	trafficserver/patches/patch-tsmemcache.cc

Log Message:
trafficserver: Add new package

Still needs testing outside of NetBSD

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=ea53818eaf58a4fb63f6aad77df34bdecf535e2f

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 trafficserver/COMMIT_MSG                   |   1 +
 trafficserver/DESCR                        |   2 +
 trafficserver/Makefile                     | 149 +++++++++++++++++++++
 trafficserver/PLIST                        | 208 +++++++++++++++++++++++++++++
 trafficserver/TODO                         |   2 +
 trafficserver/buildlink3.mk                |  32 +++++
 trafficserver/distinfo                     |  12 ++
 trafficserver/files/trafficserver.sh       |  26 ++++
 trafficserver/patches/patch-CMakeLists.txt |  29 ++++
 trafficserver/patches/patch-DbgCtl.h       |  18 +++
 trafficserver/patches/patch-LogConfig.cc   |  17 +++
 trafficserver/patches/patch-Server.cc      |  52 ++++++++
 trafficserver/patches/patch-ink_inet.cc    |  18 +++
 trafficserver/patches/patch-swoc_file.h    |  19 +++
 trafficserver/patches/patch-tsmemcache.cc  |  18 +++
 15 files changed, 603 insertions(+)

diffs:
diff --git a/trafficserver/COMMIT_MSG b/trafficserver/COMMIT_MSG
new file mode 100644
index 0000000000..2d91555672
--- /dev/null
+++ b/trafficserver/COMMIT_MSG
@@ -0,0 +1 @@
+trafficserver: Add Apache Trafficserver 10.2.1
diff --git a/trafficserver/DESCR b/trafficserver/DESCR
new file mode 100644
index 0000000000..a728c79ffe
--- /dev/null
+++ b/trafficserver/DESCR
@@ -0,0 +1,2 @@
+A fast, scalable and extensible HTTP/1.1 and HTTP/2 compliant caching proxy
+server.
diff --git a/trafficserver/Makefile b/trafficserver/Makefile
new file mode 100644
index 0000000000..167505f88d
--- /dev/null
+++ b/trafficserver/Makefile
@@ -0,0 +1,149 @@
+# $NetBSD$
+
+DISTNAME=	trafficserver-10.2.1
+CATEGORIES=	www
+MASTER_SITES=	${MASTER_SITE_GITHUB:=apache/}
+
+MAINTAINER=	andrew%pmk1.net@localhost
+HOMEPAGE=	https://github.com/apache/trafficserver
+COMMENT=	Apache Trafficserver
+LICENSE=	modified-bsd
+DEPENDS+=	daemonize>=1.3:../../sysutils/daemonize
+
+USE_CXX_FEATURES=	c++17
+USE_LANGUAGES=		c c++
+USE_TOOLS+=		pkg-config
+
+CFLAGS+=		-fPIC
+CMAKE_CONFIGURE_ARGS+=	-DENABLE_JEMALLOC=ON
+CMAKE_CONFIGURE_ARGS+=	-DEXTERNAL_YAML_CPP=ON
+CMAKE_CONFIGURE_ARGS+=	-DBUILD_EXPERIMENTAL_PLUGINS=ON
+CMAKE_CONFIGURE_ARGS+=	-DLIBLZMA_INCLUDE_DIR:PATH=${BUILDLINK_PREFIX.xz}/include
+CMAKE_CONFIGURE_ARGS+=	-DLIBLZMA_LIBRARY:FILEPATH=${BUILDLINK_PREFIX.xz}/lib/liblzma.so
+CMAKE_CONFIGURE_ARGS+=	-DWITH_GROUP:STRING=trafficserver
+CMAKE_CONFIGURE_ARGS+=	-DWITH_USER:STRING=trafficserver
+CMAKE_CONFIGURE_ARGS+=	-DCMAKE_INSTALL_LOGDIR:STRING=/var/log/trafficserver
+CMAKE_CONFIGURE_ARGS+=	-DCMAKE_INSTALL_RUNSTATEDIR:STRING=/var/run/trafficserver
+
+RCD_SCRIPTS+=	trafficserver
+TRAFUSER?=	trafficserver
+TRAFGROUP?=	${TRAFUSER}
+TRAFLOGDIR=	/var/log/trafficserver
+TRAFSTATEDIR=	/var/run/trafficserver
+
+MAKE_DIRS+=		${TRAFLOGDIR}
+MAKE_DIRS+=		${TRAFSTATEDIR}
+MAKE_DIRS_PERMS+=	${TRAFLOGDIR} ${TRAFUSER} ${TRAFGROUP} 0775
+MAKE_DIRS_PERMS+=	${TRAFSTATEDIR} ${TRAFUSER} ${TRAFGROUP} 0775
+
+PKG_GROUPS+=		${TRAFGROUP}
+PKG_USERS+=		${TRAFUSER}:${TRAFGROUP}
+PKG_HOME.${TRAFUSER}=	/home/nonexistent
+PKG_SHELL.${TRAFUSER}=	${SH}
+PKG_GECOS.${TRAFUSER}=	Trafficserver daemon user
+
+EGDIR=		${PREFIX}/share/examples/${PKGBASE}
+MAKE_DIRS+=	${PKG_SYSCONFDIR}/trafficserver
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/.body_factory_info \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/.body_factory_info
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/README \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/README
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/access\#denied \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/access\#denied
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/access\#proxy_auth_required \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/access\#proxy_auth_required
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/access\#ssl_forbidden \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/access\#ssl_forbidden
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/cache\#not_in_cache \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/cache\#not_in_cache
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/cache\#read_error \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/cache\#read_error
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/connect\#all_down \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/connect\#all_down
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/connect\#dns_failed \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/connect\#dns_failed
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/connect\#failed_connect \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/connect\#failed_connect
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/connect\#hangup \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/connect\#hangup
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/default \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/default
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/interception\#no_host \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/interception\#no_host
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/redirect\#moved_permanently \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/redirect\#moved_permanently
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/redirect\#moved_temporarily \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/redirect\#moved_temporarily
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#cycle_detected \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#cycle_detected
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#invalid_content_length \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#invalid_content_length
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#no_content_length \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#no_content_length
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#no_host \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#no_host
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#scheme_unsupported \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#scheme_unsupported
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#syntax_error \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#syntax_error
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/request\#uri_len_too_long \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/request\#uri_len_too_long
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/response\#bad_response \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/response\#bad_response
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/response\#bad_version \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/response\#bad_version
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/timeout\#activity \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/timeout\#activity
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/timeout\#inactivity \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/timeout\#inactivity
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/transcoding\#unsupported \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/transcoding\#unsupported
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/body_factory/default/urlrouting\#no_mapping \
+		${PKG_SYSCONFDIR}/trafficserver/body_factory/default/urlrouting\#no_mapping
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/cache.config \
+		${PKG_SYSCONFDIR}/trafficserver/cache.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/hosting.config \
+		${PKG_SYSCONFDIR}/trafficserver/hosting.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/ip_allow.yaml \
+		${PKG_SYSCONFDIR}/trafficserver/ip_allow.yaml
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/jsonrpc.yaml \
+		${PKG_SYSCONFDIR}/trafficserver/jsonrpc.yaml
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/logging.yaml \
+		${PKG_SYSCONFDIR}/trafficserver/logging.yaml
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/parent.config \
+		${PKG_SYSCONFDIR}/trafficserver/parent.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/plugin.config \
+		${PKG_SYSCONFDIR}/trafficserver/plugin.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/records.yaml \
+		${PKG_SYSCONFDIR}/trafficserver/records.yaml
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/remap.config \
+		${PKG_SYSCONFDIR}/trafficserver/remap.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/sni.yaml \
+		${PKG_SYSCONFDIR}/trafficserver/sni.yaml
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/socks.config \
+		${PKG_SYSCONFDIR}/trafficserver/socks.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/splitdns.config \
+		${PKG_SYSCONFDIR}/trafficserver/splitdns.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/ssl_multicert.config \
+		${PKG_SYSCONFDIR}/trafficserver/ssl_multicert.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/storage.config \
+		${PKG_SYSCONFDIR}/trafficserver/storage.config
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/strategies.yaml \
+		${PKG_SYSCONFDIR}/trafficserver/strategies.yaml
+CONF_FILES+=	${PREFIX}/share/examples/trafficserver/volume.config \
+		${PKG_SYSCONFDIR}/trafficserver/volume.config
+
+post-install:
+	${RM} -rf ${DESTDIR}/${PREFIX}/share/examples/trafficserver
+	${MV} ${DESTDIR}/${PREFIX}/etc/trafficserver ${DESTDIR}/${PREFIX}/share/examples
+
+.include "../../archivers/lzmalib/buildlink3.mk"
+.include "../../archivers/brotli/buildlink3.mk"
+.include "../../archivers/xz/buildlink3.mk"
+.include "../../devel/pcre2/buildlink3.mk"
+.include "../../devel/cmake/build.mk"
+.include "../../lang/LuaJIT2/buildlink3.mk"
+.include "../../devel/jemalloc/buildlink3.mk"
+.include "../../textproc/yaml-cpp/buildlink3.mk"
+.include "../../devel/cmake/build.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/trafficserver/PLIST b/trafficserver/PLIST
new file mode 100644
index 0000000000..141ecae9b8
--- /dev/null
+++ b/trafficserver/PLIST
@@ -0,0 +1,208 @@
+@comment $NetBSD$
+bin/traffic_cache_tool
+bin/traffic_crashlog
+bin/traffic_ctl
+bin/traffic_layout
+bin/traffic_logcat
+bin/traffic_logstats
+bin/traffic_server
+bin/traffic_top
+bin/traffic_via
+bin/trafficserver
+include/swoc/ArenaWriter.h
+include/swoc/BufferWriter.h
+include/swoc/DiscreteRange.h
+include/swoc/Errata.h
+include/swoc/HashFNV.h
+include/swoc/IPAddr.h
+include/swoc/IPEndpoint.h
+include/swoc/IPRange.h
+include/swoc/IPSrv.h
+include/swoc/IntrusiveDList.h
+include/swoc/IntrusiveHashMap.h
+include/swoc/Lexicon.h
+include/swoc/MemArena.h
+include/swoc/MemSpan.h
+include/swoc/RBTree.h
+include/swoc/Scalar.h
+include/swoc/TextView.h
+include/swoc/Vectray.h
+include/swoc/bwf_base.h
+include/swoc/bwf_ex.h
+include/swoc/bwf_fwd.h
+include/swoc/bwf_ip.h
+include/swoc/bwf_std.h
+include/swoc/string_view_util.h
+include/swoc/swoc_file.h
+include/swoc/swoc_ip.h
+include/swoc/swoc_ip_util.h
+include/swoc/swoc_meta.h
+include/swoc/swoc_version.h
+include/ts/TsException.h
+include/ts/apidefs.h
+include/ts/remap.h
+include/ts/ts.h
+include/tscpp/api/Async.h
+include/tscpp/api/AsyncHttpFetch.h
+include/tscpp/api/AsyncTimer.h
+include/tscpp/api/CaseInsensitiveStringComparator.h
+include/tscpp/api/Cleanup.h
+include/tscpp/api/ClientRequest.h
+include/tscpp/api/Continuation.h
+include/tscpp/api/GlobalPlugin.h
+include/tscpp/api/GzipDeflateTransformation.h
+include/tscpp/api/GzipInflateTransformation.h
+include/tscpp/api/Headers.h
+include/tscpp/api/HttpMethod.h
+include/tscpp/api/HttpStatus.h
+include/tscpp/api/HttpVersion.h
+include/tscpp/api/InterceptPlugin.h
+include/tscpp/api/Logger.h
+include/tscpp/api/Plugin.h
+include/tscpp/api/PluginInit.h
+include/tscpp/api/RemapPlugin.h
+include/tscpp/api/Request.h
+include/tscpp/api/Response.h
+include/tscpp/api/Stat.h
+include/tscpp/api/Transaction.h
+include/tscpp/api/TransactionPlugin.h
+include/tscpp/api/TransformationPlugin.h
+include/tscpp/api/Url.h
+include/tscpp/api/noncopyable.h
+include/tscpp/api/utils.h
+include/tsutil/Assert.h
+include/tsutil/Bravo.h
+include/tsutil/Convert.h
+include/tsutil/DbgCtl.h
+include/tsutil/DenseThreadId.h
+include/tsutil/Histogram.h
+include/tsutil/LocalBuffer.h
+include/tsutil/Metrics.h
+include/tsutil/PostScript.h
+include/tsutil/Regex.h
+include/tsutil/SourceLocation.h
+include/tsutil/Strerror.h
+include/tsutil/StringCompare.h
+include/tsutil/StringConvert.h
+include/tsutil/TsMutex.h
+include/tsutil/TsSharedMutex.h
+include/tsutil/YamlCfg.h
+include/tsutil/ts_bw_format.h
+include/tsutil/ts_diag_levels.h
+include/tsutil/ts_errata.h
+include/tsutil/ts_ip.h
+include/tsutil/ts_meta.h
+include/tsutil/ts_thread_safety.h
+include/tsutil/ts_time_parser.h
+include/tsutil/ts_unit_parser.h
+lib/cmake/Findtsapi.cmake
+lib/libswoc.so
+lib/libswoc.so.1
+lib/libswoc.so.1.5.15
+lib/libtsapi.so
+lib/libtscppapi.so
+lib/pkgconfig/ts.pc
+libexec/trafficserver/access_control.so
+libexec/trafficserver/authproxy.so
+libexec/trafficserver/background_fetch.so
+libexec/trafficserver/block_errors.so
+libexec/trafficserver/cache_fill.so
+libexec/trafficserver/cache_promote.so
+libexec/trafficserver/cache_range_requests.so
+libexec/trafficserver/cachekey.so
+libexec/trafficserver/cert_reporting_tool.so
+libexec/trafficserver/certifier.so
+libexec/trafficserver/combo_handler.so
+libexec/trafficserver/compress.so
+libexec/trafficserver/conf_remap.so
+libexec/trafficserver/cookie_remap.so
+libexec/trafficserver/custom_redirect.so
+libexec/trafficserver/escalate.so
+libexec/trafficserver/esi.so
+libexec/trafficserver/filter_body.so
+libexec/trafficserver/fq_pacing.so
+libexec/trafficserver/generator.so
+libexec/trafficserver/geoip_acl.so
+libexec/trafficserver/header_freq.so
+libexec/trafficserver/header_rewrite.so
+libexec/trafficserver/hook-trace.so
+libexec/trafficserver/http_stats.so
+libexec/trafficserver/icap_plugin.so
+libexec/trafficserver/inliner.so
+libexec/trafficserver/ja3_fingerprint.so
+libexec/trafficserver/ja4_fingerprint.so
+libexec/trafficserver/jax_fingerprint.so
+libexec/trafficserver/libloader.so
+libexec/trafficserver/memcache.so
+libexec/trafficserver/memory_profile.so
+libexec/trafficserver/money_trace.so
+libexec/trafficserver/mp4.so
+libexec/trafficserver/multiplexer.so
+libexec/trafficserver/origin_server_auth.so
+libexec/trafficserver/prefetch.so
+libexec/trafficserver/rate_limit.so
+libexec/trafficserver/realip.so
+libexec/trafficserver/regex_remap.so
+libexec/trafficserver/regex_revalidate.so
+libexec/trafficserver/remap_purge.so
+libexec/trafficserver/remap_stats.so
+libexec/trafficserver/s3_auth.so
+libexec/trafficserver/server_push_preload.so
+libexec/trafficserver/slice.so
+libexec/trafficserver/sslheaders.so
+libexec/trafficserver/stale_response.so
+libexec/trafficserver/statichit.so
+libexec/trafficserver/stats_over_http.so
+libexec/trafficserver/stream_editor.so
+libexec/trafficserver/system_stats.so
+libexec/trafficserver/tcpinfo.so
+libexec/trafficserver/tls_bridge.so
+libexec/trafficserver/traffic_dump.so
+libexec/trafficserver/tslua.so
+libexec/trafficserver/txn_box.so
+libexec/trafficserver/url_sig.so
+libexec/trafficserver/xdebug.so
+share/examples/trafficserver/body_factory/default/.body_factory_info
+share/examples/trafficserver/body_factory/default/README
+share/examples/trafficserver/body_factory/default/access#denied
+share/examples/trafficserver/body_factory/default/access#proxy_auth_required
+share/examples/trafficserver/body_factory/default/access#ssl_forbidden
+share/examples/trafficserver/body_factory/default/cache#not_in_cache
+share/examples/trafficserver/body_factory/default/cache#read_error
+share/examples/trafficserver/body_factory/default/connect#all_down
+share/examples/trafficserver/body_factory/default/connect#dns_failed
+share/examples/trafficserver/body_factory/default/connect#failed_connect
+share/examples/trafficserver/body_factory/default/connect#hangup
+share/examples/trafficserver/body_factory/default/default
+share/examples/trafficserver/body_factory/default/interception#no_host
+share/examples/trafficserver/body_factory/default/redirect#moved_permanently
+share/examples/trafficserver/body_factory/default/redirect#moved_temporarily
+share/examples/trafficserver/body_factory/default/request#cycle_detected
+share/examples/trafficserver/body_factory/default/request#invalid_content_length
+share/examples/trafficserver/body_factory/default/request#no_content_length
+share/examples/trafficserver/body_factory/default/request#no_host
+share/examples/trafficserver/body_factory/default/request#scheme_unsupported
+share/examples/trafficserver/body_factory/default/request#syntax_error
+share/examples/trafficserver/body_factory/default/request#uri_len_too_long
+share/examples/trafficserver/body_factory/default/response#bad_response
+share/examples/trafficserver/body_factory/default/response#bad_version
+share/examples/trafficserver/body_factory/default/timeout#activity
+share/examples/trafficserver/body_factory/default/timeout#inactivity
+share/examples/trafficserver/body_factory/default/transcoding#unsupported
+share/examples/trafficserver/body_factory/default/urlrouting#no_mapping
+share/examples/trafficserver/cache.config
+share/examples/trafficserver/hosting.config
+share/examples/trafficserver/ip_allow.yaml
+share/examples/trafficserver/jsonrpc.yaml
+share/examples/trafficserver/logging.yaml
+share/examples/trafficserver/parent.config
+share/examples/trafficserver/plugin.config
+share/examples/trafficserver/records.yaml
+share/examples/trafficserver/remap.config
+share/examples/trafficserver/sni.yaml
+share/examples/trafficserver/socks.config
+share/examples/trafficserver/splitdns.config
+share/examples/trafficserver/ssl_multicert.config
+share/examples/trafficserver/storage.config
+share/examples/trafficserver/strategies.yaml
+share/examples/trafficserver/volume.config
diff --git a/trafficserver/TODO b/trafficserver/TODO
new file mode 100644
index 0000000000..688bc5d1d7
--- /dev/null
+++ b/trafficserver/TODO
@@ -0,0 +1,2 @@
+- Better logic for handling accept filter in NetBSD
+- Test build on other platforms
diff --git a/trafficserver/buildlink3.mk b/trafficserver/buildlink3.mk
new file mode 100644
index 0000000000..577a05831a
--- /dev/null
+++ b/trafficserver/buildlink3.mk
@@ -0,0 +1,32 @@
+# $NetBSD$
+
+BUILDLINK_TREE+=	trafficserver
+
+.if !defined(TRAFFICSERVER_BUILDLINK3_MK)
+TRAFFICSERVER_BUILDLINK3_MK:=
+
+# XXX
+# XXX Packages that only install static libraries or headers should
+# XXX include the following line:
+# XXX
+# XXX	BUILDLINK_DEPMETHOD.trafficserver?=	build
+
+BUILDLINK_API_DEPENDS.trafficserver+=	trafficserver>=10.2.1
+BUILDLINK_PKGSRCDIR.trafficserver?=	../../wip/trafficserver
+
+# XXX
+# XXX Uncomment and keep only the buildlink3 lines below which are directly
+# XXX needed for dependencies to compile, link, and run.  If this package
+# XXX provides a wrappered API or otherwise does not expose the APIs of the
+# XXX buildlink3 lines below to dependencies, remove them.
+# XXX
+#.include "../../archivers/lzmalib/buildlink3.mk"
+#.include "../../archivers/brotli/buildlink3.mk"
+#.include "../../archivers/xz/buildlink3.mk"
+#.include "../../devel/pcre2/buildlink3.mk"
+#.include "../../lang/LuaJIT2/buildlink3.mk"
+#.include "../../devel/jemalloc/buildlink3.mk"
+#.include "../../textproc/yaml-cpp/buildlink3.mk"
+.endif	# TRAFFICSERVER_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-trafficserver
diff --git a/trafficserver/distinfo b/trafficserver/distinfo
new file mode 100644
index 0000000000..9aa3e301f8
--- /dev/null
+++ b/trafficserver/distinfo
@@ -0,0 +1,12 @@
+$NetBSD: distinfo,v 1.6 2022/08/05 13:02:02 adam Exp $
+
+BLAKE2s (trafficserver-10.2.1.tar.gz) = e3c65c35c895ede7ab624ebdfeee995c316045684755f5f7b332285d00f5c72f
+SHA512 (trafficserver-10.2.1.tar.gz) = 154c939f53730a33d9103f0d5c30c9fc51063f734e4d811cbb4b196f1b02049a5a7be69e52f6697afa7f4fe8e218c6fd5c9c51be55dedd1772d291dfff8d370d
+Size (trafficserver-10.2.1.tar.gz) = 22139170 bytes
+SHA1 (patch-CMakeLists.txt) = 36685f8bce789b38290e6167ecea4d017eb3d493
+SHA1 (patch-DbgCtl.h) = dba56cab1c1248598d93f1398707f13c2ad28eeb
+SHA1 (patch-LogConfig.cc) = a25a469ed99440bc91abdfc75aba1ddcbdd6871a
+SHA1 (patch-Server.cc) = d5daec1c26f387898938d12631ce63746ea5fea4
+SHA1 (patch-ink_inet.cc) = 0f4c32c240f78737f0fc34ba76cd863f5cb6a239
+SHA1 (patch-swoc_file.h) = b31ae61a2715aed221eb336256d5dafdb9b39466
+SHA1 (patch-tsmemcache.cc) = 9f67648660fc74fbfdbaaf1d8be2b9b0be383557
diff --git a/trafficserver/files/trafficserver.sh b/trafficserver/files/trafficserver.sh
new file mode 100755
index 0000000000..564935a572
--- /dev/null
+++ b/trafficserver/files/trafficserver.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# $NetBSD: trafficserver,v 1.6 2020/09/08 12:52:18 martin Exp $
+#
+
+# PROVIDE: trafficserver
+# REQUIRE: network CRITLOCALMOUNTED staticroute
+# BEFORE:  NETWORKING
+
+$_rc_subr_loaded . /etc/rc.subr
+
+name="trafficserver"
+rcvar=$name
+pidfile="/var/run/trafficserver/${name}.pid"
+start_cmd="/usr/pkg/sbin/daemonize -p /var/run/trafficserver/trafficserver.pid /usr/pkg/bin/traffic_server"
+start_precmd="trafficserver_prestart"
+command="/usr/pkg/bin/traffic_server"
+
+trafficserver_prestart() {
+	if [ ! -e  /var/run/trafficserver ]; then
+		mkdir /var/run/trafficserver
+	fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/trafficserver/patches/patch-CMakeLists.txt b/trafficserver/patches/patch-CMakeLists.txt
new file mode 100644
index 0000000000..26c198315c
--- /dev/null
+++ b/trafficserver/patches/patch-CMakeLists.txt
@@ -0,0 +1,29 @@
+$NetBSD$
+
+- Add build options NetBSD.  Mostly the same as FreeBSD.
+
+diff --git CMakeLists.txt CMakeLists.txt
+index 6772717b8a..955b755dbf 100644
+--- CMakeLists.txt
++++ CMakeLists.txt
+@@ -836,6 +836,20 @@ if(HOST_OS STREQUAL "freebsd")
+   set(THREADS_PREFER_PTHREAD_FLAG ON)
+ endif()
+ 
++if(HOST_OS STREQUAL "netbsd")
++  set(CMAKE_THREAD_LIBS_INIT "-lpthread")
++  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
++  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
++  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
++  add_compile_definitions(alloca=__builtin_alloca)
++  add_compile_definitions(__FreeBSD__)
++  add_compile_definitions(__NetBSD__)
++  set(CMAKE_HAVE_THREADS_LIBRARY 1)
++  set(CMAKE_USE_WIN32_THREADS_INIT 0)
++  set(CMAKE_USE_PTHREADS_INIT 1)
++  set(THREADS_PREFER_PTHREAD_FLAG ON)
++endif()
++
+ # Set the rpath for installed binaries
+ set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib;${CMAKE_INSTALL_PREFIX}/lib64")
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
diff --git a/trafficserver/patches/patch-DbgCtl.h b/trafficserver/patches/patch-DbgCtl.h
new file mode 100644
index 0000000000..b76a002244
--- /dev/null
+++ b/trafficserver/patches/patch-DbgCtl.h
@@ -0,0 +1,18 @@
+$NetBSD$
+
+- Include csstdarg for NetBSD
+
+diff --git include/tsutil/DbgCtl.h include/tsutil/DbgCtl.h
+index d20cf31b09..f143433fab 100644
+--- include/tsutil/DbgCtl.h
++++ include/tsutil/DbgCtl.h
+@@ -29,6 +29,9 @@
+ #include <atomic>
+ #include <utility>
+ #include <functional>
++#if defined(__NetBSD__)
++#include <cstdarg>
++#endif
+ 
+ #include <ts/apidefs.h> // For TS_PRINTFLIKE
+ 
diff --git a/trafficserver/patches/patch-LogConfig.cc b/trafficserver/patches/patch-LogConfig.cc
new file mode 100644
index 0000000000..8a63b6a662
--- /dev/null
+++ b/trafficserver/patches/patch-LogConfig.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+- Incorrect config string used here.  Need to fix upstream.
+
+diff --git src/proxy/logging/LogConfig.cc src/proxy/logging/LogConfig.cc
+index f2c07d8a23..287977d04e 100644
+--- src/proxy/logging/LogConfig.cc
++++ src/proxy/logging/LogConfig.cc
+@@ -444,7 +444,7 @@ LogConfig::register_config_callbacks()
+     "proxy.config.log.max_secs_per_buffer",
+     "proxy.config.log.max_space_mb_for_logs",
+     "proxy.config.log.max_space_mb_headroom",
+-    "proxy.config.log.error_log_filename",
++    "proxy.config.error.logfile.filename",
+     "proxy.config.log.logfile_perm",
+     "proxy.config.log.hostname",
+     "proxy.config.log.logfile_dir",
diff --git a/trafficserver/patches/patch-Server.cc b/trafficserver/patches/patch-Server.cc
new file mode 100644
index 0000000000..a9fe7ef5a8
--- /dev/null
+++ b/trafficserver/patches/patch-Server.cc
@@ -0,0 +1,52 @@
+$NetBSD$
+
+- kldfind is only on FreeBSD
+- Todo: Add logic for NetBSD
+
+diff --git src/iocore/net/Server.cc src/iocore/net/Server.cc
+index 32a8c0f7ae..ae4e955f6c 100644
+--- src/iocore/net/Server.cc
++++ src/iocore/net/Server.cc
+@@ -44,10 +44,13 @@
+ #include <hwloc.h>
+ #endif
+ 
++#undef SO_ACCEPTFILTER
+ #ifdef SO_ACCEPTFILTER
+ #include <sys/param.h>
++#if !defined(__NetBSD__)
+ #include <sys/linker.h>
+ #endif
++#endif
+ 
+ namespace
+ {
+@@ -361,6 +364,7 @@ Server::setup_fd_after_listen([[maybe_unused]] const NetProcessor::AcceptOptions
+ #ifdef SO_ACCEPTFILTER
+   // SO_ACCEPTFILTER needs to be set **after** listen
+   if (opt.defer_accept > 0) {
++#if !defined(__NetBSD__)
+     int file_id = kldfind("accf_data");
+ 
+     struct kld_file_stat stat;
+@@ -369,6 +373,7 @@ Server::setup_fd_after_listen([[maybe_unused]] const NetProcessor::AcceptOptions
+     if (kldstat(file_id, &stat) < 0) {
+       Error("[Server::listen] Ignored defer_accept config. Because accf_data module is not loaded errno=%d", errno);
+     } else {
++#endif
+       struct accept_filter_arg afa;
+ 
+       bzero(&afa, sizeof(afa));
+@@ -378,9 +383,11 @@ Server::setup_fd_after_listen([[maybe_unused]] const NetProcessor::AcceptOptions
+         Error("[Server::listen] Defer accept is configured but set failed: %d", errno);
+         return -errno;
+       }
++#if !defined(__NetBSD__)
+     }
+-  }
+ #endif
++  }
+ 
++#endif
+   return 0;
+ }
diff --git a/trafficserver/patches/patch-ink_inet.cc b/trafficserver/patches/patch-ink_inet.cc
new file mode 100644
index 0000000000..8ca5fd0e31
--- /dev/null
+++ b/trafficserver/patches/patch-ink_inet.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+- Include sysctl.h for NetBSD
+
+diff --git src/tscore/ink_inet.cc src/tscore/ink_inet.cc
+index 6d8f9eda5e..8134a6e0f3 100644
+--- src/tscore/ink_inet.cc
++++ src/tscore/ink_inet.cc
+@@ -34,6 +34,9 @@
+ #include "tscore/ink_assert.h"
+ #include "ts/apidefs.h"
+ #include "tscore/ink_inet.h"
++#if defined(__NetBSD__)
++#include "sys/sysctl.h"
++#endif
+ 
+ IpAddr const IpAddr::INVALID;
+ 
diff --git a/trafficserver/patches/patch-swoc_file.h b/trafficserver/patches/patch-swoc_file.h
new file mode 100644
index 0000000000..c53b7b8e9c
--- /dev/null
+++ b/trafficserver/patches/patch-swoc_file.h
@@ -0,0 +1,19 @@
+$NetBSD$
+
+- Need to include climits for NetBSD
+
+diff --git lib/swoc/include/swoc/swoc_file.h lib/swoc/include/swoc/swoc_file.h
+index 7e9423969b..52b586ef7f 100644
+--- lib/swoc/include/swoc/swoc_file.h
++++ lib/swoc/include/swoc/swoc_file.h
+@@ -7,6 +7,10 @@
+ 
+ #pragma once
+ 
++#if defined(__NetBSD__)
++#include <climits>
++#endif
++
+ #include <unistd.h>
+ #include <sys/stat.h>
+ 
diff --git a/trafficserver/patches/patch-tsmemcache.cc b/trafficserver/patches/patch-tsmemcache.cc
new file mode 100644
index 0000000000..ac7b9fcb93
--- /dev/null
+++ b/trafficserver/patches/patch-tsmemcache.cc
@@ -0,0 +1,18 @@
+$NetBSD$
+
+- Address compiler warning about already defined value
+
+diff --git plugins/experimental/memcache/tsmemcache.cc plugins/experimental/memcache/tsmemcache.cc
+index 5f742a4f11..4c531c0e39 100644
+--- plugins/experimental/memcache/tsmemcache.cc
++++ plugins/experimental/memcache/tsmemcache.cc
+@@ -44,7 +44,9 @@ static time_t base_day_time;
+ 
+ // These should be persistent.
+ int32_t    MC::verbosity  = 0;
++#if !defined(__NetBSD__)
+ ink_hrtime MC::last_flush = 0;
++#endif
+ 
+ namespace
+ {


Home | Main Index | Thread Index | Old Index