new file mode 100644
---
First of all, I am not familiar with go. This is the first time we intend
to use it. Since there wasn't a go-mods generator only a GO_IMPORT, at least
that I could find, I wrote a script / bbclass to generate them as well, like
the go-mod-update-modules.bbclass which is now in openembeddded-core. Unlike
the `go list` I use `go compile`, since the former seems to report far more
modules then needed to just install for tailscale. For testing / comparing I
put that code at [1]. The format should be compatible though with the
go-mod-update-modules.bbclass, it will just add more modules, which don't
seem to be needed for tailscale.
[1] https://github.com/jhofstee/meta-jhofstee
@@ -0,0 +1,63 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: tailscaled
+# Required-Start: $network $local_fs
+# Required-Stop: $network $local_fs
+# Default-Start: 3 4 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Tailscale node agent
+# Description: Start the Tailscale daemon.
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DAEMON=/usr/sbin/tailscaled
+PIDFILE=/var/run/tailscaled.pid
+NAME=tailscaled
+DESC="Tailscale node agent"
+
+test -x $DAEMON || exit 0
+
+set -e
+
+. /etc/init.d/functions
+
+delay_stop() {
+ count=0
+ while [ $count -lt 9 ] ; do
+ if pidof $DAEMON >/dev/null; then
+ sleep 1
+ else
+ return 0
+ fi
+ count=$(expr $count + 1)
+ done
+ echo "Failed to stop $DESC."
+ return 1
+}
+
+case "$1" in
+ start)
+ echo -n "starting $DESC: $NAME... "
+ start-stop-daemon --start --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON
+ echo "done."
+ ;;
+ stop)
+ echo -n "stopping $DESC: $NAME... "
+ start-stop-daemon --stop --pidfile $PIDFILE
+ echo "done."
+ ;;
+ restart)
+ $0 stop
+ delay_stop && $0 start
+ ;;
+ status)
+ status $DAEMON
+ exit $?
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|status}"
+ exit 1
+ ;;
+esac
+
+exit 0
new file mode 100644
@@ -0,0 +1,68 @@
+SRC_URI += " \
+ gomod://filippo.io/edwards25519;version=v1.1.0;sha256sum=9ac43a686d06fdebd719f7af3866c87eb069302272dfb131007adf471c308b65 \
+ gomod://github.com/anmitsu/go-shlex;version=v0.0.0-20200514113438-38f4b401e2be;sha256sum=2a5cf7c9a2709f649fd508cbacb2be96e4fba4d534a28a122ee4d7574af40b5e \
+ gomod://github.com/coder/websocket;version=v1.8.12;sha256sum=ad8d323970c04679f4566ee7db98946508c37cdd21a46a875d5257d631a9e990 \
+ gomod://github.com/coreos/go-iptables;version=v0.7.1-0.20240112124308-65c67c9f46e6;sha256sum=6d0ae6344f1d355f72e6aaba583ce73822861511337ca92cc1c4727fc8ba66dd \
+ gomod://github.com/creack/pty;version=v1.1.23;sha256sum=2151b7121020954864de83eacf854634866cca0a3bfe33a2ebffa2edebc25df3 \
+ gomod://github.com/digitalocean/go-smbios;version=v0.0.0-20180907143718-390a4f403a8e;sha256sum=2bc498a09aa55b3417bebacce448b2d2ab757981e59b6b016d08cf97e4a7bdde \
+ gomod://github.com/djherbis/times;version=v1.6.0;sha256sum=21d69060967bc03ea3c39ff8c0b1a95511e96eccd3749a2daef1a02af1bc0a85 \
+ gomod://github.com/fxamacker/cbor/v2;version=v2.7.0;sha256sum=b48771460405bab6896c85e21ebc5ff287d4018c6db5c8d822c55769c80dde03 \
+ gomod://github.com/gaissmai/bart;version=v0.18.0;sha256sum=566f2401988b2536055d87f6851ea596518377ee4592176375b84a5ca791fc77 \
+ gomod://github.com/go-json-experiment/json;version=v0.0.0-20250223041408-d3c622f1b874;sha256sum=96edf3942a5665ff2b27f0da4586e2602fe4816dc31e184d3bcd6fbf4cdb13e4 \
+ gomod://github.com/godbus/dbus/v5;version=v5.1.1-0.20230522191255-76236955d466;sha256sum=262f43ec87570238a0e770e7fa656dda70fe6050a7edf5addc30287cb64b21a6 \
+ gomod://github.com/golang/groupcache;version=v0.0.0-20210331224755-41bb18bfe9da;sha256sum=b27034e8fc013627543e1ad098cfc65329f2896df3da5cf3266cc9166f93f3a5 \
+ gomod://github.com/google/btree;version=v1.1.2;sha256sum=faee8550c5fffb4ae1dadde5ccaccb13298726f9fad226bb4eed0c03c90a481d \
+ gomod://github.com/google/go-tpm;version=v0.9.4;sha256sum=a8a5e504fbd78284a50e6ab625f6248cfbb89421fafdfee71d66abc6e1dfc192 \
+ gomod://github.com/google/nftables;version=v0.2.1-0.20240414091927-5e242ec57806;sha256sum=ceb96b39a6f9004d8c217a6ae61b91a69c250bc30fbf3a04cd87cbbfddea73c8 \
+ gomod://github.com/gorilla/csrf;version=v1.7.3;sha256sum=39923b0dde0b8be30d3572589a8cc2ea515ca36a3e542269645db36aff7d6842 \
+ gomod://github.com/gorilla/securecookie;version=v1.1.2;sha256sum=fd7c0de7000c2e6a123d73e1249e1dce892ba29d2d03b00dc81d5fcee41d5895 \
+ gomod://github.com/hdevalence/ed25519consensus;version=v0.2.0;sha256sum=111cafade3ba9c7c3adf66b6a424386e30829c46c60b80dabe288e1837d30e33 \
+ gomod://github.com/illarion/gonotify/v3;version=v3.0.2;sha256sum=fef3e17f676c8ce98b60f0e2180fc4e3331e6e1604eaf96ab8791e073f96a7af \
+ gomod://github.com/insomniacslk/dhcp;version=v0.0.0-20231206064809-8c70d406f6d2;sha256sum=be28971fb642a9c4cf9f16e07332310af05c291584b6440b32849ca058dd345d \
+ gomod://github.com/jellydator/ttlcache/v3;version=v3.1.0;sha256sum=278dfc9b4882eaeb9b56e925b574028f3e9cc4436645b93f56ccb69de134a898 \
+ gomod://github.com/jsimonetti/rtnetlink;version=v1.4.0;sha256sum=81625291f4d0a08718dfd2170873d1adfd8fc2248657584f520c4de6de9e2e4d \
+ gomod://github.com/kballard/go-shellquote;version=v0.0.0-20180428030007-95032a82bc51;sha256sum=ae4cb7b097dc4eb0c248dff00ed3bbf0f36984c4162ad1d615266084e58bd6cc \
+ gomod://github.com/klauspost/compress;version=v1.17.11;sha256sum=88dea800cc6a11ccb9dd2f0dd487f30e8701870abdfc11245e41dcfc9f3d428e \
+ gomod://github.com/kortschak/wol;version=v0.0.0-20200729010619-da482cc4850a;sha256sum=09c15500a0ef54af0796f37282dd5377d2b866e4c36c87dcb6b2894cf3114dc5 \
+ gomod://github.com/kr/fs;version=v0.1.0;sha256sum=d376bd98e81aea34585fc3b04bab76363e9e87cde69383964e57e9779f2af81e \
+ gomod://github.com/mattn/go-colorable;version=v0.1.13;sha256sum=08be322dcc584a9fcfde5caf0cf878b4e11cd98f252e32bc704e92c5a4ba9d15 \
+ gomod://github.com/mattn/go-isatty;version=v0.0.20;sha256sum=f2d5f89ca451577e17464b9bb596dc0d0ecececb5eaa63622c41b57cd0b7b8cc \
+ gomod://github.com/mdlayher/genetlink;version=v1.3.2;sha256sum=0924e7da370fdb2e7bea20fdde519ae37377db35500cd0aaf09769eddb314e19 \
+ gomod://github.com/mdlayher/netlink;version=v1.7.3-0.20250113171957-fbb4dce95f42;sha256sum=b427c8c746e87c2f8033678fb87cdcf5cefb21ce16f35930eff91683661395f0 \
+ gomod://github.com/mdlayher/sdnotify;version=v1.0.0;sha256sum=26f4efbcba73eaec323973c8ae335bad430e5d6947097976cfbe7c9547f68c90 \
+ gomod://github.com/mdlayher/socket;version=v0.5.0;sha256sum=931626341956178fe6015b128fdda22283480d05dc964675307eb61ed39c29fe \
+ gomod://github.com/miekg/dns;version=v1.1.58;sha256sum=179bd419d011fd90802355756f59fff70ddf9a5886a4db6336a6d05783552b16 \
+ gomod://github.com/mitchellh/go-ps;version=v1.0.0;sha256sum=f2f0400b1d5e136419daed275c27a930b0f5447ac12bb8acd3ddbe39547b2834 \
+ gomod://github.com/peterbourgon/ff/v3;version=v3.4.0;sha256sum=b49537268ce67eb755d773fdd2a3e1c9c6dec0731993a4f742080416eb9b12a6 \
+ gomod://github.com/pierrec/lz4/v4;version=v4.1.21;sha256sum=bd2e8ef13800ca42205b0d4085a927a6d012b82cfa831769be4830036e953bec \
+ gomod://github.com/pkg/sftp;version=v1.13.6;sha256sum=0cdf6bd0edef9db8137ce398c9bbe514713e42cf2d4d415b5025f4a3c33f249d \
+ gomod://github.com/safchain/ethtool;version=v0.3.0;sha256sum=bfa1a3fe314a3f2ac4c4385a6c4694708e4881bfd86c34668eca92656e398590 \
+ gomod://github.com/skip2/go-qrcode;version=v0.0.0-20200617195104-da1b6568686e;sha256sum=3fc1c4d11c79001d1cc2df0de87493b324b9af141cc59ae8c212612dd2c90e90 \
+ gomod://github.com/tailscale/goupnp;version=v1.0.1-0.20210804011211-c64d0f06ea05;sha256sum=1c7ed6ecc16b6f402c225bae88a067a8bc1574cded894638b820c5da751823cc \
+ gomod://github.com/tailscale/hujson;version=v0.0.0-20221223112325-20486734a56a;sha256sum=8e65bacebfc0a1edc067fd97f839fcfeb93c1e7b8cc0186d1773cff4e125d9d5 \
+ gomod://github.com/tailscale/netlink;version=v1.1.1-0.20240822203006-4d49adab4de7;sha256sum=a5195ef600f8d9a0fb8501eea85e4fe0321a74bd57dec88f07b8569d0ee4f55e \
+ gomod://github.com/tailscale/peercred;version=v0.0.0-20250107143737-35a0c7bd7edc;sha256sum=87d0f4f3b1d59ea45c9a87b775b615bebd721a5870dafedc63cc860ec4aac281 \
+ gomod://github.com/tailscale/web-client-prebuilt;version=v0.0.0-20250124233751-d4cd19a26976;sha256sum=1d02f0804bb41e0743b7d889b8e2dbd8466a89793f03997f4c1fd10f9e8974c3 \
+ gomod://github.com/tailscale/wireguard-go;version=v0.0.0-20250304000100-91a0587fb251;sha256sum=7b82eb990f2f3686d335cdff5e988f8d4e27e031d563fb0e37bce1a3b0c5a83f \
+ gomod://github.com/tailscale/xnet;version=v0.0.0-20240729143630-8497ac4dab2e;sha256sum=438abf28ce5fb03adf529c2cb57a451f9b243c4a2a181d9d06cdb61bb10960e7 \
+ gomod://github.com/toqueteos/webbrowser;version=v1.2.0;sha256sum=1227d3ebeab16d8232a304a10b087984a96ad30f7439b6687bab2f5747d308cf \
+ gomod://github.com/u-root/u-root;version=v0.14.0;sha256sum=a65c0a06236b10a0cea50e603fef0ced0c7e343a66ef957a45ebcd51f304d286 \
+ gomod://github.com/u-root/uio;version=v0.0.0-20240224005618-d2acac8f3701;sha256sum=f6e8f912e968744999d508c3df54f0308aaf337052a8d0bd3edd72583adfd9cd \
+ gomod://github.com/vishvananda/netns;version=v0.0.4;sha256sum=cdaebcd80614800a74537e59855730d42393ffc109ebd47e5b8437dcc4d7f429 \
+ gomod://github.com/x448/float16;version=v0.8.4;sha256sum=73b24a41037ea999ab66851e3798a0973dbb1f214925915b01f0820f7b2f1500 \
+ gomod://go4.org/mem;version=v0.0.0-20240501181205-ae6ca9944745;sha256sum=9b5037a57122457fdc5c2c0a31e3996b44cf9dfcdee5c53ed72adfd88d077795 \
+ gomod://go4.org/netipx;version=v0.0.0-20231129151722-fdeea329fbba;sha256sum=e15f57de368c92b826010181906f26112ba3a0d7fde7d94c8a8c60c525dc4044 \
+ gomod://golang.org/x/crypto;version=v0.37.0;sha256sum=7ce6b2be21be1ce9e04dc784830e08931f09b5903596b8017839322c9e828667 \
+ gomod://golang.org/x/exp;version=v0.0.0-20250210185358-939b2ce775ac;sha256sum=de413a97994a7b97541cb1f867439fa20b60361d79dc35e8e2faf847a2a188df \
+ gomod://golang.org/x/net;version=v0.36.0;sha256sum=e823a351657b349cd8a705079778769534d90a5c3a6c7caed174a79608257d12 \
+ gomod://golang.org/x/oauth2;version=v0.26.0;sha256sum=d4c1bfc661b8ff3ccb3d5d30babf5f67798b59e2bfa932b6f1f739e67e45dcda \
+ gomod://golang.org/x/sync;version=v0.13.0;sha256sum=4bdaaffe69cc7c997cff97cd81dc9c6777777bd311175f100f76b049bbbe7ed9 \
+ gomod://golang.org/x/sys;version=v0.32.0;sha256sum=85d47075d21fd7ef35d9a47fc73f2356fb3cd2e7fab7f45c874b814bf312127d \
+ gomod://golang.org/x/term;version=v0.31.0;sha256sum=bdeda753791b44f6815ccf3367ff57ffaca9bb100bfe8ebe112c8da133e78aec \
+ gomod://golang.org/x/text;version=v0.24.0;sha256sum=f585335a57a6fa5fa0c0bf319b45f0909e5ff1aba91e8567187ba8e423084c00 \
+ gomod://golang.org/x/time;version=v0.10.0;sha256sum=7420a12017bb47bd85ccab81f9d1f7a3ff6daf8da768256292bc1dbb3bf9ba63 \
+ gomod://gvisor.dev/gvisor;version=v0.0.0-20250205023644-9414b50a5633;sha256sum=b373e677e77f28c095b43ed976f5d9ca885d3b1b5407a71a5691e4a47e813bd0 \
+ gomod://k8s.io/client-go;version=v0.32.0;sha256sum=74ee50d42da263c0743212c17a12f16d8a3283f31f7c9209c6327b6656ac1550 \
+ gomod://sigs.k8s.io/yaml;version=v1.4.0;sha256sum=ef031ff78ff9b7036e174eef49dfbd77468dc4f0afb73a639b61f8ab3a1cc425 \
+ gomod://software.sslmate.com/src/go-pkcs12;version=v0.4.0;sha256sum=55019a391e5302a51ba62e98909e006224b81207866da90beaf582ec0dee036f \
+"
new file mode 100644
@@ -0,0 +1,70 @@
+LIC_FILES_CHKSUM += " \
+ file://pkg/mod/filippo.io/edwards25519@v1.1.0/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/anmitsu/go-shlex@v0.0.0-20200514113438-38f4b401e2be/LICENSE;md5=45a47c50f5b33ff9ab3347c7db1bfb6a;spdx=MIT \
+ file://pkg/mod/github.com/coder/websocket@v1.8.12/LICENSE.txt;md5=bc0b6f68116166556efe7184edfda3e9;spdx=ISC \
+ file://pkg/mod/github.com/coreos/go-iptables@v0.7.1-0.20240112124308-65c67c9f46e6/LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/creack/pty@v1.1.23/LICENSE;md5=93958070863d769117fa33b129020050;spdx=MIT \
+ file://pkg/mod/github.com/digitalocean/go-smbios@v0.0.0-20180907143718-390a4f403a8e/LICENSE.md;md5=c1653934903ab2785c09c2bdd7344526;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/djherbis/times@v1.6.0/LICENSE;md5=3cafd141825e7a44b1c6a047b2320012;spdx=MIT \
+ file://pkg/mod/github.com/fxamacker/cbor/v2@v2.7.0/LICENSE;md5=827f5a2fa861382d35a3943adf9ebb86;spdx=MIT \
+ file://pkg/mod/github.com/gaissmai/bart@v0.18.0/LICENSE;md5=05779e437ec35570aca43cc66a95e056;spdx=MIT \
+ file://pkg/mod/github.com/go-json-experiment/json@v0.0.0-20250223041408-d3c622f1b874/LICENSE;md5=9d210c7471ce08e3db5261f33bf8fce6;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/godbus/dbus/v5@v5.1.1-0.20230522191255-76236955d466/LICENSE;md5=09042bd5c6c96a2b9e45ddf1bc517eed;spdx=BSD-2-Clause \
+ file://pkg/mod/github.com/golang/groupcache@v0.0.0-20210331224755-41bb18bfe9da/LICENSE;md5=19cbd64715b51267a47bf3750cc6a8a5;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/google/btree@v1.1.2/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/google/go-tpm@v0.9.4/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/google/nftables@v0.2.1-0.20240414091927-5e242ec57806/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/gorilla/csrf@v1.7.3/LICENSE;md5=c30eee78985cf2584cded5f89ba3d787;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/gorilla/securecookie@v1.1.2/LICENSE;md5=c30eee78985cf2584cded5f89ba3d787;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/hdevalence/ed25519consensus@v0.2.0/LICENSE;md5=4041895a1f717acb5be52e24edb19917;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/illarion/gonotify/v3@v3.0.2/LICENSE;md5=6b631a3123c7c679195702a8a35c9f21;spdx=MIT \
+ file://pkg/mod/github.com/insomniacslk/dhcp@v0.0.0-20231206064809-8c70d406f6d2/LICENSE;md5=ceaf33b8b657b2d342dbd3bb59578d8a;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/jellydator/ttlcache/v3@v3.1.0/LICENSE;md5=4cea77626c625d583c98a85a8658f9d2;spdx=MIT \
+ file://pkg/mod/github.com/jsimonetti/rtnetlink@v1.4.0/LICENSE.md;md5=75a8090d4c02945ad9d61c7cce77ed48;spdx=MIT \
+ file://pkg/mod/github.com/kballard/go-shellquote@v0.0.0-20180428030007-95032a82bc51/LICENSE;md5=9d95d1ad917c814c23909addb8692eeb;spdx=MIT \
+ file://pkg/mod/github.com/klauspost/compress@v1.17.11/LICENSE;md5=d0fd9ebda39468b51ff4539c9fbb13a8;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/kortschak/wol@v0.0.0-20200729010619-da482cc4850a/LICENSE;md5=5a0acdb344844a21e2df8bc2e1fe5f2d;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/kr/fs@v0.1.0/LICENSE;md5=591778525c869cdde0ab5a1bf283cd81;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/mattn/go-colorable@v0.1.13/LICENSE;md5=24ce168f90aec2456a73de1839037245;spdx=MIT \
+ file://pkg/mod/github.com/mattn/go-isatty@v0.0.20/LICENSE;md5=f509beadd5a11227c27b5d2ad6c9f2c6;spdx=MIT \
+ file://pkg/mod/github.com/mdlayher/genetlink@v1.3.2/LICENSE.md;md5=e08504321a9b3e86ee07433c231b33f1;spdx=MIT \
+ file://pkg/mod/github.com/mdlayher/netlink@v1.7.3-0.20250113171957-fbb4dce95f42/LICENSE.md;md5=e08504321a9b3e86ee07433c231b33f1;spdx=MIT \
+ file://pkg/mod/github.com/mdlayher/sdnotify@v1.0.0/LICENSE.md;md5=a57b2e272a0c75c413c784bb877cda50;spdx=MIT \
+ file://pkg/mod/github.com/mdlayher/socket@v0.5.0/LICENSE.md;md5=bdcb2fcb7aea8a34d189ef572a59ff88;spdx=MIT \
+ file://pkg/mod/github.com/miekg/dns@v1.1.58/LICENSE;md5=b5215dfec2c591290f399a181669bef7;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/mitchellh/go-ps@v1.0.0/LICENSE.md;md5=56da355a12d4821cda57b8f23ec34bc4;spdx=MIT \
+ file://pkg/mod/github.com/peterbourgon/ff/v3@v3.4.0/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/pierrec/lz4/v4@v4.1.21/LICENSE;md5=09ece85f3c312a63b522bfc6ebd44943;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/pkg/sftp@v1.13.6/LICENSE;md5=452fc5cc5a9127a0e828d73423d45035;spdx=BSD-2-Clause \
+ file://pkg/mod/github.com/safchain/ethtool@v0.3.0/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/skip2/go-qrcode@v0.0.0-20200617195104-da1b6568686e/LICENSE;md5=515c25e1450ede2834397875c18439d4;spdx=MIT \
+ file://pkg/mod/github.com/tailscale/goupnp@v1.0.1-0.20210804011211-c64d0f06ea05/LICENSE;md5=3d7eee8afacfccb446c1ac30289c965d;spdx=BSD-2-Clause \
+ file://pkg/mod/github.com/tailscale/hujson@v0.0.0-20221223112325-20486734a56a/LICENSE;md5=073f7ac93b9172ac4e1d258584fc0271;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/tailscale/netlink@v1.1.1-0.20240822203006-4d49adab4de7/LICENSE;md5=2ade771c7d7211af507864e8dd520529;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/tailscale/peercred@v0.0.0-20250107143737-35a0c7bd7edc/LICENSE;md5=94eaeed21686fd9816f57f86b9914071;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/tailscale/web-client-prebuilt@v0.0.0-20250124233751-d4cd19a26976/LICENSE;md5=a672713a9eb730050e491c92edf7984d;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/tailscale/wireguard-go@v0.0.0-20250304000100-91a0587fb251/LICENSE;md5=995598bc9de2b4c987c2cb87fc24f341;spdx=MIT \
+ file://pkg/mod/github.com/tailscale/xnet@v0.0.0-20240729143630-8497ac4dab2e/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/toqueteos/webbrowser@v1.2.0/LICENSE.md;md5=6072d29ffa4b14338ff8fd68f17f6851;spdx=MIT \
+ file://pkg/mod/github.com/u-root/u-root@v0.14.0/LICENSE;md5=bf431bf303eaf01f17bef6624d9f2208;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/u-root/uio@v0.0.0-20240224005618-d2acac8f3701/LICENSE;md5=52bf39fc1e426b6459f5c9a142e5bfbd;spdx=BSD-3-Clause \
+ file://pkg/mod/github.com/vishvananda/netns@v0.0.4/LICENSE;md5=2ade771c7d7211af507864e8dd520529;spdx=Apache-2.0 \
+ file://pkg/mod/github.com/x448/float16@v0.8.4/LICENSE;md5=de8f8e025d57fe7ee0b67f30d571323b;spdx=MIT \
+ file://pkg/mod/go4.org/mem@v0.0.0-20240501181205-ae6ca9944745/LICENSE;md5=fa818a259cbed7ce8bc2a22d35a464fc;spdx=Apache-2.0 \
+ file://pkg/mod/go4.org/netipx@v0.0.0-20231129151722-fdeea329fbba/LICENSE;md5=628df198dc9e033b86b8eedff039ff86;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/crypto@v0.37.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/exp@v0.0.0-20250210185358-939b2ce775ac/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/net@v0.36.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/oauth2@v0.26.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/sync@v0.13.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/sys@v0.32.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/term@v0.31.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/text@v0.24.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/golang.org/x/time@v0.10.0/LICENSE;md5=7998cb338f82d15c0eff93b7004d272a;spdx=BSD-3-Clause \
+ file://pkg/mod/gvisor.dev/gvisor@v0.0.0-20250205023644-9414b50a5633/LICENSE;md5=fbbaf7613c100c84b8f20701859dee2d;spdx=MIT+%26+Apache-2.0 \
+ file://pkg/mod/k8s.io/client-go@v0.32.0/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57;spdx=Apache-2.0 \
+ file://pkg/mod/sigs.k8s.io/yaml@v1.4.0/LICENSE;md5=b5d30dd5bc47d1b56b678ac06dead1c7;spdx=MIT+%26+Apache-2.0+%26+BSD-3-Clause \
+ file://pkg/mod/software.sslmate.com/src/go-pkcs12@v0.4.0/LICENSE;md5=259f3802525423b1a33efb1b85f64e18;spdx=BSD-3-Clause \
+"
+
+LICENSE += " & Apache-2.0 & BSD-2-Clause & BSD-3-Clause & ISC & MIT"
new file mode 100644
@@ -0,0 +1,65 @@
+SUMMARY = "Tailscale client and daemon"
+DESCRIPTION = "The easiest, most secure way to use WireGuard and 2FA."
+HOMEPAGE = "https://github.com/tailscale/tailscale"
+SECTION = "networking"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=a672713a9eb730050e491c92edf7984d"
+require ${BPN}-licenses.inc
+
+MAJOR_MINOR = "${@oe.utils.trim_version('${PV}', 2)}"
+SRC_URI = "git://github.com/tailscale/tailscale.git;protocol=https;branch=release-branch/${MAJOR_MINOR};destsuffix=${GO_SRCURI_DESTSUFFIX} \
+ file://tailscaled.init \
+ "
+SRCREV = "7648989bc54738b1e40dde74fa822984a63cbc05"
+SRCREV_SHORT = "${@d.getVar('SRCREV')[:8]}"
+require ${BPN}-go-mods.inc
+
+GO_IMPORT = "tailscale.com"
+GO_INSTALL = "${GO_IMPORT}/cmd/tailscaled"
+GO_LINKSHARED = ""
+GOBUILDFLAGS:prepend = "-tags=${@','.join(d.getVar('PACKAGECONFIG_CONFARGS').split())} "
+GO_EXTRA_LDFLAGS = "-X tailscale.com/version.longStamp=${PV}-${SRCREV_SHORT} -X tailscale.com/version.shortStamp=${PV}"
+
+inherit go-mod update-rc.d
+
+PACKAGECONFIG ??= "aws bird capture cli kube ssh tap wakeonlan"
+PACKAGECONFIG[aws] = ",ts_omit_aws"
+PACKAGECONFIG[bird] = ",ts_omit_bird"
+PACKAGECONFIG[capture] = ",ts_omit_capture"
+PACKAGECONFIG[cli] = "ts_include_cli"
+PACKAGECONFIG[completion] = ",ts_omit_completion"
+PACKAGECONFIG[kube] = ",ts_omit_kube"
+PACKAGECONFIG[ssh] = ",ts_omit_ssh"
+PACKAGECONFIG[tap] = ",ts_omit_tap"
+PACKAGECONFIG[wakeonlan] = ",ts_omit_wakeonlan"
+
+PACKAGES =+ "${PN}d"
+
+INITSCRIPT_PACKAGES = "${PN}d"
+INITSCRIPT_NAME:${PN}d = "tailscaled"
+INITSCRIPT_PARAMS:${PN}d = "defaults 91 9"
+
+RDEPENDS:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'completion', 'bash-completion', '', d)}"
+RDEPENDS:${PN}d = "iptables"
+RRECOMMENDS:${PN}d = "kernel-module-wireguard"
+
+# override do_install, since it installs in bin instead of sbin
+do_install() {
+ install -d ${D}/${sbindir}
+ install -m 0755 ${B}/bin/${GOOS}_${GOARCH}/tailscaled ${D}/${sbindir}/tailscaled
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'cli', 'true', 'false', d)}" = 'true' ]; then
+ install -d ${D}/${bindir}
+ ln -sr ${D}${sbindir}/tailscaled ${D}${bindir}/tailscale
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${UNPACKDIR}/tailscaled.init ${D}${sysconfdir}/init.d/tailscaled
+ fi
+}
+
+# mark these as src, since there are bash script etc in there and QA will complain otherwise
+FILES:${PN}-src += "${libdir}/go/src"
+FILES:${PN}d = "${sysconfdir}"