Comments (4)
There are currently no plans to change the licensing of the project(s).
The goal of the current licensing scheme is to allow developers to use the saker.build system for building their software projects. This can be done with the current licenses, and without the need to apply a specific license to the project that you're building.
Although the projects are licensed under GPL-3.0-only, using it for building projects doesn't apply any restrictions on the built projects themselves. (Be it commercial or non-commercial)
The current licensing scheme also allows creating extensions for saker.build and related projects, as the API JARs that can be used for compilation are usually licensed under LGPL-3.0-only. Therefore you can create and distribute plugins/extensions for saker.build without the need of using GPL licensing for them.
These are the use cases that are crucial to this project and the current licensing enables it while keeping it open.
If you have a special use case that doesn't fall under any of the above, feel free to discuss it further here, or by sending a mail to [email protected].
from saker.build.
What are these LGPL jars that were mentioned? From my preliminary search every component (or at least their source code - which would mean that the compiled part is also affected) of saskerbuild is licensed under the GPL 3.0.
It would be nice to know what can be used and what cannot be used as I want to prevent any contamination license-wise. Not knowing what could get my project infected as of now is a dealbreaker for me
from saker.build.
Each released version of a package can contain multiple bundles. (A bundle is a JAR file.) Each bundle can be licensed differently, and when you use a given bundle, you need to comply with the license of that specific bundle.
Let's look at an example, the 0.8.17 release version of saker.build: https://nest.saker.build/package/saker.build?version=v0.8.17&tab=bundles
The saker.build-v0.8.17 bundle is released with the GPL-3.0-only license. When you use this bundle, you need to comply with GPL 3.0. So generally if you compile your software with this JAR in the classpath, or distribute it, you need to comply with GPL 3.0.
The saker.build-api-v0.8.17 bundle is also available, which is licensed under LGPL-3.0-only. This bundle contains the API classes of saker.build-v0.8.17. If you use this bundle during compilation, there's no requirement for your software to be licensed under GPL, LGPL, or whatever.
Note that the saker.build-api bundles don't contain the saker.build runtime, and they are to be only used for compilation.
This licensing scheme allows extensions to be built without the GPL license infecting the source code of such extensions. It also requires that software distributions that include the saker.build runtime to be licensed under the GPL license, keeping the source code open.
You can also use saker.build to build your project without having GPL infecting your codebase, presuming you're not redistributing or compiling against GPL licensed code.
Each bundle should include a META-INF/LICENSE
file that specifies the license of each bundle. This license information should also match the info on the bundle pages of https://nest.saker.build/. (Like on the above example page) If you see a difference, feel free to report it.
(Edit: If you're wondering, as a copyright holder, it is possible for us to distribute bundles under LGPL, even if the code that it is being built from is licensed under GPL.)
from saker.build.
Furthermore, if your use-case requires different licensing, and the current scheme doesn't allow that, I'm happy to discuss different licensing options, most likely without the expectation of any kind of compensation.
from saker.build.
Related Issues (18)
- Warn about unrecognized build task input parameters
- Build cache
- Build trace HOT 3
- Examine possible issues with case-insensitive file systems HOT 1
- Make comma (',') optional as a separator character in build script HOT 1
- Allow directly calling build targets in same script
- Allow setting global default inputs for tasks
- Switch expression in build script
- Deadlock detection fails if threads are transitively waited for
- Support dynamic reallocation of computation tokens
- Use locking primitives instead of synchronized blocks
- Revise deadlock detection HOT 3
- java.lang.NoSuchFieldError: VERSION_FULL_COMPOUND when running saker build HOT 2
- Build execution deadlocks if the executor machine is also present as a cluster HOT 1
- Classpath loading test flakiness HOT 3
- Add option for performing build without incremental state (CI mode)
- Context based build task invocation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from saker.build.