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.

Reply via email to