net-misc/zerotier: add 1.16.0

Signed-off-by: Alfred Wingate <parona@protonmail.com>
Signed-off-by: Yixun Lan <dlan@gentoo.org>
This commit is contained in:
Alfred Wingate 2025-09-19 02:53:56 +03:00 committed by Yixun Lan
parent 4537eca98f
commit 01419bff7d
No known key found for this signature in database
GPG Key ID: 31AAEA47594DBBED
3 changed files with 221 additions and 0 deletions

View File

@ -235,6 +235,7 @@ DIST rustversion-1.0.18.crate 17794 BLAKE2B fa35445404b836214bdbaa3de8e43312b6d8
DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
DIST schannel-0.1.26.crate 42791 BLAKE2B 7066c414a30de1ffcf5badb24410371765ac3e6ab94f41892a0587495d8920c3b3809a2d7c4e0fb452f03b904062e114a3eb50b619f910a302aabc45af17db03 SHA512 6db6182cc076df820d44aa0bea24f96013e3f1a581bf9416d84e59e33dbd98a3a5d39a7aca9ae162cf109f1501a0edac683a3a95361bf9107780b2a280e82323
DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
DIST sdk-core-4614dcb8f4ffd2cb244eb0a19d7485c896e3459e.gh.tar.gz 1001721 BLAKE2B 8d043df641f6dcea3d6f3e1840687fa671d2b6e8ab026aeb5a764926e53fd803292ad2464333f39efbded9188aec7b868816c2264ee0ec5363a6b566ab240f16 SHA512 f73294b4f32fd6ef055b2e19a6162dbc951904a14ab62d237699b79aabdb23bc0151b57cdd8a27e91503684a609a918a6e9ba7233aab5a165c9e1d4d6ce2acb7
DIST sdk-core-730aadcc02767ae630e88f8f8c788a85d6bc81e6.gh.tar.gz 711143 BLAKE2B e98be04bcee12cd1f3dd6e0d368508741238eaa8268b3610328cbffc6088c796c80f4761a69436fd2ad4f91995869f58fc61eb12fbcb7a11a6cc0e12125b94fa SHA512 df1aa3f789abd2ed43edde810b9b1fbd2ea97a2d9ced7c658a1cf7b60e28e073ed16869dc723fdfcfa2ca2d87df64739ec00adc248e856b60757d8b5dda31771
DIST sec1-0.7.3.crate 17979 BLAKE2B c30d4e617f9c0c21b80f14a7df88a164ad43f4c18fbedc1ec32af41193053e67ff6ea83db54f46c8cd6389d930984120c2a1688662fd8083e0c23bd4995d510b SHA512 be646413d84b39a43a0af478854f47db3b167c2bf1bedf7a58392782c423aaaa38df3b3676f9807a98c6128152295c426edd16d67d62ae7048caa635bf39641e
DIST security-framework-2.11.1.crate 80188 BLAKE2B 844d36d2b2216cc7055687110d54ea783a7ed9bfe6375fd4dcbea267ec85531e666fe002648110315f42c3364ff5ff5aeba711cf8d1f5358ba65c8393e96f55c SHA512 02786d62fd9dded80bae3942896bc8fea2a90763427f582bf5d9f127ca5682097b59b5dbff2cde373198ba659316ab5906a68d3141ba00c7408b73ebe353fac1
@ -362,3 +363,5 @@ DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa6586
DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe
DIST zerotier-1.14.2.tar.gz 12466274 BLAKE2B d361fed75765671dac987808003556f50d168c4c90715e4e70ee85086b8c372ce194eea1efc333e2f7492dab55e236c0ab5126583e79eece43de83efdd1367f9 SHA512 9d022afcf81543d6ee938219a3712da846fe895b0fd65cfd6ec8ed173f0e208516031b6d2303ab42fd21806d9ba5ff6fdb0d850a0cbb32b268d53accb093cdf5
DIST zerotier-1.16.0-crates.tar.xz 31694172 BLAKE2B 9b1070591c614177d09220674a9b7f13098829e3622dc952922ee55cb1b3a2eb731f886e5fde0502ec4ea4956978dba5ced383f2c65df76809dc7e0ee8dad011 SHA512 2c44f5f5dcd58b9db094dc23294448de5bbc77c9140d9063369b1631ddd6b88a91d761c9aef3f96252a424e996e9a096e1f15ebfa3b17e24027a313598f8a217
DIST zerotier-1.16.0.tar.gz 12023748 BLAKE2B 7408a7874ad9796d01978544945b1477f68ca3d76fe5102151d99ede6a8f84c37e64fed1efce13050201ba8aa7496d7e37a57da543837a98c1e6a6f298a9dd62 SHA512 158ab83059ea1dcdfab073429404d6e9ef812c40e4be6b718c48e4eb9f7a9ab45f71ffdd9cf9179e6b5864a302201cbf96ee1441659ebf8a8293de57dc13a2b7

View File

@ -0,0 +1,59 @@
https://github.com/zerotier/ZeroTierOne/issues/2332
https://gitlab.archlinux.org/archlinux/packaging/packages/zerotier-one/-/blob/d718c510d849ff9a8124761d51971a668591bd1e/0001-miniupnpc.patch
From bc83c2df2d2063a94cda78ed9b454abe032f4ed9 Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Wed, 10 Sep 2025 16:28:05 +0200
Subject: [PATCH 1/2] shrink variable size
This is what upstream miniupnpc uses...
--- a/osdep/PortMapper.cpp
+++ b/osdep/PortMapper.cpp
@@ -195,7 +195,7 @@ class PortMapperImpl {
// UPnP mode
// ---------------------------------------------------------------------
if (mode == 1) {
- char lanaddr[4096];
+ char lanaddr[64];
char externalip[4096]; // no range checking? so make these buffers larger than any UDP packet a uPnP server could send us as a precaution :P
char inport[16];
char outport[16];
From 2bad879a04caec036e4ee35879f2353f2dac71bf Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Wed, 10 Sep 2025 16:30:21 +0200
Subject: [PATCH 2/2] add missing function parameter
This changed with miniupnpc 2.2.8:
https://github.com/miniupnp/miniupnp/commit/c0a50ce33e3b99ce8a96fd43049bb5b53ffac62f
Warning: This is not a proper patch suitable for upstream! It assumes the
parameter is always there, which is not true for older versions.
So handle with care!
--- a/osdep/PortMapper.cpp
+++ b/osdep/PortMapper.cpp
@@ -196,6 +196,7 @@ class PortMapperImpl {
// ---------------------------------------------------------------------
if (mode == 1) {
char lanaddr[64];
+ char wanaddr[64];
char externalip[4096]; // no range checking? so make these buffers larger than any UDP packet a uPnP server could send us as a precaution :P
char inport[16];
char outport[16];
@@ -216,13 +217,14 @@ class PortMapperImpl {
#endif
memset(lanaddr, 0, sizeof(lanaddr));
+ memset(wanaddr, 0, sizeof(wanaddr));
memset(externalip, 0, sizeof(externalip));
memset(&urls, 0, sizeof(urls));
memset(&data, 0, sizeof(data));
OSUtils::ztsnprintf(inport, sizeof(inport), "%d", localPort);
int foundValidIGD = 0;
- if ((foundValidIGD = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr))) && (lanaddr[0])) {
+ if ((foundValidIGD = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr), wanaddr, sizeof(wanaddr))) && (lanaddr[0])) {
#ifdef ZT_PORTMAPPER_TRACE
PM_TRACE("PortMapper: UPnP: my LAN IP address: %s" ZT_EOL_S, lanaddr);
#endif

View File

@ -0,0 +1,159 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CRATES="
"
declare -A GIT_CRATES=(
[jwt]='https://github.com/glimberg/rust-jwt;61a9291fdeec747c6edf14f4fa0caf235136c168;rust-jwt-%commit%'
[rustfsm]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/fsm'
[rustfsm_procmacro]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/fsm/rustfsm_procmacro'
[rustfsm_trait]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/fsm/rustfsm_trait'
[temporal-client]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/client'
[temporal-sdk-core-api]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/core-api'
[temporal-sdk-core-protos]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/sdk-core-protos'
[temporal-sdk-core]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/core'
[temporal-sdk]='https://github.com/temporalio/sdk-core;4614dcb8f4ffd2cb244eb0a19d7485c896e3459e;sdk-core-%commit%/sdk'
)
CARGO_OPTIONAL=1
RUST_MIN_VER="1.88"
RUST_OPTIONAL=1
inherit cargo systemd toolchain-funcs
DESCRIPTION="A software-based managed Ethernet switch for planet Earth"
HOMEPAGE="https://www.zerotier.com/"
SRC_URI="
https://github.com/zerotier/ZeroTierOne/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
sso? ( ${CARGO_CRATE_URIS} )
"
if [[ ${PKGBUMPING} != ${PVR} ]]; then
SRC_URI+="
sso? (
https://gitlab.com/api/v4/projects/32909921/packages/generic/${PN}/${PV}/${P}-crates.tar.xz
)
"
fi
S="${WORKDIR}"/ZeroTierOne-${PV}
LICENSE="MPL-2.0"
# Dependent crate licenses
LICENSE+=" sso? ( 0BSD Apache-2.0 BSD ISC MIT MPL-2.0 Unicode-3.0 ZLIB )"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
IUSE="cpu_flags_arm_neon debug sso"
# https://github.com/zerotier/ZeroTierOne/pull/2453
# >=miniupnpnc-2.2.8: https://gitlab.archlinux.org/archlinux/packaging/packages/zerotier-one/-/commit/1d040aee9a4cfecdcc747cb42f92a1420a42a3f4
RDEPEND="
dev-libs/openssl:=
net-libs/libnatpmp
>=net-libs/miniupnpc-2.2.8:=
"
DEPEND="
${RDEPEND}
dev-cpp/nlohmann_json
"
BDEPEND="
virtual/pkgconfig
sso? ( ${RUST_DEPEND} )
"
PATCHES=(
"${FILESDIR}"/${PN}-1.10.1-add-armv7a-support.patch
"${FILESDIR}"/${PN}-1.16.0-miniupnpc-2.2.8.patch
)
DOCS=( README.md )
pkg_setup() {
if use sso ; then
rust_pkg_setup
fi
}
src_unpack() {
if use sso ; then
cargo_src_unpack
else
default
fi
}
src_prepare() {
default
# Remove vendored code to avoid mixing vendored and system headers,
# otherwise it will hide api breaks at build time such as:
# https://github.com/zerotier/ZeroTierOne/issues/2332
rm -r ext/{miniupnpc,libnatpmp,nlohmann} || die
rm -r ext/hiredis-* || die
# keep opentelemetry-cpp-api-only to avoid dependency for now
rm -r ext/opentelemetry-cpp-1.21.0 || die
rm -r ext/redis-plus-plus-* || die
rm -r ext/libpqxx-* || die
# header only dependency that could be packaged
#rm -r ext/inja || die
# https://github.com/zerotier/ZeroTierOne/issues/355#issuecomment-232086084
#rm -r ext/http-parser || die
# Messy and needs proper patches
#rm -r ext/cpp-httplib || die
# Remove man page compression and install, we'll handle it with ebuild functions
sed -e '/install:/,/^$/ { /man[0-9]/d }' \
-i make-linux.mk || die
}
src_configure() {
tc-export CXX CC
myemakeargs=(
CC="${CC}"
CXX="${CXX}"
STRIP=:
ZT_DISABLE_NEON="$(usex !cpu_flags_arm_neon 1 0)"
# Debug doesnt do more than add preprocessor arguments normally,
# but when rust is used it sets the correct rust directory to link against.
# It would be added by cargo eclass eitherway, so instead of adding REQUIRED_USE
# and patching the makefile its just easier to have it.
ZT_DEBUG="$(usex debug 1 0)"
ZT_SSO_SUPPORTED="$(usex sso 1 0)"
# TODO:
# commercial source-available license
# Needs more work to build properly against system packages
ZT_CONTROLLER=0
ZT_OTEL=0
)
if use sso ; then
cargo_src_configure
fi
}
src_compile() {
if use sso ; then
cargo_env emake "${myemakeargs[@]}" one
else
emake "${myemakeargs[@]}" one
fi
}
src_test() {
emake "${myemakeargs[@]}" selftest
./zerotier-selftest || die
}
src_install() {
default
newinitd "${FILESDIR}/${PN}".init-r1 "${PN}"
systemd_dounit "${FILESDIR}/${PN}".service
doman doc/zerotier-{cli.1,idtool.1,one.8}
}