
On 10/18/2012 02:23 PM, Cole Robinson wrote:
AUTHORS.in tracks the maintainers, as well as some folks who were previously in AUTHORS but don't have a git commit with proper attribution.
Generated output is sorted alphabetically and lacks pretty spacing, so tweak AUTHORS.in to follow the same format.
Additionally, drop the syntax-check rule that previously validated AUTHORS against git log. ---
+The primary maintainers and people with commit access rights: + +Daniel Veillard <veillard@redhat.com> +Daniel Berrange <berrange@redhat.com> +Richard W.M. Jones <rjones@redhat.com>
Can we sort this portions of AUTHORS.in, to match the fact that the rest of our file will be in sorted order?
@@ -91,3 +92,12 @@ gen-ChangeLog: rm -f $(distdir)/ChangeLog; \ mv $(distdir)/cl-t $(distdir)/ChangeLog; \ fi + +.PHONY: gen-AUTHORS +gen-AUTHORS: + if test -d .git; then \ + out="$$(git log --pretty=format:'%aN <%aE>' | sort | uniq)" && \
I know we require POSIX sh in our GNUmakefile, but in Makefile.am, it's probably still safer to use `` instead of $(). Why not use 'sort -u' and shave off a process?
+ cat AUTHORS.in | perl -p -e "s/#authorlist#/$$out/" > \
VPATH build needs $(srcdir)/AUTHORS.in. Useless use of cat.
+ $(distdir)/AUTHORS-tmp && \ + mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS ; \ + fi
I think the use of perl is overkill; sed can do the same. Oh, and sed can also get us to aligned columns, by exploiting the fact that none of our names contain ~ (admittedly, my sed script now looks like line noise): if test -d .git; then \ out=`git log \ --pretty='%aN~~~~~~~~~~~~~~~~~~~~~~~~<%aE>\' | \ sort -u | \ sed 's/^\(.\{24\}[^~]*\)~*</\1~</; s/~/ /g'` && \ sed -e '/#authorlist#/ c\' -e "$$out" -e'' \ < $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \ mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS \ fi For that matter, we can even get fancy with sed to merge both the list of git authors and old authors from AUTHORS.in in one go. First, prep AUTHORS.in correctly: ... Patches have also been contributed by: #1# older names #2# [....send patches to get your name here....] then you can do something like: if test -d .git; then \ out=`{ sed -n '/#1#/,/#2#/ < $(srcdir)/AUTHORS.in; \ git log \ --pretty='%aN~~~~~~~~~~~~~~~~~~~~~~~~<%aE>\'; } | \ sort -u | \ sed 's/^\(.\{24\}[^~]*\)~*</\1~</; s/~/ /g'` && \ sed -e '/#1#/,/#2#/ c\' -e "$$out" -e'' \ < $(srcdir)/AUTHORS.in > $(distdir)/AUTHORS-tmp && \ mv -f $(distdir)/AUTHORS-tmp $(distdir)/AUTHORS \ fi (I only lightly tested the above, it may still need tweaks)
diff --git a/bootstrap.conf b/bootstrap.conf index f8b7c4d..c40db3d 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -223,7 +223,8 @@ if `(${PYTHON_CONFIG-python-config} --version; PYTHON_CONFIG=true fi
-# Automake requires that ChangeLog exist. +# Automake requires that ChangeLog and AUTHORS exist. +touch AUTHORS || exit 1 touch ChangeLog || exit 1
Merge these two lines into one: touch AUTHORS ChangeLog || exit 1 -- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org