summaryrefslogtreecommitdiff
path: root/cfg.mk
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2013-04-30 09:07:58 +0200
committerGuido Günther <agx@sigxcpu.org>2013-04-30 09:07:58 +0200
commit60e9fd43eb68089a3c367c20a31d64db5dcd03fa (patch)
tree17370f7a75a8a24e9f52f767fbb0cb5fb6da454d /cfg.mk
parent95adca0059888a2aa16cd9330cfa7cc22b8cf11f (diff)
New upstream version 1.0.5~rc1
Diffstat (limited to 'cfg.mk')
-rw-r--r--cfg.mk62
1 files changed, 57 insertions, 5 deletions
diff --git a/cfg.mk b/cfg.mk
index 394521e47..f0f78f5f2 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -493,6 +493,12 @@ sc_prohibit_gethostby:
halt='use getaddrinfo, not gethostby*' \
$(_sc_search_regexp)
+# dirname and basename from <libgen.h> are not required to be thread-safe
+sc_prohibit_libgen:
+ @prohibit='( (base|dir)name *\(|include .libgen\.h)' \
+ halt='use functions from gnulib "dirname.h", not <libgen.h>' \
+ $(_sc_search_regexp)
+
# raw xmlGetProp requires some nasty casts
sc_prohibit_xmlGetProp:
@prohibit='\<xmlGetProp *\(' \
@@ -722,6 +728,45 @@ sc_prohibit_exit_in_tests:
halt='use return, not exit(), in tests' \
$(_sc_search_regexp)
+# Don't include duplicate header in the source (either *.c or *.h)
+sc_prohibit_duplicate_header:
+ @fail=0; for i in $$($(VC_LIST_EXCEPT) | grep '\.[chx]$$'); do \
+ awk '/# *include.*\.h/ { \
+ match($$0, /[<"][^>"]*[">]/); \
+ arr[substr($$0, RSTART + 1, RLENGTH - 2)]++; \
+ } \
+ END { \
+ for (key in arr) { \
+ if (arr[key] > 1) { \
+ fail=1; \
+ printf("%d %s are included\n", arr[key], key); \
+ } \
+ } \
+ if (fail == 1) { \
+ printf("duplicate header(s) in " FILENAME "\n"); \
+ exit 1; \
+ } \
+ }' $$i || fail=1; \
+ done; \
+ if test $$fail -eq 1; then \
+ { echo "$(ME)": avoid duplicate headers >&2; exit 1; } \
+ fi;
+
+# Don't include "libvirt/*.h" in "" form.
+sc_prohibit_include_public_headers_quote:
+ @prohibit='# *include *"libvirt/.*\.h"' \
+ in_vc_files='\.[ch]$$' \
+ halt='Do not include libvirt/*.h in internal source' \
+ $(_sc_search_regexp)
+
+# Don't include "libvirt/*.h" in <> form. Except for external tools,
+# e.g. Python binding, examples and tools subdirectories.
+sc_prohibit_include_public_headers_brackets:
+ @prohibit='# *include *<libvirt/.*\.h>' \
+ in_vc_files='\.[ch]$$' \
+ halt='Do not include libvirt/*.h in internal source' \
+ $(_sc_search_regexp)
+
# We don't use this feature of maint.mk.
prev_version_file = /dev/null
@@ -788,15 +833,16 @@ $(srcdir)/src/remote/remote_client_bodies.h: $(srcdir)/src/remote/remote_protoco
exclude_file_name_regexp--sc_avoid_strcase = ^tools/virsh\.h$$
_src1=libvirt|fdstream|qemu/qemu_monitor|util/(vircommand|virutil)|xen/xend_internal|rpc/virnetsocket|lxc/lxc_controller|locking/lock_daemon
+_test1=shunloadtest|virnettlscontexttest|vircgroupmock
exclude_file_name_regexp--sc_avoid_write = \
- ^(src/($(_src1))|daemon/libvirtd|tools/console|tests/(shunload|virnettlscontext)test)\.c$$
+ ^(src/($(_src1))|daemon/libvirtd|tools/console|tests/($(_test1)))\.c$$
exclude_file_name_regexp--sc_bindtextdomain = ^(tests|examples)/
exclude_file_name_regexp--sc_copyright_address = \
^COPYING\.LIB$$
-exclude_file_name_regexp--sc_flags_usage = ^(docs/|src/util/virnetdevtap\.c$$)
+exclude_file_name_regexp--sc_flags_usage = ^(docs/|src/util/virnetdevtap\.c$$|tests/vircgroupmock\.c$$)
exclude_file_name_regexp--sc_libvirt_unmarked_diagnostics = \
^(src/rpc/gendispatch\.pl$$|tests/)
@@ -812,10 +858,10 @@ exclude_file_name_regexp--sc_prohibit_always_true_header_tests = \
^python/(libvirt-(lxc-|qemu-)?override|typewrappers)\.c$$
exclude_file_name_regexp--sc_prohibit_asprintf = \
- ^(bootstrap.conf$$|src/util/virutil\.c$$|examples/domain-events/events-c/event-test\.c$$)
+ ^(bootstrap.conf$$|src/util/virutil\.c$$|examples/domain-events/events-c/event-test\.c$$|tests/vircgroupmock\.c$$)
exclude_file_name_regexp--sc_prohibit_close = \
- (\.p[yl]$$|^docs/|^(src/util/virfile\.c|src/libvirt\.c)$$)
+ (\.p[yl]$$|^docs/|^(src/util/virfile\.c|src/libvirt\.c|tests/vircgroupmock\.c)$$)
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
(^tests/(qemuhelp|nodeinfo)data/|\.(gif|ico|png|diff)$$)
@@ -836,7 +882,7 @@ exclude_file_name_regexp--sc_prohibit_nonreentrant = \
^((po|tests)/|docs/.*(py|html\.in)|run.in$$)
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
- ^(docs/hacking\.html\.in)|(src/util/viralloc\.[ch]|examples/.*|tests/securityselinuxhelper.c)$$
+ ^(docs/hacking\.html\.in)|(src/util/viralloc\.[ch]|examples/.*|tests/securityselinuxhelper\.c|tests/vircgroupmock\.c)$$
exclude_file_name_regexp--sc_prohibit_readlink = \
^src/(util/virutil|lxc/lxc_container)\.c$$
@@ -874,3 +920,9 @@ exclude_file_name_regexp--sc_correct_id_types = \
(^src/locking/lock_protocol.x$$)
exclude_file_name_regexp--sc_m4_quote_check = m4/virt-lib.m4
+
+exclude_file_name_regexp--sc_prohibit_include_public_headers_quote = \
+ ^src/internal\.h$$
+
+exclude_file_name_regexp--sc_prohibit_include_public_headers_brackets = \
+ ^(python/|tools/|examples/|include/libvirt/(virterror|libvirt-(qemu|lxc))\.h$$)