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:
Александр
2026-07-25 00:49:32 +10:00
commit f405ae2bcf
168 changed files with 8483 additions and 0 deletions
+6
View File
@@ -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")"
+16
View File
@@ -0,0 +1,16 @@
Сведения о лицензии пакета NetBird
Лицензии: BSD-3-Clause и AGPL-3.0-only.
Исходный проект: https://github.com/netbirdio/netbird
Официальный сайт: https://netbird.io/
Нюансы пакета:
- Пакет перепаковывает официальный deb-артефакт NetBird CLI/daemon для Linux.
- Основные части репозитория NetBird распространяются под BSD-3-Clause.
- Отдельные серверные компоненты исходного репозитория, включая management, signal, relay и combined, лицензированы под AGPL-3.0.
- Данный пакет устанавливает клиентский бинарник и systemd-сервис; серверная инфраструктура NetBird в пакет не входит.
- Подключение к облачному или собственному management-серверу регулируется условиями соответствующего сервиса.
Официальные тексты лицензий:
- https://opensource.org/license/bsd-3-clause
- https://www.gnu.org/licenses/agpl-3.0.txt
+90
View File
@@ -0,0 +1,90 @@
name='netbird'
version=0.75.0
release=1
summary='WireGuard-based mesh VPN client'
summary_ru='Mesh VPN-клиент на базе WireGuard'
group='Networking/Other'
desc='NetBird is a WireGuard-based mesh VPN client with SSO, MFA and policy-based access control for connecting devices and private networks.'
desc_ru='NetBird — mesh VPN-клиент на базе WireGuard с SSO, MFA и политиками доступа для соединения устройств и приватных сетей.'
homepage='https://netbird.io/'
maintainer='NetBird GmbH <dev@netbird.io>'
architectures=('amd64' 'arm64')
license=('BSD-3-Clause' 'AGPL-3.0-only')
provides=()
replaces=('netbird')
conflicts=()
auto_reqprov_method="dirty"
auto_req=0
auto_prov=0
deps=()
deps_debian=('ca-certificates' 'iproute2' 'iptables')
deps_ubuntu=("${deps_debian[@]}")
deps_fedora=('ca-certificates' 'iproute' 'iptables')
deps_arch=('ca-certificates' 'iproute2' 'iptables')
deps_opensuse=('ca-certificates' 'iproute2' 'iptables')
deps_altlinux=('ca-certificates' 'iproute2' 'iptables')
build_deps=('binutils')
sources=(
"https://github.com/netbirdio/netbird/releases/download/v${version}/netbird_${version}_linux_amd64.deb?~archive=false&~name=netbird.deb"
"local:///netbird.png"
"local:///netbird.service"
"local:///netbird-purge-data"
'local:///LICENSE'
)
sources_arm64=(
"https://github.com/netbirdio/netbird/releases/download/v${version}/netbird_${version}_linux_arm64.deb?~archive=false&~name=netbird.deb"
"local:///netbird.png"
"local:///netbird.service"
"local:///netbird-purge-data"
'local:///LICENSE'
)
checksums=(
'sha256:b65f65d7f32831639ebdd44c241e7a2310287723b64dbc03c93292853042ee6f'
'sha256:71b133636e91eb67f221f64592f64fa04a3b2337f4d616be36492efae0cff643'
'sha256:abd8064281462a4ce12c2fdf2e9436d9ae6932ff3b366668a175f2a556169012'
'sha256:bb5c44ab330db0d63a82b582f2c508681a6922ea65f3bf2becaeed87693215b1'
'sha256:11555e8308e949c3965a681f48b83f7f2488cff03b09772d8af4a20d376464e7'
)
checksums_arm64=(
'sha256:9e57e854da0bbaf392cc6f99e37db75809e21c3effde0fca9f3bc9dc90245c02'
'sha256:71b133636e91eb67f221f64592f64fa04a3b2337f4d616be36492efae0cff643'
'sha256:abd8064281462a4ce12c2fdf2e9436d9ae6932ff3b366668a175f2a556169012'
'sha256:bb5c44ab330db0d63a82b582f2c508681a6922ea65f3bf2becaeed87693215b1'
'sha256:11555e8308e949c3965a681f48b83f7f2488cff03b09772d8af4a20d376464e7'
)
scripts=(
['postinstall']='postinstall.sh'
['postremove']='postremove.sh'
)
package() {
cd "${srcdir}"
mkdir -p "${srcdir}/extracted"
ar x netbird.deb
tar -xf data.tar.* -C "${srcdir}/extracted"
install-binary "${srcdir}/extracted/usr/bin/netbird"
install-binary "${srcdir}/netbird-purge-data"
install-systemd "${srcdir}/netbird.service"
install-license "${srcdir}/LICENSE" "netbird/LICENSE.nivora"
install -Dm644 "${srcdir}/netbird.png" "${pkgdir}/usr/share/icons/hicolor/256x256/apps/netbird.png"
}
files() {
files-find-binary
files-find-systemd
files-find-license
files-find "/usr/share/icons/hicolor/256x256/apps/netbird.png"
}
+29
View File
@@ -0,0 +1,29 @@
#!/bin/bash
set -euo pipefail
if [[ "${1:-}" != "--yes" || "$#" -ne 1 ]]; then
echo "Использование: sudo netbird-purge-data --yes" >&2
echo "Команда отменит регистрацию узла NetBird и безвозвратно удалит локальное состояние." >&2
exit 2
fi
if [[ "${EUID}" -ne 0 ]]; then
echo "Ошибка: очистку данных NetBird нужно запускать от root." >&2
exit 1
fi
if command -v netbird >/dev/null 2>&1; then
if ! netbird deregister; then
echo "Предупреждение: NetBird не подтвердил deregister; локальные данные всё равно будут удалены." >&2
fi
fi
if command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then
systemctl stop netbird.service
fi
rm -rf -- /var/lib/netbird /var/cache/netbird /var/log/netbird
rm -f -- /run/netbird.sock /var/run/netbird.sock
echo "Локальные данные NetBird удалены."
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

+19
View File
@@ -0,0 +1,19 @@
[Unit]
Description=NetBird mesh network client
Documentation=https://docs.netbird.io/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/netbird
ExecStart=/usr/bin/netbird service run --log-level info --daemon-addr unix:///run/netbird.sock --log-file /var/log/netbird/client.log
Restart=on-failure
RestartSec=5s
StateDirectory=netbird
StateDirectoryMode=0700
LogsDirectory=netbird
LogsDirectoryMode=0750
[Install]
WantedBy=multi-user.target
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
set -euo pipefail
legacy_unit=/etc/systemd/system/netbird.service
if [[ -f "$legacy_unit" ]] && grep -Fq 'ExecStart=/usr/bin/netbird "service" "run"' "$legacy_unit"; then
rm -f -- "$legacy_unit"
fi
if command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then
systemctl daemon-reload
systemctl enable --now netbird.service
fi
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
set -euo pipefail
unit=/usr/lib/systemd/system/netbird.service
if [[ ! -e "$unit" ]] && command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then
if systemctl is-active --quiet netbird.service; then
systemctl stop netbird.service
fi
if systemctl is-enabled --quiet netbird.service; then
systemctl disable netbird.service
fi
systemctl daemon-reload
fi
+1
View File
@@ -0,0 +1 @@
include = "../stapler-repo.toml"