diff options
author | Daniel Graña | 2023-12-12 21:40:33 -0300 |
---|---|---|
committer | Daniel Graña | 2023-12-12 21:40:33 -0300 |
commit | 8bd72993b8a43fd220bc722862f4829acbdca49f (patch) | |
tree | ec513c463dbc8d63b4415a9bb8e7cc48974a5f3e | |
parent | 82b79e0413e97d41c27b62b0b6d8af248d6c04cd (diff) | |
download | aur-8bd72993b8a43fd220bc722862f4829acbdca49f.tar.gz |
unify the systemd and busybox install hooks
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 15 | ||||
-rw-r--r-- | sd-tailscale | 54 | ||||
-rw-r--r-- | tailscale_hook | 2 | ||||
-rw-r--r-- | tailscale_install | 34 |
5 files changed, 33 insertions, 80 deletions
@@ -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 @@ -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__ } |