From 776e9132933dfa34cfa5a4929f235dd53c52f90e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Thu, 7 Jun 2007 17:40:05 +0000 Subject: [PATCH] - more hackery needed Changed files: poldek-rpm-4.4.9.patch -> 1.7 --- poldek-rpm-4.4.9.patch | 53 +++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/poldek-rpm-4.4.9.patch b/poldek-rpm-4.4.9.patch index c6394d1..79de68c 100644 --- a/poldek-rpm-4.4.9.patch +++ b/poldek-rpm-4.4.9.patch @@ -1,7 +1,7 @@ diff -ur poldek-0.20.1-cvs20070108.22.org/configure.in poldek-0.20.1-cvs20070108.22/configure.in ---- poldek-0.20.1-cvs20070108.22.org/configure.in 2007-01-08 22:14:18.000000000 +0100 -+++ poldek-0.20.1-cvs20070108.22/configure.in 2007-06-05 20:32:56.716966945 +0200 -@@ -305,6 +305,7 @@ +--- poldek-0.20.1-cvs20070108.22.org/configure.in 2007-06-07 19:36:08.476143000 +0200 ++++ poldek-0.20.1-cvs20070108.22/configure.in 2007-06-07 19:36:48.148088637 +0200 +@@ -302,6 +302,7 @@ dnl rpm 4.4.7 dnl - killed rpmMachineScore and rpmGetVar AC_CHECK_FUNCS(rpmMachineScore) @@ -10,9 +10,9 @@ diff -ur poldek-0.20.1-cvs20070108.22.org/configure.in poldek-0.20.1-cvs20070108 AC_CHECK_FUNCS(rpmioAccess) dnl - new _rpmvercmp() diff -ur poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c poldek-0.20.1-cvs20070108.22/pm/rpm/misc.c ---- poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c 2007-01-08 22:14:18.000000000 +0100 -+++ poldek-0.20.1-cvs20070108.22/pm/rpm/misc.c 2007-06-05 20:33:44.656034816 +0200 -@@ -47,7 +47,7 @@ +--- poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c 2007-06-07 19:36:08.476143000 +0200 ++++ poldek-0.20.1-cvs20070108.22/pm/rpm/misc.c 2007-06-07 19:40:33.000000000 +0200 +@@ -48,7 +48,7 @@ struct capreq *cr; uint32_t flags, crflags; @@ -21,21 +21,48 @@ diff -ur poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c poldek-0.20.1-cvs2007010 evr = rpmdsEVR(ds); flags = rpmdsFlags(ds); -@@ -163,8 +163,11 @@ +@@ -182,8 +182,39 @@ return caps; } -- --#ifdef HAVE_RPMMACHINESCORE +#ifdef HAVE_RPMPLATFORMSCORE +static int machine_score(int tag, const char *val) { -+ return rpmPlatformScore(val, platpat, nplatpat); ++ int rc; ++ char *cpu, *vendor, *os; + +-#ifdef HAVE_RPMMACHINESCORE ++ cpu = rpmExpand("%{_host_cpu}", NULL); ++ vendor = rpmExpand("%{_host_vendor}", NULL); ++ os = rpmExpand("%{_host_os}", NULL); ++ ++ if (cpu && vendor && os) { ++ int size = strlen(cpu) + strlen(vendor) + strlen(os) + 2; ++ char *p = n_malloc(size); ++ switch (tag) { ++ case PMMSTAG_ARCH: ++ snprintf(p, size, "%s-%s-%s", val, vendor, os); ++ break; ++ case PMMSTAG_OS: ++ snprintf(p, size, "%s-%s-%s", cpu, vendor, val); ++ break; ++ default: ++ snprintf(p, size, "%s", val); ++ break; ++ } ++ rc = rpmPlatformScore(p, platpat, nplatpat); ++ n_free(p); ++ } else ++ rc = rpmPlatformScore(val, platpat, nplatpat); ++ n_free(cpu); ++ n_free(vendor); ++ n_free(os); ++ return rc; +} +#elif defined(HAVE_RPMMACHINESCORE) static int machine_score(int tag, const char *val) { int rpmtag = 0, rc; -@@ -231,8 +234,10 @@ +@@ -250,8 +281,10 @@ if (arch == NULL) return 0; @@ -50,7 +77,7 @@ diff -ur poldek-0.20.1-cvs20070108.22.org/pm/rpm/misc.c poldek-0.20.1-cvs2007010 rc = 9; diff -ur poldek-0.20.1-cvs20070108.22.org/pm/rpm/pm_rpm.h poldek-0.20.1-cvs20070108.22/pm/rpm/pm_rpm.h --- poldek-0.20.1-cvs20070108.22.org/pm/rpm/pm_rpm.h 2007-01-08 15:59:16.000000000 +0100 -+++ poldek-0.20.1-cvs20070108.22/pm/rpm/pm_rpm.h 2007-06-05 20:32:56.696965944 +0200 ++++ poldek-0.20.1-cvs20070108.22/pm/rpm/pm_rpm.h 2007-06-07 19:36:48.148088637 +0200 @@ -2,6 +2,7 @@ #define POLDEK_PM_RPM_MODULE_H @@ -61,7 +88,7 @@ diff -ur poldek-0.20.1-cvs20070108.22.org/pm/rpm/pm_rpm.h poldek-0.20.1-cvs20070 #endif diff -ur poldek-0.20.1-cvs20070108.22.org/pm/rpm/rpm.c poldek-0.20.1-cvs20070108.22/pm/rpm/rpm.c --- poldek-0.20.1-cvs20070108.22.org/pm/rpm/rpm.c 2006-12-18 09:53:02.000000000 +0100 -+++ poldek-0.20.1-cvs20070108.22/pm/rpm/rpm.c 2007-06-05 20:32:56.696965944 +0200 ++++ poldek-0.20.1-cvs20070108.22/pm/rpm/rpm.c 2007-06-07 19:36:48.148088637 +0200 @@ -403,7 +403,7 @@ -- 2.44.0