poldek: poldek/configure.in, poldek/make.sh, poldek/pm/rpm/misc.c, ...
mis
mis at pld-linux.org
Sat Jun 16 18:24:13 CEST 2007
Author: mis Date: Sat Jun 16 16:24:13 2007 GMT
Module: poldek Tag: HEAD
---- Log message:
- supported rpm 4.4.9 (patches from PLD's repo by arekm)
---- Files affected:
poldek/poldek:
configure.in (1.129 -> 1.130) , make.sh (1.6 -> 1.7)
poldek/poldek/pm/rpm:
misc.c (1.10 -> 1.11) , pm_rpm.h (1.16 -> 1.17) , rpm.c (1.16 -> 1.17) , rpmvercmp.c (1.2 -> 1.3)
---- Diffs:
================================================================
Index: poldek/poldek/configure.in
diff -u poldek/poldek/configure.in:1.129 poldek/poldek/configure.in:1.130
--- poldek/poldek/configure.in:1.129 Sat Jun 16 16:42:15 2007
+++ poldek/poldek/configure.in Sat Jun 16 18:24:08 2007
@@ -305,11 +305,14 @@
dnl rpm 4.4.7
dnl - killed rpmMachineScore and rpmGetVar
AC_CHECK_FUNCS(rpmMachineScore)
+AC_CHECK_FUNCS(rpmPlatformScore)
AC_CHECK_FUNCS(rpmGetVar)
AC_CHECK_FUNCS(rpmioAccess)
dnl - new _rpmvercmp()
AC_CHECK_FUNCS(_rpmvercmp)
+dnl rpm 4.4.9
+AC_CHECK_HEADERS([rpm/rpmevr.h])
dnl metadata & xml2
@@ -493,7 +496,7 @@
doc/Makefile
doc/homepage/Makefile
doc/pl/Makefile
- install/Makefile
+ install/Makefile
Makefile
poldek.spec
poldek-suse.spec
================================================================
Index: poldek/poldek/make.sh
diff -u poldek/poldek/make.sh:1.6 poldek/poldek/make.sh:1.7
--- poldek/poldek/make.sh:1.6 Wed Jul 14 20:46:21 2004
+++ poldek/poldek/make.sh Sat Jun 16 18:24:08 2007
@@ -1,4 +1,5 @@
#!/bin/sh
cd $(dirname $0) || exit 1
+#make LDFLAGS="-Wl,--as-needed"
make CFLAGS="-fno-builtin-log -O0 -g -Wall -W -pipe -std=gnu99" $@
================================================================
Index: poldek/poldek/pm/rpm/misc.c
diff -u poldek/poldek/pm/rpm/misc.c:1.10 poldek/poldek/pm/rpm/misc.c:1.11
--- poldek/poldek/pm/rpm/misc.c:1.10 Mon Jan 8 22:12:11 2007
+++ poldek/poldek/pm/rpm/misc.c Sat Jun 16 18:24:08 2007
@@ -22,6 +22,7 @@
#include <stdint.h>
#include <string.h>
+#define _RPMPRCO_INTERNAL 1 /* see pm_rpmdsSysinfo */
#include <rpm/rpmlib.h>
#if HAVE_RPMDSRPMLIB
# include <rpm/rpmds.h>
@@ -47,7 +48,7 @@
struct capreq *cr;
uint32_t flags, crflags;
- name = rpmdsN(ds);
+ name = rpmdsDNEVR(ds)+2;
evr = rpmdsEVR(ds);
flags = rpmdsFlags(ds);
@@ -73,6 +74,25 @@
typedef int (*rpmcap_fn)(rpmds *ds, void *);
+
+#ifdef HAVE_RPMDSSYSINFO
+static int pm_rpmdsSysinfo(rpmds * dsp, const char * fn) {
+ int ret;
+
+# ifndef HAVE_RPM_VERSION_GE_4_4_8
+ ret = rpmdsSysinfo(dsp, fn);
+
+# else
+ rpmPRCO PRCO = rpmdsNewPRCO(NULL);
+ PRCO->Pdsp = dsp;
+ ret = rpmdsSysinfo(PRCO, fn);
+ PRCO->Pdsp = NULL;
+ rpmdsFreePRCO(PRCO);
+# endif
+ return ret;
+}
+#endif
+
static int get_rpmlib_caps(tn_array *caps)
{
rpmds ds = NULL;
@@ -86,7 +106,7 @@
(rpmcap_fn)rpmdsGetconf,
#endif
#ifdef HAVE_RPMDSSYSINFO
- (rpmcap_fn)rpmdsSysinfo,
+ (rpmcap_fn)pm_rpmdsSysinfo,
#endif
#ifdef HAVE_RPMDSUNAME
(rpmcap_fn)rpmdsUname,
@@ -163,8 +183,44 @@
return caps;
}
+#ifdef HAVE_RPMPLATFORMSCORE /* rpm 4.4.9 */
+static int machine_score(int tag, const char *val) {
+ char *cpu, *vendor, *os;
+ int rc;
-#ifdef HAVE_RPMMACHINESCORE
+ cpu = rpmExpand("%{_host_cpu}", NULL);
+ vendor = rpmExpand("%{_host_vendor}", NULL);
+ os = rpmExpand("%{_host_os}", NULL);
+
+ if (! (cpu && vendor && os) ) {
+ rc = rpmPlatformScore(val, platpat, nplatpat);
+
+ } else {
+ int size = strlen(cpu) + strlen(vendor) + strlen(os) + 3;
+ char *p = alloca(size);
+ switch (tag) {
+ case PMMSTAG_ARCH:
+ n_snprintf(p, size, "%s-%s-%s", val, vendor, os);
+ break;
+ case PMMSTAG_OS:
+ n_snprintf(p, size, "%s-%s-%s", cpu, vendor, val);
+ break;
+ default:
+ n_snprintf(p, size, "%s", val);
+ break;
+ }
+
+ rc = rpmPlatformScore(p, platpat, nplatpat);
+ }
+
+ n_cfree(&cpu);
+ n_cfree(&vendor);
+ n_cfree(&os);
+
+ return rc;
+}
+
+#elif defined(HAVE_RPMMACHINESCORE)
static int machine_score(int tag, const char *val)
{
int rpmtag = 0, rc;
@@ -186,7 +242,8 @@
n_assert(rpmtag);
return rpmMachineScore(rpmtag, val);
}
-#else /* !HAVE_RPMMACHINESCORE; killed rpmMachineScore() (since 4.4.7) */
+#else /* !HAVE_RPMPLATFORMSCORE && !HAVE_RPMMACHINESCORE;
+ killed rpmMachineScore() (since 4.4.7) */
static int machine_score(int tag, const char *val)
{
int rc = 0;
@@ -231,8 +288,10 @@
if (arch == NULL)
return 0;
-
-#ifdef HAVE_RPMMACHINESCORE
+
+#ifdef HAVE_RPMPLATFORMSCORE
+ rc = rpmPlatformScore(arch, platpat, nplatpat);
+#elif defined(HAVE_RPMMACHINESCORE)
rc = rpmMachineScore(RPM_MACHTABLE_INSTARCH, arch);
#else
rc = 9;
================================================================
Index: poldek/poldek/pm/rpm/pm_rpm.h
diff -u poldek/poldek/pm/rpm/pm_rpm.h:1.16 poldek/poldek/pm/rpm/pm_rpm.h:1.17
--- poldek/poldek/pm/rpm/pm_rpm.h:1.16 Mon Jan 8 18:22:00 2007
+++ poldek/poldek/pm/rpm/pm_rpm.h Sat Jun 16 18:24:08 2007
@@ -2,6 +2,11 @@
#define POLDEK_PM_RPM_MODULE_H
#include <rpm/rpmlib.h>
+
+#ifdef HAVE_RPMEVR_H
+# include <rpm/rpmevr.h>
+#endif
+
#ifdef HAVE_RPM_4_0_4
# include <rpm/rpmcli.h>
#endif
@@ -9,6 +14,14 @@
#ifdef HAVE_RPM_4_1
# include <rpm/rpmts.h>
#endif
+
+#ifdef RPM_MAJOR_VERSION
+# define PM_RPMVER(a,b,c) ((a)*65536+(b)*256+(c))
+# if PM_RPMVER(RPM_FORMAT_VERSION,RPM_MAJOR_VERSION,RPM_MINOR_VERSION) >= PM_RPMVER(4,4,8)
+# define HAVE_RPM_VERSION_GE_4_4_8 1
+# endif
+#endif
+
/* RPMTAG_COPYRIGHT disappears in 4.4.3 but don't know from
when RPMTAG_LICENSE starts */
================================================================
Index: poldek/poldek/pm/rpm/rpm.c
diff -u poldek/poldek/pm/rpm/rpm.c:1.16 poldek/poldek/pm/rpm/rpm.c:1.17
--- poldek/poldek/pm/rpm/rpm.c:1.16 Sun Dec 17 23:37:05 2006
+++ poldek/poldek/pm/rpm/rpm.c Sat Jun 16 18:24:08 2007
@@ -400,11 +400,6 @@
}
#endif /* HAVE_RPMLOG */
-
-
-#ifndef HAVE__RPMVERCMP /* _rpmvercmp - new in rpm 4.4.7 */
-extern int rpmvercmp(const char *one, const char *two);
-#endif
int pm_rpm_vercmp(const char *one, const char *two)
{
================================================================
Index: poldek/poldek/pm/rpm/rpmvercmp.c
diff -u poldek/poldek/pm/rpm/rpmvercmp.c:1.2 poldek/poldek/pm/rpm/rpmvercmp.c:1.3
--- poldek/poldek/pm/rpm/rpmvercmp.c:1.2 Sun Dec 17 23:37:05 2006
+++ poldek/poldek/pm/rpm/rpmvercmp.c Sat Jun 16 18:24:08 2007
@@ -9,11 +9,6 @@
#include "i18n.h"
-#ifndef HAVE__RPMVERCMP /* _rpmvercmp - new in rpm 4.4.7 */
-extern int rpmvercmp(const char *one, const char *two);
-#endif
-
-
int main(int argc, char *argv[])
{
int cmprc, is_test = 0;
================================================================
---- CVS-web:
http://cvs.pld-linux.org/poldek/poldek/configure.in?r1=1.129&r2=1.130&f=u
http://cvs.pld-linux.org/poldek/poldek/make.sh?r1=1.6&r2=1.7&f=u
http://cvs.pld-linux.org/poldek/poldek/pm/rpm/misc.c?r1=1.10&r2=1.11&f=u
http://cvs.pld-linux.org/poldek/poldek/pm/rpm/pm_rpm.h?r1=1.16&r2=1.17&f=u
http://cvs.pld-linux.org/poldek/poldek/pm/rpm/rpm.c?r1=1.16&r2=1.17&f=u
http://cvs.pld-linux.org/poldek/poldek/pm/rpm/rpmvercmp.c?r1=1.2&r2=1.3&f=u
More information about the pld-cvs-commit
mailing list