aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Graña2023-12-12 21:40:33 -0300
committerDaniel Graña2023-12-12 21:40:33 -0300
commit8bd72993b8a43fd220bc722862f4829acbdca49f (patch)
treeec513c463dbc8d63b4415a9bb8e7cc48974a5f3e
parent82b79e0413e97d41c27b62b0b6d8af248d6c04cd (diff)
downloadaur-8bd72993b8a43fd220bc722862f4829acbdca49f.tar.gz
unify the systemd and busybox install hooks
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD15
-rw-r--r--sd-tailscale54
-rw-r--r--tailscale_hook2
-rw-r--r--tailscale_install34
5 files changed, 33 insertions, 80 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 7df1b88bc207..7e1384734aca 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,18 +1,16 @@
pkgbase = mkinitcpio-tailscale
pkgdesc = Collection of mkinitcpio install hooks to integrate Tailscale into initramfs
pkgver = 0.2
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/dangra/mkinitcpio-tailscale
arch = any
license = GPL-2.0-or-later
depends = mkinitcpio
- source = sd-tailscale
source = tailscale_hook
source = tailscale_install
source = setup-initcpio-tailscale
- sha256sums = c57ea49b3dd783b0b127e1e795edc048df4caa6928100f7f0483e8167ac3fb40
- sha256sums = d9c513e6b8eea84cbce8ca9c36edcf245e6a46ac29bdbf73e1b9001062dafdbd
- sha256sums = 50333551578d53f0f43b2a3e4a9e1ed390f9217f844dcef4a353c3cce9763c86
+ sha256sums = bbee1d1f599ea3e64a17aa57704fa46a3b681bca6c9c12e2bf4751696a89eefc
+ sha256sums = c1103a919a98c14f3c1492088b8cac7e711f8c99631a3859afe7eca0959911ef
sha256sums = 480dec84c705dc437cb6fb1715031c1ea8e48c6b89cb0fd8c86a3af7169062f7
pkgname = mkinitcpio-tailscale
diff --git a/PKGBUILD b/PKGBUILD
index 9fc496e517e8..4bd765bfe074 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,24 +2,21 @@
pkgname=mkinitcpio-tailscale
pkgver=0.2
-pkgrel=1
+pkgrel=2
pkgdesc="Collection of mkinitcpio install hooks to integrate Tailscale into initramfs"
arch=("any")
url="https://github.com/dangra/mkinitcpio-tailscale"
license=("GPL-2.0-or-later")
depends=("mkinitcpio")
-source=("sd-tailscale"
- "tailscale_hook"
+source=("tailscale_hook"
"tailscale_install"
"setup-initcpio-tailscale")
-sha256sums=('c57ea49b3dd783b0b127e1e795edc048df4caa6928100f7f0483e8167ac3fb40'
- 'd9c513e6b8eea84cbce8ca9c36edcf245e6a46ac29bdbf73e1b9001062dafdbd'
- '50333551578d53f0f43b2a3e4a9e1ed390f9217f844dcef4a353c3cce9763c86'
+sha256sums=('bbee1d1f599ea3e64a17aa57704fa46a3b681bca6c9c12e2bf4751696a89eefc'
+ 'c1103a919a98c14f3c1492088b8cac7e711f8c99631a3859afe7eca0959911ef'
'480dec84c705dc437cb6fb1715031c1ea8e48c6b89cb0fd8c86a3af7169062f7')
package() {
- install -m 755 -D ${srcdir}/setup-initcpio-tailscale ${pkgdir}/usr/bin/setup-initcpio-tailscale
- install -m 644 -D ${srcdir}/sd-tailscale ${pkgdir}/usr/lib/initcpio/install/sd-tailscale
- install -m 644 -D ${srcdir}/tailscale_install ${pkgdir}/usr/lib/initcpio/install/tailscale
install -m 644 -D ${srcdir}/tailscale_hook ${pkgdir}/usr/lib/initcpio/hooks/tailscale
+ install -m 644 -D ${srcdir}/tailscale_install ${pkgdir}/usr/lib/initcpio/install/tailscale
+ install -m 755 -D ${srcdir}/setup-initcpio-tailscale ${pkgdir}/usr/bin/setup-initcpio-tailscale
}
diff --git a/sd-tailscale b/sd-tailscale
deleted file mode 100644
index c17922712d7b..000000000000
--- a/sd-tailscale
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env bash
-
-build() {
- if ! pacman -Qi tailscale >/dev/null 2>&1; then
- error "Package tailscale not installed"
- return 1
- fi
-
- local setupdir="/etc/initcpio/tailscale"
- for fn in tailscaled.state default.env; do
- if ! [[ -r "${setupdir}/${fn}" && -s "${setupdir}/${fn}" ]]; then
- error "Missing configuration file at ${setupdir}/${fn}. Have you run setup-initcpio-tailscale yet?"
- return 1
- fi
- done
- add_file ${setupdir}/default.env /etc/default/tailscaled
- add_file ${setupdir}/tailscaled.state /var/lib/tailscale/tailscaled.state
-
- # tailscale requirements
- add_module tun
- add_full_dir /usr/lib/xtables
- add_all_modules netfilter
- map add_binary iptables ip6tables tailscale tailscaled
-
- # systemd service unit
- add_systemd_unit tailscaled.service
- add_systemd_drop_in tailscaled.service override <<-EOU
- [Unit]
- DefaultDependencies=no
- After=network-online.target
- Wants=network-online.target
- EOU
- add_symlink /etc/systemd/system/sysinit.target.wants/tailscaled.service \
- /usr/lib/systemd/system/tailscaled.service
-}
-
-help() {
- cat <<-__EOF_HELP__
- This hook enables tailscale service within systemd initramfs.
-
- It copies all required files and binaries to initramfs and enables
- tailscaled.service. Configuration is copied into the initramfs from:
-
- * /etc/initcpio/tailscale/tailscaled.state to /var/lib/tailscale/tailscaled.state
- * /etc/initcpio/tailscale/default.env to /etc/default/tailscaled
-
- Run setup-initcpio-tailscale to initialize /etc/initcpio/tailscale/ configuration files.
-
- It is not required but highly recommended to configure the network and add a ssh server
- using the hooks provided by mkinitcpio-systemd-extras package.
- __EOF_HELP__
-}
-
-# vim: noexpandtab
diff --git a/tailscale_hook b/tailscale_hook
index c0529c5165e3..8fd12c763eba 100644
--- a/tailscale_hook
+++ b/tailscale_hook
@@ -5,6 +5,7 @@ run_hook() (
. /etc/default/tailscaled
# Launch tailscale agent in the background
+ /usr/sbin/tailscaled --cleanup
/usr/sbin/tailscaled \
--state=/var/lib/tailscale/tailscaled.state \
--socket=/run/tailscale/tailscaled.sock \
@@ -14,6 +15,7 @@ run_hook() (
)
run_cleanuphook() {
+ /usr/sbin/tailscaled --cleanup
local pid=$(cat /run/tailscaled.pid 2>/dev/null)
[[ -z $pid ]] || kill "$pid"
}
diff --git a/tailscale_install b/tailscale_install
index b18585f98440..fab3c7a24f82 100644
--- a/tailscale_install
+++ b/tailscale_install
@@ -1,4 +1,4 @@
-#!/usr/bin/env ash
+#!/usr/bin/env bash
build() {
if ! pacman -Qi tailscale >/dev/null 2>&1; then
@@ -22,27 +22,37 @@ build() {
add_all_modules netfilter
map add_binary iptables ip6tables tailscale tailscaled
- add_run_script
+ if [[ $(type -t add_systemd_unit ) == function ]]; then
+ add_systemd_unit tailscaled.service
+ add_systemd_drop_in tailscaled.service override <<-EOU
+ [Unit]
+ DefaultDependencies=no
+ After=network-online.target
+ Wants=network-online.target
+ EOU
+ add_symlink /etc/systemd/system/sysinit.target.wants/tailscaled.service \
+ /usr/lib/systemd/system/tailscaled.service
+ else
+ add_runscript
+ fi
}
help() {
cat <<-__EOF_HELP__
- This hook enables tailscale service within busybox initramfs.
-
- It copies all required files and binaries to initramfs and runs
- tailscale daemon in the background. Remember to place it before
- any other hook that blocks for input like the 'encrypt' hook.
+ This hook enables tailscale service within initramfs.
- Configuration is copied into the initramfs from:
+ It copies all required files and binaries to initramfs and runs the Tailscale agent.
+ Configuration is copied from the host into the initramfs per:
* /etc/initcpio/tailscale/tailscaled.state to /var/lib/tailscale/tailscaled.state
+
* /etc/initcpio/tailscale/default.env to /etc/default/tailscaled
- Run setup-initcpio-tailscale to initialize /etc/initcpio/tailscale/ configuration files.
+ It works with both, systemd and busybox init systems; but whatever you choose remember to also add a network and ssh server hook.
- This hook must come after the network is setup and before other hooks that blocks the
- init chain. Place it before 'encrypt' if you plan to unlock a rootfs remotely.
-
+ For systemd inits, see 'sd-network' and 'sd-tinyssh' hooks provided by mkinitcpio-systemd-extras package.
+
+ Run /usr/bin/setup-initcpio-tailscale to initialize the configuration files at /etc/initcpio/tailscale/.
__EOF_HELP__
}