mirror of
				https://github.com/moby/moby.git
				synced 2022-11-09 12:21:53 -05:00 
			
		
		
		
	Make "DEST" a make.sh construct instead of ad-hoc
Using "DEST" for our build artifacts inside individual bundlescripts was already well-established convention, but this officializes it by having `make.sh` itself set the variable and create the directory, also handling CYGWIN oddities in a single central place (instead of letting them spread outward from `hack/make/binary` like was definitely on their roadmap, whether they knew it or not; sneaky oddities). Signed-off-by: Andrew "Tianon" Page <admwiggin@gmail.com>
This commit is contained in:
		
							parent
							
								
									4c9fd72a91
								
							
						
					
					
						commit
						ac3388367b
					
				
					 15 changed files with 25 additions and 46 deletions
				
			
		
							
								
								
									
										23
									
								
								hack/make.sh
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								hack/make.sh
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -198,13 +198,13 @@ go_test_dir() {
 | 
			
		|||
		# if our current go install has -cover, we want to use it :)
 | 
			
		||||
		mkdir -p "$DEST/coverprofiles"
 | 
			
		||||
		coverprofile="docker${dir#.}"
 | 
			
		||||
		coverprofile="$DEST/coverprofiles/${coverprofile//\//-}"
 | 
			
		||||
		coverprofile="$ABS_DEST/coverprofiles/${coverprofile//\//-}"
 | 
			
		||||
		testcover=( -cover -coverprofile "$coverprofile" $coverpkg )
 | 
			
		||||
	fi
 | 
			
		||||
	(
 | 
			
		||||
		export DEST
 | 
			
		||||
		echo '+ go test' $TESTFLAGS "${DOCKER_PKG}${dir#.}"
 | 
			
		||||
		cd "$dir"
 | 
			
		||||
		export DEST="$ABS_DEST" # we're in a subshell, so this is safe -- our integration-cli tests need DEST, and "cd" screws it up
 | 
			
		||||
		test_env go test ${testcover[@]} -ldflags "$LDFLAGS" "${BUILDFLAGS[@]}" $TESTFLAGS
 | 
			
		||||
	)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -217,7 +217,7 @@ test_env() {
 | 
			
		|||
		DOCKER_USERLANDPROXY="$DOCKER_USERLANDPROXY" \
 | 
			
		||||
		DOCKER_HOST="$DOCKER_HOST" \
 | 
			
		||||
		GOPATH="$GOPATH" \
 | 
			
		||||
		HOME="$DEST/fake-HOME" \
 | 
			
		||||
		HOME="$ABS_DEST/fake-HOME" \
 | 
			
		||||
		PATH="$PATH" \
 | 
			
		||||
		TEMP="$TEMP" \
 | 
			
		||||
		TEST_DOCKERINIT_PATH="$TEST_DOCKERINIT_PATH" \
 | 
			
		||||
| 
						 | 
				
			
			@ -272,11 +272,9 @@ hash_files() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
bundle() {
 | 
			
		||||
	bundlescript=$1
 | 
			
		||||
	bundle=$(basename $bundlescript)
 | 
			
		||||
	echo "---> Making bundle: $bundle (in bundles/$VERSION/$bundle)"
 | 
			
		||||
	mkdir -p "bundles/$VERSION/$bundle"
 | 
			
		||||
	source "$bundlescript" "$(pwd)/bundles/$VERSION/$bundle"
 | 
			
		||||
	local bundle="$1"; shift
 | 
			
		||||
	echo "---> Making bundle: $(basename "$bundle") (in $DEST)"
 | 
			
		||||
	source "$SCRIPTDIR/make/$bundle" "$@"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main() {
 | 
			
		||||
| 
						 | 
				
			
			@ -302,7 +300,14 @@ main() {
 | 
			
		|||
		bundles=($@)
 | 
			
		||||
	fi
 | 
			
		||||
	for bundle in ${bundles[@]}; do
 | 
			
		||||
		bundle "$SCRIPTDIR/make/$bundle"
 | 
			
		||||
		export DEST="bundles/$VERSION/$(basename "$bundle")"
 | 
			
		||||
		# Cygdrive paths don't play well with go build -o.
 | 
			
		||||
		if [[ "$(uname -s)" == CYGWIN* ]]; then
 | 
			
		||||
			export DEST="$(cygpath -mw "$DEST")"
 | 
			
		||||
		fi
 | 
			
		||||
		mkdir -p "$DEST"
 | 
			
		||||
		ABS_DEST="$(cd "$DEST" && pwd -P)"
 | 
			
		||||
		bundle "$bundle"
 | 
			
		||||
		echo
 | 
			
		||||
	done
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
 | 
			
		||||
# see test-integration-cli for example usage of this script
 | 
			
		||||
 | 
			
		||||
export PATH="$DEST/../binary:$DEST/../dynbinary:$DEST/../gccgo:$DEST/../dyngccgo:$PATH"
 | 
			
		||||
export PATH="$ABS_DEST/../binary:$ABS_DEST/../dynbinary:$ABS_DEST/../gccgo:$ABS_DEST/../dyngccgo:$PATH"
 | 
			
		||||
 | 
			
		||||
if ! command -v docker &> /dev/null; then
 | 
			
		||||
	echo >&2 'error: binary or dynbinary must be run before .integration-daemon-start'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,16 +1,10 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
BINARY_NAME="docker-$VERSION"
 | 
			
		||||
BINARY_EXTENSION="$(binary_extension)"
 | 
			
		||||
BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION"
 | 
			
		||||
 | 
			
		||||
# Cygdrive paths don't play well with go build -o.
 | 
			
		||||
if [[ "$(uname -s)" == CYGWIN* ]]; then
 | 
			
		||||
	DEST=$(cygpath -mw $DEST)
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
source "${MAKEDIR}/.go-autogen"
 | 
			
		||||
 | 
			
		||||
echo "Building: $DEST/$BINARY_FULLNAME"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
# subshell so that we can export PATH without breaking other things
 | 
			
		||||
(
 | 
			
		||||
	source "${MAKEDIR}/.integration-daemon-start"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
# subshell so that we can export PATH without breaking other things
 | 
			
		||||
(
 | 
			
		||||
	source "$(dirname "$BASH_SOURCE")/.integration-daemon-start"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST="$1"
 | 
			
		||||
 | 
			
		||||
bundle_cover() {
 | 
			
		||||
	coverprofiles=( "$DEST/../"*"/coverprofiles/"* )
 | 
			
		||||
	for p in "${coverprofiles[@]}"; do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
# explicit list of os/arch combos that support being a daemon
 | 
			
		||||
declare -A daemonSupporting
 | 
			
		||||
daemonSupporting=(
 | 
			
		||||
| 
						 | 
				
			
			@ -21,13 +19,15 @@ fi
 | 
			
		|||
 | 
			
		||||
for platform in $DOCKER_CROSSPLATFORMS; do
 | 
			
		||||
	(
 | 
			
		||||
		mkdir -p "$DEST/$platform" # bundles/VERSION/cross/GOOS/GOARCH/docker-VERSION
 | 
			
		||||
		export DEST="$DEST/$platform" # bundles/VERSION/cross/GOOS/GOARCH/docker-VERSION
 | 
			
		||||
		mkdir -p "$DEST"
 | 
			
		||||
		ABS_DEST="$(cd "$DEST" && pwd -P)"
 | 
			
		||||
		export GOOS=${platform%/*}
 | 
			
		||||
		export GOARCH=${platform##*/}
 | 
			
		||||
		if [ -z "${daemonSupporting[$platform]}" ]; then
 | 
			
		||||
			export LDFLAGS_STATIC_DOCKER="" # we just need a simple client for these platforms
 | 
			
		||||
			export BUILDFLAGS=( "${ORIG_BUILDFLAGS[@]/ daemon/}" ) # remove the "daemon" build tag from platforms that aren't supported
 | 
			
		||||
		fi
 | 
			
		||||
		source "${MAKEDIR}/binary" "$DEST/$platform"
 | 
			
		||||
		source "${MAKEDIR}/binary"
 | 
			
		||||
	)
 | 
			
		||||
done
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
if [ -z "$DOCKER_CLIENTONLY" ]; then
 | 
			
		||||
	source "${MAKEDIR}/.dockerinit"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
if [ -z "$DOCKER_CLIENTONLY" ]; then
 | 
			
		||||
	source "${MAKEDIR}/.dockerinit-gccgo"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
BINARY_NAME="docker-$VERSION"
 | 
			
		||||
BINARY_EXTENSION="$(binary_extension)"
 | 
			
		||||
BINARY_FULLNAME="$BINARY_NAME$BINARY_EXTENSION"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
# subshell so that we can export PATH without breaking other things
 | 
			
		||||
(
 | 
			
		||||
	source "${MAKEDIR}/.integration-daemon-start"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
bundle_test_integration_cli() {
 | 
			
		||||
	go_test_dir ./integration-cli
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,6 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
set -e
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
: ${PARALLEL_JOBS:=$(nproc 2>/dev/null || echo 1)} # if nproc fails (usually because we don't have it), let's not parallelize by default
 | 
			
		||||
 | 
			
		||||
RED=$'\033[31m'
 | 
			
		||||
| 
						 | 
				
			
			@ -26,10 +25,9 @@ bundle_test_unit() {
 | 
			
		|||
			export LDFLAGS
 | 
			
		||||
			export TESTFLAGS
 | 
			
		||||
			export HAVE_GO_TEST_COVER
 | 
			
		||||
			export DEST
 | 
			
		||||
 | 
			
		||||
			# some hack to export array variables
 | 
			
		||||
			export BUILDFLAGS_FILE="buildflags_file"
 | 
			
		||||
			export BUILDFLAGS_FILE="$DEST/buildflags-file"
 | 
			
		||||
			( IFS=$'\n'; echo "${BUILDFLAGS[*]}" ) > "$BUILDFLAGS_FILE"
 | 
			
		||||
 | 
			
		||||
			if command -v parallel &> /dev/null; then
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +57,7 @@ go_run_test_dir() {
 | 
			
		|||
	while read dir; do
 | 
			
		||||
		echo
 | 
			
		||||
		echo '+ go test' $TESTFLAGS "${DOCKER_PKG}${dir#.}"
 | 
			
		||||
		precompiled="$DEST/precompiled/$dir.test$(binary_extension)"
 | 
			
		||||
		precompiled="$ABS_DEST/precompiled/$dir.test$(binary_extension)"
 | 
			
		||||
		if ! ( cd "$dir" && test_env "$precompiled" $TESTFLAGS ); then
 | 
			
		||||
			TESTS_FAILED+=("$dir")
 | 
			
		||||
			echo
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,5 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
DEST="$1"
 | 
			
		||||
CROSS="$DEST/../cross"
 | 
			
		||||
 | 
			
		||||
set -e
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,5 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
DEST=$1
 | 
			
		||||
 | 
			
		||||
PKGVERSION="${VERSION//-/'~'}"
 | 
			
		||||
# if we have a "-dev" suffix or have change in Git, let's make this package version more complex so it works better
 | 
			
		||||
if [[ "$VERSION" == *-dev ]] || [ -n "$(git status --porcelain)" ]; then
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +35,7 @@ PACKAGE_LICENSE="Apache-2.0"
 | 
			
		|||
# Build docker as an ubuntu package using FPM and REPREPRO (sue me).
 | 
			
		||||
# bundle_binary must be called first.
 | 
			
		||||
bundle_ubuntu() {
 | 
			
		||||
	DIR=$DEST/build
 | 
			
		||||
	DIR="$ABS_DEST/build"
 | 
			
		||||
 | 
			
		||||
	# Include our udev rules
 | 
			
		||||
	mkdir -p "$DIR/etc/udev/rules.d"
 | 
			
		||||
| 
						 | 
				
			
			@ -140,9 +138,9 @@ EOF
 | 
			
		|||
		# create lxc-docker-VERSION package
 | 
			
		||||
		fpm -s dir -C "$DIR" \
 | 
			
		||||
			--name "lxc-docker-$VERSION" --version "$PKGVERSION" \
 | 
			
		||||
			--after-install "$DEST/postinst" \
 | 
			
		||||
			--before-remove "$DEST/prerm" \
 | 
			
		||||
			--after-remove "$DEST/postrm" \
 | 
			
		||||
			--after-install "$ABS_DEST/postinst" \
 | 
			
		||||
			--before-remove "$ABS_DEST/prerm" \
 | 
			
		||||
			--after-remove "$ABS_DEST/postrm" \
 | 
			
		||||
			--architecture "$PACKAGE_ARCHITECTURE" \
 | 
			
		||||
			--prefix / \
 | 
			
		||||
			--depends iptables \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue