1.1 --- a/librazor/rpm.c Thu Jun 19 15:09:48 2008 -0400
1.2 +++ b/librazor/rpm.c Fri Jun 20 16:48:44 2008 -0400
1.3 @@ -48,9 +48,14 @@
1.4 };
1.5
1.6 enum {
1.7 - RPMSENSE_LESS = (1 << 1),
1.8 - RPMSENSE_GREATER = (1 << 2),
1.9 - RPMSENSE_EQUAL = (1 << 3),
1.10 + RPMSENSE_LESS = 1 << 1,
1.11 + RPMSENSE_GREATER = 1 << 2,
1.12 + RPMSENSE_EQUAL = 1 << 3,
1.13 + RPMSENSE_PREREQ = 1 << 6,
1.14 + RPMSENSE_SCRIPT_PRE = 1 << 9,
1.15 + RPMSENSE_SCRIPT_POST = 1 << 10,
1.16 + RPMSENSE_SCRIPT_PREUN = 1 << 11,
1.17 + RPMSENSE_SCRIPT_POSTUN = 1 << 12,
1.18 };
1.19
1.20 enum {
1.21 @@ -269,28 +274,33 @@
1.22 return NULL;
1.23 }
1.24
1.25 -static enum razor_version_relation
1.26 +static uint32_t
1.27 rpm_to_razor_flags(uint32_t flags)
1.28 {
1.29 - switch (flags & (RPMSENSE_LESS | RPMSENSE_EQUAL | RPMSENSE_GREATER)) {
1.30 - case RPMSENSE_LESS:
1.31 - return RAZOR_VERSION_LESS;
1.32 - case RPMSENSE_LESS|RPMSENSE_EQUAL:
1.33 - return RAZOR_VERSION_LESS_OR_EQUAL;
1.34 - case RPMSENSE_EQUAL:
1.35 - return RAZOR_VERSION_EQUAL;
1.36 - case RPMSENSE_GREATER|RPMSENSE_EQUAL:
1.37 - return RAZOR_VERSION_GREATER_OR_EQUAL;
1.38 - case RPMSENSE_GREATER:
1.39 - return RAZOR_VERSION_GREATER;
1.40 - }
1.41 + uint32_t razor_flags;
1.42
1.43 - /* FIXME? */
1.44 - return RAZOR_VERSION_EQUAL;
1.45 + razor_flags = 0;
1.46 + if (flags & RPMSENSE_LESS)
1.47 + razor_flags |= RAZOR_PROPERTY_LESS;
1.48 + if (flags & RPMSENSE_EQUAL)
1.49 + razor_flags |= RAZOR_PROPERTY_EQUAL;
1.50 + if (flags & RPMSENSE_GREATER)
1.51 + razor_flags |= RAZOR_PROPERTY_GREATER;
1.52 +
1.53 + if (flags & RPMSENSE_SCRIPT_PRE)
1.54 + razor_flags |= RAZOR_PROPERTY_PRE;
1.55 + if (flags & RPMSENSE_SCRIPT_POST)
1.56 + razor_flags |= RAZOR_PROPERTY_POST;
1.57 + if (flags & RPMSENSE_SCRIPT_PREUN)
1.58 + razor_flags |= RAZOR_PROPERTY_PREUN;
1.59 + if (flags & RPMSENSE_SCRIPT_POSTUN)
1.60 + razor_flags |= RAZOR_PROPERTY_POSTUN;
1.61 +
1.62 + return razor_flags;
1.63 }
1.64
1.65 static void
1.66 -import_properties(struct razor_importer *importer, unsigned long type,
1.67 +import_properties(struct razor_importer *importer, uint32_t type,
1.68 struct razor_rpm *rpm,
1.69 int name_tag, int version_tag, int flags_tag)
1.70 {
1.71 @@ -308,7 +318,7 @@
1.72 version = razor_rpm_get_indirect(rpm, version_tag, &count);
1.73 for (i = 0; i < count; i++) {
1.74 f = rpm_to_razor_flags(ntohl(flags[i]));
1.75 - razor_importer_add_property(importer, name, f, version, type);
1.76 + razor_importer_add_property(importer, name, f | type, version);
1.77 name += strlen(name) + 1;
1.78 version += strlen(version) + 1;
1.79 }