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