Fix the razor_set_diff() callback prototype.
The old proto type didn't let us pass the razor_package.
1.1 --- a/librazor/razor.c Fri Jun 20 21:33:29 2008 -0400
1.2 +++ b/librazor/razor.c Fri Jun 20 21:38:29 2008 -0400
1.3 @@ -33,8 +33,8 @@
1.4 #include <ctype.h>
1.5 #include <fnmatch.h>
1.6
1.7 +#include "razor-internal.h"
1.8 #include "razor.h"
1.9 -#include "razor-internal.h"
1.10
1.11 void *
1.12 zalloc(size_t size)
1.13 @@ -423,7 +423,7 @@
1.14
1.15 void
1.16 razor_set_diff(struct razor_set *set, struct razor_set *upstream,
1.17 - razor_package_callback_t callback, void *data)
1.18 + razor_diff_callback_t callback, void *data)
1.19 {
1.20 struct razor_package_iterator *pi1, *pi2;
1.21 struct razor_package *p1, *p2;
1.22 @@ -446,9 +446,11 @@
1.23 }
1.24
1.25 if (p2 == NULL || res < 0)
1.26 - callback(name1, version1, NULL, arch1, data);
1.27 + callback(RAZOR_DIFF_ACTION_REMOVE,
1.28 + p1, name1, version1, arch1, data);
1.29 else if (p1 == NULL || res > 0)
1.30 - callback(name2, NULL, version2, arch2, data);
1.31 + callback(RAZOR_DIFF_ACTION_ADD,
1.32 + p2, name2, version2, arch2, data);
1.33
1.34 if (p1 != NULL && res <= 0)
1.35 razor_package_iterator_next(pi1, &p1,
2.1 --- a/librazor/razor.h Fri Jun 20 21:33:29 2008 -0400
2.2 +++ b/librazor/razor.h Fri Jun 20 21:38:29 2008 -0400
2.3 @@ -106,14 +106,21 @@
2.4
2.5 void razor_set_list_unsatisfied(struct razor_set *set);
2.6
2.7 -typedef void (*razor_package_callback_t)(const char *name,
2.8 - const char *old_version,
2.9 - const char *new_version,
2.10 - const char *arch,
2.11 - void *data);
2.12 +enum razor_diff_action {
2.13 + RAZOR_DIFF_ACTION_ADD,
2.14 + RAZOR_DIFF_ACTION_REMOVE,
2.15 +};
2.16 +
2.17 +typedef void (*razor_diff_callback_t)(enum razor_diff_action action,
2.18 + struct razor_package *package,
2.19 + const char *name,
2.20 + const char *version,
2.21 + const char *arch,
2.22 + void *data);
2.23 +
2.24 void
2.25 razor_set_diff(struct razor_set *set, struct razor_set *upstream,
2.26 - razor_package_callback_t callback, void *data);
2.27 + razor_diff_callback_t callback, void *data);
2.28
2.29 /* Package transactions */
2.30
3.1 --- a/src/main.c Fri Jun 20 21:33:29 2008 -0400
3.2 +++ b/src/main.c Fri Jun 20 21:38:29 2008 -0400
3.3 @@ -489,14 +489,17 @@
3.4 }
3.5
3.6 static void
3.7 -print_diff(const char *name,
3.8 - const char *old_version, const char *new_version, const char *arch,
3.9 +print_diff(enum razor_diff_action action,
3.10 + struct razor_package *package,
3.11 + const char *name,
3.12 + const char *version,
3.13 + const char *arch,
3.14 void *data)
3.15 {
3.16 - if (old_version)
3.17 - printf("removing %s %s\n", name, old_version);
3.18 - else
3.19 - printf("install %s %s\n", name, new_version);
3.20 + if (action == RAZOR_DIFF_ACTION_ADD)
3.21 + printf("install %s-%s.%s\n", name, version, arch);
3.22 + if (action == RAZOR_DIFF_ACTION_REMOVE)
3.23 + printf("remove %s-%s.%s\n", name, version, arch);
3.24 }
3.25
3.26 static int
3.27 @@ -576,9 +579,10 @@
3.28 }
3.29
3.30 static void
3.31 -download_package(const char *name,
3.32 - const char *old_version,
3.33 - const char *new_version,
3.34 +download_package(enum razor_diff_action action,
3.35 + struct razor_package *package,
3.36 + const char *name,
3.37 + const char *version,
3.38 const char *arch,
3.39 void *data)
3.40 {
3.41 @@ -586,15 +590,15 @@
3.42 const char *v;
3.43 int *errors = data;
3.44
3.45 - if (old_version)
3.46 + if (action != RAZOR_DIFF_ACTION_ADD)
3.47 return;
3.48
3.49 /* Skip epoch */
3.50 - v = strchr(new_version, ':');
3.51 + v = strchr(version, ':');
3.52 if (v != NULL)
3.53 v = v + 1;
3.54 else
3.55 - v = new_version;
3.56 + v = version;
3.57
3.58 snprintf(url, sizeof url,
3.59 "%s/Packages/%s-%s.%s.rpm", yum_url, name, v, arch);
3.60 @@ -605,9 +609,10 @@
3.61 }
3.62
3.63 static void
3.64 -install_package(const char *name,
3.65 - const char *old_version,
3.66 - const char *new_version,
3.67 +install_package(enum razor_diff_action action,
3.68 + struct razor_package *package,
3.69 + const char *name,
3.70 + const char *version,
3.71 const char *arch,
3.72 void *data)
3.73 {
3.74 @@ -615,17 +620,17 @@
3.75 char file[PATH_MAX];
3.76 struct razor_rpm *rpm;
3.77
3.78 - if (old_version) {
3.79 - printf("removing %s %s not handled\n", name, old_version);
3.80 + if (action == RAZOR_DIFF_ACTION_REMOVE) {
3.81 + printf("removing %s %s not handled\n", name, version);
3.82 return;
3.83 }
3.84
3.85 /* Skip epoch */
3.86 - v = strchr(new_version, ':');
3.87 + v = strchr(version, ':');
3.88 if (v != NULL)
3.89 v = v + 1;
3.90 else
3.91 - v = new_version;
3.92 + v = version;
3.93
3.94 printf("install %s %s\n", name, v);
3.95 snprintf(file, sizeof file, "rpms/%s-%s.%s.rpm", name, v, arch);
4.1 --- a/src/rpm.c Fri Jun 20 21:33:29 2008 -0400
4.2 +++ b/src/rpm.c Fri Jun 20 21:38:29 2008 -0400
4.3 @@ -507,12 +507,17 @@
4.4 }
4.5
4.6 static void
4.7 -remove_package(const char *name,
4.8 - const char *old_version, const char *new_version,
4.9 - const char *arch, void *data)
4.10 +update_package(enum razor_diff_action action,
4.11 + struct razor_package *package,
4.12 + const char *name,
4.13 + const char *version,
4.14 + const char *arch,
4.15 + void *data)
4.16 {
4.17 - if (old_version)
4.18 - printf("remove %s-%s.%s\n", name, old_version, arch);
4.19 + if (action == RAZOR_DIFF_ACTION_ADD)
4.20 + printf("install %s-%s.%s\n", name, version, arch);
4.21 + if (action == RAZOR_DIFF_ACTION_REMOVE)
4.22 + printf("remove %s-%s.%s\n", name, version, arch);
4.23 }
4.24
4.25 static void
4.26 @@ -555,7 +560,7 @@
4.27 next = razor_transaction_finish(trans);
4.28
4.29 if (!option_justdb)
4.30 - razor_set_diff(set, next, remove_package, NULL);
4.31 + razor_set_diff(set, next, update_package, NULL);
4.32
4.33 razor_set_destroy(set);
4.34 razor_set_destroy(upstream);
4.35 @@ -564,15 +569,6 @@
4.36 }
4.37
4.38 static void
4.39 -install_package(const char *name,
4.40 - const char *old_version, const char *new_version,
4.41 - const char *arch, void *data)
4.42 -{
4.43 - if (new_version)
4.44 - printf("install %s-%s.%s\n", name, new_version, arch);
4.45 -}
4.46 -
4.47 -static void
4.48 command_install(int argc, const char *argv[])
4.49 {
4.50 struct razor_set *set, *upstream, *next;
4.51 @@ -608,7 +604,7 @@
4.52 next = razor_transaction_finish(trans);
4.53
4.54 if (!option_justdb)
4.55 - razor_set_diff(set, next, install_package, NULL);
4.56 + razor_set_diff(set, next, update_package, NULL);
4.57
4.58 razor_set_destroy(set);
4.59 razor_set_destroy(upstream);
4.60 @@ -617,17 +613,6 @@
4.61 }
4.62
4.63 static void
4.64 -update_package(const char *name,
4.65 - const char *old_version, const char *new_version,
4.66 - const char *arch, void *data)
4.67 -{
4.68 - if (old_version)
4.69 - printf("remove %s-%s.%s\n", name, old_version, arch);
4.70 - if (new_version)
4.71 - printf("install %s-%s.%s\n", name, new_version, arch);
4.72 -}
4.73 -
4.74 -static void
4.75 command_update(int argc, const char *argv[])
4.76 {
4.77 struct razor_set *set, *upstream, *next;