mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-28 06:50:00 +00:00
betterized rpm spec and ci scripts
This commit is contained in:
parent
b329fb68a9
commit
127c19fecd
68
.drone.jsonnet
Normal file
68
.drone.jsonnet
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
|
||||||
|
local targets = [
|
||||||
|
//
|
||||||
|
// Render these into .drone.yaml by running "make drone"
|
||||||
|
//
|
||||||
|
{ "os": "linux", "name": "el9", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "el8", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "el7", "isas": [ "amd64", "ppc64le"], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "el6", "isas": [ "amd64" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "amzn2", "isas": [ "amd64", "arm64" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "fc37", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "fc36", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "fc35", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "jammy", "isas": [ "amd64", "arm64", "armv7", "riscv64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "focal", "isas": [ "amd64", "arm64", "armv7", "riscv64", "ppc64le" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "bionic", "isas": [ "amd64", "arm64", "386", "ppc64le", "s390x" ], "events": ["tag" ] },
|
||||||
|
{ "os": "linux", "name": "xenial", "isas": [ "amd64", "arm64", "386" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "sid", "isas": [ "386", "amd64", "arm64", "armv7", "riscv64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag" ] },
|
||||||
|
{ "os": "linux", "name": "bookworm", "isas": [ "amd64", "arm64", "armv7", "386", "mips64le", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "bullseye", "isas": [ "amd64", "arm64", "armv7", "386", "mips64le", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "buster", "isas": [ "amd64", "arm64", "armv7", "386", "mips64le", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||||
|
{ "os": "linux", "name": "stretch", "isas": [ "amd64", "arm64", "386" ], "events": [ "tag" ] },
|
||||||
|
// { "os": "windows", "name": "win2k19", "isas": [ "amd64" ], "events": ["push", "tag" ] }
|
||||||
|
];
|
||||||
|
|
||||||
|
local Build(platform, os, isa, events) = {
|
||||||
|
"kind": "pipeline",
|
||||||
|
"type": "docker",
|
||||||
|
"pull": "always",
|
||||||
|
"name": platform + " " + isa + " " + "build",
|
||||||
|
"clone": { "depth": 1 },
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"name": "build",
|
||||||
|
"image": "registry.sean.farm/honda-builder",
|
||||||
|
"commands": [ "./ci/scripts/build.sh " + platform + " " + isa + " " + "100.0.0+${DRONE_COMMIT_SHA:0:8}" + " " + "${DRONE_BUILD_EVENT}" ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "list",
|
||||||
|
"image": "registry.sean.farm/honda-builder",
|
||||||
|
"commands": [ "ls -la " + platform ]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "notify-mattermost",
|
||||||
|
"image": "registry.sean.farm/mattermost-notify",
|
||||||
|
"environment": {
|
||||||
|
"token": { "from_secret": "mattermost-token" },
|
||||||
|
"host": { "from_secret": "mattermost-host" },
|
||||||
|
"channel": { "from_secret": "mattermost-channel" },
|
||||||
|
"maxRetry": 3,
|
||||||
|
},
|
||||||
|
"when": { "status": [ "failure" ] }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"image_pull_secrets": [ "dockerconfigjson" ],
|
||||||
|
[ if isa == "arm64" || isa == "armv7" then "platform" ]: { os: os, arch: "arm64" },
|
||||||
|
"trigger": { "event": events }
|
||||||
|
};
|
||||||
|
|
||||||
|
// puttin on the bits
|
||||||
|
|
||||||
|
std.flattenArrays([
|
||||||
|
[
|
||||||
|
Build(p.name, p.os, isa, p.events)
|
||||||
|
for isa in p.isas
|
||||||
|
]
|
||||||
|
for p in targets
|
||||||
|
])
|
2844
.drone.yml
2844
.drone.yml
File diff suppressed because it is too large
Load Diff
4
Makefile
4
Makefile
@ -26,3 +26,7 @@ endif
|
|||||||
ifeq ($(OSTYPE),NetBSD)
|
ifeq ($(OSTYPE),NetBSD)
|
||||||
include make-netbsd.mk
|
include make-netbsd.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
drone:
|
||||||
|
@echo "rendering .drone.yaml from .drone.jsonnet"
|
||||||
|
drone jsonnet --format --stream
|
||||||
|
10
ci/Dockerfile.deb
Normal file
10
ci/Dockerfile.deb
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
ARG PLATFORM
|
||||||
|
FROM registry.sean.farm/${PLATFORM}-builder as stage
|
||||||
|
WORKDIR /work/build
|
||||||
|
COPY . .
|
||||||
|
RUN make debian
|
||||||
|
RUN ls -ls /work
|
||||||
|
|
||||||
|
FROM scratch AS export
|
||||||
|
ARG PLATFORM
|
||||||
|
COPY --from=stage /work/*.deb ./${PLATFORM}/
|
36
ci/Dockerfile.el6
Normal file
36
ci/Dockerfile.el6
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
ARG DOCKER_ARCH
|
||||||
|
FROM --platform=linux/${DOCKER_ARCH} alpine:edge AS builder
|
||||||
|
|
||||||
|
RUN apk update
|
||||||
|
RUN apk add curl
|
||||||
|
RUN apk add bash
|
||||||
|
RUN apk add file
|
||||||
|
RUN apk add rust
|
||||||
|
RUN apk add cargo
|
||||||
|
RUN apk add make
|
||||||
|
RUN apk add cmake
|
||||||
|
RUN apk add clang
|
||||||
|
RUN apk add openssl-dev
|
||||||
|
RUN apk add linux-headers
|
||||||
|
RUN apk add build-base
|
||||||
|
RUN apk add openssl-libs-static
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN ZT_STATIC=1 make one
|
||||||
|
RUN ls -la
|
||||||
|
|
||||||
|
ARG DOCKER_ARCH
|
||||||
|
FROM --platform=linux/${DOCKER_ARCH} centos:6 AS stage
|
||||||
|
WORKDIR /root/rpmbuild/BUILD
|
||||||
|
COPY . .
|
||||||
|
COPY --from=builder zerotier-one ./
|
||||||
|
RUN curl https://gist.githubusercontent.com/someara/b363002ba6e57b3c474dd027d4daef85/raw/4ac5534139752fc92fbe1a53599a390214f69615/el6%2520vault --output /etc/yum.repos.d/CentOS-Base.repo
|
||||||
|
RUN uname -a
|
||||||
|
RUN yum -y install make gcc rpm-build
|
||||||
|
RUN pwd
|
||||||
|
RUN ls -la
|
||||||
|
RUN make redhat
|
||||||
|
|
||||||
|
FROM scratch AS export
|
||||||
|
ARG PLATFORM
|
||||||
|
COPY --from=stage /root/rpmbuild/RPMS/*/*.rpm ./${PLATFORM}/
|
9
ci/Dockerfile.rpm
Normal file
9
ci/Dockerfile.rpm
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
ARG PLATFORM
|
||||||
|
FROM registry.sean.farm/${PLATFORM}-builder as stage
|
||||||
|
WORKDIR /root/rpmbuild/BUILD
|
||||||
|
COPY . .
|
||||||
|
RUN make redhat
|
||||||
|
|
||||||
|
FROM scratch AS export
|
||||||
|
ARG PLATFORM
|
||||||
|
COPY --from=stage /root/rpmbuild/RPMS/*/*.rpm ./${PLATFORM}/
|
@ -1,7 +0,0 @@
|
|||||||
FROM registry.sean.farm/sid-builder as stage
|
|
||||||
COPY . .
|
|
||||||
RUN /usr/bin/make -j 8
|
|
||||||
|
|
||||||
FROM scratch AS export
|
|
||||||
COPY --from=stage /zerotier-one .
|
|
||||||
COPY --from=stage /zerotier-cli .
|
|
@ -2,28 +2,115 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
export GOOS=$1
|
export PLATFORM=$1
|
||||||
export GOARCH=$2
|
export ZT_ISA=$2
|
||||||
export VERSION=$3
|
export VERSION=$3
|
||||||
export DOCKER_BUILDKIT=1
|
export EVENT=$4
|
||||||
|
|
||||||
echo "nproc: $(nproc)"
|
case $PLATFORM in
|
||||||
|
el*|fc*|amzn*)
|
||||||
case $GOARCH in
|
export PKGFMT=rpm
|
||||||
armv5)
|
|
||||||
export ARCH=arm/v5
|
|
||||||
;;
|
|
||||||
armv7)
|
|
||||||
export ARCH=arm/v7
|
|
||||||
;;
|
|
||||||
arm64)
|
|
||||||
export ARCH=arm64/v8
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
export ARCH=$GOARCH
|
export PKGFMT=deb
|
||||||
|
esac
|
||||||
|
|
||||||
|
# OSX
|
||||||
|
# x86_64-apple-darwin
|
||||||
|
# aarch64-apple-darwin
|
||||||
|
|
||||||
|
# Windows
|
||||||
|
# x86_64-pc-windows-msvc
|
||||||
|
# i686-pc-windows-msvc
|
||||||
|
# aarch64-pc-windows-msvc
|
||||||
|
|
||||||
|
# Linux
|
||||||
|
# i686-unknown-linux-gnu
|
||||||
|
# x86_64-unknown-linux-gnu
|
||||||
|
# arm-unknown-linux-gnueabi ?
|
||||||
|
# arm-unknown-linux-gnueabihf ?
|
||||||
|
# armv7-unknown-linux-gnueabihf
|
||||||
|
#
|
||||||
|
|
||||||
|
case $ZT_ISA in
|
||||||
|
386)
|
||||||
|
export DOCKER_ARCH=386
|
||||||
|
export RUST_TRIPLET=i686-unknown-linux-gnu
|
||||||
|
;;
|
||||||
|
amd64)
|
||||||
|
export DOCKER_ARCH=amd64
|
||||||
|
export RUST_TRIPLET=x86_64-unknown-linux-gnu
|
||||||
|
;;
|
||||||
|
armv6)
|
||||||
|
export DOCKER_ARCH=arm/v6
|
||||||
|
export RUST_TRIPLET=arm-unknown-linux-gnueabi
|
||||||
|
;;
|
||||||
|
armv7)
|
||||||
|
export DOCKER_ARCH=arm/v7
|
||||||
|
export RUST_TRIPLET=arm-unknown-linux-gnueabihf
|
||||||
|
;;
|
||||||
|
arm64)
|
||||||
|
export DOCKER_ARCH=arm64/v8
|
||||||
|
export RUST_TRIPLET=aarch64-unknown-linux-gnu
|
||||||
|
;;
|
||||||
|
riscv64)
|
||||||
|
export DOCKER_ARCH=riscv64
|
||||||
|
export RUST_TRIPLET=riscv64gc-unknown-linux-gnu
|
||||||
|
;;
|
||||||
|
ppc64le)
|
||||||
|
export DOCKER_ARCH=ppc64le
|
||||||
|
export RUST_TRIPLET=powerpc64le-unknown-linux-gnu
|
||||||
|
;;
|
||||||
|
mips64le)
|
||||||
|
export DOCKER_ARCH=mips64le
|
||||||
|
export RUST_TRIPLET=mips64el-unknown-linux-gnuabi64
|
||||||
|
;;
|
||||||
|
s390x)
|
||||||
|
export DOCKER_ARCH=s390x
|
||||||
|
export RUST_TRIPLET=s390x-unknown-linux-gnu
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "ERROR: could not determine architecture settings. PLEASE FIX ME"
|
||||||
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
if [ -f "ci/Dockerfile.${PLATFORM}" ]; then
|
||||||
|
export DOCKERFILE="ci/Dockerfile.${PLATFORM}"
|
||||||
|
else
|
||||||
|
export DOCKERFILE="ci/Dockerfile.${PKGFMT}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "#~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
echo "$0 variables:"
|
||||||
|
echo "nproc: $(nproc)"
|
||||||
|
echo "ZT_ISA: ${ZT_ISA}"
|
||||||
|
echo "DOCKER_ARCH: ${DOCKER_ARCH}"
|
||||||
|
echo "RUST_TRIPLET: ${RUST_TRIPLET}"
|
||||||
|
echo "VERSION: ${VERSION}"
|
||||||
|
echo "EVENT: ${EVENT}"
|
||||||
|
echo "PKGFMT: ${PKGFMT}"
|
||||||
|
echo "PWD: ${PWD}"
|
||||||
|
echo "DOCKERFILE: ${DOCKERFILE}"
|
||||||
|
echo "#~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
|
||||||
|
if [ ${EVENT} == "push" ]; then
|
||||||
|
make munge_rpm zerotier-one.spec VERSION=${VERSION}
|
||||||
|
make munge_deb debian/changelog VERSION=${VERSION}
|
||||||
|
fi
|
||||||
|
|
||||||
|
export DOCKER_BUILDKIT=1
|
||||||
docker run --privileged --rm tonistiigi/binfmt --install all
|
docker run --privileged --rm tonistiigi/binfmt --install all
|
||||||
docker pull registry.sean.farm/sid-builder
|
|
||||||
docker buildx build --platform ${GOOS}/${ARCH} -f ci/Dockerfile.sid --target export -t test . --output out/${GOOS}/${GOARCH}
|
# docker pull --platform linux/${DOCKER_ARCH} registry.sean.farm/${PLATFORM}-builder
|
||||||
|
|
||||||
|
docker buildx build \
|
||||||
|
--build-arg PLATFORM="${PLATFORM}" \
|
||||||
|
--build-arg RUST_TRIPLET="${RUST_TRIPLET}" \
|
||||||
|
--build-arg DOCKER_ARCH="${DOCKER_ARCH}" \
|
||||||
|
--platform linux/${DOCKER_ARCH} \
|
||||||
|
-f ${DOCKERFILE} \
|
||||||
|
-t build \
|
||||||
|
. \
|
||||||
|
--output type=local,dest=. \
|
||||||
|
--target export
|
||||||
|
37
ci/scripts/munge_debian_changelog.sh
Executable file
37
ci/scripts/munge_debian_changelog.sh
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
export FILE=$1
|
||||||
|
export VERSION=$2
|
||||||
|
export NAME=$3
|
||||||
|
export MESSAGE=$4
|
||||||
|
export DATE=$(date "+%a, %d %b %Y %T %z")
|
||||||
|
# export DATE=$(date "+%a %b %d %Y")
|
||||||
|
|
||||||
|
set +e
|
||||||
|
grep --version | grep BSD &> /dev/null
|
||||||
|
if [ $? == 0 ]; then BSDGREP=true ; else BSDGREP=false ; fi
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# echo "#~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
# echo "$0 variables:"
|
||||||
|
# echo "VERSION: ${VERSION}"
|
||||||
|
# echo "NAME: ${NAME}"
|
||||||
|
# echo "MESSAGE: ${MESSAGE}"
|
||||||
|
# echo "DATE: ${DATE}"
|
||||||
|
# echo "BSDGREP: ${BSDGREP}"
|
||||||
|
# echo "#~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
# echo
|
||||||
|
|
||||||
|
if $BSDGREP ; then
|
||||||
|
sed -i '' s/^Version:.*/"Version: ${VERSION}"/ ${FILE}
|
||||||
|
else
|
||||||
|
sed -i s/^Version:.*/"Version: ${VERSION}"/ ${FILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
awk -v version=${VERSION} -v date=${DATE} -v name=${NAME} -v message=${MESSAGE} \
|
||||||
|
'BEGIN{print "zerotier-one (" version ") unstable; urgency=medium\n\n * " message "\n\n -- " name " " date "\n" }{ print }' \
|
||||||
|
${FILE} > ${FILE}.new
|
||||||
|
|
||||||
|
mv ${FILE}.new ${FILE}
|
36
ci/scripts/munge_rpm_spec.sh
Executable file
36
ci/scripts/munge_rpm_spec.sh
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
|
export FILE=$1
|
||||||
|
export VERSION=$2
|
||||||
|
export NAME=$3
|
||||||
|
export MESSAGE=$4
|
||||||
|
export DATE=$(date "+%a %b %d %Y")
|
||||||
|
|
||||||
|
set +e
|
||||||
|
grep --version | grep BSD &> /dev/null
|
||||||
|
if [ $? == 0 ]; then BSDGREP=true ; else BSDGREP=false ; fi
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# echo "#~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
# echo "$0 variables:"
|
||||||
|
# echo "VERSION: ${VERSION}"
|
||||||
|
# echo "NAME: ${NAME}"
|
||||||
|
# echo "MESSAGE: ${MESSAGE}"
|
||||||
|
# echo "DATE: ${DATE}"
|
||||||
|
# echo "BSDGREP: ${BSDGREP}"
|
||||||
|
# echo "#~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
# echo
|
||||||
|
|
||||||
|
if $BSDGREP ; then
|
||||||
|
sed -i '' s/^Version:.*/"Version: ${VERSION}"/ ${FILE}
|
||||||
|
else
|
||||||
|
sed -i s/^Version:.*/"Version: ${VERSION}"/ ${FILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
awk -v version=${VERSION} -v date=${DATE} -v name=${NAME} -v message=${MESSAGE} \
|
||||||
|
'FNR==NR{ if (/%changelog/) p=NR; next} 1; FNR==p{ print "* " date " " name " - " version "\n- " message "\n" }' \
|
||||||
|
${FILE} ${FILE} > ${FILE}.new
|
||||||
|
|
||||||
|
mv ${FILE}.new ${FILE}
|
@ -31,7 +31,7 @@ ifeq ($(MINIUPNPC_IS_NEW_ENOUGH),1)
|
|||||||
override DEFS+=-DZT_USE_SYSTEM_MINIUPNPC
|
override DEFS+=-DZT_USE_SYSTEM_MINIUPNPC
|
||||||
LDLIBS+=-lminiupnpc
|
LDLIBS+=-lminiupnpc
|
||||||
else
|
else
|
||||||
override DEFS+=-DMINIUPNP_STATICLIB -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DOS_STRING=\"Linux\" -DMINIUPNPC_VERSION_STRING=\"2.0\" -DUPNP_VERSION_STRING=\"UPnP/1.1\" -DENABLE_STRNATPMPERR
|
override DEFS+=-DMINIUPNP_STATICLIB -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DOS_STRING="\"Linux\"" -DMINIUPNPC_VERSION_STRING="\"2.0\"" -DUPNP_VERSION_STRING="\"UPnP/1.1\"" -DENABLE_STRNATPMPERR
|
||||||
ONE_OBJS+=ext/miniupnpc/connecthostport.o ext/miniupnpc/igd_desc_parse.o ext/miniupnpc/minisoap.o ext/miniupnpc/minissdpc.o ext/miniupnpc/miniupnpc.o ext/miniupnpc/miniwget.o ext/miniupnpc/minixml.o ext/miniupnpc/portlistingparse.o ext/miniupnpc/receivedata.o ext/miniupnpc/upnpcommands.o ext/miniupnpc/upnpdev.o ext/miniupnpc/upnperrors.o ext/miniupnpc/upnpreplyparse.o
|
ONE_OBJS+=ext/miniupnpc/connecthostport.o ext/miniupnpc/igd_desc_parse.o ext/miniupnpc/minisoap.o ext/miniupnpc/minissdpc.o ext/miniupnpc/miniupnpc.o ext/miniupnpc/miniwget.o ext/miniupnpc/minixml.o ext/miniupnpc/portlistingparse.o ext/miniupnpc/receivedata.o ext/miniupnpc/upnpcommands.o ext/miniupnpc/upnpdev.o ext/miniupnpc/upnperrors.o ext/miniupnpc/upnpreplyparse.o
|
||||||
endif
|
endif
|
||||||
ifeq ($(wildcard /usr/include/natpmp.h),)
|
ifeq ($(wildcard /usr/include/natpmp.h),)
|
||||||
@ -66,9 +66,9 @@ ifeq ($(ZT_DEBUG),1)
|
|||||||
# C25519 in particular is almost UNUSABLE in -O0 even on a 3ghz box!
|
# C25519 in particular is almost UNUSABLE in -O0 even on a 3ghz box!
|
||||||
node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CXXFLAGS=-Wall -O2 -g -pthread $(INCLUDES) $(DEFS)
|
node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CXXFLAGS=-Wall -O2 -g -pthread $(INCLUDES) $(DEFS)
|
||||||
else
|
else
|
||||||
CFLAGS?=-O3 -fstack-protector -fPIE
|
CFLAGS?=-O3 -fstack-protector
|
||||||
override CFLAGS+=-Wall -Wno-deprecated -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
override CFLAGS+=-Wall -Wno-deprecated -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
||||||
CXXFLAGS?=-O3 -fstack-protector -fPIE
|
CXXFLAGS?=-O3 -fstack-protector
|
||||||
override CXXFLAGS+=-Wall -Wno-deprecated -std=c++11 -pthread $(INCLUDES) -DNDEBUG $(DEFS)
|
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
|
||||||
RUSTFLAGS=--release
|
RUSTFLAGS=--release
|
||||||
@ -84,8 +84,6 @@ ifeq ($(ZT_UBIQUITI), 1)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ZT_SYNOLOGY), 1)
|
ifeq ($(ZT_SYNOLOGY), 1)
|
||||||
override CFLAGS+=-fPIC
|
|
||||||
override CXXFLAGS+=-fPIC
|
|
||||||
override DEFS+=-D__SYNOLOGY__
|
override DEFS+=-D__SYNOLOGY__
|
||||||
ZT_EMBEDDED=1
|
ZT_EMBEDDED=1
|
||||||
endif
|
endif
|
||||||
@ -336,12 +334,20 @@ ifeq ($(ZT_USE_ARM32_NEON_ASM_CRYPTO),1)
|
|||||||
override CORE_OBJS+=ext/arm32-neon-salsa2012-asm/salsa2012.o
|
override CORE_OBJS+=ext/arm32-neon-salsa2012-asm/salsa2012.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# Position Independence
|
||||||
|
override CFLAGS+=-fPIC -fPIE
|
||||||
|
override CXXFLAGS+=-fPIC -fPIE
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: one
|
all: one
|
||||||
|
|
||||||
.PHONY: one
|
.PHONY: one
|
||||||
one: zerotier-one zerotier-idtool zerotier-cli
|
one: zerotier-one zerotier-idtool zerotier-cli
|
||||||
|
|
||||||
|
from_builder:
|
||||||
|
ln -sf zerotier-one zerotier-idtool
|
||||||
|
ln -sf zerotier-one zerotier-cli
|
||||||
|
|
||||||
zerotier-one: $(CORE_OBJS) $(ONE_OBJS) one.o
|
zerotier-one: $(CORE_OBJS) $(ONE_OBJS) one.o
|
||||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-one $(CORE_OBJS) $(ONE_OBJS) one.o $(LDLIBS)
|
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o zerotier-one $(CORE_OBJS) $(ONE_OBJS) one.o $(LDLIBS)
|
||||||
|
|
||||||
@ -452,6 +458,20 @@ uninstall: FORCE
|
|||||||
|
|
||||||
# These are just for convenience for building Linux packages
|
# These are just for convenience for building Linux packages
|
||||||
|
|
||||||
|
echo_flags:
|
||||||
|
@echo "=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~"
|
||||||
|
@echo "echo_flags :: CC=$(CC)"
|
||||||
|
@echo "echo_flags :: CXX=$(CXX)"
|
||||||
|
@echo "echo_flags :: CFLAGS=$(CFLAGS)"
|
||||||
|
@echo "echo_flags :: CXXFLAGS=$(CXXFLAGS)"
|
||||||
|
@echo "echo_flags :: LDFLAGS=$(LDFLAGS)"
|
||||||
|
@echo "echo_flags :: RUSTFLAGS=$(RUSTFLAGS)"
|
||||||
|
@echo "=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~"
|
||||||
|
|
||||||
|
# debian: echo_flags
|
||||||
|
# @echo "building deb package"
|
||||||
|
# debuild --no-lintian -b -uc -us
|
||||||
|
|
||||||
debian: FORCE
|
debian: FORCE
|
||||||
debuild --no-lintian -I -i -us -uc -nc -b
|
debuild --no-lintian -I -i -us -uc -nc -b
|
||||||
|
|
||||||
@ -496,4 +516,14 @@ synology-pkg: FORCE
|
|||||||
synology-docker: FORCE
|
synology-docker: FORCE
|
||||||
cd synology/dsm7-docker/; ./build.sh build
|
cd synology/dsm7-docker/; ./build.sh build
|
||||||
|
|
||||||
|
munge_rpm:
|
||||||
|
@:$(call check_defined, VERSION)
|
||||||
|
@echo "Updating rpm spec to $(VERSION)"
|
||||||
|
ci/scripts/munge_rpm_spec.sh zerotier-one.spec $(VERSION) "Adam Ierymenko <adam.ierymenko@zerotier.com>" "see https://github.com/zerotier/ZeroTierOne for release notes"
|
||||||
|
|
||||||
|
munge_deb:
|
||||||
|
@:$(call check_defined, VERSION)
|
||||||
|
@echo "Updating debian/changelog to $(VERSION)"
|
||||||
|
ci/scripts/munge_debian_changelog.sh debian/changelog $(VERSION) "Adam Ierymenko <adam.ierymenko@zerotier.com>" "see https://github.com/zerotier/ZeroTierOne for release notes"
|
||||||
|
|
||||||
FORCE:
|
FORCE:
|
||||||
|
@ -6,28 +6,56 @@ Summary: ZeroTier network virtualization service
|
|||||||
License: ZeroTier BSL 1.1
|
License: ZeroTier BSL 1.1
|
||||||
URL: https://www.zerotier.com
|
URL: https://www.zerotier.com
|
||||||
|
|
||||||
%if 0%{?rhel} >= 7
|
# Fedora
|
||||||
BuildRequires: systemd
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if 0%{?fedora} >= 21
|
%if "%{?dist}" == ".fc35"
|
||||||
BuildRequires: systemd
|
BuildRequires: systemd clang openssl openssl-devel
|
||||||
%endif
|
Requires: systemd openssl
|
||||||
|
|
||||||
Requires: iproute libstdc++ openssl
|
|
||||||
AutoReqProv: no
|
|
||||||
|
|
||||||
%if 0%{?rhel} >= 7
|
|
||||||
Requires: systemd
|
|
||||||
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if 0%{?rhel} <= 6
|
%if "%{?dist}" == ".fc36"
|
||||||
Requires: chkconfig
|
BuildRequires: systemd clang openssl1.1 openssl1.1-devel
|
||||||
|
Requires: systemd openssl1.1
|
||||||
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if 0%{?fedora} >= 21
|
%if "%{?dist}" == ".fc37"
|
||||||
Requires: systemd
|
BuildRequires: systemd clang openssl1.1 openssl1.1-devel
|
||||||
|
Requires: systemd openssl1.1
|
||||||
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# RHEL
|
||||||
|
|
||||||
|
%if "%{?dist}" == ".el6"
|
||||||
|
Requires: chkconfig
|
||||||
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "%{?dist}" == ".el7"
|
||||||
|
BuildRequires: systemd openssl11-devel
|
||||||
|
Requires: systemd openssl11
|
||||||
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "%{?dist}" == ".el8"
|
||||||
|
BuildRequires: systemd openssl-devel
|
||||||
|
Requires: systemd openssl
|
||||||
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "%{?dist}" == ".el9"
|
||||||
|
BuildRequires: systemd openssl-devel
|
||||||
|
Requires: systemd openssl
|
||||||
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Amazon
|
||||||
|
|
||||||
|
%if "%{?dist}" == ".amzn2"
|
||||||
|
BuildRequires: systemd openssl-devel
|
||||||
|
Requires: systemd openssl
|
||||||
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -44,123 +72,60 @@ like conventional VPNs or VLANs. It can run on native systems, VMs, or
|
|||||||
containers (Docker, OpenVZ, etc.).
|
containers (Docker, OpenVZ, etc.).
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%if 0%{?rhel} >= 7
|
# ls -la
|
||||||
rm -rf *
|
# %if 0%{?rhel} && 0%{?rhel} >= 7
|
||||||
ln -s %{getenv:PWD} %{name}-%{version}
|
# rm -rf *
|
||||||
tar --exclude=%{name}-%{version}/.git --exclude=%{name}-%{version}/%{name}-%{version} -czf %{_sourcedir}/%{name}-%{version}.tar.gz %{name}-%{version}/*
|
# ln -s %{getenv:PWD} %{name}-%{version}
|
||||||
rm -f %{name}-%{version}
|
# tar --exclude=%{name}-%{version}/.git --exclude=%{name}-%{version}/%{name}-%{version} -czf %{_sourcedir}/%{name}-%{version}.tar.gz %{name}-%{version}/*
|
||||||
cp -a %{getenv:PWD}/* .
|
# rm -f %{name}-%{version}
|
||||||
%endif
|
# cp -a %{getenv:PWD}/* .
|
||||||
|
# %endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
#%if 0%{?rhel} <= 7
|
%if "%{?dist}" == ".el6"
|
||||||
#make CFLAGS="`echo %{optflags} | sed s/stack-protector-strong/stack-protector/`" CXXFLAGS="`echo %{optflags} | sed s/stack-protector-strong/stack-protector/`" ZT_USE_MINIUPNPC=1 %{?_smp_mflags} one manpages selftest
|
make RUST_BACKTRACE=full ZT_USE_MINIUPNPC=1 %{?_smp_mflags} from_builder
|
||||||
#%else
|
%else
|
||||||
%if 0%{?rhel} >= 7
|
make RUST_BACKTRACE=full ZT_USE_MINIUPNPC=1 %{?_smp_mflags} one
|
||||||
make ZT_USE_MINIUPNPC=1 %{?_smp_mflags} one
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%pre
|
%pre
|
||||||
%if 0%{?rhel} >= 7
|
|
||||||
/usr/bin/getent passwd zerotier-one || /usr/sbin/useradd -r -d /var/lib/zerotier-one -s /sbin/nologin zerotier-one
|
/usr/bin/getent passwd zerotier-one || /usr/sbin/useradd -r -d /var/lib/zerotier-one -s /sbin/nologin zerotier-one
|
||||||
%endif
|
|
||||||
%if 0%{?fedora} >= 21
|
|
||||||
/usr/bin/getent passwd zerotier-one || /usr/sbin/useradd -r -d /var/lib/zerotier-one -s /sbin/nologin zerotier-one
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
# rm -rf $RPM_BUILD_ROOT
|
||||||
%if 0%{?rhel} < 7
|
|
||||||
pushd %{getenv:PWD}
|
|
||||||
%endif
|
|
||||||
make install DESTDIR=$RPM_BUILD_ROOT
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
%if 0%{?rhel} < 7
|
|
||||||
popd
|
|
||||||
%endif
|
|
||||||
%if 0%{?rhel} >= 7
|
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
||||||
cp %{getenv:PWD}/debian/zerotier-one.service $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
|
cp %{getenv:PWD}/debian/zerotier-one.service $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
|
||||||
%endif
|
|
||||||
%if 0%{?fedora} >= 21
|
%if 0%{?rhel} && 0%{?rhel} <= 6
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
mkdir -p $RPM_BUILD_ROOT/etc/init.d/
|
||||||
cp ${getenv:PWD}/debian/zerotier-one.service $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
|
|
||||||
%endif
|
|
||||||
%if 0%{?rhel} <= 6
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
|
||||||
cp %{getenv:PWD}/ext/installfiles/linux/zerotier-one.init.rhel6 $RPM_BUILD_ROOT/etc/init.d/zerotier-one
|
cp %{getenv:PWD}/ext/installfiles/linux/zerotier-one.init.rhel6 $RPM_BUILD_ROOT/etc/init.d/zerotier-one
|
||||||
chmod 0755 $RPM_BUILD_ROOT/etc/init.d/zerotier-one
|
chmod 700 $RPM_BUILD_ROOT/etc/init.d/${name}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%{_sbindir}/*
|
%{_sbindir}/*
|
||||||
%{_mandir}/*
|
%{_mandir}/*
|
||||||
%{_localstatedir}/*
|
%{_localstatedir}/*
|
||||||
%if 0%{?rhel} >= 7
|
|
||||||
%{_unitdir}/%{name}.service
|
%if 0%{?rhel} && 0%{?rhel} <= 6
|
||||||
%endif
|
|
||||||
%if 0%{?fedora} >= 21
|
|
||||||
%{_unitdir}/%{name}.service
|
|
||||||
%endif
|
|
||||||
%if 0%{?rhel} <= 6
|
|
||||||
/etc/init.d/zerotier-one
|
/etc/init.d/zerotier-one
|
||||||
|
%else
|
||||||
|
%{_unitdir}/%{name}.service
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%post
|
%post
|
||||||
%if 0%{?rhel} >= 7
|
%if ! 0%{?rhel} && 0%{?rhel} <= 6
|
||||||
%systemd_post zerotier-one.service
|
%systemd_post zerotier-one.service
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?fedora} >= 21
|
|
||||||
%systemd_post zerotier-one.service
|
|
||||||
%endif
|
|
||||||
%if 0%{?rhel} <= 6
|
|
||||||
case "$1" in
|
|
||||||
1)
|
|
||||||
chkconfig --add zerotier-one
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
chkconfig --del zerotier-one
|
|
||||||
chkconfig --add zerotier-one
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [ -x /usr/bin/checkmodule -a -x /usr/bin/semodule_package -a -x /usr/sbin/semodule ]; then
|
|
||||||
rm -f /var/lib/zerotier-one/zerotier-one.mod
|
|
||||||
/usr/bin/checkmodule -M -m -o /var/lib/zerotier-one/zerotier-one.mod /var/lib/zerotier-one/zerotier-one.te
|
|
||||||
if [ -f /var/lib/zerotier-one/zerotier-one.pp ]; then
|
|
||||||
rm -f /var/lib/zerotier-one/zerotier-one.pp
|
|
||||||
/usr/bin/semodule_package -o /var/lib/zerotier-one/zerotier-one.pp -m /var/lib/zerotier-one/zerotier-one.mod
|
|
||||||
/usr/sbin/semodule -u /var/lib/zerotier-one/zerotier-one.pp
|
|
||||||
else
|
|
||||||
/usr/bin/semodule_package -o /var/lib/zerotier-one/zerotier-one.pp -m /var/lib/zerotier-one/zerotier-one.mod
|
|
||||||
/usr/sbin/semodule -i /var/lib/zerotier-one/zerotier-one.pp
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
%if 0%{?rhel} >= 7
|
%if ! 0%{?rhel} && 0%{?rhel} <= 6
|
||||||
%systemd_preun zerotier-one.service
|
%systemd_preun zerotier-one.service
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?fedora} >= 21
|
|
||||||
%systemd_preun zerotier-one.service
|
|
||||||
%endif
|
|
||||||
%if 0%{?rhel} <= 6
|
|
||||||
case "$1" in
|
|
||||||
0)
|
|
||||||
service zerotier-one stop
|
|
||||||
chkconfig --del zerotier-one
|
|
||||||
;;
|
|
||||||
1)
|
|
||||||
# This is an upgrade.
|
|
||||||
:
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
%if 0%{?rhel} >= 7
|
%if ! 0%{?rhel} && 0%{?rhel} <= 6
|
||||||
%systemd_postun_with_restart zerotier-one.service
|
|
||||||
%endif
|
|
||||||
%if 0%{?fedora} >= 21
|
|
||||||
%systemd_postun_with_restart zerotier-one.service
|
%systemd_postun_with_restart zerotier-one.service
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -168,16 +133,16 @@ esac
|
|||||||
* Tue May 10 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.10
|
* Tue May 10 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.10
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Fri Apr 25 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.9
|
* Mon Apr 25 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.9
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Fri Apr 11 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.8
|
* Mon Apr 11 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.8
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Fri Mar 21 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.7
|
* Mon Mar 21 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.7
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Fri Mar 07 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.6
|
* Mon Mar 07 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.6
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Fri Dec 17 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.5
|
* Fri Dec 17 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.5
|
||||||
@ -195,7 +160,7 @@ esac
|
|||||||
* Wed Oct 20 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.1
|
* Wed Oct 20 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.1
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Tue Sep 15 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.0
|
* Wed Sep 15 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.0
|
||||||
- see https://github.com/zerotier/ZeroTierOne for release notes
|
- see https://github.com/zerotier/ZeroTierOne for release notes
|
||||||
|
|
||||||
* Tue Apr 13 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.6.5
|
* Tue Apr 13 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.6.5
|
||||||
|
Loading…
x
Reference in New Issue
Block a user