Мир лицензий: разбираемся с gnu gpl

Why you shouldn’t use the Lesser GPL for your next library

The GNU Project has two principal licenses to use for libraries. One is the GNU Lesser GPL; the other is the ordinary GNU GPL. The choice of license makes a big difference: using the Lesser GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.

Which license is best for a given library is a matter of strategy, and it depends on the details of the situation. At present, most GNU libraries are covered by the Lesser GPL, and that means we are using only one of these two strategies, neglecting the other. So we are now seeking more libraries to release under the ordinary GPL.

Proprietary software developers have the advantage of money; free software developers need to make advantages for each other. Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it.

Using the ordinary GPL is not advantageous for every library. There are reasons that can make it better to use the Lesser GPL in certain cases. The most common case is when a free library’s features are readily available for proprietary software through other libraries. In that case, the library cannot give free software any particular advantage, so it is better to use the Lesser GPL for that library.

This is why we used the Lesser GPL for the GNU C library. After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another—no problem for them, only for us.

However, when a library provides a significant unique capability, like GNU Readline, that’s a horse of a different color. The Readline library implements input editing and history for interactive programs, and that’s a facility not generally available elsewhere. Releasing it under the GPL and limiting its use to free programs gives our community a real boost. At least one application program is free software today specifically because that was necessary for using Readline.

If we amass a collection of powerful GPL-covered libraries that have no parallel available to proprietary software, they will provide a range of useful modules to serve as building blocks in new free programs. This will be a significant advantage for further free software development, and some projects will decide to make software free in order to use these libraries. University projects can easily be influenced; nowadays, as companies begin to consider making software free, even some commercial projects can be influenced in this way.

Proprietary software developers, seeking to deny the free competition an important advantage, will try to convince authors not to contribute libraries to the GPL-covered collection. For example, they may appeal to the ego, promising “more users for this library” if we let them use the code in proprietary software products. Popularity is tempting, and it is easy for a library developer to rationalize the idea that boosting the popularity of that one library is what the community needs above all.

But we should not listen to these temptations, because we can achieve much more if we stand together. We free software developers should support one another. By releasing libraries that are limited to free software only, we can help each other’s free software packages outdo the proprietary counterparts. The whole free software movement will have more popularity, because free software as a whole will stack up better against the competition.

Спецификации языков программирования

Лицензия использует терминологию, применимую в основном в приложениях, написанных на C и языках его семейства. Franz Inc. опубликовало собственное введение в лицензию для разъяснения терминологии в контексте Lisp. На LGPL с этой преамбулой иногда ссылаются как LLGPL.


В дополнение к этому, в Ada имеется специальная возможность generics, которая предлагает использовать GNAT Modified General Public License: она позволяет коду линковаться c или создавать экземпляры компонентов, покрываемых лицензией GMGPL, без покрытия кода лицензией GPL.

Наследование классов

Поднялось некоторое беспокойство по поводу возможности наследовать классы объектно-ориентированного программирования из программного обеспечения по лицензии LGPL в программном обеспечении в не-(L)GPL коде. Разъяснение дано на официальном сайте GNU:

The LGPL does not contain special provisions for inheritance, because none are needed. Inheritance creates derivative works in the same way as traditional linking, and the LGPL permits this type of derivative work in the same way as it permits ordinary function calls.

Совместимость

См. также: Разнообразие лицензий и Копилефт

Использование копилефта накладывает определённые ограничения на объединение работ под GPL и другими свободными (в первую очередь, копилефтными) лицензиями в производных работах.

GPLv2 несовместима с лицензиями Mozilla Public License (MPL), Common Development and Distribution License (CDDL), Apache Software License и некоторыми другими.

GPLv3 была сделана совместимой с лицензией Apache, однако с MPL и её производными она несовместима. Работы под MPL часто одновременно лицензируются и под GPL, и под LGPL (например, код Mozilla Firefox), что частично решает проблему.

Известным примером несовместимости GPL с другой лицензией является невозможность включения файловой системы ZFS, выпущенной Sun Microsystems под CDDL, в ядро Linux, выпущенное под GPLv2.

Любая несвободная лицензия несовместима с GPL.

История

GPL была написана Ричардом Столлманом для использования с программами как часть проекта GNU. Она базируется на сходных лицензиях, использовавшихся для ранних версий GNU Emacs, GDB (отладчика GNU) и Коллекции компиляторов GNU (GCC), унифицирует и обобщает их.

GPL v1

Лицензии-прототипы содержали части, подобные частям GPL, но были специфичными для каждой программы. Целью Ричарда Столлмана являлось создание единой лицензии, которая могла бы использоваться для любого проекта, делая таким образом возможным совместное использование кода различными программами. Такой лицензией и стала первая версия GNU GPL, выпущенная в январе 1989 года.

GPL v2

В 1990 году стало очевидным, что требуется менее ограничивающая лицензия, которая могла бы использоваться для некоторых библиотек ПО; когда версия 2 GPL была выпущена в июне 1991 года, вместе с ней была введена в обращение GNU Library General Public License (GNU LGPL, LGPL), также получившая номер 2, для обозначения того, что эти две лицензии являются взаимодополняющими. Номера версий разошлись в 1999 году, когда была выпущена LGPL версии 2.1, которая была переименована в Lesser General Public License для уточнения её местоположения в философии GNU.

GPL v3

В 2005 году Эбен Моглен и Ричард Столлман написали черновик третьей версии GPL. В разгоревшейся затем 7 апреля 2005 года в Филадельфии дискуссии Столлман сделал несколько заявлений, касающихся патентов на ПО и DRM.

В 2006 году Фонд свободного программного обеспечения начал двенадцатимесячную консультацию о возможных изменениях в GPL. Этот процесс координировался самим Фондом свободного ПО, Правовым центром свободы ПО и Европейским фондом свободного ПО. Целью консультаций являлось создание новой версии лицензии с учётом рекомендаций и опыта всех заинтересованных сторон, но с сохранением приверженности принципам свободного ПО.

Первый черновик был опубликован 16 января 2006 года.

Компании, распространяющие GPLv3-ПО, не могут предъявлять к пользователям GPLv3-продуктов судебные претензии касательно обхода распространяемыми версиями продуктов ТСЗАП и нарушения ими же патентов распространителей. Также запрещена тивоизация.

Окончательная версия GPLv3 была опубликована 29 июня 2007 года.

19 ноября 2007 года была выпущена GNU Affero General Public License v3 — GPLv3 с изменениями на основе Affero General Public License v1, выпущенной в 2002 году Affero Inc. на основе GNU GPLv2. Данная лицензия добавляет возможность получения исходного кода пользователям программы, взаимодействующим с ней только через сеть.

What is Free Software?

Free software means the users have the freedom to run, copy, distribute, study, change and improve the software.

Free software is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech”, not as in “free beer”.

More precisely, free software means users of a program have the four essential freedoms:

  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help others (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Developments in technology and network use have made these freedoms even more important now than they were in 1983.

Nowadays the free software movement goes far beyond developing the GNU system. See the Free Software Foundation’s web site for more about what we do, and a list of ways you can help.

Соответствие законодательству


Основная статья:

Лицензионный договор GPL не допускает модификации под локальное законодательство и в нём не указаны территориальные ограничения. Поэтому такой договор не совместим с правовым режимом, установленным на территории РФ.

Но, в то же время, международное право имеет примат перед российским для международных договоров и сделок, то есть для правообладателя — гражданина РФ, действие договора под лицензией GPL будет распространяться только на территорию РФ (), а для иностранного гражданина он будет действовать в полную силу раздела VI ГК РФ «Международное частное право».

Фонд свободного ПО признает официальным только первичный текст лицензии, но не его переводы. При этом требования в ст. 3 «Сферы использования государственного языка Российской Федерации» закона № 53-РФ в пункте 1 подпункт 1 указывают на обязательность использования русского языка (и, следовательно, русского перевода лицензии) в деятельности организаций всех форм собственности (пункт 2 разрешает использование «наряду с государственным языком Российской Федерации государственного языка республики, находящейся в составе Российской Федерации, других языков народов Российской Федерации или иностранного языка»); это может привести к сложностям, в первую очередь в судебных разбирательствах, поскольку в РФ до сих пор так и не выработан официальный перевод GPL для внутреннего использования, а в разных частных переводах могут быть разночтения, в том числе из-за изначального «не юридического», в трактовке некоторых российских юристов, языка.


Иногда говорят о возможности провести GNU GPL как договор присоединения согласно статьям (428, 435 ГК РФ). Но единственный такой способ для лицензионных договоров описан в п. 3 ст. 1286 ГК РФ («Заключение лицензионных договоров о предоставлении права использования программы для ЭВМ или базы данных допускается путём заключения каждым пользователем с соответствующим правообладателем договора присоединения, условия которого изложены на приобретаемом экземпляре таких программы или базы данных либо на упаковке этого экземпляра, а также в электронном виде (пункт 2 статьи 434).»). Эта статья даёт возможность для легализации ПО, скачанного из Интернета и предоставляемого по лицензии GNU GPL методом узаконивания заключением юридического полноценного/легального договора, правда, не только с фондом — а и с каждым владельцем авторского права произведения, так как они, хоть признав власть фонда для защиты интересов в суде, не заключали с ним акт передачи своих прав Фонду СПО — в соответствии с законодательством РФ, то есть, передав свои права только голословно (то есть, часто даже и это недоказуемо — будучи без регистрации соответствующим документооборотом). Даже в случае заключения полноценного юридического договора с каждым разработчиком — все программные продукты под GPL, даже производимые на территории РФ, а также обязательного заключения договора и с самим фондом — как представителя их интересов, то есть юридически и принадлежа данному фонду — как иностранному субъекту: подпадают под требование импортозамещения.

Интересные факты

Microsoft распространяет для владельцев нетбуков USB-ключи с программой установки Windows 7. Однако выяснилось, что программа содержит код, находящийся под GPL. В ноябре 2009 года Microsoft извинилась перед покупателями и пообещала открыть код программы. 10 декабря 2009 года Microsoft окончательно открыла исходные коды Windows 7 USB/DVD Download Tool под лицензией GPLv2. Windows 7 USB/DVD Download Tool можно скачать из Интернета по адресу: http://wudt.codeplex.com/

25 января 2006 года Линус Торвальдс, автор ядра Linux, публично заявил, что оно, скорее всего, будет по-прежнему распространяться по лицензии GPL версии 2. В своём сообщении в почтовую рассылку для Linux-разработчиков Линус Торвальдс говорит о том, что ОС Solaris может инициировать переход ядра на новую готовящуюся версию лицензии на свободное программное обеспечение — GNU GPLv3. «Если Sun действительно собирается выпустить OpenSolaris под GPLv3, это может стать хорошей причиной для перехода Linux на новую лицензию» — заявил Торвальдс. «Не думаю, что GPLv3 — такая же хорошая лицензия, как и GPLv2, но с другой стороны, я прагматик, и, если мы можем избежать ситуации с существованием двух ядер, распространяющихся под разными лицензиями, и с вызванными этим разногласиями, я по крайней мере вижу причину для перехода на GPLv3», — пояснил свою позицию главный разработчик Linux-ядра. До этого Торвальдс уже выражал своё недовольство новой версией лицензии GNU GPL, однако после появления последнего чернового варианта GPLv3 стал лучше относиться к этому проекту. Несмотря на это, сам он до сих пор отдаёт предпочтение GPLv2.

More about GNU

GNU is a Unix-like operating system. That means it is a collection of many programs: applications, libraries, developer tools, even games. The development of GNU, started in January 1984, is known as the GNU Project. Many of the programs in GNU are released under the auspices of the GNU Project; those we call GNU packages.

The name “GNU” is a recursive acronym for “GNU’s Not Unix.” “GNU” is pronounced g’noo, as one syllable, like saying “grew” but replacing the r with n.

The program in a Unix-like system that allocates machine resources and talks to the hardware is called the “kernel”. GNU is typically used with a kernel called Linux. This combination is the GNU/Linux operating system. GNU/Linux is used by millions, though many call it “Linux” by mistake.

GNU’s own kernel, The Hurd, was started in 1990 (before Linux was started). Volunteers continue developing the Hurd because it is an interesting technical project.

What is GNU?

GNU is an operating system that is free software—that is, it respects users’ freedom. The GNU operating system consists of GNU packages (programs specifically released by the GNU Project) as well as free software released by third parties. The development of GNU made it possible to use a computer without software that would trample your freedom.

We recommend installable versions of GNU (more precisely, GNU/Linux distributions) which are entirely free software. .

Hyperbola 0.3 with i3 window manager, cool-retro-term (terminal emulator), Gimp (image editor), and Iceweasel-UXP (web browser)

Dragora / IceWM

Guix / GNOME3

Hyperbola / i3

Parabola / LXDE

PureOS / GNOME3

Trisquel / MATE

… or Try parts of GNU

Unofficial GNU GPL v2.0 Translations

Information about unofficial translations

The reason the FSF does not approve these translations as officially valid is that checking them would be difficult and expensive (needing the help of bilingual lawyers in other countries). Even worse, if an error did slip through, the results could be disastrous for the whole free software community. As long as the translations are unofficial, they can’t do any harm.

The purpose of linking to translations is to help more people understand the GPL. In order for them to do that, translations need to be basically accurate even if not perfect. To produce a good translation, it is essential to have fully understood fundamental concepts such as copyleft and the free software definition. For this reason, those who wish to contribute translations should make sure they are well acquainted with these concepts as well as other philosophical principles that may appear in the document.

We give permission to publish translations of the GNU GPL into other languages, provided that:

  1. You label your translation as unofficial to inform people that they do not count legally as substitutes for the authentic version (see below for how to do this).
  2. You agree to install changes at our request, if we learn from other friends of GNU that changes are necessary to make the translation clearer.
  3. The translation is not hosted on a commercial site and does not refer to any company.
  4. The page containing the translation should have no links except to fsf.org and gnu.org. We might accept links about other free software packages, but we prefer to avoid them.
  5. You permit others to copy, modify, and republish your translation (and modified versions of your translation) subject to these terms by placing the following notice: “You may publish this translation, modified or unmodified, only under the terms at


    http://www.gnu.org/licenses/translations.html.”

  6. We may accept small exceptions to these rules in legacy cases that are hard to fix.

We do not necessarily link to all the unofficial translations that we know of in any given language. For instance, if one unofficial translation was made by a free software organization that we know and have confidence in, we will link to that translation rather than others. We still can’t make it official, but we expect it is probably mostly correct.

To label your translations as unofficial we want you to add the following text at the beginning, both in English and in the language of the translation—replacing “language” with the name of that language:

If you make a translation, please inform the GNU Translation Managers <web-translators@gnu.org>. They will check to make sure that your translation follows the above guidelines and make a link to it from this page.

These are translations of an older version of the GNU GPL. Translations of current licenses can be found here.

  • Polish translation of the GPL
  • Portuguese translation of the GPL
  • Brazilian Portuguese translation of the GPL (HTML, Markdown, PDF, ODT)

  • Russian translation of the GPL (PDF)
  • Serbian translation of the GPL

  • Swedish translation of the GPL
  • Chinese (Simplified) translation of the GPL

  • Chinese (Traditional) translation of the GPL

Отличия от GPL

Главное отличие GPL от LGPL в том, что последняя позволяет лицензируемой под ней работе линковаться (в случае библиотеки, «использоваться») с не-(L)GPL программным обеспечением, вне зависимости от того, свободное это программное обеспечение или проприетарное. Не-(L)GPL программное обеспечение затем может распространяться под любыми условиями, если не является производной работой вышеупомянутого ПО. Если это не так, программное обеспечение должно позволять «модификацию конечным пользователем для целей использования данного программного обеспечения, а также обратную разработку для отладки внесенных изменений.» Впрочем, лицензия устанавливает это юридическое требование вне зависимости от того, является ли программное обеспечение под лицензией LGPL производной работой или нет. Автономный исполнимый модуль, динамически линкующийся с библиотекой путём .so, .dll или схожим способом, является приемлемым и не является производной работой, это определено в LGPL. Он характеризуется определением «работы, которая использует библиотеку». В параграфе 5 LGPL версии 2.1 указано:

A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a «work that uses the Library». Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

По существу, если это «работа, которая использует библиотеку», тогда должна быть возможность линковки программного обеспечения с новой версией продукта, лицензируемого под LGPL. Самый часто используемый метод это сделать — использовать «подходящий механизм разделяемых библиотек для линковки». В качестве альтернативы разрешена статическая линковка, если предоставлен исходный код или объектные файлы для линковки.

Примечания

Комментарии

  1. Пример гарантий: запрещается создавать на основе свободной программы под GPL другой проект, не предоставляя его исходники пользователям. Таким образом, данная лицензия вовсе не позволяет делать с программами «что угодно», как могут ошибочно трактовать данную лицензию плохо знакомые с ней.
  2. Имена авторов обычно указываются в исходном коде или документации (например, файле AUTHORS).
  3. В отличие от многих других GPL-программ, Linux распространяется на условиях только второй версии GPL, а не «версии 2 или более поздней»: (англ.) (28.01.2006). Дата обращения 10 июля 2010.

Источники

  1. ↑  (англ.). Free Software Foundation (19.11.2007). Дата обращения 8 июля 2010.
  2. Ася Власова. (24.06.2008). — о FOSS-лицензиях и их применении в России. Дата обращения 10 июля 2010.
  3. .
  4. , с. 49.
  5. . — Совместимость свободных лицензий с GPL. Дата обращения 10 августа 2010.
  6. Bruce Byfield.  (англ.). VA Software (27 июня 2006). Дата обращения 10 августа 2010.
  7. . Дата обращения 15 июля 2010.
  8.  (англ.). Дата обращения 1 августа 2010.
  9. М. Брауде-Золотарев, Г. Гребнев, П. Протасов, А. Ралько, Е. Сербина / сост. М. Брауде-Золотарев. . INFO-FOSS.RU. — . — 3-е. — М.: «Интернет-Полиграфия» INFO-FOSS.RU, 22.09.2008. — 124 с. — 1000 экз. — ISBN 978-5-903423-03-3 УДК: 681.3.06 ББК: 32.973.26. о соответствии распространённых, в том числе свободных, лицензионных договоров российскому законодательству. Дата обращения 15 июля 2010.
  10. (10.06.2010). — Сообщение Линуса Торвальдса о возможности перехода Linux на GPLv3 в случае, если Sun выпустит под ней OpenSolaris. Дата обращения 10 июля 2010.

Violations of the GNU Licenses

If you think you see a violation of the GNU GPL, LGPL, AGPL, or FDL, the first thing you should do is double-check the facts:

  • Does the distribution contain a copy of the License?
  • Does it clearly state which software is covered by the License? Does it say anything misleading, perhaps giving the impression that something is covered by the License when in fact it is not?
  • Is source code included in the distribution?
  • Is a written offer for source code included with a distribution of just binaries?
  • Is the available source code complete, or is it designed for linking in other non-free modules?

If there seems to be a real violation, the next thing you need to do is record the details carefully:

  • the precise name of the product
  • the name of the person or organization distributing it
  • email addresses, postal addresses and phone numbers for how to contact the distributor(s)
  • the exact name of the package whose license is violated
  • how the license was violated:
    • Is the copyright notice of the copyright holder included?
    • Is the source code completely missing?
    • Is there a written offer for source that’s incomplete in some way? This could happen if it provides a contact address or network URL that’s somehow incorrect.
    • Is there a copy of the license included in the distribution?
    • Is some of the source available, but not all? If so, what parts are missing?

The more of these details that you have, the easier it is for the copyright holder to pursue the matter.

Once you have collected the details, you should send a precise report to the copyright holders of the packages that are being wrongly distributed. The GNU licenses are copyright licenses; free licenses in general are based on copyright. In most countries only the copyright holders are legally empowered to act against violations.

The Free Software Foundation acts on GPL violations reported on FSF-copyrighted code. Thus, if the program includes code that is copyright Free Software Foundation, please send your report to <license-violation@gnu.org>.

The FSF offers assistance and advice to any other copyright holder who wishes to enforce GNU licenses. But we cannot act on our own where we do not hold copyright. Thus, be sure to find out who are the copyright holders of the software, and report the violation to them.

Our colleagues at the Software Freedom Conservancy do GPL enforcement for many free programs, through their own copyrights and with coalitions of copyright holders in those programs. The programs include Linux, Git, Samba, QEMU, and others. If you encounter a GPL violation on those programs, we suggest you visit the Conservancy’s copyleft compliance page for the up-to-date list of programs it handles, and how to report violations.


С этим читают