[libvirt] [FIRST-PATCH] updated the negation STREQ to STRNEQ

Michal Privoznik mprivozn at redhat.com
Fri Sep 25 12:19:12 UTC 2015


On 24.09.2015 15:11, Lasya Venneti wrote:
> Dear Sir,
> The cfg.mk link isn't working for me sir..
> From what I understand Makefile will have the following:
> 
> target: dependency1 dependency2 ...
> [TAB] action1
> [TAB] action2
> 
> Does the syntax-check rule have to be in place of 'actions' in the form of
> a shell command, and then raise an error whenever the shell command returns
> occurrences of the string !STREQ or !STRNEQ ? Request you to please
> elaborate a little.
> 

In libvirt Makefile, there are several targets. Among the usual ones,
like 'all' and 'check', we have 'syntax-check'. In fact, I usually run
all these three at once:

  libvirt.git$ make -j5 all syntax-check check

Now, the syntax-check rule is there to check whether our code obeys with
our code formatting rules (as its name suggests). However, the rules are
stored in cfg.mk. And they are negated, because it works like this: for
every rule, grep with the rule's pattern is run and whenever a non-empty
output is found an error is printed out. For instance, we have:

sc_prohibit_getenv:
	@prohibit='\b(secure_)?getenv *\('			\
	exclude='exempt from syntax-check'			\
	halt='Use virGetEnv{Allow,Block}SUID instead of getenv'	\
	  $(_sc_search_regexp)

So here, we forbid using getenv() or secure_getenv(). Whenever such
function would be used, the error message suggesting using of
virGetEnv..() is printed out. However, there are some exceptions to this
rule: those lines which contains "exempt from syntax-check" (usually to
be found in a comment) are not considered as rule-breaker. Moreover, we
have the following lines in cfg.mk too:

exclude_file_name_regexp--sc_prohibit_getenv = \
  ^tests/.*\.[ch]$$

This tells the syntax-check to not grep over any .c or .h file under
tests/ directory. So getenv() can be used safely there - and in fact it is.

Hopefully, I've explained it enough, so that you can write a simple rule
to forbid !STREQ and !STRNEQ in favour of STRNEQ and STREQ respectively.

Michal




More information about the libvir-list mailing list