| <!-- |
| 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. |
| --> |
| <project basedir="." name="apache-cassandra--rat-tasks" |
| xmlns:rat="antlib:org.apache.rat.anttasks"> |
| |
| <!-- |
| License audit tool |
| --> |
| |
| |
| <target name="_rat_init" depends="resolver-init"> |
| <typedef uri="antlib:org.apache.rat.anttasks" classpathref="rat.classpath"/> |
| </target> |
| |
| <target name="_build_ratinclude" depends="_rat_init"> |
| <exec executable="git" failifexecutionfails="false" failonerror="false" resultproperty="git.success" output="build/.versioned_files"> |
| <arg line="ls-tree -r HEAD --name-only"/> |
| </exec> |
| <condition property="rat.skip" value="true"> |
| <not> |
| <equals arg1="${git.success}" arg2="0"/> |
| </not> |
| </condition> |
| <copy file="build/.versioned_files" tofile="build/.ratinclude"> |
| <filterchain> |
| <linecontainsregexp> |
| <regexp pattern=".*\.(java|py|sh|xml|spec|md|iml|bat|btm|cql|css|g|html|jflex|jks|mod|name|pom|textile|yml|yaml|MIDRES|HIGHRES|LOWRES)$"/> |
| </linecontainsregexp> |
| </filterchain> |
| </copy> |
| </target> |
| |
| <target name="rat-check" depends="_build_ratinclude" unless="${rat.skip}" description="License checks on source" > |
| <rat:report reportFile="${build.dir}/rat.txt"> |
| <fileset dir="." includesfile="build/.ratinclude"> |
| <!-- Config files with not much creativity --> |
| <exclude name="**/ide/**/*"/> |
| <exclude name="**/metrics-reporter-config-sample.yaml"/> |
| <exclude name="**/cassandra.yaml"/> |
| <exclude name="**/cassandra-murmur.yaml"/> |
| <exclude name="**/cassandra-seeds.yaml"/> |
| <exclude name="**/test/conf/cassandra.yaml"/> |
| <exclude name="**/test/conf/cassandra_encryption.yaml"/> |
| <exclude name="**/test/conf/cdc.yaml"/> |
| <exclude name="**/test/conf/commitlog_compression_LZ4.yaml"/> |
| <exclude name="**/test/conf/commitlog_compression_Zstd.yaml"/> |
| <exclude name="**/test/conf/system_keyspaces_directory.yaml"/> |
| <exclude name="**/test/conf/unit-test-conf/test-native-port.yaml"/> |
| <exclude name="**/test/data/jmxdump/cassandra-3.0-jmx.yaml"/> |
| <exclude name="**/test/data/jmxdump/cassandra-3.11-jmx.yaml"/> |
| <exclude name="**/test/data/jmxdump/cassandra-4.0-jmx.yaml"/> |
| <exclude name="**/tools/cqlstress-counter-example.yaml"/> |
| <exclude name="**/tools/cqlstress-example.yaml"/> |
| <exclude name="**/tools/cqlstress-insanity-example.yaml"/> |
| <exclude name="**/tools/cqlstress-lwt-example.yaml"/> |
| <!-- NOTICE files --> |
| <exclude NAME="**/NOTICE.md"/> |
| <!-- LICENSE files --> |
| <exclude NAME="**/LICENSE.md"/> |
| </fileset> |
| </rat:report> |
| <exec executable="grep" outputproperty="rat.failed.files" failifexecutionfails="false"> |
| <arg line="-A5 'Unapproved licenses' ${build.dir}/rat.txt"/> |
| </exec> |
| <fail message="Some files have missing or incorrect license information. Check RAT report in ${build.dir}/rat.txt for more details! \n ${rat.failed.files}"> |
| <condition> |
| <and> |
| <not> |
| <resourcecontains resource="${build.dir}/rat.txt" substring="0 Unknown Licenses" casesensitive="false" /> |
| </not> |
| </and> |
| </condition> |
| </fail> |
| </target> |
| |
| <target name="_write_java_license_headers" depends="_rat_init"> |
| <java classname="org.apache.rat.Report" fork="true" |
| output="${build.dir}/rat-report.log"> |
| <classpath refid="rat.classpath" /> |
| <arg value="-a" /> |
| <arg value="--force" /> |
| <arg value="interface/thrift" /> |
| </java> |
| </target> |
| |
| <target name="write-java-license-headers" unless="without.rat" description="Add missing java license headers"> |
| <antcall target="_write_java_license_headers" /> |
| </target> |
| |
| <target name="_assert_rat_output"> |
| <fail message="The rat report at build/rat.txt was not generated. Please ensure that the rat-check task is able to run successfully. For dev builds only, touch build/rat.txt to skip this check"> |
| <condition> |
| <not> |
| <available file="build/rat.txt" /> |
| </not> |
| </condition> |
| </fail> |
| </target> |
| |
| </project> |