From 88dcba3482df33f47a0b89c0811a96abf0609840 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Wed, 19 Jun 2013 16:31:55 -0700 Subject: [PATCH] Packaging|ubuntu, issue #954: Generate debian/changelog from main CHANGELOG.md --- packaging/ubuntu/Makefile | 18 +- packaging/ubuntu/changelog | 246 ---------------------------- packaging/ubuntu/parse_changelog.py | 23 +++ 3 files changed, 31 insertions(+), 256 deletions(-) delete mode 100644 packaging/ubuntu/changelog create mode 100755 packaging/ubuntu/parse_changelog.py diff --git a/packaging/ubuntu/Makefile b/packaging/ubuntu/Makefile index dbdf1af7a9..f82892c813 100644 --- a/packaging/ubuntu/Makefile +++ b/packaging/ubuntu/Makefile @@ -1,6 +1,6 @@ # Ubuntu package Makefile # -# Dependencies: debhelper autotools-dev devscripts golang +# Dependencies: debhelper autotools-dev devscripts golang-stable # 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 @@ -9,12 +9,9 @@ # 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/') +VERSION=$(shell sed -En '0,/^\#\# /{s/^\#\# ([^ ]+).+/\1/p}' ../../CHANGELOG.md) all: # Compile docker. Used by dpkg-buildpackage. @@ -35,18 +32,19 @@ ubuntu: # 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 + cd ${BUILD_SRC}/${GITHUB_PATH}; git checkout v${VERSION} && 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} + ./parse_changelog.py < ../../CHANGELOG.md > ${BUILD_SRC}/debian/changelog # 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_NAME}_${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}; tar czf ../${PKG_NAME}_${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 @@ -56,7 +54,7 @@ ubuntu: # 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}; dpkg-source -x ${BUILD_SRC}/../${PKG_NAME}_${VERSION}-1.dsc cd ${BUILD_SRC}/${PKG_NAME}-${VERSION}; debuild -S -sa - cd ${BUILD_SRC};dput ppa:dotcloud/lxc-docker ${DOCKER_FVERSION}_source.changes + cd ${BUILD_SRC};dput ppa:dotcloud/lxc-docker ${PKG_NAME}_${VERSION}-1_source.changes rm -rf ${BUILD_SRC} diff --git a/packaging/ubuntu/changelog b/packaging/ubuntu/changelog deleted file mode 100644 index ef7efba473..0000000000 --- a/packaging/ubuntu/changelog +++ /dev/null @@ -1,246 +0,0 @@ -lxc-docker (0.4.2-1) precise; urgency=low - - Packaging: Bumped version to work around an Ubuntu bug - - -- dotCloud Mon, 17 Jun 2013 00:00:00 -0700 - -lxc-docker (0.4.1-1) precise; urgency=low - - Builder: don't ignore last line in Dockerfile when it doesn't end with \n - - Client: allow multiple params in inspect - - Client: Print the container id before the hijack in `docker run` - - Remote Api: Add flag to enable cross domain requests - - Remote Api/Client: Add images and containers sizes in docker ps and docker images - - Registry: add regexp check on repo's name - - Registry: Move auth to the client - - Registry: Remove login check on pull - - Runtime: Configure dns configuration host-wide with 'docker -d -dns' - - Runtime: Detect faulty DNS configuration and replace it with a public default - - Runtime: allow docker run : - - Runtime: you can now specify public port (ex: -p 80:4500) - - Runtime: improved image removal to garbage-collect unreferenced parents - - Vagrantfile: Add the rest api port to vagrantfile's port_forward - - Upgrade to Go 1.1 - - -- dotCloud Mon, 17 Jun 2013 00:00:00 -0700 - -lxc-docker (0.4.0-1) precise; urgency=low - - Introducing Builder: 'docker build' builds a container, layer by layer, from a source repository containing a Dockerfile - - Introducing Remote API: control Docker programmatically using a simple HTTP/json API - - Runtime: various reliability and usability improvements - - -- dotCloud Mon, 03 Jun 2013 00:00:00 -0700 - -lxc-docker (0.3.4-1) precise; urgency=low - - Builder: 'docker build' builds a container, layer by layer, from a source repository containing a Dockerfile - - Builder: 'docker build -t FOO' applies the tag FOO to the newly built container. - - Runtime: interactive TTYs correctly handle window resize - - Runtime: fix how configuration is merged between layers - - Remote API: split stdout and stderr on 'docker run' - - Remote API: optionally listen on a different IP and port (use at your own risk) - - Documentation: improved install instructions. - - -- dotCloud Thu, 30 May 2013 00:00:00 -0700 - - -lxc-docker (0.3.3-1) precise; urgency=low - - Registry: Fix push regression - - Various bugfixes - - -- dotCloud Thu, 23 May 2013 00:00:00 -0700 - - -lxc-docker (0.3.2-1) precise; urgency=low - - Runtime: Store the actual archive on commit - - Registry: Improve the checksum process - - Registry: Use the size to have a good progress bar while pushing - - Registry: Use the actual archive if it exists in order to speed up the push - - Registry: Fix error 400 on push - - -- dotCloud Fri, 9 May 2013 00:00:00 -0700 - - -lxc-docker (0.3.1-1) precise; urgency=low - - Builder: Implement the autorun capability within docker builder - - Builder: Add caching to docker builder - - Builder: Add support for docker builder with native API as top level command - - Runtime: Add go version to debug infos - - Builder: Implement ENV within docker builder - - Registry: Add docker search top level command in order to search a repository - - Images: output graph of images to dot (graphviz) - - Documentation: new introduction and high-level overview - - Documentation: Add the documentation for docker builder - - Website: new high-level overview - - Makefile: Swap "go get" for "go get -d", especially to compile on go1.1rc - - Images: fix ByParent function - - Builder: Check the command existance prior create and add Unit tests for the case - - Registry: Fix pull for official images with specific tag - - Registry: Fix issue when login in with a different user and trying to push - - Documentation: CSS fix for docker documentation to make REST API docs look better. - - Documentation: Fixed CouchDB example page header mistake - - Documentation: fixed README formatting - - Registry: Improve checksum - async calculation - - Runtime: kernel version - don't show the dash if flavor is empty - - Documentation: updated www.docker.io website. - - Builder: use any whitespaces instead of tabs - - Packaging: packaging ubuntu; issue #510: Use goland-stable PPA package to build docker - - -- dotCloud Fri, 8 May 2013 00:00:00 -0700 - - -lxc-docker (0.3.0-1) precise; urgency=low - - Registry: Implement the new registry - - Documentation: new example: sharing data between 2 couchdb databases - - Runtime: Fix the command existance check - - Runtime: strings.Split may return an empty string on no match - - Runtime: Fix an index out of range crash if cgroup memory is not - - Documentation: Various improvments - - Vagrant: Use only one deb line in /etc/apt - - -- dotCloud Fri, 5 May 2013 00:00:00 -0700 - - -lxc-docker (0.2.2-1) precise; urgency=low - - Support for data volumes ('docker run -v=PATH') - - Share data volumes between containers ('docker run -volumes-from') - - Improved documentation - - Upgrade to Go 1.0.3 - - Various upgrades to the dev environment for contributors - - -- dotCloud Fri, 3 May 2013 00:00:00 -0700 - - -lxc-docker (0.2.1-1) precise; urgency=low - - - 'docker commit -run' bundles a layer with default runtime options: command, ports etc. - - Improve install process on Vagrant - - New Dockerfile operation: "maintainer" - - New Dockerfile operation: "expose" - - New Dockerfile operation: "cmd" - - Contrib script to build a Debian base layer - - 'docker -d -r': restart crashed containers at daemon startup - - Runtime: improve test coverage - - -- dotCloud Wed, 1 May 2013 00:00:00 -0700 - - -lxc-docker (0.2.0-1) precise; urgency=low - - - Runtime: ghost containers can be killed and waited for - - Documentation: update install intructions - - Packaging: fix Vagrantfile - - Development: automate releasing binaries and ubuntu packages - - Add a changelog - - Various bugfixes - - -- dotCloud Mon, 23 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.8-1) precise; urgency=low - - - Dynamically detect cgroup capabilities - - Issue stability warning on kernels <3.8 - - 'docker push' buffers on disk instead of memory - - Fix 'docker diff' for removed files - - Fix 'docker stop' for ghost containers - - Fix handling of pidfile - - Various bugfixes and stability improvements - - -- dotCloud Mon, 22 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.7-1) precise; urgency=low - - - Container ports are available on localhost - - 'docker ps' shows allocated TCP ports - - Contributors can run 'make hack' to start a continuous integration VM - - Streamline ubuntu packaging & uploading - - Various bugfixes and stability improvements - - -- dotCloud Thu, 18 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.6-1) precise; urgency=low - - - Record the author an image with 'docker commit -author' - - -- dotCloud Wed, 17 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.5-1) precise; urgency=low - - - Disable standalone mode - - Use a custom DNS resolver with 'docker -d -dns' - - Detect ghost containers - - Improve diagnosis of missing system capabilities - - Allow disabling memory limits at compile time - - Add debian packaging - - Documentation: installing on Arch Linux - - Documentation: running Redis on docker - - Fixed lxc 0.9 compatibility - - Automatically load aufs module - - Various bugfixes and stability improvements - - -- dotCloud Wed, 17 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.4-1) precise; urgency=low - - - Full support for TTY emulation - - Detach from a TTY session with the escape sequence `C-p C-q` - - Various bugfixes and stability improvements - - Minor UI improvements - - Automatically create our own bridge interface 'docker0' - - -- dotCloud Tue, 9 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.3-1) precise; urgency=low - - - Choose TCP frontend port with '-p :PORT' - - Layer format is versioned - - Major reliability improvements to the process manager - - Various bugfixes and stability improvements - - -- dotCloud Thu, 4 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.2-1) precise; urgency=low - - - Set container hostname with 'docker run -h' - - Selective attach at run with 'docker run -a [stdin[,stdout[,stderr]]]' - - Various bugfixes and stability improvements - - UI polish - - Progress bar on push/pull - - Use XZ compression by default - - Make IP allocator lazy - - -- dotCloud Wed, 3 Apr 2013 00:00:00 -0700 - - -lxc-docker (0.1.1-1) precise; urgency=low - - - Display shorthand IDs for convenience - - Stabilize process management - - Layers can include a commit message - - Simplified 'docker attach' - - Fixed support for re-attaching - - Various bugfixes and stability improvements - - Auto-download at run - - Auto-login on push - - Beefed up documentation - - -- dotCloud Sun, 31 Mar 2013 00:00:00 -0700 - - -lxc-docker (0.1.0-1) precise; urgency=low - - - First release - - Implement registry in order to push/pull images - - TCP port allocation - - Fix termcaps on Linux - - Add documentation - - Add Vagrant support with Vagrantfile - - Add unit tests - - Add repository/tags to ease image management - - Improve the layer implementation - - -- dotCloud Sat, 23 Mar 2013 00:00:00 -0700 diff --git a/packaging/ubuntu/parse_changelog.py b/packaging/ubuntu/parse_changelog.py new file mode 100755 index 0000000000..d19a3424e1 --- /dev/null +++ b/packaging/ubuntu/parse_changelog.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python + +'Parse main CHANGELOG.md from stdin outputing on stdout the ubuntu changelog' + +import sys,re, datetime + +on_block=False +for line in sys.stdin.readlines(): + line = line.strip() + if line.startswith('# ') or len(line) == 0: + continue + if line.startswith('## '): + if on_block: + print '\n -- dotCloud {0}\n'.format(date) + version, date = line[3:].split() + date = datetime.datetime.strptime(date, '(%Y-%m-%d)').strftime( + '%a, %d %b %Y 00:00:00 -0700') + on_block = True + print 'lxc-docker ({0}-1) precise; urgency=low'.format(version) + continue + if on_block: + print ' ' + line +print '\n -- dotCloud {0}'.format(date)