mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-29 09:18:52 +00:00
140 lines
3.1 KiB
Bash
Executable File
140 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ZTO_VER=$(jq -r '.version' synology/config.json)
|
|
PKG_REV=$(jq -r '.rev' synology/config.json)
|
|
echo $ZTO_VER-$PKG_REV
|
|
ZTO_DESC=$(jq -r '.desc' synology/config.json)
|
|
echo $ZTO_DESC
|
|
ZTO_EMAIL=$(jq -r '.email' synology/config.json)
|
|
echo $ZTO_EMAIL
|
|
read -p "Confirm details [y/n] ? " -n 1 -r; echo; if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Exiting."; exit; fi
|
|
|
|
build_environment()
|
|
{
|
|
git clone https://github.com/SynoCommunity/spksrc.git
|
|
sudo docker build --load -t zt-spksrc -f Dockerfile.spksrc .
|
|
}
|
|
|
|
generate_package_sources()
|
|
{
|
|
# Clean up any intermediate files
|
|
sudo make -C spksrc clean
|
|
rm -rf spksrc/distrib/*
|
|
rm -rf spksrc/packages/*
|
|
rm -rf spksrc/distrib/*source.tar.gz*
|
|
rm -rf spksrc/cross/*
|
|
mkdir -p spksrc/cross/zerotier
|
|
|
|
# Generate the SPK contents
|
|
|
|
# Copy package scripts to spksrc so they're accessible to container
|
|
rm -rf spksrc/dsm6-pkg
|
|
cp -rf dsm6-pkg spksrc/dsm6-pkg
|
|
|
|
TAB="$(printf '\t')"
|
|
|
|
cd ..
|
|
|
|
# Generate ZTO source tarball used by spksrc
|
|
git ls-files -z | xargs -0 tar -czvf source.tar.gz
|
|
mkdir -p synology/spksrc/distrib
|
|
cp source.tar.gz synology/spksrc/distrib/source.tar.gz
|
|
|
|
cat > synology/spksrc/cross/zerotier/digests <<- EOM
|
|
source.tar.gz SHA1 $(sha1sum source.tar.gz | awk '{print $1}')
|
|
source.tar.gz SHA256 $(sha256sum source.tar.gz | awk '{print $1}')
|
|
source.tar.gz MD5 $(md5sum source.tar.gz | awk '{print $1}')
|
|
EOM
|
|
|
|
cd -
|
|
|
|
|
|
STAGING_DIR='$(STAGING_DIR)'
|
|
RUN='$(RUN)'
|
|
|
|
cat > spksrc/cross/zerotier/Makefile <<- EOM
|
|
PKG_NAME = ZeroTierOne
|
|
PKG_VERS = $ZTO_VER
|
|
PKG_EXT = tar.gz
|
|
PKG_DIST_NAME = source.tar.gz
|
|
PKG_DIR =
|
|
PKG_DIST_SITE = http://localhost:8000
|
|
DEPENDS =
|
|
GNU_CONFIGURE = 1
|
|
CONFIGURE_ARGS = HAVE_CXX=yes
|
|
|
|
INSTALL_TARGET = zerotier_custom_install
|
|
CONFIGURE_TARGET = zerotier_custom_configure
|
|
|
|
ENV += ZT_SYNOLOGY=1
|
|
|
|
include ../../mk/spksrc.cross-cc.mk
|
|
|
|
.PHONY: zerotier_custom_install
|
|
zerotier_custom_install:
|
|
${TAB}$RUN mkdir -p $STAGING_DIR/bin
|
|
${TAB}$RUN cp zerotier-one $STAGING_DIR/bin/zerotier-one
|
|
EOM
|
|
|
|
cat > spksrc/cross/zerotier/PLIST <<- EOM
|
|
bin:bin/zerotier-one
|
|
EOM
|
|
|
|
#
|
|
# Set up (spk) directory contents
|
|
#
|
|
rm -rf spksrc/spk/*
|
|
mkdir -p spksrc/spk/zerotier
|
|
|
|
STAGING_DIR='$(STAGING_DIR)'
|
|
WORK_DIR='$(WORK_DIR)'
|
|
PRODUCT_DIR='$(PRODUCT_DIR)'
|
|
|
|
cat > spksrc/spk/zerotier/Makefile <<- EOM
|
|
SPK_NAME = zerotier
|
|
SPK_VERS = $ZTO_VER
|
|
SPK_REV = $PKG_REV
|
|
SPK_ICON = /spksrc/dsm6-pkg/PACKAGE_ICON_256.png
|
|
DEPENDS = cross/zerotier
|
|
MAINTAINER = ZeroTier, Inc.
|
|
DESCRIPTION = $ZTO_DESC
|
|
LICENSE = BUSL-1.1
|
|
CHANGELOG =
|
|
HOMEPAGE = https://my.zerotier.com
|
|
REPORT_URL = https://github.com/zerotier/ZeroTierOne/issues
|
|
DISPLAY_NAME = ZeroTier
|
|
PRODUCT_DIR = $WORK_DIR
|
|
|
|
STARTABLE = yes
|
|
REQUIRED_DSM = 6.2.4
|
|
|
|
ENV += ZT_SYNOLOGY=1
|
|
|
|
SSS_SCRIPT = ../../dsm6-pkg/start-stop-status.sh
|
|
|
|
PRE_STRIP_TARGET = zerotier_install
|
|
|
|
include ../../mk/spksrc.spk.mk
|
|
|
|
.PHONY: zerotier_install
|
|
zerotier_install:
|
|
${TAB}install -m 755 -d $STAGING_DIR/bin
|
|
${TAB}install -m 755 $PRODUCT_DIR/zerotier-one $STAGING_DIR/bin/zerotier-one
|
|
EOM
|
|
|
|
cat > spksrc/spk/zerotier/PLIST <<- EOM
|
|
bin:bin/zerotier-one
|
|
EOM
|
|
}
|
|
|
|
build()
|
|
{
|
|
pushd synology
|
|
build_environment
|
|
generate_package_sources
|
|
sudo docker run -it -v $(pwd)/spksrc:/spksrc zt-spksrc /bin/bash
|
|
popd
|
|
}
|
|
|
|
"$@"
|