Commit 3facb352 authored by Tim Hockin's avatar Tim Hockin

Godeps licenses

Fix the licenses script and run it.
parent 537602d2
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -30,6 +30,9 @@ set -o errexit ...@@ -30,6 +30,9 @@ set -o errexit
set -o nounset set -o nounset
set -o pipefail set -o pipefail
export LANG=C
export LC_ALL=C
############################################################################### ###############################################################################
# Manage the state of LICENSE/COPYRIGHT files # Manage the state of LICENSE/COPYRIGHT files
# Default operation is to check to see if a file is in the state file. # Default operation is to check to see if a file is in the state file.
...@@ -56,7 +59,7 @@ file_state () { ...@@ -56,7 +59,7 @@ file_state () {
# Get return code from grep itself # Get return code from grep itself
# Redirect stderr so that a missing state file returns 1 quietly # Redirect stderr so that a missing state file returns 1 quietly
LANG=C egrep -wq "^${file}$" ${GODEPS_STATE} 2>/dev/null egrep -wq "^${file}$" ${GODEPS_STATE} 2>/dev/null
} }
############################################################################### ###############################################################################
...@@ -68,12 +71,11 @@ file_state () { ...@@ -68,12 +71,11 @@ file_state () {
process_content () { process_content () {
local package=$1 local package=$1
local type=$2 local type=$2
local f
local package_root local package_root
local ensure_pattern local ensure_pattern
local package_root_url local package_root_url
local dir_root local dir_root
local godeps_root
local find_maxdepth local find_maxdepth
local find_names local find_names
local -a local_files=() local -a local_files=()
...@@ -103,7 +105,7 @@ process_content () { ...@@ -103,7 +105,7 @@ process_content () {
github.com/*|golang.org/*|bitbucket.org/*) github.com/*|golang.org/*|bitbucket.org/*)
package_root=$(echo ${package} |awk -F/ '{print $1"/"$2"/"$3 }') package_root=$(echo ${package} |awk -F/ '{print $1"/"$2"/"$3 }')
;; ;;
*) *)
package_root=$(echo ${package} |awk -F/ '{print $1"/"$2 }') package_root=$(echo ${package} |awk -F/ '{print $1"/"$2 }')
;; ;;
esac esac
...@@ -111,50 +113,47 @@ process_content () { ...@@ -111,50 +113,47 @@ process_content () {
package_root_url="${package_root/github.com/raw.githubusercontent.com}" package_root_url="${package_root/github.com/raw.githubusercontent.com}"
# Find LOCAL files first - only root and package level # Find LOCAL files first - only root and package level
for dir_root in ${package} ${package_root}; do local_files=($(
for godeps_root in ${GODEPS_SRC} ${GODEPS_AUX}; do for dir_root in ${package} ${package_root}; do
[[ -d ${godeps_root}/${dir_root} ]] || continue [[ -d ${DEPS_DIR}/${dir_root} ]] || continue
# One (set) of these is fine # One (set) of these is fine
local_files+=($(find ${godeps_root}/${dir_root} \ find ${DEPS_DIR}/${dir_root} \
-xdev -follow -maxdepth ${find_maxdepth} \ -xdev -follow -maxdepth ${find_maxdepth} \
-type f "${find_names[@]}")) -type f "${find_names[@]}"
done done | sort -u))
done
# Uniquely sort the array
IFS=$'\n' local_files=($(LC_ALL=C sort -u <<<"${local_files[*]-}"))
unset IFS
local index
local f
index="${package}-${type}"
FILE_CONTENT[${index}]=""
for f in ${local_files[@]-}; do for f in ${local_files[@]-}; do
# Find some copyright info in any file and break # Find some copyright info in any file and break
egrep -wq "${ensure_pattern}" ${f} && \ if egrep -wq "${ensure_pattern}" "${f}"; then
FILE_CONTENT[${package}-${type}]="$(cat ${f})" && break FILE_CONTENT[${index}]=$(cat "${f}")
break
fi
done done
# When nothing is set at the package level, try package_root
: ${FILE_CONTENT[${package}-${type}]:="${FILE_CONTENT[${package_root}-${type}]-}"}
if [[ -z "${FILE_CONTENT[${package}-${type}]-}" ]]; then if [[ -z "${FILE_CONTENT[${index}]-}" ]]; then
# When nothing is set at the package level, try package_root
FILE_CONTENT[${index}]="${FILE_CONTENT[${package_root}-${type}]-}"
fi
if [[ -z "${FILE_CONTENT[${index}]-}" ]]; then
# Last ditch attempt - see if we can get it from version control
for f in ${remote_files[@]}; do for f in ${remote_files[@]}; do
file_state "${package_root_url}/master/${f}" && continue file_state "${package_root_url}/master/${f}" && continue
if ! FILE_CONTENT[${package}-${type}]="$(\ if ! FILE_CONTENT[${index}]="$(\
curl --fail --retry 10 -s \ curl --fail --retry 10 -s \
https://${package_root_url}/master/${f})" || \ https://${package_root_url}/master/${f})" || \
! $(echo "${FILE_CONTENT[${package}-${type}]-}" |\ ! $(echo "${FILE_CONTENT[${index}]-}" |\
egrep -qw "${ensure_pattern}") || egrep -qw "${ensure_pattern}") ||
[[ "${FILE_CONTENT[${package}-${type}]-}" =~ \<\ *html ]] ; then [[ "${FILE_CONTENT[${index}]-}" =~ \<\ *html ]] ; then
((CREATE_MISSING)) || file_state -a "${package_root_url}/master/${f}" ((CREATE_MISSING)) || file_state -a "${package_root_url}/master/${f}"
continue continue
fi fi
if [[ -n "${FILE_CONTENT[${package}-${type}]-}" ]]; then
if ((CREATE_MISSING)); then
mkdir -p ${GODEPS_AUX}/${package_root}
echo "${FILE_CONTENT[${package}-${type}]}" \
> ${GODEPS_AUX}/${package_root}/${f}
fi
break
fi
done done
fi fi
} }
...@@ -163,8 +162,11 @@ process_content () { ...@@ -163,8 +162,11 @@ process_content () {
############################################################################# #############################################################################
# MAIN # MAIN
############################################################################# #############################################################################
KUBE_ROOT="${KUBE_ROOT:-$(cd "$(dirname "${BASH_SOURCE}")/.." && pwd -P)}" KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
cd "${KUBE_ROOT}" source "${KUBE_ROOT}/hack/lib/init.sh"
LICENSE_ROOT="${LICENSE_ROOT:-${KUBE_ROOT}}"
cd "${LICENSE_ROOT}"
# If CREATE_MISSING=1, the state file is ignored # If CREATE_MISSING=1, the state file is ignored
CREATE_MISSING=0 CREATE_MISSING=0
...@@ -177,8 +179,7 @@ fi ...@@ -177,8 +179,7 @@ fi
GODEPS_STATE="Godeps/.license_file_state" GODEPS_STATE="Godeps/.license_file_state"
GODEPS_LICENSE_FILE=${1:-"Godeps/LICENSES"} GODEPS_LICENSE_FILE=${1:-"Godeps/LICENSES"}
GODEPS_SRC="Godeps/_workspace/src" DEPS_DIR="vendor"
GODEPS_AUX="Godeps/_workspace_aux/src"
declare -Ag FILE_CONTENT declare -Ag FILE_CONTENT
...@@ -187,20 +188,20 @@ declare -Ag FILE_CONTENT ...@@ -187,20 +188,20 @@ declare -Ag FILE_CONTENT
echo "================================================================================" echo "================================================================================"
echo "= Kubernetes licensed under: =" echo "= Kubernetes licensed under: ="
echo echo
cat ${KUBE_ROOT}/LICENSE cat ${LICENSE_ROOT}/LICENSE
) > ${GODEPS_LICENSE_FILE} ) > ${GODEPS_LICENSE_FILE}
# Loop through every package in Godeps.json # Loop through every package in Godeps.json
for PACKAGE in $(cat Godeps/Godeps.json |\ for PACKAGE in $(cat Godeps/Godeps.json | \
jq -r ".Deps[].ImportPath" | LC_ALL=C sort -f); do jq -r ".Deps[].ImportPath" | \
sort -f); do
process_content ${PACKAGE} LICENSE process_content ${PACKAGE} LICENSE
process_content ${PACKAGE} COPYRIGHT process_content ${PACKAGE} COPYRIGHT
# display content # display content
echo echo
echo "================================================================================" echo "================================================================================"
echo "= ${GODEPS_SRC}/${PACKAGE} licensed under: =" echo "= ${DEPS_DIR}/${PACKAGE} licensed under: ="
echo echo
if [[ -z "${FILE_CONTENT[${PACKAGE}-LICENSE]-}" && if [[ -z "${FILE_CONTENT[${PACKAGE}-LICENSE]-}" &&
......
...@@ -18,7 +18,7 @@ set -o errexit ...@@ -18,7 +18,7 @@ set -o errexit
set -o nounset set -o nounset
set -o pipefail set -o pipefail
KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE}")/.." && pwd -P)" KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
source "${KUBE_ROOT}/hack/lib/init.sh" source "${KUBE_ROOT}/hack/lib/init.sh"
readonly branch=${1:-${KUBE_VERIFY_GIT_BRANCH:-master}} readonly branch=${1:-${KUBE_VERIFY_GIT_BRANCH:-master}}
...@@ -28,8 +28,10 @@ if ! [[ ${KUBE_FORCE_VERIFY_CHECKS:-} =~ ^[yY]$ ]] && \ ...@@ -28,8 +28,10 @@ if ! [[ ${KUBE_FORCE_VERIFY_CHECKS:-} =~ ^[yY]$ ]] && \
fi fi
# create a nice clean place to put our new godeps # create a nice clean place to put our new godeps
# must be in the user dir (e.g. KUBE_ROOT) in order for the docker volume mount to work with docker-machine on macs # must be in the user dir (e.g. KUBE_ROOT) in order for the docker volume mount
_tmpdir="$(mktemp -d "${KUBE_ROOT}/kube-godep-licenses.XXXXXX")" # to work with docker-machine on macs
mkdir -p "${KUBE_ROOT}/_tmp"
_tmpdir="$(mktemp -d "${KUBE_ROOT}/_tmp/kube-godep-licenses.XXXXXX")"
echo "Created workspace: ${_tmpdir}" echo "Created workspace: ${_tmpdir}"
function cleanup { function cleanup {
echo "Removing workspace: ${_tmpdir}" echo "Removing workspace: ${_tmpdir}"
...@@ -37,11 +39,12 @@ function cleanup { ...@@ -37,11 +39,12 @@ function cleanup {
} }
trap cleanup EXIT trap cleanup EXIT
cp -r "${KUBE_ROOT}/LICENSE" "${_tmpdir}/"
cp -r "${KUBE_ROOT}/Godeps" "${_tmpdir}/Godeps" cp -r "${KUBE_ROOT}/Godeps" "${_tmpdir}/Godeps"
ln -s "${KUBE_ROOT}/LICENSE" "${_tmpdir}"
ln -s "${KUBE_ROOT}/vendor" "${_tmpdir}"
# Update Godep Licenses # Update Godep Licenses
KUBE_ROOT="${_tmpdir}" "${KUBE_ROOT}/hack/update-godep-licenses.sh" LICENSE_ROOT="${_tmpdir}" "${KUBE_ROOT}/hack/update-godep-licenses.sh"
# Compare Godep Licenses # Compare Godep Licenses
if ! _out="$(diff -Naupr ${KUBE_ROOT}/Godeps/LICENSES ${_tmpdir}/Godeps/LICENSES)"; then if ! _out="$(diff -Naupr ${KUBE_ROOT}/Godeps/LICENSES ${_tmpdir}/Godeps/LICENSES)"; then
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment