summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDean Sellers <dean@sellers.id.au>2025-08-08 09:59:50 +1000
committerKhem Raj <raj.khem@gmail.com>2025-08-07 21:58:51 -0700
commiteea415cfbd0d2f3f8e857e25965b6bf72c0bee6c (patch)
tree8ae7e6471f768e8ac26b540a395480121e630a47
parentfa9c926f4f9ae80873dec3fdb6029e09cf9b5a57 (diff)
downloadmeta-openembedded-eea415cfbd0d2f3f8e857e25965b6bf72c0bee6c.tar.gz
tailscale: Added support for systemd init
Includes the provided service and defaults files for using the tailscale daemon on systemd init machines. Added the other kernel modules necessary for tailscaled to work without warnings to RRECOMMENDS. Tested with `core-image-minimal` under qemu with machines `qemux86-64`, `genericx86-64` and `qemuarm64`. Ping host on tailscale network using magicDNS host lookup. Signed-off-by: Dean Sellers <dean@sellers.id.au> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb29
1 files changed, 23 insertions, 6 deletions
diff --git a/meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb b/meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb
index 25b54ae93a..33ae1925d5 100644
--- a/meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb
+++ b/meta-networking/recipes-connectivity/tailscale/tailscale_1.84.3.bb
@@ -22,7 +22,9 @@ GO_LINKSHARED = ""
22GOBUILDFLAGS:prepend = "-tags=${@','.join(d.getVar('PACKAGECONFIG_CONFARGS').split())} " 22GOBUILDFLAGS:prepend = "-tags=${@','.join(d.getVar('PACKAGECONFIG_CONFARGS').split())} "
23GO_EXTRA_LDFLAGS = "-X tailscale.com/version.longStamp=${PV}-${SRCREV_SHORT} -X tailscale.com/version.shortStamp=${PV}" 23GO_EXTRA_LDFLAGS = "-X tailscale.com/version.longStamp=${PV}-${SRCREV_SHORT} -X tailscale.com/version.shortStamp=${PV}"
24 24
25inherit go-mod update-rc.d 25inherit go-mod \
26 ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'update-rc.d', '', d)} \
27 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}
26 28
27PACKAGECONFIG ??= "aws bird capture cli kube ssh tap wakeonlan" 29PACKAGECONFIG ??= "aws bird capture cli kube ssh tap wakeonlan"
28PACKAGECONFIG[aws] = "ts_aws,ts_omit_aws" 30PACKAGECONFIG[aws] = "ts_aws,ts_omit_aws"
@@ -39,6 +41,9 @@ INITSCRIPT_PACKAGES = "${PN}d"
39INITSCRIPT_NAME:${PN}d = "tailscaled" 41INITSCRIPT_NAME:${PN}d = "tailscaled"
40INITSCRIPT_PARAMS:${PN}d = "defaults 91 9" 42INITSCRIPT_PARAMS:${PN}d = "defaults 91 9"
41 43
44SYSTEMD_PACKAGES = "${BPN}d"
45SYSTEMD_SERVICE:${BPN}d = "${BPN}d.service"
46
42# override do_install, since it installs in bin instead of sbin 47# override do_install, since it installs in bin instead of sbin
43do_install() { 48do_install() {
44 install -d ${D}/${sbindir} 49 install -d ${D}/${sbindir}
@@ -49,22 +54,34 @@ do_install() {
49 ln -sr ${D}${sbindir}/tailscaled ${D}${bindir}/tailscale 54 ln -sr ${D}${sbindir}/tailscaled ${D}${bindir}/tailscale
50 fi 55 fi
51 56
52 install -d ${D}${sysconfdir}/default
53 install -m 644 ${UNPACKDIR}/default ${D}${sysconfdir}/default/${BPN}d
54
55 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 57 if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
56 install -d ${D}${sysconfdir}/init.d 58 install -d ${D}${sysconfdir}/init.d
57 install -m 0755 ${UNPACKDIR}/tailscaled.init ${D}${sysconfdir}/init.d/tailscaled 59 install -m 0755 ${UNPACKDIR}/tailscaled.init ${D}${sysconfdir}/init.d/tailscaled
60 install -d ${D}${sysconfdir}/default
61 install -m 644 ${UNPACKDIR}/default ${D}${sysconfdir}/default/${BPN}d
58 fi 62 fi
63
64 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
65 install -d ${D}${systemd_system_unitdir}
66 install -m 644 ${B}/src/tailscale.com/cmd/tailscaled/tailscaled.service ${D}${systemd_system_unitdir}/${BPN}d.service
67 install -d ${D}${sysconfdir}/default
68 install -m 644 ${B}/src/tailscale.com/cmd/tailscaled/tailscaled.defaults ${D}${sysconfdir}/default/${BPN}d
69 fi
70
59} 71}
60 72
61PACKAGES =+ "${PN}d" 73PACKAGES =+ "${PN}d"
62 74
63# mark these as src, since there are bash script etc in there and QA will complain otherwise 75# mark these as src, since there are bash script etc in there and QA will complain otherwise
64FILES:${PN}-src += "${libdir}/go/src" 76FILES:${PN}-src += "${libdir}/go/src"
65FILES:${PN}d = "${sysconfdir}" 77FILES:${PN}d = "${sysconfdir} ${systemd_system_unitdir}"
66 78
67RDEPENDS:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'completion', 'bash-completion', '', d)}" 79RDEPENDS:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'completion', 'bash-completion', '', d)}"
68RDEPENDS:${PN}d = "iptables" 80RDEPENDS:${PN}d = "iptables"
69 81
70RRECOMMENDS:${PN}d = "kernel-module-wireguard" 82RRECOMMENDS:${PN}d = "\
83 kernel-module-wireguard \
84 kernel-module-tun \
85 kernel-module-xt-mark \
86 kernel-module-xt-tcpudp \
87 kernel-module-xt-masquerade"