[FFmpeg-devel] [PATCH 1/5] configure: Add an explicit check and option for nvcc

Jean-Baptiste Kempf jb at videolan.org
Tue Feb 26 16:01:33 EET 2019


On Tue, 26 Feb 2019, at 14:51, Timo Rothenpieler wrote:
> > Note that, unlike the cuda_sdk dependency, using nvcc to compile
> > a kernel does not cause a build to become non-free. Although nvcc
> > is distributed with the cuda sdk, and is EULA encumbered, the
> > compilation process we use does not introduce any EULA covered
> > code or libraries into the build. In this sense, using nvcc is just
> > like using any other proprietary compiler like msvc - compiling free
> > code doesn't suddently make it non-free.

But there are alternatives to MSVC to compile C or C++ code. Are there for nvcc?

> However, it really does not fell non-nonfree to me that the only way to 
> build these filters remains to register with nvidia, accept their 
> various EULAs and download their SDK for nvcc and the libs around it.
> Even moving them out of ffmpeg and loading them at runtime (which would 
> be a major ABI, API and usability break) does not solve that.
> You still need to either get said SDK and build them yourself, or get 
> someone else to do it an run into the same issue with redistributability 
> there.

I agree with you here. This feels as non-free to me too.

GPLv3 says:
'The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.
However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.'

I don't think nvcc fit the "System Libraries" or the "general-purpose tools" or "generally available free programs".

GPLv2 says:
' For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.
'However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.'

I don't think nvcc fit the"normally distributed with the operating system".

LGPLv2 and v3 follow GPLv2 and v3, respectively. 

Jean-Baptiste Kempf - President
+33 672 704 734

More information about the ffmpeg-devel mailing list