-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Add support for Plan 9 #7575
Comments
This comment has been minimized.
This comment has been minimized.
Oops, I think this should be labeled as |
cc @djdv who i believe has made some progress towards a 9p fuse alternative |
Very cool! The short of it is that it supports read and (unstable) write operations for the IPFS APIs, exposed over FUSE (using cgofuse) and/or a 9P server (using p9). The 9P library currently supports the 9p2000.L protocol version which covers Linux hosts nativley via The implementation I have retains the When everything involved is completed (and stable), it would offer a way to spawn and manage 9P servers on a Plan 9 host. Doing things like binding IPNS to a multiaddr target which listens for 9P requests. Which could be bound to Currently on Linux, the branch handles this automatically and the same would be done on Plan 9. |
@djdv Do you have any performance figures / benchmarks? The current FUSE implementation is really slow. I'd be curious to know if this improves things on Linux when using v9fs instead of FUSE? |
@aidanharris It's easy to build and run yourself, but remember that nothing is considered stable yet. They'll both get proper compliance tests later, but that hasn't happened yet. Same with standards around the config format and command line arguments, but I still need to discuss those with people from the project. If you (or anyone) end up wanting to try it yourself, feel free to reach out to me for help and feedback (positive or negative). |
I've been working with the Harvey folks on Plan 9 & 9P2000 support for the |
how? |
@lolbinarycat The Plan 9 changes have already been merged. I think v0.8.0 will be the first go-ipfs release to support Plan 9. You can try out v0.8.0-rc2. |
what I don't get is what commad to use to build ipfs on plan9. just typing |
@lolbinarycat Platforms with working C compilers I'll usually pass in the I imagine on P9 you can just bind the Go compiler and do something similar. |
@djdv |
@lolbinarycat Run
|
@fhs now it's giving me "can't open version list lockfile: ... : file locked" |
@lolbinarycat Go expects that error to have certain format. The error should be |
@fhs now I'm getting |
Does this seem related: ipfs/go-fs-lock#19 ? |
@lolbinarycat I've been using cwfs on 9front and fossil on 9legacy to test Go, so it's likely other file servers (e.g. hjfs) aren't that well tested. Try changing the error strings in hjfs if that's what you're using. cwfs errors:
hjfs errors (note:
|
@fhs I got it built, most things seem to work, but |
@lolbinarycat You need to configure loopback addresses:
|
On latest HEAD (4403946)
|
I have
cmd/ipfs
building and working on Plan 9. Most of thego-ipfs
dependencies have already been patched to support Plan 9, however few are still pending review or not tagged with a release. The missing bits before I can submit a PR togo-ipfs
itself:ipfs/go-ds-badger
can use it. (This isn't strictly necessary if we can remove badger fromplugin/loader/preload.go
ifGOOS=plan9
)ipfs/go-ds-flatfs
needs a new release tagipfs/go-fs-lock
needs a new release taglibp2p/go-tcp-transport
needs to uselibp2p/go-reuseport-transport
>= v0.0.4 and tagged with a new releaseThe changes need in
go-ipfs
is very small (mostly build tags changes). Few things currently missing:cmd/ipfswatch
doesn't build because offsnotify
(see Polling fallback fsnotify/fsnotify#9).Note: Go 1.15 comes with few fixes to the Plan 9
net
package that are necessary for ipfs to work. Because quic currently panics on Go 1.15 (see quic-go/quic-go#2614), I ended up back-porting those fixes to Go 1.14 to get everything working./CC @willscott
The text was updated successfully, but these errors were encountered: