Javacpp-presets: newbie question on licensing [GPL]

Created on 14 May 2017  路  15Comments  路  Source: bytedeco/javacpp-presets

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!

enhancement question

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!

All 15 comments

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

archenroot picture archenroot  路  23Comments

blueberry picture blueberry  路  32Comments

archenroot picture archenroot  路  56Comments

Maurice-Betzel picture Maurice-Betzel  路  32Comments

mmanco picture mmanco  路  20Comments