--- rpm-5.4.7/lib/rpmfc.c.rubyabi_prov~ 2012-03-10 21:50:02.143073469 +0100 +++ rpm-5.4.7/lib/rpmfc.c 2012-03-10 21:57:13.898394232 +0100 @@ -1204,9 +1204,13 @@ assert(fc->fn != NULL); } else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) { fc->fcolor->vals[fc->ix] |= RPMFC_RUBY; - if ((fn = strstr(fn, "/specifications/")) && - (fn = strrchr(fn, '.')) && !strcmp(fn, ".gemspec")) - fc->fcolor->vals[fc->ix] |= RPMFC_MODULE; + if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) { + miRE mire = mireNew(RPMMIRE_REGEX, RPMTAG_FILEPATHS); + if (!mireRegcomp(mire, ".*/(specifications/.*\\.gemspec|rbconfig\\.rb)$")) + if (mireRegexec(mire, fc->fn[fc->ix], (size_t) 0) >= 0) + fc->fcolor->vals[fc->ix] |= RPMFC_MODULE; + mire = mireFree(mire); + } } /* XXX: lacking better, more generic classifier... */ else if (!strncmp(fn, "/gstreamer", sizeof("/gstreamer")-1) &&