summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-09-14 23:14:39 +0200
committerUlrich Müller <ulm@gentoo.org>2017-10-09 12:08:51 +0200
commitc6fe2071a2e83be2203196ad7f9459941821a034 (patch)
treed81e1d9898c05917e05203af9803b581dff0d915 /glep-0023.rst
parentglep-0045: Mark Final since GLEP 1 now uses ISO 8601 dates (diff)
downloadglep-c6fe2071a2e83be2203196ad7f9459941821a034.tar.gz
glep-c6fe2071a2e83be2203196ad7f9459941821a034.tar.bz2
glep-c6fe2071a2e83be2203196ad7f9459941821a034.zip
Rename all GLEPs to .rst
Diffstat (limited to 'glep-0023.rst')
-rw-r--r--glep-0023.rst189
1 files changed, 189 insertions, 0 deletions
diff --git a/glep-0023.rst b/glep-0023.rst
new file mode 100644
index 0000000..2a4de6e
--- /dev/null
+++ b/glep-0023.rst
@@ -0,0 +1,189 @@
+GLEP: 23
+Title: Handling of ACCEPT_LICENSE
+Version: $Revision$
+Last-Modified: $Date$
+Author: Jason Stubbs <jstubbs@gentoo.org>, Marius Mauch <genone@gentoo.org>
+Status: Final
+Type: Standards Track
+Content-Type: text/x-rst
+Created: 9-Mar-2004
+Post-History: 8-Mar-2004 10-Mar-2004 25-Oct-2004 18-Nov-2006 21-Nov-2006
+
+
+Status Update
+=============
+
+Repoman has been updated to check for the LICENSE syntax. Portage now handles
+ACCEPT_LICENSE and license groups, with NON-MUST-HAVE-READ's role handled
+by @EULA. Marking as Final as of 1/16/2014.
+
+Abstract
+========
+
+Currently, every ebuild in the main Gentoo repository is required to have a
+valid LICENSE entry. However, the syntax of this entry is not officially
+defined and the entry itself is only used when outputting package
+details.
+
+Motivation
+==========
+
+Many users wish to regulate the software they install with regards to
+licenses for various reasons [1]_. Some want a system free of any
+software that is not OSI-approved; others are simply curious as to what
+licenses they are implicitly accepting.
+
+Furthermore, some software requires that a user interactively accept its
+license for its author's to consider it legally binding. This is
+currently implemented using ``eutils.eclass``.
+
+
+Specification
+=============
+
+Ebuild LICENSE Variable
+-----------------------
+
+Most ebuilds are for software which is released under a single license.
+In these cases, the current LICENSE variable can remain as is. For
+example:
+
+::
+
+ LICENSE="single-license"
+
+However, there are several ebuilds for software which is released under
+several licenses, of which the user must accept one, some or all [2]_.
+To complicate this, some ebuilds include optional components which fall
+under a different license.
+
+To accommodate these cases, LICENSE syntax should accommodate all
+functionality offered by a DEPEND string. To keep things simple, this
+GLEP proposes that the syntax be identical. For example:
+
+::
+
+ LICENSE="mandatory-license
+ || ( choosable-licence1 chooseable-license-2 )
+ useflag? ( optional-component-license )"
+
+
+License names may contain [a-zA-Z0-9] (english alphanumeric characters),
+_ (underscore), - (hyphen), . (dot) and + (plus sign). They must not
+begin with a hyphen, a dot or a plus sign.
+
+License Groups
+--------------
+
+Almost all users are willing to install any software that is
+FSF-approved. Other users are willing to install any software and
+implicitly accept its license. To this end, implementations will also
+need to handle grouping of licenses.
+
+At a minimum, there needs to be the groups ``GPL-COMPATIBLE``,
+``FSF-APPROVED``, ``OSI-APPROVED`` and ``NON-MUST-HAVE-READ``.
+``NON-MUST-HAVE-READ`` licenses are those that don't require manual
+acceptance for to be considered legally binding. This is the current
+behaviour of portage.
+
+These groups are defined in a new file ``license_groups`` in
+the ``profiles`` subdirectory of the tree (or overlays).
+Details of handling groups defined in overlays is implementation dependent.
+
+The format of this file is
+
+::
+
+ <groupname> <license1> <license2> ... <licenseN>
+
+Also any line starting with # is ignored and may be used for comments.
+Group names use the same syntax as normal license names. Also license groups
+may contain other groups.
+License groups may not contain negated elements, so a group
+
+::
+
+ mygroup foo -bar -bla
+
+is illegal.
+
+
+ACCEPT_LICENSE
+--------------
+
+This GLEP proposes that a user be able to explicitly accept or decline
+licenses by editing a new variable ``ACCEPT_LICENSE`` in
+``/etc/make.conf``. Again, to keep things simple, the syntax should be
+similar to that of other incrementals. For example:
+
+::
+
+ ACCEPT_LICENSE="-* accepted-license -declined-license"
+
+As an extension, ``ACCEPT_LICENSE`` must also support `license groups`_.
+This GLEP proposes that the license group be prepended by the special
+character "``@``". For example:
+
+::
+
+ ACCEPT_LICENSE="-* @FSF-APPROVED"
+
+License groups may be negated with the result that all elements of that group
+are also negated.
+
+Portage will also offer a package.license facility to offer this functionality
+on a per-package base (analog to package.keywords), other implementations may
+implement such a facility differently or not at all.
+
+Behaviour
+---------
+
+Unaccepted licenses will be treated like any other masked package, that is
+the user interface of an implementation will display a message listing any
+license that has to be accepted before the package can be merged with a
+pointer to the exact license text.
+
+Past versions of this document proposed to handle license-masked packages
+like blockers, but this would be inconsistent with other visibility
+filters as well as the current blocker system (as a blocker affects two
+packages) and be more complicated to implement.
+
+Rationale
+=========
+
+An implementation of this proposal should make it easy for users wishing
+to regulate their software without affecting those that don't.
+
+
+Reference Implementation
+========================
+
+Available in portage svn repository under main/branches/license-masking
+
+
+Backwards Compatibility
+=======================
+
+There should be no change to the user experience without the user
+explicitly choosing to do so. This mandates that the
+configuration variable be named ``ACCEPT_LICENSE`` as some users may
+already have it set due to ebuilds using ``eutil.eclass``'s
+implementation. It also mandates that the default ``ACCEPT_LICENSE`` be
+set to ``@NON-MUST-HAVE-READ`` in the main Gentoo repository as implementations
+are not required to provide an internal default.
+
+References
+==========
+
+.. [1] Gentoo Linux Bug 17367
+ (http://bugs.gentoo.org/show_bug.cgi?id=17367)
+.. [2] Gentoo Linux Bug 34146
+ (http://bugs.gentoo.org/show_bug.cgi?id=34146)
+
+
+Copyright
+=========
+
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/.