Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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:

  1. What this additional clause changes?

  2. 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:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. 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).

share|improve this question
add comment

3 Answers

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.

share|improve this answer
    
I am in close contact with the author. His opinion is clear for me (although some kind of contradictory) he wants his code to be licensed under permissive license in order to be acceptable for use in any projects - open or closed source, free or non-free. On the other hand he dislikes the viral nature of GPL and does not want his code to be licensed under such viral licenses. –  johnfound Feb 6 '13 at 7:01
add comment

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.

share|improve this answer
    
The fact that the extra clause is placed under the disclaimer is not very important. The will of the author is clear for me. What if this clause was included as number 3 in the list of conditions? –  johnfound Feb 6 '13 at 1:18
    
I'm wary of this answer; it seems fine from the perspective of current GPL versions, but would it remain valid if the "or (at your option) any later version" option was present? Who is to say whether a later version of the GPL may make it incompatble, thus rendering a user of the code unable to exercise their right to jump up to that later version? –  Jimmy Shelter Feb 6 '13 at 1:23
    
@johnfound If the clause was included as number 3 in the list of conditions, it would be obvious that it's saying the same thing as 1. If the code is "copied and put under a different license", then it means that "Redistributions of source code did not retain the above copyright notice, this list of conditions and the following disclaimer." –  Kaz Feb 6 '13 at 1:47
    
@mh01 Future versions of the GPL will probably not have a problem with this license specifically because of the extra condition (i.e. not have a problem with the unmodified BSD). –  Kaz Feb 6 '13 at 1:50
    
Let say my code is A and Flatassembler is F. The whole program will be A+F. But if I release A+F under GPL, then someone can remove A and get F, licensed under GPL, what obviously contradicts with the examined license and the will of the copyright holder. Or I am missing something important? –  johnfound Feb 6 '13 at 5:40
show 1 more comment
up vote 0 down vote accepted

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.

share|improve this answer
    
I call B.S. The original license already prohibits any modifications to the copyright notice or the conditions! You cannot legally any BSD code under the GNU license, or any other license. You can only include it in a program whose other source files are under the GNU license. That does not require the source file becoming GNU licensed. –  Kaz Feb 14 '13 at 0:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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