From acd1f24a3fa934da5ee05c84dfa3c0cdffb08a6e Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Mon, 25 Apr 2022 17:47:58 -0700 Subject: [PATCH] Add Western Digital apkg build scripts --- pkg/wd/Dockerfile | 9 +++ pkg/wd/build.sh | 13 ++++ pkg/wd/entrypoint.sh | 98 +++++++++++++++++++++++++++++++ pkg/wd/zerotier/apkg.rc | 21 +++++++ pkg/wd/zerotier/apkg.xml | 37 ++++++++++++ pkg/wd/zerotier/clean.sh | 7 +++ pkg/wd/zerotier/init.sh | 15 +++++ pkg/wd/zerotier/install.sh | 5 ++ pkg/wd/zerotier/preinst.sh | 1 + pkg/wd/zerotier/remove.sh | 10 ++++ pkg/wd/zerotier/start.sh | 3 + pkg/wd/zerotier/stop.sh | 3 + pkg/wd/zerotier/web/index.html | 58 ++++++++++++++++++ pkg/wd/zerotier/web/zerotier.png | Bin 0 -> 48062 bytes pkg/wd/zerotier/zerotier.png | Bin 0 -> 48062 bytes 15 files changed, 280 insertions(+) create mode 100644 pkg/wd/Dockerfile create mode 100755 pkg/wd/build.sh create mode 100755 pkg/wd/entrypoint.sh create mode 100644 pkg/wd/zerotier/apkg.rc create mode 100644 pkg/wd/zerotier/apkg.xml create mode 100755 pkg/wd/zerotier/clean.sh create mode 100755 pkg/wd/zerotier/init.sh create mode 100755 pkg/wd/zerotier/install.sh create mode 100755 pkg/wd/zerotier/preinst.sh create mode 100755 pkg/wd/zerotier/remove.sh create mode 100755 pkg/wd/zerotier/start.sh create mode 100755 pkg/wd/zerotier/stop.sh create mode 100644 pkg/wd/zerotier/web/index.html create mode 100644 pkg/wd/zerotier/web/zerotier.png create mode 100644 pkg/wd/zerotier/zerotier.png diff --git a/pkg/wd/Dockerfile b/pkg/wd/Dockerfile new file mode 100644 index 000000000..fd8b6774b --- /dev/null +++ b/pkg/wd/Dockerfile @@ -0,0 +1,9 @@ +# vim: ft=dockerfile + +FROM ubuntu:20.04 + +COPY mksapkg-OS5 /mksapkg-OS5 + +COPY entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] + diff --git a/pkg/wd/build.sh b/pkg/wd/build.sh new file mode 100755 index 000000000..36f81022f --- /dev/null +++ b/pkg/wd/build.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +build_packages() +{ + sudo docker run -v $(pwd):/zto ztwd +} + +build_dockerfile() +{ + sudo docker build -t ztwd . --load +} + +"$@" diff --git a/pkg/wd/entrypoint.sh b/pkg/wd/entrypoint.sh new file mode 100755 index 000000000..8e10c9ffe --- /dev/null +++ b/pkg/wd/entrypoint.sh @@ -0,0 +1,98 @@ +#!/bin/sh + +ZTO_VER=$(git describe --abbrev=0 --tags) +ZTO_COMMIT=$(git rev-parse HEAD) +ZTO_DESC=$(jq -r '.desc' ../config.json) + +generate_new_pkg_spec() +{ + cat > zerotier/apkg.rc <<- EOM +Package: zerotier +Section: Apps +Version: $ZTO_VER +Packager: ZeroTier, Inc. +Email: contact@zerotier.com +Homepage: http://www.zerotier.com +Description: $ZTO_DESC +AddonShowName: ZeroTier +Icon: zerotier.png +AddonIndexPage: index.html +AddonUsedPort: 9993 +InstDepend: +InstConflict: +StartDepend: +StartConflict: +CenterType:1 +UserControl:0 +MinFWVer: +MaxFWVer: +IndividualFlag: + +EOM +} + +pkg_x64() +{ + MKSAPKG=../mksapkg-OS5 + chmod a+x $MKSAPKG + BIN_SRC_DIR=.. + + pushd zerotier + + cp -f $BIN_SRC_DIR/zerotier-one bin/zerotier-one + $MKSAPKG -E -s -m WDMyCloudDL2100 + $MKSAPKG -E -s -m WDMyCloudDL4100 + $MKSAPKG -E -s -m MyCloudPR4100 + $MKSAPKG -E -s -m MyCloudPR2100 + + popd +} + +pkg_armhf() +{ + MKSAPKG=../mksapkg-OS5 + chmod a+x $MKSAPKG + BIN_SRC_DIR=.. + + pushd zerotier + cp -f $BIN_SRC_DIR/zerotier-one bin/zerotier-one + + # MyCloudEX2Ultra (Armada A385) + $MKSAPKG -E -s -m MyCloudEX2Ultra + # WDMyCloudEX4100 (Armada A385) + $MKSAPKG -E -s -m WDMyCloudEX4100 + # WDMyCloudEX2100 (Armada A385) + $MKSAPKG -E -s -m WDMyCloudEX2100 + # WDMyCloudEX4 (Armada A300) + $MKSAPKG -E -s -m WDMyCloudEX4 + # WDMyCloudEX2 (Armada A370) + $MKSAPKG -E -s -m WDMyCloudEX2 + # WDMyCloudMirrorGen2 (Armada A385) + $MKSAPKG -E -s -m WDMyCloudMirrorGen2 + # WDMyCloudMirror (Armada A370) + $MKSAPKG -E -s -m WDMyCloudMirror + # WDCloud (Armada A375 (2 cores, 1GHz each, armhf, ARMv7l, Cortex A9, vfp, neon)) + $MKSAPKG -E -s -m WDCloud + + popd +} + +normalize-filenames() +{ + for f in *'('*')'* + do + mv -i "$f" "${f/(*)/}" + done +} + +clean() +{ + rm -rf *.bin zerotier/apkg.sign +} + +generate_new_pkg_spec +pkg_x64 +pkg_armhf +normalize-filenames + +"$@" diff --git a/pkg/wd/zerotier/apkg.rc b/pkg/wd/zerotier/apkg.rc new file mode 100644 index 000000000..c01af66d1 --- /dev/null +++ b/pkg/wd/zerotier/apkg.rc @@ -0,0 +1,21 @@ +Package: zerotier +Section: Apps +Version: 1.8.8 +Packager: ZeroTier, Inc. +Email: contact@zerotier.com +Homepage: http://www.zerotier.com +Description: Securely connect any device, anywhere. +AddonShowName: ZeroTier +Icon: zerotier.png +AddonIndexPage: index.html +AddonUsedPort: 9993 +InstDepend: +InstConflict: +StartDepend: +StartConflict: +CenterType:1 +UserControl:0 +MinFWVer: +MaxFWVer: +IndividualFlag: + diff --git a/pkg/wd/zerotier/apkg.xml b/pkg/wd/zerotier/apkg.xml new file mode 100644 index 000000000..6ce296cc6 --- /dev/null +++ b/pkg/wd/zerotier/apkg.xml @@ -0,0 +1,37 @@ + + + + + 0 + 20 + 8 + 11 + 0 + 1 + 0 + zerotier + ZeroTier + 1 + 1.8.8 + 20220425 + + + + index.html + 9993 + 2 + ZeroTier, Inc. + contact@zerotier.com + http://www.zerotier.com + + + + + Securely connect any device, anywhere. + zerotier.png + + + + + + diff --git a/pkg/wd/zerotier/clean.sh b/pkg/wd/zerotier/clean.sh new file mode 100755 index 000000000..0b6a9b312 --- /dev/null +++ b/pkg/wd/zerotier/clean.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +rm -f /usr/bin/zerotier-one 2> /dev/null +rm -f /usr/sbin/zerotier-one 2> /dev/null + +rm -f /usr/bin/zerotier-cli 2> /dev/null +rm -f /usr/sbin/zerotier-cli 2> /dev/null diff --git a/pkg/wd/zerotier/init.sh b/pkg/wd/zerotier/init.sh new file mode 100755 index 000000000..e17d6c186 --- /dev/null +++ b/pkg/wd/zerotier/init.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +install_path=$1 + +ln -s $install_path/bin/zerotier-one /usr/sbin/zerotier-one +ln -s $install_path/bin/zerotier-one /usr/sbin/zerotier-cli +ln -s $install_path/bin/zerotier-one /usr/bin/zerotier-one +ln -s $install_path/bin/zerotier-one /usr/bin/zerotier-cli + +ln -s $install_path/ /var/lib/zerotier-one + +APKG_PATH=$(readlink -f $1) +WEBPATH="/var/www/apps/zerotier/" +mkdir -p $WEBPATH +ln -sf ${APKG_PATH}/web/* $WEBPATH \ No newline at end of file diff --git a/pkg/wd/zerotier/install.sh b/pkg/wd/zerotier/install.sh new file mode 100755 index 000000000..3ea51d268 --- /dev/null +++ b/pkg/wd/zerotier/install.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +path_src=$1 +path_des=$2 +mv $path_src $path_des diff --git a/pkg/wd/zerotier/preinst.sh b/pkg/wd/zerotier/preinst.sh new file mode 100755 index 000000000..1a2485251 --- /dev/null +++ b/pkg/wd/zerotier/preinst.sh @@ -0,0 +1 @@ +#!/bin/sh diff --git a/pkg/wd/zerotier/remove.sh b/pkg/wd/zerotier/remove.sh new file mode 100755 index 000000000..f1f97b41d --- /dev/null +++ b/pkg/wd/zerotier/remove.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +path=$1 +rm -f /usr/bin/zerotier-one 2> /dev/null +rm -f /usr/sbin/zerotier-one 2> /dev/null + +rm -f /usr/bin/zerotier-cli 2> /dev/null +rm -f /usr/sbin/zerotier-cli 2> /dev/null + +rm -rf $path diff --git a/pkg/wd/zerotier/start.sh b/pkg/wd/zerotier/start.sh new file mode 100755 index 000000000..71a62a839 --- /dev/null +++ b/pkg/wd/zerotier/start.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +/usr/bin/zerotier-one -d \ No newline at end of file diff --git a/pkg/wd/zerotier/stop.sh b/pkg/wd/zerotier/stop.sh new file mode 100755 index 000000000..a357a9ebf --- /dev/null +++ b/pkg/wd/zerotier/stop.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +killall zerotier-one diff --git a/pkg/wd/zerotier/web/index.html b/pkg/wd/zerotier/web/index.html new file mode 100644 index 000000000..d6b235c66 --- /dev/null +++ b/pkg/wd/zerotier/web/index.html @@ -0,0 +1,58 @@ +
+

ZeroTier

+
+ +

Welcome! ZeroTier is a peer-to-peer encrypted virtual networking solution that enables you to create Local Area Networks with static IP assignments for all of your devices. Access your NAS from anywhere in the world with a single IP and without the need of cloud services backhauling your traffic. To use the CLI:

+

Using the CLI via SSH:

+
    +
  1. Using your (sshd) account, enable SSH:

    +
      +
    • Settings -> Network -> SSH
    • +
    +
  2. +
  3. From a computer, open a terminal and SSH into your NAS device:

    +
      +
    • ssh sshd@your_nas_device_lan_ip
    • +
    +
  4. +
  5. Create account and network ID at my.zerotier.com

    +
      +
    • Note: This account is merely to administer your network. Your traffic is not handled by ZeroTier except in the case where a direct connection cannot be established. This is a courtesy service we offer for free that you can disable if you'd like. In any case, your traffic is fully encrypted end-to-end.
    • +
    +
  6. +
  7. Join your device to the network:

    +
      +
    • zerotier-cli join your_network_id
    • +
    +
  8. +
  9. Use my.zerotier.com to authorize your NAS device to join your network.

    +
  10. +
+

Help and support (in order of relevance)

+ + + + + diff --git a/pkg/wd/zerotier/web/zerotier.png b/pkg/wd/zerotier/web/zerotier.png new file mode 100644 index 0000000000000000000000000000000000000000..cd864eb99408e5f030f7c78a9357186b1d57aabd GIT binary patch literal 48062 zcmeAS@N?(olHy`uVBq!ia0y~yU(QWTKjuBBy{?hvLGUqJakmU0qqEPb}zQ?(1vl5e?Mg>EgP<{zP$6U-ROQ zu2a7sRxi%Jw&(k^v;VeUw|lQz`~GlIyvbvLx3(rf_nY4%M1;3f6T0AWQd-kD9X5C zB7=f(YKIF$hBd>Q^I=`C3=swlB5B@7EE#U-G8lMT#JFBV&*2Bohp{DjnN#sh3w(sdU6`)JjJy| z%o3RrXF2E{s+=il)M�PV*|l=S%D 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
  • rQxTLb89By+$m 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 ZkN^L7O|B+5=eHS1*wfX|Wt~$(695M@X;T0I literal 0 HcmV?d00001 diff --git a/pkg/wd/zerotier/zerotier.png b/pkg/wd/zerotier/zerotier.png new file mode 100644 index 0000000000000000000000000000000000000000..cd864eb99408e5f030f7c78a9357186b1d57aabd GIT binary patch literal 48062 zcmeAS@N?(olHy`uVBq!ia0y~yU(QWTKjuBBy{?hvLGUqJakmU0qqEPb}zQ?(1vl5e?Mg>EgP<{zP$6U-ROQ zu2a7sRxi%Jw&(k^v;VeUw|lQz`~GlIyvbvLx3(rf_nY4%M1;3f6T0AWQd-kD9X5C zB7=f(YKIF$hBd>Q^I=`C3=swlB5B@7EE#U-G8lMT#JFBV&*2Bohp{DjnN#sh3w(sdU6`)JjJy| z%o3RrXF2E{s+=il)M�PV*|l=S%D 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
  • rQxTLb89By+$m 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 ZkN^L7O|B+5=eHS1*wfX|Wt~$(695M@X;T0I literal 0 HcmV?d00001