4 ms·
Incremental file by file rewrite, for sure.
by koverstreet 3y ago
Incremental file by file rewrite, for sure.
- Someone 3y agoThere’s a lot of unexplored stuff w.r.t. the GPL license, but I doubt that would legally work for a rewrite of CDDL-licensed ZFS to a GPL license.
- speed_spread 3y agoAn implementation in a different language should be pretty clear of license constraints? No code shared is no code shared.
- Someone 3y agokoverstreet wrote “Incremental file by file rewrite, for sure.” That implies intermediate versions that have both CDDL-licensed ZFS code and new rust code. That rust code, inside the ZFS code base, can’t be GPL-licensed because of the incompatibility of the two licenses. As the writer of that code, you can separately license your code as GPL if you want, but not in a product containing any CDDL-licensed code (at least in the reading of the FSF. See https://en.wikipedia.org/wiki/Common_Development_and_Distribution_License#GPL_compatibility https://en.wikipedia.org/wiki/Common_Development_and_Distrib...) So, you could argue that you can license the full product as GPL once all CDDL licensed code has been replaced, and then continue working on that version. IMO, it is at the least unclear whether that’s legally true. (All personal opinion, not legal advice, etc)
- kmeisthax 3y agoEven if you finish your rewrite and then release it, the final product might still be a derivative work of the original, because "translations" are legally codified as derivative works. Of course, this is bounded by the merger doctrine and various court cases regarding software compatibility. If you can show that everything in your version has to be structured the same way as the original in order for it to read and write ZFS volumes, thus making it a sort of 'external interface', then you probably have good ground to stand on against Oracle. But things like source file structure or internal call chains are unlikely to constitute an interface in a filesystem driver. The closest legal example of a "file-by-file rewrite" would be BSD; but the lawsuit they got from UNIX System Laboratories was settled, so it creates no precedent. The reason why the reverse engineering crowd talks a lot about clean-room is because you naturally discover the interface boundaries as part of the development process. Legally speaking, you don't need two separate and isolated groups of people, but starting from a document of how the system 'should' work and then adding in implementation details that you actually need is a good way to avoid accidentally copying things you don't need to.
- pajko 3y agoOnly a clean-house reimplementation, by not looking at the code, just the functionality.
- speed_spread 3y agoCould one do this alone if they had confirmed split personality disorder?