Skip to content

OFL-1.1 standard license header #451

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wking opened this issue Oct 19, 2017 · 14 comments
Closed

OFL-1.1 standard license header #451

wking opened this issue Oct 19, 2017 · 14 comments
Milestone

Comments

@wking
Copy link
Contributor

wking commented Oct 19, 2017

We currently don't declare standardLicenseHeader for the OFL-1.1, but they define one in their license document (above the title):

$ curl -sL 'http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web' |
>   w3m -T text/html -dump | grep -A7 'Copyright (c)' | cut -b 15-
Copyright (c) <dates>, <Copyright Holder> (<URL|email>),
with Reserved Font Name <Reserved Font Name>.

Copyright (c) <dates>, <additional Copyright Holder> (<URL
|email>),
with Reserved Font Name <additional Reserved Font Name>.

Copyright (c) <dates>, <additional Copyright Holder> (<URL|
email>).

This Font Software is licensed under the SIL Open Font License,
Version 1.1.

This license is copied below, and is also available with a FAQ
at: http://scripts.sil.org/OFL

And they also discuss their recommendations for using it in their FAQ:

  • Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders (marked with the <> characters). Include this file in your release package.
  • Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Accurate metadata in your font files is beneficial to you as an increasing number of applications are exposing this information to the user. For example, clickable links can bring users back to your website and let them know about other work you have done or services you provide. Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata. You should also double-check that there is no conflicting metadata in the font itself contradicting the license, such as the fstype bits in the os2 table or fields in the name table.

The first point suggests they intend the full copyright/license to be used as you'd use the GPL-3.0 license text (for example), by dropping it in a project level file.

The “Also add this information to any other components (build scripts…” in the second point suggests they intend the full copyright/license to also be their standard license header. Our current XML schema doesn't provide an easy way to declare that the standardLicenseHeader is the same as the license text, but maybe it should? Perhaps via some generic XML reference mechanism? Otherwise we're going to have to duplicate this information in both places.

@mlinksva
Copy link
Contributor

This license is copied below

Also from the FAQ, emphasis added:

Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields).

Doesn't look to me as if the copyright/license/reserved font notices above the license text are intended to be used as a standalone header.

@wking
Copy link
Contributor Author

wking commented Oct 21, 2017

I agree, and think they intend the full copyright+license inOFL.txt, with exactly the same full copyright+license in script headers.

@mlinksva
Copy link
Contributor

Ah, that's what you were saying already with "is the same as the license text". I didn't read closely enough!

@mlinksva
Copy link
Contributor

(Of course that's also how MIT/ISC/BSD are sometimes used as headers too, with header==full license.)

@wking
Copy link
Contributor Author

wking commented Oct 21, 2017 via email

@wking
Copy link
Contributor Author

wking commented Dec 19, 2017

Can someone with push access re-open this? #491 did not address this issue.

@bradleeedmondson
Copy link
Contributor

Re-opened as unaddressed.

Does this need to be fixed for immediate release (next license list)?

@wking
Copy link
Contributor Author

wking commented Dec 19, 2017

Does this need to be fixed for immediate release (next license list)?

Not having the standard header marked up for these licenses reduces their usefullness. But we've never had their headers before, so I don't see a problem with punting to a later release.

@bradleeedmondson
Copy link
Contributor

I think we'll punt to later release, esp. since this question affects many short licenses where the "header" might be the whole license. Not sure we need to declare anything for that case, as then you just have a license-text match, no?

In ay event we can figure this out after the next license-list release.

@bradleeedmondson bradleeedmondson added this to the Later Release milestone Dec 19, 2017
@wking
Copy link
Contributor Author

wking commented Dec 19, 2017 via email

@jlovejoy
Copy link
Member

As per the field description in https://spdx.org/spdx-license-list/license-list-overview
I don't think the short licenses fit this description:

  • Should only include text intended to be put in the header of source files or other files as specified in the license or license appendix when specifically delineated
  • Leave this field blank if there is no standard header as specifically defined in the license

The Standard Header field is intentionally narrowly defined. There are, of course, lots of variations and there has been discussion of trying to capture some of those - perhaps in a different field so as not to confuse with what the license actually suggests. We have also discussed the idea of adding the SPDX-License-Identifier notice as has getting increased use (see https://github.com/ARM-software/arm-trusted-firmware/blob/master/bl1/bl1_fwu.c for example) and which is recommended in the spec, Appendix V. But for the time being, I think we will be consistent with our definition.

@wking
Copy link
Contributor Author

wking commented Dec 21, 2017

From a consumer standpoint, there may also be a distinction between "upstream recommends you put the whole license in the header" and "upstream makes no recomendation about the header". So I'm back to thinking we'll (eventually) need some sort of explicit markup for this.

wking added a commit to wking/license-list-XML that referenced this issue Dec 29, 2017
Two changes here:

* Rename 'standardLicenseHeader' -> 'header'.  We don't have other
  header types to distinguish from, so we can use a shorter,
  more-generic name.

* Make the header element a descendant of the text element (it used to
  be a sibling).  We may restore the possibility of siblings later,
  but for now, the ancestor requirement makes it easy to enforce [1]:

    F) Standard License Header

    * Should only include text intended to be put in the header of
      source files or other files as specified in the license or
      license appendix when specifically delineated
    ...
    * Leave this field blank if there is no standard header as
      specifically defined in the license

  This also makes it easy to cover licenses where the license text and
  header are identical (e.g. the BSDs and the OFL [2]), because you
  can use:

    <text>
      <header>
        ...
      </header>
    <text>

[1]: https://spdx.org/spdx-license-list/license-list-overview#fields
[2]: spdx#451
wking added a commit to wking/license-list-XML that referenced this issue Dec 29, 2017
Two changes here:

* Rename standardLicenseHeader -> fileGrant.  "License" is redundant
  as long as we only include these for licenses, and would be
  incorrect if/when we start supplying these for exceptions.
  "standard" is also redundant as long as we are requiring these to
  come from the license text itself (more on that below).  "header"
  alone might be confused with <h1>, etc., and is about where the
  content shows up.  fileGrant, on the other hand, is about what the
  content *is*.  In fact, the GPL family grants are generic enough to
  be applied at the program level (as well as per-file), but the
  file-specific "fileGrant" is more specific for licenses like
  Apache-2.0 whose text only makes sense in a per-file context.

* Make the fileGrant element a descendant of the text element (it used
  to be a sibling).  We may restore the possibility of siblings later,
  but for now, the ancestor requirement makes it easy to enforce [1]:

    F) Standard License Header

    * Should only include text intended to be put in the header of
      source files or other files as specified in the license or
      license appendix when specifically delineated
    ...
    * Leave this field blank if there is no standard header as
      specifically defined in the license

  This also makes it easy to cover licenses where the license text and
  fileGrant are identical (e.g. the BSDs and the OFL [2]), because you
  can use:

    <text>
      <fileGrant>
        ...
      </fileGrant>
    <text>

[1]: https://spdx.org/spdx-license-list/license-list-overview#fields
[2]: spdx#451
wking added a commit to wking/license-list-XML that referenced this issue Jan 16, 2018
Two changes here:

* Rename standardLicenseHeader -> fileGrant.  "License" is redundant
  as long as we only include these for licenses, and would be
  incorrect if/when we start supplying these for exceptions.
  "standard" is also redundant as long as we are requiring these to
  come from the license text itself (more on that below).  "header"
  alone might be confused with <h1>, etc., and is about where the
  content shows up.  fileGrant, on the other hand, is about what the
  content *is*.  In fact, the GPL family grants are generic enough to
  be applied at the program level (as well as per-file), but the
  file-specific "fileGrant" is more specific for licenses like
  Apache-2.0 whose text only makes sense in a per-file context.

* Make the fileGrant element a descendant of the text element (it used
  to be a sibling).  We may restore the possibility of siblings later,
  but for now, the ancestor requirement makes it easy to enforce [1]:

    F) Standard License Header

    * Should only include text intended to be put in the header of
      source files or other files as specified in the license or
      license appendix when specifically delineated
    ...
    * Leave this field blank if there is no standard header as
      specifically defined in the license

  This also makes it easy to cover licenses where the license text and
  fileGrant are identical (e.g. the BSDs and the OFL [2]), because you
  can use:

    <text>
      <fileGrant>
        ...
      </fileGrant>
    <text>

[1]: https://spdx.org/spdx-license-list/license-list-overview#fields
[2]: spdx#451
wking added a commit to wking/license-list-XML that referenced this issue Jan 26, 2018
Two changes here:

* Rename standardLicenseHeader -> fileGrant.  "License" is redundant
  as long as we only include these for licenses, and would be
  incorrect if/when we start supplying these for exceptions.
  "standard" is also redundant as long as we are requiring these to
  come from the license text itself (more on that below).  "header"
  alone might be confused with <h1>, etc., and is about where the
  content shows up.  fileGrant, on the other hand, is about what the
  content *is*.  In fact, the GPL family grants are generic enough to
  be applied at the program level (as well as per-file), but the
  file-specific "fileGrant" is more specific for licenses like
  Apache-2.0 whose text only makes sense in a per-file context.

* Make the fileGrant element a descendant of the text element (it used
  to be a sibling).  We may restore the possibility of siblings later,
  but for now, the ancestor requirement makes it easy to enforce [1]:

    F) Standard License Header

    * Should only include text intended to be put in the header of
      source files or other files as specified in the license or
      license appendix when specifically delineated
    ...
    * Leave this field blank if there is no standard header as
      specifically defined in the license

  This also makes it easy to cover licenses where the license text and
  fileGrant are identical (e.g. the BSDs and the OFL [2]), because you
  can use:

    <text>
      <fileGrant>
        ...
      </fileGrant>
    <text>

[1]: https://spdx.org/spdx-license-list/license-list-overview#fields
[2]: spdx#451
wking added a commit to wking/license-list-XML that referenced this issue Jan 26, 2018
Two changes here:

* Rename standardLicenseHeader -> fileGrant.  "License" is redundant
  as long as we only include these for licenses, and would be
  incorrect if/when we start supplying these for exceptions.
  "standard" is also redundant as long as we are requiring these to
  come from the license text itself (more on that below).  "header"
  alone might be confused with <h1>, etc., and is about where the
  content shows up.  fileGrant, on the other hand, is about what the
  content *is*.  In fact, the GPL family grants are generic enough to
  be applied at the program level (as well as per-file), but the
  file-specific "fileGrant" is more specific for licenses like
  Apache-2.0 whose text only makes sense in a per-file context.

* Make the fileGrant element a descendant of the text element (it used
  to be a sibling).  We may restore the possibility of siblings later,
  but for now, the ancestor requirement makes it easy to enforce [1]:

    F) Standard License Header

    * Should only include text intended to be put in the header of
      source files or other files as specified in the license or
      license appendix when specifically delineated
    ...
    * Leave this field blank if there is no standard header as
      specifically defined in the license

  This also makes it easy to cover licenses where the license text and
  fileGrant are identical (e.g. the BSDs and the OFL [2]), because you
  can use:

    <text>
      <fileGrant>
        ...
      </fileGrant>
    <text>

[1]: https://spdx.org/spdx-license-list/license-list-overview#fields
[2]: spdx#451
wking added a commit to wking/license-list-XML that referenced this issue Jan 26, 2018
Two changes here:

* Rename standardLicenseHeader -> fileGrant.  "License" is redundant
  as long as we only include these for licenses, and would be
  incorrect if/when we start supplying these for exceptions.
  "standard" is also redundant as long as we are requiring these to
  come from the license text itself (more on that below).  "header"
  alone might be confused with <h1>, etc., and is about where the
  content shows up.  fileGrant, on the other hand, is about what the
  content *is*.  In fact, the GPL family grants are generic enough to
  be applied at the program level (as well as per-file), but the
  file-specific "fileGrant" is more specific for licenses like
  Apache-2.0 whose text only makes sense in a per-file context.

* Make the fileGrant element a descendant of the text element (it used
  to be a sibling).  We may restore the possibility of siblings later,
  but for now, the ancestor requirement makes it easy to enforce [1]:

    F) Standard License Header

    * Should only include text intended to be put in the header of
      source files or other files as specified in the license or
      license appendix when specifically delineated
    ...
    * Leave this field blank if there is no standard header as
      specifically defined in the license

  This also makes it easy to cover licenses where the license text and
  fileGrant are identical (e.g. the BSDs and the OFL [2]), because you
  can use:

    <text>
      <fileGrant>
        ...
      </fileGrant>
    <text>

[1]: https://spdx.org/spdx-license-list/license-list-overview#fields
[2]: spdx#451
@swinslow
Copy link
Member

swinslow commented Dec 9, 2021

Given the discussion above, and given the recommendation of the OFL stewards that the whole OFL text should be included in a font file, I'm inclined to say that it's correct that no standard license header is included here. Note also that the OFL identifiers were updated to include separate copyright notice formats for Reserved Font Names vs. not. Given all that, I would suggest closing this issue.

@swinslow
Copy link
Member

swinslow commented Dec 9, 2021

Discussed on 2021-12-09 legal team call, agreed that no standard license header section should be added.

@swinslow swinslow closed this as completed Dec 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants