From 37cddcce15e56894e8e5cfc97da69da7949686e4 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sat, 29 Jun 2019 16:10:51 -0700 Subject: [PATCH 01/46] Binary license management system --- LICENSE.BINARY | 1265 ---------------------- license.yaml | 2810 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2810 insertions(+), 1265 deletions(-) delete mode 100644 LICENSE.BINARY create mode 100644 license.yaml diff --git a/LICENSE.BINARY b/LICENSE.BINARY deleted file mode 100644 index 56016a74b177..000000000000 --- a/LICENSE.BINARY +++ /dev/null @@ -1,1265 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/bin/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/bin/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - APACHE DRUID (INCUBATING) SUBCOMPONENTS: - - Apache Druid (incubating) includes a number of subcomponents with - separate copyright notices and license terms. Your use of the source - code for these subcomponents is subject to the terms and - conditions of the following licenses. - - -Apache License version 2.0 -================================ - -SOURCE/JAVA-CORE - This product contains conjunctive normal form conversion code, a variance aggregator algorithm, and Bloom filter - adapted from Apache Hive. - * processing/src/main/java/org/apache/druid/segment/filter/Filters.java - * extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregatorCollector.java - * extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/filter/BloomKFilter.java - - This product contains variable length long deserialization code adapted from Apache Lucene. - * processing/src/main/java/org/apache/druid/segment/data/VSizeLongSerde.java - - This product contains SQL query planning code adapted from Apache Calcite. - * sql/src/main/java/org/apache/druid/sql/calcite/ - - This product contains Kerberos authentication code adapted from Apache Hadoop. - * extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/ - - This product contains a modified version of the java-alphanum library, - copyright Andrew Duffy (https://github.com/amjjd/java-alphanum). - * processing/src/main/java/org/apache/druid/query/ordering/StringComparators.java - - This product contains a modified version of the Metamarkets java-util library, - copyright Metamarkets Group Inc. (https://github.com/metamx/java-util). - * java-util/ - - This product contains a modified version of the Metamarkets bytebuffer-collections library, - copyright Metamarkets Group Inc. (https://github.com/metamx/bytebuffer-collections) - * processing/src/main/java/org/apache/druid/collections/ - - This product contains a modified version of the Metamarkets extendedset library, - copyright Metamarkets Group Inc. (https://github.com/metamx/extendedset) - * extendedset/ - - This product contains a modified version of the CONCISE (COmpressed 'N' Composable Integer SEt) library, - copyright Alessandro Colantonio (https://sourceforge.net/projects/concise/), extending the functionality of - ConciseSet to use IntBuffers. - * extendedset/src/main/java/org/apache/druid/extendedset/intset/ - - This product contains modified portions of the Guava library, - copyright The Guava Authors (https://github.com/google/guava). - Closer class: - * core/src/main/java/org/apache/druid/java/util/common/io/Closer.java - Splitter.splitToList() method: - * core/src/main/java/org/apache/druid/java/util/common/parsers/DelimitedParser.java - DirectExecutorService class: - * core/src/main/java/org/apache/druid/java/util/common/concurrent/DirectExecutorService.java - - This product contains modified versions of the Dockerfile and related configuration files - from SequenceIQ's Hadoop Docker image, copyright SequenceIQ, Inc. (https://github.com/sequenceiq/hadoop-docker/) - * examples/quickstart/tutorial/hadoop/docker/ - - This product contains fixed bins histogram percentile computation code adapted from Netflix Spectator, - copyright Netflix, Inc. (https://github.com/Netflix/spectator) - * extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogram.java - - -BINARY/WEB-CONSOLE - This product bundles Microsoft tslib version 1.9.3. - - This product bundles diff-match-patch version 1.0.4. - - This product bundles @blueprintjs/core version 1.0.1. - - -BINARY/JAVA-CORE - This product bundles AWS SDK for Java version 1.11.199. - * com.amazonaws:aws-java-sdk-core - * com.amazonaws:aws-java-sdk-ec2 - * com.amazonaws:aws-java-sdk-kms - * com.amazonaws:aws-java-sdk-s3 - * com.amazonaws:jmespath-java - - This product bundles Esri Geometry API for Java version 2.0.0. - * com.esri.geometry:esri-geometry-api - - This product bundles ClassMate version 1.0.0. - * com.fasterxml:classmate - - This product bundles Jackson version 2.6.7. - * com.fasterxml.jackson.core:jackson-annotations - * com.fasterxml.jackson.core:jackson-core - * com.fasterxml.jackson.core:jackson-databind - * com.fasterxml.jackson.dataformat:jackson-dataformat-cbor - * com.fasterxml.jackson.dataformat:jackson-dataformat-smile - * com.fasterxml.jackson.datatype:jackson-datatype-guava - * com.fasterxml.jackson.datatype:jackson-datatype-joda - * com.fasterxml.jackson.jaxrs:jackson-jaxrs-base - * com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider - * com.fasterxml.jackson.jaxrs:jackson-jaxrs-smile-provider - * com.fasterxml.jackson.module:jackson-module-jaxb-annotations - - This product bundles Caffeine version 2.5.5. - * com.github.ben-manes.caffeine:caffeine - - This product bundles Error Prone Annotations version 2.3.2. - * com.google.errorprone:error_prone_annotations - - This product bundles Guava version 16.0.1. - * com.google.guava:guava - - This product bundles Guice version 4.1.0. - * com.google.inject:guice - * com.google.inject.extensions:guice-multibindings - * com.google.inject.extensions:guice-servlet - - This product bundles JsonPath version 2.3.0. - * com.jayway.jsonpath:json-path - - This product bundles LMAX Disruptor version 3.3.6. - * com.lmax:disruptor - - This product bundles LZF Compressor version 1.0.4. - * com.ning:compress-lzf - - This product bundles OpenCSV version 4.2. - * com.opencsv:opencsv - - This product bundles OkHttp version 1.0.2, - * com.squareup.okhttp:okhttp - - This product bundles Netty Reactive Streams version 2.0.0. - * com.typesafe.netty:netty-reactive-streams - - This product bundles the following Apache Commons libraries: - * commons-beanutils 1.9.3 - * commons-cli 1.2 - * commons-codec 1.7 - * commons-collections 3.2.2 - * commons-io 2.5 - * commons-lang 2.6 - * commons-logging 1.1.1 - * commons-pool 1.6 - * commons-collections4 4.1 - * commons-compress 1.16 - * commons-dbcp2 2.0.1 - * commons-lang3 3.7 - * commons-math3 3.6.1 - * commons-pool2 2.2 - * commons-text 1.3 - - This product bundles Airline version 0.7. - * io.airlift:airline - - This product bundles DropWizard Metrics Core version 4.0.0. - * io.dropwizard.metrics:metrics-core - - This product bundles Netty version 3.10.6.Final. - * io.netty:netty - - This product bundles Netty version 4.1.30.Final. - * io.netty:netty-all - - This product bundles Netty version 4.1.29.Final. - * io.netty:netty-buffer - * io.netty:netty-codec - * io.netty:netty-codec-dns - * io.netty:netty-codec-http - * io.netty:netty-codec-socks - * io.netty:netty-common - * io.netty:netty-handler - * io.netty:netty-handler-proxy - * io.netty:netty-resolver - * io.netty:netty-resolver-dns - * io.netty:netty-transport - * io.netty:netty-transport-native-epoll - * io.netty:netty-transport-native-unix-common - - This product bundles fastutil version 8.1.0. - * it.unimi.dsi:fastutil - - This product bundles Javax Inject version 1. - * javax.inject.javax:inject - - This product bundles Bean Validation API version 1.1.0.Final. - * javax.validation:validation-api - - This product bundles Joda-Time version 2.9.9. - * joda-time:joda-time - - This product bundles Aggregate Designer Algorithm version 6.0. - * net.hydromatic:aggdesigner-algorithm - - This product bundles Java Native Access (JNA) version 4.5.1. - * net.java.dev.jna:jna - - This product bundles ASM Based Accessors Helper Used By JSON Smart version 1.2. - * net.minidev:accessors-smart - - This product bundles JSON Small and Fast Parser version 2.3. - * net.minidev:json-smart - - This product bundles Spymemcached version 2.12.3. - * net.spy:spymemcached - - This product bundles jackson-jq version 0.0.7. - * net.thisptr:jackson-jq - - This product bundles Apache Calcite version 1.17.0. - * org.apache.calcite:calcite-core - * org.apache.calcite:calcite-linq4j - - This product bundles Apache Calcite Avatica version 1.10.0. - * org.apache.calcite:avatica.avatica-core - * org.apache.calcite:avatica.avatica-metrics - * org.apache.calcite:avatica.avatica-server - - This product bundles Apache Curator version 4.1.0. - * org.apache.curator:curator-client - * org.apache.curator:curator-framework - * org.apache.curator:curator-recipes - * org.apache.curator:curator-x-discovery - - This product bundles Apache Derby version 10.11.1.1. - * org.apache.derby:derby - * org.apache.derby:derbyclient - * org.apache.derby:derbynet - - This product bundles Apache HttpClient version 4.5.3. - * org.apache.httpcomponents:httpclient - - This product bundles Apache HttpCore version 4.4.4. - * org.apache.httpcomponents:httpcore - - This product bundles Apache Log4j version 2.5. - * org.apache.logging.log4j:log4j-1.2-api - * org.apache.logging.log4j:log4j-api - * org.apache.logging.log4j:log4j-core - * org.apache.logging.log4j:log4j-jul - * org.apache.logging.log4j:log4j-slf4j-impl - - This product bundles Apache Maven version 3.1.1. - * org.apache.maven:maven-aether-provider - * org.apache.maven:maven-model - * org.apache.maven:maven-model-builder - * org.apache.maven:maven-repository-metadata - * org.apache.maven:maven-settings - * org.apache.maven:maven-settings-builder - - This product bundles Apache Maven Artifact version 3.6.0. - * org.apache.maven:maven-artifact - - This product bundles Apache Maven Wagon API version 2.4. - * org.apache.maven.wagon:wagon-provider-api - - This product bundles Apache Yetus Audience Annotations Component version 0.5.0. - * org.apache.yetus:audience-annotations - - This product bundles Apache Zookeeper version 3.4.11. - * org.apache.zookeeper:zookeeper - - This product bundles AsyncHttpClient asynchttpclient version 2.5.3. - * org.asynchttpclient:async-http-client - * org.asynchttpclient:async-http-client-netty-utils - - This product bundles components from Jackson version 1.9.13. - * org.codehaus.jackson:jackson-core-asl - * org.codehaus.jackson:jackson-mapper-asl - - This product bundles Plexus Interpolation API 1.19. - * org.codehaus.plexus:plexus-interpolation - - This product bundles Plexus Common Utilities 3.0.15. - * org.codehaus.plexus:plexus-utils - - This product bundles Jetty version 9.4.10.v20180503. - * org.eclipse.jetty:jetty-client - * org.eclipse.jetty:jetty-continuation - * org.eclipse.jetty:jetty-http - * org.eclipse.jetty:jetty-io - * org.eclipse.jetty:jetty-proxy - * org.eclipse.jetty:jetty-security - * org.eclipse.jetty:jetty-server - * org.eclipse.jetty:jetty-servlet - * org.eclipse.jetty:jetty-servlets - * org.eclipse.jetty:jetty-util - - This product bundles JVM Attach API version 1.2. - * org.gridkit.lab:jvm-attach-api - - This product bundles Hibernate Validator Engine version 5.1.3.Final. - * org.hibernate:hibernate-validator - - This product bundles SIGAR version 1.6.5.132. - * org.hyperic:sigar - - This product bundles JBoss Logging 3 version 3.1.3.GA. - * org.jboss.logging:jboss-logging - - This product bundles JDBI version 2.63.1. - * org.jdbi:jdbi - - This product bundles LZ4 Java version 1.6.0. - * org.lz4:java - - This product bundles MapDB version 1.0.8. - * org.mapdb:mapdb - - This product bundles Objenesis version 2.6. - * org.objenesis:objenesis - - This product bundles RoaringBitmap version 0.7.36. - * org.roaringbitmap:RoaringBitmap - * org.roaringbitmap:shims - - This product bundles Config Magic version 0.9. - * org.skife.config:config-magic - - This product bundles Ion Java version 1.0.2. - * software.amazon.ion:ion-java - - -BINARY/HADOOP-CLIENT - This product bundles Apache Hadoop version 2.8.3. - * org.apache.hadoop:hadoop-annotations - * org.apache.hadoop:hadoop-auth - * org.apache.hadoop:hadoop-client - * org.apache.hadoop:hadoop-common - * org.apache.hadoop:hadoop-hdfs-client - * org.apache.hadoop:hadoop-mapreduce-client-app - * org.apache.hadoop:hadoop-mapreduce-client-common - * org.apache.hadoop:hadoop-mapreduce-client-core - * org.apache.hadoop:hadoop-mapreduce-client-jobclient - * org.apache.hadoop:hadoop-mapreduce-client-shuffle - * org.apache.hadoop:hadoop-yarn-api - * org.apache.hadoop:hadoop-yarn-client - * org.apache.hadoop:hadoop-yarn-common - * org.apache.hadoop:hadoop-yarn-server-common - - This product bundles Gson version 2.2.4. - * com.google.code.gson:gson - - This product bundles Guava version 11.0.2. - * com.google.guava:guava - - This product bundles Nimbus JOSE+JWT version 3.9. - * com.nimbusds:nimbus-jose-jwt - - This product bundles OkHttp version 2.4.0, - * com.squareup.okhttp:okhttp - - This product bundles Okio version 1.4.0, - * com.squareup.okio:okio - - This product bundles the following Apache Commons libraries: - * commons-beanutils 1.7.0 - * commons-beanutils-core 1.8.0 - * commons-codec 1.4 - * commons-configuration 1.6 - * commons-digester 1.8 - * commons-io commons-io 2.4 - * commons-logging 1.1.3 - * commons-net 3.1 - * commons-compress 1.4.1 - * commons-math3 3.1.1 - - This product bundles Netty version 3.6.2.Final. - * io.netty:netty - - This product bundles Apache Log4j version 1.2.17. - * log4j:log4j - - This product bundles JSON Small and Fast Parser version 1.1.1. - * net.minidev:json-smart - - This product bundles Apache Avro version 1.7.4. - * org.apache.avro:avro - - This product bundles Apache Directory version 1.0.0-M20. - * org.apache.directory.api:api-asn1-api - * org.apache.directory.api:api-util - - This product bundles Apache Directory Server version 2.0.0-M15. - * org.apache.directory.server:apacheds-i18n - * org.apache.directory.server:apacheds-kerberos-codec - - This product bundles Apache HTrace version 4.0.1-incubating. - * org.apache.htrace:htrace-core4 - - This product bundles Apache HttpClient version 4.5.2. - * org.apache.httpcomponents:httpclient - - This product bundles Apache Zookeeper version 3.4.6. - * org.apache.zookeeper:zookeeper - - This product bundles components from Jackson version 1.9.13. - * org.codehaus.jackson:jackson-jaxrs - * org.codehaus.jackson:jackson-xc - - This product bundles Jetty version 6.1.26. - * org.mortbay.jetty:jetty-sslengine - * org.mortbay.jetty:jetty-util - - This product bundles snappy-java version 1.0.4.1. - * org.xerial.snappy:snappy-java - - -BINARY/EXTENSIONS/druid-avro-extensions - This product bundles Kafka Schema Registry Client version 3.0.1. - * io.confluent:kafka-schema-registry-client - - This product bundles Apache Avro version 1.8.2. - * org.apache.avro:avro - * org.apache.avro:avro-mapred - * org.apache.avro:avro-ipc - - This product bundles Schema Repository version 0.1.3. - * org.schemarepo:schema-repo-api - * org.schemarepo:schema-repo-avro - * org.schemarepo:schema-repo-client - * org.schemarepo:schema-repo-common - - This product bundles Gson version 2.3.1. - * com.google.code.gson:gson - - This product bundles Apache Velocity version 1.7. - * org.apache.velocity:velocity - - This product bundles Jetty version 6.1.26. - * org.mortbay.jetty:jetty - - This product bundles Jetty version 2.5-20081211. - * org.mortbay.jetty:servlet-api - - This product bundles Objenesis version 2.6. - * org.objenesis:objenesis - - This product bundles snappy-java version 1.1.1.3. - * org.xerial.snappy:snappy-java - - -BINARY/EXTENSIONS/druid-bloom-filter - - This product bundles Apache Hive version 2.7.0. - * org.apache.hive:hive-storage-api - - -BINARY/EXTENSIONS/druid-datasketches - - This product bundles DataSketches version 0.13.3. - * com.yahoo.datasketches:datasketches-core - * com.yahoo.datasketches:memory - - -BINARY/EXTENSIONS/druid-examples - - This product bundles IRC API version 1.0-0014. - * com.ircclouds.irc:irc-api - - This product bundles MaxMind GeoIP2 API version 0.4.0. - * com.maxmind.geoip2:geoip2 - - This product bundles the following Apache Commons libraries: - * commons-beanutils 1.8.3 - * commons-validator 1.4.0 - - This product bundles Twitter4J version 3.0.3. - * org.twitter4j:twitter4j-async - * org.twitter4j:twitter4j-core - * org.twitter4j:twitter4j-stream - - -BINARY/EXTENSIONS/druid-kafka-eight - - This product bundles Apache Kafka version 0.8.2.1. - * org.apache.kafka:kafka_2.10 - * org.apache.kafka:kafka-clients - - This product bundles ZkClient version 0.3. - * com.101tec:zkclient - - This product bundles Yammer Metrics version 2.2.0. - * com.yammer.metrics:metrics-core - - This product bundles snappy-java version 1.1.1.6. - * org.xerial.snappy:snappy-java - - -BINARY/EXTENSIONS/druid-kafka-indexing-service - This product bundles Apache Kafka version 0.10.2.2. - * org.apache.kafka:kafka-clients - - This product bundles snappy-java version 1.1.2.6. - * org.xerial.snappy:snappy-java - - -BINARY/EXTENSIONS/druid-kerberos - - This product bundles XML Builder version 0.4. - * com.jamesmurty.utils:java-xmlbuilder - - This product bundles Jettison version 1.1. - * org.codehaus.jettison:jettison - - This product bundles Jets3t version 0.9.0. - * net.java.dev.jets3t:jets3t - - -BINARY/EXTENSIONS/druid-kinesis-indexing-service - This product bundles AWS SDK for Java version 1.11.199. - * com.amazonaws:aws-java-sdk-kinesis - * com.amazonaws:aws-java-sdk-sts - - -BINARY/EXTENSIONS/druid-parquet-extensions - This product bundles Apache Parquet version 1.10.0. - * org.apache.parquet:parquet-avro - * org.apache.parquet:parquet-column - * org.apache.parquet:parquet-common - * org.apache.parquet:parquet-encoding - * org.apache.parquet:parquet-hadoop - * org.apache.parquet:parquet-jackson - - This product bundles Apache Parquet Format version 2.4.0. - * org.apache.parquet:parquet-format - - This product bundles snappy-java version 1.1.7.2. - * org.xerial.snappy:snappy-java - - -BINARY/EXTENSIONS/protobuf-extensions - This product bundles Protocol Buffers Dynamic Schema version 0.9.3. - * com.github.os72:protobuf-dynamic - - This product bundles Gson version 2.7. - * com.google.code.gson:gson - - - -MIT License -================================ - -SOURCE/WEB-CONSOLE - This product bundles jQuery version 1.11.0, copyright jQuery Foundation, Inc., - which is available under an MIT license. For details, see licenses/src/jquery.MIT. - - This product bundles sizzle.js by way of jQuery version 1.11.0, copyright jQuery Foundation and other contributors - which is available under an MIT license. For details, see licenses/src/sizzle.MIT. - - This product bundles jQuery UI version 1.9.2, copyright jQuery Foundation and other contributors, - which is available under an MIT license. For details, see licenses/src/jquery-ui.MIT. - - This product bundles underscore version 1.2.2, copyright Jeremy Ashkenas, DocumentCloud, - which is available under an MIT license. For details, see licenses/src/underscore.MIT. - - -BINARY/JAVA-CORE - This product bundles Checker Qual version 2.5.7, copyright the Checker Framework developers, - which is available under an MIT license. For details, see licenses/bin/checker-qual.MIT. - * org.checkerframework:checker-qual - - This product bundles JCodings version 1.0.13, copyright JRuby Team, - which is available under an MIT license. For details, see licenses/bin/jcodings.MIT. - * org.jruby.jcodings:jcodings - - This product bundles Joni version 2.1.11, copyright JRuby Team, - which is available under an MIT license. For details, see licenses/bin/joni.MIT. - * org.jruby.joni:joni - - This product bundles JCL 1.2 Implemented Over SLF4J version 1.7.12, copyright QOS.ch, - which is available under an MIT license. For details, see licenses/bin/jcl-over-slf4j.MIT. - * org.slf4j:jcl-over-slf4j - - This product bundles SLF4J API version 1.6.4, copyright QOS.ch, - which is available under an MIT license. For details, see licenses/bin/slf4j.MIT. - * org.slf4j:slf4j-api - - -BINARY/HADOOP-CLIENT - This product bundles SLF4J API version 1.7.10, copyright QOS.ch, - which is available under an MIT license. For details, see licenses/bin/slf4j.MIT. - * org.slf4j:slf4j-api - * org.slf4j:slf4j-log4j12 - - -BINARY/EXTENSIONS/druid-kafka-eight - This product bundles JOpt Simple version 3.2., copyright Paul R. Holser, Jr., - which is available under an MIT license. For details, see licenses/bin/jopt-simple.MIT. - * net.sf.jopt-simple:jopt-simple - - -BINARY/WEB-CONSOLE -The following dependency names are NPM package names (https://www.npmjs.com). - - This product bundles @babel/runtime version 7.3.4, copyright Sebastian McKenzie and other contributors, - which is available under an MIT license. For details, see licenses/bin/@babel-runtime.MIT. - - This product bundles array-includes version 3.0.3, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/array-includes.MIT. - - This product bundles asap version 2.0.6, copyright Contributors, - which is available under an MIT license. For details, see licenses/bin/asap.MIT. - - This product bundles axios version 0.18.0, copyright Matt Zabriskie, - which is available under an MIT license. For details, see licenses/bin/axios.MIT. - - This product bundles brace version 0.11.1, copyright Thorsten Lorenz, - which is available under an MIT license. For details, see licenses/brace.MIT. - - This product bundles chain-function version 1.0.1, copyright jquense, - which is available under an MIT license. For details, see licenses/chain-function.MIT. - - This product bundles classnames version 2.2.6, copyright Jed Watson, - which is available under an MIT license. For details, see licenses/bin/classnames.MIT. - - This product bundles define-properties version 1.1.3, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/define-properties.MIT. - - This product bundles dom-helpers version 3.4.0, copyright Jason Quense, - which is available under an MIT license. For details, see licenses/bin/dom-helpers.MIT. - - This product bundles dom4 version 1.8.5, copyright Andrea Giammarchi, - which is available under an MIT license. For details, see licenses/bin/dom4.MIT. - - This product bundles encoding version 0.1.12, copyright Andris Reinman, - which is available under an MIT license. For details, see licenses/bin/encoding.MIT. - - This product bundles es-abstract version 1.13.0, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/es-abstract.MIT. - - This product bundles es-to-primitive version 1.2.0, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/es-to-primitive.MIT. - - This product bundles es6-shim version 0.35.4, copyright Paul Miller and contributors, - which is available under an MIT license. For details, see licenses/bin/es6-shim.MIT. - - This product bundles es7-shim version 6.0.0, copyright Jordan Harband and contributors, - which is available under an MIT license. For details, see licenses/bin/es7-shim.MIT. - - This product bundles fbjs version 0.8.17, copyright Facebook, Inc., - which is available under an MIT license. For details, see licenses/bin/fbjs.MIT. - - This product bundles function-bind version 1.1.1, copyright Raynos, - which is available under an MIT license. For details, see licenses/bin/function-bind.MIT. - - This product bundles has-symbols version 1.0.0, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/has-symbols.MIT. - - This product bundles has version 1.0.3, copyright Thiago de Arruda, - which is available under an MIT license. For details, see licenses/bin/has.MIT. - - This product bundles history version 4.7.2, copyright Michael Jackson, - which is available under an MIT license. For details, see licenses/bin/history.MIT. - - This product bundles hjson version 3.1.2, copyright Christian Zangl, - which is available under an MIT license. For details, see licenses/bin/hjson.MIT. - - This product bundles invariant version 2.2.4, copyright Facebook, Inc., - which is available under an MIT license. For details, see licenses/bin/invariant.MIT. - - This product bundles is-buffer version 1.1.6, copyright Feross Aboukhadijeh, - which is available under an MIT license. For details, see licenses/bin/is-buffer.MIT. - - This product bundles is-callable version 1.1.4, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/is-callable.MIT. - - This product bundles is-date-object version 1.0.1, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/is-date-object.MIT. - - This product bundles is-regex version 1.0.4, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/is-regex.MIT. - - This product bundles is-symbol version 1.0.2, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/is-symbol.MIT. - - This product bundles isarray version 0.0.1, copyright Julian Gruber, - which is available under an MIT license. For details, see licenses/bin/isarray.MIT. - - This product bundles numeral version 2.0.6, copyright Adam Draper, - which is available under an MIT license. For details, see licenses/bin/numeral.MIT. - - This product bundles object-assign version 4.1.1, copyright Sindre Sorhus, - which is available under an MIT license. For details, see licenses/bin/object-assign.MIT. - - This product bundles object-keys version 1.1.0, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/object-keys.MIT. - - This product bundles path-to-regexp version 1.7.0, copyright Blake Embrey (hello@blakeembrey.com), - which is available under an MIT license. For details, see licenses/bin/path-to-regexp.MIT. - - This product bundles prop-types version 15.7.2, copyright Facebook, Inc., - which is available under an MIT license. For details, see licenses/bin/prop-types.MIT. - - This product bundles pure-render-decorator version 1.1.1, copyright Félix Girault, - which is available under an MIT license. For details, see licenses/pure-render-decorator.MIT. - - This product bundles react-ace version 6.4.0, copyright James Hrisho, - which is available under an MIT license. For details, see licenses/react-ace.MIT. - - This product bundles react-addons-css-transition-group version 15.6.2, copyright , - which is available under an MIT license. For details, see licenses/react-addons-css-transition-group.MIT. - - This product bundles react-dom version 16.8.3, copyright Facebook, Inc. and its affiliates., - which is available under an MIT license. For details, see licenses/bin/react-dom.MIT. - - This product bundles react-is version 16.8.3, copyright , - which is available under an MIT license. For details, see licenses/react-is.MIT. - - This product bundles react-router-dom version 4.3.1, copyright React Training, - which is available under an MIT license. For details, see licenses/bin/react-router-dom.MIT. - - This product bundles react-router version 4.3.1, copyright React Training, - which is available under an MIT license. For details, see licenses/bin/react-router.MIT. - - This product bundles react-table version 6.8.6, copyright Tanner Linsley, - which is available under an MIT license. For details, see licenses/bin/react-table.MIT. - - This product bundles react version 16.8.3, copyright Facebook, Inc. and its affiliates., - which is available under an MIT license. For details, see licenses/bin/react.MIT. - - This product bundles resolve-pathname version 2.2.0, copyright Michael Jackson, - which is available under an MIT license. For details, see licenses/bin/resolve-pathname.MIT. - - This product bundles scheduler version 0.13.3, copyright Facebook, Inc. and its affiliates., - which is available under an MIT license. For details, see licenses/bin/scheduler.MIT. - - This product bundles string-at version 1.0.1, copyright Jordan Harband, - which is available under an MIT license. For details, see licenses/bin/string-at.MIT. - - This product bundles tether version 1.4.5, copyright , - which is available under an MIT license. For details, see licenses/tether.MIT. - - This product bundles value-equal version 0.4.0, copyright Michael Jackson, - which is available under an MIT license. For details, see licenses/bin/value-equal.MIT. - - This product bundles warning version 4.0.3, copyright Facebook, Inc., - which is available under an MIT license. For details, see licenses/bin/warning.MIT. - - This product bundles ua-parser-js version 0.7.19, copyright Faisal Salman, - which is available under an MIT license. For details, see licenses/bin/ua-parser-js.MIT. - - This product bundles druid-console version 0.0.2, copyright Metamarkets, - which is available under an MIT license. For details, see licenses/bin/druid-console.MIT. - - This product bundles CSS from Font Awesome Free version 4.2.0, copyright Font Awesome, - which is availble under an MIT license. For details, see licenses/bin/font-awesome.MIT. - - This product bundles webpack version 4.29.0, copyright JS Foundation and other contributors, - which is available under an MIT license. For details, see licenses/bin/webpack.MIT. - - This product bundles style-loader version 0.23.1, copyright JS Foundation and other contributors, - which is available under an MIT license. For details, see licenses/bin/style-loader.MIT. - - This product bundles os-browserify version 0.3.0, copyright CoderPuppy, - which is available under an MIT license. For details, see licenses/bin/os-browserify.MIT. - - This product bundles process version 0.11.10, copyright Roman Shtylman, - which is available under an MIT license. For details, see licenses/bin/process.MIT. - - This product bundles css-loader version 2.1.0, copyright JS Foundation and other contributors, - which is available under an MIT license. For details, see licenses/bin/css-loader.MIT. - - This product bundles bootstrap version 3.1.1, copyright Twitter Inc, - which is available under an MIT license. For details, see licenses/bin/bootstrap.MIT. - - -BSD-2-Clause License -================================ - -BINARY/JAVA-CORE - This product bundles JNI binding for Zstd version 1.3.3-1, copyright Luben Karavelov, - which is available under a BSD-2-Clause License. For details, see licenses/bin/zstd-jni.BSD2. - * com.github.luben:zstd-jni - - -BSD-3-Clause License -================================ - -SOURCE/WEB-CONSOLE - This product bundles demo_table.css and jquery.dataTables.js from DataTables version 1.8.2, copyright Allan Jardine., - which is available under a BSD-3-Clause License. For details, see licenses/src/datatables.BSD3. - - -BINARY/JAVA-CORE - This product bundles Zstandard version 1.3.3, copyright Facebook, Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/zstandard.BSD3. - - This product bundles FindBugs JSR305 version 2.0.1, copyright FindBugs, - which is available under a BSD-3-Clause License. For details, see licenses/bin/jsr305.BSD3. - * com.google.code.findbugs:jsr305 - - This product bundles Protocol Buffers version 3.1.0, copyright Google, Inc., - which is available under a BSD-3-Clause License, except src/google/protobuf/stubs/atomicops_internals_generic_gcc.h - and src/google/protobuf/stubs/atomicops_internals_power.h files - which are copyrighted by Red Hat Inc and Bloomberg Finance LP, respectively, and available under a BSD-3-Clause. - For details, see licenses/bin/protobuf-java.BSD3, licenses/bin/protobuf-java-redhat.BSD3, - and licenses/bin/protobuf-java-bloomberg.BSD3. - * com.google.protobuf:protobuf-java - - This product bundles JLine version 0.9.94, copyright Marc Prud'hommeaux, - which is available under a BSD-3-Clause License. For details, see licenses/bin/jline.BSD3. - * jline:jline - - This product bundles ANTLR 4 Runtime version 4.5.1, copyright The ANTLR Project, - which is available under a BSD-3-Clause License. For details, see licenses/bin/antlr4-runtime.BSD3. - * org.antlr:antlr4-runtime - - This product bundles Janino and Commons Compiler version 2.7.6, copyright Arno Unkrig and TIBCO Software Inc., - which are available under a BSD-3-Clause License. For details, see licenses/bin/janino.BSD3. - * org.codehaus.janino:janino - * org.codehaus.janino:commons-compiler - - This product bundles ASM version 5.2, copyright INRIA, France Telecom, - which is available under a BSD-3-Clause License. For details, see licenses/bin/asm.BSD3. - * org.ow2.asm:asm - * org.ow2.asm:asm-commons - * org.ow2.asm:asm-tree - - -BINARY/HADOOP-CLIENT - This product bundles FindBugs JSR305 version 3.0.0, copyright FindBugs, - which is available under a BSD-3-Clause License. For details, see licenses/bin/jsr305.BSD3. - * com.google.code.findbugs:jsr305 - - This product bundles Protocol Buffers version 2.5.0, copyright Google, Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/protobuf-java.BSD3. - * com.google.protobuf:protobuf-java - - This product bundles Paranamer version 2.3, copyright Paul Hammant & ThoughtWorks Inc, - which is available under a BSD-3-Clause License. For details, see licenses/bin/paranamer.BSD3. - * com.thoughtworks.paranamer:paranamer - - This product bundles LevelDB JNI version 1.8, copyright FuseSource Corp., - which is available under a BSD-3-Clause License. For details, see licenses/bin/leveldb-jni.BSD3. - * org.fusesource.leveldbjni:leveldbjni-all - - This product bundles xmlenc version 0.5.2, copyright Ernst de Haan, - which is available under a BSD-3-Clause License. For details, see licenses/bin/xmlenc.BSD3. - * xmlenc:xmlenc - - -BINARY/EXTENSIONS/druid-avro-extensions - This product bundles Paranamer version 2.7, copyright Paul Hammant & ThoughtWorks Inc, - which is available under a BSD-3-Clause License. For details, see licenses/bin/paranamer.BSD3. - * com.thoughtworks.paranamer:paranamer - - -BINARY/EXTENSIONS/druid-kerberos - This product bundles JSch - Java Secure Channel version 0.1.54, copyright Atsuhiko Yamanaka, JCraft,Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/jsch.BSD3. - * com.jcraft:jsch - - -BINARY/EXTENSIONS/druid-kafka-eight - This product bundles Scala Library version 2.10.4, copyright EPFL, Lightbend Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/scala-lang.BSD3. - * org.scala-lang:scala-library - - -BINARY/EXTENSIONS/druid-lookups-cached-single - This product bundles StringTemplate version 3.2, copyright Terrence Parr, - which is available under a BSD-3-Clause License. For details, see licenses/bin/antlr-stringtemplate.BSD3. - * org.antlr:stringtemplate - - This product bundles ANTLR version 2.7.7, copyright The ANTLR Project, - which is available under a BSD-3-Clause License. For details, see licenses/bin/antlr.BSD3. - * antlr:antlr - - -BINARY/EXTENSIONS/postgresql-metadata-storage - This product bundles PostgreSQL JDBC Driver version 9.4.1208.jre7, copyright PostgreSQL Global Development Group, - which is available under a BSD-3-Clause License. For details, see licenses/bin/postgresql.BSD3. - * org.postgresql:postgresql - - -BINARY/EXTENSIONS/druid-protobuf-extensions - This product bundles Protocol Buffers version 3.1.0, copyright Google, Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/protobuf-java.BSD3. - * com.google.protobuf:protobuf-java-util - - -BINARY/WEB-CONSOLE - This product bundles d3-array version 2.0.3, copyright Mike Bostock, - which is available under a BSD-3-Clause License. For details, see licenses/bin/d3-array.BSD3. - - This product bundles hoist-non-react-statics version 2.5.5, copyright Yahoo! Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/hoist-non-react-statics.BSD3. - - This product bundles react-transition-group version 1.2.1, copyright 2016, React Community, - forked from React (https://github.com/facebook/react), copyright 2013-present, Facebook, Inc. - which is available under a BSD-3-Clause License. For details, see licenses/bin/react-transition-group.BSD3. - - This product bundles warning version 3.0.0, copyright Facebook, Inc., - which is available under a BSD-3-Clause License. For details, see licenses/bin/warning.BSD3. - - -ICU License -================================ - -BINARY/JAVA-CORE - This product bundles ICU4J version 54.1.1, copyright International Business Machines Corporation and others, - which is available under the ICU License. For details, see licenses/bin/icu4j.ICU. - * com.ibm.icu:icu4j - - -SIL Open Font License 1.1 -================================ - -BINARY/WEB-CONSOLE - This product bundles fonts from Font Awesome Free version 4.2.0, copyright Font Awesome, - which is available under the SIL OFL 1.1. For details, see licenses/bin/font-awesome.silofl - * https://fontawesome.com/ - - -CDDL 1.1 -================================ - -BINARY/JAVA-CORE - This product bundles JavaBeans Activation Framework version 1.2.0, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.activation.CDDL11 - * https://github.com/javaee/activation - * com.sun.activation:javax.activation - - This product bundles Jersey version 1.19.3, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/jersey.CDDL11 - * https://jersey.github.io/ - * com.sun.jersey:jersey-core - * com.sun.jersey:jersey-server - * com.sun.jersey:jersey-servlet - * com.sun.jersey:contribs - - This product bundles Expression Language 3.0 API version 3.0.0., copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/el-spec - * javax.el:javax.el-api - - This product bundles Java Servlet API version 3.1.0, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/servlet-spec - * javax.servlet:javax.servlet-api - - This product bundles JSR311 API version 1.1.1, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/jsr311-api.CDDL11 - * https://github.com/javaee/jsr311 - * javax.ws.rs:jsr311-api - - This product bundles Expression Language 3.0 version 3.0.0., copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/el-spec - * org.glassfish:javax.el - - -BINARY/HADOOP-CLIENT - This product bundles Jersey version 1.9, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/jersey.CDDL11 - * https://jersey.github.io/ - * com.sun.jersey:jersey-client - * com.sun.jersey:jersey-core - - This product bundles JavaBeans Activation Framework version 1.1, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javaxCDDL11 - * https://github.com/javaee/activation - * javax.activation:activation - - This product bundles Java Servlet API version 2.5, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/servlet-spec - * javax.servlet:javax.servlet-api - - This product bundles JAXB version 2.2.2, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/jaxb-v2 - * javax.xml.bind:jaxb-api - - This product bundles stax-api version 1.0-2, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/ - * javax.xml.stream:stax-api - - This product bundles jsp-api version 2.1, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/javax.CDDL11 - * https://github.com/javaee/javaee-jsp-api - * javax.servlet.jsp:jsp-api - - -BINARY/EXTENSIONS/druid-avro-extensions - This product bundles Jersey version 1.15, copyright Oracle and/or its affiliates., - which is available under the CDDL 1.1. For details, see licenses/bin/jersey.CDDL11 - * https://jersey.github.io/ - * com.sun.jersey:jersey-client - - -Eclipse Public License 1.0 -================================ - -BINARY/JAVA-CORE - This product bundles OkHttp Aether Connector version 0.0.9, copyright to original author or authors, - which is available under the Eclipse Public License 1.0. For details, see licenses/bin/aether-connector-okhttp.EPL1. - * https://github.com/takari/aether-connector-okhttp - * io.tesla.aether:aether-connector-okhttp - - This product bundles Tesla Aether version 0.0.5, copyright to original author or authors, - which is available under the Eclipse Public License 1.0. For details, see licenses/bin/tesla-aether.EPL1. - * https://github.com/tesla/tesla-aether - * io.tesla.aether:tesla-aether - - This product bundles Eclipse Aether libraries version 0.9.0.M2, copyright Sonatype, Inc., - which is available under the Eclipse Public License 1.0. For details, see licenses/bin/aether-core.EPL1. - * https://github.com/eclipse/aether-core - * org.eclipse.aether:aether-api - * org.eclipse.aether:aether-connector-file - * org.eclipse.aether:aether-impl - * org.eclipse.aether:aether-spi - * org.eclipse.aether:aether-util - - -Mozilla Public License Version 2.0 -================================ - -BINARY/JAVA-CORE - This product bundles Rhino version 1.7R5, copyright Mozilla and individual contributors., - which is available under the Mozilla Public License Version 2.0. For details, see licenses/bin/rhino.MPL2. - * https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino - * org.mozilla:rhino - - -Creative Commons Attribution 2.5 -================================ - -BINARY/HADOOP-CLIENT - This product bundles "Java Concurrency In Practice" Book Annotations, copyright Brian Goetz and Tim Peierls, - which is available under the Creative Commons Attribution 2.5 license. For details, see licenses/bin/creative-commons-2.5.LICENSE. - * http://jcip.net/ - * net.jcip:jcip-annotations - - -Creative Commons CC0 -================================ - -BINARY/JAVA-CORE - This product bundles Reactive Streams version 1.0.2, which is available under a Creative Commons CC0 license. - For details, see licenses/bin/reactive-streams.CC0. - * org.reactivestreams:reactive-streams - - -Public Domain -================================ - -SOURCE/JAVA-CORE - This product uses a smear function adapted from MurmurHash3, written by Austin Appleby who has placed - MurmurHash3 in the public domain (https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp). - * processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/Groupers.java - -BINARY/JAVA-CORE - This product bundles AOP Alliance version 1.0, which is in the public domain (http://aopalliance.sourceforge.net/). - * aopalliance:aopalliance - - This product bundles XZ for Java version 1.8, which is in the public domain (https://tukaani.org/xz/java.html). - * org.tukaani:xz - -BINARY/HADOOP-CLIENT - This product bundles XZ for Java version 1.0, which is in the public domain (https://tukaani.org/xz/java.html). - * org.tukaani:xz diff --git a/license.yaml b/license.yaml new file mode 100644 index 000000000000..bcf06e8765ef --- /dev/null +++ b/license.yaml @@ -0,0 +1,2810 @@ +name: conjunctive normal form conversion code, a variance aggregator algorithm, and Bloom filter adapted from Apache Hive +version: +license_category: source +module: java-core +license_name: Apache License version 2.0 +source_paths: + - processing/src/main/java/org/apache/druid/segment/filter/Filters.java + - extensions-core/stats/src/main/java/io/druid/query/aggregation/variance/VarianceAggregatorCollector.java + - extensions-core/druid-bloom-filter/src/main/java/org/apache/druid/query/filter/BloomKFilter.java + +--- + +name: variable length long deserialization code adapted from Apache Lucene +license_category: source +module: java-core +license_name: Apache License version 2.0 +source_paths: + - processing/src/main/java/org/apache/druid/segment/data/VSizeLongSerde.java + +--- + +name: SQL query planning code adapted from Apache Calcite +license_category: source +module: java-core +license_name: Apache License version 2.0 +source_paths: + - sql/src/main/java/org/apache/druid/sql/calcite/ + +--- + +name: Kerberos authentication code adapted from Apache Hadoop +license_category: source +module: java-core +license_name: Apache License version 2.0 +source_paths: + - extensions-core/druid-kerberos/src/main/java/org/apache/druid/security/kerberos/ + +--- + +name: a modified version of the java-alphanum library +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: Andrew Duffy (https://github.com/amjjd/java-alphanum) +source_paths: + - processing/src/main/java/org/apache/druid/query/ordering/StringComparators.java + +--- + +name: a modified version of the Metamarkets java-util library +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: Metamarkets Group Inc. (https://github.com/metamx/java-util) +source_paths: + - java-util/ + +--- + +name: a modified version of the Metamarkets bytebuffer-collections library +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: Metamarkets Group Inc. (https://github.com/metamx/bytebuffer-collections) +source_paths: + - processing/src/main/java/org/apache/druid/collections/ + +--- + +name: a modified version of the Metamarkets extendedset library +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: Metamarkets Group Inc. (https://github.com/metamx/extendedset) +source_paths: + - extendedset/ + +--- + +name: a modified version of the CONCISE (COmpressed 'N' Composable Integer SEt) library +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: Alessandro Colantonio (https://sourceforge.net/projects/concise/) +source_paths: + - extendedset/src/main/java/org/apache/druid/extendedset/intset/ + +--- + +name: modified portions of the Guava library +license_category: source +license_name: Apache License version 2.0 +module: java-core +copyright: The Guava Authors (https://github.com/google/guava) +source_paths: + - Closer class: core/src/main/java/org/apache/druid/java/util/common/io/Closer.java + - Splitter.splitToList() method: core/src/main/java/org/apache/druid/java/util/common/parsers/DelimitedParser.java + - DirectExecutorService class: core/src/main/java/org/apache/druid/java/util/common/concurrent/DirectExecutorService.java + +--- + +name: modified versions of the Dockerfile and related configuration files +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: SequenceIQ's Hadoop Docker image, copyright SequenceIQ, Inc. (https://github.com/sequenceiq/hadoop-docker/) +source_paths: + - examples/quickstart/tutorial/hadoop/docker/ + +--- + +name: fixed bins histogram percentile computation code adapted from Netflix Spectator +license_category: source +module: java-core +license_name: Apache License version 2.0 +copyright: Netflix, Inc. (https://github.com/Netflix/spectator) +source_paths: + - extensions-core/histogram/src/main/java/org/apache/druid/query/aggregation/histogram/FixedBucketsHistogram.java + +--- + +name: Microsoft tslib +license_category: binary +module: web-console +license_name: Apache License version 2.0 +version: 1.9.3 + +--- + +name: diff-match-patch +license_category: binary +module: web-console +license_name: Apache License version 2.0 +version: 1.0.4 + +--- + +name: "@blueprintjs/core" +license_category: binary +module: web-console +license_name: Apache License version 2.0 +version: 1.0.1 + +--- + +name: AWS SDK for Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.11.199 +libraries: + - com.amazonaws: aws-java-sdk-core + - com.amazonaws: aws-java-sdk-ec2 + - com.amazonaws: aws-java-sdk-kms + - com.amazonaws: aws-java-sdk-s3 + - com.amazonaws: jmespath-java + +--- + +name: Esri Geometry API for Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.0.0 +libraries: + - com.esri.geometry: esri-geometry-api + +--- + +name: ClassMate +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.0.0 +libraries: + - com.fasterxml: classmate + +--- + +name: Jackson +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.6.7 +libraries: + - com.fasterxml.jackson.core: jackson-annotations + - com.fasterxml.jackson.core: jackson-core + - com.fasterxml.jackson.core: jackson-databind + - com.fasterxml.jackson.dataformat: jackson-dataformat-cbor + - com.fasterxml.jackson.dataformat: jackson-dataformat-smile + - com.fasterxml.jackson.datatype: jackson-datatype-guava + - com.fasterxml.jackson.datatype: jackson-datatype-joda + - com.fasterxml.jackson.jaxrs: jackson-jaxrs-base + - com.fasterxml.jackson.jaxrs: jackson-jaxrs-json-provider + - com.fasterxml.jackson.jaxrs: jackson-jaxrs-smile-provider + - com.fasterxml.jackson.module: jackson-module-jaxb-annotations + +--- + +name: Caffeine +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.5.5 +libraries: + - com.github.ben-manes.caffeine: caffeine + +--- + +name: Error Prone Annotations +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.3.2 +libraries: + - com.google.errorprone: error_prone_annotations + +--- + +name: Guava +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 16.0.1 +libraries: + - com.google.guava: guava + +--- + +name: Guice +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.1.0 +libraries: + - com.google.inject: guice + - com.google.inject.extensions: guice-multibindings + - com.google.inject.extensions: guice-servlet + +--- + +name: JsonPath +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.3.0 +libraries: + - com.jayway.jsonpath: json-path + +--- + +name: LMAX Disruptor +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.3.6 +libraries: + - com.lmax: disruptor + +--- + +name: LZF Compressor +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.0.4 +libraries: + - com.ning: compress-lzf + +--- + +name: OpenCSV +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.2 +libraries: + - com.opencsv: opencsv + +--- + +name: OkHttp +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.0.2 +libraries: + - com.squareup.okhttp: okhttp + +--- + +name: Netty Reactive Streams +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.0.0 +libraries: + - com.typesafe.netty: netty-reactive-streams + +--- + +name: Apache Commons BeanUtils +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.9.3 +libraries: + - commons-beanutils: commons-beanutils + +--- + +name: Apache Commons CLI +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.2 +libraries: + - commons-beanutils: commons-cli + +--- + +name: Apache Commons Codec +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.7 +libraries: + - commons-codec: commons-codec + +--- + +name: Apache Commons Collections +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.2.2 +libraries: + - commons-collections: commons-collections + +--- + +name: Apache Commons IO +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.5 +libraries: + - commons-io: commons-io + +--- + +name: Apache Commons Lang +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.6 +libraries: + - commons-lang: commons-lang + +--- + +name: Apache Commons Logging +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.1.1 +libraries: + - commons-logging: commons-logging + +--- + +name: Apache Commons Pool +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.6 +libraries: + - commons-pool: commons-pool + +--- + +name: Apache Commons Collections +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.1 +libraries: + - org.apache.commons: commons-collections4 + +--- + +name: Apache Commons Compress +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.16 +libraries: + - org.apache.commons: commons-compress + +--- + +name: Apache Commons DBCP +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.0.1 +libraries: + - org.apache.commons: commons-dbcp2 + +--- + +name: Apache Commons Lang +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.7 +libraries: + - org.apache.commons: commons-lang3 + +--- + +name: Apache Commons Math +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.6.1 +libraries: + - org.apache.commons: commons-math3 + +--- + +name: Apache Commons Pool +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.2 +libraries: + - org.apache.commons: commons-pool2 + +--- + +name: Apache Commons Text +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.3 +libraries: + - org.apache.commons: commons-text + +--- + +name: Airline +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 0.7 +libraries: + - io.airlift: airline + +--- + +name: DropWizard Metrics Core +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.0.0 +libraries: + - io.dropwizard.metrics: metrics-core + +--- + +name: Netty +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.10.6.Final +libraries: + - io.netty: netty + +--- + +name: Netty +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.1.30.Final +libraries: + - io.netty: netty-all + +--- + +name: Netty +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.1.29.Final +libraries: + - io.netty: netty-buffer + - io.netty: netty-codec + - io.netty: netty-codec-dns + - io.netty: netty-codec-http + - io.netty: netty-codec-socks + - io.netty: netty-common + - io.netty: netty-handler + - io.netty: netty-handler-proxy + - io.netty: netty-resolver + - io.netty: netty-resolver-dns + - io.netty: netty-transport + - io.netty: netty-transport-native-epoll + - io.netty: netty-transport-native-unix-common + +--- + +name: fastutil +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 8.1.0 +libraries: + - it.unimi.dsi: fastutil + +--- + +name: Javax Inject +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1 +libraries: + - javax.inject.javax: inject + +--- + +name: Bean Validation API +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.1.0.Final +libraries: + - javax.validation: validation-api + +--- + +name: Joda-Time +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.9.9 +libraries: + - joda-time: joda-time + +--- + +name: Aggregate Designer Algorithm +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 6.0 +libraries: + - net.hydromatic: aggdesigner-algorithm + +--- + +name: Java Native Access (JNA) +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.5.1 +libraries: + - net.java.dev.jna: jna + +--- + +name: ASM Based Accessors Helper Used By JSON Smart +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.2 +libraries: + - net.minidev: accessors-smart + +--- + +name: JSON Small and Fast Parser +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.3 +libraries: + - net.minidev: json-smart + +--- + +name: Spymemcached +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.12.3 +libraries: + - net.spy: spymemcached + +--- + +name: jackson-jq +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 0.0.7 +libraries: + - net.thisptr: jackson-jq + +--- + +name: Apache Calcite +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.17.0 +libraries: + - org.apache.calcite: calcite-core + - org.apache.calcite: calcite-linq4j + +--- + +name: Apache Calcite Avatica +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.10.0 +libraries: + - org.apache.calcite: avatica.avatica-core + - org.apache.calcite: avatica.avatica-metrics + - org.apache.calcite: avatica.avatica-server + +--- + +name: Apache Curator +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.1.0 +libraries: + - org.apache.curator: curator-client + - org.apache.curator: curator-framework + - org.apache.curator: curator-recipes + - org.apache.curator: curator-x-discovery + +--- + +name: Apache Derby +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 10.11.1.1 +libraries: + - org.apache.derby: derby + - org.apache.derby: derbyclient + - org.apache.derby: derbynet + +--- + +name: Apache HttpClient +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.5.3 +libraries: + - org.apache.httpcomponents: httpclient + +--- + +name: Apache HttpCore +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 4.4.4 +libraries: + - org.apache.httpcomponents: httpcore + +--- + +name: Apache Log4j +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.5 +libraries: + - org.apache.logging.log4j: log4j-1.2-api + - org.apache.logging.log4j: log4j-api + - org.apache.logging.log4j: log4j-core + - org.apache.logging.log4j: log4j-jul + - org.apache.logging.log4j: log4j-slf4j-impl + +--- + +name: Apache Maven +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.1.1 +libraries: + - org.apache.maven: maven-aether-provider + - org.apache.maven: maven-model + - org.apache.maven: maven-model-builder + - org.apache.maven: maven-repository-metadata + - org.apache.maven: maven-settings + - org.apache.maven: maven-settings-builder + +--- + +name: Apache Maven Artifact +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.6.0 +libraries: + - org.apache.maven: maven-artifact + +--- + +name: Apache Maven Wagon API +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.4 +libraries: + - org.apache.maven.wagon: wagon-provider-api + +--- + +name: Apache Yetus Audience Annotations Component +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 0.5.0 +libraries: + - org.apache.yetus: audience-annotations + +--- + +name: Apache Zookeeper +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.4.11 +libraries: + - org.apache.zookeeper: zookeeper + +--- + +name: AsyncHttpClient asynchttpclient +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.5.3 +libraries: + - org.asynchttpclient: async-http-client + - org.asynchttpclient: async-http-client-netty-utils + +--- + +name: components from Jackson +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.9.13 +libraries: + - org.codehaus.jackson: jackson-core-asl + - org.codehaus.jackson: jackson-mapper-asl + +--- + +name: Plexus Interpolation API +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.19 +libraries: + - org.codehaus.plexus: plexus-interpolation + +--- + +name: Plexus Common Utilities +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.0.15 +libraries: + - org.codehaus.plexus: plexus-utils + +--- + +name: Jetty +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 9.4.10.v20180503 +libraries: + - org.eclipse.jetty: jetty-client + - org.eclipse.jetty: jetty-continuation + - org.eclipse.jetty: jetty-http + - org.eclipse.jetty: jetty-io + - org.eclipse.jetty: jetty-proxy + - org.eclipse.jetty: jetty-security + - org.eclipse.jetty: jetty-server + - org.eclipse.jetty: jetty-servlet + - org.eclipse.jetty: jetty-servlets + - org.eclipse.jetty: jetty-util + +--- + +name: JVM Attach API +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.2 +libraries: + - org.gridkit.lab: jvm-attach-api + +--- + +name: Hibernate Validator Engine +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 5.1.3.Final +libraries: + - org.hibernate: hibernate-validator + +--- + +name: SIGAR +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.6.5.132 +libraries: + - org.hyperic: sigar + +--- + +name: JBoss Logging 3 +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 3.1.3.GA +libraries: + - org.jboss.logging: jboss-logging + +--- + +name: JDBI +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.63.1 +libraries: + - org.jdbi: jdbi + +--- + +name: LZ4 Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.5.0 +libraries: + - org.lz4: lz4-java + +--- + +name: MapDB +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.0.8 +libraries: + - org.mapdb: mapdb + +--- + +name: Objenesis +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.6 +libraries: + - org.objenesis: objenesis + +--- + +name: RoaringBitmap +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 0.7.36 +libraries: + - org.roaringbitmap: RoaringBitmap + - org.roaringbitmap: shims + +--- + +name: Config Magic +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 0.9 +libraries: + - org.skife.config: config-magic + +--- + +name: Ion Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.0.2 +libraries: + - software.amazon.ion: ion-java + +--- + +name: Apache Hadoop +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 2.8.3 +libraries: + - org.apache.hadoop: hadoop-annotations + - org.apache.hadoop: hadoop-auth + - org.apache.hadoop: hadoop-client + - org.apache.hadoop: hadoop-common + - org.apache.hadoop: hadoop-hdfs-client + - org.apache.hadoop: hadoop-mapreduce-client-app + - org.apache.hadoop: hadoop-mapreduce-client-common + - org.apache.hadoop: hadoop-mapreduce-client-core + - org.apache.hadoop: hadoop-mapreduce-client-jobclient + - org.apache.hadoop: hadoop-mapreduce-client-shuffle + - org.apache.hadoop: hadoop-yarn-api + - org.apache.hadoop: hadoop-yarn-client + - org.apache.hadoop: hadoop-yarn-common + - org.apache.hadoop: hadoop-yarn-server-common + +--- + +name: Gson +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 2.2.4 +libraries: + - com.google.code.gson: gson + +--- + +name: Guava +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 11.0.2 +libraries: + - com.google.guava: guava + +--- + +name: Nimbus JOSE+JWT +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 3.9 +libraries: + - com.nimbusds: nimbus-jose-jwt + +--- + +name: OkHttp +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 2.4.0 +libraries: + - com.squareup.okhttp: okhttp + +--- + +name: Okio +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.4.0 +libraries: + - com.squareup.okio: okio + +--- + +name: Apache Commons BeanUtils +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.7.0 +libraries: + - commons-beanutils: commons-beanutils + +--- + +name: Apache Commons BeanUtils +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.8.0 +libraries: + - commons-beanutils: commons-beanutils-core + +--- + +name: Apache Commons Codec +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.4 +libraries: + - commons-codec: commons-codec + +--- + +name: Apache Commons Configuration +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.6 +libraries: + - commons-configuration: commons-configuration + +--- + +name: Apache Commons Digester +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.8 +libraries: + - commons-digester: commons-digester + +--- + +name: Apache Commons IO +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 2.4 +libraries: + - commons-io: commons-io + +--- + +name: Apache Commons Logging +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.1.3 +libraries: + - commons-logging: commons-logging + +--- + +name: Apache Commons Net +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 3.1 +libraries: + - commons-net: commons-net + +--- + +name: Apache Commons Compress +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.4.1 +libraries: + - org.apache.commons: commons-compress + +--- + +name: Apache Commons Math +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 3.1.1 +libraries: + - org.apache.commons: commons-math3 + +--- + +name: Netty +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 3.6.2.Final +libraries: + - io.netty: netty + +--- + +name: Apache Log4j +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.2.17 +libraries: + - log4j: log4j + +--- + +name: JSON Small and Fast Parser +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.1.1 +libraries: + - net.minidev: json-smart + +--- + +name: Apache Avro +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.7.4 +libraries: + - org.apache.avro: avro + +--- + +name: Apache Directory +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.0.0-M20 +libraries: + - org.apache.directory.api: api-asn1-api + - org.apache.directory.api: api-util + +--- + +name: Apache Directory Server +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 2.0.0-M15 +libraries: + - org.apache.directory.server: apacheds-i18n + - org.apache.directory.server: apacheds-kerberos-codec + +--- + +name: Apache HTrace +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 4.0.1-incubating +libraries: + - org.apache.htrace: htrace-core4 + +--- + +name: Apache HttpClient +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 4.5.2 +libraries: + - org.apache.httpcomponents: httpclient + +--- + +name: Apache Zookeeper +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 3.4.6 +libraries: + - org.apache.zookeeper: zookeeper + +--- + +name: components from Jackson +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.9.13 +libraries: + - org.codehaus.jackson: jackson-jaxrs + - org.codehaus.jackson: jackson-xc + +--- + +name: Jetty +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 6.1.26 +libraries: + - org.mortbay.jetty: jetty-sslengine + - org.mortbay.jetty: jetty-util + +--- + +name: snappy-java +license_category: binary +module: hadoop-client +license_name: Apache License version 2.0 +version: 1.0.4.1 +libraries: + - org.xerial.snappy: snappy-java + +--- + +name: Kafka Schema Registry Client +version: 3.0.1 +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +libraries: + - io.confluent: kafka-schema-registry-client + +--- + +name: Apache Avro +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 1.8.2 +libraries: + - org.apache.avro: avro + - org.apache.avro: avro-mapred + - org.apache.avro: avro-ipc + +--- + +name: Schema Repository +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 0.1.3 +libraries: + - org.schemarepo: schema-repo-api + - org.schemarepo: schema-repo-avro + - org.schemarepo: schema-repo-client + - org.schemarepo: schema-repo-common + +--- + +name: Gson +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 2.3.1 +libraries: + - com.google.code.gson: gson + +--- + +name: Apache Velocity +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 1.7 +libraries: + - org.apache.velocity: velocity + +--- + +name: Jetty +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 6.1.26 +libraries: + - org.mortbay.jetty: jetty + +--- + +name: Jetty +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 2.5-20081211 +libraries: + - org.mortbay.jetty: servlet-api + +--- + +name: Objenesis +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 2.6 +libraries: + - org.objenesis: objenesis + +--- + +name: snappy-java +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +version: 1.1.1.3 +libraries: + - org.xerial.snappy: snappy-java + +--- + +name: Apache Hive +license_category: binary +module: extensions/druid-bloom-filter +license_name: Apache License version 2.0 +version: 2.7.0 +libraries: + - org.apache.hive: hive-storage-api + +--- + +name: DataSketches +license_category: binary +module: extensions/druid-datasketches +license_name: Apache License version 2.0 +version: 0.13.3 +libraries: + - com.yahoo.datasketches: datasketches-core + - com.yahoo.datasketches: memory + +--- + +name: IRC API +license_category: binary +module: extensions/druid-examples +license_name: Apache License version 2.0 +version: 1.0-0014 +libraries: + - com.ircclouds.irc: irc-api + +--- + +name: MaxMind GeoIP2 +license_category: binary +module: extensions/druid-examples +license_name: Apache License version 2.0 +version: 0.4.0 +libraries: + - com.maxmind.geoip2: geoip2 + +--- + +name: Apache Commons BeanUtils +license_category: binary +module: extensions/druid-examples +license_name: Apache License version 2.0 +version: 1.8.3 +libraries: + - commons-beanutils: commons-beanutils + +--- + +name: Apache Commons Validator +license_category: binary +module: extensions/druid-examples +license_name: Apache License version 2.0 +version: 1.4.0 +libraries: + - commons-validator: commons-validator + +--- + +name: Twitter4J +license_category: binary +module: extensions/druid-examples +license_name: Apache License version 2.0 +version: 3.0.3 +libraries: + - org.twitter4j: twitter4j-async + - org.twitter4j: twitter4j-core + - org.twitter4j: twitter4j-stream + +--- + +name: Apache Kafka +license_category: binary +module: extensions/druid-kafka-eight +license_name: Apache License version 2.0 +version: 0.8.2.1 +libraries: + - org.apache.kafka: kafka_2.10 + - org.apache.kafka: kafka-clients + +--- + +name: ZkClient +license_category: binary +module: extensions/druid-kafka-eight +license_name: Apache License version 2.0 +version: 0.3 +libraries: + - com.101tec: zkclient + +--- + +name: Yammer Metrics +license_category: binary +module: extensions/druid-kafka-eight +license_name: Apache License version 2.0 +version: 2.2.0 +libraries: + - com.yammer.metrics: metrics-core + +--- + +name: snappy-java +license_category: binary +module: extensions/druid-kafka-eight +license_name: Apache License version 2.0 +version: 1.1.1.6 +libraries: + - org.xerial.snappy: snappy-java + +--- + +name: Apache Kafka +version: 0.10.2.2 +license_category: binary +module: extensions/druid-kafka-indexing-service +license_name: Apache License version 2.0 +libraries: + - org.apache.kafka: kafka-clients + +--- + +name: snappy-java +license_category: binary +module: extensions/druid-kafka-indexing-service +license_name: Apache License version 2.0 +version: 1.1.2.6 +libraries: + - org.xerial.snappy: snappy-java + +--- + +name: XML Builder +license_category: binary +module: extensions/druid-kerberos +license_name: Apache License version 2.0 +version: 0.4 +libraries: + - com.jamesmurty.utils: java-xmlbuilder + +--- + +name: Jettison +license_category: binary +module: extensions/druid-kerberos +license_name: Apache License version 2.0 +version: 1.1 +libraries: + - org.codehaus.jettison: jettison + +--- + +name: Jets3t +license_category: binary +module: extensions/druid-kerberos +license_name: Apache License version 2.0 +version: 0.9.0 +libraries: + - net.java.dev.jets3t: jets3t + +--- + +name: AWS SDK for Java +license_category: binary +module: extensions/druid-kinesis-indexing-service +license_name: Apache License version 2.0 +version: 1.11.199 +libraries: + - com.amazonaws: aws-java-sdk-kinesis + - com.amazonaws: aws-java-sdk-sts + +--- + +name: Apache Parquet +license_category: binary +module: extensions/druid-parquet-extensions +license_name: Apache License version 2.0 +version: 1.10.0 +libraries: + - org.apache.parquet: parquet-avro + - org.apache.parquet: parquet-column + - org.apache.parquet: parquet-common + - org.apache.parquet: parquet-encoding + - org.apache.parquet: parquet-hadoop + - org.apache.parquet: parquet-jackson + +--- + +name: Apache Parquet Format +license_category: binary +module: extensions/druid-parquet-extensions +license_name: Apache License version 2.0 +version: 2.4.0 +libraries: + - org.apache.parquet: parquet-format + +--- + +name: snappy-java +license_category: binary +module: extensions/druid-parquet-extensions +license_name: Apache License version 2.0 +version: 1.1.7.2 +libraries: + - org.xerial.snappy: snappy-java + +--- + +name: Protocol Buffers Dynamic Schema +license_category: binary +module: extensions/protobuf-extensions +license_name: Apache License version 2.0 +version: 0.9.3 +libraries: + - com.github.os72: protobuf-dynamic + +--- + +name: Gson +license_category: binary +module: extensions/protobuf-extensions +license_name: Apache License version 2.0 +version: 2.7 +libraries: + - com.google.code.gson: gson + +--- + +name: jQuery +license_category: source +module: web-console +license_name: MIT License +version: 1.11.0 +copyright: jQuery Foundation, Inc. +license_file_path: licenses/src/jquery.MIT + +--- + +name: sizzle.js by way of jQuery +license_category: source +module: web-console +license_name: MIT License +version: 1.11.0 +copyright: jQuery Foundation and other contributors +license_file_path: licenses/src/sizzle.MIT + +--- + +name: jQuery UI +license_category: source +module: web-console +license_name: MIT License +version: 1.9.2 +copyright: jQuery Foundation and other contributors +license_file_path: licenses/src/jquery-ui.MIT + +--- + +name: underscore +license_category: source +module: web-console +license_name: MIT License +version: 1.2.2 +copyright: Jeremy Ashkenas, DocumentCloud +license_file_path: licenses/src/underscore.MIT + +--- + +name: Checker Qual +license_category: binary +module: java-core +license_name: MIT License +version: 2.5.7 +copyright: the Checker Framework developers +license_file_path: licenses/bin/checker-qual.MIT +libraries: + - org.checkerframework: checker-qual + +--- + +name: JCodings +license_category: binary +module: java-core +license_name: MIT License +version: 1.0.13 +copyright: JRuby Team +license_file_path: licenses/bin/jcodings.MIT +libraries: + - org.jruby.jcodings: jcodings + +--- + +name: Joni +license_category: binary +module: java-core +license_name: MIT License +version: 2.1.11 +copyright: JRuby Team +license_file_path: licenses/bin/joni.MIT +libraries: + - org.jruby.joni: joni + +--- + +name: JCL 1.2 Implemented Over SLF4J +license_category: binary +module: java-core +license_name: MIT License +version: 1.7.12 +copyright: QOS.ch +license_file_path: licenses/bin/jcl-over-slf4j.MIT +libraries: + - org.slf4j: jcl-over-slf4j + +--- + +name: SLF4J API +license_category: binary +module: java-core +license_name: MIT License +version: 1.6.4 +copyright: QOS.ch +license_file_path: licenses/bin/slf4j.MIT +libraries: + - org.slf4j: slf4j-api + +--- + +name: SLF4J API +version: 1.7.10 +license_category: binary +module: hadoop-client +license_name: MIT License +copyright: QOS.ch +license_file_path: licenses/bin/slf4j.MIT +libraries: + - org.slf4j: slf4j-api + - org.slf4j: slf4j-log4j12 + +--- + +name: JOpt Simple +license_category: binary +module: extensions/druid-kafka-eight +license_name: MIT License +version: 3.2 +copyright: Paul R. Holser, Jr. +license_file_path: licenses/bin/jopt-simple.MIT +libraries: + - net.sf.jopt-simple: jopt-simple + +--- + +name: "@babel/runtime" +license_category: binary +module: web-console +license_name: MIT License +version: 7.4.3 +copyright: Sebastian McKenzie +license_file_path: licenses/bin/@babel-runtime.MIT + +--- + +name: "@types/dom4" +license_category: binary +module: web-console +license_name: MIT License +version: 2.0.1 +copyright: Microsoft Corporation +license_file_path: licenses/bin/@types-dom4.MIT + +--- + +name: array-includes +license_category: binary +module: web-console +license_name: MIT License +version: 3.0.3 +copyright: Jordan Harband +license_file_path: licenses/bin/array-includes.MIT + +--- + +name: asap +license_category: binary +module: web-console +license_name: MIT License +version: 2.0.6 +license_file_path: licenses/bin/asap.MIT + +--- + +name: axios +license_category: binary +module: web-console +license_name: MIT License +version: 0.18.0 +copyright: Matt Zabriskie +license_file_path: licenses/bin/axios.MIT + +--- + +name: brace +license_category: binary +module: web-console +license_name: MIT License +version: 0.11.1 +copyright: Thorsten Lorenz +license_file_path: licenses/bin/brace.MIT + +--- + +name: classnames +license_category: binary +module: web-console +license_name: MIT License +version: 2.2.6 +copyright: Jed Watson +license_file_path: licenses/bin/classnames.MIT + +--- + +name: copy-to-clipboard +license_category: binary +module: web-console +license_name: MIT License +version: 3.2.0 +copyright: sudodoki +license_file_path: licenses/bin/copy-to-clipboard.MIT + +--- + +name: create-react-context +license_category: binary +module: web-console +license_name: MIT License +version: 0.2.2 +copyright: James Kyle +license_file_path: licenses/bin/create-react-context.MIT + +--- + +name: define-properties +license_category: binary +module: web-console +license_name: MIT License +version: 1.1.3 +copyright: Jordan Harband +license_file_path: licenses/bin/define-properties.MIT + +--- + +name: dom-helpers +license_category: binary +module: web-console +license_name: MIT License +version: 3.4.0 +copyright: Jason Quense +license_file_path: licenses/bin/dom-helpers.MIT + +--- + +name: dom4 +license_category: binary +module: web-console +license_name: MIT License +version: 2.1.4 +copyright: Andrea Giammarchi +license_file_path: licenses/bin/dom4.MIT + +--- + +name: encoding +license_category: binary +module: web-console +license_name: MIT License +version: 0.1.12 +copyright: Andris Reinman +license_file_path: licenses/bin/encoding.MIT + +--- + +name: es-abstract +license_category: binary +module: web-console +license_name: MIT License +version: 1.13.0 +copyright: Jordan Harband +license_file_path: licenses/bin/es-abstract.MIT + +--- + +name: es-to-primitive +license_category: binary +module: web-console +license_name: MIT License +version: 1.2.0 +copyright: Jordan Harband +license_file_path: licenses/bin/es-to-primitive.MIT + +--- + +name: es6-shim +license_category: binary +module: web-console +license_name: MIT License +version: 0.35.3 +copyright: Paul Miller +license_file_path: licenses/bin/es6-shim.MIT + +--- + +name: es7-shim +license_category: binary +module: web-console +license_name: MIT License +version: 6.0.0 +copyright: Jordan Harband +license_file_path: licenses/bin/es7-shim.MIT + +--- + +name: fbjs +license_category: binary +module: web-console +license_name: MIT License +version: 0.8.17 +copyright: Facebook, Inc +license_file_path: licenses/bin/fbjs.MIT + +--- + +name: file-saver +license_category: binary +module: web-console +license_name: MIT License +version: 2.0.1 +copyright: Eli Grey +license_file_path: licenses/bin/file-saver.MIT + +--- + +name: function-bind +license_category: binary +module: web-console +license_name: MIT License +version: 1.1.1 +copyright: Raynos +license_file_path: licenses/bin/function-bind.MIT + +--- + +name: gud +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.0 +copyright: Jamie Kyle +license_file_path: licenses/bin/gud.MIT + +--- + +name: has-symbols +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.0 +copyright: Jordan Harband +license_file_path: licenses/bin/has-symbols.MIT + +--- + +name: has +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.3 +copyright: Thiago de Arruda +license_file_path: licenses/bin/has.MIT + +--- + +name: history +license_category: binary +module: web-console +license_name: MIT License +version: 4.9.0 +copyright: Michael Jackson +license_file_path: licenses/bin/history.MIT + +--- + +name: hjson +license_category: binary +module: web-console +license_name: MIT License +version: 3.1.2 +copyright: Christian Zangl +license_file_path: licenses/bin/hjson.MIT + +--- + +name: is-buffer +license_category: binary +module: web-console +license_name: MIT License +version: 1.1.6 +copyright: Feross Aboukhadijeh +license_file_path: licenses/bin/is-buffer.MIT + +--- + +name: is-callable +license_category: binary +module: web-console +license_name: MIT License +version: 1.1.4 +copyright: Jordan Harband +license_file_path: licenses/bin/is-callable.MIT + +--- + +name: is-date-object +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.1 +copyright: Jordan Harband +license_file_path: licenses/bin/is-date-object.MIT + +--- + +name: is-regex +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.4 +copyright: Jordan Harband +license_file_path: licenses/bin/is-regex.MIT + +--- + +name: is-symbol +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.2 +copyright: Jordan Harband +license_file_path: licenses/bin/is-symbol.MIT + +--- + +name: isarray +license_category: binary +module: web-console +license_name: MIT License +version: 0.0.1 +copyright: Julian Gruber +license_file_path: licenses/bin/isarray.MIT + +--- + +name: numeral +license_category: binary +module: web-console +license_name: MIT License +version: 2.0.6 +copyright: Adam Draper +license_file_path: licenses/bin/numeral.MIT + +--- + +name: object-assign +license_category: binary +module: web-console +license_name: MIT License +version: 4.1.1 +copyright: Sindre Sorhus +license_file_path: licenses/bin/object-assign.MIT + +--- + +name: object-keys +license_category: binary +module: web-console +license_name: MIT License +version: 1.1.1 +copyright: Jordan Harband +license_file_path: licenses/bin/object-keys.MIT + +--- + +name: path-to-regexp +license_category: binary +module: web-console +license_name: MIT License +version: 1.7.0 +copyright: Blake Embrey +license_file_path: licenses/bin/path-to-regexp.MIT + +--- + +name: prop-types +license_category: binary +module: web-console +license_name: MIT License +version: 15.7.2 +copyright: Facebook, Inc. +license_file_path: licenses/bin/prop-types.MIT + +--- + +name: react-ace +license_category: binary +module: web-console +license_name: MIT License +version: 6.5.0 +copyright: James Hrisho +license_file_path: licenses/bin/react-ace.MIT + +--- + +name: react-copy-to-clipboard +license_category: binary +module: web-console +license_name: MIT License +version: 5.0.1 +copyright: Nik Butenko +license_file_path: licenses/bin/react-copy-to-clipboard.MIT + +--- + +name: react-dom +license_category: binary +module: web-console +license_name: MIT License +version: 16.8.6 +copyright: Facebook, Inc. and its affiliates +license_file_path: licenses/bin/react-dom.MIT + +--- + +name: react-is +license_category: binary +module: web-console +license_name: MIT License +version: 16.8.6 +copyright: Facebook, Inc. and its affiliates +license_file_path: licenses/bin/react-is.MIT + +--- + +name: react-lifecycles-compat +license_category: binary +module: web-console +license_name: MIT License +version: 3.0.4 +copyright: Facebook, Inc. +license_file_path: licenses/bin/react-lifecycles-compat.MIT + +--- + +name: react-popper +license_category: binary +module: web-console +license_name: MIT License +version: 1.3.3 +copyright: Travis Arnold +license_file_path: licenses/bin/react-popper.MIT + +--- + +name: react-router-dom +license_category: binary +module: web-console +license_name: MIT License +version: 5.0.0 +copyright: React Training +license_file_path: licenses/bin/react-router-dom.MIT + +--- + +name: react-router +license_category: binary +module: web-console +license_name: MIT License +version: 5.0.0 +copyright: React Training +license_file_path: licenses/bin/react-router.MIT + +--- + +name: react-table +license_category: binary +module: web-console +license_name: MIT License +version: 6.8.6 +copyright: Tanner Linsley +license_file_path: licenses/bin/react-table.MIT + +--- + +name: react +license_category: binary +module: web-console +license_name: MIT License +version: 16.8.6 +copyright: Facebook, Inc. and its affiliates +license_file_path: licenses/bin/react.MIT + +--- + +name: resize-observer-polyfill +license_category: binary +module: web-console +license_name: MIT License +version: 1.5.1 +copyright: Denis Rul +license_file_path: licenses/bin/resize-observer-polyfill.MIT + +--- + +name: resolve-pathname +license_category: binary +module: web-console +license_name: MIT License +version: 2.2.0 +copyright: Michael Jackson +license_file_path: licenses/bin/resolve-pathname.MIT + +--- + +name: scheduler +license_category: binary +module: web-console +license_name: MIT License +version: 0.13.6 +copyright: Facebook, Inc. and its affiliates +license_file_path: licenses/bin/scheduler.MIT + +--- + +name: string-at +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.1 +copyright: Jordan Harband +license_file_path: licenses/bin/string-at.MIT + +--- + +name: tiny-invariant +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.4 +copyright: Alex Reardon +license_file_path: licenses/bin/tiny-invariant.MIT + +--- + +name: tiny-warning +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.2 +copyright: Alex Reardon +license_file_path: licenses/bin/tiny-warning.MIT + +--- + +name: toggle-selection +license_category: binary +module: web-console +license_name: MIT License +version: 1.0.6 +copyright: sudodoki +license_file_path: licenses/bin/toggle-selection.MIT + +--- + +name: value-equal +license_category: binary +module: web-console +license_name: MIT License +version: 0.4.0 +copyright: Michael Jackson +license_file_path: licenses/bin/value-equal.MIT + +--- + +name: warning +license_category: binary +module: web-console +license_name: MIT License +version: 4.0.3 +copyright: Berkeley Martinez +license_file_path: licenses/bin/warning.MIT + +--- + +name: JNI binding for Zstd +license_category: binary +module: java-core +license_name: BSD-2-Clause License +version: 1.3.3-1 +copyright: Luben Karavelov +license_file_path: licenses/bin/zstd-jni.BSD2 +libraries: + - com.github.luben: zstd-jni + +--- + +name: demo_table.css and jquery.dataTables.js from DataTables +license_category: source +module: web-console +license_name: BSD-3-Clause License +version: 1.8.2 +copyright: Allan Jardine. +license_file_path: licenses/src/datatables.BSD3 + +--- + +name: Zstandard +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 1.3.3 +copyright: Facebook, Inc. +license_file_path: licenses/bin/zstandard.BSD3 + +--- + +name: FindBugs JSR305 +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 2.0.1 +copyright: FindBugs +license_file_path: licenses/bin/jsr305.BSD3 +libraries: + - com.google.code.findbugs: jsr305 +skip_dependency_report_check: true + +--- + +name: Protocol Buffers +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 3.1.0 +copyright: Google, Inc. +license_file_path: + - licenses/bin/protobuf-java.BSD3 + - licenses/bin/protobuf-java-redhat.BSD3 + - licenses/bin/protobuf-java-bloomberg.BSD3 +libraries: + - com.google.protobuf: protobuf-java +additional_license_statement: except src/google/protobuf/stubs/atomicops_internals_generic_gcc.h and src/google/protobuf/stubs/atomicops_internals_power.h files which are copyrighted by Red Hat Inc and Bloomberg Finance LP, respectively, and available under a BSD-3-Clause + +--- + +name: JLine +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 0.9.94 +copyright: Marc Prud'hommeaux +license_file_path: licenses/bin/jline.BSD3 +libraries: + - jline: jline + +--- + +name: ANTLR 4 Runtime +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 4.5.1 +copyright: The ANTLR Project +license_file_path: licenses/bin/antlr4-runtime.BSD3 +libraries: + - org.antlr: antlr4-runtime + +--- + +name: Janino and Commons Compiler +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 2.7.6 +copyright: Arno Unkrig and TIBCO Software Inc. +license_file_path: licenses/bin/janino.BSD3 +libraries: + - org.codehaus.janino: janino + - org.codehaus.janino: commons-compiler + +--- + +name: ASM +license_category: binary +module: java-core +license_name: BSD-3-Clause License +version: 5.2 +copyright: INRIA, France Telecom +license_file_path: licenses/bin/asm.BSD3 +libraries: + - org.ow2.asm: asm + - org.ow2.asm: asm-commons + - org.ow2.asm: asm-tree + +--- + +name: FindBugs JSR305 +license_category: binary +module: hadoop-client +license_name: BSD-3-Clause License +version: 3.0.0 +copyright: FindBugs +license_file_path: licenses/bin/jsr305.BSD3 +libraries: + - com.google.code.findbugs: jsr305 +skip_dependency_report_check: true + +--- + +name: Protocol Buffers +license_category: binary +module: hadoop-client +license_name: BSD-3-Clause License +version: 2.5.0 +copyright: Google, Inc. +license_file_path: licenses/bin/protobuf-java.BSD3 +libraries: + - com.google.protobuf: protobuf-java + +--- + +name: Paranamer +license_category: binary +module: hadoop-client +license_name: BSD-3-Clause License +version: 2.3 +copyright: Paul Hammant & ThoughtWorks Inc +license_file_path: licenses/bin/paranamer.BSD3 +libraries: + - com.thoughtworks.paranamer: paranamer + +--- + +name: LevelDB JNI +license_category: binary +module: hadoop-client +license_name: BSD-3-Clause License +version: 1.8 +copyright: FuseSource Corp. +license_file_path: licenses/bin/leveldb-jni.BSD3 +libraries: + - org.fusesource.leveldbjni: leveldbjni-all + +--- + +name: xmlenc +license_category: binary +module: hadoop-client +license_name: BSD-3-Clause License +version: 0.5.2 +copyright: Ernst de Haan +license_file_path: licenses/bin/xmlenc.BSD3 +libraries: + - xmlenc: xmlenc + +--- + +name: Paranamer +license_category: binary +module: extensions/druid-avro-extensions +license_name: BSD-3-Clause License +version: 2.7 +copyright: Paul Hammant & ThoughtWorks Inc +license_file_path: licenses/bin/paranamer.BSD3 +libraries: + - com.thoughtworks.paranamer: paranamer + +--- + +name: JSch - Java Secure Channel +license_category: binary +module: extensions/druid-kerberos +license_name: BSD-3-Clause License +version: 0.1.52 +copyright: Atsuhiko Yamanaka, JCraft,Inc. +license_file_path: licenses/bin/jsch.BSD3 +libraries: + - com.jcraft: jsch + +--- + +name: Scala Library +license_category: binary +module: extensions/druid-kafka-eight +license_name: BSD-3-Clause License +version: 2.10.4 +copyright: EPFL, Lightbend Inc. +license_file_path: licenses/bin/scala-lang.BSD3 +libraries: + - org.scala-lang: scala-library + +--- + +name: StringTemplate +license_category: binary +module: extensions/druid-lookups-cached-single +license_name: BSD-3-Clause License +version: 3.2 +copyright: Terrence Parr +license_file_path: licenses/bin/antlr-stringtemplate.BSD3 +libraries: + - org.antlr: stringtemplate + +--- + +name: ANTLR +license_category: binary +module: extensions/druid-lookups-cached-single +license_name: BSD-3-Clause License +version: 2.7.7 +copyright: The ANTLR Project +license_file_path: licenses/bin/antlr.BSD3 +libraries: + - antlr: antlr + +--- + +name: PostgreSQL JDBC Driver +license_category: binary +module: extensions/postgresql-metadata-storage +license_name: BSD-3-Clause License +version: 9.4.1208.jre7 +copyright: PostgreSQL Global Development Group +license_file_path: licenses/bin/postgresql.BSD3 +libraries: + - org.postgresql: postgresql + +--- + +name: Protocol Buffers +license_category: binary +module: extensions/druid-protobuf-extensions +license_name: BSD-3-Clause License +version: 3.1.0 +copyright: Google, Inc. +license_file_path: licenses/bin/protobuf-java.BSD3 +libraries: + - com.google.protobuf: protobuf-java-util + +--- + +name: d3-array +version: 2.0.3 +copyright: Mike Bostock +license_category: binary +module: web-console +license_name: BSD-3-Clause License +license_file_path: licenses/bin/d3-array.BSD3 + +--- + +name: hoist-non-react-statics +license_category: binary +module: web-console +license_name: BSD-3-Clause License +version: 2.5.5 +copyright: Yahoo! Inc. +license_file_path: licenses/bin/hoist-non-react-statics.BSD3 + +--- + +name: react-transition-group +license_category: binary +module: web-console +license_name: BSD-3-Clause License +version: 1.2.1 +copyright: 2016, React Community +additional_copyright_statement: forked from React (https://github.com/facebook/react), copyright 2013-present, Facebook, Inc. +license_file_path: licenses/bin/react-transition-group.BSD3 + +--- + +name: warning +license_category: binary +module: web-console +license_name: BSD-3-Clause License +version: 3.0.0 +copyright: Facebook, Inc. +license_file_path: licenses/bin/warning.BSD3 + +--- + +name: ICU4J +license_category: binary +module: java-core +license_name: ICU License +version: 54.1.1 +copyright: International Business Machines Corporation and others +license_file_path: licenses/bin/icu4j.ICU +libraries: + - com.ibm.icu: icu4j + +--- + +name: fonts from Font Awesome Free +license_category: binary +module: web-console +license_name: SIL Open Font License 1.1 +version: 4.2.0 +copyright: Font Awesome +license_file_path: licenses/bin/font-awesome.silofl + +--- + +name: JavaBeans Activation Framework +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 1.2.0 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.activation.CDDL11 +libraries: + - com.sun.activation: javax.activation + +--- + +name: Jersey +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 1.19.3 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/jersey.CDDL11 +libraries: + - com.sun.jersey: jersey-core + - com.sun.jersey: jersey-server + - com.sun.jersey: jersey-servlet + - com.sun.jersey: contribs + +--- + +name: Expression Language 3.0 API +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 3.0.0 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.el: javax.el-api + +--- + +name: Java Servlet API +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 3.1.0 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.servlet: javax.servlet-api + +--- + +name: JSR311 API +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 1.1.1 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/jsr311-api.CDDL11 +libraries: + - javax.ws.rs: jsr311-api + +--- + +name: Expression Language 3.0 +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 3.0.0 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - org.glassfish: javax.el + +--- + +name: Jersey +license_category: binary +module: hadoop-client +license_name: CDDL 1.1 +version: 1.9 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/jersey.CDDL11 +libraries: + - com.sun.jersey: jersey-client + - com.sun.jersey: jersey-core + +--- + +name: JavaBeans Activation Framework +license_category: binary +module: hadoop-client +license_name: CDDL 1.1 +version: 1.1 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javaxCDDL11 +libraries: + - javax.activation: activation + +--- + +name: Java Servlet API +license_category: binary +module: hadoop-client +license_name: CDDL 1.1 +version: 2.5 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.servlet: javax.servlet-api + +--- + +name: JAXB +license_category: binary +module: hadoop-client +license_name: CDDL 1.1 +version: 2.2.2 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.xml.bind: jaxb-api + +--- + +name: stax-api +license_category: binary +module: hadoop-client +license_name: CDDL 1.1 +version: 1.0-2 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.xml.stream: stax-api + +--- + +name: jsp-api +license_category: binary +module: hadoop-client +license_name: CDDL 1.1 +version: 2.1 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.servlet.jsp: jsp-api + +--- + +name: Jersey +license_category: binary +module: extensions/druid-avro-extensions +license_name: CDDL 1.1 +version: 1.15 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/jersey.CDDL11 +libraries: + - com.sun.jersey: jersey-client + +--- + +name: OkHttp Aether Connector +license_category: binary +module: java-core +license_name: Eclipse Public License 1.0 +version: 0.0.9 +copyright: to original author or authors +license_file_path: licenses/bin/aether-connector-okhttp.EPL1 +libraries: + - io.tesla.aether: aether-connector-okhttp + +--- + +name: Tesla Aether +license_category: binary +module: java-core +license_name: Eclipse Public License 1.0 +version: 0.0.5 +copyright: to original author or authors +license_file_path: licenses/bin/tesla-aether.EPL1 +libraries: + - io.tesla.aether: tesla-aether + +--- + +name: Eclipse Aether libraries +license_category: binary +module: java-core +license_name: Eclipse Public License 1.0 +version: 0.9.0.M2 +copyright: Sonatype, Inc. +license_file_path: licenses/bin/aether-core.EPL1 +libraries: + - org.eclipse.aether: aether-api + - org.eclipse.aether: aether-connector-file + - org.eclipse.aether: aether-impl + - org.eclipse.aether: aether-spi + - org.eclipse.aether: aether-util + +--- + +name: Rhino +license_category: binary +module: java-core +license_name: Mozilla Public License Version 2.0 +version: 1.7R5 +copyright: Mozilla and individual contributors. +license_file_path: licenses/bin/rhino.MPL2 +libraries: + - org.mozilla: rhino + +--- + +name: \"Java Concurrency In Practice\" Book Annotations +license_category: binary +module: hadoop-client +license_name: Creative Commons Attribution 2.5 +copyright: Brian Goetz and Tim Peierls +license_file_path: licenses/bin/creative-commons-2.5.LICENSE +libraries: + - net.jcip: jcip-annotations +skip_dependency_report_check: true + +--- + +name: Reactive Streams +license_category: binary +module: java-core +license_name: Creative Commons CC0 +version: 1.0.2 +license_file_path: licenses/bin/reactive-streams.CC0 +libraries: + - org.reactivestreams: reactive-streams + +--- + +name: a smear function adapted from MurmurHash3 +license_category: source +module: java-core +license_name: Public Domain +copyright: Austin Appleby who has placed MurmurHash3 in the public domain (https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp) +source_paths: + - processing/src/main/java/org/apache/druid/query/groupby/epinephelinae/Groupers.java + +--- + +name: AOP Alliance +license_category: binary +module: java-core +license_name: Public Domain +version: 1.0 +libraries: + - aopalliance: aopalliance + +--- + +name: XZ +license_category: binary +module: java-core +license_name: Public Domain +version: 1.8 +libraries: + - org.tukaani: xz + +--- + +name: XZ +license_category: binary +module: hadoop-client +license_name: Public Domain +version: 1.0 +libraries: + - org.tukaani: xz \ No newline at end of file From 3f91d61c1d074d8fa0c349836f53bcf1063ecec7 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sat, 29 Jun 2019 16:12:43 -0700 Subject: [PATCH 02/46] add missing file --- docs/_bin/generate-license.py | 688 ++++++++++++++++++++++++++++++++++ 1 file changed, 688 insertions(+) create mode 100755 docs/_bin/generate-license.py diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py new file mode 100755 index 000000000000..68cb2643afbd --- /dev/null +++ b/docs/_bin/generate-license.py @@ -0,0 +1,688 @@ +#!/usr/bin/env python3 + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import yaml +import json +import os +import sys +from html.parser import HTMLParser + + +apache_license_v2 = "\n\ + Apache License\n\ + Version 2.0, January 2004\n\ + http://www.apache.org/licenses/bin/\n\ +\n\ + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\ +\n\ + 1. Definitions.\n\ +\n\ + \"License\" shall mean the terms and conditions for use, reproduction,\n\ + and distribution as defined by Sections 1 through 9 of this document.\n\ +\n\ + \"Licensor\" shall mean the copyright owner or entity authorized by\n\ + the copyright owner that is granting the License.\n\ +\n\ + \"Legal Entity\" shall mean the union of the acting entity and all\n\ + other entities that control, are controlled by, or are under common\n\ + control with that entity. For the purposes of this definition,\n\ + \"control\" means (i) the power, direct or indirect, to cause the\n\ + direction or management of such entity, whether by contract or\n\ + otherwise, or (ii) ownership of fifty percent (50%) or more of the\n\ + outstanding shares, or (iii) beneficial ownership of such entity.\n\ +\n\ + \"You\" (or \"Your\") shall mean an individual or Legal Entity\n\ + exercising permissions granted by this License.\n\ +\n\ + \"Source\" form shall mean the preferred form for making modifications,\n\ + including but not limited to software source code, documentation\n\ + source, and configuration files.\n\ +\n\ + \"Object\" form shall mean any form resulting from mechanical\n\ + transformation or translation of a Source form, including but\n\ + not limited to compiled object code, generated documentation,\n\ + and conversions to other media types.\n\ +\n\ + \"Work\" shall mean the work of authorship, whether in Source or\n\ + Object form, made available under the License, as indicated by a\n\ + copyright notice that is included in or attached to the work\n\ + (an example is provided in the Appendix below).\n\ +\n\ + \"Derivative Works\" shall mean any work, whether in Source or Object\n\ + form, that is based on (or derived from) the Work and for which the\n\ + editorial revisions, annotations, elaborations, or other modifications\n\ + represent, as a whole, an original work of authorship. For the purposes\n\ + of this License, Derivative Works shall not include works that remain\n\ + separable from, or merely link (or bind by name) to the interfaces of,\n\ + the Work and Derivative Works thereof.\n\ +\n\ + \"Contribution\" shall mean any work of authorship, including\n\ + the original version of the Work and any modifications or additions\n\ + to that Work or Derivative Works thereof, that is intentionally\n\ + submitted to Licensor for inclusion in the Work by the copyright owner\n\ + or by an individual or Legal Entity authorized to submit on behalf of\n\ + the copyright owner. For the purposes of this definition, \"submitted\"\n\ + means any form of electronic, verbal, or written communication sent\n\ + to the Licensor or its representatives, including but not limited to\n\ + communication on electronic mailing lists, source code control systems,\n\ + and issue tracking systems that are managed by, or on behalf of, the\n\ + Licensor for the purpose of discussing and improving the Work, but\n\ + excluding communication that is conspicuously marked or otherwise\n\ + designated in writing by the copyright owner as \"Not a Contribution.\"\n\ +\n\ + \"Contributor\" shall mean Licensor and any individual or Legal Entity\n\ + on behalf of whom a Contribution has been received by Licensor and\n\ + subsequently incorporated within the Work.\n\ +\n\ + 2. Grant of Copyright License. Subject to the terms and conditions of\n\ + this License, each Contributor hereby grants to You a perpetual,\n\ + worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n\ + copyright license to reproduce, prepare Derivative Works of,\n\ + publicly display, publicly perform, sublicense, and distribute the\n\ + Work and such Derivative Works in Source or Object form.\n\ +\n\ + 3. Grant of Patent License. Subject to the terms and conditions of\n\ + this License, each Contributor hereby grants to You a perpetual,\n\ + worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n\ + (except as stated in this section) patent license to make, have made,\n\ + use, offer to sell, sell, import, and otherwise transfer the Work,\n\ + where such license applies only to those patent claims licensable\n\ + by such Contributor that are necessarily infringed by their\n\ + Contribution(s) alone or by combination of their Contribution(s)\n\ + with the Work to which such Contribution(s) was submitted. If You\n\ + institute patent litigation against any entity (including a\n\ + cross-claim or counterclaim in a lawsuit) alleging that the Work\n\ + or a Contribution incorporated within the Work constitutes direct\n\ + or contributory patent infringement, then any patent licenses\n\ + granted to You under this License for that Work shall terminate\n\ + as of the date such litigation is filed.\n\ +\n\ + 4. Redistribution. You may reproduce and distribute copies of the\n\ + Work or Derivative Works thereof in any medium, with or without\n\ + modifications, and in Source or Object form, provided that You\n\ + meet the following conditions:\n\ +\n\ + (a) You must give any other recipients of the Work or\n\ + Derivative Works a copy of this License; and\n\ +\n\ + (b) You must cause any modified files to carry prominent notices\n\ + stating that You changed the files; and\n\ +\n\ + (c) You must retain, in the Source form of any Derivative Works\n\ + that You distribute, all copyright, patent, trademark, and\n\ + attribution notices from the Source form of the Work,\n\ + excluding those notices that do not pertain to any part of\n\ + the Derivative Works; and\n\ +\n\ + (d) If the Work includes a \"NOTICE\" text file as part of its\n\ + distribution, then any Derivative Works that You distribute must\n\ + include a readable copy of the attribution notices contained\n\ + within such NOTICE file, excluding those notices that do not\n\ + pertain to any part of the Derivative Works, in at least one\n\ + of the following places: within a NOTICE text file distributed\n\ + as part of the Derivative Works; within the Source form or\n\ + documentation, if provided along with the Derivative Works; or,\n\ + within a display generated by the Derivative Works, if and\n\ + wherever such third-party notices normally appear. The contents\n\ + of the NOTICE file are for informational purposes only and\n\ + do not modify the License. You may add Your own attribution\n\ + notices within Derivative Works that You distribute, alongside\n\ + or as an addendum to the NOTICE text from the Work, provided\n\ + that such additional attribution notices cannot be construed\n\ + as modifying the License.\n\ +\n\ + You may add Your own copyright statement to Your modifications and\n\ + may provide additional or different license terms and conditions\n\ + for use, reproduction, or distribution of Your modifications, or\n\ + for any such Derivative Works as a whole, provided Your use,\n\ + reproduction, and distribution of the Work otherwise complies with\n\ + the conditions stated in this License.\n\ +\n\ + 5. Submission of Contributions. Unless You explicitly state otherwise,\n\ + any Contribution intentionally submitted for inclusion in the Work\n\ + by You to the Licensor shall be under the terms and conditions of\n\ + this License, without any additional terms or conditions.\n\ + Notwithstanding the above, nothing herein shall supersede or modify\n\ + the terms of any separate license agreement you may have executed\n\ + with Licensor regarding such Contributions.\n\ +\n\ + 6. Trademarks. This License does not grant permission to use the trade\n\ + names, trademarks, service marks, or product names of the Licensor,\n\ + except as required for reasonable and customary use in describing the\n\ + origin of the Work and reproducing the content of the NOTICE file.\n\ +\n\ + 7. Disclaimer of Warranty. Unless required by applicable law or\n\ + agreed to in writing, Licensor provides the Work (and each\n\ + Contributor provides its Contributions) on an \"AS IS\" BASIS,\n\ + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n\ + implied, including, without limitation, any warranties or conditions\n\ + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n\ + PARTICULAR PURPOSE. You are solely responsible for determining the\n\ + appropriateness of using or redistributing the Work and assume any\n\ + risks associated with Your exercise of permissions under this License.\n\ +\n\ + 8. Limitation of Liability. In no event and under no legal theory,\n\ + whether in tort (including negligence), contract, or otherwise,\n\ + unless required by applicable law (such as deliberate and grossly\n\ + negligent acts) or agreed to in writing, shall any Contributor be\n\ + liable to You for damages, including any direct, indirect, special,\n\ + incidental, or consequential damages of any character arising as a\n\ + result of this License or out of the use or inability to use the\n\ + Work (including but not limited to damages for loss of goodwill,\n\ + work stoppage, computer failure or malfunction, or any and all\n\ + other commercial damages or losses), even if such Contributor\n\ + has been advised of the possibility of such damages.\n\ +\n\ + 9. Accepting Warranty or Additional Liability. While redistributing\n\ + the Work or Derivative Works thereof, You may choose to offer,\n\ + and charge a fee for, acceptance of support, warranty, indemnity,\n\ + or other liability obligations and/or rights consistent with this\n\ + License. However, in accepting such obligations, You may act only\n\ + on Your own behalf and on Your sole responsibility, not on behalf\n\ + of any other Contributor, and only if You agree to indemnify,\n\ + defend, and hold each Contributor harmless for any liability\n\ + incurred by, or claims asserted against, such Contributor by reason\n\ + of your accepting any such warranty or additional liability.\n\ +\n\ + END OF TERMS AND CONDITIONS\n\ +\n\ + APPENDIX: How to apply the Apache License to your work.\n\ +\n\ + To apply the Apache License to your work, attach the following\n\ + boilerplate notice, with the fields enclosed by brackets \"[]\"\n\ + replaced with your own identifying information. (Don't include\n\ + the brackets!) The text should be enclosed in the appropriate\n\ + comment syntax for the file format. We also recommend that a\n\ + file or class name and description of purpose be included on the\n\ + same \"printed page\" as the copyright notice for easier\n\ + identification within third-party archives.\n\ +\n\ + Copyright [yyyy] [name of copyright owner]\n\ +\n\ + Licensed under the Apache License, Version 2.0 (the \"License\");\n\ + you may not use this file except in compliance with the License.\n\ + You may obtain a copy of the License at\n\ +\n\ + http://www.apache.org/licenses/bin/LICENSE-2.0\n\ +\n\ + Unless required by applicable law or agreed to in writing, software\n\ + distributed under the License is distributed on an \"AS IS\" BASIS,\n\ + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\ + See the License for the specific language governing permissions and\n\ + limitations under the License.\n\ +\n\ + APACHE DRUID (INCUBATING) SUBCOMPONENTS:\n\ +\n\ + Apache Druid (incubating) includes a number of subcomponents with\n\ + separate copyright notices and license terms. Your use of the source\n\ + code for these subcomponents is subject to the terms and\n\ + conditions of the following licenses.\n\ +\n" + + +class DependencyReportParser(HTMLParser): + # TODO: Change to comments + states = ["none", "h2_start", "project_dependencies_start", "project_dependencies_end", "h2_end", "h3_start", "compile_start", "compile_end", "h3_end", "table_start", "table_end", "row_start", "th_start", "th_end", "td_start", "td_end", "row_end"] + attr_index = 0 + group_id = None + artifact_id = None + version = None + classifier = None + dep_type = None + license = None + state = "none" + dep_to_license = None + compatible_license_names = None + include_classifier = False + + def __init__(self, compatible_license_names): + HTMLParser.__init__(self) + self.state = "none" + self.compatible_license_names = compatible_license_names + + def parse(self, f): + self.dep_to_license = {} + self.feed(f.read()) + return self.dep_to_license + + def handle_starttag(self, tag, attrs): + # print("current: {}, start tag: {}, attrs:{} ".format(self.state, tag, attrs)) + if self.state == "none": + if tag == "h2": + self.state = "h2_start" + + if self.state == "h2_start": + if tag == "a": + for attr in attrs: + if attr[0] == "name" and (attr[1] == "Project_Dependencies" or attr[1] == "Project_Transitive_Dependencies"): + self.state = "project_dependencies_start" + self.include_classifier = False + + if self.state == "h2_end": + if tag == "h3": + self.state = "h3_start" + + if self.state == "h3_start": + if tag == "a": + for attr in attrs: + if attr[0] == "name" and attr[1] == "compile": + self.state = "compile_start" + + if self.state == "h3_end": + if tag == "table": + self.state = "table_start" + + if self.state == "table_start": + if tag == "tr": + self.state = "row_start" + self.clear_attr() + + if self.state == "row_end": + if tag == "tr": + self.state = "row_start" + self.clear_attr() + + if self.state == "row_start": + if tag == "td": + self.state = "td_start" + elif tag == "th": + self.state = "th_start" + + if self.state == "th_end": + if tag == "th": + self.state = "th_start" + + if self.state == "td_end": + if tag == "td": + self.state = "td_start" + + def handle_endtag(self, tag): + # print("current: {}, end tag: {}".format(self.state, tag)) + if self.state == "project_dependencies_start": + if tag == "a": + self.state = "project_dependencies_end" + + if self.state == "h2_start": + if tag == "h2": + self.state = "h2_end" + + if self.state == "project_dependencies_end": + if tag == "h2": + self.state = "h2_end" + + if self.state == "compile_start": + if tag == "a": + self.state = "compile_end" + + if self.state == "compile_end": + if tag == "h3": + self.state = "h3_end" + + if self.state == "table_start": + if tag == "table": + self.state = "none" + + if self.state == "td_start": + if tag == "td": + self.state = "td_end" + self.attr_index = self.attr_index + 1 + + if self.state == "th_start": + if tag == "th": + self.state = "th_end" + + if self.state == "row_start": + if tag == "tr": + self.state = "row_end" + + if self.state == "th_end": + if tag == "tr": + self.state = "row_end" + + if self.state == "td_end": + if tag == "tr": + self.state = "row_end" + # print(json.dumps({"groupId": self.group_id, "artifactId": self.artifact_id, "version": self.version, "classifier": self.classifier, "type": self.dep_type, "license": self.license})) + self.dep_to_license[get_dep_key(self.group_id, self.artifact_id, self.version)] = self.license + + if self.state == "row_end": + if tag == "table": + self.state = "none" + + def handle_data(self, data): + if self.state == "td_start": + self.set_attr(data) + elif self.state == "th_start": + if data.lower() == "classifier": + self.include_classifier = True + + def clear_attr(self): + self.group_id = None + self.artifact_id = None + self.version = None + self.classifier = None + self.dep_type = None + self.license = None + self.attr_index = 0 + + def set_attr(self, data): + #print("set data: {}".format(data)) + if self.attr_index == 0: + self.group_id = data + elif self.attr_index == 1: + self.artifact_id = data + elif self.attr_index == 2: + self.version = data + elif self.attr_index == 3: + if self.include_classifier: + self.classifier = data + else: + self.dep_type = data + elif self.attr_index == 4: + if self.include_classifier: + self.dep_type = data + else: + self.set_license(data) + elif self.attr_index == 5: + if self.include_classifier: + self.set_license(data) + else: + raise Exception("Unknown attr_index [{}]".format(self.attr_index)) + else: + raise Exception("Unknown attr_index [{}]".format(self.attr_index)) + + def set_license(self, data): + if data.upper().find("GPL") < 0: + if self.license != 'Apache License version 2.0': + self.license = self.compatible_license_names[data] + + +def get_dep_key(group_id, artifact_id, version): + return (group_id, artifact_id, version) + + +def build_compatible_license_names(): + compatible_licenses = {} + compatible_licenses['Apache License, Version 2.0'] = 'Apache License version 2.0' + compatible_licenses['The Apache Software License, Version 2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache 2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache 2'] = 'Apache License version 2.0' + compatible_licenses['Apache License 2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache Software License - Version 2.0'] = 'Apache License version 2.0' + compatible_licenses['The Apache License, Version 2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache License version 2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache License Version 2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache License Version 2'] = 'Apache License version 2.0' + compatible_licenses['Apache License v2.0'] = 'Apache License version 2.0' + compatible_licenses['Apache License, version 2.0'] = 'Apache License version 2.0' + + compatible_licenses['Public Domain'] = 'Public Domain' + + compatible_licenses['BSD-2-Clause License'] = 'BSD-2-Clause License' + + compatible_licenses['BSD-3-Clause License'] = 'BSD-3-Clause License' + compatible_licenses['New BSD license'] = 'BSD-3-Clause License' + compatible_licenses['BSD'] = 'BSD-3-Clause License' + compatible_licenses['The BSD License'] = 'BSD-3-Clause License' + compatible_licenses['BSD licence'] = 'BSD-3-Clause License' + compatible_licenses['BSD License'] = 'BSD-3-Clause License' + compatible_licenses['BSD-like'] = 'BSD-3-Clause License' + compatible_licenses['The BSD 3-Clause License'] = 'BSD-3-Clause License' + compatible_licenses['Revised BSD'] = 'BSD-3-Clause License' + compatible_licenses['New BSD License'] = 'BSD-3-Clause License' + + compatible_licenses['ICU License'] = 'ICU License' + + compatible_licenses['SIL Open Font License 1.1'] = 'SIL Open Font License 1.1' + + compatible_licenses['CDDL 1.1'] = 'CDDL 1.1' + compatible_licenses['CDDL/GPLv2+CE'] = 'CDDL 1.1' + compatible_licenses['CDDL + GPLv2 with classpath exception'] = 'CDDL 1.1' + compatible_licenses['CDDL License'] = 'CDDL 1.1' + + compatible_licenses['Eclipse Public License 1.0'] = 'Eclipse Public License 1.0' + compatible_licenses['The Eclipse Public License, Version 1.0'] = 'Eclipse Public License 1.0' + compatible_licenses['Eclipse Public License - Version 1.0'] = 'Eclipse Public License 1.0' + compatible_licenses['Eclipse Public License, Version 1.0'] = 'Eclipse Public License 1.0' + + compatible_licenses['Mozilla Public License Version 2.0'] = 'Mozilla Public License Version 2.0' + compatible_licenses['Mozilla Public License, Version 2.0'] = 'Mozilla Public License Version 2.0' + + compatible_licenses['Creative Commons Attribution 2.5'] = 'Creative Commons Attribution 2.5' + + compatible_licenses['Creative Commons CC0'] = 'Creative Commons CC0' + compatible_licenses['CC0'] = 'Creative Commons CC0' + + compatible_licenses['The MIT License'] = 'MIT License' + compatible_licenses['MIT License'] = 'MIT License' + + compatible_licenses['-'] = '-' + return compatible_licenses + + +def module_to_upper(module): + extensions_offset = module.lower().find("extensions") + if extensions_offset < 0: + return module.upper() + elif extensions_offset == 0: + return module[0:len("extensions")].upper() + module[len("extensions"):len(module)] + else: + raise Exception("Expected extensions at 0, but {}".format(extensions_offset)) + + +def print_error(str): + print(str, file=sys.stderr) + + +def print_license_phrase(license_phrase): + remaining = license_phrase + while len(remaining) > 0: + # print("remaining: {}".format(remaining)) + # print("len: {}".format(len(remaining))) + if len(remaining) > 120: + chars_of_200 = remaining[0:120] + phrase_len = chars_of_200.rfind(" ") + if phrase_len < 0: + raise Exception("Can't find whitespace in {}".format(chars_of_200)) + print(" {}".format(remaining[0:phrase_len])) + remaining = remaining[phrase_len:] + else: + print(" {}".format(remaining)) + remaining = "" + + +def is_non_empty(dic, key): + if key in dic and dic[key] is not None: + if type(dic[key]) == str: + return len(dic[key]) > 0 + else: + return True + else: + return False + + +def print_license(license): + license_phrase = "This product" + if license['license_category'] == "source": + license_phrase += " contains" + elif license['license_category'] == "binary": + license_phrase += " bundles" + license_phrase += " {}".format(license['name']) + if is_non_empty(license, 'version'): + license_phrase += " version {}".format(license['version']) + if is_non_empty(license, 'copyright'): + license_phrase += ", copyright {}".format(license['copyright']) + if is_non_empty(license, 'additional_copyright_statement'): + license_phrase += ", {}".format(license['additional_copyright_statement']) + if license['license_name'] != 'Apache License version 2.0': + license_phrase += " which is available under {}".format(license['license_name']) + if is_non_empty(license, 'additional_license_statement'): + license_phrase += ", {}".format(license['additional_license_statement']) + if is_non_empty(license, 'license_file_path'): + license_file_list = [] + if type(license['license_file_path']) == list: + license_file_list.extend(license['license_file_path']) + else: + license_file_list.append(license['license_file_path']) + if len(license_file_list) == 1: + license_phrase += ". For details, see {}".format(license_file_list[0]) + else: + license_phrase += ". For details, " + for each_file in license_file_list: + if each_file == license_file_list[-1]: + license_phrase += ", and {}".format(each_file) + elif each_file == license_file_list[0]: + license_phrase += "see {}".format(each_file) + else: + license_phrase += ", {}".format(each_file) + + license_phrase += "." + + print_license_phrase(license_phrase) + + if 'source_paths' in license: + for source_path in license['source_paths']: + if type(source_path) is dict: + for class_name, path in source_path.items(): + print(" {}:".format(class_name)) + print(" * {}".format(path)) + else: + print(" * {}".format(source_path)) + + if 'libraries' in license: + for library in license['libraries']: + if type(library) is not dict: + raise Exception("Expected dict but got {}[{}]".format(type(library), library)) + if len(library) > 1: + raise Exception("Expected 1 groupId and artifactId, but got [{}]".format(library)) + for group_id, artifact_id in library.items(): + print(" * {}:{}".format(group_id, artifact_id)) + + +def check_licenses(license_yaml, dependencie_reports_root): + reported_dep_to_licenses = {} + compatible_license_names = build_compatible_license_names() + for dirpath, dirnames, filenames in os.walk(dependencie_reports_root): + for filename in filenames: + if filename == "dependencies.html": + full_path = os.path.join(dirpath, filename) + print_error("Parsing {}".format(full_path)) + with open(full_path) as report_file: + parser = DependencyReportParser(compatible_license_names) + reported_dep_to_licenses.update(parser.parse(report_file)) + + print_error("Found {} reported licenses".format(len(reported_dep_to_licenses))) + + # Compare licenses in registry and those in dependency reports + mismatched_licenses = [] + unchecked_licenses = [] + with open(license_yaml) as registry_file: + licenses_list = list(yaml.load_all(registry_file)) + registered_dep_to_licenses = {} + for license in licenses_list: + if 'skip_dependency_report_check' in license and license['skip_dependency_report_check']: + continue + if 'libraries' in license: + for library in license['libraries']: + if type(library) is not dict: + raise Exception("Expected dict but got {}[{}]".format(type(library), library)) + if len(library) > 1: + raise Exception("Expected 1 groupId and artifactId, but got [{}]".format(library)) + for group_id, artifact_id in library.items(): + if 'version' not in license: + raise Exception("version is missing in {}".format(license)) + if 'license_name' not in license: + raise Exception("name is missing in {}".format(license)) + registered_dep_to_licenses[get_dep_key(group_id, artifact_id, license['version'])] = compatible_license_names[license['license_name']] + + for key, registered_license in registered_dep_to_licenses.items(): + if key in reported_dep_to_licenses: + reported_license = reported_dep_to_licenses[key] + if reported_license is not None and reported_license != "-" and reported_license != registered_license: + group_id = key[0] + artifact_id = key[1] + version = key[2] + mismatched_licenses.append((group_id, artifact_id, version, reported_license, registered_license)) + + if len(mismatched_licenses) > 0: + print_error("Error: found {} mismatches between reported licenses and registered licenses".format(len(mismatched_licenses))) + for mismatched_license in mismatched_licenses: + print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}, registered_license: {}".format(mismatched_license[0], mismatched_license[1], mismatched_license[2], mismatched_license[3], mismatched_license[4])) + sys.exit(1) + + for key, registered_license in registered_dep_to_licenses.items(): + if key not in reported_dep_to_licenses: + # print("{} is not in reported licenses[{}]".format(key, reported_dep_to_licenses)) + unchecked_licenses.append((key[0], key[1], key[2], registered_license)) + elif reported_dep_to_licenses[key] == "-": + unchecked_licenses.append((key[0], key[1], key[2], registered_license)) + + if len(unchecked_licenses) > 0: + print_error("Warn: found {} unchecked licenses. These licenses are registered, but not found in dependency reports".format(len(unchecked_licenses))) + for unchecked_license in unchecked_licenses: + print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}".format(unchecked_license[0], unchecked_license[1], unchecked_license[2], unchecked_license[3])) + print_error("") + + +def print_license_name_underbar(license_name): + underbar = "" + for _ in range(len(license_name)): + underbar += "=" + print("{}\n".format(underbar)) + +def generate_license(license_yaml): + # Generate LICENSE.BINARY file + print_error("=== Generating the contents of LICENSE.BINARY file ===\n") + + print(apache_license_v2) + with open(license_yaml) as registry_file: + licenses_list = list(yaml.load_all(registry_file)) + licenses_map = {} + for license in licenses_list: + if license['license_name'] not in licenses_map: + licenses_map[license['license_name']] = {} + licenses_of_name = licenses_map[license['license_name']] + if license['license_category'] not in licenses_of_name: + licenses_of_name[license['license_category']] = {} + licenses_of_category = licenses_of_name[license['license_category']] + if license['module'] not in licenses_of_category: + licenses_of_category[license['module']] = [] + licenses_of_module = licenses_of_category[license['module']] + licenses_of_module.append(license) + + for license_name, licenses_of_name in sorted(licenses_map.items()): + print(license_name) + print_license_name_underbar(license_name) + for license_category, licenses_of_category in licenses_of_name.items(): + for module, licenses in licenses_of_category.items(): + print("{}/{}".format(license_category.upper(), module_to_upper(module))) + for license in licenses: + print_license(license) + print("") + print("") + + +# TODO: add options: fail-on-unchecked-license, debug mode +if len(sys.argv) != 3: + sys.stderr.write("usage: {} ".format(sys.argv[0])) + sys.exit(1) + +license_yaml = sys.argv[1] +dependencie_reports_root = sys.argv[2] + +check_licenses(license_yaml, dependencie_reports_root) +generate_license(license_yaml) \ No newline at end of file From ade48477a84de587c8b5a036500222a8d6f8a07d Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sat, 29 Jun 2019 16:20:05 -0700 Subject: [PATCH 03/46] add comment --- docs/_bin/generate-license.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 68cb2643afbd..9ed9592a24e5 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -237,6 +237,14 @@ class DependencyReportParser(HTMLParser): # TODO: Change to comments states = ["none", "h2_start", "project_dependencies_start", "project_dependencies_end", "h2_end", "h3_start", "compile_start", "compile_end", "h3_end", "table_start", "table_end", "row_start", "th_start", "th_end", "td_start", "td_end", "row_end"] + + # This class parses the given html file to find all dependency reports under "Project dependencies" + # and "Projection transparent dependencies" sections. + # The parser works based on the state machine and its state is updated whenever it reads a new tag. + # The state changes as below: + # + # none -> h2_start -> project_dependencies_start -> h3_start -> compile_start -> table_start -> row_start -> th_start / td_start -> th_end / td_end -> row_end -> table_end -> compile_end -> h3_end -> project_dependencies_end -> h2_end -> none + attr_index = 0 group_id = None artifact_id = None @@ -676,7 +684,7 @@ def generate_license(license_yaml): print("") -# TODO: add options: fail-on-unchecked-license, debug mode +# TODO: add options: debug mode if len(sys.argv) != 3: sys.stderr.write("usage: {} ".format(sys.argv[0])) sys.exit(1) From 49869aa93124102a3de647cc2f7a45d2af382000 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sat, 29 Jun 2019 21:07:02 -0700 Subject: [PATCH 04/46] Address comments --- docs/_bin/generate-license.py | 385 ++++++++-------------------------- license.yaml | 17 ++ licenses/APACHE2 | 210 +++++++++++++++++++ 3 files changed, 319 insertions(+), 293 deletions(-) create mode 100644 licenses/APACHE2 diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 9ed9592a24e5..f900db2fbf07 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -22,222 +22,7 @@ from html.parser import HTMLParser -apache_license_v2 = "\n\ - Apache License\n\ - Version 2.0, January 2004\n\ - http://www.apache.org/licenses/bin/\n\ -\n\ - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\ -\n\ - 1. Definitions.\n\ -\n\ - \"License\" shall mean the terms and conditions for use, reproduction,\n\ - and distribution as defined by Sections 1 through 9 of this document.\n\ -\n\ - \"Licensor\" shall mean the copyright owner or entity authorized by\n\ - the copyright owner that is granting the License.\n\ -\n\ - \"Legal Entity\" shall mean the union of the acting entity and all\n\ - other entities that control, are controlled by, or are under common\n\ - control with that entity. For the purposes of this definition,\n\ - \"control\" means (i) the power, direct or indirect, to cause the\n\ - direction or management of such entity, whether by contract or\n\ - otherwise, or (ii) ownership of fifty percent (50%) or more of the\n\ - outstanding shares, or (iii) beneficial ownership of such entity.\n\ -\n\ - \"You\" (or \"Your\") shall mean an individual or Legal Entity\n\ - exercising permissions granted by this License.\n\ -\n\ - \"Source\" form shall mean the preferred form for making modifications,\n\ - including but not limited to software source code, documentation\n\ - source, and configuration files.\n\ -\n\ - \"Object\" form shall mean any form resulting from mechanical\n\ - transformation or translation of a Source form, including but\n\ - not limited to compiled object code, generated documentation,\n\ - and conversions to other media types.\n\ -\n\ - \"Work\" shall mean the work of authorship, whether in Source or\n\ - Object form, made available under the License, as indicated by a\n\ - copyright notice that is included in or attached to the work\n\ - (an example is provided in the Appendix below).\n\ -\n\ - \"Derivative Works\" shall mean any work, whether in Source or Object\n\ - form, that is based on (or derived from) the Work and for which the\n\ - editorial revisions, annotations, elaborations, or other modifications\n\ - represent, as a whole, an original work of authorship. For the purposes\n\ - of this License, Derivative Works shall not include works that remain\n\ - separable from, or merely link (or bind by name) to the interfaces of,\n\ - the Work and Derivative Works thereof.\n\ -\n\ - \"Contribution\" shall mean any work of authorship, including\n\ - the original version of the Work and any modifications or additions\n\ - to that Work or Derivative Works thereof, that is intentionally\n\ - submitted to Licensor for inclusion in the Work by the copyright owner\n\ - or by an individual or Legal Entity authorized to submit on behalf of\n\ - the copyright owner. For the purposes of this definition, \"submitted\"\n\ - means any form of electronic, verbal, or written communication sent\n\ - to the Licensor or its representatives, including but not limited to\n\ - communication on electronic mailing lists, source code control systems,\n\ - and issue tracking systems that are managed by, or on behalf of, the\n\ - Licensor for the purpose of discussing and improving the Work, but\n\ - excluding communication that is conspicuously marked or otherwise\n\ - designated in writing by the copyright owner as \"Not a Contribution.\"\n\ -\n\ - \"Contributor\" shall mean Licensor and any individual or Legal Entity\n\ - on behalf of whom a Contribution has been received by Licensor and\n\ - subsequently incorporated within the Work.\n\ -\n\ - 2. Grant of Copyright License. Subject to the terms and conditions of\n\ - this License, each Contributor hereby grants to You a perpetual,\n\ - worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n\ - copyright license to reproduce, prepare Derivative Works of,\n\ - publicly display, publicly perform, sublicense, and distribute the\n\ - Work and such Derivative Works in Source or Object form.\n\ -\n\ - 3. Grant of Patent License. Subject to the terms and conditions of\n\ - this License, each Contributor hereby grants to You a perpetual,\n\ - worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n\ - (except as stated in this section) patent license to make, have made,\n\ - use, offer to sell, sell, import, and otherwise transfer the Work,\n\ - where such license applies only to those patent claims licensable\n\ - by such Contributor that are necessarily infringed by their\n\ - Contribution(s) alone or by combination of their Contribution(s)\n\ - with the Work to which such Contribution(s) was submitted. If You\n\ - institute patent litigation against any entity (including a\n\ - cross-claim or counterclaim in a lawsuit) alleging that the Work\n\ - or a Contribution incorporated within the Work constitutes direct\n\ - or contributory patent infringement, then any patent licenses\n\ - granted to You under this License for that Work shall terminate\n\ - as of the date such litigation is filed.\n\ -\n\ - 4. Redistribution. You may reproduce and distribute copies of the\n\ - Work or Derivative Works thereof in any medium, with or without\n\ - modifications, and in Source or Object form, provided that You\n\ - meet the following conditions:\n\ -\n\ - (a) You must give any other recipients of the Work or\n\ - Derivative Works a copy of this License; and\n\ -\n\ - (b) You must cause any modified files to carry prominent notices\n\ - stating that You changed the files; and\n\ -\n\ - (c) You must retain, in the Source form of any Derivative Works\n\ - that You distribute, all copyright, patent, trademark, and\n\ - attribution notices from the Source form of the Work,\n\ - excluding those notices that do not pertain to any part of\n\ - the Derivative Works; and\n\ -\n\ - (d) If the Work includes a \"NOTICE\" text file as part of its\n\ - distribution, then any Derivative Works that You distribute must\n\ - include a readable copy of the attribution notices contained\n\ - within such NOTICE file, excluding those notices that do not\n\ - pertain to any part of the Derivative Works, in at least one\n\ - of the following places: within a NOTICE text file distributed\n\ - as part of the Derivative Works; within the Source form or\n\ - documentation, if provided along with the Derivative Works; or,\n\ - within a display generated by the Derivative Works, if and\n\ - wherever such third-party notices normally appear. The contents\n\ - of the NOTICE file are for informational purposes only and\n\ - do not modify the License. You may add Your own attribution\n\ - notices within Derivative Works that You distribute, alongside\n\ - or as an addendum to the NOTICE text from the Work, provided\n\ - that such additional attribution notices cannot be construed\n\ - as modifying the License.\n\ -\n\ - You may add Your own copyright statement to Your modifications and\n\ - may provide additional or different license terms and conditions\n\ - for use, reproduction, or distribution of Your modifications, or\n\ - for any such Derivative Works as a whole, provided Your use,\n\ - reproduction, and distribution of the Work otherwise complies with\n\ - the conditions stated in this License.\n\ -\n\ - 5. Submission of Contributions. Unless You explicitly state otherwise,\n\ - any Contribution intentionally submitted for inclusion in the Work\n\ - by You to the Licensor shall be under the terms and conditions of\n\ - this License, without any additional terms or conditions.\n\ - Notwithstanding the above, nothing herein shall supersede or modify\n\ - the terms of any separate license agreement you may have executed\n\ - with Licensor regarding such Contributions.\n\ -\n\ - 6. Trademarks. This License does not grant permission to use the trade\n\ - names, trademarks, service marks, or product names of the Licensor,\n\ - except as required for reasonable and customary use in describing the\n\ - origin of the Work and reproducing the content of the NOTICE file.\n\ -\n\ - 7. Disclaimer of Warranty. Unless required by applicable law or\n\ - agreed to in writing, Licensor provides the Work (and each\n\ - Contributor provides its Contributions) on an \"AS IS\" BASIS,\n\ - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n\ - implied, including, without limitation, any warranties or conditions\n\ - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n\ - PARTICULAR PURPOSE. You are solely responsible for determining the\n\ - appropriateness of using or redistributing the Work and assume any\n\ - risks associated with Your exercise of permissions under this License.\n\ -\n\ - 8. Limitation of Liability. In no event and under no legal theory,\n\ - whether in tort (including negligence), contract, or otherwise,\n\ - unless required by applicable law (such as deliberate and grossly\n\ - negligent acts) or agreed to in writing, shall any Contributor be\n\ - liable to You for damages, including any direct, indirect, special,\n\ - incidental, or consequential damages of any character arising as a\n\ - result of this License or out of the use or inability to use the\n\ - Work (including but not limited to damages for loss of goodwill,\n\ - work stoppage, computer failure or malfunction, or any and all\n\ - other commercial damages or losses), even if such Contributor\n\ - has been advised of the possibility of such damages.\n\ -\n\ - 9. Accepting Warranty or Additional Liability. While redistributing\n\ - the Work or Derivative Works thereof, You may choose to offer,\n\ - and charge a fee for, acceptance of support, warranty, indemnity,\n\ - or other liability obligations and/or rights consistent with this\n\ - License. However, in accepting such obligations, You may act only\n\ - on Your own behalf and on Your sole responsibility, not on behalf\n\ - of any other Contributor, and only if You agree to indemnify,\n\ - defend, and hold each Contributor harmless for any liability\n\ - incurred by, or claims asserted against, such Contributor by reason\n\ - of your accepting any such warranty or additional liability.\n\ -\n\ - END OF TERMS AND CONDITIONS\n\ -\n\ - APPENDIX: How to apply the Apache License to your work.\n\ -\n\ - To apply the Apache License to your work, attach the following\n\ - boilerplate notice, with the fields enclosed by brackets \"[]\"\n\ - replaced with your own identifying information. (Don't include\n\ - the brackets!) The text should be enclosed in the appropriate\n\ - comment syntax for the file format. We also recommend that a\n\ - file or class name and description of purpose be included on the\n\ - same \"printed page\" as the copyright notice for easier\n\ - identification within third-party archives.\n\ -\n\ - Copyright [yyyy] [name of copyright owner]\n\ -\n\ - Licensed under the Apache License, Version 2.0 (the \"License\");\n\ - you may not use this file except in compliance with the License.\n\ - You may obtain a copy of the License at\n\ -\n\ - http://www.apache.org/licenses/bin/LICENSE-2.0\n\ -\n\ - Unless required by applicable law or agreed to in writing, software\n\ - distributed under the License is distributed on an \"AS IS\" BASIS,\n\ - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\ - See the License for the specific language governing permissions and\n\ - limitations under the License.\n\ -\n\ - APACHE DRUID (INCUBATING) SUBCOMPONENTS:\n\ -\n\ - Apache Druid (incubating) includes a number of subcomponents with\n\ - separate copyright notices and license terms. Your use of the source\n\ - code for these subcomponents is subject to the terms and\n\ - conditions of the following licenses.\n\ -\n" - - class DependencyReportParser(HTMLParser): - # TODO: Change to comments - states = ["none", "h2_start", "project_dependencies_start", "project_dependencies_end", "h2_end", "h3_start", "compile_start", "compile_end", "h3_end", "table_start", "table_end", "row_start", "th_start", "th_end", "td_start", "td_end", "row_end"] - # This class parses the given html file to find all dependency reports under "Project dependencies" # and "Projection transparent dependencies" sections. # The parser works based on the state machine and its state is updated whenever it reads a new tag. @@ -581,10 +366,14 @@ def print_license(license): print(" * {}:{}".format(group_id, artifact_id)) -def check_licenses(license_yaml, dependencie_reports_root): +def check_licenses(license_yaml, dependency_reports_root): + # Build a dictionary to facilitate comparing reported licenses and registered ones. + # These dictionaries are the mapping of (group_id, artifact_id, version) to license_name. + + # Build reported license dictionary. reported_dep_to_licenses = {} compatible_license_names = build_compatible_license_names() - for dirpath, dirnames, filenames in os.walk(dependencie_reports_root): + for dirpath, dirnames, filenames in os.walk(dependency_reports_root): for filename in filenames: if filename == "dependencies.html": full_path = os.path.join(dirpath, filename) @@ -593,56 +382,61 @@ def check_licenses(license_yaml, dependencie_reports_root): parser = DependencyReportParser(compatible_license_names) reported_dep_to_licenses.update(parser.parse(report_file)) - print_error("Found {} reported licenses".format(len(reported_dep_to_licenses))) + print_error("Found {} reported licenses\n".format(len(reported_dep_to_licenses))) - # Compare licenses in registry and those in dependency reports - mismatched_licenses = [] - unchecked_licenses = [] + # Build registered license dictionary. + registered_dep_to_licenses = {} with open(license_yaml) as registry_file: licenses_list = list(yaml.load_all(registry_file)) - registered_dep_to_licenses = {} - for license in licenses_list: - if 'skip_dependency_report_check' in license and license['skip_dependency_report_check']: - continue - if 'libraries' in license: - for library in license['libraries']: - if type(library) is not dict: - raise Exception("Expected dict but got {}[{}]".format(type(library), library)) - if len(library) > 1: - raise Exception("Expected 1 groupId and artifactId, but got [{}]".format(library)) - for group_id, artifact_id in library.items(): - if 'version' not in license: - raise Exception("version is missing in {}".format(license)) - if 'license_name' not in license: - raise Exception("name is missing in {}".format(license)) - registered_dep_to_licenses[get_dep_key(group_id, artifact_id, license['version'])] = compatible_license_names[license['license_name']] - - for key, registered_license in registered_dep_to_licenses.items(): - if key in reported_dep_to_licenses: - reported_license = reported_dep_to_licenses[key] - if reported_license is not None and reported_license != "-" and reported_license != registered_license: - group_id = key[0] - artifact_id = key[1] - version = key[2] - mismatched_licenses.append((group_id, artifact_id, version, reported_license, registered_license)) - - if len(mismatched_licenses) > 0: - print_error("Error: found {} mismatches between reported licenses and registered licenses".format(len(mismatched_licenses))) - for mismatched_license in mismatched_licenses: - print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}, registered_license: {}".format(mismatched_license[0], mismatched_license[1], mismatched_license[2], mismatched_license[3], mismatched_license[4])) - sys.exit(1) - - for key, registered_license in registered_dep_to_licenses.items(): - if key not in reported_dep_to_licenses: - # print("{} is not in reported licenses[{}]".format(key, reported_dep_to_licenses)) - unchecked_licenses.append((key[0], key[1], key[2], registered_license)) - elif reported_dep_to_licenses[key] == "-": - unchecked_licenses.append((key[0], key[1], key[2], registered_license)) - - if len(unchecked_licenses) > 0: - print_error("Warn: found {} unchecked licenses. These licenses are registered, but not found in dependency reports".format(len(unchecked_licenses))) - for unchecked_license in unchecked_licenses: - print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}".format(unchecked_license[0], unchecked_license[1], unchecked_license[2], unchecked_license[3])) + for license in licenses_list: + if 'skip_dependency_report_check' in license and license['skip_dependency_report_check']: + continue + if 'libraries' in license: + for library in license['libraries']: + if type(library) is not dict: + raise Exception("Expected dict but got {}[{}]".format(type(library), library)) + if len(library) > 1: + raise Exception("Expected 1 groupId and artifactId, but got [{}]".format(library)) + for group_id, artifact_id in library.items(): + if 'version' not in license: + raise Exception("version is missing in {}".format(license)) + if 'license_name' not in license: + raise Exception("name is missing in {}".format(license)) + registered_dep_to_licenses[get_dep_key(group_id, artifact_id, license['version'])] = compatible_license_names[license['license_name']] + + # Compare licenses in registry and those in dependency reports. + mismatched_licenses = [] + unchecked_licenses = [] + # Iterate through registered licenses and check if its license is same with the reported one. + for key, registered_license in registered_dep_to_licenses.items(): + if key in reported_dep_to_licenses: # key is (group_id, artifact_id, version) + reported_license = reported_dep_to_licenses[key] + if reported_license is not None and reported_license != "-" and reported_license != registered_license: + group_id = key[0] + artifact_id = key[1] + version = key[2] + mismatched_licenses.append((group_id, artifact_id, version, reported_license, registered_license)) + + # If we find any mismatched license, stop immediately. + if len(mismatched_licenses) > 0: + print_error("Error: found {} mismatches between reported licenses and registered licenses".format(len(mismatched_licenses))) + for mismatched_license in mismatched_licenses: + print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}, registered_license: {}".format(mismatched_license[0], mismatched_license[1], mismatched_license[2], mismatched_license[3], mismatched_license[4])) + sys.exit(1) + + # Let's find unchecked licenses, which are registered but missing in the report. + # These licenses should be checked manually. + for key, registered_license in registered_dep_to_licenses.items(): + if key not in reported_dep_to_licenses: + unchecked_licenses.append((key[0], key[1], key[2], registered_license)) + elif reported_dep_to_licenses[key] == "-": + unchecked_licenses.append((key[0], key[1], key[2], registered_license)) + + if len(unchecked_licenses) > 0: + print_error("Warn: found {} unchecked licenses. These licenses are registered, but not found in dependency reports.".format(len(unchecked_licenses))) + print_error("These licenses must be checked manually.") + for unchecked_license in unchecked_licenses: + print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}".format(unchecked_license[0], unchecked_license[1], unchecked_license[2], unchecked_license[3])) print_error("") @@ -652,45 +446,50 @@ def print_license_name_underbar(license_name): underbar += "=" print("{}\n".format(underbar)) -def generate_license(license_yaml): +def generate_license(apache_license_v2, license_yaml): # Generate LICENSE.BINARY file print_error("=== Generating the contents of LICENSE.BINARY file ===\n") + # Print Apache license first. print(apache_license_v2) with open(license_yaml) as registry_file: licenses_list = list(yaml.load_all(registry_file)) - licenses_map = {} - for license in licenses_list: - if license['license_name'] not in licenses_map: - licenses_map[license['license_name']] = {} - licenses_of_name = licenses_map[license['license_name']] - if license['license_category'] not in licenses_of_name: - licenses_of_name[license['license_category']] = {} - licenses_of_category = licenses_of_name[license['license_category']] - if license['module'] not in licenses_of_category: - licenses_of_category[license['module']] = [] - licenses_of_module = licenses_of_category[license['module']] - licenses_of_module.append(license) - - for license_name, licenses_of_name in sorted(licenses_map.items()): - print(license_name) - print_license_name_underbar(license_name) - for license_category, licenses_of_category in licenses_of_name.items(): - for module, licenses in licenses_of_category.items(): - print("{}/{}".format(license_category.upper(), module_to_upper(module))) - for license in licenses: - print_license(license) - print("") + + # Group licenses by license_name, license_category, and then module. + licenses_map = {} + for license in licenses_list: + if license['license_name'] not in licenses_map: + licenses_map[license['license_name']] = {} + licenses_of_name = licenses_map[license['license_name']] + if license['license_category'] not in licenses_of_name: + licenses_of_name[license['license_category']] = {} + licenses_of_category = licenses_of_name[license['license_category']] + if license['module'] not in licenses_of_category: + licenses_of_category[license['module']] = [] + licenses_of_module = licenses_of_category[license['module']] + licenses_of_module.append(license) + + for license_name, licenses_of_name in sorted(licenses_map.items()): + print(license_name) + print_license_name_underbar(license_name) + for license_category, licenses_of_category in licenses_of_name.items(): + for module, licenses in licenses_of_category.items(): + print("{}/{}".format(license_category.upper(), module_to_upper(module))) + for license in licenses: + print_license(license) print("") + print("") # TODO: add options: debug mode -if len(sys.argv) != 3: - sys.stderr.write("usage: {} ".format(sys.argv[0])) +if len(sys.argv) != 4: + sys.stderr.write("usage: {} ".format(sys.argv[0])) sys.exit(1) -license_yaml = sys.argv[1] -dependencie_reports_root = sys.argv[2] +with open(sys.argv[1]) as apache_license_file: + apache_license_v2 = apache_license_file.read() +license_yaml = sys.argv[2] +dependency_reports_root = sys.argv[3] -check_licenses(license_yaml, dependencie_reports_root) -generate_license(license_yaml) \ No newline at end of file +check_licenses(license_yaml, dependency_reports_root) +generate_license(apache_license_v2, license_yaml) \ No newline at end of file diff --git a/license.yaml b/license.yaml index bcf06e8765ef..19e5d930ff0c 100644 --- a/license.yaml +++ b/license.yaml @@ -1,3 +1,20 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + name: conjunctive normal form conversion code, a variance aggregator algorithm, and Bloom filter adapted from Apache Hive version: license_category: source diff --git a/licenses/APACHE2 b/licenses/APACHE2 new file mode 100644 index 000000000000..eeb51e0f55be --- /dev/null +++ b/licenses/APACHE2 @@ -0,0 +1,210 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + APACHE DRUID (INCUBATING) SUBCOMPONENTS: + + Apache Druid (incubating) includes a number of subcomponents with + separate copyright notices and license terms. Your use of the source + code for these subcomponents is subject to the terms and + conditions of the following licenses. + From 9f56964fd8570afbd647465334e5a91499f4cbc8 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 30 Jun 2019 08:29:30 -0700 Subject: [PATCH 05/46] print missing licenses --- docs/_bin/generate-license.py | 33 +++++++++++++++++++++++++++++---- license.yaml | 4 ++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index f900db2fbf07..75c8bcbc29cd 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -150,7 +150,8 @@ def handle_endtag(self, tag): if tag == "tr": self.state = "row_end" # print(json.dumps({"groupId": self.group_id, "artifactId": self.artifact_id, "version": self.version, "classifier": self.classifier, "type": self.dep_type, "license": self.license})) - self.dep_to_license[get_dep_key(self.group_id, self.artifact_id, self.version)] = self.license + if self.group_id.find("org.apache.druid") < 0: + self.dep_to_license[get_dep_key(self.group_id, self.artifact_id, self.version)] = self.license if self.state == "row_end": if tag == "table": @@ -179,7 +180,7 @@ def set_attr(self, data): elif self.attr_index == 1: self.artifact_id = data elif self.attr_index == 2: - self.version = data + self.version = get_version_string(data) elif self.attr_index == 3: if self.include_classifier: self.classifier = data @@ -281,6 +282,13 @@ def print_error(str): print(str, file=sys.stderr) +def get_version_string(version): + if type(version) == str: + return version + else: + return str(version) + + def print_license_phrase(license_phrase): remaining = license_phrase while len(remaining) > 0: @@ -402,10 +410,11 @@ def check_licenses(license_yaml, dependency_reports_root): raise Exception("version is missing in {}".format(license)) if 'license_name' not in license: raise Exception("name is missing in {}".format(license)) - registered_dep_to_licenses[get_dep_key(group_id, artifact_id, license['version'])] = compatible_license_names[license['license_name']] + registered_dep_to_licenses[get_dep_key(group_id, artifact_id, get_version_string(license['version']))] = compatible_license_names[license['license_name']] # Compare licenses in registry and those in dependency reports. mismatched_licenses = [] + missing_licenses = [] unchecked_licenses = [] # Iterate through registered licenses and check if its license is same with the reported one. for key, registered_license in registered_dep_to_licenses.items(): @@ -422,14 +431,28 @@ def check_licenses(license_yaml, dependency_reports_root): print_error("Error: found {} mismatches between reported licenses and registered licenses".format(len(mismatched_licenses))) for mismatched_license in mismatched_licenses: print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}, registered_license: {}".format(mismatched_license[0], mismatched_license[1], mismatched_license[2], mismatched_license[3], mismatched_license[4])) - sys.exit(1) + print_error("") + + # Let's find missing licenses, which are reported but missing in the registry. + for key, reported_license in reported_dep_to_licenses.items(): + if key not in registered_dep_to_licenses: + print_error("reported key: {}".format(key)) + missing_licenses.append((key[0], key[1], key[2], reported_license)) + + if len(missing_licenses) > 0: + print_error("Error: found {} missing licenses. These licenses are reported, but missing in the registry".format(len(missing_licenses))) + for missing_license in missing_licenses: + print_error("groupId: {}, artifactId: {}, version: {}, license: {}".format(missing_license[0], missing_license[1], missing_license[2], missing_license[3])) + print_error("") # Let's find unchecked licenses, which are registered but missing in the report. # These licenses should be checked manually. for key, registered_license in registered_dep_to_licenses.items(): if key not in reported_dep_to_licenses: + print_error("registered key: {}".format(key)) unchecked_licenses.append((key[0], key[1], key[2], registered_license)) elif reported_dep_to_licenses[key] == "-": + print_error("registered key: {} with - license".format(key)) unchecked_licenses.append((key[0], key[1], key[2], registered_license)) if len(unchecked_licenses) > 0: @@ -439,6 +462,8 @@ def check_licenses(license_yaml, dependency_reports_root): print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}".format(unchecked_license[0], unchecked_license[1], unchecked_license[2], unchecked_license[3])) print_error("") + if len(mismatched_licenses) > 0 or len(missing_licenses) > 0: + sys.exit(1) def print_license_name_underbar(license_name): underbar = "" diff --git a/license.yaml b/license.yaml index 19e5d930ff0c..ebf9643e8f8c 100644 --- a/license.yaml +++ b/license.yaml @@ -332,7 +332,7 @@ module: java-core license_name: Apache License version 2.0 version: 1.2 libraries: - - commons-beanutils: commons-cli + - commons-cli: commons-cli --- @@ -2824,4 +2824,4 @@ module: hadoop-client license_name: Public Domain version: 1.0 libraries: - - org.tukaani: xz \ No newline at end of file + - org.tukaani: xz From ec40876fc3ab4e39e3ee1b0de28ef85835ad9565 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 30 Jun 2019 08:53:04 -0700 Subject: [PATCH 06/46] print druid module name --- docs/_bin/generate-license.py | 41 ++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 75c8bcbc29cd..23557180574a 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -41,10 +41,12 @@ class DependencyReportParser(HTMLParser): dep_to_license = None compatible_license_names = None include_classifier = False + druid_module_name = None - def __init__(self, compatible_license_names): + def __init__(self, druid_module_name, compatible_license_names): HTMLParser.__init__(self) self.state = "none" + self.druid_module_name = druid_module_name self.compatible_license_names = compatible_license_names def parse(self, f): @@ -151,7 +153,7 @@ def handle_endtag(self, tag): self.state = "row_end" # print(json.dumps({"groupId": self.group_id, "artifactId": self.artifact_id, "version": self.version, "classifier": self.classifier, "type": self.dep_type, "license": self.license})) if self.group_id.find("org.apache.druid") < 0: - self.dep_to_license[get_dep_key(self.group_id, self.artifact_id, self.version)] = self.license + self.dep_to_license[get_dep_key(self.group_id, self.artifact_id, self.version)] = (self.license, self.druid_module_name) if self.state == "row_end": if tag == "table": @@ -374,6 +376,21 @@ def print_license(license): print(" * {}:{}".format(group_id, artifact_id)) +def find_druid_module_name(dirpath): + ext_start = dirpath.find("/ext/") + if ext_start > 0: + # Found an extension + subpath = dirpath[(len("/ext/") + ext_start):] + ext_name_end = subpath.find("/") + if ext_name_end < 0: + raise Exception("Can't determine extension name from [{}]".format(dirpath)) + else: + return subpath[0:ext_name_end] + else: + # Druid core + return "core" + + def check_licenses(license_yaml, dependency_reports_root): # Build a dictionary to facilitate comparing reported licenses and registered ones. # These dictionaries are the mapping of (group_id, artifact_id, version) to license_name. @@ -385,9 +402,11 @@ def check_licenses(license_yaml, dependency_reports_root): for filename in filenames: if filename == "dependencies.html": full_path = os.path.join(dirpath, filename) + # Determine if it's druid core or an extension + druid_module_name = find_druid_module_name(dirpath) print_error("Parsing {}".format(full_path)) with open(full_path) as report_file: - parser = DependencyReportParser(compatible_license_names) + parser = DependencyReportParser(druid_module_name, compatible_license_names) reported_dep_to_licenses.update(parser.parse(report_file)) print_error("Found {} reported licenses\n".format(len(reported_dep_to_licenses))) @@ -419,30 +438,32 @@ def check_licenses(license_yaml, dependency_reports_root): # Iterate through registered licenses and check if its license is same with the reported one. for key, registered_license in registered_dep_to_licenses.items(): if key in reported_dep_to_licenses: # key is (group_id, artifact_id, version) - reported_license = reported_dep_to_licenses[key] + reported_license_druid_module = reported_dep_to_licenses[key] + reported_license = reported_license_druid_module[0] + druid_module = reported_license_druid_module[1] if reported_license is not None and reported_license != "-" and reported_license != registered_license: group_id = key[0] artifact_id = key[1] version = key[2] - mismatched_licenses.append((group_id, artifact_id, version, reported_license, registered_license)) + mismatched_licenses.append((druid_module, group_id, artifact_id, version, reported_license, registered_license)) # If we find any mismatched license, stop immediately. if len(mismatched_licenses) > 0: print_error("Error: found {} mismatches between reported licenses and registered licenses".format(len(mismatched_licenses))) for mismatched_license in mismatched_licenses: - print_error("groupId: {}, artifactId: {}, version: {}, reported_license: {}, registered_license: {}".format(mismatched_license[0], mismatched_license[1], mismatched_license[2], mismatched_license[3], mismatched_license[4])) + print_error("druid_module: {}, groupId: {}, artifactId: {}, version: {}, reported_license: {}, registered_license: {}".format(mismatched_license[0], mismatched_license[1], mismatched_license[2], mismatched_license[3], mismatched_license[4], mismatched_license[5])) print_error("") # Let's find missing licenses, which are reported but missing in the registry. - for key, reported_license in reported_dep_to_licenses.items(): + for key, reported_license_druid_module in reported_dep_to_licenses.items(): if key not in registered_dep_to_licenses: print_error("reported key: {}".format(key)) - missing_licenses.append((key[0], key[1], key[2], reported_license)) + missing_licenses.append((reported_license_druid_module[1], key[0], key[1], key[2], reported_license_druid_module[0])) if len(missing_licenses) > 0: print_error("Error: found {} missing licenses. These licenses are reported, but missing in the registry".format(len(missing_licenses))) for missing_license in missing_licenses: - print_error("groupId: {}, artifactId: {}, version: {}, license: {}".format(missing_license[0], missing_license[1], missing_license[2], missing_license[3])) + print_error("druid_module: {}, groupId: {}, artifactId: {}, version: {}, license: {}".format(missing_license[0], missing_license[1], missing_license[2], missing_license[3], missing_license[4])) print_error("") # Let's find unchecked licenses, which are registered but missing in the report. @@ -451,7 +472,7 @@ def check_licenses(license_yaml, dependency_reports_root): if key not in reported_dep_to_licenses: print_error("registered key: {}".format(key)) unchecked_licenses.append((key[0], key[1], key[2], registered_license)) - elif reported_dep_to_licenses[key] == "-": + elif reported_dep_to_licenses[key][0] == "-": print_error("registered key: {} with - license".format(key)) unchecked_licenses.append((key[0], key[1], key[2], registered_license)) From e831d37eed0a92d9ee7dff2d4257152416efdf9c Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 30 Jun 2019 18:43:43 -0700 Subject: [PATCH 07/46] Add missing licenses and update versions --- docs/_bin/generate-license.py | 17 +- license.yaml | 204 ++++++++++-- licenses/bin/jersey-json.CDDL11 | 550 ++++++++++++++++++++++++++++++++ licenses/bin/old-jaxb.CDDL11 | 362 +++++++++++++++++++++ 4 files changed, 1100 insertions(+), 33 deletions(-) create mode 100644 licenses/bin/jersey-json.CDDL11 create mode 100644 licenses/bin/old-jaxb.CDDL11 diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 23557180574a..2a52a86a10fb 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -413,11 +413,10 @@ def check_licenses(license_yaml, dependency_reports_root): # Build registered license dictionary. registered_dep_to_licenses = {} + skipping_licenses = {} with open(license_yaml) as registry_file: licenses_list = list(yaml.load_all(registry_file)) for license in licenses_list: - if 'skip_dependency_report_check' in license and license['skip_dependency_report_check']: - continue if 'libraries' in license: for library in license['libraries']: if type(library) is not dict: @@ -429,7 +428,14 @@ def check_licenses(license_yaml, dependency_reports_root): raise Exception("version is missing in {}".format(license)) if 'license_name' not in license: raise Exception("name is missing in {}".format(license)) - registered_dep_to_licenses[get_dep_key(group_id, artifact_id, get_version_string(license['version']))] = compatible_license_names[license['license_name']] + if 'skip_dependency_report_check' in license and license['skip_dependency_report_check']: + if 'version' not in license: + version = "-" + else: + version = get_version_string(license['version']) + skipping_licenses[get_dep_key(group_id, artifact_id, version)] = license + else: + registered_dep_to_licenses[get_dep_key(group_id, artifact_id, get_version_string(license['version']))] = compatible_license_names[license['license_name']] # Compare licenses in registry and those in dependency reports. mismatched_licenses = [] @@ -456,8 +462,7 @@ def check_licenses(license_yaml, dependency_reports_root): # Let's find missing licenses, which are reported but missing in the registry. for key, reported_license_druid_module in reported_dep_to_licenses.items(): - if key not in registered_dep_to_licenses: - print_error("reported key: {}".format(key)) + if reported_license_druid_module[0] != "-" and key not in registered_dep_to_licenses and key not in skipping_licenses: missing_licenses.append((reported_license_druid_module[1], key[0], key[1], key[2], reported_license_druid_module[0])) if len(missing_licenses) > 0: @@ -470,10 +475,8 @@ def check_licenses(license_yaml, dependency_reports_root): # These licenses should be checked manually. for key, registered_license in registered_dep_to_licenses.items(): if key not in reported_dep_to_licenses: - print_error("registered key: {}".format(key)) unchecked_licenses.append((key[0], key[1], key[2], registered_license)) elif reported_dep_to_licenses[key][0] == "-": - print_error("registered key: {} with - license".format(key)) unchecked_licenses.append((key[0], key[1], key[2], registered_license)) if len(unchecked_licenses) > 0: diff --git a/license.yaml b/license.yaml index ebf9643e8f8c..96ad11e9f109 100644 --- a/license.yaml +++ b/license.yaml @@ -544,7 +544,7 @@ module: java-core license_name: Apache License version 2.0 version: 1 libraries: - - javax.inject.javax: inject + - javax.inject: javax.inject --- @@ -645,9 +645,9 @@ module: java-core license_name: Apache License version 2.0 version: 1.10.0 libraries: - - org.apache.calcite: avatica.avatica-core - - org.apache.calcite: avatica.avatica-metrics - - org.apache.calcite: avatica.avatica-server + - org.apache.calcite.avatica: avatica-core + - org.apache.calcite.avatica: avatica-metrics + - org.apache.calcite.avatica: avatica-server --- @@ -830,7 +830,7 @@ name: JVM Attach API license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.2 +version: 1.5 libraries: - org.gridkit.lab: jvm-attach-api @@ -910,7 +910,7 @@ name: RoaringBitmap license_category: binary module: java-core license_name: Apache License version 2.0 -version: 0.7.36 +version: 0.8.0 libraries: - org.roaringbitmap: RoaringBitmap - org.roaringbitmap: shims @@ -1313,7 +1313,7 @@ name: Objenesis license_category: binary module: extensions/druid-avro-extensions license_name: Apache License version 2.0 -version: 2.6 +version: 2.4 libraries: - org.objenesis: objenesis @@ -1345,7 +1345,16 @@ module: extensions/druid-datasketches license_name: Apache License version 2.0 version: 0.13.3 libraries: - - com.yahoo.datasketches: datasketches-core + - com.yahoo.datasketches: sketches-core + +--- + +name: DataSketches +license_category: binary +module: extensions/druid-datasketches +license_name: Apache License version 2.0 +version: 0.12.2 +libraries: - com.yahoo.datasketches: memory --- @@ -1444,7 +1453,7 @@ libraries: --- name: Apache Kafka -version: 0.10.2.2 +version: 2.1.0 license_category: binary module: extensions/druid-kafka-indexing-service license_name: Apache License version 2.0 @@ -1493,6 +1502,63 @@ libraries: --- +name: Jackson +license_category: binary +module: extensions/druid-kerberos +license_name: Apache License version 2.0 +version: 1.9.2 +libraries: + - org.codehaus.jackson: jackson-jaxrs + - org.codehaus.jackson: jackson-xc + +--- + +name: Objenesis +license_category: binary +module: extensions/druid-kerberos +license_name: Apache License version 2.0 +version: 3.0.1 +libraries: + - org.objenesis: objenesis + +--- + +name: xmlenc +license_category: binary +module: extensions/druid-kerberos +license_name: BSD-3-Clause License +version: 0.52 +copyright: Ernst de Haan +license_file_path: licenses/bin/xmlenc.BSD3 +libraries: + - xmlenc: xmlenc + +--- + +name: Jersey JSON +license_category: binary +module: extensions/druid-kerberos +license_name: CDDL 1.1 +version: 1.19.3 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/jersey-json.CDDL11 +libraries: + - com.sun.jersey: jersey-json + +--- + +name: Old JAXB Runtime +license_category: binary +module: extensions/druid-kerberos +license_name: CDDL 1.1 +version: 2.2.3-1 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/old-jaxb.CDDL11 +libraries: + - com.sun.xml.bind: jaxb-impl + +--- + name: AWS SDK for Java license_category: binary module: extensions/druid-kinesis-indexing-service @@ -1651,7 +1717,7 @@ name: SLF4J API license_category: binary module: java-core license_name: MIT License -version: 1.6.4 +version: 1.7.25 copyright: QOS.ch license_file_path: licenses/bin/slf4j.MIT libraries: @@ -2335,13 +2401,14 @@ name: ASM license_category: binary module: java-core license_name: BSD-3-Clause License -version: 5.2 +version: 7.1 copyright: INRIA, France Telecom license_file_path: licenses/bin/asm.BSD3 libraries: - org.ow2.asm: asm - org.ow2.asm: asm-commons - org.ow2.asm: asm-tree + - org.ow2.asm: asm-analysis --- @@ -2394,18 +2461,6 @@ libraries: --- -name: xmlenc -license_category: binary -module: hadoop-client -license_name: BSD-3-Clause License -version: 0.5.2 -copyright: Ernst de Haan -license_file_path: licenses/bin/xmlenc.BSD3 -libraries: - - xmlenc: xmlenc - ---- - name: Paranamer license_category: binary module: extensions/druid-avro-extensions @@ -2422,7 +2477,7 @@ name: JSch - Java Secure Channel license_category: binary module: extensions/druid-kerberos license_name: BSD-3-Clause License -version: 0.1.52 +version: 0.1.54 copyright: Atsuhiko Yamanaka, JCraft,Inc. license_file_path: licenses/bin/jsch.BSD3 libraries: @@ -2482,10 +2537,11 @@ name: Protocol Buffers license_category: binary module: extensions/druid-protobuf-extensions license_name: BSD-3-Clause License -version: 3.1.0 +version: 3.2.0 copyright: Google, Inc. license_file_path: licenses/bin/protobuf-java.BSD3 libraries: + - com.google.protobuf: protobuf-java - com.google.protobuf: protobuf-java-util --- @@ -2577,6 +2633,7 @@ libraries: - com.sun.jersey: jersey-server - com.sun.jersey: jersey-servlet - com.sun.jersey: contribs + - com.sun.jersey.contribs: jersey-guice --- @@ -2677,6 +2734,18 @@ libraries: --- +name: JAXB +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 2.3.0 +copyright: Oracle and/or its affiliates. +license_file_path: licenses/bin/javax.CDDL11 +libraries: + - javax.xml.bind: jaxb-api + +--- + name: stax-api license_category: binary module: hadoop-client @@ -2769,11 +2838,11 @@ name: \"Java Concurrency In Practice\" Book Annotations license_category: binary module: hadoop-client license_name: Creative Commons Attribution 2.5 +version: 1.0 copyright: Brian Goetz and Tim Peierls license_file_path: licenses/bin/creative-commons-2.5.LICENSE libraries: - net.jcip: jcip-annotations -skip_dependency_report_check: true --- @@ -2825,3 +2894,86 @@ license_name: Public Domain version: 1.0 libraries: - org.tukaani: xz + +--- + +name: Apache ORC libraries +license_category: binary +module: extensions/druid-orc-extensions +license_name: Apache License version 2.0 +version: 1.5.5 +libraries: + - org.apache.orc: orc-mapreduce + - org.apache.orc: orc-core + - org.apache.orc: orc-shims + +--- + +name: aircompressor +license_category: binary +module: extensions/druid-orc-extensions +license_name: Apache License version 2.0 +version: "0.10" +libraries: + - io.airlift: aircompressor + +--- + +name: Hive storage API +license_category: binary +module: extensions/druid-orc-extensions +license_name: Apache License version 2.0 +version: 2.6.0 +libraries: + - org.apache.hive: hive-storage-api + +--- + +name: Google Cloud Storage JSON API +license_category: binary +module: extensions/druid-google-extensions +license_name: Apache License version 2.0 +version: v1-rev79-1.22.0 +libraries: + - com.google.apis: google-api-services-storage + +--- + +name: "Jackson Module: Guice" +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 2.6.7 +libraries: + - com.fasterxml.jackson.module: jackson-module-guice + +--- + +name: Google APIs Client Library For Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.22.0 +libraries: + - com.google.api-client: google-api-client + +--- + +name: Google HTTP Client Library For Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.22.0 +libraries: + - com.google.http-client: google-http-client + - com.google.http-client: google-http-client-jackson2 + +--- + +name: Google OAuth Client Library For Java +license_category: binary +module: java-core +license_name: Apache License version 2.0 +version: 1.22.0 +libraries: + - com.google.oauth-client: google-oauth-client \ No newline at end of file diff --git a/licenses/bin/jersey-json.CDDL11 b/licenses/bin/jersey-json.CDDL11 new file mode 100644 index 000000000000..0f80240f7f98 --- /dev/null +++ b/licenses/bin/jersey-json.CDDL11 @@ -0,0 +1,550 @@ + + + jersey: Jersey Dual License Header and License Notice GPL v2 and CDDL 1.1 + + + + +

COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)Version 1.1

+ +

1. Definitions.

+
1.1. “Contributor” means each individual or entity that creates or contributes to the + creation of Modifications. +
+
1.2. “Contributor Version” means the combination of the Original Software, prior + Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor. +
+
1.3. “Covered Software” means (a) the Original Software, or (b) Modifications, or (c) + the combination of files containing Original Software with files containing Modifications, in each case + including portions thereof. +
+
1.4. “Executable” means the Covered Software in any form other than Source Code. +
+
1.5. “Initial Developer” means the individual or entity that first makes Original + Software available under this License. +
+
1.6. “Larger Work” means a work which combines Covered Software or portions thereof with + code not governed by the terms of this License. +
+
1.7. “License” means this document.
+
1.8. “Licensable” means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed + herein. +
+
1.9. “Modifications” means the Source Code and Executable form of any of the following: +
+
A. Any file that results from an addition to, deletion from or modification of the contents of a + file containing Original Software or previous Modifications; +
+
B. Any new file that contains any part of the Original Software or previous Modification; or +
+
C. Any new file that is contributed or otherwise made available under the terms of this License. +
+
1.10. “Original Software” means the Source Code and Executable form of computer software + code that is originally released under this License. +
+
1.11. “Patent Claims” means any patent claim(s), now owned or hereafter acquired, + including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor. +
+
1.12. “Source Code” means (a) the common form of computer software code in which + modifications are made and (b) associated documentation included in or with such code. +
+
1.13. “You” (or “Your”) means an individual or a legal entity exercising + rights under, and complying with all of the terms of, this License. For legal entities, “You” + includes any entity which controls, is controlled by, or is under common control with You. For purposes of + this definition, “control” means (a) the power, direct or indirect, to cause the direction or + management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent + (50%) of the outstanding shares or beneficial ownership of such entity. +
+

2. License Grants.

+
2.1. The Initial Developer Grant.
+
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual + property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license: +
+
(a) under intellectual property rights (other than patent or trademark) Licensable by Initial + Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or + portions thereof), with or without Modifications, and/or as part of a Larger Work; and +
+
(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, + have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or + portions thereof). +
+
(c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer + first distributes or otherwise makes the Original Software available to a third party under the terms of + this License. +
+
(d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete + from the Original Software, or (2) for infringements caused by: (i) the modification of the Original + Software, or (ii) the combination of the Original Software with other software or devices. +
+
2.2. Contributor Grant.
+
Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual + property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license: +
+
(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to + use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such + Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered + Software and/or as part of a Larger Work; and +
+
(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that + Contributor either alone and/or in combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications + made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that + Contributor with its Contributor Version (or portions of such combination). +
+
(c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first + distributes or otherwise makes the Modifications available to a third party. +
+
(d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that + Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party + modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with + other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims + infringed by Covered Software in the absence of Modifications made by that Contributor. +
+

3. Distribution Obligations.

+
3.1. Availability of Source Code.
+
Any Covered Software that You distribute or otherwise make available in Executable form must also be + made available in Source Code form and that Source Code form must be distributed only under the terms of + this License. You must include a copy of this License with every copy of the Source Code form of the Covered + Software You distribute or otherwise make available. You must inform recipients of any such Covered Software + in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable + manner on or through a medium customarily used for software exchange. +
+
3.2. Modifications.
+
The Modifications that You create or to which You contribute are governed by the terms of this + License. You represent that You believe Your Modifications are Your original creation(s) and/or You have + sufficient rights to grant the rights conveyed by this License. +
+
3.3. Required Notices.
+
You must include a notice in each of Your Modifications that identifies You as the Contributor of + the Modification. You may not remove or alter any copyright, patent or trademark notices contained within + the Covered Software, or any notices of licensing or any descriptive text giving attribution to any + Contributor or the Initial Developer. +
+
3.4. Application of Additional Terms.
+
You may not offer or impose any terms on any Covered Software in Source Code form that alters or + restricts the applicable version of this License or the recipients' rights hereunder. You may choose to + offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more + recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the + Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, + indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial + Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a + result of warranty, support, indemnity or liability terms You offer. +
+
3.5. Distribution of Executable Versions.
+
You may distribute the Executable form of the Covered Software under the terms of this License or + under the terms of a license of Your choice, which may contain terms different from this License, provided + that You are in compliance with the terms of this License and that the license for the Executable form does + not attempt to limit or alter the recipient's rights in the Source Code form from the rights set forth in + this License. If You distribute the Covered Software in Executable form under a different license, You must + make it absolutely clear that any terms which differ from this License are offered by You alone, not by the + Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor + for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You + offer. +
+
3.6. Larger Works.
+
You may create a Larger Work by combining Covered Software with other code not governed by the terms + of this License and distribute the Larger Work as a single product. In such a case, You must make sure the + requirements of this License are fulfilled for the Covered Software. +
+

4. Versions of the License.

+
4.1. New Versions.
+
Oracle is the initial license steward and may publish revised and/or new versions of this License + from time to time. Each version will be given a distinguishing version number. Except as provided in Section + 4.3, no one other than the license steward has the right to modify this License. +
+
4.2. Effect of New Versions.
+
You may always continue to use, distribute or otherwise make the Covered Software available under + the terms of the version of the License under which You originally received the Covered Software. If the + Initial Developer includes a notice in the Original Software prohibiting it from being distributed or + otherwise made available under any subsequent version of the License, You must distribute and make the + Covered Software available under the terms of the version of the License under which You originally received + the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered + Software available under the terms of any subsequent version of the License published by the license + steward. +
+
4.3. Modified Versions.
+
When You are an Initial Developer and You want to create a new license for Your Original Software, + You may create and use a modified version of this License if You: (a) rename the license and remove any + references to the name of the license steward (except to note that the license differs from this License); + and (b) otherwise make it clear that the license contains terms which differ from this License. +
+

5. DISCLAIMER OF WARRANTY.

+
+

COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN “AS IS” BASIS, WITHOUT WARRANTY OF ANY + KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE + IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO + THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF + ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART + OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS + DISCLAIMER.

+
+

6. TERMINATION.

+
6.1. This License and the rights granted hereunder will terminate automatically if You fail to + comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. + Provisions which, by their nature, must remain in effect beyond the termination of this License shall + survive. +
+
6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against + Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim + is referred to as “Participant”) alleging that the Participant Software (meaning the Contributor + Version where the Participant is a Contributor or the Original Software where the Participant is the Initial + Developer) directly or indirectly infringes any patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the + Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice + from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, + unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against + such Participant either unilaterally or pursuant to a written agreement with Participant. +
+
6.3. If You assert a patent infringement claim against Participant alleging that the Participant + Software directly or indirectly infringes any patent where such claim is resolved (such as by license or + settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the + licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining + the amount or value of any payment or license. +
+
6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have + been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to + You by any distributor) shall survive termination. +
+

7. LIMITATION OF LIABILITY.

+
+

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR + OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED + SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF + GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION + OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S + NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE + EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT + APPLY TO YOU.

+
+

8. U.S. GOVERNMENT END USERS.

+
+

The Covered Software is a “commercial item,” as that term is defined in 48 C.F.R. 2.101 (Oct. + 1995), consisting of “commercial computer software” (as that term is defined at 48 + C.F.R. § 252.227-7014(a)(1)) and “commercial computer software documentation” as such + terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. + 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with + only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, + any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software + under this License.

+
+

9. MISCELLANEOUS.

+
+

This License represents the complete agreement concerning subject matter hereof. If any provision of this + License is held to be unenforceable, such provision shall be reformed only to the extent necessary to + make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice + contained within the Original Software (except to the extent applicable law, if any, provides + otherwise), excluding such jurisdiction's conflict-of-law provisions. Any litigation relating to this + License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue + specified in a notice contained within the Original Software, with the losing party responsible for + costs, including, without limitation, court costs and reasonable attorneys' fees and expenses. The + application of the United Nations Convention on Contracts for the International Sale of Goods is + expressly excluded. Any law or regulation which provides that the language of a contract shall be + construed against the drafter shall not apply to this License. You agree that You alone are responsible + for compliance with the United States export administration regulations (and the export control laws and + regulation of any other countries) when You use, distribute or otherwise make available any Covered + Software.

+
+

10. RESPONSIBILITY FOR CLAIMS.

+
+

As between Initial Developer and the Contributors, each party is responsible for claims and damages + arising, directly or indirectly, out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. + Nothing herein is intended or shall be deemed to constitute any admission of liability.

+
+
+

NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)

+ +

The code released under the CDDL shall be governed by the laws of the State of California (excluding + conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of + the Federal Courts of the Northern District of California and the state courts of the State of California, + with venue lying in Santa Clara County, California.

+ +


+
+

+ +

The GNU General Public License (GPL) Version 2, June 1991

+ +

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

+ +

Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.

+ +

Preamble

+ +

The licenses for most software are designed to take away your freedom to share and change it. By contrast, + the GNU General Public License is intended to guarantee your freedom to share and change free software--to + make sure the software is free for all its users. This General Public License applies to most of the Free + Software Foundation's software and to any other program whose authors commit to using it. (Some other Free + Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it + to your programs, too.

+ +

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are + designed to make sure that you have the freedom to distribute copies of free software (and charge for this + service if you wish), that you receive source code or can get it if you want it, that you can change the + software or use pieces of it in new free programs; and that you know you can do these things.

+ +

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask + you to surrender the rights. These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it.

+ +

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the + recipients all the rights that you have. You must make sure that they, too, receive or can get the source + code. And you must show them these terms so they know their rights.

+ +

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives + you legal permission to copy, distribute and/or modify the software.

+ +

Also, for each author's protection and ours, we want to make certain that everyone understands that there is + no warranty for this free software. If the software is modified by someone else and passed on, we want its + recipients to know that what they have is not the original, so that any problems introduced by others will + not reflect on the original authors' reputations.

+ +

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that + redistributors of a free program will individually obtain patent licenses, in effect making the program + proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use + or not licensed at all.

+ +

The precise terms and conditions for copying, distribution and modification follow.

+ +

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+ +

0. This License applies to any program or other work which contains a notice placed by the + copyright holder saying it may be distributed under the terms of this General Public License. The "Program", + below, refers to any such program or work, and a "work based on the Program" means either the + Program or any derivative work under copyright law: that is to say, a work containing the Program or a + portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, + translation is included without limitation in the term "modification".) Each licensee is addressed + as "you".

+ +

Activities other than copying, distribution and modification are not covered by this License; they are + outside its scope. The act of running the Program is not restricted, and the output from the Program is + covered only if its contents constitute a work based on the Program (independent of having been made by + running the Program). Whether that is true depends on what the Program does.

+ +

1. You may copy and distribute verbatim copies of the Program's source code as you receive + it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to + the absence of any warranty; and give any other recipients of the Program a copy of this License along with + the Program.

+ +

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty + protection in exchange for a fee.

+ +

2. You may modify your copy or copies of the Program or any portion of it, thus forming a + work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions:

+
a) You must cause the modified files to carry prominent notices stating that you changed the files + and the date of any change. +
+
b) You must cause any work that you distribute or publish, that in whole or in part contains or is + derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties + under the terms of this License. +
+
c) If the modified program normally reads commands interactively when run, you must cause it, when + started running for such interactive use in the most ordinary way, to print or display an announcement + including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you + provide a warranty) and that users may redistribute the program under these conditions, and telling the user + how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally + print such an announcement, your work based on the Program is not required to print an announcement.) +
+

These requirements apply to the modified work as a whole. If identifiable sections of that work are not + derived from the Program, and can be reasonably considered independent and separate works in themselves, + then this License, and its terms, do not apply to those sections when you distribute them as separate works. + But when you distribute the same sections as part of a whole which is a work based on the Program, the + distribution of the whole must be on the terms of this License, whose permissions for other licensees extend + to the entire whole, and thus to each and every part regardless of who wrote it.

+ +

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by + you; rather, the intent is to exercise the right to control the distribution of derivative or collective + works based on the Program.

+ +

In addition, mere aggregation of another work not based on the Program with the Program (or with a work based + on the Program) on a volume of a storage or distribution medium does not bring the other work under the + scope of this License.

+ +

3. You may copy and distribute the Program (or a work based on it, under Section 2) in + object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of + the following:

+
a) Accompany it with the complete corresponding machine-readable source code, which must be + distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; + or, +
+
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a + charge no more than your cost of physically performing source distribution, a complete machine-readable copy + of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, +
+
c) Accompany it with the information you received as to the offer to distribute corresponding source + code. (This alternative is allowed only for noncommercial distribution and only if you received the program + in object code or executable form with such an offer, in accord with Subsection b above.) +
+

The source code for a work means the preferred form of the work for making modifications to it. For an + executable work, complete source code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to control compilation and installation of the + executable. However, as a special exception, the source code distributed need not include anything that is + normally distributed (in either source or binary form) with the major components (compiler, kernel, and so + on) of the operating system on which the executable runs, unless that component itself accompanies the + executable.

+ +

If distribution of executable or object code is made by offering access to copy from a designated place, then + offering equivalent access to copy the source code from the same place counts as distribution of the source + code, even though third parties are not compelled to copy the source along with the object code.

+ +

4. You may not copy, modify, sublicense, or distribute the Program except as expressly + provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. However, parties who have received + copies, or rights, from you under this License will not have their licenses terminated so long as such + parties remain in full compliance.

+ +

5. You are not required to accept this License, since you have not signed it. However, + nothing else grants you permission to modify or distribute the Program or its derivative works. These + actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the + Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all + its terms and conditions for copying, distributing or modifying the Program or works based on it.

+ +

6. Each time you redistribute the Program (or any work based on the Program), the recipient + automatically receives a license from the original licensor to copy, distribute or modify the Program + subject to these terms and conditions. You may not impose any further restrictions on the recipients' + exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to + this License.

+ +

7. If, as a consequence of a court judgment or allegation of patent infringement or for any + other reason (not limited to patent issues), conditions are imposed on you (whether by court order, + agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the + conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under + this License and any other pertinent obligations, then as a consequence you may not distribute the Program + at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all + those who receive copies directly or indirectly through you, then the only way you could satisfy both it and + this License would be to refrain entirely from distribution of the Program.

+ +

If any portion of this section is held invalid or unenforceable under any particular circumstance, the + balance of the section is intended to apply and the section as a whole is intended to apply in other + circumstances.

+ +

It is not the purpose of this section to induce you to infringe any patents or other property right claims or + to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the + free software distribution system, which is implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed through that system in reliance on + consistent application of that system; it is up to the author/donor to decide if he or she is willing to + distribute software through any other system and a licensee cannot impose that choice.

+ +

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this + License.

+ +

8. If the distribution and/or use of the Program is restricted in certain countries either + by patents or by copyrighted interfaces, the original copyright holder who places the Program under this + License may add an explicit geographical distribution limitation excluding those countries, so that + distribution is permitted only in or among countries not thus excluded. In such case, this License + incorporates the limitation as if written in the body of this License.

+ +

9. The Free Software Foundation may publish revised and/or new versions of the General + Public License from time to time. Such new versions will be similar in spirit to the present version, but + may differ in detail to address new problems or concerns.

+ +

Each version is given a distinguishing version number. If the Program specifies a version number of this + License which applies to it and "any later version", you have the option of following the terms + and conditions either of that version or of any later version published by the Free Software Foundation. If + the Program does not specify a version number of this License, you may choose any version ever published by + the Free Software Foundation.

+ +

10. If you wish to incorporate parts of the Program into other free programs whose + distribution conditions are different, write to the author to ask for permission. For software which is + copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make + exceptions for this. Our decision will be guided by the two goals of preserving the free status of all + derivatives of our free software and of promoting the sharing and reuse of software generally.

+ +

NO WARRANTY

+ +

11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO + THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR + IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

+ +

12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT + HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO + YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE + OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE + OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), + EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

+ +

END OF TERMS AND CONDITIONS

+ +

How to Apply These Terms to Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way + to achieve this is to make it free software which everyone can redistribute and change under these + terms.

+ +

To do so, attach the following notices to the program. It is safest to attach them to the start of each + source file to most effectively convey the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found.

+
One line to give the program's name and a brief idea of what it does.
+ Copyright (C) <year> <name of author>
+
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 2 of the License, or (at + your option) any later version. +
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. +
+
You should have received a copy of the GNU General Public License along with this program; if not, + write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +
+

Also add information on how to contact you by electronic and paper mail.

+ +

If the program is interactive, make it output a short notice like this when it starts in an interactive + mode:

+
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO + WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under + certain conditions; type `show c' for details. +
+

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public + License. Of course, the commands you use may be called something other than `show w' and `show c'; they + could even be mouse-clicks or menu items--whatever suits your program.

+ +

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright + disclaimer" for the program, if necessary. Here is a sample; alter the names:

+
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes + passes at compilers) written by James Hacker. +
+
signature of Ty Coon, 1 April 1989
+ Ty Coon, President of Vice +
+

This General Public License does not permit incorporating your program into proprietary programs. If your + program is a subroutine library, you may consider it more useful to permit linking proprietary applications + with the library. If this is what you want to do, use the GNU Library General Public License instead of this + License.

+
  • +

    "CLASSPATH" EXCEPTION TO THE GPL VERSION 2
    +
    + Certain source files distributed by Oracle are subject to the following clarification and special + exception to the GPL Version 2, but only where Oracle has expressly included in the particular source + file's header the words "Oracle designates this particular file as subject to the "Classpath" + exception as provided by Oracle in the License file that accompanied this code."
    +
    + Linking this library statically or dynamically with other modules is making a combined work based on + this library.  Thus, the terms and conditions of the GNU General Public License Version 2 cover the + whole combination.
    +
    + As a special exception, the copyright holders of this library give you permission to link this library + with independent modules to produce an executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under terms of your choice, provided that + you also meet, for each linked independent module, the terms and conditions of the license of that + module.  An independent module is a module which is not derived from or based on this library.  + If you modify this library, you may extend this exception to your version of the library, but you are + not obligated to do so.  If you do not wish to do so, delete this exception statement from your + version.

    +
  • + + + + diff --git a/licenses/bin/old-jaxb.CDDL11 b/licenses/bin/old-jaxb.CDDL11 new file mode 100644 index 000000000000..4a00ba94825a --- /dev/null +++ b/licenses/bin/old-jaxb.CDDL11 @@ -0,0 +1,362 @@ +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1 + +1. Definitions. + + 1.1. "Contributor" means each individual or entity that creates or + contributes to the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Software, prior Modifications used by a Contributor (if any), and + the Modifications made by that particular Contributor. + + 1.3. "Covered Software" means (a) the Original Software, or (b) + Modifications, or (c) the combination of files containing Original + Software with files containing Modifications, in each case including + portions thereof. + + 1.4. "Executable" means the Covered Software in any form other than + Source Code. + + 1.5. "Initial Developer" means the individual or entity that first + makes Original Software available under this License. + + 1.6. "Larger Work" means a work which combines Covered Software or + portions thereof with code not governed by the terms of this License. + + 1.7. "License" means this document. + + 1.8. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means the Source Code and Executable form of + any of the following: + + A. Any file that results from an addition to, deletion from or + modification of the contents of a file containing Original Software + or previous Modifications; + + B. Any new file that contains any part of the Original Software or + previous Modification; or + + C. Any new file that is contributed or otherwise made available + under the terms of this License. + + 1.10. "Original Software" means the Source Code and Executable form + of computer software code that is originally released under this + License. + + 1.11. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.12. "Source Code" means (a) the common form of computer software + code in which modifications are made and (b) associated + documentation included in or with such code. + + 1.13. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, + this License. For legal entities, "You" includes any entity which + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, the Initial Developer + hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer, to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Software (or portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using or selling of + Original Software, to make, have made, use, practice, sell, and + offer for sale, and/or otherwise dispose of the Original Software + (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are effective on + the date Initial Developer first distributes or otherwise makes the + Original Software available to a third party under the terms of this + License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: (1) for code that You delete from the Original Software, or + (2) for infringements caused by: (i) the modification of the + Original Software, or (ii) the combination of the Original Software + with other software or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, each Contributor hereby + grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as Covered Software + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or selling + of Modifications made by that Contributor either alone and/or in + combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, and/or + otherwise dispose of: (1) Modifications made by that Contributor (or + portions thereof); and (2) the combination of Modifications made by + that Contributor with its Contributor Version (or portions of such + combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective + on the date Contributor first distributes or otherwise makes the + Modifications available to a third party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: (1) for any code that Contributor has deleted from the + Contributor Version; (2) for infringements caused by: (i) third + party modifications of Contributor Version, or (ii) the combination + of Modifications made by that Contributor with other software + (except as part of the Contributor Version) or other devices; or (3) + under Patent Claims infringed by Covered Software in the absence of + Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make available + in Executable form must also be made available in Source Code form + and that Source Code form must be distributed only under the terms + of this License. You must include a copy of this License with every + copy of the Source Code form of the Covered Software You distribute + or otherwise make available. You must inform recipients of any such + Covered Software in Executable form as to how they can obtain such + Covered Software in Source Code form in a reasonable manner on or + through a medium customarily used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are + governed by the terms of this License. You represent that You + believe Your Modifications are Your original creation(s) and/or You + have sufficient rights to grant the rights conveyed by this License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that + identifies You as the Contributor of the Modification. You may not + remove or alter any copyright, patent or trademark notices contained + within the Covered Software, or any notices of licensing or any + descriptive text giving attribution to any Contributor or the + Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in + Source Code form that alters or restricts the applicable version of + this License or the recipients' rights hereunder. You may choose to + offer, and to charge a fee for, warranty, support, indemnity or + liability obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on behalf of + the Initial Developer or any Contributor. You must make it + absolutely clear that any such warranty, support, indemnity or + liability obligation is offered by You alone, and You hereby agree + to indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as a + result of warranty, support, indemnity or liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software under + the terms of this License or under the terms of a license of Your + choice, which may contain terms different from this License, + provided that You are in compliance with the terms of this License + and that the license for the Executable form does not attempt to + limit or alter the recipient's rights in the Source Code form from + the rights set forth in this License. If You distribute the Covered + Software in Executable form under a different license, You must make + it absolutely clear that any terms which differ from this License + are offered by You alone, not by the Initial Developer or + Contributor. You hereby agree to indemnify the Initial Developer and + every Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with + other code not governed by the terms of this License and distribute + the Larger Work as a single product. In such a case, You must make + sure the requirements of this License are fulfilled for the Covered + Software. + +4. Versions of the License. + + 4.1. New Versions. + + Oracle is the initial license steward and may publish revised and/or + new versions of this License from time to time. Each version will be + given a distinguishing version number. Except as provided in Section + 4.3, no one other than the license steward has the right to modify + this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the + Covered Software available under the terms of the version of the + License under which You originally received the Covered Software. If + the Initial Developer includes a notice in the Original Software + prohibiting it from being distributed or otherwise made available + under any subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the version + of the License under which You originally received the Covered + Software. Otherwise, You may also choose to use, distribute or + otherwise make the Covered Software available under the terms of any + subsequent version of the License published by the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new + license for Your Original Software, You may create and use a + modified version of this License if You: (a) rename the license and + remove any references to the name of the license steward (except to + note that the license differs from this License); and (b) otherwise + make it clear that the license contains terms which differ from this + License. + +5. DISCLAIMER OF WARRANTY. + + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE + IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF + THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + Provisions which, by their nature, must remain in effect beyond the + termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or a + Contributor (the Initial Developer or Contributor against whom You + assert such claim is referred to as "Participant") alleging that the + Participant Software (meaning the Contributor Version where the + Participant is a Contributor or the Original Software where the + Participant is the Initial Developer) directly or indirectly + infringes any patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial Developer (if the + Initial Developer is not the Participant) and all Contributors under + Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice + from Participant terminate prospectively and automatically at the + expiration of such 60 day notice period, unless if within such 60 + day period You withdraw Your claim with respect to the Participant + Software against such Participant either unilaterally or pursuant to + a written agreement with Participant. + + 6.3. If You assert a patent infringement claim against Participant + alleging that the Participant Software directly or indirectly + infringes any patent where such claim is resolved (such as by + license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 6.4. In the event of termination under Sections 6.1 or 6.2 above, + all end user licenses that have been validly granted by You or any + distributor hereunder prior to termination (excluding licenses + granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE + TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE + POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT + APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH + PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH + LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION + AND LIMITATION MAY NOT APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + + The Covered Software is a "commercial item," as that term is defined + in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" (as that term is defined at 48 C.F.R. § + 252.227-7014(a)(1)) and "commercial computer software documentation" + as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent + with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 + (June 1995), all U.S. Government End Users acquire Covered Software + with only those rights set forth herein. This U.S. Government Rights + clause is in lieu of, and supersedes, any other FAR, DFAR, or other + clause or provision that addresses Government rights in computer + software under this License. + +9. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + the law of the jurisdiction specified in a notice contained within + the Original Software (except to the extent applicable law, if any, + provides otherwise), excluding such jurisdiction's conflict-of-law + provisions. Any litigation relating to this License shall be subject + to the jurisdiction of the courts located in the jurisdiction and + venue specified in a notice contained within the Original Software, + with the losing party responsible for costs, including, without + limitation, court costs and reasonable attorneys' fees and expenses. + The application of the United Nations Convention on Contracts for + the International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall be + construed against the drafter shall not apply to this License. You + agree that You alone are responsible for compliance with the United + States export administration regulations (and the export control + laws and regulation of any other countries) when You use, distribute + or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +------------------------------------------------------------------------ + +NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION +LICENSE (CDDL) + +The code released under the CDDL shall be governed by the laws of the +State of California (excluding conflict-of-law provisions). Any +litigation relating to this License shall be subject to the jurisdiction +of the Federal Courts of the Northern District of California and the +state courts of the State of California, with venue lying in Santa Clara +County, California. From d984ec9cae9fe2647506b321be4a90604be555cf Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 30 Jun 2019 22:03:12 -0700 Subject: [PATCH 08/46] fix library versions and add missing ones. also fix pom.xml --- distribution/pom.xml | 30 ++ docs/_bin/generate-license.py | 44 +-- license.yaml => licenses.yaml | 59 +++- licenses/bin/javax.activation-api.CDDL11 | 362 +++++++++++++++++++++++ licenses/bin/javax.annotation-api.CDDL11 | 362 +++++++++++++++++++++++ 5 files changed, 828 insertions(+), 29 deletions(-) rename license.yaml => licenses.yaml (98%) create mode 100644 licenses/bin/javax.activation-api.CDDL11 create mode 100644 licenses/bin/javax.annotation-api.CDDL11 diff --git a/distribution/pom.xml b/distribution/pom.xml index 3f2ae8bd708b..8a1c71d5700e 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -130,6 +130,36 @@ + + generate-dependency-reports + initialize + + exec + + + ${project.parent.basedir}/docs/_bin/generate-license-dependency-reports.py + + ${project.basedir}/../ + ${project.basedir}/target + + + + + verify-and-generate-license + initialize + + exec + + + ${project.parent.basedir}/docs/_bin/generate-license.py + + ${project.basedir}/../licenses/APACHE2 + ${project.basedir}/../licenses.yaml + ${project.basedir}/target/license-reports + ${project.basedir}/../LICENSE.BINARY + + + pull-deps package diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 2a52a86a10fb..fa7474e4934e 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -207,6 +207,8 @@ def set_license(self, data): self.license = self.compatible_license_names[data] +outfile = None + def get_dep_key(group_id, artifact_id, version): return (group_id, artifact_id, version) @@ -280,8 +282,12 @@ def module_to_upper(module): raise Exception("Expected extensions at 0, but {}".format(extensions_offset)) -def print_error(str): - print(str, file=sys.stderr) +def print_outfile(string): + print(string, file=outfile) + + +def print_error(string): + print(string, file=sys.stderr) def get_version_string(version): @@ -301,10 +307,10 @@ def print_license_phrase(license_phrase): phrase_len = chars_of_200.rfind(" ") if phrase_len < 0: raise Exception("Can't find whitespace in {}".format(chars_of_200)) - print(" {}".format(remaining[0:phrase_len])) + print_outfile(" {}".format(remaining[0:phrase_len])) remaining = remaining[phrase_len:] else: - print(" {}".format(remaining)) + print_outfile(" {}".format(remaining)) remaining = "" @@ -361,10 +367,10 @@ def print_license(license): for source_path in license['source_paths']: if type(source_path) is dict: for class_name, path in source_path.items(): - print(" {}:".format(class_name)) - print(" * {}".format(path)) + print_outfile(" {}:".format(class_name)) + print_outfile(" * {}".format(path)) else: - print(" * {}".format(source_path)) + print_outfile(" * {}".format(source_path)) if 'libraries' in license: for library in license['libraries']: @@ -373,7 +379,7 @@ def print_license(license): if len(library) > 1: raise Exception("Expected 1 groupId and artifactId, but got [{}]".format(library)) for group_id, artifact_id in library.items(): - print(" * {}:{}".format(group_id, artifact_id)) + print_outfile(" * {}:{}".format(group_id, artifact_id)) def find_druid_module_name(dirpath): @@ -489,18 +495,20 @@ def check_licenses(license_yaml, dependency_reports_root): if len(mismatched_licenses) > 0 or len(missing_licenses) > 0: sys.exit(1) + def print_license_name_underbar(license_name): underbar = "" for _ in range(len(license_name)): underbar += "=" - print("{}\n".format(underbar)) + print_outfile("{}\n".format(underbar)) + def generate_license(apache_license_v2, license_yaml): # Generate LICENSE.BINARY file print_error("=== Generating the contents of LICENSE.BINARY file ===\n") # Print Apache license first. - print(apache_license_v2) + print_outfile(apache_license_v2) with open(license_yaml) as registry_file: licenses_list = list(yaml.load_all(registry_file)) @@ -519,20 +527,20 @@ def generate_license(apache_license_v2, license_yaml): licenses_of_module.append(license) for license_name, licenses_of_name in sorted(licenses_map.items()): - print(license_name) + print_outfile(license_name) print_license_name_underbar(license_name) for license_category, licenses_of_category in licenses_of_name.items(): for module, licenses in licenses_of_category.items(): - print("{}/{}".format(license_category.upper(), module_to_upper(module))) + print_outfile("{}/{}".format(license_category.upper(), module_to_upper(module))) for license in licenses: print_license(license) - print("") - print("") + print_outfile("") + print_outfile("") # TODO: add options: debug mode -if len(sys.argv) != 4: - sys.stderr.write("usage: {} ".format(sys.argv[0])) +if len(sys.argv) != 5: + sys.stderr.write("usage: {} ".format(sys.argv[0])) sys.exit(1) with open(sys.argv[1]) as apache_license_file: @@ -540,5 +548,7 @@ def generate_license(apache_license_v2, license_yaml): license_yaml = sys.argv[2] dependency_reports_root = sys.argv[3] +outfile = open(sys.argv[4], "w") check_licenses(license_yaml, dependency_reports_root) -generate_license(apache_license_v2, license_yaml) \ No newline at end of file +generate_license(apache_license_v2, license_yaml) +outfile.close() \ No newline at end of file diff --git a/license.yaml b/licenses.yaml similarity index 98% rename from license.yaml rename to licenses.yaml index 96ad11e9f109..a99cc5c31ad0 100644 --- a/license.yaml +++ b/licenses.yaml @@ -330,7 +330,7 @@ name: Apache Commons CLI license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.2 +version: 1.3.1 libraries: - commons-cli: commons-cli @@ -340,7 +340,7 @@ name: Apache Commons Codec license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.7 +version: 1.12 libraries: - commons-codec: commons-codec @@ -410,7 +410,7 @@ name: Apache Commons Compress license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.16 +version: 1.18 libraries: - org.apache.commons: commons-compress @@ -562,7 +562,7 @@ name: Joda-Time license_category: binary module: java-core license_name: Apache License version 2.0 -version: 2.9.9 +version: 2.10.2 libraries: - joda-time: joda-time @@ -643,7 +643,7 @@ name: Apache Calcite Avatica license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.10.0 +version: 1.12.0 libraries: - org.apache.calcite.avatica: avatica-core - org.apache.calcite.avatica: avatica-metrics @@ -880,7 +880,7 @@ name: LZ4 Java license_category: binary module: java-core license_name: Apache License version 2.0 -version: 1.5.0 +version: 1.6.0 libraries: - org.lz4: lz4-java @@ -910,7 +910,7 @@ name: RoaringBitmap license_category: binary module: java-core license_name: Apache License version 2.0 -version: 0.8.0 +version: 0.8.6 libraries: - org.roaringbitmap: RoaringBitmap - org.roaringbitmap: shims @@ -1244,15 +1244,38 @@ libraries: --- +name: Apache Velocity Engine +version: 2.0 +license_category: binary +module: extensions/druid-avro-extensions +license_name: Apache License version 2.0 +libraries: + - org.apache.velocity: velocity-engine-core + +--- + name: Apache Avro license_category: binary module: extensions/druid-avro-extensions license_name: Apache License version 2.0 -version: 1.8.2 +version: 1.9.0 libraries: - org.apache.avro: avro - org.apache.avro: avro-mapred - org.apache.avro: avro-ipc + - org.apache.avro: avro-ipc-jetty + +--- + +name: Javax Annotation API +license_category: binary +module: extensions/druid-avro-extensions +license_name: CDDL 1.1 +version: 1.3.2 +copyright: Oracle and/or its affiliates +license_file_path: licenses/bin/javax.annotation-api.CDDL11 +libraries: + - javax.annotation: javax.annotation-api --- @@ -1343,7 +1366,7 @@ name: DataSketches license_category: binary module: extensions/druid-datasketches license_name: Apache License version 2.0 -version: 0.13.3 +version: 0.13.4 libraries: - com.yahoo.datasketches: sketches-core @@ -1574,7 +1597,7 @@ name: Apache Parquet license_category: binary module: extensions/druid-parquet-extensions license_name: Apache License version 2.0 -version: 1.10.0 +version: 1.10.1 libraries: - org.apache.parquet: parquet-avro - org.apache.parquet: parquet-column @@ -2738,7 +2761,7 @@ name: JAXB license_category: binary module: java-core license_name: CDDL 1.1 -version: 2.3.0 +version: 2.3.1 copyright: Oracle and/or its affiliates. license_file_path: licenses/bin/javax.CDDL11 libraries: @@ -2976,4 +2999,16 @@ module: java-core license_name: Apache License version 2.0 version: 1.22.0 libraries: - - com.google.oauth-client: google-oauth-client \ No newline at end of file + - com.google.oauth-client: google-oauth-client + +--- + +name: JavaBeans Activation Framework API +license_category: binary +module: java-core +license_name: CDDL 1.1 +version: 1.2.0 +copyright: Oracle and/or its affiliates +license_file_path: licenses/bin/javax.activation-api.CDDL11 +libraries: + - javax.activation: javax.activation-api \ No newline at end of file diff --git a/licenses/bin/javax.activation-api.CDDL11 b/licenses/bin/javax.activation-api.CDDL11 new file mode 100644 index 000000000000..4a00ba94825a --- /dev/null +++ b/licenses/bin/javax.activation-api.CDDL11 @@ -0,0 +1,362 @@ +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1 + +1. Definitions. + + 1.1. "Contributor" means each individual or entity that creates or + contributes to the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Software, prior Modifications used by a Contributor (if any), and + the Modifications made by that particular Contributor. + + 1.3. "Covered Software" means (a) the Original Software, or (b) + Modifications, or (c) the combination of files containing Original + Software with files containing Modifications, in each case including + portions thereof. + + 1.4. "Executable" means the Covered Software in any form other than + Source Code. + + 1.5. "Initial Developer" means the individual or entity that first + makes Original Software available under this License. + + 1.6. "Larger Work" means a work which combines Covered Software or + portions thereof with code not governed by the terms of this License. + + 1.7. "License" means this document. + + 1.8. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means the Source Code and Executable form of + any of the following: + + A. Any file that results from an addition to, deletion from or + modification of the contents of a file containing Original Software + or previous Modifications; + + B. Any new file that contains any part of the Original Software or + previous Modification; or + + C. Any new file that is contributed or otherwise made available + under the terms of this License. + + 1.10. "Original Software" means the Source Code and Executable form + of computer software code that is originally released under this + License. + + 1.11. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.12. "Source Code" means (a) the common form of computer software + code in which modifications are made and (b) associated + documentation included in or with such code. + + 1.13. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, + this License. For legal entities, "You" includes any entity which + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, the Initial Developer + hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer, to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Software (or portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using or selling of + Original Software, to make, have made, use, practice, sell, and + offer for sale, and/or otherwise dispose of the Original Software + (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are effective on + the date Initial Developer first distributes or otherwise makes the + Original Software available to a third party under the terms of this + License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: (1) for code that You delete from the Original Software, or + (2) for infringements caused by: (i) the modification of the + Original Software, or (ii) the combination of the Original Software + with other software or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, each Contributor hereby + grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as Covered Software + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or selling + of Modifications made by that Contributor either alone and/or in + combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, and/or + otherwise dispose of: (1) Modifications made by that Contributor (or + portions thereof); and (2) the combination of Modifications made by + that Contributor with its Contributor Version (or portions of such + combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective + on the date Contributor first distributes or otherwise makes the + Modifications available to a third party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: (1) for any code that Contributor has deleted from the + Contributor Version; (2) for infringements caused by: (i) third + party modifications of Contributor Version, or (ii) the combination + of Modifications made by that Contributor with other software + (except as part of the Contributor Version) or other devices; or (3) + under Patent Claims infringed by Covered Software in the absence of + Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make available + in Executable form must also be made available in Source Code form + and that Source Code form must be distributed only under the terms + of this License. You must include a copy of this License with every + copy of the Source Code form of the Covered Software You distribute + or otherwise make available. You must inform recipients of any such + Covered Software in Executable form as to how they can obtain such + Covered Software in Source Code form in a reasonable manner on or + through a medium customarily used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are + governed by the terms of this License. You represent that You + believe Your Modifications are Your original creation(s) and/or You + have sufficient rights to grant the rights conveyed by this License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that + identifies You as the Contributor of the Modification. You may not + remove or alter any copyright, patent or trademark notices contained + within the Covered Software, or any notices of licensing or any + descriptive text giving attribution to any Contributor or the + Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in + Source Code form that alters or restricts the applicable version of + this License or the recipients' rights hereunder. You may choose to + offer, and to charge a fee for, warranty, support, indemnity or + liability obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on behalf of + the Initial Developer or any Contributor. You must make it + absolutely clear that any such warranty, support, indemnity or + liability obligation is offered by You alone, and You hereby agree + to indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as a + result of warranty, support, indemnity or liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software under + the terms of this License or under the terms of a license of Your + choice, which may contain terms different from this License, + provided that You are in compliance with the terms of this License + and that the license for the Executable form does not attempt to + limit or alter the recipient's rights in the Source Code form from + the rights set forth in this License. If You distribute the Covered + Software in Executable form under a different license, You must make + it absolutely clear that any terms which differ from this License + are offered by You alone, not by the Initial Developer or + Contributor. You hereby agree to indemnify the Initial Developer and + every Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with + other code not governed by the terms of this License and distribute + the Larger Work as a single product. In such a case, You must make + sure the requirements of this License are fulfilled for the Covered + Software. + +4. Versions of the License. + + 4.1. New Versions. + + Oracle is the initial license steward and may publish revised and/or + new versions of this License from time to time. Each version will be + given a distinguishing version number. Except as provided in Section + 4.3, no one other than the license steward has the right to modify + this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the + Covered Software available under the terms of the version of the + License under which You originally received the Covered Software. If + the Initial Developer includes a notice in the Original Software + prohibiting it from being distributed or otherwise made available + under any subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the version + of the License under which You originally received the Covered + Software. Otherwise, You may also choose to use, distribute or + otherwise make the Covered Software available under the terms of any + subsequent version of the License published by the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new + license for Your Original Software, You may create and use a + modified version of this License if You: (a) rename the license and + remove any references to the name of the license steward (except to + note that the license differs from this License); and (b) otherwise + make it clear that the license contains terms which differ from this + License. + +5. DISCLAIMER OF WARRANTY. + + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE + IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF + THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + Provisions which, by their nature, must remain in effect beyond the + termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or a + Contributor (the Initial Developer or Contributor against whom You + assert such claim is referred to as "Participant") alleging that the + Participant Software (meaning the Contributor Version where the + Participant is a Contributor or the Original Software where the + Participant is the Initial Developer) directly or indirectly + infringes any patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial Developer (if the + Initial Developer is not the Participant) and all Contributors under + Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice + from Participant terminate prospectively and automatically at the + expiration of such 60 day notice period, unless if within such 60 + day period You withdraw Your claim with respect to the Participant + Software against such Participant either unilaterally or pursuant to + a written agreement with Participant. + + 6.3. If You assert a patent infringement claim against Participant + alleging that the Participant Software directly or indirectly + infringes any patent where such claim is resolved (such as by + license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 6.4. In the event of termination under Sections 6.1 or 6.2 above, + all end user licenses that have been validly granted by You or any + distributor hereunder prior to termination (excluding licenses + granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE + TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE + POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT + APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH + PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH + LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION + AND LIMITATION MAY NOT APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + + The Covered Software is a "commercial item," as that term is defined + in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" (as that term is defined at 48 C.F.R. § + 252.227-7014(a)(1)) and "commercial computer software documentation" + as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent + with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 + (June 1995), all U.S. Government End Users acquire Covered Software + with only those rights set forth herein. This U.S. Government Rights + clause is in lieu of, and supersedes, any other FAR, DFAR, or other + clause or provision that addresses Government rights in computer + software under this License. + +9. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + the law of the jurisdiction specified in a notice contained within + the Original Software (except to the extent applicable law, if any, + provides otherwise), excluding such jurisdiction's conflict-of-law + provisions. Any litigation relating to this License shall be subject + to the jurisdiction of the courts located in the jurisdiction and + venue specified in a notice contained within the Original Software, + with the losing party responsible for costs, including, without + limitation, court costs and reasonable attorneys' fees and expenses. + The application of the United Nations Convention on Contracts for + the International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall be + construed against the drafter shall not apply to this License. You + agree that You alone are responsible for compliance with the United + States export administration regulations (and the export control + laws and regulation of any other countries) when You use, distribute + or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +------------------------------------------------------------------------ + +NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION +LICENSE (CDDL) + +The code released under the CDDL shall be governed by the laws of the +State of California (excluding conflict-of-law provisions). Any +litigation relating to this License shall be subject to the jurisdiction +of the Federal Courts of the Northern District of California and the +state courts of the State of California, with venue lying in Santa Clara +County, California. diff --git a/licenses/bin/javax.annotation-api.CDDL11 b/licenses/bin/javax.annotation-api.CDDL11 new file mode 100644 index 000000000000..4a00ba94825a --- /dev/null +++ b/licenses/bin/javax.annotation-api.CDDL11 @@ -0,0 +1,362 @@ +COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1 + +1. Definitions. + + 1.1. "Contributor" means each individual or entity that creates or + contributes to the creation of Modifications. + + 1.2. "Contributor Version" means the combination of the Original + Software, prior Modifications used by a Contributor (if any), and + the Modifications made by that particular Contributor. + + 1.3. "Covered Software" means (a) the Original Software, or (b) + Modifications, or (c) the combination of files containing Original + Software with files containing Modifications, in each case including + portions thereof. + + 1.4. "Executable" means the Covered Software in any form other than + Source Code. + + 1.5. "Initial Developer" means the individual or entity that first + makes Original Software available under this License. + + 1.6. "Larger Work" means a work which combines Covered Software or + portions thereof with code not governed by the terms of this License. + + 1.7. "License" means this document. + + 1.8. "Licensable" means having the right to grant, to the maximum + extent possible, whether at the time of the initial grant or + subsequently acquired, any and all of the rights conveyed herein. + + 1.9. "Modifications" means the Source Code and Executable form of + any of the following: + + A. Any file that results from an addition to, deletion from or + modification of the contents of a file containing Original Software + or previous Modifications; + + B. Any new file that contains any part of the Original Software or + previous Modification; or + + C. Any new file that is contributed or otherwise made available + under the terms of this License. + + 1.10. "Original Software" means the Source Code and Executable form + of computer software code that is originally released under this + License. + + 1.11. "Patent Claims" means any patent claim(s), now owned or + hereafter acquired, including without limitation, method, process, + and apparatus claims, in any patent Licensable by grantor. + + 1.12. "Source Code" means (a) the common form of computer software + code in which modifications are made and (b) associated + documentation included in or with such code. + + 1.13. "You" (or "Your") means an individual or a legal entity + exercising rights under, and complying with all of the terms of, + this License. For legal entities, "You" includes any entity which + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants. + + 2.1. The Initial Developer Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, the Initial Developer + hereby grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Initial Developer, to use, reproduce, + modify, display, perform, sublicense and distribute the Original + Software (or portions thereof), with or without Modifications, + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using or selling of + Original Software, to make, have made, use, practice, sell, and + offer for sale, and/or otherwise dispose of the Original Software + (or portions thereof). + + (c) The licenses granted in Sections 2.1(a) and (b) are effective on + the date Initial Developer first distributes or otherwise makes the + Original Software available to a third party under the terms of this + License. + + (d) Notwithstanding Section 2.1(b) above, no patent license is + granted: (1) for code that You delete from the Original Software, or + (2) for infringements caused by: (i) the modification of the + Original Software, or (ii) the combination of the Original Software + with other software or devices. + + 2.2. Contributor Grant. + + Conditioned upon Your compliance with Section 3.1 below and subject + to third party intellectual property claims, each Contributor hereby + grants You a world-wide, royalty-free, non-exclusive license: + + (a) under intellectual property rights (other than patent or + trademark) Licensable by Contributor to use, reproduce, modify, + display, perform, sublicense and distribute the Modifications + created by such Contributor (or portions thereof), either on an + unmodified basis, with other Modifications, as Covered Software + and/or as part of a Larger Work; and + + (b) under Patent Claims infringed by the making, using, or selling + of Modifications made by that Contributor either alone and/or in + combination with its Contributor Version (or portions of such + combination), to make, use, sell, offer for sale, have made, and/or + otherwise dispose of: (1) Modifications made by that Contributor (or + portions thereof); and (2) the combination of Modifications made by + that Contributor with its Contributor Version (or portions of such + combination). + + (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective + on the date Contributor first distributes or otherwise makes the + Modifications available to a third party. + + (d) Notwithstanding Section 2.2(b) above, no patent license is + granted: (1) for any code that Contributor has deleted from the + Contributor Version; (2) for infringements caused by: (i) third + party modifications of Contributor Version, or (ii) the combination + of Modifications made by that Contributor with other software + (except as part of the Contributor Version) or other devices; or (3) + under Patent Claims infringed by Covered Software in the absence of + Modifications made by that Contributor. + +3. Distribution Obligations. + + 3.1. Availability of Source Code. + + Any Covered Software that You distribute or otherwise make available + in Executable form must also be made available in Source Code form + and that Source Code form must be distributed only under the terms + of this License. You must include a copy of this License with every + copy of the Source Code form of the Covered Software You distribute + or otherwise make available. You must inform recipients of any such + Covered Software in Executable form as to how they can obtain such + Covered Software in Source Code form in a reasonable manner on or + through a medium customarily used for software exchange. + + 3.2. Modifications. + + The Modifications that You create or to which You contribute are + governed by the terms of this License. You represent that You + believe Your Modifications are Your original creation(s) and/or You + have sufficient rights to grant the rights conveyed by this License. + + 3.3. Required Notices. + + You must include a notice in each of Your Modifications that + identifies You as the Contributor of the Modification. You may not + remove or alter any copyright, patent or trademark notices contained + within the Covered Software, or any notices of licensing or any + descriptive text giving attribution to any Contributor or the + Initial Developer. + + 3.4. Application of Additional Terms. + + You may not offer or impose any terms on any Covered Software in + Source Code form that alters or restricts the applicable version of + this License or the recipients' rights hereunder. You may choose to + offer, and to charge a fee for, warranty, support, indemnity or + liability obligations to one or more recipients of Covered Software. + However, you may do so only on Your own behalf, and not on behalf of + the Initial Developer or any Contributor. You must make it + absolutely clear that any such warranty, support, indemnity or + liability obligation is offered by You alone, and You hereby agree + to indemnify the Initial Developer and every Contributor for any + liability incurred by the Initial Developer or such Contributor as a + result of warranty, support, indemnity or liability terms You offer. + + 3.5. Distribution of Executable Versions. + + You may distribute the Executable form of the Covered Software under + the terms of this License or under the terms of a license of Your + choice, which may contain terms different from this License, + provided that You are in compliance with the terms of this License + and that the license for the Executable form does not attempt to + limit or alter the recipient's rights in the Source Code form from + the rights set forth in this License. If You distribute the Covered + Software in Executable form under a different license, You must make + it absolutely clear that any terms which differ from this License + are offered by You alone, not by the Initial Developer or + Contributor. You hereby agree to indemnify the Initial Developer and + every Contributor for any liability incurred by the Initial + Developer or such Contributor as a result of any such terms You offer. + + 3.6. Larger Works. + + You may create a Larger Work by combining Covered Software with + other code not governed by the terms of this License and distribute + the Larger Work as a single product. In such a case, You must make + sure the requirements of this License are fulfilled for the Covered + Software. + +4. Versions of the License. + + 4.1. New Versions. + + Oracle is the initial license steward and may publish revised and/or + new versions of this License from time to time. Each version will be + given a distinguishing version number. Except as provided in Section + 4.3, no one other than the license steward has the right to modify + this License. + + 4.2. Effect of New Versions. + + You may always continue to use, distribute or otherwise make the + Covered Software available under the terms of the version of the + License under which You originally received the Covered Software. If + the Initial Developer includes a notice in the Original Software + prohibiting it from being distributed or otherwise made available + under any subsequent version of the License, You must distribute and + make the Covered Software available under the terms of the version + of the License under which You originally received the Covered + Software. Otherwise, You may also choose to use, distribute or + otherwise make the Covered Software available under the terms of any + subsequent version of the License published by the license steward. + + 4.3. Modified Versions. + + When You are an Initial Developer and You want to create a new + license for Your Original Software, You may create and use a + modified version of this License if You: (a) rename the license and + remove any references to the name of the license steward (except to + note that the license differs from this License); and (b) otherwise + make it clear that the license contains terms which differ from this + License. + +5. DISCLAIMER OF WARRANTY. + + COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, + INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE + IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR + NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF + THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE + DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY + OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, + REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN + ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS + AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. + +6. TERMINATION. + + 6.1. This License and the rights granted hereunder will terminate + automatically if You fail to comply with terms herein and fail to + cure such breach within 30 days of becoming aware of the breach. + Provisions which, by their nature, must remain in effect beyond the + termination of this License shall survive. + + 6.2. If You assert a patent infringement claim (excluding + declaratory judgment actions) against Initial Developer or a + Contributor (the Initial Developer or Contributor against whom You + assert such claim is referred to as "Participant") alleging that the + Participant Software (meaning the Contributor Version where the + Participant is a Contributor or the Original Software where the + Participant is the Initial Developer) directly or indirectly + infringes any patent, then any and all rights granted directly or + indirectly to You by such Participant, the Initial Developer (if the + Initial Developer is not the Participant) and all Contributors under + Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice + from Participant terminate prospectively and automatically at the + expiration of such 60 day notice period, unless if within such 60 + day period You withdraw Your claim with respect to the Participant + Software against such Participant either unilaterally or pursuant to + a written agreement with Participant. + + 6.3. If You assert a patent infringement claim against Participant + alleging that the Participant Software directly or indirectly + infringes any patent where such claim is resolved (such as by + license or settlement) prior to the initiation of patent + infringement litigation, then the reasonable value of the licenses + granted by such Participant under Sections 2.1 or 2.2 shall be taken + into account in determining the amount or value of any payment or + license. + + 6.4. In the event of termination under Sections 6.1 or 6.2 above, + all end user licenses that have been validly granted by You or any + distributor hereunder prior to termination (excluding licenses + granted to You by any distributor) shall survive termination. + +7. LIMITATION OF LIABILITY. + + UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT + (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE + INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF + COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE + TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR + CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT + LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER + FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR + LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE + POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT + APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH + PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH + LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR + LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION + AND LIMITATION MAY NOT APPLY TO YOU. + +8. U.S. GOVERNMENT END USERS. + + The Covered Software is a "commercial item," as that term is defined + in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer + software" (as that term is defined at 48 C.F.R. § + 252.227-7014(a)(1)) and "commercial computer software documentation" + as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent + with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 + (June 1995), all U.S. Government End Users acquire Covered Software + with only those rights set forth herein. This U.S. Government Rights + clause is in lieu of, and supersedes, any other FAR, DFAR, or other + clause or provision that addresses Government rights in computer + software under this License. + +9. MISCELLANEOUS. + + This License represents the complete agreement concerning subject + matter hereof. If any provision of this License is held to be + unenforceable, such provision shall be reformed only to the extent + necessary to make it enforceable. This License shall be governed by + the law of the jurisdiction specified in a notice contained within + the Original Software (except to the extent applicable law, if any, + provides otherwise), excluding such jurisdiction's conflict-of-law + provisions. Any litigation relating to this License shall be subject + to the jurisdiction of the courts located in the jurisdiction and + venue specified in a notice contained within the Original Software, + with the losing party responsible for costs, including, without + limitation, court costs and reasonable attorneys' fees and expenses. + The application of the United Nations Convention on Contracts for + the International Sale of Goods is expressly excluded. Any law or + regulation which provides that the language of a contract shall be + construed against the drafter shall not apply to this License. You + agree that You alone are responsible for compliance with the United + States export administration regulations (and the export control + laws and regulation of any other countries) when You use, distribute + or otherwise make available any Covered Software. + +10. RESPONSIBILITY FOR CLAIMS. + + As between Initial Developer and the Contributors, each party is + responsible for claims and damages arising, directly or indirectly, + out of its utilization of rights under this License and You agree to + work with Initial Developer and Contributors to distribute such + responsibility on an equitable basis. Nothing herein is intended or + shall be deemed to constitute any admission of liability. + +------------------------------------------------------------------------ + +NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION +LICENSE (CDDL) + +The code released under the CDDL shall be governed by the laws of the +State of California (excluding conflict-of-law provisions). Any +litigation relating to this License shall be subject to the jurisdiction +of the Federal Courts of the Northern District of California and the +state courts of the State of California, with venue lying in Santa Clara +County, California. From bc98daa3b659819c8b96951fbf52b7dbe71f1590 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 14:32:18 -0700 Subject: [PATCH 09/46] testing multi thread --- .../generate-license-dependency-reports.py | 106 ++++++++++++------ 1 file changed, 72 insertions(+), 34 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 66f06560a88d..949960a05a1d 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -16,54 +16,91 @@ # limitations under the License. import os +import shutil import subprocess import sys import argparse +import concurrent.futures -existing_jar_dict_notice = {} +def generate_report(module_path, report_path): + if not os.path.isdir(module_path): + print("{} is not a directory".format(module_path)) + return -def generate_reports(druid_path, tmp_path, exclude_ext): - license_main_path = tmp_path + "/license-reports" - license_ext_path = tmp_path + "/license-reports/ext" - os.mkdir(license_main_path) - os.mkdir(license_ext_path) + os.makedirs(report_path) - print("********** Generating main LICENSE report.... **********") - os.chdir(druid_path) - command = "mvn -Pdist -Ddependency.locations.enabled=false project-info-reports:dependencies" - outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - command = "cp -r distribution/target/site {}/site".format(license_main_path) - outstr = subprocess.check_output(command, shell=True).decode('UTF-8') + try: + command = "mvn -Pdist -Ddependency.locations.enabled=false project-info-reports:dependencies" + subprocess.run(command, cwd=module_path, shell=True) + command = "cp -r target/site {}/site".format(report_path) + subprocess.run(command, cwd=module_path, shell=True) + except Exception as e: + print("Encountered error [{}] when generating report for {}".format(e, module_path)) + + +def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): + license_report_root = os.path.join(tmp_path, "license-reports") + license_core_path = os.path.join(license_report_root, "core") + license_ext_path = os.path.join(license_report_root, "ext") + shutil.rmtree(license_report_root) + os.makedirs(license_core_path) + os.makedirs(license_ext_path) + druid_path = os.path.abspath(druid_path) - if exclude_ext: - sys.exit() + script_args = [(druid_path, license_core_path)] - print("********** Generating extension LICENSE reports.... **********") - extension_dirs = os.listdir("extensions-core") - print("Found {}".format(extension_dirs)) + extensions_core_path = os.path.join(druid_path, "extensions-core") + extension_dirs = os.listdir(extensions_core_path) + print("Found {} extensions".format(len(extension_dirs))) for extension_dir in extension_dirs: - full_extension_dir = druid_path + "/extensions-core/" + extension_dir - if not os.path.isdir(full_extension_dir): - print("{} is not a directory".format(full_extension_dir)) + extension_path = os.path.join(extensions_core_path, extension_dir) + if not os.path.isdir(extension_path): + print("{} is not a directory".format(extension_path)) continue - print("--- Generating report for {}... ---".format(extension_dir)) - extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) - os.mkdir(extension_report_dir) - prev_work_dir = os.getcwd() - os.chdir(full_extension_dir) + script_args.append((extension_path, extension_report_dir)) + + with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: + for module_path, report_path in script_args: + executor.submit(generate_report, module_path, report_path) + + # print("********** Generating main LICENSE report.... **********") + # os.chdir(druid_path) + # command = "mvn -Pdist -Ddependency.locations.enabled=false project-info-reports:dependencies" + # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') + # command = "cp -r distribution/target/site {}/site".format(license_main_path) + # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') + + # if exclude_ext: + # sys.exit() + + # print("********** Generating extension LICENSE reports.... **********") + # extension_dirs = os.listdir("extensions-core") + # print("Found {}".format(extension_dirs)) + # for extension_dir in extension_dirs: + # full_extension_dir = druid_path + "/extensions-core/" + extension_dir + # if not os.path.isdir(full_extension_dir): + # print("{} is not a directory".format(full_extension_dir)) + # continue + + # print("--- Generating report for {}... ---".format(extension_dir)) + + # extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) + # os.mkdir(extension_report_dir) + # prev_work_dir = os.getcwd() + # os.chdir(full_extension_dir) - try: - command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - command = "cp -r target/site {}/site".format(extension_report_dir) - outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - except: - print("Encountered error when generating report for: " + extension_dir) + # try: + # command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" + # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') + # command = "cp -r target/site {}/site".format(extension_report_dir) + # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') + # except: + # print("Encountered error when generating report for: " + extension_dir) - os.chdir(prev_work_dir) + # os.chdir(prev_work_dir) if __name__ == "__main__": try: @@ -71,7 +108,8 @@ def generate_reports(druid_path, tmp_path, exclude_ext): parser.add_argument('druid_path', metavar='', type=str) parser.add_argument('tmp_path', metavar='', type=str) parser.add_argument('--exclude-extension', dest='exclude_ext', action='store_const', const=True, default=False, help="Exclude extension report") + parser.add_argument('--parallel', dest='num_threads', type=int, default=1, help='Number of threads for generating reports') args = parser.parse_args() - generate_reports(args.druid_path, args.tmp_path, args.exclude_ext) + generate_reports(args.druid_path, args.tmp_path, args.exclude_ext, args.num_threads) except KeyboardInterrupt: print('Interrupted, closing.') From 91093293222fd9e9498042be786cd879d8509054 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 17:56:16 -0700 Subject: [PATCH 10/46] Parallel report generation --- distribution/pom.xml | 2 + .../generate-license-dependency-reports.py | 97 ++++++++----------- 2 files changed, 43 insertions(+), 56 deletions(-) diff --git a/distribution/pom.xml b/distribution/pom.xml index 8a1c71d5700e..8dfe02d9a683 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -141,6 +141,8 @@ ${project.basedir}/../ ${project.basedir}/target + --parallel + 4 diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 949960a05a1d..221e08e74a2d 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -21,25 +21,32 @@ import sys import argparse import concurrent.futures +import time +import threading -def generate_report(module_path, report_path): + + + +def generate_report(module_path, report_orig_path, report_out_path): if not os.path.isdir(module_path): print("{} is not a directory".format(module_path)) return - os.makedirs(report_path) + os.makedirs(report_out_path, exist_ok=True) try: - command = "mvn -Pdist -Ddependency.locations.enabled=false project-info-reports:dependencies" - subprocess.run(command, cwd=module_path, shell=True) - command = "cp -r target/site {}/site".format(report_path) - subprocess.run(command, cwd=module_path, shell=True) + # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. + command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" + subprocess.run(command, cwd=module_path, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True, shell=True) + command = "cp -r {} {}".format(report_orig_path, report_out_path) + subprocess.run(command, cwd=module_path, check=True, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): + tmp_path = os.path.abspath(tmp_path) license_report_root = os.path.join(tmp_path, "license-reports") license_core_path = os.path.join(license_report_root, "core") license_ext_path = os.path.join(license_report_root, "ext") @@ -48,59 +55,37 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): os.makedirs(license_ext_path) druid_path = os.path.abspath(druid_path) - script_args = [(druid_path, license_core_path)] + script_args = [(druid_path, os.path.join(druid_path, "distribution", "target", "site"), license_core_path)] + + if not exclude_ext: + extensions_core_path = os.path.join(druid_path, "extensions-core") + extension_dirs = os.listdir(extensions_core_path) + print("Found {} extensions".format(len(extension_dirs))) + for extension_dir in extension_dirs: + extension_path = os.path.join(extensions_core_path, extension_dir) + if not os.path.isdir(extension_path): + print("{} is not a directory".format(extension_path)) + continue + + extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) + script_args.append((extension_path, os.path.join(extension_path, "target", "site"), extension_report_dir)) + + print("Generating dependency reports", end="") + running = True + def print_dots(): + while running: + print(".", end="", flush=True) + time.sleep(10) + dot_thread = threading.Thread(target=print_dots) + dot_thread.start() - extensions_core_path = os.path.join(druid_path, "extensions-core") - extension_dirs = os.listdir(extensions_core_path) - print("Found {} extensions".format(len(extension_dirs))) - for extension_dir in extension_dirs: - extension_path = os.path.join(extensions_core_path, extension_dir) - if not os.path.isdir(extension_path): - print("{} is not a directory".format(extension_path)) - continue + with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: + for module_path, report_orig_path, report_out_path in script_args: + executor.submit(generate_report, module_path, report_orig_path, report_out_path) - extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) - script_args.append((extension_path, extension_report_dir)) + running = False + dot_thread.join() - with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: - for module_path, report_path in script_args: - executor.submit(generate_report, module_path, report_path) - - # print("********** Generating main LICENSE report.... **********") - # os.chdir(druid_path) - # command = "mvn -Pdist -Ddependency.locations.enabled=false project-info-reports:dependencies" - # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - # command = "cp -r distribution/target/site {}/site".format(license_main_path) - # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - - # if exclude_ext: - # sys.exit() - - # print("********** Generating extension LICENSE reports.... **********") - # extension_dirs = os.listdir("extensions-core") - # print("Found {}".format(extension_dirs)) - # for extension_dir in extension_dirs: - # full_extension_dir = druid_path + "/extensions-core/" + extension_dir - # if not os.path.isdir(full_extension_dir): - # print("{} is not a directory".format(full_extension_dir)) - # continue - - # print("--- Generating report for {}... ---".format(extension_dir)) - - # extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) - # os.mkdir(extension_report_dir) - # prev_work_dir = os.getcwd() - # os.chdir(full_extension_dir) - - # try: - # command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - # command = "cp -r target/site {}/site".format(extension_report_dir) - # outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - # except: - # print("Encountered error when generating report for: " + extension_dir) - - # os.chdir(prev_work_dir) if __name__ == "__main__": try: From 22a39f50b5083d6758237cde2e27014f1c67bc85 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 18:09:27 -0700 Subject: [PATCH 11/46] fix build error --- docs/_bin/generate-license-dependency-reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 221e08e74a2d..01729ba2e26b 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -50,7 +50,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): license_report_root = os.path.join(tmp_path, "license-reports") license_core_path = os.path.join(license_report_root, "core") license_ext_path = os.path.join(license_report_root, "ext") - shutil.rmtree(license_report_root) + shutil.rmtree(license_report_root, ignore_errors=True) os.makedirs(license_core_path) os.makedirs(license_ext_path) druid_path = os.path.abspath(druid_path) From 050af7c0fb324b80800711413bda3f245f88a6c6 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 20:38:10 -0700 Subject: [PATCH 12/46] install pyyaml and use old api --- .travis.yml | 1 + docs/_bin/generate-license-dependency-reports.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 821552507964..19e6355a5ba4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -50,6 +50,7 @@ matrix: # packaging check - env: - NAME="packaging check" + before_install: pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 01729ba2e26b..0baf24b771b2 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -38,9 +38,9 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - subprocess.run(command, cwd=module_path, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True, shell=True) + subprocess.check_output(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.run(command, cwd=module_path, check=True, shell=True) + subprocess.check_output(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) From ff221264144c54a310b07c5fafa7e85f2d748c35 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 20:44:55 -0700 Subject: [PATCH 13/46] install python3 --- .travis.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 19e6355a5ba4..dc33b5904bbe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,8 @@ language: java # On 12-12-2017, Travis updated their trusty image, which caused integration tests to fail. # The group: config instructs Travis to use the previous trusty image. # Please see https://github.com/apache/incubator-druid/pull/5155 for more information. -sudo: false -dist: trusty +sudo: true +dist: xenial group: deprecated-2017Q4 jdk: @@ -50,7 +50,9 @@ matrix: # packaging check - env: - NAME="packaging check" - before_install: pip3 install pyyaml + before_install: + - sudo apt-get update && sudo apt-get install python 3.7 + - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist From cf25b6a58f84e8933011945c1a7c26f923a1d65f Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 20:53:51 -0700 Subject: [PATCH 14/46] fix travis script --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dc33b5904bbe..770f0f43309e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,7 +51,7 @@ matrix: - env: - NAME="packaging check" before_install: - - sudo apt-get update && sudo apt-get install python 3.7 + - sudo apt-get update && sudo apt-get install python3 -y - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist From 1632fb6aaeb45c5506a55e517a8596becb25ad22 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 20:57:44 -0700 Subject: [PATCH 15/46] python3.6 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 770f0f43309e..914be9e36845 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,7 +51,7 @@ matrix: - env: - NAME="packaging check" before_install: - - sudo apt-get update && sudo apt-get install python3 -y + - sudo apt-get update && sudo apt-get install python3.6 -y - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist From d9ddf834c32938f7c9b01e18b3aae919726e31a8 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 21:01:37 -0700 Subject: [PATCH 16/46] pip --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 914be9e36845..b333493882d3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,7 +51,7 @@ matrix: - env: - NAME="packaging check" before_install: - - sudo apt-get update && sudo apt-get install python3.6 -y + - sudo apt-get update && sudo apt-get install python3 python3-pip -y - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist From 7b7f061b19f36dc5baf7c5dfeb13681fd35a9c5f Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 21:35:25 -0700 Subject: [PATCH 17/46] setuptools --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b333493882d3..126bb62d4103 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,7 @@ matrix: - NAME="packaging check" before_install: - sudo apt-get update && sudo apt-get install python3 python3-pip -y - - pip3 install pyyaml + - pip3 install setuptools pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist From e4ee2582dafcb3a73dfd22571ef796fedae7fd61 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 1 Jul 2019 21:43:32 -0700 Subject: [PATCH 18/46] python3-setuptools --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 126bb62d4103..8814b0a46424 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,8 +51,8 @@ matrix: - env: - NAME="packaging check" before_install: - - sudo apt-get update && sudo apt-get install python3 python3-pip -y - - pip3 install setuptools pyyaml + - sudo apt-get update && sudo apt-get install python3 python3-pip python3-setuptools -y + - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist From d8fb18484edcb18712dc6fb2244d53a2682c2912 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Tue, 2 Jul 2019 18:19:44 -0700 Subject: [PATCH 19/46] address comment --- docs/_bin/generate-license-dependency-reports.py | 5 ++--- docs/_bin/generate-license.py | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 0baf24b771b2..3827414b81ea 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -25,9 +25,6 @@ import threading - - - def generate_report(module_path, report_orig_path, report_out_path): if not os.path.isdir(module_path): print("{} is not a directory".format(module_path)) @@ -79,6 +76,8 @@ def print_dots(): dot_thread = threading.Thread(target=print_dots) dot_thread.start() + # Travis kills a job if it prints nothing for 10 mins. + # This dot printing is to prevent from being killed by Travis. with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: for module_path, report_orig_path, report_out_path in script_args: executor.submit(generate_report, module_path, report_orig_path, report_out_path) diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index fa7474e4934e..551e2e5b6fba 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -548,7 +548,6 @@ def generate_license(apache_license_v2, license_yaml): license_yaml = sys.argv[2] dependency_reports_root = sys.argv[3] -outfile = open(sys.argv[4], "w") -check_licenses(license_yaml, dependency_reports_root) -generate_license(apache_license_v2, license_yaml) -outfile.close() \ No newline at end of file +with open(sys.argv[4], "w") as outfile: + check_licenses(license_yaml, dependency_reports_root) + generate_license(apache_license_v2, license_yaml) From 45025bd0938757be61f69ed1b636d6433034add7 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 09:50:12 -0700 Subject: [PATCH 20/46] error on not found reports or registered licenses --- docs/_bin/generate-license.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 551e2e5b6fba..87e9aac778e2 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -414,7 +414,10 @@ def check_licenses(license_yaml, dependency_reports_root): with open(full_path) as report_file: parser = DependencyReportParser(druid_module_name, compatible_license_names) reported_dep_to_licenses.update(parser.parse(report_file)) - + + if len(reported_dep_to_licenses) == 0: + raise Exception("Dependency reports are not found") + print_error("Found {} reported licenses\n".format(len(reported_dep_to_licenses))) # Build registered license dictionary. @@ -443,6 +446,9 @@ def check_licenses(license_yaml, dependency_reports_root): else: registered_dep_to_licenses[get_dep_key(group_id, artifact_id, get_version_string(license['version']))] = compatible_license_names[license['license_name']] + if len(registered_dep_to_licenses) == 0: + raise Exception("Registered licenses are not found") + # Compare licenses in registry and those in dependency reports. mismatched_licenses = [] missing_licenses = [] From 5ae6035751b7f2d7775b7fd10dfa4a802c390382 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 09:52:38 -0700 Subject: [PATCH 21/46] removed licenses --- licenses.yaml | 119 +------------------------------------------------- 1 file changed, 1 insertion(+), 118 deletions(-) diff --git a/licenses.yaml b/licenses.yaml index a99cc5c31ad0..7ae42846544c 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -1382,99 +1382,6 @@ libraries: --- -name: IRC API -license_category: binary -module: extensions/druid-examples -license_name: Apache License version 2.0 -version: 1.0-0014 -libraries: - - com.ircclouds.irc: irc-api - ---- - -name: MaxMind GeoIP2 -license_category: binary -module: extensions/druid-examples -license_name: Apache License version 2.0 -version: 0.4.0 -libraries: - - com.maxmind.geoip2: geoip2 - ---- - -name: Apache Commons BeanUtils -license_category: binary -module: extensions/druid-examples -license_name: Apache License version 2.0 -version: 1.8.3 -libraries: - - commons-beanutils: commons-beanutils - ---- - -name: Apache Commons Validator -license_category: binary -module: extensions/druid-examples -license_name: Apache License version 2.0 -version: 1.4.0 -libraries: - - commons-validator: commons-validator - ---- - -name: Twitter4J -license_category: binary -module: extensions/druid-examples -license_name: Apache License version 2.0 -version: 3.0.3 -libraries: - - org.twitter4j: twitter4j-async - - org.twitter4j: twitter4j-core - - org.twitter4j: twitter4j-stream - ---- - -name: Apache Kafka -license_category: binary -module: extensions/druid-kafka-eight -license_name: Apache License version 2.0 -version: 0.8.2.1 -libraries: - - org.apache.kafka: kafka_2.10 - - org.apache.kafka: kafka-clients - ---- - -name: ZkClient -license_category: binary -module: extensions/druid-kafka-eight -license_name: Apache License version 2.0 -version: 0.3 -libraries: - - com.101tec: zkclient - ---- - -name: Yammer Metrics -license_category: binary -module: extensions/druid-kafka-eight -license_name: Apache License version 2.0 -version: 2.2.0 -libraries: - - com.yammer.metrics: metrics-core - ---- - -name: snappy-java -license_category: binary -module: extensions/druid-kafka-eight -license_name: Apache License version 2.0 -version: 1.1.1.6 -libraries: - - org.xerial.snappy: snappy-java - ---- - name: Apache Kafka version: 2.1.0 license_category: binary @@ -1761,18 +1668,6 @@ libraries: --- -name: JOpt Simple -license_category: binary -module: extensions/druid-kafka-eight -license_name: MIT License -version: 3.2 -copyright: Paul R. Holser, Jr. -license_file_path: licenses/bin/jopt-simple.MIT -libraries: - - net.sf.jopt-simple: jopt-simple - ---- - name: "@babel/runtime" license_category: binary module: web-console @@ -2508,18 +2403,6 @@ libraries: --- -name: Scala Library -license_category: binary -module: extensions/druid-kafka-eight -license_name: BSD-3-Clause License -version: 2.10.4 -copyright: EPFL, Lightbend Inc. -license_file_path: licenses/bin/scala-lang.BSD3 -libraries: - - org.scala-lang: scala-library - ---- - name: StringTemplate license_category: binary module: extensions/druid-lookups-cached-single @@ -3011,4 +2894,4 @@ version: 1.2.0 copyright: Oracle and/or its affiliates license_file_path: licenses/bin/javax.activation-api.CDDL11 libraries: - - javax.activation: javax.activation-api \ No newline at end of file + - javax.activation: javax.activation-api From ad0921b395a223b0de6e694735c40fd7841c74ee Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 09:54:47 -0700 Subject: [PATCH 22/46] debug --- docs/_bin/generate-license-dependency-reports.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 3827414b81ea..ab3ad1d40f8a 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -35,9 +35,9 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - subprocess.check_output(command, cwd=module_path, shell=True) + subprocess.call(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.check_output(command, cwd=module_path, shell=True) + subprocess.call(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) From b7d8640505604dc3b7fe059f3527c249f073c766 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 10:54:28 -0700 Subject: [PATCH 23/46] travis debug --- docs/_bin/generate-license-dependency-reports.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index ab3ad1d40f8a..04024ac2c9eb 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -32,12 +32,14 @@ def generate_report(module_path, report_orig_path, report_out_path): os.makedirs(report_out_path, exist_ok=True) + print("module_path: {}, report_orig_path: {}, report_out_path: {}".format(module_path, report_orig_path, report_out_path)) + try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - subprocess.call(command, cwd=module_path, shell=True) + subprocess.check_output(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.call(command, cwd=module_path, shell=True) + subprocess.check_output(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) From f466bbe154dc973c47a2b9d5d0a315d754032c6a Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 12:03:14 -0700 Subject: [PATCH 24/46] add missing licenses --- licenses.yaml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/licenses.yaml b/licenses.yaml index 7ae42846544c..1e25ff9bdd38 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -2895,3 +2895,58 @@ copyright: Oracle and/or its affiliates license_file_path: licenses/bin/javax.activation-api.CDDL11 libraries: - javax.activation: javax.activation-api + +--- + +name: Apache Kafka +license_category: binary +module: extensions/kafka-extraction-namespace +license_name: Apache License version 2.0 +version: 0.8.2.1 +libraries: + - org.apache.kafka: kafka_2.10 + - org.apache.kafka: kafka-clients + +--- + +name: ZooKeeper Client +license_category: binary +module: extensions/kafka-extraction-namespace +license_name: Apache License version 2.0 +version: 0.3 +libraries: + - com.101tec: zkclient + +--- + +name: Metrics Core Library +license_category: binary +module: extensions/kafka-extraction-namespace +license_name: Apache License version 2.0 +version: 2.2.0 +libraries: + - com.yammer.metrics: metrics-core + +--- + +name: JOpt Simple +license_category: binary +module: extensions/kafka-extraction-namespace +license_name: MIT License +copyright: Paul R. Holser, Jr. +version: 3.2 +license_file_path: licenses/bin/jopt-simple.MIT +libraries: + - net.sf.jopt-simple: jopt-simple + +--- + +name: Scala Library +license_category: binary +module: extensions/kafka-extraction-namespace +license_name: BSD-3-Clause License +copyright: EPFL, Lightbend Inc. +version: 2.10.4 +license_file_path: licenses/bin/scala-lang.BSD3 +libraries: + - org.scala-lang: scala-library \ No newline at end of file From 79536510bb60900cff718e2675c83d6e06e16512 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 12:04:41 -0700 Subject: [PATCH 25/46] travis debug --- distribution/pom.xml | 1 + docs/_bin/generate-license-dependency-reports.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/distribution/pom.xml b/distribution/pom.xml index f855c96c27b7..d983914f6d8a 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -141,6 +141,7 @@ ${project.basedir}/../ ${project.basedir}/target + --exclude-extension --parallel 4 diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 04024ac2c9eb..20d6d06b274c 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -37,9 +37,9 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - subprocess.check_output(command, cwd=module_path, shell=True) + subprocess.call(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.check_output(command, cwd=module_path, shell=True) + subprocess.call(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) From 1e984a531c47eeacf640c832db1fcc94ba677cb4 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 12:29:03 -0700 Subject: [PATCH 26/46] debug --- docs/_bin/generate-license-dependency-reports.py | 2 +- docs/_bin/generate-license.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 20d6d06b274c..be2ca5f04616 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -36,7 +36,7 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. - command = "mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" + command = "pwd; mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" subprocess.call(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) subprocess.call(command, cwd=module_path, shell=True) diff --git a/docs/_bin/generate-license.py b/docs/_bin/generate-license.py index 87e9aac778e2..1ccc72f5df48 100755 --- a/docs/_bin/generate-license.py +++ b/docs/_bin/generate-license.py @@ -416,7 +416,7 @@ def check_licenses(license_yaml, dependency_reports_root): reported_dep_to_licenses.update(parser.parse(report_file)) if len(reported_dep_to_licenses) == 0: - raise Exception("Dependency reports are not found") + raise Exception("No dependency reports are found") print_error("Found {} reported licenses\n".format(len(reported_dep_to_licenses))) @@ -447,7 +447,7 @@ def check_licenses(license_yaml, dependency_reports_root): registered_dep_to_licenses[get_dep_key(group_id, artifact_id, get_version_string(license['version']))] = compatible_license_names[license['license_name']] if len(registered_dep_to_licenses) == 0: - raise Exception("Registered licenses are not found") + raise Exception("No registered licenses are found") # Compare licenses in registry and those in dependency reports. mismatched_licenses = [] From 363909d06370c2955c46b0e23684810a25b3ed71 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 13:00:47 -0700 Subject: [PATCH 27/46] remove debug code --- distribution/pom.xml | 1 - docs/_bin/generate-license-dependency-reports.py | 8 +++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/distribution/pom.xml b/distribution/pom.xml index d983914f6d8a..f855c96c27b7 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -141,7 +141,6 @@ ${project.basedir}/../ ${project.basedir}/target - --exclude-extension --parallel 4 diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index be2ca5f04616..f7377c9f628f 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -32,14 +32,12 @@ def generate_report(module_path, report_orig_path, report_out_path): os.makedirs(report_out_path, exist_ok=True) - print("module_path: {}, report_orig_path: {}, report_out_path: {}".format(module_path, report_orig_path, report_out_path)) - try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. - command = "pwd; mvn -Ddependency.locations.enabled=false project-info-reports:dependencies" - subprocess.call(command, cwd=module_path, shell=True) + command = "mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" + subprocess.check_output(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.call(command, cwd=module_path, shell=True) + subprocess.check_output(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) From f814ee5113376f0d0625748568668c59afd22562 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 13:05:20 -0700 Subject: [PATCH 28/46] test build script --- .travis.yml | 1 + build.sh | 21 +++++++++++++++++++++ distribution/pom.xml | 16 ---------------- 3 files changed, 22 insertions(+), 16 deletions(-) create mode 100755 build.sh diff --git a/.travis.yml b/.travis.yml index cf8fb141edb2..eeb6224a2d67 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,6 +55,7 @@ matrix: - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts + script: ./build.sh # processing module test - env: diff --git a/build.sh b/build.sh new file mode 100755 index 000000000000..416e109c9fd2 --- /dev/null +++ b/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash -eux +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +mkdir -p distribution/target + +docs/_bin/generate-license-dependency-reports.py . distribution/target --parallel 4 + +MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts diff --git a/distribution/pom.xml b/distribution/pom.xml index f855c96c27b7..51c7c1d19964 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -130,22 +130,6 @@ - - generate-dependency-reports - initialize - - exec - - - ${project.parent.basedir}/docs/_bin/generate-license-dependency-reports.py - - ${project.basedir}/../ - ${project.basedir}/target - --parallel - 4 - - - verify-and-generate-license initialize From a6c482a3e0135199db3d53720275ab8639f914e5 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 13:10:40 -0700 Subject: [PATCH 29/46] travis debug --- build.sh | 2 +- docs/_bin/generate-license-dependency-reports.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 416e109c9fd2..fcb546b30f2c 100755 --- a/build.sh +++ b/build.sh @@ -16,6 +16,6 @@ mkdir -p distribution/target -docs/_bin/generate-license-dependency-reports.py . distribution/target --parallel 4 +docs/_bin/generate-license-dependency-reports.py . distribution/target --parallel 4 --exclude-extension MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index f7377c9f628f..27320db88496 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -35,9 +35,9 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. command = "mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" - subprocess.check_output(command, cwd=module_path, shell=True) + subprocess.call(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.check_output(command, cwd=module_path, shell=True) + subprocess.call(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) From 9dbf20725982fd50bf94a594b5f93be80039da44 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 13:33:05 -0700 Subject: [PATCH 30/46] still debug --- build.sh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build.sh b/build.sh index fcb546b30f2c..fc6c0e5c2087 100755 --- a/build.sh +++ b/build.sh @@ -16,6 +16,4 @@ mkdir -p distribution/target -docs/_bin/generate-license-dependency-reports.py . distribution/target --parallel 4 --exclude-extension - -MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts +mvn clean install -DskipTests && docs/_bin/generate-license-dependency-reports.py . distribution/target --parallel 4 --exclude-extension && MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts From b8c7521a40247277dbcaddc8f23d3bdceab6172b Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 15:09:50 -0700 Subject: [PATCH 31/46] add missing python lib --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index eeb6224a2d67..4c81473691aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,7 @@ matrix: - NAME="packaging check" before_install: - sudo apt-get update && sudo apt-get install python3 python3-pip python3-setuptools -y - - pip3 install pyyaml + - pip3 install wheel pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts script: ./build.sh From 8bfe079ba575e845b84050df4961ffebf9667235 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 15:10:22 -0700 Subject: [PATCH 32/46] debug --- docs/_bin/generate-license-dependency-reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 27320db88496..68a988ae8a86 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -34,7 +34,7 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. - command = "mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" + command = "mvn -version; mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" subprocess.call(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) subprocess.call(command, cwd=module_path, shell=True) From ad5a68aba89a6f79ec86e66082904033879d952b Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 15:26:28 -0700 Subject: [PATCH 33/46] debug --- docs/_bin/generate-license-dependency-reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 68a988ae8a86..7340c8943ef5 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -34,7 +34,7 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. - command = "mvn -version; mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" + command = "rm -rf ~/.m2/repository/org/apache/maven/shared/maven-artifact-transfer; mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" subprocess.call(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) subprocess.call(command, cwd=module_path, shell=True) From 98f090f28452352b04cfb55b5a9b12ac494bd46b Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 15:47:25 -0700 Subject: [PATCH 34/46] fix travis --- .travis.yml | 3 ++- build.sh | 19 ------------------- distribution/pom.xml | 17 +++++++++++++++++ .../generate-license-dependency-reports.py | 13 ++++++++++--- 4 files changed, 29 insertions(+), 23 deletions(-) delete mode 100755 build.sh diff --git a/.travis.yml b/.travis.yml index 4c81473691aa..af023c3ff94d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,8 @@ matrix: - NAME="packaging check" before_install: - sudo apt-get update && sudo apt-get install python3 python3-pip python3-setuptools -y - - pip3 install wheel pyyaml + - pip3 install wheel # install wheel first explicitly + - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts script: ./build.sh diff --git a/build.sh b/build.sh deleted file mode 100755 index fc6c0e5c2087..000000000000 --- a/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -eux -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -mkdir -p distribution/target - -mvn clean install -DskipTests && docs/_bin/generate-license-dependency-reports.py . distribution/target --parallel 4 --exclude-extension && MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts diff --git a/distribution/pom.xml b/distribution/pom.xml index 51c7c1d19964..ec0fa68b73ec 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -130,6 +130,23 @@ + + generate-dependency-reports + initialize + + exec + + + ${project.parent.basedir}/docs/_bin/generate-license-dependency-reports.py + + ${project.basedir}/../ + ${project.basedir}/target + --clean-maven-artifact-transfer + --parallel + 4 + + + verify-and-generate-license initialize diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 7340c8943ef5..574afd8bf564 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -34,10 +34,10 @@ def generate_report(module_path, report_orig_path, report_out_path): try: # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. - command = "rm -rf ~/.m2/repository/org/apache/maven/shared/maven-artifact-transfer; mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" - subprocess.call(command, cwd=module_path, shell=True) + command = "mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" + subprocess.check_output(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) - subprocess.call(command, cwd=module_path, shell=True) + subprocess.check_output(command, cwd=module_path, shell=True) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) @@ -92,8 +92,15 @@ def print_dots(): parser.add_argument('druid_path', metavar='', type=str) parser.add_argument('tmp_path', metavar='', type=str) parser.add_argument('--exclude-extension', dest='exclude_ext', action='store_const', const=True, default=False, help="Exclude extension report") + parser.add_argument('--clean-maven-artifact-transfer', dest='clean_mvn_artifact_transfer', action='store_const', const=True, default=False, help="Clean maven-artifact-transfer before generating dependency reports") parser.add_argument('--parallel', dest='num_threads', type=int, default=1, help='Number of threads for generating reports') args = parser.parse_args() + + # The default maven-artifact-transfer in Travis is currently corrupted. Set the below argument properly to remove the corrupted one. + if args.clean_mvn_artifact_transfer: + command = "rm -rf ~/.m2/repository/org/apache/maven/shared/maven-artifact-transfer" + subprocess.call(command, shell=True) + generate_reports(args.druid_path, args.tmp_path, args.exclude_ext, args.num_threads) except KeyboardInterrupt: print('Interrupted, closing.') From f36b08e5f89b5791b323244a248af5be1ceae20a Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 15:49:58 -0700 Subject: [PATCH 35/46] fix travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index af023c3ff94d..093ae810746f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,7 +56,6 @@ matrix: - pip3 install pyyaml install: true script: MAVEN_OPTS='-Xmx3000m' mvn -DskipTests -Dforbiddenapis.skip=true -Dcheckstyle.skip=true -Dpmd.skip=true -Dmaven.javadoc.skip=true -pl '!benchmarks' -B --fail-at-end clean install -Pdist -Pbundle-contrib-exts - script: ./build.sh # processing module test - env: From 47d8d388a0be9f52c7a976a2074666f570576a7b Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 16:26:28 -0700 Subject: [PATCH 36/46] debug travis --- docs/_bin/generate-license-dependency-reports.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 574afd8bf564..a4dd3efe38b1 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -59,6 +59,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): extension_dirs = os.listdir(extensions_core_path) print("Found {} extensions".format(len(extension_dirs))) for extension_dir in extension_dirs: + print("extension_dir: {}".format(extension_dir)) extension_path = os.path.join(extensions_core_path, extension_dir) if not os.path.isdir(extension_path): print("{} is not a directory".format(extension_path)) From 8652ecba28067062a2b9fd9d6ac831ca45d8aa4a Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 16:41:27 -0700 Subject: [PATCH 37/46] flush print --- docs/_bin/generate-license-dependency-reports.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index a4dd3efe38b1..ae75b7b2bf33 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -59,7 +59,6 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): extension_dirs = os.listdir(extensions_core_path) print("Found {} extensions".format(len(extension_dirs))) for extension_dir in extension_dirs: - print("extension_dir: {}".format(extension_dir)) extension_path = os.path.join(extensions_core_path, extension_dir) if not os.path.isdir(extension_path): print("{} is not a directory".format(extension_path)) @@ -68,7 +67,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) script_args.append((extension_path, os.path.join(extension_path, "target", "site"), extension_report_dir)) - print("Generating dependency reports", end="") + print("Generating dependency reports", flush=True, end="") running = True def print_dots(): while running: @@ -100,7 +99,7 @@ def print_dots(): # The default maven-artifact-transfer in Travis is currently corrupted. Set the below argument properly to remove the corrupted one. if args.clean_mvn_artifact_transfer: command = "rm -rf ~/.m2/repository/org/apache/maven/shared/maven-artifact-transfer" - subprocess.call(command, shell=True) + subprocess.check_call(command, shell=True) generate_reports(args.druid_path, args.tmp_path, args.exclude_ext, args.num_threads) except KeyboardInterrupt: From 42d9df8ce2342aee9538c3e0e94350f90873d185 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 17:00:10 -0700 Subject: [PATCH 38/46] print something more to keep travis alive --- docs/_bin/generate-license-dependency-reports.py | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index ae75b7b2bf33..38329aaa5366 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -59,6 +59,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): extension_dirs = os.listdir(extensions_core_path) print("Found {} extensions".format(len(extension_dirs))) for extension_dir in extension_dirs: + print("extension dir: {}".format(extension_dir)) extension_path = os.path.join(extensions_core_path, extension_dir) if not os.path.isdir(extension_path): print("{} is not a directory".format(extension_path)) From 0e324bc361583c5a4444876eb6e64dc03d5e2906 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 18:31:08 -0700 Subject: [PATCH 39/46] adjust print --- docs/_bin/generate-license-dependency-reports.py | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 38329aaa5366..08470d41d815 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -33,11 +33,13 @@ def generate_report(module_path, report_orig_path, report_out_path): os.makedirs(report_out_path, exist_ok=True) try: + print("Generating report for {}".format(module_path)) # This command prints lots of false errors. Here, we redirect stdout and stderr to avoid them. command = "mvn -Ddependency.locations.enabled=false -Ddependency.details.enabled=false project-info-reports:dependencies" subprocess.check_output(command, cwd=module_path, shell=True) command = "cp -r {} {}".format(report_orig_path, report_out_path) subprocess.check_output(command, cwd=module_path, shell=True) + print("Generated report for {} in {}".format(module_path, report_out_path)) except Exception as e: print("Encountered error [{}] when generating report for {}".format(e, module_path)) @@ -68,24 +70,12 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) script_args.append((extension_path, os.path.join(extension_path, "target", "site"), extension_report_dir)) - print("Generating dependency reports", flush=True, end="") - running = True - def print_dots(): - while running: - print(".", end="", flush=True) - time.sleep(10) - dot_thread = threading.Thread(target=print_dots) - dot_thread.start() + print("Generating dependency reports", flush=True) - # Travis kills a job if it prints nothing for 10 mins. - # This dot printing is to prevent from being killed by Travis. with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: for module_path, report_orig_path, report_out_path in script_args: executor.submit(generate_report, module_path, report_orig_path, report_out_path) - running = False - dot_thread.join() - if __name__ == "__main__": try: From 3e8eadd14f7a09c187cd98fb2ad772cc43dce994 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 18:54:11 -0700 Subject: [PATCH 40/46] single threaded --- distribution/pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/distribution/pom.xml b/distribution/pom.xml index ec0fa68b73ec..2933b02dc650 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -142,8 +142,6 @@ ${project.basedir}/../ ${project.basedir}/target --clean-maven-artifact-transfer - --parallel - 4 From cf78bf254d2b2e94f13b0ae3d437add8ddddfe88 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 21:05:58 -0700 Subject: [PATCH 41/46] single threaded --- docs/_bin/generate-license-dependency-reports.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 08470d41d815..b881f2586501 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -72,9 +72,13 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): print("Generating dependency reports", flush=True) - with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: + if num_threads > 1: + with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: + for module_path, report_orig_path, report_out_path in script_args: + executor.submit(generate_report, module_path, report_orig_path, report_out_path) + else: for module_path, report_orig_path, report_out_path in script_args: - executor.submit(generate_report, module_path, report_orig_path, report_out_path) + generate_report(module_path, report_orig_path, report_out_path) if __name__ == "__main__": From bda2d90b9d4efea4d911eed49ac4c6100c04e8f6 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 21:22:28 -0700 Subject: [PATCH 42/46] debug --- docs/_bin/generate-license-dependency-reports.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index b881f2586501..360538a9e2c1 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -26,11 +26,15 @@ def generate_report(module_path, report_orig_path, report_out_path): - if not os.path.isdir(module_path): + print("generate_report start") + is_dir = os.path.isdir(module_path) + print("is_dir: {}".format(is_dir)) + if not is_dir: print("{} is not a directory".format(module_path)) return os.makedirs(report_out_path, exist_ok=True) + print("made dirs: {}".format(report_out_path)) try: print("Generating report for {}".format(module_path)) @@ -71,6 +75,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): script_args.append((extension_path, os.path.join(extension_path, "target", "site"), extension_report_dir)) print("Generating dependency reports", flush=True) + print("num_threads: {}".format(num_threads)) if num_threads > 1: with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: @@ -78,6 +83,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): executor.submit(generate_report, module_path, report_orig_path, report_out_path) else: for module_path, report_orig_path, report_out_path in script_args: + print("module_path: {}".format(module_path)) generate_report(module_path, report_orig_path, report_out_path) From dd524c422ed0fe3762b75325130ff44136bc8194 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 21:35:40 -0700 Subject: [PATCH 43/46] debug --- docs/_bin/generate-license-dependency-reports.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index 360538a9e2c1..e10369a253f6 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -74,7 +74,7 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): extension_report_dir = "{}/{}".format(license_ext_path, extension_dir) script_args.append((extension_path, os.path.join(extension_path, "target", "site"), extension_report_dir)) - print("Generating dependency reports", flush=True) + print("Generating dependency reports") print("num_threads: {}".format(num_threads)) if num_threads > 1: From 1a755cda45d7038bd6ef942b046cdd06522c26f8 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Fri, 5 Jul 2019 22:03:29 -0700 Subject: [PATCH 44/46] remove debug --- docs/_bin/generate-license-dependency-reports.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/_bin/generate-license-dependency-reports.py b/docs/_bin/generate-license-dependency-reports.py index e10369a253f6..c691578c50fe 100755 --- a/docs/_bin/generate-license-dependency-reports.py +++ b/docs/_bin/generate-license-dependency-reports.py @@ -26,15 +26,12 @@ def generate_report(module_path, report_orig_path, report_out_path): - print("generate_report start") is_dir = os.path.isdir(module_path) - print("is_dir: {}".format(is_dir)) if not is_dir: print("{} is not a directory".format(module_path)) return os.makedirs(report_out_path, exist_ok=True) - print("made dirs: {}".format(report_out_path)) try: print("Generating report for {}".format(module_path)) @@ -75,7 +72,6 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): script_args.append((extension_path, os.path.join(extension_path, "target", "site"), extension_report_dir)) print("Generating dependency reports") - print("num_threads: {}".format(num_threads)) if num_threads > 1: with concurrent.futures.ThreadPoolExecutor(max_workers=num_threads) as executor: @@ -83,7 +79,6 @@ def generate_reports(druid_path, tmp_path, exclude_ext, num_threads): executor.submit(generate_report, module_path, report_orig_path, report_out_path) else: for module_path, report_orig_path, report_out_path in script_args: - print("module_path: {}".format(module_path)) generate_report(module_path, report_orig_path, report_out_path) From a6c4c8e774a9735e5d503f82895dc1a42a308486 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 7 Jul 2019 00:04:20 -0700 Subject: [PATCH 45/46] remove deprecated-2017Q4 from travis conf --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 093ae810746f..612bf21b0413 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,6 @@ language: java # Please see https://github.com/apache/incubator-druid/pull/5155 for more information. sudo: true dist: xenial -group: deprecated-2017Q4 jdk: - openjdk8 From a94b160df900555bb74a1cd3fce327a0f40b21f8 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Sun, 7 Jul 2019 00:07:08 -0700 Subject: [PATCH 46/46] remove comments and duplicate sudo --- .travis.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 612bf21b0413..1659b7cb0bdb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,9 +15,6 @@ language: java -# On 12-12-2017, Travis updated their trusty image, which caused integration tests to fail. -# The group: config instructs Travis to use the previous trusty image. -# Please see https://github.com/apache/incubator-druid/pull/5155 for more information. sudo: true dist: xenial @@ -120,8 +117,7 @@ matrix: - free -m # run integration tests - - sudo: required - services: + - services: - docker env: - NAME="integration test part 1" @@ -141,8 +137,7 @@ matrix: done # run integration tests - - sudo: required - services: + - services: - docker env: - NAME="integration test part 2"