top


Log

Author Commit Date CI Message
Akim Demaille 7f7d18eb 2019-06-22T17:52:16 maintainer-makefile: restore portability to non-GNU awks Reported by Tim Rühsen. * top/maint.mk (AWK): New variable. Use it. (sc_prohibit_gnu_make_extensions): Skip if $(AWK) is not gawk.
Akim Demaille 97e4b248 2019-05-18T08:46:00 maintainer-makefile: catch uses of $< in non-implicit rules * top/maint.mk (sc_prohibit_magic_number_exit): New.
Bruno Haible cff31e5c 2019-04-01T23:15:56 gitsub.sh: New file. * top/gitsub.sh: New file.
Bernhard Voelker e3970fb9 2018-11-29T09:06:26 long-options: add parse_gnu_standard_options_only Discussed in https://bugs.gnu.org/33468 . * lib/long-options.c (parse_long_options): Use EXIT_SUCCESS instead of 0. (parse_gnu_standard_options_only): Add function to process the GNU default options --help and --version and fail for any other unknown long or short option. See https://gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html . * lib/long-options.h (parse_gnu_standard_options_only): Declare it. * modules/long-options (depends-on): Add stdbool, exitfail. * top/maint.mk (sc_prohibit_long_options_without_use): Update syntax-check rule, add new function name.
Bruno Haible 8089c009 2019-01-06T22:30:13 maintainer-makefile: Make the configure.ac section optional. * top/maint.mk (GREP, SED): Define if not defined.
Eric Blake 70eb4687 2019-01-03T09:19:27 maintainer-makefile: fix typo in previous patch * top/maint.mk (_sc_search_regexp): Fix my accidental corruption of Roman's work. Signed-off-by: Eric Blake <eblake@redhat.com>
Roman Bolshakov 7216e3e8 2019-01-02T14:08:00 maint.mk: Replace grep with $(GREP) A project that uses maint.mk can specify regular expressions that are not supported in system grep. Autoconf can discover an alias for GNU grep and set it in GREP but it takes no effect for maint.mk The patch provides an ability to use GNU grep if it was discovered by autoconf and by calling GNU grep we don't get the messages in syntax-check: prohibit_diagnostic_without_format grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression grep: empty (sub)expression Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com> Message-Id: <20181213153453.38123-3-r.bolshakov@yadro.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Roman Bolshakov 64e5ddb0 2018-12-13T18:34:52 maint.mk: Split long argument lists $(VC_LIST_EXCEPT) is usually expanded into arguments for a command. When a project contains too many, some operating systems can't pass all the arguments because they hit the limit of arguments. FreeBSD and macOS are known to have the exec limit of 256k memory used by arguments. More on the issue: http://lists.gnu.org/archive/html/bug-gnulib/2015-08/msg00019.html https://www.redhat.com/archives/libvir-list/2015-August/msg00758.html xargs without flags can be used to limit number of arguments, coupled with use of the shell's built-in echo which is not subject to the exec limits. Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com> Message-Id: <20181213153453.38123-2-r.bolshakov@yadro.com> Signed-off-by: Eric Blake <eblake@redhat.com>
Paul Eggert e6633650 2019-01-01T00:25:11 maint: Run 'make update-copyright'
Bernhard Voelker c58eb574 2018-10-28T13:06:30 maintainer-makefile: fix syntax-check rule for "same.h" * top/maint.mk (sc_prohibit_same_without_use): Adjust regex to check for 'same_nameat', too.
Jim Meyering 29596f8d 2018-06-19T15:47:53 README-release: also run any check-very-expensive tests * top/README-release: Adjust instructions so they run the check-very-expensive tests when there is such a target.
Jim Meyering 67f682f1 2018-02-03T16:57:36 maint.mk: exempt "/proc/filesystems" from "file system" syntax check * top/maint.mk (sc_file_system): Don't complain about "/proc/filesystems".
Paul Eggert 281b825e 2018-01-01T00:57:25 maint: Run 'make update-copyright'
Jim Meyering 2a3dbe99 2017-11-12T09:13:30 maint: shorten https://lists.gnu.org/archive/html/... links Each /archive/html/ part can be replace with /r/. Run this to induce the change: git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g' * ChangeLog: Perform that substitution. * Makefile: Likewise. * STATUS-libposix: Likewise. * build-aux/bootstrap: Likewise. * doc/maintain.texi: Likewise. * gnulib-tool: Likewise. * lib/allocator.h: Likewise. * lib/argp-ba.c: Likewise. * lib/argp-pv.c: Likewise. * lib/canon-host.c: Likewise. * lib/canonicalize-lgpl.c: Likewise. * lib/float.in.h: Likewise. * lib/fstat.c: Likewise. * lib/getdelim.c: Likewise. * lib/getprogname.c: Likewise. * lib/glthread/thread.h: Likewise. * lib/intprops.h: Likewise. * lib/mbsrtowcs-state.c: Likewise. * lib/safe-read.c: Likewise. * lib/signal.in.h: Likewise. * lib/stat.c: Likewise. * lib/stdbool.in.h: Likewise. * lib/stdio-impl.h: Likewise. * lib/stdio.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/timespec.h: Likewise. * lib/wcsrtombs-state.c: Likewise. * m4/alloca.m4: Likewise. * m4/extern-inline.m4: Likewise. * m4/fstatat.m4: Likewise. * m4/gnulib-common.m4: Likewise. * m4/lib-ignore.m4: Likewise. * m4/printf.m4: Likewise. * m4/regex.m4: Likewise. * m4/stat-size.m4: Likewise. * m4/std-gnu11.m4: Likewise. * m4/stdbool.m4: Likewise. * m4/sys_types_h.m4: Likewise. * m4/threadlib.m4: Likewise. * m4/vararrays.m4: Likewise. * pygnulib/GLImport.py: Likewise. * tests/test-exp.h: Likewise. * tests/test-exp2.h: Likewise. * tests/test-expm1.h: Likewise. * tests/test-fflush2.c: Likewise. * tests/test-getopt_long.h: Likewise. * tests/test-intprops.c: Likewise. * tests/test-log.h: Likewise. * tests/test-log10.h: Likewise. * tests/test-log1p.h: Likewise. * tests/test-log2.h: Likewise. * tests/test-printf-posix.h: Likewise. * tests/test-regex.c: Likewise. * tests/test-snprintf-posix.h: Likewise. * tests/test-sprintf-posix.h: Likewise. * tests/test-stdalign.c: Likewise. * tests/test-stdbool.c: Likewise. * tests/test-vasnprintf-posix.c: Likewise. * tests/test-vasprintf-posix.c: Likewise. * top/maint.mk: Likewise.
Bruno Haible 03eac9d3 2017-09-14T00:35:56 all: Replace many more http URLs by https URLs. Update stale URLs. * users.txt: Remove mention of 'newts'. * lib/localename.c: Update comment about LANG_SOTHO.
Paul Eggert ca35d468 2017-09-13T00:48:18 all: prefer https: URLs
Paul Eggert aab4ea7a 2017-09-12T16:36:27 maintainer-makefile: FTP -> HTTPS * top/maint.mk (url_dir_list, ftp-gnu): Use HTTPS protocol instead of FTP, which is planned to be decommissioned on 2017-11-01.
Jim Meyering 8e2bc0b5 2017-05-13T18:18:22 maint.mk: update regex to reflect 2013 addition of "assume" to verify.h * top/maint.mk (sc_prohibit_verify_without_use): Don't reject a source file that uses the assume macro, claiming that verify.h is unused.
Jim Meyering 94386a13 2017-01-10T07:19:02 maint.mk: enforce spelling of "timestamp" (i.e., no space) * top/maint.mk (prohibit_undesirable_word_seq_RE_): Also disallow /\btime\s+stamps?\b/. Prefer "timestamp".
Pádraig Brady 4bbd45b4 2017-01-02T21:31:49 maint.mk: support parallel execution of coverage * top/maint.mk (coverage): Run dependencies serially, thus supporting parallel processing of each one, particularly build-coverage, which builds and runs tests.
Paul Eggert a3fd683d 2017-01-01T02:59:23 version-etc: new year * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
Eric Blake 5996001f 2016-12-30T20:37:10 maint.mk: hoist gnulib_dir definition earlier Commit 1894933 introduced a temporary warning during all uses of 'make': Can't open /lib/intprops.h: No such file or directory. due to an early evaluation of $(shell) prior to the default definition of $(gnulib_dir). While that has been fixed in commit ffff79d, hoisting the definition to the top will prevent further edits from inadvertently reintroducing the problem. * top/maint.mk (gnulib_dir): Move near top of file. Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering ffff79da 2016-12-31T01:31:59 maint.mk: do not always evaluate intprops-related shell * top/maint.mk (_intprops_names): Change := to just "=" to avoid using gnulib_dir undefined (gnulib_dir is defined later in the file, which will be fixed separately), and besides, there is no need to incur the cost of this shell invocation for every single use of this .mk file. Reported by Eric Blake in https://lists.gnu.org/archive/html/bug-gnulib/2016-12/msg00137.html
Jim Meyering 1894933d 2016-12-30T09:01:05 maint.mk: improve sc_prohibit_intprops_without_use * top/maint.mk (_intprops_names): Don't hard-code the list of symbol names. Instead, derive it on the fly.
Jim Meyering e9ae724b 2016-12-30T09:42:06 maint.mk: update list of intprops.h symbol names * top/maint.mk (_intprops_names): Regenerate the list of symbol names. This avoids a false failure of the sc_prohibit_intprops_without_use in grep.
Pino Toscano 38c0fe5c 2016-08-18T15:18:25 main.mk: remove sc_program_name There is no more need to use set_program_name in tools (getprogname is enough for most of the cases). * cfg.mk (local-checks-to-skip): Remove sc_program_name. * top/maint.mk (sc_program_name): Remove.
Ján Tomko 0fe8b3c8 2016-08-02T15:41:13 maint.mk: expand the prohibit_doubled_word regex This check has a static list of words that are checked for repetitions. Expand it before running the perl script to avoid using expensive captures. This decreases the cost for libvirt from 1.66s to 0.66s. * top/maint.mk (prohibit_doubled_word_expanded_): Define. (sc_prohibit_doubled_word): Use it.
Ján Tomko b23fd9d8 2016-07-26T16:28:16 maint.mk: speed up require_config_h_first Instead of spawning three processes per file, rewrite the check in perl and run it once for all the files. * top/maint.mk (perl_config_h_first_): Define. (sc_require_config_h_first): Use it in place of shell code.
Ján Tomko 04fd8821 2016-07-29T22:39:31 maint.mk: speed up sc_po_check sc_po_check would skip files based on their names, or on the existence of files with derived names. Rewrite it to use perl instead of shell to make the check faster. * top/maint.mk (perl_translatable_files_list_): Define. (sc_po_check): Use it.
Paul Eggert a4910b94 2016-04-13T00:06:36 intprops, mktime, strtol: assume two's complement These macros were not portable to every conforming C11 ones' complement platform. It's not worth the hassle of porting to some platforms that use ones' complement or signed magnitude, as such platforms are almost purely theoretical nowadays and porting even to some of them makes the code harder to review for little practical benefit. Problem reported by Florian Weimer in: https://sourceware.org/ml/libc-alpha/2016-04/msg00295.html * lib/intprops.h (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT) (TYPE_SIGNED_MAGNITUDE, _GL_INT_TWOS_COMPLEMENT): * lib/mktime.c (TYPE_TWOS_COMPLEMENT): * lib/strtol.c (TYPE_TWOS_COMPLEMENT, TYPE_ONES_COMPLEMENT) (TYPE_SIGNED_MAGNITUDE): Remove. All uses rewritten to assume two's complement, which is all we can reasonably test nowadays anyway. * top/maint.mk (_intprops_names): Remove the removed macros.
Paul Eggert 71090a2a 2016-01-01T00:56:19 version-etc: new year * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
Pádraig Brady 2a8b497f 2015-10-18T21:15:35 maint.mk: sc_tight_scope: remove extraneous expressions * top/maint.mk (tight_scope): This is not really required since commit 3ef58f46 as sed_wrap ensures we don't get an empty expression that matches all nm entries. But it does remove extraneous entries that may be confusing or cause issue in future maintenance.
Jim Meyering 37c054af 2015-10-17T19:18:01 maint.mk: _gl_TS_function_match: fix "extern" name extracting regexp * top/maint.mk (_gl_TS_function_match): This heuristic extern-function- name-extraction regexp mistakenly used \S+, and would mistakenly extract "*F" from "extern int *F()" rather than the desired "F". Use \w+ instead.
Jim Meyering 3ef58f46 2015-10-17T20:12:48 maint.mk: sc_tight_scope: factor and support OS X * top/maint.mk (_gl_tight_scope): Address three issues: - factor out four instances of code that wraps a string in "^...$" - allow nm-reported symbol names to have an optional leading "_" - add "main" to the list of ignored variable names, because on os x, "main" has nm-reported type "S" in the variable-checking section.
Pádraig Brady d5e367c5 2015-01-08T12:18:54 maint.mk: fix compatibility with OS X nm * top/maint.mk (_gl_tight_scope): Use the -g option to show exported items rather than the -e option which is ignored on all platforms except OS X where it gives an error. Reported by Assaf Gordon.
Paul Eggert b9bfe784 2015-01-01T01:38:23 version-etc: new year * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'.
Eric Blake 5be8d47e 2014-09-04T13:11:04 maintainer-makefile: add syntax check for useless ';;' Most instances of ;; in C code are mistakes, where the second semicolon is a no-op. This rule tries to make it easy to flag the typos occuring at the end of a statement. It intentionally does not flag for(;;) loops, and misses grammar problems in comments if the problem occurs in the middle of the line. Shell files (including configure.ac and Makefile.am, which can contain shell snippets) are too likely to use case statements where ;; is legitimate, so those are not scanned. * top/maint.mk (sc_prohibit_double_semicolon): New rule. Signed-off-by: Eric Blake <eblake@redhat.com>
Pádraig Brady 4044ca9a 2014-07-12T15:21:12 maint.mk: give projects more flexibilty in set_prog_name arguments * top/maint.mk (sc_program_name): Allow arguments other than argv[0] to be passed to set_program_name(). This is needed by the multicall coreutils program for example.
Eric Blake 9d5efe7d 2014-07-08T13:12:28 maint.mk: less syntax-check noise when SIGPIPE is ignored For a project with enough files, such as libvirt, vc-list-files can produce so much input that it can lead to SIGPIPE to earlier parts of a pipeline when later parts do a quick filter. Also, many buildbot environments (annoyingly) ignore SIGPIPE, which causes a number of tools to be rather chatty about reporting EPIPE write failures. It doesn't help that POSIX has standardized that the shell is unable to revert SIGPIPE to unignored status if it inherits it as ignored - otherwise, the solution would just be to re-enable SIGPIPE anywhere we expect to benefit from early filtering exits. Here's a short demonstration: $ ( trap '' PIPE; build-aux/vc-list-files | grep -l '\.c$' >/dev/null) sed: couldn't write 16 items to stdout: Broken pipe and a link to the much larger buildbot results against libvirt: http://honk.sigxcpu.org:8001/job/libvirt-syntax-check/2465/console with noise such as this, detracting from the later actual build failure it was reporting: > prohibit_argmatch_without_use > grep: write error > grep: write error > /bin/sed: couldn't write 25 items to stdout: Broken pipe > sed: couldn't write 1 item to stdout: Broken pipe > 0.46 prohibit_argmatch_without_use But look at the above example: we are piping data to grep -l, and then discarding that output. At most, data | grep -l will output "(standard input)", and exit early if the first match is found before the end of a page (causing SIGPIPE to the process feeding the pipe). It makes much more sense to use grep -l when searching for a subset of files that have a match among a larger set of file names passed as arguments, and NOT when used to filter stdin. Sure, we're burning a bit more CPU power by processing the full list instead of exiting early, but at least it cuts down on the noise. * top/maint.mk (_sc_header_without_use) (sc_require_config_h_first): Parse full list. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake d55899fd 2014-06-04T13:09:56 maintainer-makefile: delete obsolete code I noticed this while reading through the file to debug a different issue. The grace period mentioned in the comment has elapsed. * top/maint.mk (build_aux): Drop old code, as threatened. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 088f5049 2014-06-04T12:52:33 maintainer-makefile: avoid spurious error messages Ever since commit 3f51bf41, we are leaving garbage in the console if a user executes commands without first running configure, as shown in the following pseudo-transcript: $ git clone $sv/coreutils.git $ cd coreutils $ ./bootstrap $ make make: -n: Command not found There seems to be no Makefile in this directory. You must run ./configure before running 'make'. make: *** [abort-due-to-no-makefile] Error 1 The first line stems from the fact that we have a $(shell $(SED) -n) use, which gets unconditionally executed even though $(SED) is only guaranteed to be defined if Makefile was included. We also end up trying to invoke /vc-list-files to compute the set of syntax check rules to run due to a $(shell $(VC_LIST)), even though that file likely doesn't exist in the root directory, but where the error message was squelched. Since we already have the nice hooks in place to remind the user they haven't created Makefile yet, and since 'make syntax-check' makes no sense without a Makefile, it is easier to just avoid $(shell) computations of internal state associated with syntax check, by using the same conditional as GNUmakefile in determining if Makefile exists. * top/maint.mk (syntax-check): Guard definition and use of $(shell) by whether Makefile is present. Signed-off-by: Eric Blake <eblake@redhat.com>
Assaf Gordon 6ddb55d1 2014-04-18T19:34:45 maint.mk: Relax the copyright check to cater for non FSF projects * top/maint.mk (sc_copyright_check): Relax the check for $PACKAGE.texi to not require the "Free" suffix after the copyright years.
Eric Blake 3f51bf41 2014-02-20T06:56:42 maintainer-makefiles: use $(SED) for syntax check Roman Bogorodskiy reported that attempts to use 'make syntax-check' for libvirt on a BSD host was failing, due to libvirt's use of GNU sed constructs in cfg.mk. While libvirt could be patched to use only portable sed constructs, it is also worth making sed replaceable so that any maintainer can use a consistent sed program rather than being hardcoded to the first 'sed' on $PATH. * modules/maintainer-makefile (configure.ac): Check for sane sed. * top/maint.mk: Change sed to $(SED). Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering a75f17ad 2014-01-03T16:58:50 maint.mk: adapt openat.h-include-without-use test * top/maint.mk (sc_prohibit_openat_without_use): Also check for FCHMODAT_INLINE, FCHOWNAT_INLINE and STATAT_INLINE, to avoid failing on gnulib's own lib/{chmod,chown,stat}at.c files. With this change, running "make sc_maint" in gnulib's top-level directory now passes for me.
Jim Meyering 7a0c729a 2014-01-01T20:25:44 maint: fix public-submodule-commit to work with newer git * top/maint.mk (public-submodule-commit): Remove excess quoting. We were over-quoting the test arguments, and somewhere prior to version 1.8.5.2.229, git stopped removing those excess quotes, which made the test fail, since the unexpanded strings would always differ; using GIT_TRACE=1 confirmed that the git merge-base command wasn't even being run.
Eric Blake 1276a2c5 2014-01-01T00:04:40 maint: update copyright I ran 'make update-copyright'. Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering 20f47607 2013-10-29T22:01:44 maint.mk: prefer gpgv2 over gpgv * top/maint.mk (gpgv): Use gpgv2 if present, else gpgv. (gpg_key_ID): Use $(gpgv), rather than hard-coding "gpgv". Reported by Gary Vaughan.
Jim Meyering 233419c3 2013-10-28T15:25:25 maint.mk: restore functionality removed by recent change Sunday's change, v0.0-8062-g6b24f60, may have appeared correct from the context of a shallow-cloned gnulib repository: "git describe" would fail in such a directory. However, that change made it so the reported gnulib revision no longer includes the version number or a commit count, even when run from a full clone. * top/maint.mk (gnulib-version): Use the full "git describe" output when possible, e.g., the form above, rather than the abbreviated, no-tag, no-commit-count string, and fall back to using a 10-byte hash, rather than the default minimal-length hash prefix, since while the minimal-length one may be fine today, it is likely not to be unique for very long.
Jim Meyering 4c2f17d2 2013-10-26T19:26:13 maint.mk: fix "release" target to build _version This fixes a bug in README-release whereby following the outlined steps, one would publish a tarball whose programs would report --version output not consistent with the package version number. This bug caused grep-2.15 to produce a grep program whose --version option made it print 2.14.56-1e3d rather than 2.15. * top/maint.mk (release): Making this target build "_version" ensures that the new version number is reflected in configure.
Gary V. Vaughan 6b24f60d 2013-10-27T14:08:08 maint.mk: get current gnulib revision correctly. * top/maint.mk (gnulib-version): Use git rev-parse to get the current HEAD revision. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
Eric Blake a363f4ed 2013-05-10T20:24:21 maint.mk: catch more abuse of HAVE_DECL in syntax-check Libvirt had a patch that attempted to do: +#elif defined(SIOCSIFLLADDR) && defined(HAVE_STRUCT_IFREQ) && \ + defined(HAVE_DECL_LINK_ADDR) but which was not flagged by the syntax checker as suspicious (all HAVE_DECL_* symbols defined by autoconf are always defined after including <config.h>, although they are sometimes defined as the value 0). Now that code is flagged until changed to: +#elif defined(SIOCSIFLLADDR) && defined(HAVE_STRUCT_IFREQ) && \ + HAVE_DECL_LINK_ADDR * top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 9fc81090 2013-01-01T00:50:58 maint: update all copyright year number ranges Run "make update-copyright". Compare to commit 1602f0a from last year. Signed-off-by: Eric Blake <eblake@redhat.com>
Peter Rosin 258a2368 2012-12-28T23:13:17 maint.mk: handle missing git with more grace * top/maint.mk (no-submodule-changes, public-submodule-commit): Quietly proceed if git is not present. Copyright-paperwork-exempt: yes Signed-off-by: Peter Rosin <peda@lysator.liu.se>
Stefano Lattarini 6f909c90 2012-12-08T18:09:18 maint.mk: typofix in comments
Stefano Lattarini cc32620e 2012-12-08T18:06:12 maint.mk: avoid extra forks * top/maint.mk (_cfg_mk): The GNU make manual documents that "$(wildcard FILE)" expands to empty if FILE doesn't exist. So use that instead of "$(shell test -f FILE && echo FILE)".
Theophile Ranquet 908b11d3 2012-11-20T10:38:45 maint.mk: avoid gratuitous failure Reported by Stefano Lattarini in <http://lists.gnu.org/archive/html/bug-bison/2012-11/msg00022.html> * top/maint.mk (public-submodule-commit): Quote more safely.
Jim Meyering 04e49dd5 2012-10-28T08:38:09 maint.mk: rename a new configurable variable * top/maint.mk (_gl_translatable_string_re): Rename from translation-markers: _gl_ prefix to insulate from user Makefile code, and the _re suffix to inform that it's a regular expression.
Eric Blake 40277855 2012-10-26T10:19:56 maint.mk: let packages tweak sc_po_check pattern libosinfo wants to look for XML files with translation markers of the form <_name>string to translate</_name>. Rather than globally adding this to the regex, I thought it would be easier to make it possible for cfg.mk to override the default pattern. https://www.redhat.com/archives/virt-tools-list/2012-October/msg00270.html * top/maint.mk (sc_po_check): Add translation-markers, to allow finding files with other translation markers. Signed-off-by: Eric Blake <eblake@redhat.com>
Akim Demaille cb38ce7d 2012-09-25T12:19:04 maint.mk: fix strict vs. lazy variable issues with RELEASE * top/maint.mk (_equal): New function. (member_check): Strip the result to avoid spurious spaces. (url_dir_list): Do not use ifeq, which is strict, as it will require RELEASE_TYPE to be defined. (announcement_Cc_, announcement_mail_headers_): Likewise: instead of relying on ifeq, use $(release_type) to dispatch (lazily) onto... (announcement_Cc_alpha,announcement_mail_headers_alpha) (announcement_Cc_beta,announcement_mail_headers_beta) (announcement_Cc_stable,announcement_mail_headers_stable): these. (release): Do not depend on $(release-type), as it forces its evaluation. Bounce to it.
Akim Demaille 86647111 2012-09-24T10:06:15 maint.mk: formatting changes * top/maint.mk: Indent bodies of if's.
Akim Demaille b9a38b45 2012-09-20T11:10:34 maint.mk: provide "make upload" to ease uploading See <http://lists.gnu.org/archive/html/bug-gnulib/2012-08/msg00028.html>. Do not depend simply on the current $(VERSION), as there may have been new commits since the tarball generation. Rather, rely on $(RELEASE), as "make release-commit" already does. For consistency, add "make release RELEASE='X.Y TYPE'" as an alias for "make TYPE". * top/maint.mk (upload_command, upload, release): New. (RELEASE_TYPE): If undefined, default to the second word of $(RELEASE). (VERSION): first word of $(RELEASE) is always right. (emit_upload_commands): Adjust. * top/README-release: Update.
Akim Demaille aca93801 2012-09-21T14:11:18 maint.mk: factor the validation of RELEASE_TYPE With help from Jim Meyering. http://lists.gnu.org/archive/html/bug-gnulib/2012-09/msg00132.html * top/maint.mk (_empty, _sp): Move their definition earlier. (member-check, release-type): New. Use the latter instead of $(RELEASE_TYPE). Remove now useless local checks.
Akim Demaille a294088c 2012-09-20T11:09:53 maint.mk: silent rules With help from Stefano Lattarini. * top/maint.mk (writable-files): Use $(AM_V_GEN). (announcement): Use $(AM_V_at).
Jim Meyering 4eb37349 2012-09-18T16:25:19 maint.mk: generalize _gl_tight_scope for non-recursive make * top/maint.mk (_gl_tight_scope): Remove a hard-coded assumption that *.h would describe additional .h files in the directory specified by $(_gl_TS_dir). I.e., add this... (_gl_TS_other_headers): New variable.
Jim Meyering 0bd09441 2012-09-18T08:49:59 maint.mk: exempt trailing blanks found in "binary" files * top/maint.mk (sc_trailing_blank): Filter out any matches found in "binary" files, as reported by grep. Suggested by Richard W.M. Jones in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Jim Meyering b6de4661 2012-09-17T11:38:36 maint.mk: sc_prohibit_path_max_allocation: don't FP for UNIX_PATH_MAX * top/maint.mk (sc_prohibit_path_max_allocation): Avoid false-positive match for symbols like UNIX_PATH_MAX. Reported by Richard W.M. Jones in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Jim Meyering aef4fe8a 2012-09-17T11:34:44 maint.mk: teach sc_prohibit_magic_number_exit to accept 77 * top/maint.mk (sc_prohibit_magic_number_exit): Do not complain about uses like "exit (77)". "77" is automake's "skip this test" exit code. It is not in the same category as "exit (0)" or "exit (1)", and besides, I know of no symbolic name for that 77. Reported by Richard W.M. Jones in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Jim Meyering db75e39b 2012-09-17T11:25:00 maint.mk: relax sc_prohibit_strcmp, to avoid a false positive * top/maint.mk (sc_prohibit_strcmp): Relax regexp, so as to match all uses of #define, not just those that start in column 1. Richard W.M. Jones reported a false positive in http://thread.gmane.org/gmane.comp.emulators.guestfs/1902
Eric Blake 96ad9077 2012-08-20T09:38:54 maint.mk: avoid redundant file name in message $(_sc_search_regexp) already prefixes its errors with $(ME), so failure on one of these rules looked like: maint.mk: maint.mk: replace strcmp calls above with STREQ/STRNEQ * top/maint.mk (sc_prohibit_strcmp, sc_unmarked_diagnostics) (sc_prohibit_defined_have_decl_tests, sc_const_long_option) (sc_makefile_path_separator_check): Remove bogus $(ME). Signed-off-by: Eric Blake <eblake@redhat.com>
Simon Josefsson a451aa0d 2012-08-07T08:53:55 maintainer-makefile: Fix syntax error with dash. * top/maint.mk (sc_vulnerable_makefile_CVE-2009-4029): Quote arguments. (sc_vulnerable_makefile_CVE-2012-3386): Likewise.
Jim Meyering 01c3bdf8 2012-08-05T11:19:19 maint.mk: sc_prohibit_magic_number_exit: avoid new false positives * top/maint.mk (sc_prohibit_magic_number_exit): Also filter out matches for /error ?([^,]*)/. This avoids false-positives for strings like "Unknown error (252)", introduced via commit v0.0-7538-g92875a6.
Akim Demaille bd54a45e 2012-08-01T09:55:49 maint.mk: a "release-commit" wrapper to do-release-commit-and-tag * build-aux/do-release-commit-and-tag: Move variable definitions together. ($branch): Instead of defaulting to "master", default to the current branch (as gnu-web-doc-update does). (help): Display the current values of the option arguments. * top/maint.mk (release-commit): New. * top/README-release: Simplify the corresponding step.
Akim Demaille 678815ea 2012-07-30T13:49:49 maint.mk: use silent-rules support from Automake * top/maint.mk (news-check, vc-diff-check, announcement) (no-submodule-changes, alpha beta stable, release-prep) (web-manual, update-copyright): Use $(AM_V_GEN) and $(AM_V_at).
Akim Demaille 957a625d 2012-07-30T13:41:01 maint.mk: provide a web-manual-update target * top/maint.mk: here. * top/README-release: Use it to simplify the web manual update step.
Akim Demaille c0439bc0 2012-07-30T12:27:29 README-release: shorten the circuit to post a news * top/README-release: Point directly to the news submission form.
Jim Meyering 6ae8e2b4 2012-07-30T11:30:53 maint.mk: avoid a sub-shell * top/maint.mk (release-prep): Remove unneeded sub-shell.
Akim Demaille ed4e07a0 2012-07-30T11:09:15 maint.mk: absolute VPATH issue * top/maint.mk (release-prep): Help Git find .git/. From Jim Meyering.
Akim Demaille f5599c80 2012-07-28T12:40:53 maint.mk: absolute VPATH build fix * top/maint.mk (gpg_key_ID): Help git find .git when, for instance, $(srcdir) is not a parent of $(builddir).
Jim Meyering 8394dc6b 2012-07-27T12:12:42 maint.mk: new rule: refresh-gnulib-patches I noticed that 8 of coreutils' 9 gl/**/*.diff files was stale. Use this rule to refresh them. * top/maint.mk (refresh-gnulib-patches): New rule.
Eric Blake 92875a6a 2012-07-20T15:29:22 maint.mk: forbid exit(-1) Libvirt accidentally had an 'exit (-1)' which got by the syntax checker; generally, exiting with 255 is not a wise idea. * top/maint.mk (sc_prohibit_magic_number_exit): Detect negatives. Signed-off-by: Eric Blake <eblake@redhat.com>
Akim Demaille cabce6b8 2012-07-17T10:31:35 maint.mk: minor simplification. * top/maint.mk (_sc_excl): Use $(or...) instead of $(if...) for default values.
Reuben Thomas 9bb1d38c 2012-07-13T11:54:21 README-release: make it more legible * top/README-release: improve typography slightly.
Jim Meyering 1f2e7fd8 2012-07-15T14:40:29 maint.mk: add leading "@" to quiet new "make syntax-check" rule * top/maint.mk (sc_prohibit_defined_have_decl_tests): Add "@".
Eric Blake fabe8a68 2012-07-13T14:02:05 maint.mk: new syntax check for HAVE_DECL checks Based on Karel's report, we might as well enforce a syntax check to help avoid future problems. https://lists.gnu.org/archive/html/coreutils/2012-06/msg00037.html Exempt a few files that still get picked up in the wild rather than as a full gnulib module with m4 files. * top/maint.mk (sc_prohibit_defined_have_decl_tests): New rule. * cfg.mk (exclude_file_name_regexp--sc_prohibit_defined_have_decl_tests): Exempt some false positives. Based on a report by Karel Zak. Signed-off-by: Eric Blake <eblake@redhat.com>
Jim Meyering 48fe477c 2012-07-09T16:24:00 maint.mk: add sc_vulnerable_makefile_CVE-2012-3386 * top/maint.mk (sc_vulnerable_makefile_CVE-2012-3386): New rule.
Jim Meyering b38d5918 2012-07-09T16:11:34 maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix Bugs in both of those conspired to make the sc_vulnerable_makefile_CVE-2009-4029 rule 99% useless. _sc_search_regexp's handling of non-empty $in_files would filter out any offending file names. sc_vulnerable_makefile_CVE-2009-4029's choice of in_files value meant there would be no match in most projects, due to the presence of two or more Makefile.in files. * top/maint.mk (_sc_search_regexp) [in_vc_files,in_files]: Clarify. Fix a bug in how a non-empty $$in_files was processed: (sc_vulnerable_makefile_CVE-2009-4029): Fix erroneous use of in_files: in spite of the name, it's a regexp, not a list of file names.
Jim Meyering 5eae670f 2012-06-17T21:16:54 maint.mk: fix typo in code to derive GPG key at release time * top/maint.mk (gpg_key_ID): Fix typo: $3 -> $$3
Akim Demaille b42157dd 2012-06-12T12:23:59 announce-gen: VPATH issues * build-aux/announce-gen (--srcdir): New option, used to trim the $srcdir part of the path from $builddir to NEWS. * top/maint.mk (announcement): Adjust.
Akim Demaille b630d565 2012-06-07T16:17:36 gnu-web-doc-update: VPATH builds * build-aux/gnu-web-doc-update (--builddir): New option. Revamp the handling of options. Prefer $(...) to `...`. Don't pass --tmpdir=. to mktemp, it is useless given that we specify the template, and it is GNU mktemp specific. Prefer set -e to long series of &&. Restore the initial git branch, not "master". Properly initialize submodules (don't rely only on bootstrap) Do not reconfigure blindly, use config.status. * top/README-release: Update instructions for gnu-web-doc-update.
Jim Meyering 8cabb1a2 2012-06-11T11:32:54 maint.mk: revert most of the previous change re "all these" * top/maint.mk (prohibit_undesirable_word_seq_RE_): Remove that pair. For rationale, see the discussion at http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30912
Jim Meyering 70a9bd65 2012-06-10T21:49:59 maint.mk: prohibit common grammar error: "all these" * top/maint.mk (prohibit_undesirable_word_seq_RE_): Add "all these" to the list of prohibited word sequences. It should be "all of these". * lib/tempname.c (__gen_tempname): Fix one of them.
Akim Demaille e03145b9 2012-06-07T16:17:30 do-release-commit-and-tag: support VPATH builds * build-aux/do-release-commit-and-tag: Prefer $(...) to `...`. (noteworthy): Defined earlier to factor its value. (noteworthy_stub): New. Use it to factor. (help_version): Split into... (help, version): these. Adjust the option processing part. Support "--option=value" in addition to "--option value". (builddir): New. (--builddir): New option. * top/README-release: Document this. Reword slightly so that the reader cannot understand that he has to do these steps before calling do-release-commit-and-tag.
Akim Demaille b7797c33 2012-06-07T12:21:36 maint.mk: fix VPATH issues. * top/maint.mk (news-check): GNU Make understand $< very well. (release-prep): NEWS is in $(srcdir).
Jim Meyering 52236aad 2012-05-25T16:38:49 maint.mk: add strncpy-prohibiting syntax-check rule * top/maint.mk (sc_prohibit_strncpy): New rule, from coreutils.
Jim Meyering 94a6552d 2012-05-24T10:22:29 maint.mk: compute $(gpg_key_ID) more portably * top/maint.mk (gpg_key_ID): Use awk in place of sed '{...;...;}'. That use of sed is not portable to some fringe systems. Reported by Paul Eggert in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/30793/focus=30802
Akim Demaille 72aed879 2012-05-23T10:38:54 maint.mk: gpg_key_ID: use sed more portably * top/maint.mk (gpg_key_ID): End sed block with a semicolon before the closing brace. (refresh-po): Fuse two sed invocations into one.
Akim Demaille 48056176 2012-04-16T20:21:51 maint.mk: expand syntax-check rule to catch @xref and @pxref abuse * top/maint.mk (prohibit_undesirable_word_seq_RE_): An @xref{...} should start a sentence and should not be preceded by "see", "see also", etc. Add heuristic for @pxref too.
Eric Blake 3d0ba3fe 2012-03-29T20:47:55 maint.mk: fix syntax checks without exclusions Commit 727075d0 skipped per-line exclusions if ${exclude} is left undefined, but was immediately broken by commit 44de969c which always initialized the variable to the empty string. * top/maint.mk (_sc_search_regexp): Allow for empty variable. Reported by Daniel P. Berrange. Signed-off-by: Eric Blake <eblake@redhat.com>
Reuben Thomas eb713618 2012-03-20T13:37:21 README-release: simplify slightly * top/README-release: Run "git checkout master" only once.
Akim Demaille 986b22b9 2012-03-13T12:30:59 quote: fix syntax-check * top/maint.mk (sc_prohibit_quote_without_use): quote.h also exports quote_quoting_options.