3

I am looking for a suitable license for a current software project. The project is special as it is rather a template, its primary goal is to provide a solid basis for scientific software. Therefore, I would like to provide the source code (only little amounts of actual source code, the majority of the project are configuration files for CMake, YAML configuration files for continuous integration, etc.) under a license that is very permissive.

The typical work flow would be to clone the project and adapting it, including renaming the project and changing the license in LICENSE and (if any) in the source code files. Hence, anyone should be able to copy and adapt the source code, use it for their own project (commercial or open-source), and even re-license it.

Now the only thing that prevents me from CC0'ing the code is that an attribution would be nice. However, I am not sure how attribution is actually defined. For me it would be sufficient if at some point (README or ACKNOWLEDGMENTS for open-source projects, in the documentation of a commercial software) the original project is mentioned.

What would be a suitable license for this situation? I was thinking about Creative Commons CC-BY 4.0 license, which would require attribution but apart from that everyone is allowed to do anything. The CC licenses are generally considered not appropriate for software (as pointed out here, for example), but I would say it might fit here as it is not a common software project.

How does the license have to be included? In LICENSE I would say. Does it have to be in all the source files (which I find inconvenient)?

What forms could the attribution assume?

  • 1
    Your project is still code, so CC is probably not the best option, in my opinion. Choosing a licence is rather a question of objectives. What do you want people to be able to do with your code? For example, do you want them to be able to use it without sharing the changes they made to it or do you want them to share the same way as you do? Do you want it to integrate well with software under other licences, like GPL? – Alexis Dufrenoy Nov 18 '19 at 13:35
  • In summary, I would like to allow everything (including commercial use without publishing the modified source) under the condition that a reference to the original project is published. – carlosvalderrama Nov 18 '19 at 13:43
6

What would be a suitable license for this situation?

The license that comes closest to your desires seems to be the Apache 2.0 license.
It is a permissive license that allows derived works to be distributed under different terms than your template and it has a mechanism for handling attribution notices. The license does have a requirement that if different license terms are applied to a derived work, then they must effectively include the terms of the Apache 2.0 license. This means that people can't use an even more permissive license that would allow removing the attribution.

How does the license have to be included? In LICENSE I would say. Does it have to be in all the source files (which I find inconvenient)?

The full license text should be in a LICENSE file.
It is strongly recommended to have a license indication in each source file. The Apache license recommends this text:

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

I can understand that you would skip this in files that are expected to be heavily edited by users of your template. The recommendation to include it in each file is to ensure that the license information remains intact even when the file gets somehow separated from the LICENSE file.

What forms could the attribution assume?

Under the Apache 2.0 License, attributions must be placed in a NOTICE text file. The attribution could be something like

This software is created using the <XYZ> template created by carlosvalderrama. 
The template itself can be found at <link to repository/website>.
  • Thanks for pointing out this license, it looks very promising! – carlosvalderrama Nov 18 '19 at 14:32
  • Does MIT licence also allow derivatives to have different licences? – S. Tarık Çetin Nov 27 '19 at 22:12
  • 1
    @S.TarıkÇetin, The MIT license allows sublicensing, so yes. – Bart van Ingen Schenau Nov 28 '19 at 7:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.