# Ubuntu package Makefile # # Dependencies: debhelper autotools-dev devscripts golang # Notes: # Use 'make ubuntu' to create the ubuntu package # GPG_KEY environment variable needs to contain a GPG private key for package to be signed # and uploaded to docker PPA. # If GPG_KEY is not defined, make ubuntu will create docker package and exit with # status code 2 PKG_NAME=lxc-docker VERSION=$(shell head -1 changelog | sed 's/^.\+(\(.\+\)..).\+$$/\1/') GITHUB_PATH=github.com/dotcloud/docker DOCKER_VERSION=${PKG_NAME}_${VERSION} DOCKER_FVERSION=${PKG_NAME}_$(shell head -1 changelog | sed 's/^.\+(\(.\+\)).\+$$/\1/') BUILD_SRC=${CURDIR}/../../build_src VERSION_TAG=v$(shell head -1 changelog | sed 's/^.\+(\(.\+\)-[0-9]\+).\+$$/\1/') all: # Compile docker. Used by dpkg-buildpackage. cd src/${GITHUB_PATH}/docker; GOPATH=${CURDIR} go build install: # Used by dpkg-buildpackage mkdir -p ${DESTDIR}/usr/bin mkdir -p ${DESTDIR}/etc/init mkdir -p ${DESTDIR}/DEBIAN install -m 0755 src/${GITHUB_PATH}/docker/docker ${DESTDIR}/usr/bin install -o root -m 0755 debian/docker.upstart ${DESTDIR}/etc/init/docker.conf install debian/lxc-docker.prerm ${DESTDIR}/DEBIAN/prerm install debian/lxc-docker.postinst ${DESTDIR}/DEBIAN/postinst ubuntu: # This Makefile will compile the github master branch of dotcloud/docker # Retrieve docker project and its go structure from internet rm -rf ${BUILD_SRC} git clone $(shell git rev-parse --show-toplevel) ${BUILD_SRC}/${GITHUB_PATH} cd ${BUILD_SRC}/${GITHUB_PATH}; git checkout ${VERSION_TAG} && GOPATH=${BUILD_SRC} go get -d # Add debianization mkdir ${BUILD_SRC}/debian cp Makefile ${BUILD_SRC} cp -r * ${BUILD_SRC}/debian cp ../../README.md ${BUILD_SRC} # Cleanup for d in `find ${BUILD_SRC} -name '.git*'`; do rm -rf $$d; done rm -rf ${BUILD_SRC}/../${DOCKER_VERSION}.orig.tar.gz rm -rf ${BUILD_SRC}/pkg # Create docker debian files cd ${BUILD_SRC}; tar czf ../${DOCKER_VERSION}.orig.tar.gz . cd ${BUILD_SRC}; dpkg-buildpackage -us -uc rm -rf ${BUILD_SRC} # Sign package and upload it to PPA if GPG_KEY environment variable # holds a private GPG KEY if /usr/bin/test "$${GPG_KEY}" == ""; then exit 2; fi mkdir ${BUILD_SRC} # Import gpg signing key echo "$${GPG_KEY}" | gpg --allow-secret-key-import --import # Sign the package cd ${BUILD_SRC}; dpkg-source -x ${BUILD_SRC}/../${DOCKER_FVERSION}.dsc cd ${BUILD_SRC}/${PKG_NAME}-${VERSION}; debuild -S -sa cd ${BUILD_SRC};dput ppa:dotcloud/lxc-docker ${DOCKER_FVERSION}_source.changes rm -rf ${BUILD_SRC}