here’s a licensing question. Orthanc is licensed under GPLv3, which means all code linked with GPL 3.0 source code must be disclosed under a GPL 3.0 compatible license [1].
So, the question whether a plugin is automatically forced to be distributed under GPLv3 depends on how the Orthanc core calls the plugin [2].
What’s the maintainer’s stance on this topic? Are plugins legally required to be disclosed? If so, what is the disclosure procedure?
Yes, a plugin is forced to be distributed under GPLv3 or AGPLv3, as it is a derivative work of Orthanc (it cannot run without its hosting Orthanc server).
From the GPL FAQ: “If the main program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single combined program, which must be treated as an extension of both the main program and the plug-ins.” [1]
You are free to choose the way of disclosing the code of such a contributed plugin. We nonetheless invite you to index it at the following locations: https://github.com/jodogne/OrthancContributed
I’m still confused. I’ve read this thread here and this thread.
Assume my lua script running on the orthanc server looks like this:
function OnStoredInstance(instanceId, tags, metadata, origin)
...
os.execute("python3 /python/run_inference.py")
...
end
where “run_inference.py” is a python script that can run outside of orthanc which performs some neural network computation on a dicom input file and outputs a dicom file.
Do I need to disclose the content of “run_inference.py” according to the license?
In my understanding, since your python script runs in another process and does not use Orthanc source code, it is not affected by the license and you don’t have to disclose it.