Hello!
I'm planning to use javacpp-presets for ffmpeg for my educational app.
However, I'm a bit confused about javacpp-presets being Apache 2 while ffmpeg being GPL.
Is it OK to use javacpp-presets + ffmpeg for a closed-source app?
(ie. does javacpp-presets library dynamically-link to ffmpeg? also, is it ok to use dynamically-linked GPL-code for a closed-source app?)
I'm not sure whether this is the right place to ask, but I just want to make some informed decision before diving in.
Thank you!
This would not work with GPL, but most of FFmpeg is LGPL, so as long as you distribute, with your application, unmodified non-GPL modules, it should be OK for use in a closed-source application, yes.
so the default ffmpeg build I get when I do:
libraryDependencies ++= "org.bytedeco.javacpp-presets" % "ffmpeg" % "3.2.1-1.3"
is LGPL?
Or do I need to do something else to get a LGPL-build?
It contains some GPL components...
oh... ok.
then how about using version-postfix for gpl/lgpl version?
e.g) 3.2.1-1.3-lgpl --> lgpl pre-built
3.2.1-1.3-lgpl_no-nonfree --> lgpl without non-free
3.2.1-1.3-gpl --> gpl pre-built
Sure, contributions are welcome!
I guess
https://github.com/bytedeco/javacpp-presets/blob/master/ffmpeg/cppbuild.sh
this file looks like the start...
but how do you guys build javacpp-presets-ffmpeg?
e.g. via a CI (e.g. CircleCI?)?
should I add an "if git repo branch has 'LGPL' then ... / else : ..." logic?
Or would you like to have an option for the build?
(e.g. ./cppbuild.sh --lgpl ?)
Use an environment variable, something like ENABLE_GPL=0 so we can use it
from the parent cppbuild.sh script as well, with a default of 1, along with
others like MAKEJ sounds good.
We've started to use AppVeyor and Travis CI for now...
ok I've only used CircleCI, on which I can do a chain-reaction-build (e.g. push to 'lgpl' and 'gpl' branch while building master --> CircleCI sees another push to lgpl, then starts a 'lgpl-dist' build --> and so on)
...but I'm not sure if I can pull that one on Travis CI.
I'll be working on Bash scripting (but I don't write bash scripts often, so... it can take a bit longer than expected)
BTW, @vb216 have you looked into CircleCI? I wonder if it would be any better than Travis CI. It sure looks more expensive though.
Did look at it a while ago, looks good as well. I suspect as with each one we've tried so far (Jenkins, Travis, Appveyor) there'd be some annoying bug/limit we'd hit somewhere! I think we're close to a decent solution though, just trying to iron out last few bugs (Appveyor has starting generating weird build errors on a couple of projects now!)
@saudet @vb216
CircleCI is free for basic level - 1 vcore(?) free for non-opensource, 4 vcore free for opensource...
(note: for non-opensource, 1-vcore per one org / person, not per-project)
BUT: circleCI has its kinks too (though they're extremely beginner-friendly - you can ssh to their build servers & see what went wrong, etc.)
@saudet
sorry I'm taking too long...
I'm temporarily teaching kids instead of my mom :(
(teaching on a priv. academy - mom left shortly to see my bro graduate from US)
Thanks to @tmurakam, the default builds for FFmpeg no longer contain GPL code!
Please give it a try with 4.3.1-1.5.5-SNAPSHOT: http://bytedeco.org/builds/ Enjoy!
Thank you @tmurakam! This enhancement saves me a lot of time and work!
GPL-less builds have now been released with version 1.5.5! Enjoy
Most helpful comment
Thanks to @tmurakam, the default builds for FFmpeg no longer contain GPL code!
Please give it a try with 4.3.1-1.5.5-SNAPSHOT: http://bytedeco.org/builds/ Enjoy!