Policy on 3rd party assets on Drupal.org

Last updated on
16 September 2020

Introduction

Our Git repo policy says this about third party assets in Drupal.org's contribution repositories:

Any third party assets you include must have their provenance, license and source documented in a file included in the project.

Third party assets are files included in the project repo that are not created by any of the project's past or present maintainers directly or by applying patches created by the project's users.

The phrase “provenance, license and source” means that to include a third party asset in your repo at Drupal.org, you must fulfill the following documentation requirements:

  • Provenance. Who authored it? If the asset is copyrighted and/or trademarked, also clarify who owns the copyright and/or rights to grant a license to the trademark.
  • Licence. This must be one of:
    1. A public license, provided it is one of our permitted licenses.
    2. Terms of use (this requires an exception request, see below).
  • Source. Where or who did you get it from? Include an URL if possible.

The documentation must be present in a file included in the project. This may be the project's README, or it may be in the docblock of a file with the library's source code.

Please also see our FAQ about Licensing.

This page explains how this policy applies to third party libraries and to non-code assets such as fonts, images, trademarks, wordmarks and other creative works.

Third party libraries

Having third party libraries that are hosted elsewhere on the Internet in the Drupal.org repo is strongly discouraged. Instead, if the library in question is available under GPLv2+, or has a “GPL-friendly” license (see note below), you may use one of the methods described on the community documentation page titled “Including 3rd party libraries”.

However, hosting the library in your Git repo on Drupal.org is acceptable if the 3rd party library:

  1. had to be modified to work with Drupal, and the modifications were not accepted by the original author;
  2. is generally difficult to find, or the specific version needed is hard to find;
  3. is no longer maintained by the original author;
  4. has its provenance, original license and source documented in a file included in the project;
  5. is licensed under GPLv2+, or has a “GPLv2-compatible” license that allows us to distribute it under GPLv2+.

About “GPLv2-compatible” licenses

Be aware that Drupal and all Drupal modules are released under the GNU GPL version 2 and later. Free software is released under many different licenses, and not all of these are compatible with GNU GPL version 2 and later. Combining software with incompatible licenses may prevent software from being distributed. At Drupal.org, we do not want that.

As maintainer of a project hosted at Drupal.org, you are responsible for ensuring that the licenses of the software you make available are compatible. This goes both for the contents of your project repo at Drupal.org, and for 3rd party libraries that are combined with your project by one of the methods described on the community documentation page “Including 3rd party libraries”.

The LWG maintains a whitelist of GPLv2 Compatible Licenses. Libraries made available under one of these licenses can be combined with Drupal, for example in a bridge module.

If in doubt, please file an issue with the Licensing Working Group and ask for advice.

Non-code assets

Drupal also permits 3rd party GPL-incompatible non-code assets (e.g. fonts, icons, etc.) in the repo if it can be distributed “in aggregate” with GPL code under a “GPL-friendly” license.

Non-code assets that cannot be distributed under a “GPL-friendly” license (e.g. trademarked logos) cannot be included in the repo and distributed unless they are granted an exception by the Licensing Working Group (LWG).

To request an exception, create an issue in the LWG's issue queue with the component "Exception Request". In the issue summary, you musti nclude an excerpt from the project's README where you demonstrate how you intend to fulfill the documentation requirements described in the introduction.

Tags

Help improve this page

Page status: No known problems

You can: