summaryrefslogtreecommitdiff
path: root/net-misc/zerotier/zerotier-1.12.2.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/zerotier/zerotier-1.12.2.ebuild')
-rw-r--r--net-misc/zerotier/zerotier-1.12.2.ebuild291
1 files changed, 291 insertions, 0 deletions
diff --git a/net-misc/zerotier/zerotier-1.12.2.ebuild b/net-misc/zerotier/zerotier-1.12.2.ebuild
new file mode 100644
index 000000000000..cae03fbe000e
--- /dev/null
+++ b/net-misc/zerotier/zerotier-1.12.2.ebuild
@@ -0,0 +1,291 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CARGO_OPTIONAL=1
+
+CRATES="
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ atty@0.2.14
+ autocfg@1.1.0
+ base64@0.13.1
+ base64@0.21.0
+ bitflags@1.3.2
+ block-buffer@0.10.3
+ bumpalo@3.12.0
+ bytes@1.4.0
+ cbindgen@0.20.0
+ cc@1.0.79
+ cfg-if@1.0.0
+ chrono@0.4.23
+ clap@2.34.0
+ codespan-reporting@0.11.1
+ core-foundation-sys@0.8.3
+ core-foundation@0.9.3
+ cpufeatures@0.2.5
+ crypto-common@0.1.6
+ cxx-build@1.0.91
+ cxx@1.0.91
+ cxxbridge-flags@1.0.91
+ cxxbridge-macro@1.0.91
+ darling@0.13.4
+ darling_core@0.13.4
+ darling_macro@0.13.4
+ digest@0.10.6
+ either@1.8.1
+ encoding_rs@0.8.32
+ errno-dragonfly@0.1.2
+ errno@0.2.8
+ fastrand@1.9.0
+ fnv@1.0.7
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ form_urlencoded@1.1.0
+ futures-channel@0.3.26
+ futures-core@0.3.26
+ futures-io@0.3.26
+ futures-sink@0.3.26
+ futures-task@0.3.26
+ futures-util@0.3.26
+ generic-array@0.14.6
+ getrandom@0.2.8
+ h2@0.3.16
+ hashbrown@0.12.3
+ heck@0.3.3
+ hermit-abi@0.1.19
+ hermit-abi@0.2.6
+ hmac@0.12.1
+ http-body@0.4.5
+ http@0.2.9
+ httparse@1.8.0
+ httpdate@1.0.2
+ hyper-tls@0.5.0
+ hyper@0.14.24
+ iana-time-zone-haiku@0.1.1
+ iana-time-zone@0.1.53
+ ident_case@1.0.1
+ idna@0.3.0
+ indexmap@1.9.2
+ instant@0.1.12
+ io-lifetimes@1.0.5
+ ipnet@2.7.1
+ itertools@0.10.5
+ itoa@1.0.5
+ js-sys@0.3.61
+ lazy_static@1.4.0
+ libc@0.2.139
+ link-cplusplus@1.0.8
+ linux-raw-sys@0.1.4
+ log@0.4.17
+ memchr@2.5.0
+ mime@0.3.16
+ mio@0.8.6
+ native-tls@0.2.11
+ num-bigint@0.4.3
+ num-integer@0.1.45
+ num-traits@0.2.15
+ num_cpus@1.15.0
+ oauth2@4.3.0
+ once_cell@1.17.1
+ openidconnect@2.5.0
+ openssl-macros@0.1.0
+ openssl-probe@0.1.5
+ openssl-sys@0.9.80
+ openssl@0.10.45
+ ordered-float@2.10.0
+ percent-encoding@2.2.0
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ pkg-config@0.3.26
+ ppv-lite86@0.2.17
+ proc-macro2@1.0.51
+ quote@1.0.23
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.2.16
+ reqwest@0.11.14
+ ring@0.16.20
+ rustix@0.36.8
+ ryu@1.0.12
+ schannel@0.1.21
+ scratch@1.0.3
+ security-framework-sys@2.8.0
+ security-framework@2.8.2
+ serde-value@0.7.0
+ serde@1.0.152
+ serde_derive@1.0.152
+ serde_json@1.0.93
+ serde_path_to_error@0.1.9
+ serde_plain@1.0.1
+ serde_urlencoded@0.7.1
+ serde_with@1.14.0
+ serde_with_macros@1.5.2
+ sha2@0.10.6
+ slab@0.4.8
+ socket2@0.4.7
+ spin@0.5.2
+ strsim@0.10.0
+ strsim@0.8.0
+ subtle@2.4.1
+ syn@1.0.109
+ tempfile@3.4.0
+ termcolor@1.2.0
+ textwrap@0.11.0
+ thiserror-impl@1.0.38
+ thiserror@1.0.38
+ time-core@0.1.0
+ time-macros@0.2.8
+ time@0.3.20
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tokio-native-tls@0.3.1
+ tokio-util@0.7.7
+ tokio@1.26.0
+ toml@0.5.11
+ tower-service@0.3.2
+ tracing-core@0.1.30
+ tracing@0.1.37
+ try-lock@0.2.4
+ typenum@1.16.0
+ unicode-bidi@0.3.10
+ unicode-ident@1.0.6
+ unicode-normalization@0.1.22
+ unicode-segmentation@1.10.1
+ unicode-width@0.1.10
+ untrusted@0.7.1
+ url@2.3.1
+ vcpkg@0.2.15
+ vec_map@0.8.2
+ version_check@0.9.4
+ want@0.3.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.84
+ wasm-bindgen-futures@0.4.34
+ wasm-bindgen-macro-support@0.2.84
+ wasm-bindgen-macro@0.2.84
+ wasm-bindgen-shared@0.2.84
+ wasm-bindgen@0.2.84
+ web-sys@0.3.61
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.42.0
+ windows-sys@0.45.0
+ windows-targets@0.42.1
+ windows_aarch64_gnullvm@0.42.1
+ windows_aarch64_msvc@0.42.1
+ windows_i686_gnu@0.42.1
+ windows_i686_msvc@0.42.1
+ windows_x86_64_gnu@0.42.1
+ windows_x86_64_gnullvm@0.42.1
+ windows_x86_64_msvc@0.42.1
+ winreg@0.10.1
+"
+
+declare -A GIT_CRATES=(
+ [jwt]='https://github.com/glimberg/rust-jwt;61a9291fdeec747c6edf14f4fa0caf235136c168;rust-jwt-%commit%'
+)
+
+inherit cargo flag-o-matic 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/${PV}.tar.gz -> ${P}.tar.gz
+ sso? (
+ ${CARGO_CRATE_URIS}
+ )
+"
+S="${WORKDIR}"/ZeroTierOne-${PV}
+
+LICENSE="BUSL-1.1"
+# Crate licenses
+LICENSE+=" sso? ( Apache-2.0 BSD ISC MIT MPL-2.0 Unicode-DFS-2016 )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+IUSE="cpu_flags_arm_neon debug sso"
+
+RDEPEND="
+ dev-libs/openssl:=
+ net-libs/libnatpmp
+ >=net-libs/miniupnpc-2:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sso? (
+ virtual/rust
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.1-respect-ldflags.patch
+ "${FILESDIR}"/${PN}-1.10.1-add-armv7a-support.patch
+)
+
+DOCS=( README.md AUTHORS.md )
+
+src_unpack() {
+ unpack ${P}.tar.gz
+ use sso && cargo_src_unpack
+}
+
+src_prepare() {
+ default
+
+ #1. Dont call cargo, we'll run it with cargo eclass functions
+ #2. Remove man page compression and install, we'll handle it with ebuild functions
+ sed -i \
+ -e '/ifeq ($(ZT_SSO_SUPPORTED)/,/endif/ { /cargo build/d }' \
+ -e '/install:/,/^$/ { /man[0-9]/d }' \
+ make-linux.mk || die
+}
+
+src_configure() {
+ tc-export CXX CC
+
+ # Several assembler files without GNU-stack markings
+ # https://github.com/zerotier/ZeroTierOne/issues/1179
+ append-ldflags -Wl,-z,noexecstack
+
+ use cpu_flags_arm_neon || export ZT_DISABLE_NEON=1
+
+ use sso && cargo_src_configure
+}
+
+src_compile() {
+ myemakeargs=(
+ CXX="${CXX}"
+ STRIP=:
+
+ # 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)"
+ )
+
+ pushd zeroidc > /dev/null || die
+ use sso && cargo_src_compile
+ popd > /dev/null || die
+
+ emake "${myemakeargs[@]}" one
+}
+
+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}
+}