Open nativeit opened 3 months ago
I received the following response after reaching out to their technical support seeking information on the source code for the "Orca-Flashforge" binaries they are distributing on their website:
On 2024-04-26 01:00, FFsupport wrote:
Dear Sorry for the late reply.
We have consulted our engineer,we don't have the Orca-Flashforge source code.
Wish you a happy life.
点击满意度评价 [1]
Best Regards,
Lisa(邵莉沙)|Aftersales
I received an email from their support overnight, they have posted the source for Orca-Flashforge on their GitHub: https://github.com/FlashForge/Orca-Flashforge
I have not had an opportunity to audit this repository, but it's the first step in the right direction anyway. I will run a diff later today and post back with any notable findings.
EDIT: The new repository is not affiliated with their official Github, where they maintain an OrcaSlicer fork. That's not necessarily suspicious, in and of itself, but considering the context, I would say it's not ideal. If nothing else, they are still including an incompatible restrictive commercial EULA with their copy link.
Hi, Any findings yet on your diff? Thanks!
Just wanted to link to a few other issues relevant to this one:
This may be beating a dead horse, but communication with anyone from Flashforge has not seemed to be completely clear, thus far. So for now, I'm sticking a disclaimer on everything related to this: I am not trying to dogpile on Flashforge with this. I am their customer, I very much enjoy their product, and I am sincere in my desire to see Flashforge succeed in a fashion that allows me to proudly support them, and purchase their products in the future. They need to engage properly in the open source communities from which they have already chosen to base their Adventurer 5M series of products upon. They only stand to benefit from making the right decisions here, and I believe their doing the right thing is owed to the hard work and ongoing efforts of volunteer contributors working to make OrcaSlicer, Klipper3D--and by extension, the Flashforge Adventurer 5M series of products--the fantastic projects that they are.
But this is also serious violation of the trust inherent with such endeavors, and as much as I am rooting for Flashforge to do what's right, they have so far not responded with anything one might call "confidence boosting". Rather they have only responded when pushed, and appear to be reticent to follow through with their own commitments to the GPL license requirements that govern the firmware and slicing software they have already adopted as the official features of the Adventurer 5M series.
I am posting the results of the summary repository diff-trees below, but they are extremely long and I am still working through them.
I encourage anyone else who shares my concerns to run this diff and replicate my efforts:
### 1. Clone Orca-Flashforge to the directory ./OrcaFlash-Diff && cd into repo
git clone https://github.com/FlashForge/Orca-Flashforge.git OrcaFlash-Diff && cd OrcaFlash-Diff
### 2. Add OrcaSlicer repo as a new remote "branch" named "OrcaSlicer-Origin"
git remote add -f OrcaSlicer-Origin https://github.com/SoftFever/OrcaSlicer.git
### 3. Fetch & update
git remote update
### For initial summary
git diff-tree main remotes/OrcaSlicer-Origin/main --compact-summary
You can see the output of my initial diff-tree
summary at https://app.warp.dev/block/RtZUczkuuibC1S86GjkXNp, however it is far too long to simply paste into a comment here.
Because of how these repositories are constructed, the large array of dependencies that are likely common to both repos, but may have been pulled with different versions or signatures, and because of all of the contributed profiles for printers and filaments that aren't necessarily relevant to this particular situation--it's going to be necessary to drill down and run targeted diffs on things more likely to show substantial and/or meaningful changes--things like the Makefiles, GUI components, localization/language, tests, and build scripts.
Even without the diff, there are immediate violations and other concerning issues front and center:
Ctrl-F
find/replace on things like "OrcaSlicer" to "Orca-Flashforge" all over the repo, in a very strange total-but-not-quite attempt to rebrand otherwise unchanged OrcaSlicer. Here is a pretty straightforward example of this:@@ -328,28 +283,28 @@ int wmain(int argc, wchar_t **argv)
wchar_t path_to_slic3r[MAX_PATH + 1] = { 0 };
wcscpy(path_to_slic3r, path_to_exe);
- wcscat(path_to_slic3r, L"Orca-Flashforge.dll");
+ wcscat(path_to_slic3r, L"OrcaSlicer.dll");
// printf("Loading Slic3r library: %S\n", path_to_slic3r);
HINSTANCE hInstance_Slic3r = LoadLibraryExW(path_to_slic3r, nullptr, 0);
if (hInstance_Slic3r == nullptr) {
- printf("Orca-Flashforge.dll was not loaded, error=%d\n", GetLastError());
+ printf("OrcaSlicer.dll was not loaded, error=%d\n", GetLastError());
return -1;
}
// resolve function address here
- orca_flashforge_main = (Slic3rMainFunc)GetProcAddress(hInstance_Slic3r,
+ orcaslicer_main = (Slic3rMainFunc)GetProcAddress(hInstance_Slic3r,
#ifdef _WIN64
lines 9325-9360
I'm not 100% sure where this kind of piecemeal feature-swap/re-badge falls under licensing requirements, but I would expect that if nothing else, such changes should require them to remove all identifiable OrcaSlicer/BambuLabs branding, and release this as something forked from, or wholly unaffiliated with, OrcaSlicer.
I don't think it would be appropriate for Flashforge to prepend its own brand name with the word "Orca" without permission. I would think that everything would need to then comply with GPLv3 requirements for releasing derivatives, including making the source fully available, licensing it with the same GPLv3 license, and including all credits and licenses for upstream projects appropriately.
This is not an official or exhaustive list, but rather a friendly guide from a loyal Flashforge customer, intended for @FlashforgeOfficial, @dayaue, @linnaiyuan, and anyone else affiliated with these projects to get started on the right path:
I hope OrcaSlicer defends its rights in this, and in the process maybe helps to bring Flashforge into the fold, or at the very least, prevents Flashforge from diluting an incredibly well-executed and functional application by failing to give it its due credit, and by conflating its own hobbled and potentially closed-source binaries with OrcaSlicer and its developers.
I won't offer the same kind of specific recommendations for OrcaSlicer and its contributors as I did previously for Flashforge, mainly because they are all almost certainly more qualified and more informed than I am regarding GPL licenses, the generally accepted conventions for these kinds of projects, and because I have not paid them like I have paid Flashforge, and do not feel that OrcaSlicer owes me a thing.
Thank you very, very much for the efforts and contributions made by everyone who has worked on this project. OrcaSlicer is an outstanding open source software project, and you all deserve all the success you can get. Please let me know if there is anything I can do, including taking my hyper-verbose lectures for Flashforge elsewhere, to help make OrcaSlicer better.
Thank you @nativeit I will take some time to read through it first. I really appreciate your efforts to defend open source!
Ditto +100
❤️
Re: "Orca" being used in the name of their forked product - that is governed by trademark law. If Orcaslicer has been trademarked, if suit was brought, a lawyer could argue, and a judge could rule that use of "Orca" violates the trademark (even though the trademark in my example isn't over "Orca" but "Orcaslicer"), but I'm not sure how likely. Better would be if "Orca" was trademarked for use in 3d printing areas - seems likely that both "Orca" and "Orcaslicer" could be trademarked with the narrow focus of additive manufacturing or maybe even manufacturing as a whole.
Re: not making "official forks" -- this isn't something that the GPLv3 or any other OSS license (that I am aware of) mandates, so this demand/request is just a nicety that it would be good if Flashforge were to do. Makes the job of tracking down differences much easier, but not required for them to comply.
@nativeit Thank you for spending your free time working on this very important issue. For the consumer 3D printing industry to succeed as it has for the past 15+ years, we need to make sure that companies are held to account for their use of all the hard work that people have put in over the years.
@SoftFever have you trademarked "Orca" and/or "Orcaslicer" anywhere? I think maybe that should happen if it has not already.
@SoftFever have you trademarked "Orca" and/or "Orcaslicer" anywhere? I think maybe that should happen if it has not already.
IANAL, but this gets a little tricky with software because of the international nature of it, but in the US you can trademark passively, known as a "common law" trademark (normally indicated by putting ™ on the branding/slogans) -- this signifies that you intend to defend and are laying claim to the use of. If you officially register the trademark, you'd want to put the ® (for registered). The latter gets you more protection.
I really appreciate the attention on this! I work I.T. with a professional baseball team, and have been quite busy the last few weeks, but I have not forgotten about it, and will continue to pursue some sort of mutually beneficial outcome that helps everyone involved here, but especially the users of OrcaSlicer's incredible software, and FlashForge's otherwise solid intro hardware.
My current position is that there doesn't appear to be any good reason to fork OrcaSlicer at all, and the more open and convenient approach would be to integrate FlashForge hardware as fully into the OG OrcaSlicer as best as possible. Probably won't be super popular with the suits in China, but I will talk to the folks who have already done a lot with the firmware, and see if there's some way to bring next-level FlashForge support to OrcaSlicer unilaterally.
Keep up the great work, @SoftFever and team!
One of many issues with companies co-opting open source software like this!
A few quick notes about the image below:
OrcaSlicer deserves all the success and good reputation they have earned, and are still coming to them! Usurping their good name for a half-baked, vendor lock-in, stripped down, objectively worse version of the original is a really pathetic move, and as much as I want to print directly to my networked Adventurer 5M, I will hack its firmware before I support "OrcaFlashforge". I will document the effort, I will donate to the software projects involved, and I will publish tutorials for future Adventurer 5M owners to do the same, complete with full credit and donation links to the people that actually committed the hard work necessary for OrcaSlicer, Klipper3D, and the reverse engineering effort for the Adventurer 5M firmware.
So, anyway, tldr; @FlashforgeOfficial - your sofware is crashing on MacOS:
Re: "Orca" being used in the name of their forked product - that is governed by trademark law. If Orcaslicer has been trademarked, if suit was brought, a lawyer could argue, and a judge could rule that use of "Orca" violates the trademark (even though the trademark in my example isn't over "Orca" but "Orcaslicer"), but I'm not sure how likely. Better would be if "Orca" was trademarked for use in 3d printing areas - seems likely that both "Orca" and "Orcaslicer" could be trademarked with the narrow focus of additive manufacturing or maybe even manufacturing as a whole.
Re: not making "official forks" -- this isn't something that the GPLv3 or any other OSS license (that I am aware of) mandates, so this demand/request is just a nicety that it would be good if Flashforge were to do. Makes the job of tracking down differences much easier, but not required for them to comply.
@nativeit Thank you for spending your free time working on this very important issue. For the consumer 3D printing industry to succeed as it has for the past 15+ years, we need to make sure that companies are held to account for their use of all the hard work that people have put in over the years.
@SoftFever have you trademarked "Orca" and/or "Orcaslicer" anywhere? I think maybe that should happen if it has not already.
Nah, it doesn't. As long as one follows the GPL license and clearly credits OrcaSlicer, I have no problem (in fact, I'm happy) with anyone forking Orca. This is what Open Source is meant to be.
However, I also agree with what @nativeit said: if a company isn't committed to investing heavily in a slicer (which is a complex and large project), it's probably not a good idea to fork Orca just for the sake of "owning" one. It’s not fair to their users, as maintaining software requires a lot of skill, knowledge, and dedication.
@SoftFever I think maybe you misunderstood me. I also don't have a problem with folks forking GPL projects and adding their own modifications, presuming they follow the terms of the GPL, including crediting the prior authors.
What I am suggesting though - is making sure there are some protections over the name "OrcaSlicer" as it is applied to something in the additive manufacturing world. Fork, yes, but use the name "OrcaSlicer" - that's where I personally think a company has gone too far. I'm certainly not speaking for you, so if you feel differently then by all means, that's how things should be treated.
@SoftFever I think maybe you misunderstood me. I also don't have a problem with folks forking GPL projects and adding their own modifications, presuming they follow the terms of the GPL, including crediting the prior authors.
What I am suggesting though - is making sure there are some protections over the name "OrcaSlicer" as it is applied to something in the additive manufacturing world. Fork, yes, but use the name "OrcaSlicer" - that's where I personally think a company has gone too far. I'm certainly not speaking for you, so if you feel differently then by all means, that's how things should be treated.
Thanks @keithel I totally agree with you here.
I had a friend send me this earlier, apparently this thread got a quick screen cap on a YouTube video[1] posted a few days ago on the channel @thenextlayer.
Considering it's a lot of inside baseball on some fairly niche topics, I'd say it's performing rather well, getting to nearly 50k views in the last two days.
I am not familiar with the person who made the video, but I assume they're sincere, and they have a lot good things to say. It's focused on the 3D printing industry in particular, but a lot of the points they raise are the same kinds of issues--very legitimate and ongoing issues--that the FOSS community have been working for decades to confront, but sadly this kind of struggle to protect our own is never ending.
I have already filed a complaint with the Free Software Foundation (GNU)[2] and I highly encourage everyone reading this to take just a brief minute to do the same. Links are below.
Whatever else happens with this, I just want to underline that OrcaSlicer is a f'cking impressive accomplishment, and it's made my own experiences with this new hobby way more enjoyable and productive. Thank you, so much.
If anyone's got an extra few bucks, please consider sponsoring @SoftFever and OrcaSlicer to support their ongoing development efforts.[3]
I wish they would publish proper sources for Klipper on the 5m, they are completely out of compliance with that as well :/
I noticed the latest Creality Slicer is based on OrcaSlicer, has anyone more knowledgeable on these licenses checked them for compliance?
https://www.creality.com/pages/download-software
It's getting silly how many of these companies are forking just to add their logo and a few features. Why not just sponsor the project and add features to the main?
Is there an existing issue for this problem?
OrcaSlicer Version
v2.1.0-dev
Operating System (OS)
Linux, macOS, Windows
OS Version
All
Additional system information
No response
Printer
FlashForge Adventurer 5M/Pro
How to reproduce
Actual results
Expected results
Literally anything else.
Project file & Debug log uploads
English.zip
Checklist of files to include
Anything else?
License file from Orca-Flashforge.pkg > Contents > Resources > English.lproj