Closed chca42 closed 7 years ago
I agree it shouldn't be there, especially since it's not actually used for Visicut proper, only the projector output.
And I see the LICENSE file is woefully incomplete. I've done a quick search on nearly everything in the lib directory, and I haven't found anything else that isn't free, but it needs to be explicitly documented - if only so we know where everything comes from.
When I get a chance I'll see if I can replace it with PNGJ (https://github.com/leonbloy/pngj).
@FroChr123 is the projector feature actually used somewhere or was it merely a scientific project? Do you see an easy way to make it optional as sort of a plugin architecture?
Ugh, fixing the licensing requirements for all those libs was a pain. LLC will need it as well, but I'm not going to tackle it immediately.
Thank you very much for your huge effort.
Regarding the png library: I did a temporary quick replacement with javax (which is trivial) to remove the proprietary component here: https://github.com/chca42/VisiCut/commit/b10298862667a4d248f7e5329b6a1a535b1b94a6 - if it is not performance critical, this could also be a quick fix.
Hi everyone and sorry for the late response.
There are two relevant things about that: It is true that this PNG library has unclear license conditions. That is the reason why I asked the developers about that before I included it. They told me that it would be perfectly fine to redistribute the JAR file of that library - they just wanted to protect the source code if I remember correctly. Of course that means that the soure code of this library is not accessible right now.
Nevertheless, this feature could be deactivated at the moment or replaced with the slower / original conversion procedure as mentioned in the previous comment. At the time of development this was an idea for an additional feature and the implementation for it works as intended - but the hardware setup for that feature is a bit more complicated, which is the reason why it was not really used.
It would probably be best just to apply the small changes I proposed. It would remove the dependency and thus make VisiCut completely free software while retaining all functionality. If there would be performance issues in future versions that make use of this feature, there would be an incentive to actually look for free alternatives with acceptable performance. Currently, imho, the inclusion of the library is just a completely unnecessary freedom sacrifice ;-)
@chca42 Could you rebase your changes and create a pull request? Your commit does not merge cleanly, probably because it's from quite a time ago.
@mgmax I have now created a pull request: #419
Thanks for merging!
Hi, first of all: Thanks a lot for the great effort to make lasercutting available to the free world. However, I noticed that last year, a proprietary library has been included in VisiCut (PngEncoder by ObjectPlanet, Inc.). According to the code (VisiCut/src/com/frochr123/helper/PreviewImageExport.java), the reason for this step are performance issues with the free default library from javax. While some people may prefer higher performance, others care more about freedom and would at least have the option to get a completely free program (on free licenses: https://www.gnu.org/licenses/license-list.html). Additionally, the removal or replacement of proprietary components would allow the inclusion of VisiCut in GNU/Linux distribution like Debian (and their derivatives).
I would be willing to help with finding alternative code, e.g. to close the performance vs. freedom gap, if feasible.
Last but not least: Are there other non-free components I missed?
Best regards, Christian