Hello all, I would like you to share your comments on the attached GLEP with me.
Thanks in advance! -- Kind Regards, Simon Stelling Gentoo/AMD64 developer
GLEP: 52 Title: License Managment in Portage Version: $Revision: $ Last-Modified: $Date: $ Author: Simon Stelling <[EMAIL PROTECTED]> Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 20-Sep-2006 Post-History: 20-Sep-2006 Abstract ======== GLEP 23 [1]_ was brought into existance 31 May 2003 to help users that do not want to implicitly accept any license. Three and a half years later, it is still not implemented. This GLEP aims at exactly the same target as GLEP 23, but with a different technical approach. Credits ======= The ideas found in this GLEP originate from or are heavily influenced by Iván Pérez DomÃnguez's and other people's comments on bug 17367 [2]_. Motivation ========== GLEP 23 has failed to get implemented. This GLEP proposes a quick and easy, yet elegant way to enhance portage's license handling. Specification ============= If a certain package requires to - implicitly or explicitly - accept licenses, it obviously depends upon acceptance of said licenses. The set of licenses a package depends on may vary, e.g. on the selected USE flags. Dependencies on specific licenses should be treated no different than dependencies on other packages, i.e. they should be defined using ``[R,]DEPEND`` syntax. Every license which a package in the portage tree depends on gets a package in the ``txt-licenses/`` category. Its ebuild must install the license text to ``/usr/shared/licenses/``. The initial version shall be 1 if there is no version specified. There will also be a bunch of meta-packages: At least * ``txt-licenses/osi-disapproved-licenses``, * ``txt-licenses/fsf-disapproved-licenses``, and * ``txt-licenses/gpl-incompatible-licenses`` should exist and be a dependency of all licenses that possess the respective attribute. Users can then assure that they do not implicitly agree with a license they would not agree with explicitly by masking the license's package. If they only want to accept packages that are e.g. approved by the FSF, they can simply mask the ``txt-licenses/fsf-disapproved`` package. Licenses that need to be explicitly accepted before installation of a package (and only these) should be package.masked by default with a header like the following: :: # Simon Stelling <[EMAIL PROTECTED] (20 Sep 2006) # This license needs to be agreed on explicitly to be considered # legally binding. # By unmasking and installing the package you agree with its terms. txt-licenses/wierd-license As a lot of licenses have the same name as the packages that use it, the license's package name should contain a ``-license`` appendix. The ``LICENSE`` variable currently used in ebuilds should be kept. However, it should no longer use DEPEND syntax (e.g. "|| ( )") but a simple list of license names. This is useful for package indexes like packages.gentoo.org and simple "What license does this package use?" queries. Backwards Compatibility ======================= For a reasonable amount of time, ``repoman`` should simply warn if there is not at least one dependency to a license package. New ebuilds should make use of the package-based system. Once (almost) all ebuilds are ported to the new system, repoman should consider the lack of a license dependency an error. References ========== .. [1] GLEP 23 http://www.gentoo.org/proj/en/glep/glep-0023.html .. [2] Gentoo Bug 17367 http://bugs.gentoo.org/show_bug.cgi?id=17367 Copyright ========= This document has been placed in the public domain.