---- 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);
- }
+--- rpm-5.4.15/lib/rpmfc.c 2014-12-08 16:52:23.628067323 +0200
++++ rpm-5.4.15.orig/lib/rpmfc.c 2014-12-08 16:23:46.377110108 +0200
+@@ -1155,9 +1155,13 @@
+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) {
fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
- if ((fn = strstr(fn, "/specifications/")) &&
}
/* XXX: lacking better, more generic classifier... */
else if (!strncmp(fn, "/gstreamer", sizeof("/gstreamer")-1) &&
+@@ -1177,6 +1181,15 @@
+ fn += sizeof("/usr/share")-1;
+ if (!strncmp(fn, "/python", sizeof("/python")-1))
+ fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
++ else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1) || !strncmp(fn, "/gems/specifications", sizeof("/gems/specifications")-1)) {
++ fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
++ 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);
++ }
+ }
+ }
+ }