| /** |
| * 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. |
| */ |
| /** |
| * Check that the licenses of our 3rd parties are in our acceptedLicenses list. |
| * |
| * run it with "gradle checkLicenses" |
| * |
| * To add new accepted licenses you need to update this script. |
| * Some products may be available with multiple licenses. In this case you must update |
| * this script to add it in the downloadLicenses#licenses. |
| */ |
| |
| // Some parts of this code comes from Zipkin/https://github.com/openzipkin/zipkin/pull/852 |
| // Zipkin itself is under Apache License. |
| |
| /** |
| * The lists of the license we accept. |
| */ |
| ext.acceptedLicenses = [ |
| 'Apache License, Version 2.0', |
| 'Bouncy Castle Licence', |
| 'CC0', |
| 'The 2-Clause BSD License', |
| 'The 3-Clause BSD License', |
| 'Common Development and Distribution License 1.0', |
| 'Eclipse Distribution License - v 1.0', |
| 'Eclipse Public License 1.0', |
| 'Eclipse Public License 2.0', |
| 'The MIT License', |
| 'Unicode/ICU License', |
| ]*.toLowerCase() |
| |
| /** |
| * This is the configuration we need for our licenses plugin: 'com.github.hierynomus.license' |
| * This plugin generates a list of dependencies. |
| */ |
| downloadLicenses { |
| includeProjectDependencies = true |
| reportByDependency = false |
| reportByLicenseType = true |
| dependencyConfiguration = 'compileClasspath' |
| |
| ext.apache2 = license( |
| 'Apache License, Version 2.0', |
| 'http://opensource.org/licenses/Apache-2.0') |
| ext.bsd = license( |
| 'The 2-Clause BSD License', |
| 'https://opensource.org/licenses/BSD-2-Clause') |
| ext.bsd3Clause = license( |
| 'The 3-Clause BSD License', |
| 'http://opensource.org/licenses/BSD-3-Clause') |
| ext.cddl1 = license( |
| 'Common Development and Distribution License 1.0', |
| 'https://opensource.org/licenses/CDDL-1.0') |
| ext.edl1 = license( |
| 'Eclipse Distribution License - v 1.0', |
| 'http://www.eclipse.org/org/documents/edl-v10.html') |
| ext.epl1 = license( |
| 'Eclipse Public License 1.0', |
| 'https://opensource.org/licenses/EPL-1.0') |
| ext.epl2 = license( |
| 'Eclipse Public License 2.0', |
| 'https://opensource.org/licenses/EPL-2.0') |
| ext.mit = license( |
| 'The MIT License', |
| 'https://opensource.org/licenses/MIT') |
| |
| aliases = [ |
| (apache2): [ |
| 'Apache', |
| 'Apache 2', |
| 'Apache 2.0', |
| 'Apache-2.0', |
| 'Apache License', |
| 'Apache License 2.0', |
| 'Apache License Version 2.0', |
| 'Apache License, Version 2.0', |
| 'Apache Software Licenses', |
| 'Apache v2', |
| 'ASL, Version 2', |
| 'The Apache License, Version 2.0', |
| 'The Apache Software License, Version 2.0', |
| 'The Apache Software License, version 2.0' |
| ], |
| (bsd): [ |
| 'Berkeley Software Distribution (BSD) License', |
| 'BSD', |
| 'BSD licence', |
| 'BSD Licence', |
| 'BSD License', |
| 'New BSD License', |
| 'The BSD Licence', |
| 'The BSD License', |
| 'BSD 2-Clause license', |
| ], |
| (bsd3Clause): [ |
| 'BSD 3-Clause', |
| 'BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)', |
| 'The 3-Clause BSD License', |
| 'The BSD 3-Clause License', |
| ], |
| (cddl1): [ |
| 'CDDL-1.0', |
| 'Common Development and Distribution License', |
| 'Common Development and Distribution License 1.0', |
| 'Dual license consisting of the CDDL v1.1 and GPL v2', |
| ], |
| (edl1): [ |
| 'Eclipse Distribution License - v 1.0', |
| ], |
| (epl1): [ |
| 'Eclipse Public License - v 1.0', |
| ], |
| (epl2): [ |
| 'Eclipse Public License v2.0', |
| 'Eclipse Public License - v 2.0', |
| ], |
| (mit): [ |
| 'MIT license', |
| 'MIT License', |
| ], |
| ] |
| |
| licenses = [ |
| (group('tuweni')): apache2, |
| (group('org.jboss.spec.javax.transaction')): cddl1, |
| (group('org.rocksdb')): apache2, |
| // https://checkerframework.org/manual/#license |
| // The more permissive MIT License applies to code that you might want |
| // to include in your own program, such as the annotations and run-time utility classes. |
| (group('org.checkerframework')): mit |
| ] |
| } |
| |
| |
| task checkLicenses { |
| description "Verify that all dependencies use white-listed licenses." |
| dependsOn ':downloadLicenses' |
| |
| def bads = "" |
| doLast { |
| def xml = new XmlParser().parse("$rootProject.buildDir/reports/license/license-dependency.xml") |
| xml.each { license -> |
| if (!acceptedLicenses.contains((license.@name).toLowerCase())) { |
| def depStrings = [] |
| license.dependency.each { depStrings << it.text() } |
| bads = bads + depStrings + " => -${license.@name}- \n" |
| } |
| } |
| if (bads != "") { |
| throw new GradleException("Some 3rd parties are using licenses not in our accepted licenses list:\n" + |
| bads + |
| "If it's a license acceptable for us, add it in the file check-licenses.gradle.\n" + |
| "Be careful, some 3rd parties may accept multiple licenses.\n" + |
| "In this case, select the one you want to use by changing downloadLicenses.licenses\n" |
| ) |
| } |
| } |
| } |
| check.dependsOn checkLicenses |