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
signature.asc
Description: OpenPGP digital signature