Licenses policy and using 3rd partly libraries in GNOME

Hello,

I would like to understand if there is any policy regarding the including 3rd party libraries as well as their licenses? For example, I’m wondering if this policy applies to applications that are part of the Gnome? Is there any general rule limiting the use of 3rd party libraries an \ or licenses in Gnome apps? If there is any guideline with general recommendations, then I would love to read it.

Thank you

You’ll have to define a bit better what you mean with “including”.

You’re free to depend on any external library for your own project, assuming it’s compatible with the license you’re using. If you’re hosting your project on GNOME infrastructure, your project must be free and open source software according to an OSI-approved license, so any third party license you depend on must be compatible in aggregate with your license—i.e. the resulting project must adhere to the aggregate of all licenses.

In general, you may want to consult a lawyer if you’re trying to deal with licenses.

Licences are a tricky beast, but more often than not we tend to ignore them even though we really should not. The fact that a third-party library is open-source easily deceives us into thinking that we can do whatever we want with it, because why not?

For example, if I wanted to propose a feature for a Gnome-based app and I knew about a ready-made solution in the form of a shared library, I would try to include it by making the project dependent on this library. So there are at least two questions here. And the legal issue is not the most important one. It is very easy to get into dependency hell and not necessarily these will be distributed with inappropriate licenses. Therefore, I am interested to know if there is any explicit restriction or recommendation that provides examples of the acceptable inclusion of new dependencies.

Well,

  • Your project must be free (libre?) and open source
  • You should use OSI-approved license (any?)
  • Any third party license you depend on must be compatible in aggregate with your license

I see at least 3 points here, not bad. However, I think it would be even better to have a page with a detailed explanation of all these things and good examples. This in any case would help understanding the overall policy.

That would almost qualify as legal advice, which is really not what you want to receive from a free and open source project maintained by volunteers.

The main rules for GNOME-hosted projects are outlined on the wiki:

  • The project must be free/open source software.
  • It must use GTK+/GNOME technologies.
  • It must be maintained, and already have had at least one public release.
  • To the best of your knowledge, it must not infringe on patents (most gnome.org servers are in the US).
  • If copyright assignment is required, please first read our policy on copyright assignments; it’s simpler to not have any copyright assignment.

The emphasis on the first point is mine. The first point also indicates that every GNOME project can only depend on other projects that are free and open source, which is really the only requirement.

Adding a depending to a project is left to the maintainers judgement; there can’t be any guideline to that effect. If the maintainers are willing to take the new dependency, it’s entirely up to them to come up with ways to handle it. Proposing a new dependency to a project that is either part of the core platform—e.g. GNOME Shell or GTK—or a core GNOME application—e.g. Nautilus or Control Center—requires at least notifying the GNOME Release Team, which is responsible for creating and maintaining the build manifest for GNOME, as well as doing the overall GNOME releases based on each individual component’s release.

In general, if you want to ask to add a new dependency, just ask. There’s no guideline, outside of “it must be free and open source software compatible with the licensing terms of the GNOME project you want to add the dependency to”.

2 Likes

You have make clear the questions that interest me. Thank you.