-
Notifications
You must be signed in to change notification settings - Fork 110
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 Decky Zerotier v0.1.0 #665
Conversation
@hyacz I wanted to go over licenses for ZeroTier since it's BSL licensed and that could effect our ability to distribute the plugin. Specifically, the license states that:
All code is built by our CI/CD system before it is sent to the store where it can be downloaded by users so the ZeroTier is being built not by the official source but instead by our CI/CD which makes that binary a derived work according to the license. Not to mention, the plugin could already be defined as a "derived work" and the phrase "non-production use" is potentially a problem because if this is deployed to our store we are shipping an interface to an environment that while it may not be paid for, I believe might qualify as production in certain jurisdictions. Have you worked with BSL code before? Do you know how many, if any of these points are of concern for the team? I'd like to know your thoughts on the above and any information you can provide as this looks like a great idea for a plugin that I'd love to use myself but I need to be confident about keeping ourselves out of harm's way in terms of licenses and so on. I have other less important concerns about the sizes of the binary used for the backend but those can be addressed later. |
Overall I think this is fine, I have honestly never used BSL code before and I don't want to hurt anyone. I made this just to play LAN games with my friends. I am happy to discuss this with you, and I also hope to avoid potential risks. I agree with you that plugins distributed from the store may be ”in production use" to some extent, BSL 1.1 allows production use under the scope of the "Additional Use Grant". Here is the definition from Zerotier:
I think it does not violate the above prohibitions, so it is OK even if it is defined as "in production use". To put it simply, this plugin only implements the client function of ZeroTier. It cannot even work without the official ZeroTier service. Any user who needs advanced functions (such as larger network capacity) still needs to pay ZeroTier. It does not harm the main interests of ZeroTier. The binary is 17M, I'm not sure if that meets the requirements for store distribution. |
I appreciate your detailed response, I'd say that we're likely in the clear here and won't have to worry at all. I think we're fine to proceed with the current setup but ideally we'd want to take the binary from a trusted source such as an official download provided by zerotier done as a remote binary. This means our hosting doesn't have to store a new 17 mib file everytime the plugin recieves an update. I'll make sure to have you do so before the plugin goes to production. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Plugin is good for testing after discussion over licenses and review of plugin contents.
Thanks for your review and suggestions, ZeroTier seems to only provide RPM/DEB packages for Linux instead of single binaries. I'll try to find it. Alternatively, try to extract the binary from the RPM/DEB package. If there are other examples of plugins doing this, please let me know, it will be helpful. Testing this plugin requires using the official ZeroTier service, creating a network through the web page, and then joining/leaving this network through the plugin. If testers have questions about this, I'm happy to help. |
Do we need to build ZeroTier to use this plugin? I'm getting a PluginLoader.import SyntaxError on Stable Decky/Steam OS/Client. |
You do not need to build it yourself, the binary is built automatically and is part of the plugin download. Please collect your plugin logs from the logs folder. |
I developed using the new API, so I think there might be some issues with stable Decky? I've only tested it myself on Decky v3.0.0-pre5 + Steam OS/Client. |
Yeah, first place I went to look; /homebrew/logs/decky-zerotier/ folder is empty |
Since this plugin uses a new API it is not compatible with Decky Loader v2 and the stable Steam OS/client. It will currently only work with Decky Loader v3 and the Beta version of SteamOS/client. I want to hold the release until the Beta channel hits stable. |
As plugin is using format that only works with Decky V3, it is exempt from the requirement for plugins to be tested by the end of this month. However once Decky V3 is out in stable it will have a month to receive testing and feedback etc before it falls into the same category. |
Worked A+. Well done I'll definitely be keeping this one around. Just wish there was an easier way to get text onto the deck without manually entering it. If its ready to be merged I recommend it is |
Thank you for appreciating this plugin! While entering a lot of text on the deck can be quite annoying, considering that you typically don’t join too many Zerotier networks, entering a 16-bit network ID when creating a new network seems manageable. Therefore, I decided against building a web interface for remote management via other devices like PCs. If you need to set up multiple networks, you can switch to desktop mode and connect an external keyboard, or login to the deck via SSH. Then, locate the Zerotier executable file in the plugin’s bin directory and manage your networks using sub-commands such as |
My comment about entering text isn't directed at you. Its a general problem even with the SteamDeck, even Decky has this problem for the plugin download url. My bad if it seemed like it was something directed at you |
Don't mind, I know this is a generic problem. I just wanted to give some solutions. in addition, clipboard sharing would be a good idea, KDE Connect should be able to do that. |
Decky Zerotier
https://github.com/hyacz/decky-zerotier
This plugin is a Zerotier client UI designed for SteamDeck to support the LAN connection function of some games.
Checklist:
Developer Checklist
Plugin Checklist
Plugin Backend Checklist
Testing