Can proprietary-licensed software (that will be distributed, alongside with the hardware) use GPL software (distributed from package manager)?.
It's basically scientific-measurement-device, that manipulates image from usb-camera.
Tools that will be used for image processing are ffmpeg
, imagemagick
, gnuplot
, cat
, cut
etc (that will be installed using the package manager). These software sources won't be modified at any point in time.
Is it OK to use propriety license on how we process the data?
For example: in python (bare with me, it's just for the demonstration) /I know all of following can be done with pure Python, but that is not the question/
os.system("ffmpeg -f video4linux2 -i /dev/video0 -vframes 1 -video_size 640x480 test.jpg")
os.system("convert test.jpg -crop 110x270+230+70 cropped.jpg")
os.system("convert cropped.jpg -resize 1x270! out.txt")
os.system("cat out.txt | cut -d')' -f1 | cut -d'(' -f2 | gnuplot -p -e \"set term png;plot '<cat' with lines \" > test.png")
Is above code considered, aggregation
? or derivative
of GPL software? or seperate software? Could you explain me what is considered aggregation
, exec
, pipes
, rpc
, function calls within a shared address space
, etc.
The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are nonfree or GPL-incompatible.
Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).
If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
Addtionally, what is arms's lengths
? Is above 4 lines of python code considered arm's lengths
?
However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and nonfree programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.
Lastly, Is above 4 lines of python code considered combined program that has INTIMATE communication
? what exactly intimate communication
? and Does image data considered complex data structure
?
It depends on how the main program invokes its plug-ins. If the main program uses fork and exec to invoke plug-ins, and they establish intimate communication by sharing complex data structures, or shipping complex data structures back and forth, that can make them one single combined program. A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.
Sorry, English is not my native language, and don't fully understand these paragraphs in GPL's FAQ. I, personally, like F(L)OSS, but license selection is above me.
Also, Is above 4 lines of code considered Wrapper
?. And GPL licenses are irrelevant to 4 lines of code? what exactly Wrapper
?