You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by tb...@apache.org on 2019/04/24 12:47:28 UTC

[brooklyn-dist] branch master updated: enhance license generation scripts

This is an automated email from the ASF dual-hosted git repository.

tbouron pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-dist.git


The following commit(s) were added to refs/heads/master by this push:
     new a22d6d4  enhance license generation scripts
     new 48bea88  Merge pull request #142 from ahgittin/licensing
a22d6d4 is described below

commit a22d6d48033ab25ca4edb56ee4aeb3d0bc9cd0e0
Author: Alex Heneveld <al...@cloudsoftcorp.com>
AuthorDate: Tue Apr 23 09:47:32 2019 +0100

    enhance license generation scripts
    
    * make friendlier for downstream projects to reuse (--loadonly mode, --keep-metadata-files, extra args to maven)
    * search in linked directories
    * remove outdated/unsupported reporting instructions
---
 dist/licensing/README.md                      | 25 -------------------
 dist/licensing/generate-all.sh                | 35 ++++++++++++++++++++-------
 dist/licensing/generate-license-and-notice.sh | 18 +++++++++++---
 3 files changed, 41 insertions(+), 37 deletions(-)

diff --git a/dist/licensing/README.md b/dist/licensing/README.md
index 1f5323b..2a1d458 100644
--- a/dist/licensing/README.md
+++ b/dist/licensing/README.md
@@ -91,31 +91,6 @@ If so:
 3. Add the reference to the project in `generate-all.sh` 
 
 
-# Reports
-
-In the usage/dist/ project of Brooklyn
-
-To see a tree of license info:
-
-    mvn org.heneveld.maven:license-audit-maven-plugin:report \
-        -Dformat=summary \
-        -DlicensesPreferred=ASL2,ASL,EPL1,BSD-2-Clause,BSD-3-Clause,CDDL1.1,CDDL1,CDDL \
-        -DoverridesFile=licensing/overrides.yaml \
-        -DextrasFiles=`cat licensing/extras-files`
-
-## CSV License Report
-
-If you need to generate a CSV report of license usage, e.g. for use in a spreadsheet:
-
-    mvn org.heneveld.maven:license-audit-maven-plugin:report \
-        -Dformat=csv \
-        -DlistDependencyIdOnly=true \
-        -DsuppressExcludedDependencies=true \
-        -DlicensesPreferred=ASL2,ASL,EPL1,BSD-2-Clause,BSD-3-Clause,CDDL1.1,CDDL1,CDDL \
-        -DoverridesFile=licensing/overrides.yaml \
-        -DextrasFiles=`cat licensing/extras-files` \
-        -DoutputFile=dependencies-licenses.csv
-
 ## Other Tools
 
 The command `mvn project-info-reports:dependencies` is a different tool for checking mvn dependencies;
diff --git a/dist/licensing/generate-all.sh b/dist/licensing/generate-all.sh
index b8566ad..4c1a0a1 100755
--- a/dist/licensing/generate-all.sh
+++ b/dist/licensing/generate-all.sh
@@ -32,6 +32,11 @@ EOF
 while [ ! -z "$*" ] ; do
 
   if [ "$1" == "--help" ]; then usage ; exit 0; fi
+  if [ "$1" == "--loadonly" ]; then
+    LOAD_ONLY=true
+    shift
+    continue
+  fi
 
   usage
   echo Unexpected argument: $1
@@ -39,9 +44,8 @@ while [ ! -z "$*" ] ; do
 
 done
 
-
-REF_DIR=$(pushd $(dirname $0) > /dev/null ; pwd -P ; popd > /dev/null)
-PARTS_DIR=$REF_DIR/parts
+REF_DIR=$(pushd $(dirname $BASH_SOURCE) > /dev/null ; pwd -P ; popd > /dev/null)
+if [ -z "$PARTS_DIR" ] ; then PARTS_DIR=$REF_DIR/parts ; fi
 ROOT_DIR=$REF_DIR/../../..
 MVN_OUTFILE=$REF_DIR/notices.autogenerated
 
@@ -63,6 +67,7 @@ make_for() {
   OUT=${PROJ}/$2
   MODE=$3
   SEARCH_ROOT=$4
+  ARGS=$5
   if [ -z "$SEARCH_ROOT" ] ; then SEARCH_ROOT=$PROJ ; fi
 
   echo Generating for $PROJ mode $MODE to $2...
@@ -77,11 +82,12 @@ make_for() {
       --license $PARTS_DIR/license-top \
       --license $PARTS_DIR/license-deps \
       --notice $PARTS_DIR/notice-top --notice-compute-with-flags "
-        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find $SEARCH_ROOT -name "license-inclusions-source-*"))
+        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find -L $SEARCH_ROOT -name "license-inclusions-source-*"))
         -DonlyExtras=true" \
       --notice $PARTS_DIR/notice-additional --notice-compute-with-flags "
-        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find $SEARCH_ROOT -name "license-inclusions-binary-*"))" \
-      --libraries ${REF_DIR} ${SEARCH_ROOT}
+        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find -L $SEARCH_ROOT -name "license-inclusions-binary-*"))" \
+      $ARGS \
+      --libraries ${REF_DIR} ${SEARCH_ROOT} 
     
   elif [ "$MODE" == "binary-primary" ] ; then
 
@@ -90,8 +96,9 @@ make_for() {
       --license $PARTS_DIR/license-top \
       --license $PARTS_DIR/license-deps \
       --notice $PARTS_DIR/notice-top --notice-compute-with-flags "
-        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find $SEARCH_ROOT -name "license-inclusions-source-*" -or -name "license-inclusions-binary-*"))" \
-      --libraries ${REF_DIR} ${SEARCH_ROOT}
+        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find -L $SEARCH_ROOT -name "license-inclusions-source-*" -or -name "license-inclusions-binary-*"))" \
+      $ARGS \
+      --libraries ${REF_DIR} ${SEARCH_ROOT} 
       
   elif [ "$MODE" == "binary-omitted" ] ; then
 
@@ -100,8 +107,9 @@ make_for() {
       --license $PARTS_DIR/license-top \
       --license $PARTS_DIR/license-deps \
       --notice $PARTS_DIR/notice-top --notice-compute-with-flags "
-        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find $SEARCH_ROOT -name "license-inclusions-source-*"))
+        -DextrasFiles=$(prefix_and_join_array "" ":" "" $(find -L $SEARCH_ROOT -name "license-inclusions-source-*"))
         -DonlyExtras=true" \
+      $ARGS \
       --libraries ${REF_DIR} ${SEARCH_ROOT}
 
   else
@@ -116,6 +124,12 @@ make_for() {
 
 # build licenses for all the projects
 
+if [ "$LOAD_ONLY" == "true" ] ; then 
+  echo loaded license generation libraries
+
+else
+
+
 # include deps in files pulled in to Go CLI binary builds
 make_for $ROOT_DIR/brooklyn-client/cli/ release/license/files binary-primary
 make_for $ROOT_DIR/brooklyn-client/cli/ . binary-additional
@@ -149,3 +163,6 @@ cp $OUT/{NOTICE,LICENSE} $PROJ/../karaf/apache-brooklyn/src/main/resources/
 # finally in root project list everything
 make_for $ROOT_DIR/brooklyn-dist/dist ../.. binary-additional $ROOT_DIR
 
+
+fi
+
diff --git a/dist/licensing/generate-license-and-notice.sh b/dist/licensing/generate-license-and-notice.sh
index 120cf27..09a8175 100755
--- a/dist/licensing/generate-license-and-notice.sh
+++ b/dist/licensing/generate-license-and-notice.sh
@@ -27,6 +27,7 @@ Usage:  generate-license-and-notice.sh [-o <output-dir>] [-s <suffix>]
           [ [--notice <header-file>]
             [--notice-compute-with-flags <flags>]* ]+
           [--libraries <search-dir> [<seach-dir>]+]
+          [--keep-metadata-file <filename>]
 
 Generates LICENSE and NOTICE files based on dependencies.
 
@@ -91,6 +92,13 @@ while [ ! -z "$*" ] ; do
     continue
   fi
 
+  if [ "$1" == "--keep-metadata-file" ] ; then
+    shift
+    KEEP_METADATA_FILE=$1
+    shift
+    continue
+  fi
+
   usage
   echo Unexpected argument: $1
   exit 1 
@@ -130,9 +138,9 @@ TEMP_MVN_OUT=`pwd -P`/temp.license-maven-output.log
 
 echo > $TEMP_METADATA_FILE
 if [ ! -z "$LIBRARIES" ] ; then
-  echo Using metadata libraries $(find "${LIBRARIES[@]}" -name "license-metadata-*")
+  echo Using metadata libraries from "${LIBRARIES[@]}": $(find -L "${LIBRARIES[@]}" -name "license-metadata-*")
   # sort by filename first, then by path, with later ones alpha being the ones that are ultimately used
-  for x in $(find "${LIBRARIES[@]}" -name "license-metadata-*" | sed 's/\(.*\/\)\(.*\)/\2 --- \1\2/' | sort | sed 's/.* --- //') ; do
+  for x in $(find -L "${LIBRARIES[@]}" -name "license-metadata-*" | sed 's/\(.*\/\)\(.*\)/\2 --- \1\2/' | sort | sed 's/.* --- //') ; do
     cat $x >> $TEMP_METADATA_FILE
   done
 fi
@@ -182,7 +190,7 @@ MISSING=()
 if [ -s ${TEMP_LICENSES_}2 ] ; then
   echo Adding ${LICENSES[$I]} to $LICENSE_FILE and `cat ${TEMP_LICENSES_}2 | wc -l` licenses:`cat ${TEMP_LICENSES_}2 | sed 's/^/ /' | paste -sd ';' -`
   cat ${LICENSES[${#LICENSES[@]}-1]} >> $LICENSE_FILE
-  LICENSE_TEXT_PATHS=$(find ${LIBRARIES[@]} -name license-text) 
+  LICENSE_TEXT_PATHS=$(find -L ${LIBRARIES[@]} -name license-text) 
 
   while read x ; do
   
@@ -219,6 +227,10 @@ fi
 cp $NOTICE_FILE $NOTICE_FILE.tmp
 grep -v "License URL:" $NOTICE_FILE.tmp > $NOTICE_FILE
 
+if [ ! -z "$KEEP_METADATA_FILE" ] ; then
+  cp $TEMP_METADATA_FILE $KEEP_METADATA_FILE
+fi
+
 rm -f $NOTICE_FILE.tmp $TEMP_METADATA_FILE $TEMP_NOTICE_DATA_FILE $TEMP_MVN_OUT ${TEMP_LICENSES_}*
 
 exit 0