On Mon, Mar 22, 2021 at 4:20 PM Bernhard Voelker <m...@bernhard-voelker.de> wrote: > > On 3/21/21 10:24 PM, Paul Eggert wrote: > > Today I updated Coreutils to current Gnulib, [...]. > > Thanks for getting rid of the diacrit module. > > The attached also updates the bootstrap script. > > BTW: what about a syntax-check rule to ensure we don't forget > to sync files physically copied into 'coreutils.git', > something (not much tested) like the following? > > Have a nice day, > Berny > > > diff --git a/cfg.mk b/cfg.mk > index d65bda2fd..0d103f66b 100644 > --- a/cfg.mk > +++ b/cfg.mk > @@ -797,6 +797,15 @@ sc_gitignore_missing: > sort | uniq -u | grep . && { echo '$(ME): Add above' \ > 'entries to .gitignore' >&2; exit 1; } || : > > +# Ensure that physical copies of gnulib files are in sync. > +sc_gnulib_copies_compare: > + @cd $(srcdir) \ > + && diff COPYING gnulib/doc/COPYINGv3 \ > + && diff bootstrap gnulib/build-aux/bootstrap \ > + && diff tests/init.sh gnulib/tests/init.sh \
Hi Berny, I like the idea. However, to impose it on everyone via a new sc_ rule, it'd have to work for arbitrarily-named gnulib (easy, use maint.mk's $(gnulib_dir)) and "tests" directories. Handling "tests" is harder: sed has "testsuite", and automake has "t", but with a loop over a few hard-coded names like those, you could find a good candidate for this, too. In the search for a test directory, I'd default to a user-overridable (either "tests" or deliberately empty by default) dir name and if that's not specified, set it via the search through that hard-coded list of likely names. For extra credit (to be run manually when out of sync), add a companion rule that will perform the update and git-commit the result with a proper log entry. Please use diff -u, not just "diff".