You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2017/06/21 20:05:31 UTC
hbase git commit: HBASE-16351 Improve error reporting for license
failures
Repository: hbase
Updated Branches:
refs/heads/master 00f657fbe -> d8e0163fa
HBASE-16351 Improve error reporting for license failures
Signed-off-by: Sean Busbey <bu...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d8e0163f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d8e0163f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d8e0163f
Branch: refs/heads/master
Commit: d8e0163facdb8003b71fb1173ca86340317c8fdc
Parents: 00f657f
Author: Mike Drob <md...@apache.org>
Authored: Fri Jun 16 21:53:13 2017 -0500
Committer: Sean Busbey <bu...@apache.org>
Committed: Wed Jun 21 14:12:53 2017 -0500
----------------------------------------------------------------------
.../src/main/resources/META-INF/LICENSE.vm | 30 ++++++++---
.../src/main/resources/META-INF/NOTICE.vm | 10 +---
pom.xml | 57 ++++++++++++++++++++
3 files changed, 81 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/d8e0163f/hbase-resource-bundle/src/main/resources/META-INF/LICENSE.vm
----------------------------------------------------------------------
diff --git a/hbase-resource-bundle/src/main/resources/META-INF/LICENSE.vm b/hbase-resource-bundle/src/main/resources/META-INF/LICENSE.vm
index f842d00..7183310 100644
--- a/hbase-resource-bundle/src/main/resources/META-INF/LICENSE.vm
+++ b/hbase-resource-bundle/src/main/resources/META-INF/LICENSE.vm
@@ -1550,7 +1550,27 @@ ${dep.scm.url}
#thrift_license()
#end
## Note that this will fail the build if we don't have a license. update supplemental-models.
-#if( !(${dep.licenses[0].name.contains("Apache License, Version 2.0")} || ${dep.licenses[0].name.contains("The Apache Software License, Version 2.0")}) )
+#if( ${dep.licenses.isEmpty()} )
+--
+ERROR: ${dep.name} dependency found without license information!
+
+Please find the appropriate license and update supplemental-models.xml or
+revert the change that added this dependency.
+
+More info on the dependency:
+
+<groupId>${dep.groupId}</groupId>
+<artifactId>${dep.artifactId}</artifactId>
+<version>${dep.version}</version>
+
+maven central search
+g:${dep.groupId} AND a:${dep.artifactId} AND v:${dep.version}
+
+project website
+${dep.url}
+project source
+${dep.scm.url}
+#elseif( !(${dep.licenses[0].name.contains("Apache License, Version 2.0")} || ${dep.licenses[0].name.contains("The Apache Software License, Version 2.0")}) )
#if( ${dep.licenses[0].name.contains("CDDL")} )
#if( ${dep.licenses[0].name.contains("1.0")} )
#set($aggregated = $cddl_1_0.add($dep))
@@ -1576,7 +1596,7 @@ This product includes ${dep.name} licensed under the ${dep.licenses[0].name}.
${dep.licenses[0].comments}
#if(!(${non_aggregate_fine.contains($dep.licenses[0].name)}))
-Please check ^^^^^^^^^^^^ this License for acceptability here:
+ERROR: Please check ^^^^^^^^^^^^ this License for acceptability here:
https://www.apache.org/legal/resolved
@@ -1596,12 +1616,6 @@ project website
${dep.url}
project source
${dep.scm.url}
-
-## fail the template. If you're looking at the source LICENSE.vm
-## file based on a stacktrace or exception message, you need to find
-## the generated LICENSE file that has the actual dependency info printed.
-#set($empty = [])
-${empty[0]}
#end
#end
#end
http://git-wip-us.apache.org/repos/asf/hbase/blob/d8e0163f/hbase-resource-bundle/src/main/resources/META-INF/NOTICE.vm
----------------------------------------------------------------------
diff --git a/hbase-resource-bundle/src/main/resources/META-INF/NOTICE.vm b/hbase-resource-bundle/src/main/resources/META-INF/NOTICE.vm
index c77ade5..953b316 100644
--- a/hbase-resource-bundle/src/main/resources/META-INF/NOTICE.vm
+++ b/hbase-resource-bundle/src/main/resources/META-INF/NOTICE.vm
@@ -270,14 +270,7 @@ project website
${dep.url}
project source
${dep.scm.url}
-
-
-
-## fail the template. If you're looking at the source NOTICE.vm
-## file based on a stacktrace or exception message, you need to find
-## the generated NOTICE file that has the actual dependency info printed.
-${dep.license[0]}
-#end
+#else
#if( !(${dep.licenses[0].name.contains("BSD")} || ${dep.licenses[0].name.contains("MIT")}) )
#if( !(${dep.licenses[0].name.equals("Public Domain")}) )
#if( !(${dep.licenses[0].name.contains("Apache Software License, Version 2.0")}) )
@@ -309,6 +302,7 @@ For source see '${dep.url}'.
#end
#end
#end
+#end
## Print out jetty
#if(${jetty})
#jetty_notice(${jetty-with-crypt})
http://git-wip-us.apache.org/repos/asf/hbase/blob/d8e0163f/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 45f8e45..1b87973 100644
--- a/pom.xml
+++ b/pom.xml
@@ -913,6 +913,24 @@
</pluginManagement>
<plugins>
<plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>negate-license-bundles-property</id>
+ <goals>
+ <goal>bsh-property</goal>
+ </goals>
+ <configuration>
+ <source>skip.license.check = !${license.bundles.dependencies};</source>
+ <properties>
+ <property>skip.license.check</property>
+ </properties>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4</version>
@@ -1009,6 +1027,41 @@
</rules>
</configuration>
</execution>
+ <execution>
+ <id>check-aggregate-license</id>
+ <!-- must check after LICENSE is built at 'generate-resources' -->
+ <phase>process-resources</phase>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <evaluateBeanshell>
+ <condition>
+ File license = new File("${license.aggregate.path}");
+
+ // Beanshell does not support try-with-resources,
+ // so we must close this scanner manually
+ Scanner scanner = new Scanner(license);
+
+ while (scanner.hasNextLine()) {
+ if (scanner.nextLine().startsWith("ERROR:")) {
+ scanner.close();
+ return false;
+ }
+ }
+ scanner.close();
+ return true;
+ </condition>
+ <message>
+ License errors detected, for more detail find ERROR in
+ ${license.aggregate.path}
+ </message>
+ </evaluateBeanshell>
+ </rules>
+ <skip>${skip.license.check}</skip>
+ </configuration>
+ </execution>
</executions>
</plugin>
<!-- parent-module only plugins -->
@@ -1270,6 +1323,10 @@
<license.bundles.bootstrap>false</license.bundles.bootstrap>
<!-- modules that include jquery in their source tree should set true -->
<license.bundles.jquery>false</license.bundles.jquery>
+ <!-- where to find the generated LICENSE files -->
+ <license.aggregate.path>
+ ${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE
+ </license.aggregate.path>
<tar.name>${project.build.finalName}.tar.gz</tar.name>
<maven.build.timestamp.format>
yyyy-MM-dd'T'HH:mm