From 15f88494e43f950bdd640687a7c32b1fcc5f022c Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Fri, 8 Aug 2014 18:00:10 -0400 Subject: [PATCH] add custom git log to debian changelog script --- .gitignore | 4 ++++ Makefile | 5 +++-- debian/changelog | 27 ---------------------- debian/files | 1 - tools/git2debcl | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 65 insertions(+), 30 deletions(-) delete mode 100644 debian/changelog delete mode 100644 debian/files create mode 100755 tools/git2debcl diff --git a/.gitignore b/.gitignore index 620d3dc8..5c51ed50 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,7 @@ *.lai *.la *.a + +# Debian files +debian/files +debian/changelog diff --git a/Makefile b/Makefile index f80acccf..fb221a4f 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ INSTALL = $(shell which install) MKTEMP = $(shell which mktemp) STRIP = $(shell which strip) PANDOC = $(shell which pandoc) +GIT2DEBCL = ./tools/git2debcl ifeq ($(PKGCONFIG),"") $(error "pkg-config not installed" @@ -108,7 +109,7 @@ clean: $(FIND) -name "*~" -delete distclean: clean - $(GIT) clean -ifd + $(GIT) clean -fd install: $(TARGET) $(MANPAGE) $(INSTALL) -m 0755 -D "$(TARGET)" "$(INSTALLTARGET)" @@ -137,7 +138,7 @@ tarball: clean changelog man deb: $(eval VERSION := $(shell $(GIT) describe --always --tags --dirty)) - $(GIT) dch --auto --release --new-version="$(VERSION)" + $(GIT2DEBCL) $(TARGET) $(VERSION) > debian/changelog $(GIT) buildpackage --git-ignore-new .PHONY: all clean install help diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 1a7eaab6..00000000 --- a/debian/changelog +++ /dev/null @@ -1,27 +0,0 @@ -mergerfs (1.1.0) trusty; urgency=medium - - * initial code commit - * fix building without libattr - * update build instructions in readme - * use {get,list,set}xattr to modify runtime - * use long instead of int to limit possibility of overflow in switch, closes #1 - * add FS_IOC_{GET}VERSION to ioctl - * remove statfs policy - * fs::make_path should check for forward slashes, add if missing - * remove stat'ing of files in readdir. closes #3 - * use eaccess to determine permissions for ffwp. closes #2 - * rework policy code - * add fgetattr. closes #5 - * when readdir's filler returns non-zero return ENOMEM. closes #7 - * enhance Makefile - * further Makefile enhancements - * fix free space calculations. closes #8 - * add debian package building - - -- Antonio SJ Musumeci Fri, 30 May 2014 21:32:19 -0400 - -mergerfs (1.0.0) trusty; urgency=medium - - * Initial commit - - -- Antonio SJ Musumeci Fri, 30 May 2014 21:28:09 -0400 diff --git a/debian/files b/debian/files deleted file mode 100644 index 8991ed0f..00000000 --- a/debian/files +++ /dev/null @@ -1 +0,0 @@ -mergerfs_1.1.0_amd64.deb utils optional diff --git a/tools/git2debcl b/tools/git2debcl new file mode 100755 index 00000000..c28523e1 --- /dev/null +++ b/tools/git2debcl @@ -0,0 +1,58 @@ +#!/usr/bin/python + +# The MIT License (MIT) + +# Copyright (c) 2014 Antonio SJ Musumeci + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. + +import sys +import subprocess + +packagename = sys.argv[1] +version = sys.argv[2] + +args = ["git", "tag", '-l'] +tags = subprocess.check_output(args) +tags = tags.split() +tags.reverse() + +if version in tags: + idx = tags.index(version) + tags = tags[idx:] + tags = zip(tags,tags) +else: + tags = zip(tags,tags) + tags.insert(0,(version,'HEAD')) + +tag = tags[0] +for prev in tags[1:]: + print packagename, "("+tag[0]+")", "trusty;", "urgency=medium" + print + + args = ['git','log','--oneline',tag[1]+'...'+prev[1]] + for line in subprocess.check_output(args).strip().split('\n'): + print " * " + line + print + + args = ['git','log','-1','--format=-- %an <%ae> %cD',tag[1]] + authorandtime = subprocess.check_output(args).strip() + print ' ' + authorandtime + '\n' + + tag = prev