123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #!/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
- }
- "$@"
|