diff options
author | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2008-03-19 03:12:37 +0000 |
---|---|---|
committer | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2008-03-19 03:12:37 +0000 |
commit | 6edbac559ab83e220650fa9b5b1cc61f14ad7800 (patch) | |
tree | 098873c618c4106b1e917190c63111163e140c60 /URPM.xs | |
parent | f600b411177df8fa2747c02d187054a214cbd6a8 (diff) | |
download | perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar.gz perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar.bz2 perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.tar.xz perl-URPM-6edbac559ab83e220650fa9b5b1cc61f14ad7800.zip |
improve rpm version detection
really fix callback size for rpm5.org versions
Diffstat (limited to 'URPM.xs')
-rw-r--r-- | URPM.xs | 55 |
1 files changed, 29 insertions, 26 deletions
@@ -27,6 +27,8 @@ #undef Mkdir #undef Stat +#define RPM_VERSION(maj,min,pl) (((maj) << 16) + ((min) << 8) + (pl)) + #ifdef RPM_ORG #define byte uint8_t static inline void *_free(const void * p) { @@ -35,8 +37,8 @@ static inline void *_free(const void * p) { } typedef struct rpmSpec_s * Spec; #else -#if !defined(RPM_450) || !defined(RPM_500) #define rpmtsImportPubkey rpmcliImportPubkey +#if RPM_VERSION(4,5,0) >= RPM_VERSION_CODE #define rpmProblemGetType(p) p->type #define rpmProblemGetPkgNEVR(p) p->pkgNEVR #define rpmProblemGetAltNEVR(p) p->altNEVR @@ -44,14 +46,14 @@ typedef struct rpmSpec_s * Spec; #define rpmProblemGetLong(p) p->ulong1 #endif #endif -#ifdef RPM_446 +#if RPM_VERSION(4,4,6) <= RPM_VERSION_CODE # define _RPMPS_INTERNAL #endif -#ifdef RPM_450 +#if RPM_VERSION(4,5,0) <= RPM_VERSION_CODE # define _RPMEVR_INTERNAL #include <rpm/rpmevr.h> #endif -#ifdef RPM_500 +#if RPM_VERSION(5,0,0) <= RPM_VERSION_CODE #include <rpm/rpm4compat.h> #else @@ -139,7 +141,8 @@ static const void* unused_variable(const void *p) { } static int rpmError_callback_data; -#if defined(RPM_ORG) || defined(RPM_500) +#if defined(RPM_ORG) || RPM_VERSION(5,0,0) <= RPM_VERSION_CODE + int rpmError_callback() { write_nocheck(rpmError_callback_data, rpmlogMessage(), strlen(rpmlogMessage())); return RPMLOG_DEFAULT; @@ -580,7 +583,7 @@ return_list_tag(URPM__Package pkg, int_32 tag_name) { switch (type) { case RPM_NULL_TYPE: break; -#ifndef RPM_500 +#if RPM_VERSION(5,0,0) > RPM_VERSION_CODE case RPM_CHAR_TYPE: #endif case RPM_INT8_TYPE: @@ -1205,7 +1208,7 @@ static void drop_tags(Header *h) { headerRemoveEntry(*h, RPMTAG_FILESIZES); /* ? */ headerRemoveEntry(*h, RPMTAG_FILERDEVS); /* it seems unused. always empty */ headerRemoveEntry(*h, RPMTAG_FILEVERIFYFLAGS); /* only used for -V */ -#ifdef RPM_446 +#if RPM_VERSION(4,4,6) <= RPM_VERSION_CODE headerRemoveEntry(*h, RPMTAG_FILEDIGESTALGOS); /* only used for -V */ headerRemoveEntry(*h, RPMTAG_FILEDIGESTS); /* only used for -V */ /* alias: RPMTAG_FILEMD5S */ #endif @@ -1310,8 +1313,8 @@ ts_nosignature(rpmts ts) { rpmtsSetVSFlags(ts, _RPMVSF_NODIGESTS | _RPMVSF_NOSIGNATURES); } -#if HAVE_RPM_RPMCB_H -typedef unsigned long long rpmCallbackSize_t; +#if RPM_VERSION(4,4,5) <= RPM_VERSION_CODE +typedef uint64_t rpmCallbackSize_t; #else typedef unsigned long rpmCallbackSize_t; #endif @@ -1513,7 +1516,7 @@ int Pkg_is_arch_compat__XS(pkg) URPM::Package pkg INIT: -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE char * platform; #endif CODE: @@ -1524,7 +1527,7 @@ Pkg_is_arch_compat__XS(pkg) get_fullname_parts(pkg, NULL, NULL, NULL, &arch, &eos); *eos = 0; -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE platform = rpmExpand(arch, "-%{_real_vendor}-%{_target_os}%{?_gnu}", NULL); RETVAL = rpmPlatformScore(platform, NULL, 0); _free(platform); @@ -1534,7 +1537,7 @@ Pkg_is_arch_compat__XS(pkg) *eos = '@'; } else if (pkg->h && headerIsEntry(pkg->h, RPMTAG_SOURCERPM)) { char *arch = get_name(pkg->h, RPMTAG_ARCH); -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE platform = rpmExpand(arch, "-%{_real_vendor}-%{_target_os}%{?_gnu}", NULL); RETVAL = rpmPlatformScore(platform, NULL, 0); _free(platform); @@ -1551,11 +1554,11 @@ int Pkg_is_platform_compat(pkg) URPM::Package pkg INIT: -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE char * platform = NULL; #endif CODE: -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE read_config_files(0); if (pkg->h && headerIsEntry(pkg->h, RPMTAG_PLATFORM)) { int_32 count, type; @@ -2948,7 +2951,7 @@ Trans_add(trans, pkg, ...) CODE: if ((pkg->flag & FLAG_ID) <= FLAG_ID_MAX && pkg->h != NULL) { int update = 0; -#ifdef RPM_446 +#if RPM_VERSION(4,4,6) <= RPM_VERSION_CODE rpmRelocation relocations = NULL; #else rpmRelocation *relocations = NULL; @@ -2968,7 +2971,7 @@ Trans_add(trans, pkg, ...) if (SvROK(ST(i+1)) && SvTYPE(SvRV(ST(i+1))) == SVt_PVAV) { AV *excludepath = (AV*)SvRV(ST(i+1)); I32 j = 1 + av_len(excludepath); -#ifdef RPM_446 +#if RPM_VERSION(4,4,6) <= RPM_VERSION_CODE relocations = calloc(j + 1, sizeof(*relocations)); #else relocations = calloc(j + 1, sizeof(rpmRelocation)); @@ -3277,7 +3280,7 @@ Urpm_list_rpm_tag(urpm=Nullsv) while (ext->name != NULL) { if (ext->type == HEADER_EXT_MORE) { -#ifdef RPM_500 +#if RPM_VERSION(5,0,0) <= RPM_VERSION_CODE ext = *ext->u.more; #else ext = ext->u.more; @@ -3745,12 +3748,12 @@ int Urpm_archscore(arch) const char * arch PREINIT: -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE char * platform = NULL; #endif CODE: read_config_files(0); -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE platform = rpmExpand(arch, "-%{_real_vendor}-%{_target_os}%{?_gnu}", NULL); RETVAL=rpmPlatformScore(platform, NULL, 0); _free(platform); @@ -3764,12 +3767,12 @@ int Urpm_osscore(os) const char * os PREINIT: -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE char * platform = NULL; #endif CODE: read_config_files(0); -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE platform = rpmExpand("%{_real_arch}-%{_real_vendor}-", os, "%{?_gnu}", NULL); RETVAL=rpmPlatformScore(platform, NULL, 0); _free(platform); @@ -3784,7 +3787,7 @@ Urpm_platformscore(platform) const char * platform CODE: read_config_files(0); -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE RETVAL=rpmPlatformScore(platform, NULL, 0); #else unused_variable(platform); @@ -3832,11 +3835,11 @@ Urpm_spec2srcheader(specfile) /* check what it does */ #define SPEC_VERIFY 0 if (!parseSpec(ts, specfile, "/" -#ifndef RPM_448 +#if RPM_VERSION(4,4,8) > RPM_VERSION_CODE , NULL #endif , 0, NULL, NULL, SPEC_ANYARCH, SPEC_FORCE -#ifdef RPM_448 +#if RPM_VERSION(4,4,8) <= RPM_VERSION_CODE , SPEC_VERIFY #endif )) { @@ -3845,7 +3848,7 @@ Urpm_spec2srcheader(specfile) spec = rpmtsSetSpec(ts, NULL); if (! spec->sourceHeader) initSourceHeader(spec -#ifdef RPM_450 +#if RPM_VERSION(4,5,0) <= RPM_VERSION_CODE , NULL #endif ); @@ -3918,7 +3921,7 @@ rpmErrorWriteTo(fd) CODE: rpmError_callback_data = fd; rpmlogSetCallback(rpmError_callback -#if defined(RPM_ORG) || defined(RPM_500) +#if defined(RPM_ORG) || RPM_VERSION(5,0,0) <= RPM_VERSION_CODE , NULL #endif ); |