mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 05:35:25 +00:00
build: delete all syntax check rules we're skipping
If we've marked rules as skipped, there's no sense keeping them in the maint.mk file. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
2931761f27
commit
1b4217b995
@ -31,44 +31,6 @@ generated_files = \
|
||||
# We haven't converted all scripts to using gnulib's init.sh yet.
|
||||
_test_script_regex = \<\(init\|test-lib\)\.sh\>
|
||||
|
||||
# Tests not to run as part of "make distcheck".
|
||||
local-checks-to-skip = \
|
||||
changelog-check \
|
||||
makefile-check \
|
||||
makefile_path_separator_check \
|
||||
patch-check \
|
||||
sc_GPL_version \
|
||||
sc_always_defined_macros \
|
||||
sc_cast_of_alloca_return_value \
|
||||
sc_cross_check_PATH_usage_in_tests \
|
||||
sc_dd_max_sym_length \
|
||||
sc_error_exit_success \
|
||||
sc_file_system \
|
||||
sc_immutable_NEWS \
|
||||
sc_makefile_path_separator_check \
|
||||
sc_obsolete_symbols \
|
||||
sc_prohibit_S_IS_definition \
|
||||
sc_prohibit_atoi_atof \
|
||||
sc_prohibit_gnu_make_extensions \
|
||||
sc_prohibit_hash_without_use \
|
||||
sc_prohibit_jm_in_m4 \
|
||||
sc_prohibit_quote_without_use \
|
||||
sc_prohibit_quotearg_without_use \
|
||||
sc_prohibit_stat_st_blocks \
|
||||
sc_prohibit_undesirable_word_seq \
|
||||
sc_root_tests \
|
||||
sc_space_tab \
|
||||
sc_sun_os_names \
|
||||
sc_system_h_headers \
|
||||
sc_texinfo_acronym \
|
||||
sc_tight_scope \
|
||||
sc_two_space_separator_in_usage \
|
||||
sc_error_message_uppercase \
|
||||
sc_program_name \
|
||||
sc_require_test_exit_idiom \
|
||||
sc_makefile_check \
|
||||
sc_useless_cpp_parens
|
||||
|
||||
# Most developers don't run 'make distcheck'. We want the official
|
||||
# dist to be secure, but don't want to penalize other developers
|
||||
# using a distro that has not yet picked up the automake fix.
|
||||
|
@ -285,24 +285,6 @@ sc_cast_of_x_alloc_return_value:
|
||||
halt="don't cast x*alloc return value" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
sc_cast_of_alloca_return_value:
|
||||
@prohibit='\*\) *alloca\>' \
|
||||
halt="don't cast alloca return value" \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
sc_space_tab:
|
||||
@prohibit='[ ] ' \
|
||||
halt='found SPACE-TAB sequence; remove the SPACE' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Don't use *scanf or the old ato* functions in "real" code.
|
||||
# They provide no error checking mechanism.
|
||||
# Instead, use strto* functions.
|
||||
sc_prohibit_atoi_atof:
|
||||
@prohibit='\<([fs]?scanf|ato([filq]|ll)) *\(' \
|
||||
halt='do not use *scan''f, ato''f, ato''i, ato''l, ato''ll or ato''q' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Use STREQ rather than comparing strcmp == 0, or != 0.
|
||||
sp_ = strcmp *\(.+\)
|
||||
sc_prohibit_strcmp:
|
||||
@ -335,51 +317,6 @@ sc_prohibit_magic_number_exit:
|
||||
halt='use EXIT_* values rather than magic number' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check that we don't use $< in non-implicit Makefile rules.
|
||||
#
|
||||
# To find the Makefiles, trace AC_CONFIG_FILES. Using VC_LIST would
|
||||
# miss the Makefiles that are not under VC control (e.g., symlinks
|
||||
# installed for gettext). "Parsing" (recursive) uses of SUBDIRS seems
|
||||
# too delicate.
|
||||
#
|
||||
# Use GNU Make's --print-data-base to normalize the rules into some
|
||||
# easy to parse format: they are separated by two \n. Look for the
|
||||
# "section" about non-pattern rules (marked with "# Files") inside
|
||||
# which there are still the POSIX Make like implicit rules (".c.o").
|
||||
sc_prohibit_gnu_make_extensions_awk_ = \
|
||||
BEGIN { \
|
||||
RS = "\n\n"; \
|
||||
in_rules = 0; \
|
||||
} \
|
||||
/^\# Files/ { \
|
||||
in_rules = 1; \
|
||||
} \
|
||||
/\$$</ && in_rules && $$0 !~ /^(.*\n)*\.\w+(\.\w+)?:/ { \
|
||||
print "Error: " file ": $$< in a non implicit rule\n" $$0; \
|
||||
status = 1; \
|
||||
} \
|
||||
END { \
|
||||
exit status; \
|
||||
}
|
||||
sc_prohibit_gnu_make_extensions:
|
||||
@if $(AWK) --version | grep GNU >/dev/null 2>&1; then \
|
||||
(cd $(srcdir) && autoconf --trace AC_CONFIG_FILES:'$$1') | \
|
||||
tr ' ' '\n' | \
|
||||
$(SED) -ne '/Makefile/{s/\.in$$//;p;}' | \
|
||||
while read m; do \
|
||||
$(MAKE) -qp -f $$m .DUMMY-TARGET 2>/dev/null | \
|
||||
$(AWK) -v file=$$m -e '$($@_awk_)' || exit 1; \
|
||||
done; \
|
||||
fi
|
||||
|
||||
# Using EXIT_SUCCESS as the first argument to error is misleading,
|
||||
# since when that parameter is 0, error does not exit. Use '0' instead.
|
||||
sc_error_exit_success:
|
||||
@prohibit='error *\(EXIT_SUCCESS,' \
|
||||
in_vc_files='\.[chly]$$' \
|
||||
halt='found error (EXIT_SUCCESS' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# "FATAL:" should be fully upper-cased in error messages
|
||||
# "WARNING:" should be fully upper-cased, or fully lower-cased
|
||||
sc_error_message_warn_fatal:
|
||||
@ -390,16 +327,6 @@ sc_error_message_warn_fatal:
|
||||
exit 1; } \
|
||||
|| :
|
||||
|
||||
# Error messages should not start with a capital letter
|
||||
sc_error_message_uppercase:
|
||||
@$(VC_LIST_EXCEPT) \
|
||||
| xargs $(GREP) -nEA2 '[^rp]error *\(' /dev/null \
|
||||
| $(GREP) -E '"[A-Z]' \
|
||||
| $(GREP) -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' \
|
||||
&& { echo '$(ME): found capitalized error message' 1>&2; \
|
||||
exit 1; } \
|
||||
|| :
|
||||
|
||||
# Error messages should not end with a period
|
||||
sc_error_message_period:
|
||||
@$(VC_LIST_EXCEPT) \
|
||||
@ -409,13 +336,6 @@ sc_error_message_period:
|
||||
exit 1; } \
|
||||
|| :
|
||||
|
||||
sc_file_system:
|
||||
@prohibit=file''system \
|
||||
exclude='/proc/filesystems' \
|
||||
ignore_case=1 \
|
||||
halt='found use of "file''system"; spell it "file system"' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Don't use cpp tests of this symbol. All code assumes config.h is included.
|
||||
sc_prohibit_have_config_h:
|
||||
@prohibit='^# *if.*HAVE''_CONFIG_H' \
|
||||
@ -490,15 +410,6 @@ sc_prohibit_close_stream_without_use:
|
||||
sc_prohibit_getopt_without_use:
|
||||
@h='getopt.h' re='\<getopt(_long)? *\(' $(_sc_header_without_use)
|
||||
|
||||
# Don't include quotearg.h unless you use one of its functions.
|
||||
sc_prohibit_quotearg_without_use:
|
||||
@h='quotearg.h' re='\<quotearg(_[^ ]+)? *\(' $(_sc_header_without_use)
|
||||
|
||||
# Don't include quote.h unless you use one of its functions.
|
||||
sc_prohibit_quote_without_use:
|
||||
@h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \
|
||||
$(_sc_header_without_use)
|
||||
|
||||
# Don't include this header unless you use one of its functions.
|
||||
sc_prohibit_long_options_without_use:
|
||||
@h='long-options.h' re='\<parse_(long_options|gnu_standard_options_only) *\(' \
|
||||
@ -543,17 +454,6 @@ sc_prohibit_xalloc_without_use:
|
||||
re='\<($(_xa1)|$(_xa2)) *\('\
|
||||
$(_sc_header_without_use)
|
||||
|
||||
# Extract function names:
|
||||
# perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h
|
||||
_hash_re = \
|
||||
clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning
|
||||
_hash_fn = \<($(_hash_re)) *\(
|
||||
_hash_struct = (struct )?\<[Hh]ash_(table|tuning)\>
|
||||
sc_prohibit_hash_without_use:
|
||||
@h='hash.h' \
|
||||
re='$(_hash_fn)|$(_hash_struct)'\
|
||||
$(_sc_header_without_use)
|
||||
|
||||
sc_prohibit_cloexec_without_use:
|
||||
@h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \
|
||||
$(_sc_header_without_use)
|
||||
@ -694,13 +594,6 @@ sc_prohibit_verify_without_use:
|
||||
sc_prohibit_xfreopen_without_use:
|
||||
@h='xfreopen.h' re='\<xfreopen *\(' $(_sc_header_without_use)
|
||||
|
||||
sc_obsolete_symbols:
|
||||
@prohibit='\<(HAVE''_FCNTL_H|O''_NDELAY)\>' \
|
||||
halt='do not use HAVE''_FCNTL_H or O'_NDELAY \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ
|
||||
|
||||
# Each nonempty ChangeLog line must start with a year number, or a TAB.
|
||||
sc_changelog:
|
||||
@prohibit='^[^12 ]' \
|
||||
@ -717,39 +610,12 @@ sc_bindtextdomain:
|
||||
halt='the above files do not call bindtextdomain' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Require that the final line of each test-lib.sh-using test be this one:
|
||||
# Exit $fail
|
||||
# Note: this test requires GNU grep's --label= option.
|
||||
Exit_witness_file ?= tests/test-lib.sh
|
||||
Exit_base := $(notdir $(Exit_witness_file))
|
||||
sc_require_test_exit_idiom:
|
||||
@if test -f $(srcdir)/$(Exit_witness_file); then \
|
||||
die=0; \
|
||||
for i in $$($(GREP) -l -F 'srcdir/$(Exit_base)' \
|
||||
$$($(VC_LIST) tests)); do \
|
||||
tail -n1 $$i | $(GREP) '^Exit .' > /dev/null \
|
||||
&& : || { die=1; echo $$i; } \
|
||||
done; \
|
||||
test $$die = 1 && \
|
||||
{ echo 1>&2 '$(ME): the final line in each of the above is not:'; \
|
||||
echo 1>&2 'Exit something'; \
|
||||
exit 1; } || :; \
|
||||
fi
|
||||
|
||||
sc_trailing_blank:
|
||||
@prohibit='[ ]$$' \
|
||||
halt='found trailing blank(s)' \
|
||||
exclude='^Binary file .* matches$$' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Match lines like the following, but where there is only one space
|
||||
# between the options and the description:
|
||||
# -D, --all-repeated[=delimit-method] print all duplicate lines\n
|
||||
longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
|
||||
sc_two_space_separator_in_usage:
|
||||
@prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \
|
||||
halt='help2man requires at least two spaces between an option and its description'\
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# A regexp matching function names like "error" that may be used
|
||||
# to emit translatable messages.
|
||||
@ -763,13 +629,6 @@ sc_unmarked_diagnostics:
|
||||
halt='found unmarked diagnostic(s)' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Avoid useless parentheses like those in this example:
|
||||
# #if defined (SYMBOL) || defined (SYM2)
|
||||
sc_useless_cpp_parens:
|
||||
@prohibit='^# *if .*defined *\(' \
|
||||
halt='found useless parentheses in cpp directive' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# List headers for which HAVE_HEADER_H is always true, assuming you are
|
||||
# using the appropriate gnulib module. CAUTION: for each "unnecessary"
|
||||
# #if HAVE_HEADER_H that you remove, be sure that your project explicitly
|
||||
@ -852,12 +711,6 @@ sc_prohibit_backup_files:
|
||||
{ echo '$(ME): found version controlled backup file' 1>&2; \
|
||||
exit 1; } || :
|
||||
|
||||
# Require the latest GPL.
|
||||
sc_GPL_version:
|
||||
@prohibit='either ''version [^3]' \
|
||||
halt='GPL vN, N!=3' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Require the latest GFDL. Two regexp, since some .texi files end up
|
||||
# line wrapping between 'Free Documentation License,' and 'Version'.
|
||||
_GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any)
|
||||
@ -866,15 +719,6 @@ sc_GFDL_version:
|
||||
halt='GFDL vN, N!=3' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Don't use Texinfo's @acronym{}.
|
||||
# https://lists.gnu.org/r/bug-gnulib/2010-03/msg00321.html
|
||||
texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$
|
||||
sc_texinfo_acronym:
|
||||
@prohibit='@acronym\{' \
|
||||
in_vc_files='$(texinfo_suffix_re_)' \
|
||||
halt='found use of Texinfo @acronym{}' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
cvs_keywords = \
|
||||
Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State
|
||||
|
||||
@ -928,20 +772,6 @@ sc_prohibit_empty_lines_at_EOF:
|
||||
exit 1; } \
|
||||
|| :
|
||||
|
||||
# Make sure we don't use st_blocks. Use ST_NBLOCKS instead.
|
||||
# This is a bit of a kludge, since it prevents use of the string
|
||||
# even in comments, but for now it does the job with no false positives.
|
||||
sc_prohibit_stat_st_blocks:
|
||||
@prohibit='[.>]st_blocks' \
|
||||
halt='do not use st_blocks; use ST_NBLOCKS' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Make sure we don't define any S_IS* macros in src/*.c files.
|
||||
# They're already defined via gnulib's sys/stat.h replacement.
|
||||
sc_prohibit_S_IS_definition:
|
||||
@prohibit='^ *# *define *S_IS' \
|
||||
halt='do not define S_IS* macros; include <sys/stat.h>' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Perl block to convert a match to FILE_NAME:LINENO:TEST,
|
||||
# that is shared by two definitions below.
|
||||
@ -976,35 +806,6 @@ sc_prohibit_doubled_word:
|
||||
&& { echo '$(ME): doubled words' 1>&2; exit 1; } \
|
||||
|| :
|
||||
|
||||
# A regular expression matching undesirable combinations of words like
|
||||
# "can not"; this matches them even when the two words appear on different
|
||||
# lines, but not when there is an intervening delimiter like "#" or "*".
|
||||
# Similarly undesirable, "See @xref{...}", since an @xref should start
|
||||
# a sentence. Explicitly prohibit any prefix of "see" or "also".
|
||||
# Also prohibit a prefix matching "\w+ +".
|
||||
# @pxref gets the same see/also treatment and should be parenthesized;
|
||||
# presume it must *not* start a sentence.
|
||||
# POSIX spells it "timestamp" rather than "time\s+stamp", so we do, too.
|
||||
bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{
|
||||
bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{
|
||||
prohibit_undesirable_word_seq_RE_ ?= \
|
||||
/(?:\bcan\s+not\b|\btime\s+stamps?\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims
|
||||
prohibit_undesirable_word_seq_ = \
|
||||
-e 'while ($(prohibit_undesirable_word_seq_RE_))' \
|
||||
$(perl_filename_lineno_text_)
|
||||
# Define this to a regular expression that matches
|
||||
# any filename:dd:match lines you want to ignore.
|
||||
# The default is to ignore no matches.
|
||||
ignore_undesirable_word_sequence_RE_ ?= ^$$
|
||||
|
||||
sc_prohibit_undesirable_word_seq:
|
||||
@$(VC_LIST_EXCEPT) \
|
||||
| xargs perl -n -0777 $(prohibit_undesirable_word_seq_) \
|
||||
| $(GREP) -vE '$(ignore_undesirable_word_sequence_RE_)' \
|
||||
| $(GREP) . \
|
||||
&& { echo '$(ME): undesirable word sequence' >&2; exit 1; } \
|
||||
|| :
|
||||
|
||||
# Except for shell files and for loops, double semicolon is probably a mistake
|
||||
sc_prohibit_double_semicolon:
|
||||
@prohibit='; *;[ {} \]*(/[/*]|$$)' \
|
||||
@ -1074,13 +875,6 @@ NEWS_hash = \
|
||||
| md5sum - \
|
||||
| $(SED) 's/ .*//')
|
||||
|
||||
# Ensure that we don't accidentally insert an entry into an old NEWS block.
|
||||
sc_immutable_NEWS:
|
||||
@if test -f $(srcdir)/NEWS; then \
|
||||
test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \
|
||||
{ echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \
|
||||
fi
|
||||
|
||||
# Update the hash stored above. Do this after each release and
|
||||
# for any corrections to old entries.
|
||||
update-NEWS-hash: NEWS
|
||||
@ -1159,16 +953,6 @@ sc_po_check:
|
||||
rm -f $@-1 $@-2; \
|
||||
fi
|
||||
|
||||
# Sometimes it is useful to change the PATH environment variable
|
||||
# in Makefiles. When doing so, it's better not to use the Unix-centric
|
||||
# path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'.
|
||||
msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead'
|
||||
sc_makefile_path_separator_check:
|
||||
@prohibit='PATH[=].*:' \
|
||||
in_vc_files='akefile|\.mk$$' \
|
||||
halt=$(msg) \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# Check that 'make alpha' will not fail at the end of the process,
|
||||
# i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release)
|
||||
# and is read-only.
|
||||
@ -1204,35 +988,6 @@ sc_copyright_check:
|
||||
halt='out of date copyright in $(texi); update it' \
|
||||
$(_sc_search_regexp)
|
||||
|
||||
# If tests/help-version exists and seems to be new enough, assume that its
|
||||
# use of init.sh and path_prepend_ is correct, and ensure that every other
|
||||
# use of init.sh is identical.
|
||||
# This is useful because help-version cross-checks prog --version
|
||||
# with $(VERSION), which verifies that its path_prepend_ invocation
|
||||
# sets PATH correctly. This is an inexpensive way to ensure that
|
||||
# the other init.sh-using tests also get it right.
|
||||
_hv_file ?= $(srcdir)/tests/help-version
|
||||
_hv_regex_weak ?= ^ *\. .*/init\.sh"
|
||||
# Fix syntax-highlighters "
|
||||
_hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh"
|
||||
sc_cross_check_PATH_usage_in_tests:
|
||||
@if test -f $(_hv_file); then \
|
||||
$(GREP) -l 'VERSION mismatch' $(_hv_file) >/dev/null \
|
||||
|| { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \
|
||||
exit 0; }; \
|
||||
$(GREP) -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \
|
||||
|| { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \
|
||||
exit 1; }; \
|
||||
good=$$($(GREP) -E '$(_hv_regex_strong)' $(_hv_file)); \
|
||||
$(VC_LIST_EXCEPT) \
|
||||
| xargs $(GREP) -lE '$(_hv_regex_weak)' \
|
||||
| xargs $(GREP) -LFx "$$good" \
|
||||
| $(GREP) . \
|
||||
&& { printf "$(ME): the above files use" \
|
||||
" path_prepend_ inconsistently\n" 1>&2; \
|
||||
exit 1; } \
|
||||
|| :; \
|
||||
fi
|
||||
|
||||
# BRE regex of file contents to identify a test script.
|
||||
_test_script_regex ?= \<init\.sh\>
|
||||
|
Loading…
Reference in New Issue
Block a user