Allow "magic_and_path" flag to configure that files must match both regexpes to be sent to the dependency generator. --- build/rpmfc.c.orig 2011-05-16 10:46:20.000000000 +0000 +++ build/rpmfc.c 2011-05-16 11:02:56.000000000 +0000 @@ -613,6 +613,7 @@ static void rpmfcAttributes(rpmfc fc, co const char *path = fullpath + fc->brlen; int is_executable = 0; struct stat st; + int magic_and_path; if (stat(fullpath, &st) == 0) { is_executable = (S_ISREG(st.st_mode)) && (st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH)); @@ -630,10 +631,13 @@ static void rpmfcAttributes(rpmfc fc, co continue; /* Add attributes on libmagic type & path pattern matches */ - if (regMatch((*attr)->magic, ftype)) - argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name); - if (regMatch((*attr)->path, path)) - argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name); + if ((*attr)->magic && (*attr)->path && hasAttr((*attr)->flags, "magic_and_path")) { + if (regMatch((*attr)->magic, ftype) && regMatch((*attr)->path, path)) + argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name); + } else { + if (regMatch((*attr)->magic, ftype) || regMatch((*attr)->path, path)) + argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name); + } } }