[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#649530: [copyright-format] clearer definitions and more consistent License: stanza specification



On 21/12/11 12:05, Charles Plessy wrote:
> Le Sun, Dec 18, 2011 at 08:44:16PM +0000, Ximin Luo a écrit :
>>
>> I think your example above is not the best way to represent license exceptions.
>> Roughly, the specification of a license can be described by this sort of grammar:
>>
>> CompositeLicense
>> :: AND ( CompositeLicense1 CompositeLicense2 ... )
>> :: OR ( CompositeLicense1 CompositeLicense2 ... )
>> :: CompositeLicense with LicenseException
>> :: PublishedLicense or later
>> :: PublishedLicense
> 
> Dear Ximin,
> 
> frankly, I do not think that we need a grammar.  Note that the early draft of
> DEP 5 contained an EBNF grammar and we removed it.
> 
>   http://lists.alioth.debian.org/pipermail/dep-commits/2009-April/000037.html
> 
> I even do not think anymore that we need a system for declaring license
> exceptions.  Exceptions, version numbers, and permissions to upgrade can all be
> represented as separate licenses with a single short name.  Projects interested
> in tracking relationships and interactions between licenses can attach their
> own metadata to the published short names – and of course, share it.
> 
> Have a nice day,
> 

I see the grammar you removed was for the nitty-gritty details of various data
types, such as license short names. I was talking more about a grammar for the
file as a whole. I agree it's not necessary to specify everything down to the
smallest detail, but a formal structure for the significant semantic units at
least, simplifies things considerably.

I assume your reasoning for not wanting a grammar, is to not over-complicate
things. But I don't think yours is a good approach, because

- at the moment a lot of the complexity is in the *TEXT*. A formal grammar
would simplify things considerably, allowing more powerful features.
- DEP5 currently already prevents the simplifications I mentioned elsewhere in
this thread. You would be trading simplicity of specification, for complexity
of debian/copyright for packages with multiple licenses.

If we continue down your line of logic, of simplifying the spec, we would get
rid of the License: stanza completely. That would solve the inconsistency
issues I mentioned. But this has the same problems I just mentioned - it makes
{packages with complex licenses} have *very* complex copyright files.

The main issue is that for each License: field specified, DEP5 places
inconsistent restrictions on the License: stanzas that can exist in the file,
which interferes with "projects interested in tracking relationships [etc]".

Also, having actually tried to write a DEP5 parser that is advanced enough to
do useful stuff like answer "can package X be considered to be licensed under
A", I think the grammar is vital, if you want to get any proper semantics out
of the spec. Otherwise it's just a glorified shopping list.

TL;DR: I just want to be able to do this:

| File: X
| License: A+ with exception B and C
| Notice: (relevant text from upstream)
|
| File: Y
| License: A or C
| Notice: (relevant text from upstream)
|
| License: A
|
| License-Exception: B
|
| License: C
|

-- 
GPG: 4096R/5FBBDBCE
https://github.com/infinity0
https://bitbucket.org/infinity0
https://launchpad.net/~infinity0

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: