Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 34146 - No rule for implementation of multiple LICENSES
Summary: No rule for implementation of multiple LICENSES
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Conceptual/Abstract Ideas (show other bugs)
Hardware: All All
: High major (vote)
Assignee: Portage team
URL: http://glep.gentoo.org/glep-0023.html
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-11-22 17:52 UTC by Jason Stubbs (RETIRED)
Modified: 2005-10-07 07:31 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
All packages which contain "|" in LICENSE= (ebuilds.licenses.OR,4.74 KB, text/plain)
2003-11-22 17:55 UTC, Jason Stubbs (RETIRED)
Details
Packages with multiple licenses with no "|" (ebuilds.licenses.AND,3.92 KB, text/plain)
2003-11-22 17:56 UTC, Jason Stubbs (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Stubbs (RETIRED) gentoo-dev 2003-11-22 17:52:57 UTC
Some ebuilds use "|" within LICENSE= to mean OR and some to mean AND. This begs the question as to whether multiple licenses without a "|" always means AND as well.

Examples
qt-3.2.2-r1.ebuild:LICENSE="QPL-1.0 | GPL-2" (QPL-1.0 OR GPL-2)
colorschemes-20031113.ebuild:LICENSE="vim | GPL-2 | public-domain" (vim AND GPL-2 AND public-domain)

It seems there is presently no rule for which is correct, although I'd take the former to be more intuitive (to a programmer!) and no "|" to mean AND.
Comment 1 Jason Stubbs (RETIRED) gentoo-dev 2003-11-22 17:55:10 UTC
Created attachment 21110 [details]
All packages which contain "|" in LICENSE=

When these are checked, I suggest adding a tag to the LICENSE= line such as
#CONFIRMED as a means for later checking.
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2003-11-22 17:56:06 UTC
Created attachment 21111 [details]
Packages with multiple licenses with no "|"

As above
Comment 3 Sandy McArthur 2003-11-23 02:04:24 UTC
The "|" means OR. If the mailing list archives were up I'd link to the original
LICENSE= propsal from 4/25/02 with the subject of "Licenses, Ebuilds, and you".

Eg:

LICENSE="GPL-2 | (FOO BAR)"

Means that this package licensed under the GPL version 2 OR both FOO and BAR.
The user may accept GPL-2 and not either of FOO or BAR. Alternativly the user
can accept FOO and BAR but not the GPL-2.


In the case of the colorschemes example, it's clear that the "|" is being used
to mean OR.
Comment 4 Jason Stubbs (RETIRED) gentoo-dev 2003-11-23 02:19:18 UTC
Interesting that the maintainer of the colorschemes ebuild said that all three licenses were applicable and all had to be agreed to as each license applied to different parts of what was installed, no? I asked first on the -dev mailing list and nobody that answered was completely sure or admitted that either they didn't know or thought different. Also, the ebuild howto makes no mention of how to specifiy multiple licenses.

Maybe the packages I've listed in the AND attachment are all correct, but I'd be surprised if there aren't more incorrect ones other than colorschemes listed in the OR attachment.
Comment 5 Aron Griffis (RETIRED) gentoo-dev 2003-11-23 15:22:07 UTC
This bug is valid.  It arises from a discussion on -dev where it was
discovered that different authors have been using different standards
for AND/OR in the LICENSE string.  Three things need to happen as part
of this bug:

1. Documentation needs to be fixed.  Swift is working on this.

2. Skel.ebuild needs to include some information regarding multiple
   licenses.  I can handle this part.

3. The ebuilds listed need to be checked to make sure they are using
   the syntax correctly.  For this part, I would suggest, that the bug
   be passed around to the team for each affected herd.  Each herd can
   then do appropriate checking, remove their ebuilds from the list,
   and assign to the next herd in the list.

Does this sound reasonable?  SandyMac, I realize (now) that the
standard for this was once discussed on -dev but it was never
transcribed into documentation.  Now that we're (hopefully)
implementing ACCEPT_LICENSES as an integral part of portage, it's
important to make sure that we have the multiple license situations
right.

Regarding colorschemes, Jason is correct and Sandy is wrong.  It
mistakenly uses "|" when the user needs to agree to all the licenses.
Comment 6 Marius Mauch (RETIRED) gentoo-dev 2003-11-24 20:43:09 UTC
btw, currently parantheses are NOT supported, repoman will complain on them. Do we need them or is it sufficient to say AND binds stronger than OR ?
Comment 7 Jason Stubbs (RETIRED) gentoo-dev 2003-11-25 23:25:09 UTC
In bug 17367, I was told that OR is stronger than AND:

"foo bar | license" = "foo (bar | license)" != "(foo bar) | license"

Brackets may not be necessary at the moment but it's probably better to put them in just so that the meaning of the above is completely clear at a glance. New devs would be less likely to make mistakes, as well. How hard would modifications to repoman be? Most of the code for parsing these strings couple be taken from the DEPEND code...

Though, even if brackets are implemented, the question of which of AND and OR takes precedence still remains. Can I get some confirmation, please?
Comment 8 Jason Stubbs (RETIRED) gentoo-dev 2003-11-27 09:17:02 UTC
Slightly unrelated, but I found a another issue with this. Some packages are combined from multiple sources which require different licenses depending on USE flags. Most notably is x11-base/xfree. It has LICENSE="X11 MSttfEULA" yet only needs the MSttfEULA if the "truetype" USE flag is set.

This will require either LICENSE= being similar to DEPEND= or constructs such as:
LICENSE="X11"
if use truetype
	LICENSE="${LICENSE} truetype"
fi

(that's if the "use" function is actually available at that location)
Comment 9 Brian Harring gentoo-dev 2005-02-27 23:31:18 UTC
Jason... ^^^ ?
Comment 10 Jason Stubbs (RETIRED) gentoo-dev 2005-02-28 04:02:41 UTC
DEPEND-type syntax has been approved and repoman now enforces it.