mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-29 06:35:07 +03:00
1. added multipath protocol and schema suport
2. added SCTP protocol and schema support 3. added set of NAS models support (Asustor, ReadyNAS, Drobo, QNAP, WD, Synology, Terramaster) 4. moved to fc00::/7 private segment 5. added Windows, MacOS and Linux UI for peers edit and current status
This commit is contained in:
parent
cfa293d189
commit
d8a4000141
198 changed files with 8589 additions and 697 deletions
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This is a lazy script to create a .deb for Debian/Ubuntu. It installs
|
||||
# yggdrasil and enables it in systemd. You can give it the PKGARCH= argument
|
||||
# mesh and enables it in systemd. You can give it the PKGARCH= argument
|
||||
# i.e. PKGARCH=i386 sh contrib/deb/generate.sh
|
||||
|
||||
if [ `pwd` != `git rev-parse --show-toplevel` ]
|
||||
|
@ -11,14 +11,15 @@ then
|
|||
fi
|
||||
|
||||
PKGBRANCH=$(basename `git name-rev --name-only HEAD`)
|
||||
PKGNAME=$(sh contrib/semver/name.sh)
|
||||
PKG=$(sh contrib/semver/name.sh)
|
||||
PKGVERSION=$(sh contrib/semver/version.sh --bare)
|
||||
PKGARCH=${PKGARCH-amd64}
|
||||
PKGFILE=$PKGNAME-$PKGVERSION-$PKGARCH.deb
|
||||
PKGREPLACES=yggdrasil
|
||||
PKGNAME=$PKG-$PKGVERSION-$PKGARCH-nogui
|
||||
PKGFILE=$PKGNAME.deb
|
||||
PKGREPLACES=mesh
|
||||
|
||||
if [ $PKGBRANCH = "master" ]; then
|
||||
PKGREPLACES=yggdrasil-develop
|
||||
PKGREPLACES=mesh-develop
|
||||
fi
|
||||
|
||||
if [ $PKGARCH = "amd64" ]; then GOARCH=amd64 GOOS=linux ./build
|
||||
|
@ -37,91 +38,92 @@ echo "Building $PKGFILE"
|
|||
|
||||
mkdir -p /tmp/$PKGNAME/
|
||||
mkdir -p /tmp/$PKGNAME/debian/
|
||||
mkdir -p /tmp/$PKGNAME/DEBIAN/
|
||||
mkdir -p /tmp/$PKGNAME/usr/bin/
|
||||
mkdir -p /tmp/$PKGNAME/usr/local/bin/
|
||||
mkdir -p /tmp/$PKGNAME/etc/systemd/system/
|
||||
chmod 0775 /tmp/$PKGNAME/ -R
|
||||
|
||||
cat > /tmp/$PKGNAME/debian/changelog << EOF
|
||||
Please see https://github.com/yggdrasil-network/yggdrasil-go/
|
||||
Please see https://github.com/RiV-chain/RiV-mesh/
|
||||
EOF
|
||||
echo 9 > /tmp/$PKGNAME/debian/compat
|
||||
cat > /tmp/$PKGNAME/debian/control << EOF
|
||||
Package: $PKGNAME
|
||||
cat > /tmp/$PKGNAME/DEBIAN/control << EOF
|
||||
Package: mesh
|
||||
Version: $PKGVERSION
|
||||
Section: contrib/net
|
||||
Priority: extra
|
||||
Architecture: $PKGARCH
|
||||
Replaces: $PKGREPLACES
|
||||
Conflicts: $PKGREPLACES
|
||||
Maintainer: Neil Alexander <neilalexander@users.noreply.github.com>
|
||||
Description: Yggdrasil Network
|
||||
Yggdrasil is an early-stage implementation of a fully end-to-end encrypted IPv6
|
||||
network. It is lightweight, self-arranging, supported on multiple platforms and
|
||||
Maintainer: Vadym Vikulin <vadym.vikulin@rivchain.org>
|
||||
Description: RiV-mesh is an implementation of a fully end-to-end encrypted IPv6 network.
|
||||
It is lightweight, self-arranging, supported on multiple platforms and
|
||||
allows pretty much any IPv6-capable application to communicate securely with
|
||||
other Yggdrasil nodes.
|
||||
other RiV-mesh nodes.
|
||||
EOF
|
||||
cat > /tmp/$PKGNAME/debian/copyright << EOF
|
||||
Please see https://github.com/yggdrasil-network/yggdrasil-go/
|
||||
Please see https://github.com/RiV-chain/RiV-mesh/
|
||||
EOF
|
||||
cat > /tmp/$PKGNAME/debian/docs << EOF
|
||||
Please see https://github.com/yggdrasil-network/yggdrasil-go/
|
||||
Please see https://github.com/RiV-chain/RiV-mesh/
|
||||
EOF
|
||||
cat > /tmp/$PKGNAME/debian/install << EOF
|
||||
usr/bin/yggdrasil usr/bin
|
||||
usr/bin/yggdrasilctl usr/bin
|
||||
usr/bin/mesh usr/bin
|
||||
usr/bin/meshctl usr/bin
|
||||
usr/local/bin/meshctl usr/local/bin
|
||||
etc/systemd/system/*.service etc/systemd/system
|
||||
EOF
|
||||
cat > /tmp/$PKGNAME/debian/postinst << EOF
|
||||
cat > /tmp/$PKGNAME/DEBIAN/postinst << EOF
|
||||
#!/bin/sh
|
||||
|
||||
if ! getent group yggdrasil 2>&1 > /dev/null; then
|
||||
groupadd --system --force yggdrasil || echo "Failed to create group 'yggdrasil' - please create it manually and reinstall"
|
||||
if ! getent group mesh 2>&1 > /dev/null; then
|
||||
groupadd --system --force mesh || echo "Failed to create group 'mesh' - please create it manually and reinstall"
|
||||
fi
|
||||
|
||||
if [ -f /etc/yggdrasil.conf ];
|
||||
then
|
||||
if [ -f /etc/mesh.conf ]; then
|
||||
mkdir -p /var/backups
|
||||
echo "Backing up configuration file to /var/backups/yggdrasil.conf.`date +%Y%m%d`"
|
||||
cp /etc/yggdrasil.conf /var/backups/yggdrasil.conf.`date +%Y%m%d`
|
||||
echo "Normalising and updating /etc/yggdrasil.conf"
|
||||
/usr/bin/yggdrasil -useconf -normaliseconf < /var/backups/yggdrasil.conf.`date +%Y%m%d` > /etc/yggdrasil.conf
|
||||
chgrp yggdrasil /etc/yggdrasil.conf
|
||||
|
||||
if command -v systemctl >/dev/null; then
|
||||
systemctl daemon-reload >/dev/null || true
|
||||
systemctl enable yggdrasil || true
|
||||
systemctl start yggdrasil || true
|
||||
fi
|
||||
echo "Backing up configuration file to /var/backups/mesh.conf.`date +%Y%m%d`"
|
||||
cp /etc/mesh.conf /var/backups/mesh.conf.`date +%Y%m%d`
|
||||
echo "Normalising and updating /etc/mesh.conf"
|
||||
/usr/bin/mesh -useconf -normaliseconf < /var/backups/mesh.conf.`date +%Y%m%d` > /etc/mesh.conf
|
||||
else
|
||||
echo "Generating initial configuration file /etc/yggdrasil.conf"
|
||||
echo "Please familiarise yourself with this file before starting Yggdrasil"
|
||||
sh -c 'umask 0027 && /usr/bin/yggdrasil -genconf > /etc/yggdrasil.conf'
|
||||
chgrp yggdrasil /etc/yggdrasil.conf
|
||||
echo "Generating initial configuration file /etc/mesh.conf"
|
||||
echo "Please familiarise yourself with this file before starting RiV-mesh"
|
||||
sh -c 'umask 0027 && /usr/bin/mesh -genconf > /etc/mesh.conf'
|
||||
fi
|
||||
chgrp mesh /etc/mesh.conf
|
||||
chmod 755 /etc/mesh.conf
|
||||
if command -v systemctl >/dev/null; then
|
||||
systemctl daemon-reload || echo -n "daemon not reloaded!"
|
||||
systemctl enable mesh || echo -n "systemctl enable failed!"
|
||||
systemctl restart mesh || echo -n "systemctl restart failed!"
|
||||
fi
|
||||
EOF
|
||||
cat > /tmp/$PKGNAME/debian/prerm << EOF
|
||||
cat > /tmp/$PKGNAME/DEBIAN/prerm << EOF
|
||||
#!/bin/sh
|
||||
if command -v systemctl >/dev/null; then
|
||||
if systemctl is-active --quiet yggdrasil; then
|
||||
systemctl stop yggdrasil || true
|
||||
if systemctl is-active --quiet mesh; then
|
||||
systemctl stop mesh || true
|
||||
fi
|
||||
systemctl disable yggdrasil || true
|
||||
systemctl disable mesh || true
|
||||
fi
|
||||
EOF
|
||||
|
||||
cp yggdrasil /tmp/$PKGNAME/usr/bin/
|
||||
cp yggdrasilctl /tmp/$PKGNAME/usr/bin/
|
||||
cp contrib/systemd/*.service /tmp/$PKGNAME/etc/systemd/system/
|
||||
cp mesh /tmp/$PKGNAME/usr/bin/
|
||||
cp meshctl /tmp/$PKGNAME/usr/bin/
|
||||
ln -s /usr/bin/meshctl /tmp/$PKGNAME/usr/local/bin/meshctl
|
||||
if [ $LOGLEVEL = "DEBUG" ]; then cp contrib/systemd/mesh-debug.service /tmp/$PKGNAME/etc/systemd/system/mesh.service
|
||||
else
|
||||
cp contrib/systemd/mesh.service /tmp/$PKGNAME/etc/systemd/system/
|
||||
fi
|
||||
|
||||
tar -czvf /tmp/$PKGNAME/data.tar.gz -C /tmp/$PKGNAME/ \
|
||||
usr/bin/yggdrasil usr/bin/yggdrasilctl \
|
||||
etc/systemd/system/yggdrasil.service \
|
||||
etc/systemd/system/yggdrasil-default-config.service
|
||||
tar -czvf /tmp/$PKGNAME/control.tar.gz -C /tmp/$PKGNAME/debian .
|
||||
echo 2.0 > /tmp/$PKGNAME/debian-binary
|
||||
cp contrib/systemd/mesh-default-config.service /tmp/$PKGNAME/etc/systemd/system/
|
||||
chmod 0775 /tmp/$PKGNAME/DEBIAN/*
|
||||
chmod 644 /tmp/$PKGNAME/etc/systemd/system/*
|
||||
chmod 755 /tmp/$PKGNAME/usr/bin/*
|
||||
|
||||
ar -r $PKGFILE \
|
||||
/tmp/$PKGNAME/debian-binary \
|
||||
/tmp/$PKGNAME/control.tar.gz \
|
||||
/tmp/$PKGNAME/data.tar.gz
|
||||
dpkg-deb --build --root-owner-group /tmp/$PKGNAME
|
||||
cp /tmp/$PKGFILE .
|
||||
|
||||
rm -rf /tmp/$PKGNAME
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue