diff --git a/LICENSE b/LICENSE index e862fd9d55bc..ff498644aa45 100644 --- a/LICENSE +++ b/LICENSE @@ -317,8 +317,6 @@ Apache-2.0 license + MIT License ======================================================================================= - src/serialization/cnpy.h (Copy of the AL2 License available at the top of this file, MIT License available at licenses/MIT) - src/serialization/cnpy.cc (Copy of the AL2 License available at the top of this file, MIT License available at licenses/MIT) 3rdparty/onnx-tensorrt/third_party/onnx/tools/protoc-gen-mypy.py (Copy of the referenced AL2 License available at top of current file) ======================================================================================= diff --git a/rat-excludes b/rat-excludes index 787853668ba2..39d0cfefcb3a 100644 --- a/rat-excludes +++ b/rat-excludes @@ -21,7 +21,7 @@ # The following commands can be used to run a Apache RAT check locally - # Docker based 1-click-method: -# ci/build.py -p ubuntu_cpu test_rat_check +# ci/build.py -p ubuntu_rat /work/runtime_functions.sh nightly_test_rat_check # You can also manually download Apache RAT. For installation on Ubuntu: # sudo apt-get install maven -y #>/dev/null diff --git a/tools/create_source_archive.sh b/tools/create_source_archive.sh new file mode 100755 index 000000000000..6691a8b5cfc0 --- /dev/null +++ b/tools/create_source_archive.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# 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. + +set -e + +MXNET_TAG=$1 +CMD=$(basename $0) + +if [[ -z "$MXNET_TAG" ]]; then + echo "Usage: $CMD " + echo " where is the git tag you want to build a release for." + echo "" + echo " example: $CMD 1.8.0.rc3" + exit -1 +fi + +TAR=tar +if [[ $(uname) == "Darwin" ]]; then + TAR=gtar +fi + +# make sure gnu tar is installed +which $TAR > /dev/null +if [[ $? -ne 0 ]]; then + echo "It looks like you don't have GNU tar installed." + echo "" + echo "For OSX users, please install gnu-tar using the command 'brew install gnu-tar'" + exit -1 +fi + +SRCDIR=apache-mxnet-src-$MXNET_TAG-incubating +TARBALL=$SRCDIR.tar.gz + +# clone the repo and checkout the tag +echo "Cloning the MXNet repository..." +git clone -b $MXNET_TAG --depth 1 --recurse-submodules \ + --shallow-submodules https://github.com/apache/incubator-mxnet.git \ + $SRCDIR +pushd $SRCDIR + +#### IMPORTANT #### +# Remove artifacts which do not comply with the Apache Licensing Policy +echo "Removing unwanted artifacts..." +for d in $(cat tools/source-exclude-artifacts.txt | grep -v "^#"); do + if [[ -e $d ]]; then + echo "Removing $d from source archive..." + rm -rf $d + fi +done + +# Remove lines from LICENSE file for artifacts removed from source tree +echo "Removing lines from LICENSE for artifacts removed from source archive..." +for d in $(cat tools/source-exclude-artifacts.txt | grep -v "^#"); do + line=$(grep "$d" LICENSE) + if [[ $? -eq 0 && ! -z "$line" ]]; then + echo "Removing line from LICENSE: $line" + cat LICENSE | grep -v "$d" > LICENSE.new + mv -f LICENSE.new LICENSE + fi +done + +# Remove other artifacts we do not want contained in the source archive +rm -rf .DS_Store +rm -rf CODEOWNERS +rm -rf .github + +# make sure all files referenced in LICENSE file still exist +echo "Making sure all paths referenced in LICENSE file exist..." +for f in $(cat LICENSE | grep "^\s*[0-9A-Za-z]*/[0-9A-Za-z]*" | awk '{print $1}'); do + echo "Checking if $f exists in source..." + if [[ ! -e $f ]]; then + echo -n "ERROR: Path $f is referenced in LICENSE file, but is not present " + echo "in source directory. Please update the LICENSE file." + exit -1 + fi +done + +# run Apache RAT license checker to verify all source files are compliant +echo "Running Apache RAT License Checker..." +ci/build.py -p ubuntu_rat /work/runtime_functions.sh nightly_test_rat_check + + +popd + +echo "Creating tarball $TARBALL..." +$TAR --exclude-vcs -czf $TARBALL $SRCDIR + +# sign the release tarball and create checksum file +gpg --armor --output $TARBALL.asc --detach-sig $TARBALL +shasum -a 512 $TARBALL > $TARBALL.sha512 + diff --git a/tools/source-exclude-artifacts.txt b/tools/source-exclude-artifacts.txt new file mode 100644 index 000000000000..88f02b583a6e --- /dev/null +++ b/tools/source-exclude-artifacts.txt @@ -0,0 +1,24 @@ +# 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. + +# NOTE: +# This is a list of artifacts in the repository that should +# not be included in source release archives due to licensing +# restrictions. + +R-package +3rdparty/mkldnn/doc