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

Simplify the top level licensing #35

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

hyandell
Copy link

Summary

Simplifying the top level licensing

Description

As the original Postgesql driver source files refer to LICENSE, our having that license in THIRD-PARTY-LICENSES could be confusing. Given we use the same BSD-2-CLAUSE license, it's very easy to merge the two files together and remove any confusion someone might have from following an original file's source header back to the LICENSE file.

I've updated the LICENSE file and deleted the THIRD-PARTY-LICENSES file.

hyandell added 2 commits May 14, 2021 15:00
As THIRD-PARTY-LICENSES has been merged into LICENSE

PostgreSQL JDBC Driver - https://jdbc.postgresql.org/
Copyright (c) 1997, PostgreSQL Global Development Group
All rights reserved.
Copy link

Choose a reason for hiding this comment

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

The usual way in these things is to leave the original copyright notice at the top and then add

Partial Copyright (c) 2021 Amazon ...

second.

Copy link
Author

Choose a reason for hiding this comment

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

If I was forking a file, I'd agree. Original file's copyright first, then modifications after that; giving a hint to the history of the file.

With a project though, I like to see the project 'owner' first, and then other copyright after that. Helping to identify what the project is and helping to direct communication (be it happy or sad :) ) to the forked project owner instead of to the original project's community.

Just to explain my thinking :) If the Postgresql project would prefer it the other way, then happy to adjust.

Copy link
Contributor

Choose a reason for hiding this comment

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

@hyandell So I'm not quite sure why you would not fork the project?

So my challenge when I see the copyright the way it is written is that it appears that this new project is the copyright owner for the entire codebase. Because of the way the LICENSE file is referred to in all of the existing files you are now exerting copyright over all of the files which I see as being incorrect. I'm not sure how to resolve this at the moment but my understanding is that you own the copyright only on the files that you have added and then partial copyright on anything you have modified.

Copy link

@wieck wieck May 16, 2021

Choose a reason for hiding this comment

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

Henri,

neither Dave nor I can speak for the PostgreSQL project, even though I was for some 10 years a member of the PostgreSQL core team. If broader feedback and community input is desired, we should move this discussion to the appropriate mailing list.

Copy link
Author

Choose a reason for hiding this comment

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

@davecramer how would you expect a forked project to look? My concern with our current approach of a separate license file and third-party-license file is that it's not giving the PostgreSQL licensing enough kudos, so I looked to clarify by bringing them together. Typically I like a license file to cover the main project's core licensing, while any third-party-license filing is more ancillary, be it dependencies or separate contrib packages.

As you said, the copyright on the project is a mix of original PostgreSQL community licensing, and subsequent AWS community changes.

@wieck understood - very happy to have both of your feedback though. I should also point out I'm not a project member of this repo either, just a nosy OSPO team member :)

Copy link
Contributor

Choose a reason for hiding this comment

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

@hyandell I guess I would have expected you to actually fork it on github so that you could do pull requests from it.

Copy link
Author

@hyandell hyandell May 17, 2021

Choose a reason for hiding this comment

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

Ohh. GitHub-fork. I understand now. Sorry, I thought you were using a more generalized 'fork' meaning, such as 'has some code that's unlikely to be accepted upstream'. Which meant I got myself super confused.

Copy link
Contributor

@hsuamz hsuamz left a comment

Choose a reason for hiding this comment

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

Thanks @hyandell for clarifying the licensing. The team will discuss the topics raised here and provide some updates when we can.

@wieck
Copy link

wieck commented May 18, 2021

@hsuamz I don't think there is anything to discuss about licensing here. The existing code was and is covered under the PostgreSQL license, which is a derivative of the BSD 2-clause license. Since you don't own the copyright to that code, you won't be able to change the license.

What the discussion is about is the proper representation of copyright and code ownership. The way it reads in your repository suggests that AWS is the primary owner of copyright on most of the code. The reality is quite the other way around.

@davecramer
Copy link
Contributor

I would also like to see a date on the amendment at the very least.

@hyandell
Copy link
Author

I've taken another stab at the text to make the nature of the project more clear. Please let me know how that looks.

My general principles were:

  1. I don't want this to look like it is passing itself off as the original project.
  2. I want to clearly and respectfully explain the project relationships in the licensing; without it turning into a tome.
  3. I want this all in LICENSE so that the existing PostgreSQL source header fits.

(@davecramer I wasn't sure what you meant by amendment. If you mean a year on Amazon's copyright, we don't typically put years on our open source copyright statements)

https://jdbc.postgresql.org/

The Amazon driver and all Amazon modifications are licensed under the
same license as the PostgreSQL JDBC Driver and are
Copyright Amazon.com Inc. or affiliates. All rights reserved.
Copy link
Contributor

Choose a reason for hiding this comment

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

So the way I read this is: 1) That this is the Amazon driver which it is not, it is the pgjdbc driver with an Aurora connection handler, and 2) That the Amazon Driver and all Amazon modifications are Copyright Amazon, only the last part is true, the Amazon additions are copyrightable, the modifications can add your copyright, but the existing code should maintain the pgjdbc copyright(s)

Copy link
Author

Choose a reason for hiding this comment

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

Interesting. It feels like the debate here is more about naming than licensing.

I don't view this as the pgjdbc driver, if we called it that we would be misrepresenting this as being from the PostgreSQL project. It's absolutely the Amazon Driver (or in more full from the README "the Amazon Web Services (AWS) JDBC Driver for PostgreSQL"). Would the fuller name fix issues here?

I believe the original intent is that "The Amazon driver" is referring as a shorthand to the code within the https://github.com/awslabs/aws-postgresql-jdbc/tree/main/pgjdbc/src/main/java/software/aws/rds/jdbc/postgresql package. Is your objection that the Driver.java there is primarily from pgjdbc and instead you want it to say "The Amazon 'ca'"? [with whatever noun best fits for cluster aware handler code]

Copy link
Author

Choose a reason for hiding this comment

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

(On naming; my background is mostly Apache project based, and we may be more trademark/name sensitive than most)

Copy link
Contributor

Choose a reason for hiding this comment

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

@hyandell To be clear it has never been about licensing.
My issue has always been attribution.
Amazon has added ~4600 lines of code to 60,000 exclusive of tests. I'm having trouble wrapping my head around how one can claim it's Amazon's driver?

Copy link
Author

Choose a reason for hiding this comment

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

I think there are a lot of overlapping issues to discuss here.

My understanding in general Open Source philosophies is that it is fine to say that something is the same product when there are tiny tweaks. Like a Debian package for a project adding backports or tiny build tweaks but still calling it the same name. Larger changes however mean a name change, otherwise the original project suffers from bug reports that don't relate to them at all. Flashbacks to all the arguments over Debian Iceweasel. So namewise, I definitely think we (wearing my AWS OSPO hat) should not be calling this pgjdbc.

On the other hand, I definitely agree that we should not be saying it is all our own work. I hope we're not saying that anywhere and will support feedback to fix any of that. That being core to why we (general permissive community) have attribution requirements in permissive licensing, to make sure that nobody passes off their project as being all their own work.

Do you have some proposed alternative language? (I don't mean that from "Please do my work for me" but just to help me understand your perspective)

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

Successfully merging this pull request may close these issues.

4 participants