-
Notifications
You must be signed in to change notification settings - Fork 2k
Fix <license><name>
by using SPDX in pom.xml
#13413
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
base: jetty-12.0.x
Are you sure you want to change the base?
Fix <license><name>
by using SPDX in pom.xml
#13413
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huh?
This is a free form field.
The <url>
is the canonical license declaration found in the pom (not the <name>
).
Along with any SPDX-License-Identifier
in the declared LICENSE
or META-INF/LICENSE*
files.
Lets take a look at other Apache projects...
-
Apache HADOOP
https://github.com/apache/hadoop/blob/trunk/pom.xml#L74
<name>Apache-2.0</name>
-
Apache Struts
https://github.com/apache/struts/blob/main/pom.xml#L95
<name>The Apache Software License, Version 2.0</name>
-
Apache Parent Pom
https://github.com/apache/maven-apache-parent/blob/master/pom.xml#L46
<name>Apache-2.0</name>
-
Apache Maven itself is based on
org.apache:apache:pom
https://github.com/apache/maven-parent
Example of SPDX - Line 483 in 1f185b6
|
Any "automated license compliance checkers" should be using the |
Automated license compliance checkers complain when the `<name>` and the `<url>` tag of a `<license>` element in the pom.xml don't match. Any mismatch requires manual investigation. The current tag `<name>Apache Software License - Version 2.0</name>` doesn't match the official license name because the official license name is `Apache License` and not `Apache Software License`: https://www.apache.org/licenses/LICENSE-2.0 There are two official ways to fill the `<name>` tag: * The full legal name of the license as specified by https://maven.apache.org/ref/3.9.11/maven-model/maven.html * The SPDX identifier as recommended by https://maven.apache.org/pom.html#Licenses During code review the full legal name was rejected as wrong and it was requested that the SPDX identifier must be used. Therefore the `<name>` is changed from the full legal name to the SPDX identifier. This fixes the issue with the wrong license name. Signed-off-by: Julian Ladisch <[email protected]>
5b38ba6
to
00b66b8
Compare
<license><name>
by using SPDX in pom.xml
No, this isn't right either, we are not switching to SPDX short identifiers in the pom.xml. The Those "automated license compliance checkers" should be using the FULL "SPDX license expression" to understand the license, not the
The ASL (aka Apache Software License) is an industry accepted term and acronym. The NEW license 2.0 dropped the "Software" on the official license text, but the projects hosted at apache.org themselves don't use that trimmed term. In short, we are not going to bend and twist Jetty's pom.xml to satisfy your "automated license compliance checkers". Other automated tools in this same problem space have no issues with existing Jetty setup. We suggest you look at replacement tools that handle license validation in a more correct way. Find a tool that supports both SPDX and ECMA-424 for license validation, then just use the information in the distributed JARs and BOMs for your license validation. (Note: ECMA-424 defines how to handle multiple licenses, even if they don't have the AND/OR/WITH language present in the BOM metadata) Our ECMA-424 BOMs are found in the jetty-home artifact coordinates - https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/12.0.23/ |
I'm closing this, as we don't want to make this change to the pom.xml for a fundamentally broken license validation tool. |
If the
|
The compliance checker complains that in
The compliance checker handles |
What license checker are you using? |
<license> | ||
<name>Eclipse Public License - Version 2.0</name> | ||
<name>EPL-2.0</name> | ||
<url>https://www.eclipse.org/legal/epl-2.0/</url> | ||
</license> | ||
<license> | ||
<name>Apache Software License - Version 2.0</name> | ||
<name>Apache-2.0</name> | ||
<url>https://www.apache.org/licenses/LICENSE-2.0</url> | ||
</license> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add <distribution>repo</distribution>
to each one too.
pom.xml
Outdated
<license> | ||
<name>Apache Software License - Version 2.0</name> | ||
<name>Apache-2.0</name> | ||
<url>https://www.apache.org/licenses/LICENSE-2.0</url> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets use the same URL as org.apache:apache
parent pom too.
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
Signed-off-by: Julian Ladisch <[email protected]>
Automated license compliance checkers complain when the
<name>
and the
<url>
tag of a<license>
element in the pom.xml don't match.Any mismatch requires manual investigation.
The current tag
<name>Apache Software License - Version 2.0</name>
doesn't match the official license name because the official license
name is
Apache License
and notApache Software License
:https://www.apache.org/licenses/LICENSE-2.0
There are two official ways to fill the
<name>
tag:During code review the full legal name was rejected as wrong and it was requested that
the SPDX identifier must be used.
Therefore the
<name>
is changed from the full legal name to the SPDX identifier.This fixes the issue with the wrong license name.