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

Fix LICENSE and add NOTICE file #3903

Merged
merged 7 commits into from Apr 10, 2020
Merged

Conversation

makenowjust
Copy link
Contributor

See Applying the Apache License, section "Applying the license to new software". It says:

To apply the ALv2 to a new software distribution, include one copy of the license text by copying the file:

http://www.apache.org/licenses/LICENSE-2.0.txt

into a file called LICENSE in the top directory of your distribution. If the distribution is a jar or tar file, try to add the LICENSE file first in order to place it at the top of the archive. This covers the collective licensing for the distribution.

So I update LICENSE to Apache License 2.0 content. (Old LICENSE is the content of Apache License 2.0's Appendix, which is for file header. This contains the phrase "this file". We can understand Apache 2.0 is applied to only LICENSE file, not project. It is ambiguous, I think.)

Also I added Runtime Library Exception to the Apache 2.0 License section to LICENSE, because Apache License 2.0 effects the binary using the library. In short, when we distribute the binary using Crystal standard library, we must contains the copy of Apache License 2.0 and copyright of Crystal. I think it is confusing and not so important.

Finally, I added NOTICE file, which explains licenses of the libraries used by Crystal. I think such a file creation is responsibility of the library user, and Crystal repository contains some JS/CSS library. We should explain about them, especially Octicons files didn't include copyright information.


And bonus point, GitHub will detect our project's license if this pull request is merged, like:

2017-01-16 20 34 56

I wish you don't think this pull request is blah.

I want you to add Apache License 2.0 header to all source codes in this repository, but this change is too large, so I couldn't decide apply it.

References:

Thanks!

NOTICE.md Outdated
- [LGPLv3](https://www.gnu.org/licenses/lgpl-3.0.en.html)
* [bdwgc](http://www.hboehm.info/gc/)
- [MIT](https://opensource.org/licenses/MIT)
* [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
Copy link
Contributor

Choose a reason for hiding this comment

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

pkg-config isn't linked, but the external executable is used if present.

NOTICE.md Outdated
* [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
- [GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html)

Crystal standard library uses these libraries, which have their own licenses:
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe:

Parts of the Crystal standard library link to the following libraries, ...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No. "Parts of the Crystal standard library" sounds good, but "link" is really no thanks. Because, if Crystal standard library links to the GPL libraries in fact, we must license it GPL. Howeber, Crystal standard library work and exist independent of some GPL library (readline and GMP). I prefer "use" to "link".

NOTICE.md Outdated
* PCRE
* libevent2
* libiconv
* bdwgc
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe duplicate the link + license/link from above?

@spalladino spalladino requested a review from waj January 16, 2017 17:48
NOTICE.md Outdated
@@ -0,0 +1,65 @@
# Crystal Programmig Language
Copy link
Contributor

Choose a reason for hiding this comment

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

Programming

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks.

@makenowjust
Copy link
Contributor Author

@waj @ysbaddaden Updated.

I want you to add Apache License 2.0 header to all source codes in this repository, but this change is too large, so I couldn't decide apply it.

How do you think about it? I think it isn't really important that copying the content written in "APPENDIX" of Apache 2.0, but we should clarify each source codes licensed by Apache 2.0. So I think, for example, inserting such a comment to file header is effective enough:

# This file is a part of Crystal project, which is licensed by Apache License 2.0 (See LICENSE.)

@ysbaddaden
Copy link
Contributor

@makenowjust I assume there is a reason for the in-file license header to be so detailed, so either we put it verbatim, or we just don't.

@j8r
Copy link
Contributor

j8r commented Dec 20, 2018

Any update?

@Shemeikka
Copy link

Hi,

It seems that this has been forgotten for a long time. Would be a good to have a proper license for the project. These changes look good to me.

Could we get an update for this pull request?

NOTICE.md Outdated
- MIT
* [LibYAML](http://pyyaml.org/wiki/LibYAML)
- MIT
* [readline](https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html)
Copy link
Member

Choose a reason for hiding this comment

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

This is no longer linked.

@makenowjust
Copy link
Contributor Author

This PR is created three years ago. Maybe many updates are needed. I will check it tomorrow.

@makenowjust
Copy link
Contributor Author

makenowjust commented Apr 9, 2020

git rebase to HEAD is done, update copyright year and update NOTOCE.md file style.

NOTICE.md Outdated Show resolved Hide resolved
NOTICE.md Outdated Show resolved Hide resolved
makenowjust and others added 2 commits April 10, 2020 19:58
Co-Authored-By: Sijawusz Pur Rahnama <sija@sija.pl>
Copy link
Member

@bcardiff bcardiff left a comment

Choose a reason for hiding this comment

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

I want @waj approval (here or IRL) on this before merging. Thanks!

@waj waj merged commit b250ada into crystal-lang:master Apr 10, 2020
@makenowjust makenowjust deleted the fix/license branch April 10, 2020 19:41
@makenowjust
Copy link
Contributor Author

GitHub detects this project's license is Apache-2.0 correctly.
Thanks!

スクリーンショット 2020-04-11 13 44 58

carlhoerberg pushed a commit to carlhoerberg/crystal that referenced this pull request Apr 29, 2020
@bcardiff bcardiff added this to the 0.35.0 milestone May 27, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants