1
0
mirror of git://projects.qi-hardware.com/xburst-tools.git synced 2024-11-22 17:31:54 +02:00

xburst-tools: generate changelog from git log

Use git shortlog to generate a brief list of changes to put in
/usr/share/doc/xburst-tools/changelog.gz.  This list is built
at source package generation time because it requires access to
the git repository.  The commit ID corresponding to each upstream
release is extracted from debian/changelog since the repository
has no tags.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
This commit is contained in:
Jonathan Nieder 2010-04-05 09:23:20 -05:00 committed by Xiangfu Liu
parent 85156c22d8
commit bf43104a6a
5 changed files with 128 additions and 4 deletions

View File

@ -1,5 +1,6 @@
/xburst_stage1.bin /xburst_stage1.bin
/xburst_stage2.bin /xburst_stage2.bin
/changelog.upstream
/files /files

View File

@ -1,10 +1,16 @@
#!/bin/sh #!/bin/sh
# Generate debian/xburst_stage1.bin and debian/xburst_stage2.bin # Generate debian/xburst_stage1.bin, debian/xburst_stage2.bin,
# and debian/changelog.upstream.
#
# Uses debian/changelog and the git revision log.
# #
# Requires a mipsel-openwrt-linux- toolchain on the $PATH. # Requires a mipsel-openwrt-linux- toolchain on the $PATH.
set -e set -e
dpkg-parsechangelog --format rfc822 --all |
awk -f debian/changelog.upstream.awk
debian/rules firmware debian/rules firmware
cp -f xburst_stage1/xburst_stage1.bin debian/ cp -f xburst_stage1/xburst_stage1.bin debian/
cp -f xburst_stage2/xburst_stage2.bin debian/ cp -f xburst_stage2/xburst_stage2.bin debian/

View File

@ -1,6 +1,6 @@
xburst-tools (0.0+201004-0.1) local; urgency=low xburst-tools (0.0+201004-0.1) local; urgency=low
* New snapshot, taken from commit 89f0356. * New snapshot, taken from commit 89f0356
* debian/rules: * debian/rules:
- rewrite as a minimal rules file using dh - rewrite as a minimal rules file using dh
- add a get-orig-source target - add a get-orig-source target
@ -15,10 +15,11 @@ xburst-tools (0.0+201004-0.1) local; urgency=low
* Standards-Version: 3.8.4 * Standards-Version: 3.8.4
* use dpkg source format 3.0 (quilt) * use dpkg source format 3.0 (quilt)
-- Jonathan Nieder <jrnieder@gmail.com> Mon, 05 Apr 2010 07:12:09 -0500 -- Jonathan Nieder <jrnieder@gmail.com> Mon, 05 Apr 2010 08:50:37 -0500
xburst-tools (0.0+201002-1) unstable; urgency=low xburst-tools (0.0+201002-1) unstable; urgency=low
* from commit d8105c6d
* work with software usbboot * work with software usbboot
* don't wrtie cc data if page is empty * don't wrtie cc data if page is empty
* use autoconf-provided variables instead of absolute * use autoconf-provided variables instead of absolute
@ -28,6 +29,6 @@ xburst-tools (0.0+201002-1) unstable; urgency=low
xburst-tools (0.0+200906-1) unstable; urgency=low xburst-tools (0.0+200906-1) unstable; urgency=low
* Initial release (Closes: #535429). * Initial release, from commit 710c10c1 (Closes: #535429).
-- Xiangfu Liu <xiangfu@sharism.com> Tue, 30 Jun 2009 14:28:36 +0800 -- Xiangfu Liu <xiangfu@sharism.com> Tue, 30 Jun 2009 14:28:36 +0800

View File

@ -0,0 +1,113 @@
#!/bin/awk -f
# Generate debian/changelog.upstream from debian/changelog and
# the git revision log. Inspired by Gerrit Papes
# debian/changelog.upstream.sh, from the git-core Debian package.
#
# Requires a working /dev/stderr.
#
# Usage:
# dpkg-parsechangelog --format rfc822 --all |
# awk -f debian/changelog.upstream.awk
# If argument matches /^Version: /, return remaining text.
# Result is nonempty if and only if argument matches.
function version_line(line) {
if (line ~ /^Version: /) {
sub(/^Version: /, "", line);
return line;
}
return "";
}
# If argument matches /^\*.* from commit /, return remaining text.
# Result is nonempty if and only if argument matches.
function commit_id_line(line) {
if (line ~ / from commit /) {
sub(/^.* from commit /, "", line);
sub(/[(][Cc]loses.*/, "", line);
sub(/[^0-9a-f]*$/, "", line);
return line;
}
return "";
}
# Read standard input, scanning for a changelog entry of the
# form “* New snapshot, taken from commit <blah>.”
# Result is <blah>.
# Result is empty and writes a message to standard error if no such entry is
# found before the next Version: line with a different upstream
# version (or EOF).
# Argument is the upstream version sought.
function read_commit_id(upstream, line,version,corresponding_upstream,commit) {
while (getline line) {
version = version_line(line);
corresponding_upstream = version;
sub(/-[^-]*$/, "", corresponding_upstream);
if (version != "" && corresponding_upstream != upstream)
break;
commit = commit_id_line(line);
if (commit != "")
return commit;
}
print "No commit id for " upstream >> "/dev/stderr";
return "";
}
BEGIN {
last = "none";
last_cid = "none";
cl = "debian/changelog.upstream";
}
# Add a list of all revisions up to last to debian/changelog.upstream
# and set last = new_cid.
# new is a user-readable name for the commit new_cide.
function add_version(new,new_cid, limiter,versionline,command,line) {
if (last == "none") {
printf "" > cl;
last = new;
last_cid = new_cid;
return 0;
}
if (new == "none") {
versionline = "Version " last;
limiter = "";
} else {
versionline = "Version " last "; changes since " new ":";
limiter = new_cid "..";
}
print versionline >> cl;
gsub(/./, "-", versionline);
print versionline >> cl;
print "" >> cl;
command = "git shortlog \"" limiter last_cid "\" -- .";
while(command | getline line)
print line >> cl;
if (new != "none")
print "" >> cl;
last = new;
last_cid = new_cid;
}
{
version = version_line($0);
if (version != "") {
# strip Debian revision
upstream_version = version;
sub(/-[^-]*$/, "", upstream_version);
commit = read_commit_id(upstream_version);
if (commit == "")
exit 1;
add_version(upstream_version, commit);
}
}
END {
add_version("none", "none");
}

View File

@ -23,6 +23,9 @@ override_dh_auto_install:
dh_install debian/xburst_stage1.bin usr/share/xburst-tools/ dh_install debian/xburst_stage1.bin usr/share/xburst-tools/
dh_install debian/xburst_stage2.bin usr/share/xburst-tools/ dh_install debian/xburst_stage2.bin usr/share/xburst-tools/
override_dh_installchangelogs:
dh_installchangelogs debian/changelog.upstream
opt_optimize = CFLAGS="-g -O2" opt_optimize = CFLAGS="-g -O2"
opt_no_act = opt_no_act =
opt_quiet = opt_quiet =