Can one take BSD licensed code and distribute it under GPL? Prompted by https://opensource.stackexchange.com/questions/304/can-i-take-bsd-licensed-code-and-distribute-it-under-gpl. The OP asks: Can I take code which is licensed under a permissive open source license (like the BSD license) and distribute it under a copyleft free software license (like the GPL)? Specifically, quoting the following from Wikipedia: In addition, the permissive nature of the BSD license has allowed many other operating systems, both free and proprietary, to incorporate BSD code. For example, Microsoft Windows has used BSD-derived code in its implementation of TCP/IP and bundles recompiled versions of BSD's command-line networking tools since Windows 2000. Also Darwin, the system on which Apple's Mac OS X is built, is a derivative of 4.4BSD-Lite2 and FreeBSD. Various commercial Unix operating systems, such as Solaris, also contain varying amounts of BSD code. And OpenBSD Journal: KernelTrap has an interesting article in which Theo de Raadt discusses the legal implications of the recent relicensing of OpenBSD's BSD licensed Atheros driver under the GPL. De Raadt says, "it has been like pulling teeth since (most) Linux wireless guys and the SFLC do not wish to admit fault. I think that the Linux wireless guys should really think hard about this problem, how they look, and the legal risks they place upon the future of their source code bodies." He stressed that the theory that BSD code can simply be relicensed to the GPL without making significant changes to the code is false, adding, "'in their zeal to get the code under their own license, some of these Linux wireless developers have broken copyright law repeatedly. But to even get to the point where they broke copyright law, they had to bypass a whole series of ethical considerations too." Specifically at stake is the question of whether or not is it legal to take a file or files licensed under a BSD licence, affix a GPL header at the top of such files without making any other changes to the content, place the GPL licence in the root and mention it in README, and distribute the results. If such licence amendment to include GPL (in addition to the BSD licence) is not legal, then why Microsoft's and Apple's practice is.
Yes, you can. To be precise, I claim that one can take BSD-licensed code and distribute it under the combined terms of both the BSD and the GPL licences. We know that, if I receive someone else's code under a BSD licence, I may redistribute it to you under those same terms. This is common practice, and not (I hope) in any way contentious. We also know that I may not redistribute it to you without the conditions that the BSD licence imposes; that is, I may not place less onerous conditions on you than BSD requires (that is, requiring the inclusion of the original copyright notice, the disclaimer, this list of conditions, and a prohibition on claiming the original author's endorsement on any modified version). So the question becomes whether I can distribute that code whilst adding more onerous terms than the BSD licence itself imposes. It is clear that I can. As the question notes, Microsoft is known to have taken code which it received under a BSD licence and used it in proprietary products. These come with very onerous conditions on the the use, modification, and redistribution of the derived code (usually, they permit one instance of it to be run, and no modifications nor redistributions of any kind). For clarity: if I were to seek from Microsoft permission to modify and/or redistribute the derived code, and they were to grant it, they would not be able to free me from the BSD requirements as they applied to the derived code; I would still need to comply with those. But they are perfectly capable of applying new, onerous requirements of their own. The GPL imposes conditions on redistribution that are more onerous than BSD's, but less onerous than those of most proprietary licences. I am therefore perfectly entitled to receive code under a BSD licence, and - with or without making modifications of my own - redistribute it, adding in the GPL's requirements, if I choose to. If I haven't modified the code, those added requirements are probably pointless; if you don't wish to be bound by them, you will go and get the code from the original author, who presumably will happily distribute it to you under the BSD licence. But if I have modified the code, and you wish to use those modifications, then you will need to abide by the requirements of both the BSD and the GPL licences, since both will apply to this new, combined work (the original code + my changes).
Being or not being open source makes fairly little difference in trademark law. If a commercial firm (Yoyodyne, say) had used the name &quot;Portable Network Graphics&quot; and the abbreviation &quot;PNG&quot; in trade, and taken such further steps as would be needed to protect it in the relevant countries, that firm would have a protectable trademark. Note that in some countries, a trademark must be registered to have any protection at all (much of the EU follows this rule). In others, use in commerce can offer some protection even without registration (the US follows this rule). Had this happened (in an alternate reality) Yoyodyne could have sent a cease and desist letter when open source developers started using the mark. If the devs did not cease, Yoyodyne might have obtained an injunction, or damages for trademark infringement, or both. They could also have issued a takedown notie to the site hosting the project. But had Yoyodyne failed to defend the mark effectively and allowed it to become generic, Yoyodyne might have lost all rights to it. Also, had Yoyodyne ceased to use it in trade for a significant period, they might have lost rights. This is a place where the different laws in different countries might lead to different results. Note that &quot;Portable Network Graphics&quot; is rather descriptive, and not particularly distinctive. Descriptive marks, like &quot;Tasty Pizza&quot; generally get weaker protection, while more distinctive marks, such as &quot;LuAnn's Tastee Pizza&quot; are more strongly protected, in general. Again this depends on the country, and the specific facts. In general the first to use, or to register a mark, gets the rights. When one entity is the first to use, but a different one is first to register, things can get confusing, and results will be different in different countries. Note that a Cease and Desist letter is not a legal requirement. It is a threat of possible future legal action, and often an offer to avoid such action if the recipient does as the sender requests. The recipient can comply with the letter, wait for court action, or try to make some sort of compromise deal. Open source projects, as other answers suggest, often choose to comply.
The Apache 2.0 license purports to be irrevocable, but it also presupposes that the supposed licensor has the right to grant permission to copy. In this case, that is untrue, so there never was a proper license and nothing to revoke (the copyright owner grants permission in the form of "a license" which is a legal abstraction, that normally is specified in the license document). An end-user snared by this illegal license might attempt to sue the author because of the legal screw-up but paragraph 9 says that the supposed licensor cannot be held liable. In this case, though, "licensor" is defined not as the person who hands you the license document, but as the copyright owner. So it's the employer who would be not liable under the terms of the document (but since the employer had nothing to do with the license, it's as though the license never existed). The end-user is a secondary infringer (the employee is the primary infringer, in illegally distributing the material). Under US law, that doesn't matter, the user is still liable. Under UK law, secondary infringement includes the element that you have to have reason to know that the copy is infringing, which in the scenario that you describe is not the case.
You can't patent an algorithm, but I'll assume you are talking about the case where you have patented a machine or process that uses an algorithm, but that adds significantly more, and that the software being distributed implements much of this process. Courts might find an implied licence or promissory estoppel when distributing software under an open source licence that doesn't explicitly exclude patent licencing as part of its terms. It would be prudent to state your patent rights and explicitly exclude a patent licence if you intend to enforce your patent rights. As an example, this software implicates a patent , so they allow "permission to use, copy, modify, and distribute this software and its documentation for educational, research, and non-commercial" purposes. Users that want to use the software commercially need to contact the authors who also happen to be the patent owners, and I assume would negotiate a patent licence at that point.
If it is open source code, then usually the requirement is that you produce the source code for the software that you release. Exactly for the software that you release. For example if you took open source software X, and added feature Y, and distributed the combined software outside your company, anyone can request the source code for X including Y. Handing them the source code for X only wouldn't meet the open source requirements. Now all this is not illegal, but it means the copyright holder of X could sue you for copyright infringement. They will do that if they have enough reasons to do so. So let's say you are continuously developing your software and occasional hand out your compiled software. Say you built versions 100, 101, 102, 103, 104 of the software, you gave versions 100 and 103 to customers, and anyone asking for the source code is given the source code for the latest, slightly improved version 104. The copyright holder of X might sue you but: 1. They wouldn't know you are doing this. 2. A judge might side with you and decide that newer, improved source code is good enough (I don't know this, but it seems not unreasonable). 3. The copyright holder might decide that they don't want to sue you for this because you are close enough to meeting the requirements.
Affirmative authority that this particular use (incorporation of the format of another program's textual data files into your own program) is protected is somewhat elusive in the US system; however there's a lot of observable evidence that reverse engineering data file formats without a license is widespread. My sense is that this would be analyzed under the same rubric as other kinds of reverse engineering and/or fair use. I'm sure there are others here who are better able to clearly and concisely explain that law than I am. However there may be limits — it seems Microsoft was able to prevent VirtualDub's use of the ASF format by patenting it. That said, it's hard to see how an unencrypted, unencoded ASCII data file file could be patentable (i.e. where the ASCII strings are the data, generated in response to user input, and the format is just their order and separators, etc). For the European arena, there is recent authority in SAS Institute Inc v World Programming Limited that the format of a program's data files are not protected by copyright when reverse engineered without the source code. The following is from the digest and application of the CJEUs decision by the English court that referred it, in its subsequent judgment: The judgment of the CJEU On 29 November 2011 Advocate General Bot delivered his Opinion on the questions referred... Questions 1-5 The Court dealt with these questions together. It interpreted this court as asking "in essence, whether Article 1(2) of [the Software Directive] must be interpreted as meaning that the functionality of a computer program and the programming language and the format of data files used in a computer program in order to exploit certain of its functions constitute a form of expression of that program and may, as such, be protected by copyright in computer programs for the purposes of that directive": see [29]. Having referred to recital (14), Article 1(1) and 1(2) of the Software Directive, Article 2 of the WIPO Copyright Treaty and Articles 9(2) and 10(1) of TRIPS, the Court went on: ... 39. [...] it must be stated that, with regard to the elements of a computer program which are the subject of Questions 1–5, neither the functionality of a computer program nor the programming language and the format of data files used in a computer program in order to exploit certain of its functions constitute a form of expression of that program for the purposes of Article 1(2) of Directive 91/250. 40. As the Advocate General states in point 57 of his Opinion, to accept that the functionality of a computer program can be protected by copyright would amount to making it possible to monopolise ideas, to the detriment of technological progress and industrial development. 41. Moreover, point 3.7 of the explanatory memorandum to the Proposal for Directive 91/250 [COM(88) 816] states that the main advantage of protecting computer programs by copyright is that such protection covers only the individual expression of the work and thus leaves other authors the desired latitude to create similar or even identical programs provided that they refrain from copying. 42. With respect to the programming language and the format of data files used in a computer program to interpret and execute application programs written by users and to read and write data in a specific format of data files, these are elements of that program by means of which users exploit certain functions of that program. 43. In that context, it should be made clear that, if a third party were to procure the part of the source code or the object code relating to the programming language or to the format of data files used in a computer program, and if that party were to create, with the aid of that code, similar elements in its own computer program, that conduct would be liable to constitute partial reproduction within the meaning of Article 4(a) of Directive 91/250. 44. As is, however, apparent from the order for reference, WPL did not have access to the source code of SAS Institute's program and did not carry out any decompilation of the object code of that program. By means of observing, studying and testing the behaviour of SAS Institute's program, WPL reproduced the functionality of that program by using the same programming language and the same format of data files. 45. The Court also points out that the finding made in paragraph 39 of the present judgment cannot affect the possibility that the SAS language and the format of SAS Institute's data files might be protected, as works, by copyright under Directive 2001/29 if they are their author's own intellectual creation (see Bezpecnostní softwarová asociace, paragraphs 44 to 46). 46. Consequently, the answer to Questions 1–5 is that Article 1(2) of Directive 91/250 must be interpreted as meaning that neither the functionality of a computer program nor the programming language and the format of data files used in a computer program in order to exploit certain of its functions constitute a form of expression of that program and, as such, are not protected by copyright in computer programs for the purposes of that directive." Regarding the idea that the user has rights to access their output of a program held in a proprietary data file format there is some additional discussion in the that might be helpful in paragraphs 48 - 62 (of the CJEU opinion), discussing the right of a licensee to 'study and observe' the 'underlying' 'ideas and principles' of a program to accomplish 'acts of loading and running necessary for the use of the computer program.'
Both Bob and Charles are liable for infringement in the US. The fact that Charles had no idea that Bob was an infringer is not a defense, but it mitigates the statutory damages consequences for him. Either party can negotiate with Alice after the fact for a license, and Alice can grant either party but not the other permission to copy. The terms of the license that Alice gives Bob could either allow CCo reposting, or some more restrictive redistribution right. If the license requires a notice prohibiting further redistribution and Bob omits that notification, Bob will have breached the terms of the license in omitting the notification, so we're back to square 1. If Alice fails to specify a no-redistribution notification condition on Bob's reposting, Alice may have granted an implied license to the world, a matter which has to be determined by the courts.
To use an API over a network connection (as opposed to, e.g., the Windows API), a user communicates a request to the API host, or server, and awaits a response. The host of the remote API can refuse to serve requests from users for probably any reason. Such services often require users to accept a license as a condition of using the service, and they may charge a fee as a condition of the license. A license to use a service is obviously not necessarily bound to a license for the use of its source code, just as the ability to reach the service is not dependent on the ability to see (let alone use) the code in any format, whether it be the source code or some compiled form of the code. In essence, source licenses and service licenses have different primary goals, at least inasmuch as the source license seeks to restrict someone who has actual physical access to compiled code, and possibly source code. Service licenses do not have that concern, though I have seen service licenses that also prohibit decompiling. This is probably the result of a CYA attitude among lawyers: the language is already in the standard software license text, and it doesn't hurt anything to leave it in, and it could help if a service user somehow managed to download the program code.