Merge pull request #897 from dotcloud/fix-overlapping-add

* Builder: ADD improvements: use tar for copy + automatically unpack local archives
diff --git a/FIXME b/FIXME
index aaf4c23..b88757e 100644
--- a/FIXME
+++ b/FIXME
@@ -16,15 +16,21 @@
 * Unify build commands and regular commands
 * Move source code into src/ subdir for clarity
 * Clean up the Makefile, it's a mess
-- docker buidl: show short IDs
-- docker build: on non-existent local path for ADD, don't show full absolute path on the host
-- mount into /dockerinit rather than /sbin/init
-- docker tag foo REPO:TAG
-- use size header for progress bar in pull
-- Clean up context upload in build!!!
-- Parallel pull
-- Ensure /proc/sys/net/ipv4/ip_forward is 1
-- Force DNS to public!
-- Always generate a resolv.conf per container, to avoid changing resolv.conf under thne container's feet
-- Save metadata with import/export
-- Upgrade dockerd without stopping containers
+* docker buidl: show short IDs
+* docker build: on non-existent local path for ADD, don't show full absolute path on the host
+* mount into /dockerinit rather than /sbin/init
+* docker tag foo REPO:TAG
+* use size header for progress bar in pull
+* Clean up context upload in build!!!
+* Parallel pull
+* Ensure /proc/sys/net/ipv4/ip_forward is 1
+* Force DNS to public!
+* Always generate a resolv.conf per container, to avoid changing resolv.conf under thne container's feet
+* Save metadata with import/export
+* Upgrade dockerd without stopping containers
+* bring back git revision info, looks like it was lost
+* Simple command to remove all untagged images
+* Simple command to clean up containers for disk space
+* Caching after an ADD
+* entry point config
+* bring back git revision info, looks like it was lost
diff --git a/Makefile b/Makefile
index 9527d3f..eca409c 100644
--- a/Makefile
+++ b/Makefile
@@ -46,6 +46,7 @@
 
 release: $(BINRELEASE)
 	s3cmd -P put $(BINRELEASE) s3://get.docker.io/builds/`uname -s`/`uname -m`/docker-$(RELEASE_VERSION).tgz
+	s3cmd -P put docker-latest.tgz s3://get.docker.io/builds/`uname -s`/`uname -m`/docker-latest.tgz
 
 srcrelease: $(SRCRELEASE)
 deps: $(DOCKER_DIR)
@@ -60,6 +61,7 @@
 $(BINRELEASE): $(SRCRELEASE)
 	rm -f $(BINRELEASE)
 	cd $(SRCRELEASE); make; cp -R bin docker-$(RELEASE_VERSION); tar -f ../$(BINRELEASE) -zv -c docker-$(RELEASE_VERSION)
+	cd $(SRCRELEASE); cp -R bin docker-latest; tar -f ../docker-latest.tgz -zv -c docker-latest
 
 clean:
 	@rm -rf $(dir $(DOCKER_BIN))
diff --git a/buildfile.go b/buildfile.go
index bb4ae72..de350a8 100644
--- a/buildfile.go
+++ b/buildfile.go
@@ -178,6 +178,8 @@
 	cmd := b.config.Cmd
 
 	// Create the container and start it
+	b.config.Cmd = []string{"/bin/sh", "-c", fmt.Sprintf("#(nop) ADD %s in %s", orig, dest)}
+	b.config.Image = b.image
 	container, err := b.builder.Create(b.config)
 	if err != nil {
 		return err
diff --git a/hack/dockerbuilder/Dockerfile b/hack/dockerbuilder/Dockerfile
index 5b2504d..50993ed 100644
--- a/hack/dockerbuilder/Dockerfile
+++ b/hack/dockerbuilder/Dockerfile
@@ -27,5 +27,4 @@
 # Copy dockerbuilder files into the container
 add	.       /src
 run	cp /src/dockerbuilder /usr/local/bin/ && chmod +x /usr/local/bin/dockerbuilder
-run	cp /src/s3cfg /.s3cfg
 cmd	["dockerbuilder"]
diff --git a/hack/dockerbuilder/dockerbuilder b/hack/dockerbuilder/dockerbuilder
index d2e4396..9fa05ce 100644
--- a/hack/dockerbuilder/dockerbuilder
+++ b/hack/dockerbuilder/dockerbuilder
@@ -13,12 +13,10 @@
 
 export REVISION=$1
 
-if [ -z "$AWS_ID" ]; then
-	echo "Warning: environment variable AWS_ID is not set. Won't upload to S3."
-fi
-
-if [ -z "$AWS_KEY" ]; then
-	echo "Warning: environment variable AWS_KEY is not set. Won't upload to S3."
+if [ -z "$AWS_ID" -o -z "$AWS_KEY" ]; then
+	echo "Warning: either AWS_ID or AWS_KEY environment variable not set. Won't upload to S3."
+else
+	/bin/echo -e "[default]\naccess_key = $AWS_ID\nsecret_key = $AWS_KEY\n" > /.s3cfg
 fi
 
 if [ -z "$GPG_KEY" ]; then
@@ -35,6 +33,9 @@
 	make release RELEASE_VERSION=$REVISION
 fi
 
+# Remove credentials from container
+rm -f /.s3cfg
+
 if [ -z "$NO_UBUNTU" ]; then
 	export PATH=`echo $PATH | sed 's#/usr/local/go/bin:##g'`
 	(cd packaging/ubuntu && make ubuntu)
diff --git a/hack/dockerbuilder/s3cfg b/hack/dockerbuilder/s3cfg
deleted file mode 100644
index 963af7d..0000000
--- a/hack/dockerbuilder/s3cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-[default]
-access_key = $AWS_ID
-secret_key = $AWS_KEY