1 --- rpm-5.4.10/lib/rpmfc.h~ 2013-04-29 13:37:08.219548479 +0300
2 +++ rpm-5.4.10/lib/rpmfc.h 2013-04-29 13:36:18.864082173 +0300
4 RPMFC_SCRIPT = (1 << 12),
5 RPMFC_STATIC = (1 << 13),
6 RPMFC_NOTSTRIPPED = (1 << 14),
8 + RPMFC_NODEJS = (1 << 15),
10 /* bits 16-19 are enumerated, not bits */
11 RPMFC_DIRECTORY = (1 << 16),
12 --- rpm-5.4.10/lib/rpmfc.c 2013-04-28 23:10:48.781649157 +0300
13 +++ rpm-5.4.10/lib/rpmfc.c 2013-04-28 23:24:04.738348320 +0300
15 { "ruby script text", RPMFC_RUBY|RPMFC_INCLUDE },
16 { "Ruby script text", RPMFC_RUBY|RPMFC_INCLUDE },
18 + { "Node.js script", RPMFC_NODEJS|RPMFC_INCLUDE },
20 { "current ar archive", RPMFC_STATIC|RPMFC_LIBRARY|RPMFC_ARCHIVE|RPMFC_INCLUDE },
22 { "Zip archive data", RPMFC_COMPRESSED|RPMFC_ARCHIVE|RPMFC_INCLUDE },
24 fc->fcolor->vals[fc->ix] |= RPMFC_PHP;
25 else if (!strncmp(bn, "ruby", sizeof("ruby")-1))
26 fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
27 + else if (!strncmp(bn, "node", sizeof("node")-1) || !strncmp(bn, "nodejs", sizeof("nodejs")-1))
28 + fc->fcolor->vals[fc->ix] |= RPMFC_NODEJS;
34 xx = rpmfcHelper(fc, 'R', "ruby");
36 + if (fc->fcolor->vals[fc->ix] & RPMFC_NODEJS) {
37 + xx = rpmfcHelper(fc, 'P', "nodejs");
41 + xx = rpmfcHelper(fc, 'R', "nodejs");
43 if ((fc->fcolor->vals[fc->ix] & RPMFC_FONT) == RPMFC_FONT) {
44 xx = rpmfcHelper(fc, 'P', "font");
45 /* XXX: currently of no use, but for the sake of consistency... */
48 static struct rpmfcApplyTbl_s rpmfcApplyTable[] = {
49 { rpmfcELF, RPMFC_ELF },
50 - { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB|RPMFC_DESKTOP_FILE) },
51 + { rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_FONT|RPMFC_HASKELL|RPMFC_RUBY|RPMFC_NODEJS|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_MONO|RPMFC_TYPELIB|RPMFC_DESKTOP_FILE) },
52 #if defined(RPM_VENDOR_MANDRIVA)
53 { rpmfcSYMLINK, RPMFC_SYMLINK },
55 @@ -1152,6 +1164,12 @@
57 if (!strncmp(fn, "/python", sizeof("/python")-1))
58 fc->fcolor->vals[fc->ix] |= RPMFC_PYTHON;
59 + else if (!strncmp(fn, "/node", sizeof("/node")-1) || !strncmp(fn, "/node_modules", sizeof("/node_modules")-1)) {
60 + fc->fcolor->vals[fc->ix] |= RPMFC_NODEJS;
61 + if (!strcmp(fn, "/package.json")) {
62 + fc->fcolor->vals[fc->ix] |= RPMFC_MODULE;
65 else if (!strncmp(fn, "/ruby", sizeof("/ruby")-1)) {
66 fc->fcolor->vals[fc->ix] |= RPMFC_RUBY;
67 if ((strstr(fn, ".gemspec") || strstr(fn, "rbconfig.rb"))) {
68 --- rpm-5.4.10/macros/macros.in~ 2013-04-28 23:35:06.000000000 +0300
69 +++ rpm-5.4.10/macros/macros.in 2013-04-28 23:38:01.383900982 +0300
70 @@ -1068,6 +1068,10 @@
71 %{load:%{_usrlibrpm}/macros.d/mono}
73 #------------------------------------------------------------------------
74 +# nodejs(...) configuration.
75 +%{load:%{_usrlibrpm}/macros.d/nodejs}
77 +#------------------------------------------------------------------------
78 # ruby(...) configuration.
79 %{load:%{_usrlibrpm}/macros.d/ruby}