Skip to content
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

formulae: add licenses for various formulae #59946

Merged
merged 8 commits into from
Sep 10, 2020

Conversation

waldyrious
Copy link
Contributor

@waldyrious waldyrious commented Aug 20, 2020

  • Have you followed the guidelines for contributing?
  • Have you checked that there aren't other open pull requests for the same formula update/change?
  • Have you built your formula locally with brew install --build-from-source <formula>, where <formula> is the name of the formula you're submitting?
  • Is your test running fine brew test <formula>, where <formula> is the name of the formula you're submitting?
  • Does your build pass brew audit --strict <formula> (after doing brew install <formula>)?

Adding my contribution to #58225. 🙂 Included in this PR: wget, exiftools, less, speex, telnet(d) and utf8proc. Please see the individual commit messages for details on how these expressions were derived.

(As a side note, I gained a new appreciation for clear licensing terms. These licenses have been quite cumbersome to determine, as the extended commit messages attest.)

Also, brew audit --strict doesn't seem to recognize SPDX expressions. I hope that's OK, as the discussion in #59582 seemed to indicate a general agreement to support them.

Copy link
Member

@Rylan12 Rylan12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic work, @waldyrious!

We have added support for SPDX expressions but we decided to go about it in a more "ruby" way that uses hashes and arrays to indicate the expression logic instead of a parsing a string. I added suggestions with the correct style (I think it should be pretty straight forward).

Also, we prefer one commit per formula. You had a few commits that updated two (related) formulae, so it would be great if you could separate those.

Just so you know, we need to wait for a new Homebrew release before we can start using the updated license syntax in formulae, so I'm going to mark this as do not merge until then. Once we have a new release and everything's been adressed we should be good to go!

Formula/perl.rb Outdated Show resolved Hide resolved
Formula/exiftool.rb Outdated Show resolved Hide resolved
Formula/less.rb Outdated Show resolved Hide resolved
Formula/telnet.rb Outdated Show resolved Hide resolved
Formula/telnetd.rb Outdated Show resolved Hide resolved
Formula/utf8proc.rb Outdated Show resolved Hide resolved
@Rylan12 Rylan12 added CI-syntax-only Change only affects brew syntax, not the install. Only run syntax CI. do not merge labels Aug 21, 2020
@waldyrious
Copy link
Contributor Author

@Rylan12 in the interests of making reviewing of this PR easier, I've applied the changes that have been agreed in the inline discussions, and marked them as resolved. For convenience, the changes were:

  • Changing SPDX expressions to the license DSL using any_of: [...], all_of: [...]
  • Removing BSD-2-Clause from less.rb, since it differs in one of the clauses from the actual Less License
  • Splitting the changes to exiftool.rb and perl.rb into separate commits

I'll stand by for instructions on how to proceed regarding telnet.rb.

Formula/telnet.rb Outdated Show resolved Hide resolved
Copy link
Member

@Rylan12 Rylan12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but I think we should still remove the MIT-CMU license from telnet as its definitely not MIT-CMU.

Also, can you separate the telnet and telnetd changes into two separate commits?

Sources:

- https://www.gnu.org/software/wget/

  > GNU Wget is distributed under the GNU General Public License.

- https://git.savannah.gnu.org/cgit/wget.git/tree/README

  > This program is free software; you can redistribute it and/or modify it
  > under the terms of the GNU General Public License as published by the
  > Free Software Foundation; either version 3 of the License,
  > or (at your option) any later version.
Source:

- https://dev.perl.org/licenses/

  > Perl5 (...) is free software;
  > you can redistribute it and/or modify it under the terms of either:
  > a) the GNU General Public License as published by the Free Software Foundation;
  >    either version 1, or (at your option) any later version, or
  > b) the "Artistic License".
Sources:

- https://exiftool.org/#license

  > This is free software; you can redistribute it and/or modify it
  > under the same terms as Perl itself.

- https://dev.perl.org/licenses/

  > Perl5 (...) is free software;
  > you can redistribute it and/or modify it under the terms of either:
  > a) the GNU General Public License as published by the Free Software Foundation;
  >    either version 1, or (at your option) any later version, or
  > b) the "Artistic License".
Sources:

- https://github.com/gwsw/less/blob/master/COPYING

- https://github.com/gwsw/less/blob/master/LICENSE

- https://github.com/gwsw/less/blob/master/README.VER:

  > This program is free software.
  > You may redistribute it and/or modify it under the terms of either:
  > 1. The GNU General Public License, as published by the Free Software
  >    Foundation; either version 3, or (at your option) any later version.
  >    A copy of this license is in the file COPYING.
  > or
  > 2. The Less License, in the file LICENSE.

Note about the Less License:

  The less project is dual-licensed, but the Less License lacks a SPDX identifier.
  It matches the BSD-2-Clause nearly exactly, but changes the second clause from:

  > Redistributions in binary form must reproduce the above copyright notice,
  > this list of conditions and the following disclaimer
  > in the documentation and/or other materials provided with the distribution.

  to simply:

  > Redistributions in binary form must reproduce the above copyright notice
  > in the documentation and/or other materials provided with the distribution.

  Notice how "this list of conditions and the following disclaimer"
  was removed from the clause, so the legal obligations are slightly different

  If eventually the Less License gets an SPDX identifier,
  we might change the formula's license expression to include it,
  but at this point we are unable to represent it accurately,
  so only the GPL is mentioned (which is allowed in a dual-licensing context).
Notes:

- All source files use the BSD-4-Clause-UC license,
  except `krb4-proto.h`, which only has the APSL-1.0 license header;
- File `tn3270.c` includes both the BSD-4-Clause-UC
  and the APSL-1.0 licenses;
- File `misc-proto.h` includes both the BSD-4-Clause-UC
  and a custom MIT-style license.
  The latter is not encoded in the license field of the formula,
  because it doesn't have an SPDX identifier.
Notes:

- All the source files use the BSD-4-Clause-UC license,
  except for `vasprintf.c` and `strlcpy.c`,
  which have the BSD-3-Clause license instead;
- Unlike `telnet`, none of the files in `telnetd` include the APSL-1.0
  license header.
Sources:

- https://github.com/JuliaStrings/utf8proc/blob/master/LICENSE.md

- https://juliastrings.github.io/utf8proc

  > The utf8proc package is licensed under the free/open-source MIT "expat" license
  > (plus certain Unicode data governed by the similarly permissive Unicode data license);
  > please see the included LICENSE.md file for more detailed information.
@waldyrious
Copy link
Contributor Author

@Rylan12 all done — thanks for the quick review! Please take another look when you can. I believe this may now be ready to merge :)

@Rylan12
Copy link
Member

Rylan12 commented Sep 10, 2020

Great work! Thanks, @waldyrious!

@Rylan12 Rylan12 merged commit 059f843 into Homebrew:master Sep 10, 2020
@waldyrious waldyrious deleted the add-licenses branch September 10, 2020 08:37
@waldyrious
Copy link
Contributor Author

Thanks for the thorough and helpful reviews, everyone!

@chenrui333 chenrui333 changed the title Add licenses for various formulae formulae: add licenses for various formulae Feb 6, 2024
@chenrui333 chenrui333 added the license License PRs label Feb 6, 2024
@github-actions github-actions bot added the outdated PR was locked due to age label Mar 11, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
CI-syntax-only Change only affects brew syntax, not the install. Only run syntax CI. license License PRs outdated PR was locked due to age
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants