If a project is dual-licensed GPL & BSD, should there be one LICENSE file with the text of both licenses? Or two separate files, one for each license?

And I think I should put a copyright/license comment at the top of each source file. How should that comment indicate the dual-licensed status of the project?


3 Answers 3


In all cases, the README.md should contain a a SPDX license identifier:

SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later

You can do it like that:

## License

This work is dual-licensed under BSD and GPL 2.0 (or any later version).
You can choose between one of them if you use this work.

`SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later`

Note that BSD-3-Clause OR GPL-2.0-or-later and BSD-3-Clause AND GPL-2.0-or-later makes a big difference. The former means that the user can choose between both (which is the regular case!) and the second one denotes that the user has to comply to both licenses. See also multi licensing on Wikipedia.


In a presentation of the SPDX creators, they propose to create a LICENSE file containing a SPDX expression (slide 12).

Contents of LICENSE:

BSD-3-Clause OR GPL-2.0-or-later

You could add two additional LICENSE files then: LICENSE.BSD-3-Clause and LICENSE.GPL-2.0.

Note that I am using the new (as of 2017-12-28) SPDX License List 3.0 here. The versions of 2017 had GPL-2.0 is identifier for GPL 2.0, but it was not clear whether that meant "GPL 2.0 only" or "GPL 2.0 or any later version".

Eclipse Foundation Way

See https://www.eclipse.org/projects/handbook/#legaldoc-license:

If the project code is distributed under multiple licenses then the text of those licenses must be included. The file should start with a short paragraph that describes how the licenses are combined. This statement should in most cases, be exactly the same as the license statement in the file copyright and license headers (see the example below).

Example License File (dual-licensed EPL-2.0 or Apache-2.0).

This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
http://www.eclipse.org/legal/epl-2.0, or the Apache Software License
2.0 which is available at https://www.apache.org/licenses/LICENSE-2.0.

... Text of the Eclipse Public License 2.0 ...

... Text of the Apache Software License 2.0 ...

To make it immediately clear that the project uses a dual licence, I would recommend to have two licence files, LICENCE.GPL and LICENCE.BSD.

Also, if your files currently have no copyright notices, they can not be legally distributed under either of those licences, because both require that a copyright notice is present in all source files (in addition to other notices required by GPL).

  • 1
    Windows user will click on either, and windows will have no clue how to open a .gpl or a .bsd file.
    – user281377
    Dec 31, 2012 at 11:56
  • 1
    @user281377: The average Windows user does not know what a shell is. If they go as far as installing a power-shell, they should be able to think about opening such files with notepad or wordpad. Dec 31, 2012 at 12:12
  • @Bart: The average Windows user doesn't know what a shell is because they don't need to know. Double-clicking on a file generally takes care of that. Text files should have a .TXT extension. Dec 31, 2012 at 18:17
  • 1
    "Average Windows User" is not a concern here: these files are for programmers who are considering making use of this source code. Also, it's common practice to name the file "LICENSE" or "COPYING", and so beyond the scope of this question.
    – Jay Bazuzi
    Dec 31, 2012 at 21:48
  • 2
    @user281377 - Average windows user won't be concerned about what license the source code is licensed under. The target audience here is developers.
    – jmort253
    Jan 2, 2013 at 5:31

Multi-licensing allows recipients to choose from the defined list of licenses. Common practices are to provide a separate file for each license. When stating the license under which the project is being offered, make it clear that it is dual-licensed (here's an example: https://github.com/lojjic/PIE/blob/master/LICENSE)

You will also need to include your copyright statement at the top of the source (sample format: "Copyright © [year of completion] [entity name]. All rights reserved.")

Entente Software LLC (www.ententesoftware.com)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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