mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-20 05:28:01 +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)
|
||||
include make-netbsd.mk
|
||||
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
|
||||
IFS=$'\n\t'
|
||||
|
||||
export GOOS=$1
|
||||
export GOARCH=$2
|
||||
export PLATFORM=$1
|
||||
export ZT_ISA=$2
|
||||
export VERSION=$3
|
||||
export DOCKER_BUILDKIT=1
|
||||
export EVENT=$4
|
||||
|
||||
echo "nproc: $(nproc)"
|
||||
|
||||
case $GOARCH in
|
||||
armv5)
|
||||
export ARCH=arm/v5
|
||||
;;
|
||||
armv7)
|
||||
export ARCH=arm/v7
|
||||
;;
|
||||
arm64)
|
||||
export ARCH=arm64/v8
|
||||
case $PLATFORM in
|
||||
el*|fc*|amzn*)
|
||||
export PKGFMT=rpm
|
||||
;;
|
||||
*)
|
||||
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
|
||||
|
||||
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 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
|
||||
LDLIBS+=-lminiupnpc
|
||||
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
|
||||
endif
|
||||
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!
|
||||
node/Salsa20.o node/SHA512.o node/C25519.o node/Poly1305.o: CXXFLAGS=-Wall -O2 -g -pthread $(INCLUDES) $(DEFS)
|
||||
else
|
||||
CFLAGS?=-O3 -fstack-protector -fPIE
|
||||
CFLAGS?=-O3 -fstack-protector
|
||||
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)
|
||||
LDFLAGS=-pie -Wl,-z,relro,-z,now
|
||||
RUSTFLAGS=--release
|
||||
@ -84,8 +84,6 @@ ifeq ($(ZT_UBIQUITI), 1)
|
||||
endif
|
||||
|
||||
ifeq ($(ZT_SYNOLOGY), 1)
|
||||
override CFLAGS+=-fPIC
|
||||
override CXXFLAGS+=-fPIC
|
||||
override DEFS+=-D__SYNOLOGY__
|
||||
ZT_EMBEDDED=1
|
||||
endif
|
||||
@ -336,12 +334,20 @@ ifeq ($(ZT_USE_ARM32_NEON_ASM_CRYPTO),1)
|
||||
override CORE_OBJS+=ext/arm32-neon-salsa2012-asm/salsa2012.o
|
||||
endif
|
||||
|
||||
# Position Independence
|
||||
override CFLAGS+=-fPIC -fPIE
|
||||
override CXXFLAGS+=-fPIC -fPIE
|
||||
|
||||
.PHONY: all
|
||||
all: one
|
||||
|
||||
.PHONY: one
|
||||
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
|
||||
$(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
|
||||
|
||||
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
|
||||
debuild --no-lintian -I -i -us -uc -nc -b
|
||||
|
||||
@ -496,4 +516,14 @@ synology-pkg: FORCE
|
||||
synology-docker: FORCE
|
||||
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:
|
||||
|
@ -6,28 +6,56 @@ Summary: ZeroTier network virtualization service
|
||||
License: ZeroTier BSL 1.1
|
||||
URL: https://www.zerotier.com
|
||||
|
||||
%if 0%{?rhel} >= 7
|
||||
BuildRequires: systemd
|
||||
%endif
|
||||
# Fedora
|
||||
|
||||
%if 0%{?fedora} >= 21
|
||||
BuildRequires: systemd
|
||||
%endif
|
||||
|
||||
Requires: iproute libstdc++ openssl
|
||||
AutoReqProv: no
|
||||
|
||||
%if 0%{?rhel} >= 7
|
||||
Requires: systemd
|
||||
%if "%{?dist}" == ".fc35"
|
||||
BuildRequires: systemd clang openssl openssl-devel
|
||||
Requires: systemd openssl
|
||||
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||
%endif
|
||||
|
||||
%if 0%{?rhel} <= 6
|
||||
Requires: chkconfig
|
||||
%if "%{?dist}" == ".fc36"
|
||||
BuildRequires: systemd clang openssl1.1 openssl1.1-devel
|
||||
Requires: systemd openssl1.1
|
||||
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} >= 21
|
||||
Requires: systemd
|
||||
%if "%{?dist}" == ".fc37"
|
||||
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
|
||||
%endif
|
||||
|
||||
@ -44,123 +72,60 @@ like conventional VPNs or VLANs. It can run on native systems, VMs, or
|
||||
containers (Docker, OpenVZ, etc.).
|
||||
|
||||
%prep
|
||||
%if 0%{?rhel} >= 7
|
||||
rm -rf *
|
||||
ln -s %{getenv:PWD} %{name}-%{version}
|
||||
tar --exclude=%{name}-%{version}/.git --exclude=%{name}-%{version}/%{name}-%{version} -czf %{_sourcedir}/%{name}-%{version}.tar.gz %{name}-%{version}/*
|
||||
rm -f %{name}-%{version}
|
||||
cp -a %{getenv:PWD}/* .
|
||||
%endif
|
||||
# ls -la
|
||||
# %if 0%{?rhel} && 0%{?rhel} >= 7
|
||||
# rm -rf *
|
||||
# ln -s %{getenv:PWD} %{name}-%{version}
|
||||
# tar --exclude=%{name}-%{version}/.git --exclude=%{name}-%{version}/%{name}-%{version} -czf %{_sourcedir}/%{name}-%{version}.tar.gz %{name}-%{version}/*
|
||||
# rm -f %{name}-%{version}
|
||||
# cp -a %{getenv:PWD}/* .
|
||||
# %endif
|
||||
|
||||
%build
|
||||
#%if 0%{?rhel} <= 7
|
||||
#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
|
||||
#%else
|
||||
%if 0%{?rhel} >= 7
|
||||
make ZT_USE_MINIUPNPC=1 %{?_smp_mflags} one
|
||||
%if "%{?dist}" == ".el6"
|
||||
make RUST_BACKTRACE=full ZT_USE_MINIUPNPC=1 %{?_smp_mflags} from_builder
|
||||
%else
|
||||
make RUST_BACKTRACE=full ZT_USE_MINIUPNPC=1 %{?_smp_mflags} one
|
||||
%endif
|
||||
|
||||
%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
|
||||
%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
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
%if 0%{?rhel} < 7
|
||||
pushd %{getenv:PWD}
|
||||
%endif
|
||||
# rm -rf $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}
|
||||
cp %{getenv:PWD}/debian/zerotier-one.service $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
|
||||
%endif
|
||||
%if 0%{?fedora} >= 21
|
||||
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
||||
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
|
||||
|
||||
%if 0%{?rhel} && 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
|
||||
chmod 0755 $RPM_BUILD_ROOT/etc/init.d/zerotier-one
|
||||
chmod 700 $RPM_BUILD_ROOT/etc/init.d/${name}
|
||||
%endif
|
||||
|
||||
%files
|
||||
%{_sbindir}/*
|
||||
%{_mandir}/*
|
||||
%{_localstatedir}/*
|
||||
%if 0%{?rhel} >= 7
|
||||
%{_unitdir}/%{name}.service
|
||||
%endif
|
||||
%if 0%{?fedora} >= 21
|
||||
%{_unitdir}/%{name}.service
|
||||
%endif
|
||||
%if 0%{?rhel} <= 6
|
||||
|
||||
%if 0%{?rhel} && 0%{?rhel} <= 6
|
||||
/etc/init.d/zerotier-one
|
||||
%else
|
||||
%{_unitdir}/%{name}.service
|
||||
%endif
|
||||
|
||||
%post
|
||||
%if 0%{?rhel} >= 7
|
||||
%if ! 0%{?rhel} && 0%{?rhel} <= 6
|
||||
%systemd_post zerotier-one.service
|
||||
%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
|
||||
%if 0%{?rhel} >= 7
|
||||
%if ! 0%{?rhel} && 0%{?rhel} <= 6
|
||||
%systemd_preun zerotier-one.service
|
||||
%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
|
||||
%if 0%{?rhel} >= 7
|
||||
%systemd_postun_with_restart zerotier-one.service
|
||||
%endif
|
||||
%if 0%{?fedora} >= 21
|
||||
%if ! 0%{?rhel} && 0%{?rhel} <= 6
|
||||
%systemd_postun_with_restart zerotier-one.service
|
||||
%endif
|
||||
|
||||
@ -168,16 +133,16 @@ esac
|
||||
* Tue May 10 2022 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.8.10
|
||||
- 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
|
||||
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
* 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
|
||||
|
||||
* 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
|
||||
- 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
|
||||
|
||||
* Tue Apr 13 2021 Adam Ierymenko <adam.ierymenko@zerotier.com> - 1.6.5
|
||||
|
Loading…
Reference in New Issue
Block a user