summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--licenses/BSL-1.1150
-rw-r--r--net-misc/zerotier/Manifest1
-rw-r--r--net-misc/zerotier/files/zerotier-1.4.6-add-armv7a-support.patch14
-rw-r--r--net-misc/zerotier/files/zerotier-1.4.6-add-mk-ctlr-node-target.patch27
-rw-r--r--net-misc/zerotier/files/zerotier-1.4.6-fixup-neon-support.patch96
-rw-r--r--net-misc/zerotier/files/zerotier-1.4.6-respect-ldflags.patch11
-rw-r--r--net-misc/zerotier/metadata.xml4
-rw-r--r--net-misc/zerotier/zerotier-1.4.6.ebuild79
8 files changed, 382 insertions, 0 deletions
diff --git a/licenses/BSL-1.1 b/licenses/BSL-1.1
new file mode 100644
index 000000000000..af9b4d9f2d85
--- /dev/null
+++ b/licenses/BSL-1.1
@@ -0,0 +1,150 @@
+-----------------------------------------------------------------------------
+
+Business Source License 1.1
+
+License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
+"Business Source License" is a trademark of MariaDB Corporation Ab.
+
+-----------------------------------------------------------------------------
+
+Parameters
+
+Licensor: ZeroTier, Inc.
+Licensed Work: ZeroTier Network Virtualization Engine 1.4.4
+ The Licensed Work is (c)2019 ZeroTier, Inc.
+Additional Use Grant: You may make use of the Licensed Work, provided you
+ do not use it in any of the following ways:
+
+ * Sell hosted ZeroTier services as a "SaaS" Product
+
+ (1) Operate or sell access to ZeroTier root servers,
+ network controllers, or authorization key or certificate
+ generation components of the Licensed Work as a
+ for-profit service, regardless of whether the use of
+ these components is sold alone or is bundled with other
+ services. Note that this does not apply to the use of
+ ZeroTier behind the scenes to operate a service not
+ related to ZeroTier network administration.
+
+ * Create Non-Open-Source Commercial Derviative Works
+
+ (2) Link or directly include the Licensed Work in a
+ commercial or for-profit application or other product
+ not distributed under an Open Source Initiative (OSI)
+ compliant license. See: https://opensource.org/licenses
+
+ (3) Remove the name, logo, copyright, or other branding
+ material from the Licensed Work to create a "rebranded"
+ or "white labeled" version to distribute as part of
+ any commercial or for-profit product or service.
+
+ * Certain Government Uses
+
+ (4) Use or deploy the Licensed Work in a government
+ setting in support of any active government function
+ or operation with the exception of the following:
+ physical or mental health care, family and social
+ services, social welfare, senior care, child care, and
+ the care of persons with disabilities.
+
+Change Date: 2023-01-01
+
+Change License: Apache License version 2.0 as published by the Apache
+ Software Foundation
+ https://www.apache.org/licenses/
+
+Alternative Licensing
+
+If you would like to use the Licensed Work in any way that conflicts with
+the stipulations of the Additional Use Grant, contact ZeroTier, Inc. to
+obtain an alternative commercial license.
+
+Visit us on the web at: https://www.zerotier.com/
+
+Notice
+
+The Business Source License (this document, or the "License") is not an Open
+Source license. However, the Licensed Work will eventually be made available
+under an Open Source License, as stated in this License.
+
+For more information on the use of the Business Source License for ZeroTier
+products, please visit our pricing page which contains license details and
+and license FAQ: https://zerotier.com/pricing
+
+For more information on the use of the Business Source License generally,
+please visit the Adopting and Developing Business Source License FAQ at
+https://mariadb.com/bsl-faq-adopting.
+
+-----------------------------------------------------------------------------
+
+Business Source License 1.1
+
+Terms
+
+The Licensor hereby grants you the right to copy, modify, create derivative
+works, redistribute, and make non-production use of the Licensed Work. The
+Licensor may make an Additional Use Grant, above, permitting limited
+production use.
+
+Effective on the Change Date, or the fourth anniversary of the first publicly
+available distribution of a specific version of the Licensed Work under this
+License, whichever comes first, the Licensor hereby grants you rights under
+the terms of the Change License, and the rights granted in the paragraph
+above terminate.
+
+If your use of the Licensed Work does not comply with the requirements
+currently in effect as described in this License, you must purchase a
+commercial license from the Licensor, its affiliated entities, or authorized
+resellers, or you must refrain from using the Licensed Work.
+
+All copies of the original and modified Licensed Work, and derivative works
+of the Licensed Work, are subject to this License. This License applies
+separately for each version of the Licensed Work and the Change Date may vary
+for each version of the Licensed Work released by Licensor.
+
+You must conspicuously display this License on each original or modified copy
+of the Licensed Work. If you receive the Licensed Work in original or
+modified form from a third party, the terms and conditions set forth in this
+License apply to your use of that work.
+
+Any use of the Licensed Work in violation of this License will automatically
+terminate your rights under this License for the current and all other
+versions of the Licensed Work.
+
+This License does not grant you any right in any trademark or logo of
+Licensor or its affiliates (provided that you may use a trademark or logo of
+Licensor as expressly required by this License).
+
+TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON
+AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS,
+EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND
+TITLE.
+
+-----------------------------------------------------------------------------
+
+MariaDB hereby grants you permission to use this License’s text to license
+your works, and to refer to it using the trademark "Business Source License",
+as long as you comply with the Covenants of Licensor below.
+
+Covenants of Licensor
+
+In consideration of the right to use this License’s text and the "Business
+Source License" name and trademark, Licensor covenants to MariaDB, and to all
+other recipients of the licensed work to be provided by Licensor:
+
+1. To specify as the Change License the GPL Version 2.0 or any later version,
+ or a license that is compatible with GPL Version 2.0 or a later version,
+ where "compatible" means that software provided under the Change License can
+ be included in a program with software provided under GPL Version 2.0 or a
+ later version. Licensor may specify additional Change Licenses without
+ limitation.
+
+2. To either: (a) specify an additional grant of rights to use that does not
+ impose any additional restriction on the right granted in this License, as
+ the Additional Use Grant; or (b) insert the text "None".
+
+3. To specify a Change Date.
+
+4. Not to modify this License in any other way.
+
diff --git a/net-misc/zerotier/Manifest b/net-misc/zerotier/Manifest
index 4df318d310ec..68043e5890ba 100644
--- a/net-misc/zerotier/Manifest
+++ b/net-misc/zerotier/Manifest
@@ -1 +1,2 @@
DIST zerotier-1.2.12.tar.gz 6058902 BLAKE2B 851d0d871fac7f6cdd9feafb375f97181f9155c265f13e44122424bd7adcaff10e3f2c2a4484d2e2ad1f4f2f174fc723681451c1a728c9aa324bdcb02300af57 SHA512 a35029993d9266f3529a9922daa606b0d56a332514545f8cfab2092a4c9db4fc7217223f3bd7dbe59e536de325ee9b4f0226d673c0f0ec5859cf2937e8a4a2d4
+DIST zerotier-1.4.6.tar.gz 13055818 BLAKE2B 46003d9c3ad09e30dbefaa441422ed4570bdbdfb99f2f24fb82246f9e970501d38d96c19dc9771a1d0d30bc49bd8be2b79ebd2e5c8bd85e88b738b29f0a1dcc3 SHA512 72f00602f67190d03ac0c8caa6b79e7f346b10745bdf772c68f77a3a940cdd718d05ec642bc862a6235aab9bd3bfefb0c57571f358ae55f38761f45500f0f189
diff --git a/net-misc/zerotier/files/zerotier-1.4.6-add-armv7a-support.patch b/net-misc/zerotier/files/zerotier-1.4.6-add-armv7a-support.patch
new file mode 100644
index 000000000000..802b1a873f58
--- /dev/null
+++ b/net-misc/zerotier/files/zerotier-1.4.6-add-armv7a-support.patch
@@ -0,0 +1,14 @@
+--- a/make-linux.mk 2019-09-05 11:02:16.000000000 -0700
++++ b/make-linux.mk 2019-09-27 21:01:21.000000000 -0700
+@@ -195,6 +195,11 @@
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+ ZT_USE_ARM32_NEON_ASM_CRYPTO=1
+ endif
++ifeq ($(CC_MACH),armv7a)
++ ZT_ARCHITECTURE=3
++ override DEFS+=-DZT_NO_TYPE_PUNNING
++ ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++endif
+ ifeq ($(CC_MACH),armv7l)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
diff --git a/net-misc/zerotier/files/zerotier-1.4.6-add-mk-ctlr-node-target.patch b/net-misc/zerotier/files/zerotier-1.4.6-add-mk-ctlr-node-target.patch
new file mode 100644
index 000000000000..0d19099865b7
--- /dev/null
+++ b/net-misc/zerotier/files/zerotier-1.4.6-add-mk-ctlr-node-target.patch
@@ -0,0 +1,27 @@
+diff --git a/make-linux.mk b/make-linux.mk
+index 9fd4f7b9..a7eb7f6a 100644
+--- a/make-linux.mk
++++ b/make-linux.mk
+@@ -45,6 +45,12 @@ endif
+ # Trying to use dynamically linked libhttp-parser causes tons of compatibility problems.
+ ONE_OBJS+=ext/http-parser/http_parser.o
+
++ifeq ($(ZT_CONTROLLER),1)
++ #LIBS+=-lpq -lrabbitmq
++ #DEFS+=-DZT_CONTROLLER_USE_LIBPQ -DZT_CONTROLLER
++ override DEFS+=-DZT_CONTROLLER
++endif
++
+ # Build with address sanitization library for advanced debugging (clang)
+ ifeq ($(ZT_SANITIZE),1)
+ DEFS+=-fsanitize=address -DASAN_OPTIONS=symbolize=1
+@@ -331,6 +337,9 @@ official: FORCE
+ docker: FORCE
+ docker build -f ext/installfiles/linux/zerotier-containerized/Dockerfile -t zerotier-containerized .
+
++controller-node: FORCE
++ make DEFS+="-DZT_CONTROLLER" one
++
+ central-controller: FORCE
+ make -j4 LDLIBS="-L/usr/pgsql-10/lib/ -lpq -Lext/librabbitmq/centos_x64/lib/ -lrabbitmq" CXXFLAGS="-I/usr/pgsql-10/include -I./ext/librabbitmq/centos_x64/include -fPIC" DEFS="-DZT_CONTROLLER_USE_LIBPQ -DZT_CONTROLLER" ZT_OFFICIAL=1 ZT_USE_X64_ASM_ED25519=1 one
+
diff --git a/net-misc/zerotier/files/zerotier-1.4.6-fixup-neon-support.patch b/net-misc/zerotier/files/zerotier-1.4.6-fixup-neon-support.patch
new file mode 100644
index 000000000000..a6ca7f7ca382
--- /dev/null
+++ b/net-misc/zerotier/files/zerotier-1.4.6-fixup-neon-support.patch
@@ -0,0 +1,96 @@
+--- a/make-linux.mk 2019-09-27 21:35:39.000000000 -0700
++++ b/make-linux.mk 2019-09-27 21:36:01.000000000 -0700
+@@ -118,6 +118,7 @@
+ # Determine system build architecture from compiler target
+ CC_MACH=$(shell $(CC) -dumpmachine | cut -d '-' -f 1)
+ ZT_ARCHITECTURE=999
++ZT_DISABLE_NEON?=
+ ifeq ($(CC_MACH),x86_64)
+ ZT_ARCHITECTURE=2
+ ZT_USE_X64_ASM_SALSA=1
+@@ -158,57 +159,57 @@
+ ifeq ($(CC_MACH),arm)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=0
+ endif
+ ifeq ($(CC_MACH),armel)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=1
+ endif
+ ifeq ($(CC_MACH),armhf)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=0
+ endif
+ ifeq ($(CC_MACH),armv6)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=1
+ endif
+ ifeq ($(CC_MACH),armv6l)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=1
+ endif
+ ifeq ($(CC_MACH),armv6zk)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=1
+ endif
+ ifeq ($(CC_MACH),armv6kz)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=1
+ endif
+ ifeq ($(CC_MACH),armv7)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=0
+ endif
+ ifeq ($(CC_MACH),armv7a)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=0
+ endif
+ ifeq ($(CC_MACH),armv7l)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=0
+ endif
+ ifeq ($(CC_MACH),armv7hl)
+ ZT_ARCHITECTURE=3
+ override DEFS+=-DZT_NO_TYPE_PUNNING
+- ZT_USE_ARM32_NEON_ASM_CRYPTO=1
++ ZT_DISABLE_NEON?=0
+ endif
+ ifeq ($(CC_MACH),arm64)
+ ZT_ARCHITECTURE=4
+@@ -268,10 +269,13 @@
+ override CFLAGS+=-march=armv5 -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
+ override CXXFLAGS+=-march=armv5 -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm
+ ZT_USE_ARM32_NEON_ASM_CRYPTO=0
+- else
+- override CFLAGS+=-march=armv5 -mno-unaligned-access -marm -fexceptions
+- override CXXFLAGS+=-march=armv5 -mno-unaligned-access -marm -fexceptions
++ endif
++ ifeq ($(ZT_DISABLE_NEON),1)
++ override CFLAGS+=-mno-unaligned-access -marm -fexceptions
++ override CXXFLAGS+=-mno-unaligned-access -marm -fexceptions
+ ZT_USE_ARM32_NEON_ASM_CRYPTO=0
++ else
++ ZT_USE_ARM32_NEON_ASM_CRYPTO=1
+ endif
+ endif
+
diff --git a/net-misc/zerotier/files/zerotier-1.4.6-respect-ldflags.patch b/net-misc/zerotier/files/zerotier-1.4.6-respect-ldflags.patch
new file mode 100644
index 000000000000..46e24fd7a928
--- /dev/null
+++ b/net-misc/zerotier/files/zerotier-1.4.6-respect-ldflags.patch
@@ -0,0 +1,11 @@
+--- a/make-linux.mk 2019-09-05 11:02:16.000000000 -0700
++++ b/make-linux.mk 2019-09-27 21:01:21.000000000 -0700
+@@ -77,7 +77,7 @@
+ override CFLAGS+=-Wall -Wno-deprecated -pthread $(INCLUDES) -DNDEBUG $(DEFS)
+ CXXFLAGS?=-O3 -fstack-protector -fPIE
+ override CXXFLAGS+=-Wall -Wno-deprecated -std=c++11 -pthread $(INCLUDES) -DNDEBUG $(DEFS)
+- LDFLAGS=-pie -Wl,-z,relro,-z,now
++ LDFLAGS?=-pie -Wl,-z,relro,-z,now
+ STRIP?=strip
+ STRIP+=--strip-all
+ endif
diff --git a/net-misc/zerotier/metadata.xml b/net-misc/zerotier/metadata.xml
index 9a0bb99004b4..1071ed3d5c62 100644
--- a/net-misc/zerotier/metadata.xml
+++ b/net-misc/zerotier/metadata.xml
@@ -13,4 +13,8 @@
<changelog>https://github.com/zerotier/ZeroTierOne/raw/master/RELEASE-NOTES.md</changelog>
<remote-id type="github">zerotier/ZeroTierOne</remote-id>
</upstream>
+<use>
+ <flag name="clang">Use Clang compiler instead of GCC</flag>
+ <flag name="neon">Enable ARM32 neon-salsa2012-asm code</flag>
+</use>
</pkgmetadata>
diff --git a/net-misc/zerotier/zerotier-1.4.6.ebuild b/net-misc/zerotier/zerotier-1.4.6.ebuild
new file mode 100644
index 000000000000..f2553f6fc19d
--- /dev/null
+++ b/net-misc/zerotier/zerotier-1.4.6.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic llvm systemd toolchain-funcs
+
+HOMEPAGE="https://www.zerotier.com/"
+DESCRIPTION="A software-based managed Ethernet switch for planet Earth"
+SRC_URI="https://github.com/zerotier/ZeroTierOne/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="clang neon"
+
+S="${WORKDIR}/ZeroTierOne-${PV}"
+
+RDEPEND="
+ dev-libs/json-glib
+ net-libs/libnatpmp
+ net-libs/miniupnpc:=
+ clang? ( >=sys-devel/clang-6:= )"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-respect-ldflags.patch"
+ "${FILESDIR}/${P}-add-armv7a-support.patch"
+ "${FILESDIR}/${P}-fixup-neon-support.patch" )
+
+DOCS=( README.md AUTHORS.md )
+
+LLVM_MAX_SLOT=9
+
+llvm_check_deps() {
+ if use clang ; then
+ if ! has_version --host-root "sys-devel/clang:${LLVM_SLOT}" ; then
+ ewarn "sys-devel/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..."
+ return 1
+ fi
+
+ if ! has_version --host-root "=sys-devel/lld-${LLVM_SLOT}*" ; then
+ ewarn "=sys-devel/lld-${LLVM_SLOT}* is missing! Cannot use LLVM slot ${LLVM_SLOT} ..."
+ return 1
+ fi
+
+ einfo "Will use LLVM slot ${LLVM_SLOT}!"
+ fi
+}
+
+pkg_setup() {
+ if use clang && ! tc-is-clang ; then
+ export CC=${CHOST}-clang
+ export CXX=${CHOST}-clang++
+ else
+ tc-export CXX CC
+ fi
+ use neon || export ZT_DISABLE_NEON=1
+}
+
+src_compile() {
+ append-ldflags -Wl,-z,noexecstack
+ emake CXX="${CXX}" STRIP=: one
+}
+
+src_test() {
+ emake selftest
+ ./zerotier-selftest || die
+}
+
+src_install() {
+ default
+ # remove pre-zipped man pages
+ rm "${ED}"/usr/share/man/{man1,man8}/* || die
+
+ newinitd "${FILESDIR}/${PN}".init "${PN}"
+ systemd_dounit "${FILESDIR}/${PN}".service
+ doman doc/zerotier-{cli.1,idtool.1,one.8}
+}