]> git.pld-linux.org Git - packages/rpm.git/blobdiff - rpm-namespace-compare.patch
- missing #include
[packages/rpm.git] / rpm-namespace-compare.patch
index 7a2dfa889281db755efe09c2c2bb2059dee83110..e38d8ddd3ae97fc6639d735a16cab0429164a7de 100644 (file)
      /* Different names (and/or name.arch's) don't overlap. */
      if (rpmdsNAcmp(A, B)) {
        result = 0;
+diff -ur rpm-5.4.10/lib/depends.c rpm-5.4.10.nstype/lib/depends.c
+--- rpm-5.4.10/lib/depends.c   2012-11-30 13:03:40.350619256 +0100
++++ rpm-5.4.10.nstype/lib/depends.c    2012-11-30 12:08:01.266204377 +0100
+@@ -16,6 +16,7 @@
+ #define       _RPMDB_INTERNAL         /* XXX response cache needs dbiOpen et al. */
+ #include <rpmdb.h>
++#define       _RPMDS_INTERNAL
+ #define       _RPMEVR_INTERNAL
+ #include <rpmds.h>
+ #include <rpmfi.h>
+@@ -1570,6 +1579,7 @@
+               /*@null@*/ rpmds dirnames,
+               /*@null@*/ rpmds linktos,
+               /*@null@*/ const char * depName,
++              nsType depNS,
+               rpmuint32_t tscolor, int adding)
+       /*@globals rpmGlobalMacroContext, h_errno,
+               fileSystem, internalState @*/
+@@ -1579,6 +1589,7 @@
+     rpmps ps = rpmtsProblems(ts);
+     rpmuint32_t dscolor;
+     const char * Name;
++    nsType NSType;
+     int terminate = 2;                /* XXX terminate if rc >= terminate */
+     int rc;
+     int ourrc = 0;
+@@ -1598,6 +1609,11 @@
+       if (depName != NULL && strcmp(depName, Name))
+           continue;
++      NSType = rpmdsNSType(requires);
++
++      if (depNS != RPMNS_TYPE_UNKNOWN && depNS != NSType)
++          continue;
++
+       /* Ignore colored requires not in our rainbow. */
+       dscolor = rpmdsColor(requires);
+       if (tscolor && dscolor && !(tscolor & dscolor))
+@@ -1639,6 +1659,11 @@
+       if (depName != NULL && strcmp(depName, Name))
+           continue;
++      NSType = rpmdsNSType(conflicts);
++
++      if (depNS != RPMNS_TYPE_UNKNOWN && depNS != NSType)
++          continue;
++
+       /* Ignore colored conflicts not in our rainbow. */
+       dscolor = rpmdsColor(conflicts);
+       if (tscolor && dscolor && !(tscolor & dscolor))
+@@ -1676,6 +1703,11 @@
+       if (depName != NULL && strcmp(depName, Name))
+           continue;
++      NSType = rpmdsNSType(dirnames);
++
++      if (depNS != RPMNS_TYPE_UNKNOWN && depNS != NSType)
++          continue;
++
+       /* Ignore colored dirnames not in our rainbow. */
+       dscolor = rpmdsColor(dirnames);
+       if (tscolor && dscolor && !(tscolor & dscolor))
+@@ -1724,6 +1758,11 @@
+       if (depName != NULL && strcmp(depName, Name))
+           continue;
++      NSType = rpmdsNSType(linktos);
++
++      if (depNS != RPMNS_TYPE_UNKNOWN && depNS != NSType)
++          continue;
++
+       /* Ignore colored linktos not in our rainbow. */
+       dscolor = rpmdsColor(linktos);
+       if (tscolor && dscolor && !(tscolor & dscolor))
+@@ -1771,7 +1812,7 @@
+  * @param adding      dependency is from added package set?
+  * @return            0 no problems found
+  */
+-static int checkPackageSet(rpmts ts, const char * depName,
++static int checkPackageSet(rpmts ts, const char * depName, nsType depNS,
+               /*@only@*/ /*@null@*/ rpmmi mi, int adding)
+       /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+       /*@modifies ts, mi, rpmGlobalMacroContext, fileSystem, internalState @*/
+@@ -1816,7 +1857,7 @@
+       rc = checkPackageDeps(ts, he->p.str,
+               requires, conflicts, dirnames, linktos,
+-              depName, tscolor, adding);
++              depName, depNS, tscolor, adding);
+       (void)rpmdsFree(linktos);
+       linktos = NULL;
+@@ -1844,7 +1886,7 @@
+  * @param depName     requires name
+  * @return            0 no problems found
+  */
+-static int checkDependentPackages(rpmts ts, const char * depName)
++static int checkDependentPackages(rpmts ts, const char * depName, nsType depNS)
+       /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+       /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/
+ {
+@@ -1854,7 +1896,7 @@
+     if (rpmtsGetRdb(ts) != NULL) {
+       rpmmi mi;
+       mi = rpmtsInitIterator(ts, RPMTAG_REQUIRENAME, depName, 0);
+-      rc = checkPackageSet(ts, depName, mi, 0);
++      rc = checkPackageSet(ts, depName, depNS, mi, 0);
+     }
+     return rc;
+ }
+@@ -1865,7 +1908,7 @@
+  * @param depName     conflicts name
+  * @return            0 no problems found
+  */
+-static int checkDependentConflicts(rpmts ts, const char * depName)
++static int checkDependentConflicts(rpmts ts, const char * depName, nsType depNS)
+       /*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
+       /*@modifies ts, rpmGlobalMacroContext, fileSystem, internalState @*/
+ {
+@@ -1875,7 +1918,7 @@
+     if (rpmtsGetRdb(ts) != NULL) {
+       rpmmi mi;
+       mi = rpmtsInitIterator(ts, RPMTAG_CONFLICTNAME, depName, 0);
+-      rc = checkPackageSet(ts, depName, mi, 1);
++      rc = checkPackageSet(ts, depName, depNS, mi, 1);
+     }
+     return rc;
+@@ -1939,7 +1985,7 @@
+       rc = checkPackageDeps(ts, rpmteNEVRA(p),
+                       requires, conflicts, dirnames, linktos,
+-                      NULL, tscolor, 1);
++                      NULL, RPMNS_TYPE_UNKNOWN, tscolor, 1);
+       if (rc && (ourrc = rc) >= terminate)
+           break;
+@@ -1963,7 +2011,7 @@
+ #endif
+           /* Adding: check provides key against conflicts matches. */
+-          if (checkDependentConflicts(ts, depName))
++          if (checkDependentConflicts(ts, depName, rpmdsNSType(provides)))
+               rc = 1;
+       }
+       if (rc && (ourrc = rc) >= terminate)
+@@ -1975,7 +2026,7 @@
+           depName = _free(depName);
+           depName = xstrdup(rpmfiFN(fi));
+           /* Adding: check filename against conflicts matches. */
+-          if (checkDependentConflicts(ts, depName))
++          if (checkDependentConflicts(ts, depName, RPMNS_TYPE_UNKNOWN))
+               rc = 1;
+       }
+       if (rc && (ourrc = rc) >= terminate)
+@@ -2006,7 +2058,7 @@
+           depName = xstrdup(rpmdsN(provides));
+           /* Erasing: check provides against requiredby matches. */
+-          if (checkDependentPackages(ts, depName))
++          if (checkDependentPackages(ts, depName, rpmdsNSType(provides)))
+               rc = 1;
+       }
+       if (rc && (ourrc = rc) >= terminate)
+@@ -2018,7 +2070,7 @@
+           depName = _free(depName);
+           depName = xstrdup(rpmfiFN(fi));
+           /* Erasing: check filename against requiredby matches. */
+-          if (checkDependentPackages(ts, depName))
++          if (checkDependentPackages(ts, depName, RPMNS_TYPE_UNKNOWN))
+               rc = 1;
+       }
+       if (rc && (ourrc = rc) >= terminate)
+@@ -2039,7 +2091,7 @@
+       const char * dep = NULL;
+       int adding = 2;
+       tscolor = 0;    /* XXX no coloring for transaction dependencies. */
+-      rc = checkPackageDeps(ts, tsNEVRA, R, C, D, L, dep, tscolor, adding);
++      rc = checkPackageDeps(ts, tsNEVRA, R, C, D, L, dep, RPMNS_TYPE_UNKNOWN, tscolor, adding);
+     }
+     if (rc && (ourrc = rc) >= terminate)
+       goto exit;
This page took 0.034765 seconds and 4 git commands to generate.