
Jim Meyering wrote:
Jim Meyering wrote:
Eric Blake wrote: ... remote/remote_protocol.c \ remote/remote_protocol.h
+EXTRA_DIST += remote_protocol-structs +check-local: remote_protocol-structs +.PHONY: remote_protocol-structs +remote_protocol-structs: + $(AM_V_GEN)if pdwtags --help > /dev/null 2>&1; then \ + pdwtags libvirt_driver_remote_la-remote_protocol.$(OBJEXT) \ + | perl -0777 -n \ + -e 'foreach my $$p (split m!\n\n/\* \d+ \*/\n!)' \ + -e ' { if ($$p =~ /^struct remote_/) {' \ + -e ' $$p =~ s!\t*/\*.*?\*/!!sg;' \ + -e ' $$p =~ s!\s+\n!\n!sg;' \ + -e ' $$p =~ s!\s+$$!!;' \ + -e ' print "$$p\n" } }' \ + > $@-t; \ + diff -u $@-t $@; st=$$?; rm -f $@-t; exit $$st; \ + else \ + echo 'WARNING: you lack pdwtags; skipping the $@ test'; \ + fi + EXTRA_DIST += remote/remote_protocol.x remote/rpcgen_fix.pl
# Mock driver, covering domains, storage, networks, etc diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs new file mode 100644 index 0000000..c8f81f3
Here's an incremental change that adds comments, moves the EXTRA_DIST assignment for remote_protocol.x "up" to be nearer the related code, and changes the new check to mention the name of the "dwarves" package with the skip warning.
diff --git a/src/Makefile.am b/src/Makefile.am index 1c92460..fe33cea 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -155,8 +155,18 @@ REMOTE_DRIVER_SOURCES = \ remote/remote_protocol.c \ remote/remote_protocol.h
-EXTRA_DIST += remote_protocol-structs -check-local: remote_protocol-structs +EXTRA_DIST += remote/remote_protocol.x remote/rpcgen_fix.pl + +# Ensure that we don't change the struct or member names or member ordering +# in remote_protocol.x The embedded perl below needs a few comments, and +# presumes you know what pdwtags output looks like: +# * use -0777 -n to slurp the entire file into $_. +# * the "split" splits on the /* DD */ comments, so that $p iterates +# through the struct definitions. +# * process only "struct remote_..." entries +# * remove comments and preceding TAB throughout +# * remove empty lines throughout +# * remove white space at end of buffer .PHONY: remote_protocol-structs remote_protocol-structs: $(AM_V_GEN)if pdwtags --help > /dev/null 2>&1; then \ @@ -172,9 +182,10 @@ remote_protocol-structs: diff -u $@-t $@; st=$$?; rm -f $@-t; exit $$st; \ else \ echo 'WARNING: you lack pdwtags; skipping the $@ test'; \ + echo 'WARNING: install the dwarves package to get pdwtags'; \ fi - -EXTRA_DIST += remote/remote_protocol.x remote/rpcgen_fix.pl +EXTRA_DIST += remote_protocol-structs +check-local: remote_protocol-structs
# Mock driver, covering domains, storage, networks, etc TEST_DRIVER_SOURCES = \
--------------------------- In case it helps, here's the full, amended patch:
From 180d4b2b3b79c768f4a6444181d7f021771fab66 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Fri, 7 May 2010 16:01:26 +0200 Subject: [PATCH] help avoid accidental remote_protocol.x changes
Daniel Veillard ACK'd this privately, so I've pushed it.