summaryrefslogtreecommitdiff
path: root/top
Commit message (Collapse)AuthorAgeFilesLines
...
* gitsub.sh: New file.Bruno Haible2019-04-271-0/+483
| | | | * top/gitsub.sh: New file.
* long-options: add parse_gnu_standard_options_onlyBernhard Voelker2019-02-231-1/+1
| | | | | | | | | | | | | | | 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.
* maintainer-makefile: Make the configure.ac section optional.Bruno Haible2019-01-061-0/+6
| | | | * top/maint.mk (GREP, SED): Define if not defined.
* maintainer-makefile: fix typo in previous patchEric Blake2019-01-031-1/+1
| | | | | | | * top/maint.mk (_sc_search_regexp): Fix my accidental corruption of Roman's work. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint.mk: Replace grep with $(GREP)Roman Bolshakov2019-01-021-58/+58
| | | | | | | | | | | | | | | | | | | | 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>
* maint.mk: Split long argument listsRoman Bolshakov2019-01-021-49/+86
| | | | | | | | | | | | | | | | | | | $(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>
* maint: Run 'make update-copyright'Paul Eggert2019-01-012-2/+2
|
* maintainer-makefile: fix syntax-check rule for "same.h"Bernhard Voelker2018-10-281-1/+1
| | | | | * top/maint.mk (sc_prohibit_same_without_use): Adjust regex to check for 'same_nameat', too.
* README-release: also run any check-very-expensive testsJim Meyering2018-06-191-2/+3
| | | | | * top/README-release: Adjust instructions so they run the check-very-expensive tests when there is such a target.
* maint.mk: exempt "/proc/filesystems" from "file system" syntax checkJim Meyering2018-02-031-0/+1
| | | | | * top/maint.mk (sc_file_system): Don't complain about "/proc/filesystems".
* maint: Run 'make update-copyright'Paul Eggert2018-01-012-2/+2
|
* maint: shorten https://lists.gnu.org/archive/html/... linksJim Meyering2017-11-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* all: Replace many more http URLs by https URLs. Update stale URLs.Bruno Haible2017-09-142-5/+5
| | | | | * users.txt: Remove mention of 'newts'. * lib/localename.c: Update comment about LANG_SOTHO.
* all: prefer https: URLsPaul Eggert2017-09-133-5/+5
|
* maintainer-makefile: FTP -> HTTPSPaul Eggert2017-09-121-2/+2
| | | | | * top/maint.mk (url_dir_list, ftp-gnu): Use HTTPS protocol instead of FTP, which is planned to be decommissioned on 2017-11-01.
* maint.mk: update regex to reflect 2013 addition of "assume" to verify.hJim Meyering2017-05-131-1/+1
| | | | | * 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.
* maint.mk: enforce spelling of "timestamp" (i.e., no space)Jim Meyering2017-01-101-1/+2
| | | | | * top/maint.mk (prohibit_undesirable_word_seq_RE_): Also disallow /\btime\s+stamps?\b/. Prefer "timestamp".
* maint.mk: support parallel execution of coveragePádraig Brady2017-01-051-1/+4
| | | | | | * top/maint.mk (coverage): Run dependencies serially, thus supporting parallel processing of each one, particularly build-coverage, which builds and runs tests.
* version-etc: new yearPaul Eggert2017-01-012-2/+2
| | | | | | | | | | * 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'.
* maint.mk: hoist gnulib_dir definition earlierEric Blake2016-12-311-1/+4
| | | | | | | | | | | | | | | 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>
* maint.mk: do not always evaluate intprops-related shellJim Meyering2016-12-311-1/+1
| | | | | | | | | * 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
* maint.mk: improve sc_prohibit_intprops_without_useJim Meyering2016-12-301-12/+8
| | | | | * top/maint.mk (_intprops_names): Don't hard-code the list of symbol names. Instead, derive it on the fly.
* maint.mk: update list of intprops.h symbol namesJim Meyering2016-12-301-4/+5
| | | | | | * 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.
* main.mk: remove sc_program_namePino Toscano2016-09-051-9/+0
| | | | | | | 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.
* maint.mk: expand the prohibit_doubled_word regexJán Tomko2016-08-021-1/+6
| | | | | | | | | 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.
* maint.mk: speed up require_config_h_firstJán Tomko2016-08-011-7/+16
| | | | | | | 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.
* maint.mk: speed up sc_po_checkJán Tomko2016-08-011-15/+17
| | | | | | | | 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.
* intprops, mktime, strtol: assume two's complementPaul Eggert2016-04-131-2/+1
| | | | | | | | | | | | | | | | | | 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.
* version-etc: new yearPaul Eggert2016-01-012-2/+2
| | | | | | | | | | * 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'.
* maint.mk: sc_tight_scope: remove extraneous expressionsPádraig Brady2015-10-181-1/+1
| | | | | | | * 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.
* maint.mk: _gl_TS_function_match: fix "extern" name extracting regexpJim Meyering2015-10-171-1/+1
| | | | | | | * 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.
* maint.mk: sc_tight_scope: factor and support OS XJim Meyering2015-10-171-6/+7
| | | | | | | | * 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.
* maint.mk: fix compatibility with OS X nmPádraig Brady2015-01-081-2/+2
| | | | | | | * 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.
* version-etc: new yearPaul Eggert2014-12-312-2/+2
| | | | | | * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'.
* maintainer-makefile: add syntax check for useless ';;'Eric Blake2014-09-041-0/+8
| | | | | | | | | | | | | | | | 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>
* maint.mk: give projects more flexibilty in set_prog_name argumentsPádraig Brady2014-07-121-1/+1
| | | | | | * 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.
* maint.mk: less syntax-check noise when SIGPIPE is ignoredEric Blake2014-07-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* maintainer-makefile: delete obsolete codeEric Blake2014-06-041-7/+0
| | | | | | | | | 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>
* maintainer-makefile: avoid spurious error messagesEric Blake2014-06-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* maint.mk: Relax the copyright check to cater for non FSF projectsAssaf Gordon2014-04-191-1/+1
| | | | | * top/maint.mk (sc_copyright_check): Relax the check for $PACKAGE.texi to not require the "Free" suffix after the copyright years.
* maintainer-makefiles: use $(SED) for syntax checkEric Blake2014-02-201-17/+18
| | | | | | | | | | | | | | 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>
* maint.mk: adapt openat.h-include-without-use testJim Meyering2014-01-031-1/+1
| | | | | | | | * 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.
* maint: fix public-submodule-commit to work with newer gitJim Meyering2014-01-011-2/+2
| | | | | | | | | * 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.
* maint: update copyrightEric Blake2014-01-012-2/+2
| | | | | | I ran 'make update-copyright'. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint.mk: prefer gpgv2 over gpgvJim Meyering2013-10-311-1/+2
| | | | | | * top/maint.mk (gpgv): Use gpgv2 if present, else gpgv. (gpg_key_ID): Use $(gpgv), rather than hard-coding "gpgv". Reported by Gary Vaughan.
* maint.mk: restore functionality removed by recent changev0.1Jim Meyering2013-10-281-1/+2
| | | | | | | | | | | | | | 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.
* maint.mk: fix "release" target to build _versionJim Meyering2013-10-261-0/+1
| | | | | | | | | | 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.
* maint.mk: get current gnulib revision correctly.Gary V. Vaughan2013-10-271-1/+1
| | | | | | | * top/maint.mk (gnulib-version): Use git rev-parse to get the current HEAD revision. Signed-off-by: Gary V. Vaughan <gary@gnu.org>
* maint.mk: catch more abuse of HAVE_DECL in syntax-checkEric Blake2013-05-101-1/+1
| | | | | | | | | | | | | | | | | | | 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>
* maint: update all copyright year number rangesEric Blake2013-01-012-2/+2
| | | | | | Run "make update-copyright". Compare to commit 1602f0a from last year. Signed-off-by: Eric Blake <eblake@redhat.com>