I am working on open source project, that uses the source code from FlatAssembler project, which uses following license, based on BSD 2-clause with one additional clause added at the end of the text.
So, the questions are:
-
What this additional clause changes?
-
Is it legal to use this code and to license my project under GNU GPL? (The original BSD 2-clause license is compatible with GPL, but this one seems to be not.)
flat assembler version 1.71 Copyright (c) 1999-2012, Tomasz Grysztar.
All rights reserved.This program is free for commercial and non-commercial use as long as
the following conditions are adhered to.Copyright remains Tomasz Grysztar, and as such any Copyright notices
in the code are not to be removed.Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.The licence and distribution terms for any publically available
version or derivative of this code cannot be changed. i.e. this code
cannot simply be copied and put under another distribution licence
(including the GNU Public Licence).
The usual IANAL applies etc. etc.
It looks to me as if the author tried to turn the BSD license into a viral license by demanding that the original license terms be unchanged for this and any derived work.
While this is a perfectly viable idea, I doubt it would stand up in court under all circumstances – the various versions of GPL are quite long, and there is a good reason why they have to be. Viral licensing is delicate matter, because it walks a thin line – you have to define carefully what is “source” and what is a “binary distribution”, what constitutes a “derived work”, etc., all the while avoiding clashes with existing law that might render the license partially void. More permissive licenses like BSD-2 can be much shorter for the simple reason that they do not have to make these distinctions: as long as you retain the copyright notice and author credits, you are free to copy and modify as you please.
What the consequence of this license would be is a bit unclear: it could be that the last clause is void, which would make it equivalent to plain BSD-2; or it could be that it overrides most of the freedom that regular BSD-2 would give you, which would make it even more restrictive than GPL.
The problem is that the author tries to release under BSD-2, but at the same time forbidding redistribution under a viral license, which is contradictory, because forbidding relicensing would basically make the license viral itself.
All that theoretical and legal mumbo-jumbo aside, the obvious solution is to contact the author and ask for permission; if he’s fine with you including his code in your project, then there is no problem.
1
Disclaimer: IANAL!
The extra clause does nothing which condition 1 does not already do, so it is pointless:
“1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.”
This already says that basically you cannot change the license. Because “the above copyright notice”, “this list of conditions” and “the following disclaimer” constitute the entire license. You can’t change a thing.
Also, note how the addition of the useless extra clause wrecks the organization of the license. Clauses 1 and 2 (“this list of conditions”) refer to the “above copyright notice” and the “following disclaimer”. This means that everything which follows the list of conditions is a disclaimer. So any additional conditions must be added to the list, before the disclaimer. Additional conditions should not be added after the disclaimer.
The license is compatible with the GPL because you can use that source file in a GPL-ed program. By including BSD licensed modules in a program, you are not changing the source code license of those modules to GPL.
6
I received an official answer, provided by CITnet JIRA for FUNCTIONAL SUPPORT Joinup:
The clause that makes this specific “BSD-like” licence becoming
“copyleft-like” is:“The licence and distribution terms for any publically available version or
derivative of this code cannot be changed. i.e. this code cannot simply be
copied and put under another distribution licence (including the GNU Public
Licence).”However, the copyleft character is explicitly limited to the source code
(as it is the case in a weak or moderated copyleft licence like the LGPL or
the MPL). There is no pretention for “virality” regarding the merged object
code.Therefore, as long the source files of your own code and the source file of
“FlatAssembler” are independent and separated in different directories, you
can distribute the whole project compiled together in one executable file
(that is product of the both sets of source files), and you are authorised
to license it as follows:“This project < XXX > (source and binaries) is copyrighted < Your name, Year >
under the EUPL, at the exception of specific source code files where other
specific copyright licensing mentions exist.”
So, in this case, this should be the proper answer, given by an lawyer.
1