Bug#1020241: debian-policy: copyright-format: Formatting improvements/changes
On Sun, Sep 18, 2022 at 06:01:38PM -0700, Russ Allbery wrote:
> Guillem Jover <guillem@debian.org> writes:
>
> > Oh! I've completely missed this all this time, I think because that
> > feels very weird given that it has no synopsis and the text is added
> > already on the first line on the spec. :/
>
> Other formatted fields with the same semantics are Source, Disclaimer, and
> Comment. I don't think there are any fields in debian control files with
> those semantics (Description is the only formatted field and it has a
> synopsis), but there are several of them in copyright files.
>
> Source is another ongoing minor problem, since it's *usually* a URL but is
> not required to be one, and sometimes a textual description of the source
> is needed. Here too, a structured format would have been nicer, so that
> you could have something like:
>
> source:
> urls:
> - https://example.com/foo
> - https://example.org/foo
> comment: >-
> The foo-rewrite script was originally posted to comp.unix.sources in
> 1992 but otherwise has no source other than the Debian package.
>
> Ah well.
>
> > Right, the problem I see is that applying this formatting to a field
> > that has no special treatment for the first line just after the field
> > name seems very unintuitive, because the first line does not contain an
> > additional prefixing space, or if it does no one is adding it!
>
> > It feels very weird to me that all these would be equivalent:
>
> > Copyright: Something long that might trigger some wrapping behavior
> > Other thing very long that might not be clear behaves as the above
> > More
>
> > and
>
> > Copyright: Something long that might trigger some wrapping behavior
> > Other thing very long that might not be clear behaves as the above
> > More
>
> > and
>
> > Copyright:
> > Something long that might trigger some wrapping behavior
> > Other thing very long that might not be clear behaves as the above
> > More
>
> I think my brain just assumes that all whitespace after the colon of a
> field name and before the first non-whitespace character is ignored, so
> doesn't have a problem with that, but I can see why it would be confusing.
>
> > Otherwise, if the current semantics are retained, at least for me, the
> > first line behavior really needs to be clarified.
>
> Yes, we should distinguish between formatted text with synopsis and
> formatted text without synopsis more clearly. Or, you know, just propose
> a new YAML format which would make it trivial to clean up all of these
> problems *and* would provide first-class editor support and easy parsing
> in every major programming language. :) But that's WAY bigger than this
> bug.
If we're going to do that, it might make sense to explicitly allow JSON
and/or TOML as alternative representations, because there are some
really weird edge cases in YAML.
> > If we end up switching the field semantics, that seems it might cause
> > unnecessary modification churn, given that I (not sure whether other
> > people have done this before than me as well) at least have "instigated"
> > unintentionally this type of change in several places (packages I
> > maintain, golang/prometheus team), including tooling (AFAIR dh-make and
> > dh-make-golang), and other people might have also picked this up too. :/
>
> I think making the field a line-based list is the obviously correct thing
> to do. It's just not backward-compatible, so we will have to face the
> question of how we handle a version bump in the copyright file (and of
> course figure out if we're going to deal with all of the other requests
> that would require a version bump).
I think semantic versioning would require you make this a major version
bump, since like you say it's not backwards compatible.
> And I have packages where individual copyright lines are longer than 80
> columns, so we either have to require unwrapped lines greater than 80
> columns (which I'd rather not do), or we have to define line wrapping
> semantics for line-based lists, which adds yet more irritating ugliness to
> the deb822 format. Probably just "if the line is indented by more than
> one space, it's a continuation for the previous line" I guess.
Ah yes, but then if you do that, the old examples in policy that were
being patched away here (usage of which might exist in the wild) would
now have different semantics...
--
w@uter.{be,co.za}
wouter@{grep.be,fosdem.org,debian.org}
I will have a Tin-Actinium-Potassium mixture, thanks.
Reply to: