diff options
-rw-r--r-- | .SRCINFO | 21 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 63 | ||||
-rw-r--r-- | rait-metrics.service | 10 | ||||
-rw-r--r-- | rait.conf | 31 | ||||
-rw-r--r-- | rait.service | 12 |
6 files changed, 142 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..57b910bb63c3 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,21 @@ +pkgbase = rait + pkgdesc = Redundant Array of Inexpensive Tunnels + pkgver = 4.3.0 + pkgrel = 1 + url = https://gitlab.com/NickCao/RAIT + arch = x86_64 + license = custom + makedepends = go + depends = glibc + optdepends = babeld: Dynamic routing daemon + backup = etc/rait/rait.conf + source = https://gitlab.com/NickCao/RAIT/-/archive/v4.3.0/RAIT-v4.3.0.tar.gz + source = rait.service + source = rait-metrics.service + source = rait.conf + sha256sums = c5c45746ccd0fc4077980dd3bff36efb35003eb91935698e91d81ecf53865e6f + sha256sums = 7dce9ea0fbbea74320ae8ab55f92b59630b440e4a516beca03389114417d6d6f + sha256sums = db6854d47284aa1e902edbc01911d48311de82bef3d81fd1f0ca3f67dbea0cb4 + sha256sums = 7f85c1f0f3979bce2072974b423964aeeb95f05176e0c06bf264b55ff51e53c3 + +pkgname = rait diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..72e146003d53 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.zst +*.gz +src/ +pkg/ +*.log diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..671a1b4aac0f --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,63 @@ +# Maintainer: Yuuta Liang <yuuta@yuuta.moe> +pkgname=rait +pkgver=4.3.0 +pkgrel=1 +epoch= +pkgdesc="Redundant Array of Inexpensive Tunnels" +arch=(x86_64) +url="https://gitlab.com/NickCao/RAIT" +license=('custom') +groups=() +depends=(glibc) +makedepends=(go) +checkdepends=() +optdepends=("babeld: Dynamic routing daemon") +provides=() +conflicts=() +replaces=() +backup=(etc/rait/rait.conf) +options=() +install= +changelog= +source=("https://gitlab.com/NickCao/RAIT/-/archive/v$pkgver/RAIT-v$pkgver.tar.gz" +"rait.service" +"rait-metrics.service" +"rait.conf") +noextract=() +sha256sums=('c5c45746ccd0fc4077980dd3bff36efb35003eb91935698e91d81ecf53865e6f' + '7dce9ea0fbbea74320ae8ab55f92b59630b440e4a516beca03389114417d6d6f' + 'db6854d47284aa1e902edbc01911d48311de82bef3d81fd1f0ca3f67dbea0cb4' + '7f85c1f0f3979bce2072974b423964aeeb95f05176e0c06bf264b55ff51e53c3') +validpgpkeys=() + +prepare() { + cd "RAIT-v$pkgver" +} + +build() { + cd "RAIT-v$pkgver" + export CGO_CPPFLAGS="${CPPFLAGS}" + export CGO_CFLAGS="${CFLAGS}" + export CGO_CXXFLAGS="${CXXFLAGS}" + export CGO_LDFLAGS="${LDFLAGS}" + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" + go build -o build ./cmd/... +} + +check() { + cd "RAIT-v$pkgver" + go test ./... +} + +package() { + cd "RAIT-v$pkgver" + install -Dm755 build "$pkgdir"/usr/bin/$pkgname + mkdir -p "$pkgdir"/usr/share/licenses/$pkgname/ + install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/license + cd .. + mkdir -p "$pkgdir"/usr/lib/systemd/system/ + install -Dm644 rait.service "$pkgdir"/usr/lib/systemd/system/ + install -Dm644 rait-metrics.service "$pkgdir"/usr/lib/systemd/system/ + mkdir -p "$pkgdir"/etc/rait/ + install -Dm600 rait.conf "$pkgdir"/etc/rait/ +} diff --git a/rait-metrics.service b/rait-metrics.service new file mode 100644 index 000000000000..be8cba10e1a2 --- /dev/null +++ b/rait-metrics.service @@ -0,0 +1,10 @@ +[Unit] +Description=Redundant Array of Inexpensive Tunnels (Prometrics Metrics) +After=network.target network-online.target nss-lookup.target + +[Service] +Type=simple +ExecStart=/usr/bin/rait metrics + +[Install] +WantedBy=multi-user.target diff --git a/rait.conf b/rait.conf new file mode 100644 index 000000000000..4574e37b476c --- /dev/null +++ b/rait.conf @@ -0,0 +1,31 @@ +registry = "https://example.com/rait" # url of rait registry +operator_key = "EA8CQ4CAsvLuEnJvu8FQt0OIMh+NhlWIk0o12zNgekU=" # private key of node operator +private_key = "KJJXmDtAXSrMGuIJVy/2eP65gXm1PTy7vCR/4O/vEEI=" # wireguard private key + +namespace = "rait" # netns to move interfaces into + +# both ifgroup and ifprefix should be unique across transports +transport { + address_family = "ip4" + address = "8.8.8.8" + send_port = 50153 + mtu = 1400 + ifprefix = "rait4x" + ifgroup = 54 + fwmark = 54 + random_port = false +} + +babeld { + enabled = true + socket_type = "unix" + socket_addr = "/run/babeld.ctl" + param = "type tunnel link-quality true" + footnote = "interface host type wireless" +} + +remarks = { + prefix = "1.1.1.0/24" + name = "foo" + operator = "bar" +} diff --git a/rait.service b/rait.service new file mode 100644 index 000000000000..49f55e172926 --- /dev/null +++ b/rait.service @@ -0,0 +1,12 @@ +[Unit] +Description=Redundant Array of Inexpensive Tunnels +After=network.target network-online.target nss-lookup.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/rait up +ExecStop=/usr/bin/rait down +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target |