--- ruby-rpm-1.2.3/ext/rpm/db.c.orig 2008-03-05 01:05:10.260452471 +0100 +++ ruby-rpm-1.2.3/ext/rpm/db.c 2008-03-05 15:36:58.616081358 +0100 @@ -175,6 +175,8 @@ db_s_rebuild(int argc, VALUE* argv, VALU #if RPM_VERSION_CODE < RPM_VERSION(4,1,0) ret = rpmdbRebuild(root); +#elif RPM_VERSION(5,0,0) <= RPM_VERSION_CODE + ret = rpmdbRebuild(root, NULL); #else ret = rpmdbRebuild(root, NULL, NULL); #endif @@ -749,16 +751,17 @@ rpm_transaction_keys(VALUE trans) } #if RPM_VERSION_CODE < RPM_VERSION(4,4,5) -static void* -transaction_callback(const void* hd, const rpmCallbackType type, - const unsigned long amount, const unsigned long total, - fnpyKey key, rpmCallbackData data) +typedef unsigned long rpmCallbackSize_t; +#elif RPM_VERSION(5,0,0) <= RPM_VERSION_CODE +typedef uint64_t rpmCallbackSize_t; #else +typedef unsigned long long rpmCallbackSize_t; +#endif + static void* transaction_callback(const void* hd, const rpmCallbackType type, - const unsigned long long amount, const unsigned long long total, + const rpmCallbackSize_t amount, const rpmCallbackSize_t total, fnpyKey key, rpmCallbackData data) -#endif { VALUE trans = (VALUE)data; FD_t fdt; --- ruby-rpm-1.2.3/ext/rpm/package.c.orig 2008-03-05 15:37:18.315221049 +0100 +++ ruby-rpm-1.2.3/ext/rpm/package.c 2008-03-05 15:38:05.452715276 +0100 @@ -354,8 +354,9 @@ rpm_package_aref(VALUE pkg, VALUE tag) case RPM_BIN_TYPE: val = rb_str_new(data, count); break; - +#if RPM_VERSION_CODE < RPM_VERSION(5,0,0) case RPM_CHAR_TYPE: +#endif case RPM_INT8_TYPE: if (count == 1 && !ary_p) { val = INT2NUM(*(int_8*)data); --- ruby-rpm-1.2.3/ext/rpm/private.h.orig 2008-03-05 01:05:28.577117813 +0100 +++ ruby-rpm-1.2.3/ext/rpm/private.h 2008-03-05 01:46:27.085229707 +0100 @@ -22,6 +22,10 @@ #include <unistd.h> #include <st.h> +#if RPM_VERSION(5,0,0) <= RPM_VERSION_CODE +#include <rpm4compat.h> +#endif + /* To get structure definitions */ #define _RPMDB_INTERNAL #define _RPMPS_INTERNAL @@ -30,7 +34,9 @@ #include <rpmlib.h> #include <rpmdb.h> #include <rpmbuild.h> +#if RPM_VERSION(5,0,0) > RPM_VERSION_CODE #include <rpmmessages.h> +#endif #if RPM_VERSION(4,1,0) <= RPM_VERSION_CODE #include <rpmts.h> #include <rpmps.h> --- ruby-rpm-1.2.3/ext/rpm/spec.c.orig 2008-03-05 16:19:28.738319598 +0100 +++ ruby-rpm-1.2.3/ext/rpm/spec.c 2008-03-05 16:24:58.374952126 +0100 @@ -60,7 +60,11 @@ spec_s_open(VALUE klass, VALUE filename) return Data_Wrap_Struct(klass, NULL, spec_free, rspec); #else ts = rpmtsCreate(); +#if RPM_VERSION_CODE >= RPM_VERSION(4,4,8) + switch (parseSpec(ts, RSTRING(filename)->ptr, "/", 0, "", NULL, 1, 1, 0)) { +#else switch (parseSpec(ts, RSTRING(filename)->ptr, "/", NULL, 0, "", NULL, 1, 1)) { +#endif case 0: if (ts != NULL) { break;