* debian/rules:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 22 Mar 2012 18:29:53 +0000 (19:29 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 22 Mar 2012 18:29:53 +0000 (19:29 +0100)
  - do not sed in configure.in to set the version-number
* prepare-release:
  - add as a small script to lazy check and prepare releases

.bzr-builddeb/default.conf
debian/changelog
debian/rules
prepare-release [new file with mode: 0755]

index 9c55498..c33445b 100644 (file)
@@ -1,2 +1,6 @@
 [BUILDDEB]
 native = true
+
+[HOOKS]
+pre-export = ./prepare-release pre-export
+post-build = ./prepare-release post-build
index 72ecc2f..6eee11b 100644 (file)
@@ -51,8 +51,12 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low
     - bump Standards-Version to 3.9.3 (no changes needed)
   * doc/apt-get.8.xml:
     - typofix: respect → respecting, thanks Mike Erickson! (Closes: #664833)
+  * debian/rules:
+    - do not sed in configure.in to set the version-number
+  * prepare-release:
+    - add as a small script to lazy check and prepare releases
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 22 Mar 2012 12:53:34 +0100
+ -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 22 Mar 2012 19:23:57 +0100
 
 apt (0.8.16~exp13) experimental; urgency=low
 
index b819460..4b95106 100755 (executable)
@@ -34,9 +34,6 @@ build:
 
 PKG=apt
 DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS)
-APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' | sed -e 's/\+.*$$//')
-APT_CONFVER=$(shell sed -n -e 's/^PACKAGE_VERSION="\(.*\)"/\1/p' configure.in)
-APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g')
 
 # Determine the build directory to use
 BASE=.
@@ -53,17 +50,6 @@ ifeq ($(words $(BLD)),0)
 override BLD := ./build
 endif
 
-# Rebuild configure.in to have the correct version from the change log
-ifneq ($(APT_DEBVER),$(APT_CONFVER))
-ifneq ($(APT_DEBVER),)
-.PHONY: configure.in
-configure.in:
-       sed -e 's/$(APT_CONFVER)/$(APT_DEBVER)/' $@ > $@.$$$$ && mv $@.$$$$ $@
-endif
-else
-configure.in:
-endif
-
 # APT Programs in apt-utils
 APT_UTILS=ftparchive sortpkgs extracttemplates internal-solver
 
diff --git a/prepare-release b/prepare-release
new file mode 100755 (executable)
index 0000000..e02157b
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+VERSION=$(dpkg-parsechangelog | sed -n -e '/^Version:/s/^Version: //p')
+DISTRIBUTION=$(dpkg-parsechangelog | sed -n -e '/^Distribution:/s/^Distribution: //p')
+
+if [ "$1" = 'pre-export' ]; then
+       if [ "$DISTRIBUTION" = 'sid' ]; then
+               echo >&2 '»sid« is not a valid distribution. Replace it with »unstable« for you'
+               sed -i -e 's/) sid; urgency=/) unstable; urgency=/' debian/changelog
+               DISTRIBUTION='unstable'
+       elif [ "$DISTRIBUTION" = 'UNRELEASED' ]; then
+               echo >&2 'WARNING: Remember to change to a valid distribution for release'
+               VERSION="$VERSION~$(date +%Y%m%d)"
+       fi
+
+       if [ "$(date +%Y-%m-%d)" != "$(grep --max-count=1 '^"POT-Creation-Date: .*\n"$' po/apt-all.pot | cut -d' ' -f 2)" -o \
+            "$(date +%Y-%m-%d)" != "$(grep --max-count=1 '^"POT-Creation-Date: .*\n"$' doc/po/apt-doc.pot | cut -d' ' -f 2)" ]; then
+               echo >&2 'POT files are not up-to-date. Execute »make update-po« for you…'
+               make update-po
+       fi
+
+       sed -i -e "s/^PACKAGE_VERSION=\".*\"$/PACKAGE_VERSION=\"${VERSION}\"/" configure.in
+elif [ "$1" = 'post-build' ]; then
+       if [ "$DISTRIBUTION" != "UNRELEASED" ]; then
+               echo >&2 "REMEMBER: Tag this release with »bzr tag ${VERSION}« if you are satisfied"
+       else
+               echo >&2 'REMEMBER: Change to a valid distribution before release'
+       fi
+else
+       echo >&1 "Usage:\t$0 pre-export
+\t$0 post-build
+
+If you use »bzr builddeb« you can leave this script alone as it will
+be run at the right places auto-magically. Otherwise you should use
+»pre-export« to update po and pot files as well as version numbering.
+»post-build« can be used to run some more or less useful checks later on."
+fi