mirror of
https://github.com/Cheviiot/Nivora.git
synced 2026-08-03 15:51:12 +00:00
feat: create autonomous Nivora package repository
Maintain a validated cross-distribution package catalog. Automate upstream updates, isolated builds, diagnostics, and direct publication. Build the official GitHub Desktop sources for Linux with working OAuth.
This commit is contained in:
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
package_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
repo_root="$(cd "${package_dir}/.." && pwd)"
|
||||
exec "${repo_root}/tools/package_updates.sh" check "$(basename "$package_dir")"
|
||||
@@ -0,0 +1,15 @@
|
||||
Сведения о лицензии пакета Tailscale
|
||||
|
||||
Лицензия: BSD-3-Clause.
|
||||
Исходный проект: https://github.com/tailscale/tailscale
|
||||
Официальный сайт: https://tailscale.com
|
||||
|
||||
Нюансы пакета:
|
||||
- Пакет перепаковывает официальный Linux tar.gz-архив Tailscale.
|
||||
- Устанавливаются `tailscale`, `tailscaled`, systemd-сервис и стандартные файлы запуска.
|
||||
- Код клиента Tailscale распространяется под BSD-3-Clause.
|
||||
- Подключение к control plane Tailscale, учетные записи, ACL и коммерческие функции регулируются условиями сервиса Tailscale.
|
||||
- При распространении измененных версий нужно сохранять уведомление об авторских правах и условия BSD-3-Clause.
|
||||
|
||||
Полный официальный текст BSD-3-Clause:
|
||||
https://opensource.org/license/bsd-3-clause
|
||||
@@ -0,0 +1,84 @@
|
||||
name='tailscale'
|
||||
version='1.98.9'
|
||||
release=3
|
||||
summary='Mesh VPN built on WireGuard'
|
||||
summary_ru='Mesh VPN на базе WireGuard'
|
||||
group='Networking/Other'
|
||||
desc='Tailscale is a secure mesh VPN built on WireGuard and identity-based access that connects devices and services across networks.'
|
||||
desc_ru='Tailscale — безопасный mesh VPN на базе WireGuard и identity-based access для соединения устройств и сервисов между сетями.'
|
||||
homepage='https://tailscale.com'
|
||||
maintainer='Tailscale Inc <info@tailscale.com>'
|
||||
|
||||
architectures=('amd64' 'arm64')
|
||||
|
||||
license=('BSD-3-Clause')
|
||||
|
||||
provides=()
|
||||
replaces=('tailscale')
|
||||
conflicts=()
|
||||
|
||||
backup=('/etc/default/tailscaled')
|
||||
|
||||
auto_reqprov_method="dirty"
|
||||
auto_req=0
|
||||
auto_prov=0
|
||||
|
||||
deps=()
|
||||
deps_debian=('iptables' 'iproute2' 'ca-certificates')
|
||||
deps_ubuntu=("${deps_debian[@]}")
|
||||
deps_fedora=('iptables' 'iproute' 'ca-certificates')
|
||||
deps_arch=('iptables' 'iproute2' 'ca-certificates')
|
||||
deps_opensuse=('iptables' 'iproute2' 'ca-certificates')
|
||||
deps_altlinux=('iptables' 'iproute2' 'ca-certificates')
|
||||
|
||||
sources=(
|
||||
"https://pkgs.tailscale.com/stable/tailscale_${version}_amd64.tgz?~archive=false&~name=tailscale.tgz"
|
||||
"local:///tailscale-purge-data"
|
||||
'local:///LICENSE'
|
||||
)
|
||||
|
||||
sources_arm64=(
|
||||
"https://pkgs.tailscale.com/stable/tailscale_${version}_arm64.tgz?~archive=false&~name=tailscale.tgz"
|
||||
"local:///tailscale-purge-data"
|
||||
'local:///LICENSE'
|
||||
)
|
||||
|
||||
checksums=(
|
||||
'11be30ad301d48f84ff52fec34f8a2f78eb3e3dee1be4e9624d19fccc8df5540'
|
||||
'fc0e166481e2f97c21dca773ad4bfe673842268935ce1628c14b96af98e70555'
|
||||
'3c7a7d6d7f09890d5e682901acaeb12bda9542fc6450a709c9dc296a91e726a5'
|
||||
)
|
||||
|
||||
checksums_arm64=(
|
||||
'fa554ee808d7d07ee8e3ebbc0215ea087157e2a0abbf408e6e18ea7532554db6'
|
||||
'fc0e166481e2f97c21dca773ad4bfe673842268935ce1628c14b96af98e70555'
|
||||
'3c7a7d6d7f09890d5e682901acaeb12bda9542fc6450a709c9dc296a91e726a5'
|
||||
)
|
||||
|
||||
scripts=(
|
||||
['postinstall']='postinstall.sh'
|
||||
['postremove']='postremove.sh'
|
||||
)
|
||||
|
||||
package() {
|
||||
cd "${srcdir}"
|
||||
|
||||
tar -xzf tailscale.tgz
|
||||
src="$(find "${srcdir}" -maxdepth 1 -type d -name "tailscale_${version}_*" | head -1)"
|
||||
|
||||
install-binary "${src}/tailscale"
|
||||
install-binary "${srcdir}/tailscale-purge-data"
|
||||
install -Dm755 "${src}/tailscaled" "${pkgdir}/usr/sbin/tailscaled"
|
||||
install-systemd "${src}/systemd/tailscaled.service"
|
||||
install-config "${src}/systemd/tailscaled.defaults" "default/tailscaled"
|
||||
install-license "${srcdir}/LICENSE" "tailscale/LICENSE.nivora"
|
||||
}
|
||||
|
||||
files() {
|
||||
files-find-binary
|
||||
files-find-systemd
|
||||
files-find-license
|
||||
files-find \
|
||||
"/usr/sbin/tailscaled" \
|
||||
"/etc/default/tailscaled"
|
||||
}
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now tailscaled.service
|
||||
fi
|
||||
|
||||
REAL_USER="${SUDO_USER:-}"
|
||||
if [[ -z "$REAL_USER" ]] && [[ -n "${PKEXEC_UID:-}" ]]; then
|
||||
REAL_USER=$(id -nu "$PKEXEC_UID")
|
||||
fi
|
||||
if [[ -z "$REAL_USER" ]] && command -v logname &>/dev/null; then
|
||||
REAL_USER=$(logname 2>/dev/null) || REAL_USER=""
|
||||
fi
|
||||
|
||||
if [[ -n "$REAL_USER" ]] && [[ "$REAL_USER" != "root" ]] && id "$REAL_USER" &>/dev/null && command -v tailscale &>/dev/null; then
|
||||
for _ in 1 2 3 4 5; do
|
||||
tailscale status --json &>/dev/null && break
|
||||
sleep 1
|
||||
done
|
||||
if ! tailscale set --operator="$REAL_USER"; then
|
||||
echo "Предупреждение: не удалось назначить Tailscale operator для $REAL_USER." >&2
|
||||
fi
|
||||
fi
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
unit=/usr/lib/systemd/system/tailscaled.service
|
||||
|
||||
# В postremove unit отсутствует только после полного удаления. При обновлении
|
||||
# новая версия уже вернула его на место, независимо от формата пакета.
|
||||
if [[ ! -e "$unit" ]] && command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then
|
||||
if systemctl is-active --quiet tailscaled.service; then
|
||||
systemctl stop tailscaled.service
|
||||
fi
|
||||
if systemctl is-enabled --quiet tailscaled.service; then
|
||||
systemctl disable tailscaled.service
|
||||
fi
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
@@ -0,0 +1 @@
|
||||
[inherit]
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ "${1:-}" != "--yes" || "$#" -ne 1 ]]; then
|
||||
echo "Использование: sudo tailscale-purge-data --yes" >&2
|
||||
echo "Команда выйдет из сети Tailscale и безвозвратно удалит локальное состояние." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [[ "${EUID}" -ne 0 ]]; then
|
||||
echo "Ошибка: очистку данных Tailscale нужно запускать от root." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if command -v tailscale >/dev/null 2>&1; then
|
||||
if ! tailscale logout; then
|
||||
echo "Предупреждение: Tailscale не подтвердил logout; локальные данные всё равно будут удалены." >&2
|
||||
fi
|
||||
fi
|
||||
|
||||
if command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then
|
||||
systemctl stop tailscaled.service
|
||||
fi
|
||||
|
||||
rm -rf -- \
|
||||
/var/lib/tailscale \
|
||||
/var/cache/tailscale \
|
||||
/var/run/tailscale \
|
||||
/run/tailscale \
|
||||
/etc/tailscale
|
||||
rm -f -- /var/log/tailscaled.log /var/log/tailscale.log
|
||||
|
||||
echo "Локальные данные Tailscale удалены."
|
||||
Reference in New Issue
Block a user