Skip to content

all: flesh out, fix some bugs in plan9 port #15491

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 18 commits into from
Apr 2, 2025
Merged

Conversation

bradfitz
Copy link
Member

@bradfitz bradfitz commented Apr 1, 2025

@bradfitz bradfitz requested a review from raggi April 1, 2025 12:28
Copy link

review-ai-agent bot commented Apr 1, 2025

Pull Request Revisions

RevisionDescription
r3
Tailscale now supports Plan 9This comprehensive changeset introduces Plan 9-specific implementations for various Tailscale components, including routing, DNS management, SSH, networking, and userspace support. Key additions include Plan 9-specific handlers for network interfaces, system interactions, and OS-specific configurations.
r2
Go module dependency configuration updatedRemoved direct dependency on 9fans.net/go and changed it to an indirect requirement in go.mod
r1
Plan 9 platform support addedComprehensive changes to add Plan 9 operating system support across multiple Tailscale components, including new Plan 9-specific implementations for SSH, routing, DNS management, and various system interactions.
✅ AI review completed for r3

@funkaoshi
Copy link

Amazing.

@Uramekus
Copy link

Uramekus commented Apr 1, 2025

Hey brad, as a plan9 user still and a extensive Tailscale user, i'm actually so glad this works!!

@fmarier
Copy link

fmarier commented Apr 1, 2025

Should it be added to https://tailscale.com/install.sh?

@JJJollyjim
Copy link

@fmarier plan 9 doesn't use posix-compatible sh, but I guess an sh+rc polyglot might be possible…

@JJJollyjim
Copy link

Am I right in understanding that the LocalAPI is completely unauth+world-accessible? E.g. it's not listening on localhost in a special namespaced /net/tcp but the main systemwide one?

@bradfitz
Copy link
Member Author

bradfitz commented Apr 1, 2025

Am I right in understanding that the LocalAPI is completely unauth+world-accessible? E.g. it's not listening on localhost in a special namespaced /net/tcp but the main systemwide one?

"world" accessible as in localhost, correct.

That's covered a bit more in tomorrow's blog post. It was a short term hack for development since the old implementation didn't work.

bradfitz added 18 commits April 2, 2025 07:06
Updates #5794

Change-Id: I8c466cae25ae79be1097450a63e8c25c7b519331
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: I12e8417ebd553f9951690c388fbe42228f8c9097
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: Ib78a3ea971a2374d405b024ab88658ec34be59a6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This wasn't right; it was spinning up new goroutines non-stop.
Revert to a boring localhost TCP implementation for now.

Updates #5794

Change-Id: If93caa20a12ee4e741c0c72b0d91cc0cc5870152
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: I0f96383dea2ad017988d300df723ce906debb007
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Otherwise this was repeated closing control/derp connections all the time
on netmon changes. Arguably we should do this on all platforms?

Updates #5794

Change-Id: If6bbeff554235f188bab2a40ab75e08dd14746b2
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: Ia7e71c32e6c0cd79eb32b6c2c2d4e9a6d8c3e4d6
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: Id7bdc08263e98a1848ffce0dd25fc034747d7393
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
To ease local debugging and have fewer moving pieces while bringing up
Plan 9 support.

Updates #5794

Change-Id: I2dc98e73bbb0d4d4730dc47203efc0550a0ac0a0
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: Ibf74d017e38e0713d19bef437f26685280d79f6f
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: Ia6b2429d57b79770e4c278f011504f726136db5b
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: I7b05cd29ec02085cb503bbcd0beb61bf455002ac
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: I77df1eb9bea9f079a25337cb7bbd498cf8a19135
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This requires the rsc/plan9 ndb DNS changes for now:

https://9fans.topicbox.com/groups/9fans/T9c9d81b5801a0820/ndb-suffix-specific-dns-changes
rsc/plan9@e8c148f
rsc/plan9@1d0642a

Updates #5794

Change-Id: I0e242c1fe7bb4404e23604e03a31f89f0d18e70d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
So we can link tailscale and tailscaled together into one.

Updates #5794

Change-Id: I9a8b793c64033827e4188931546cbd64db55982e
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: Idc67082f5d367e03540e1a5310db5b466ee03666
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Change-Id: I3ac00ddb29c16e9791ab2be19f454dabd721e4c3
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Updates #5794

Change-Id: I1d8b005a1696835c9062545f87b7bab643cfc44d
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
@bradfitz bradfitz force-pushed the bradfitz/enterprise_plan9 branch from 14ee16e to fb676d6 Compare April 2, 2025 14:09
@bradfitz bradfitz merged commit 65c7a37 into main Apr 2, 2025
51 checks passed
@bradfitz bradfitz deleted the bradfitz/enterprise_plan9 branch April 2, 2025 14:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants