Handle source vs binary pkg dependency difference in handlePreambleTag()
authorPanu Matilainen <pmatilai@redhat.com>
Mon, 15 Apr 2013 12:31:37 +0000 (15:31 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 7 Jun 2013 09:22:24 +0000 (12:22 +0300)
- We know perfectly well at handlePreambleTag() already whether something
  should go to binary or source package, pass the right pkg to
  parseRCPOT() so we dont need to fiddle with it there.
(cherry picked from commit 29813d418d0f9a255047353d0b163fb21fe943ad)

build/parsePreamble.c
build/parseReqs.c

index 159330e..9db0264 100644 (file)
@@ -780,15 +780,18 @@ static rpmRC handlePreambleTag(rpmSpec spec, Package pkg, rpmTagVal tag,
        }
        /* fallthrough */
     case RPMTAG_PREREQ:
-    case RPMTAG_BUILDPREREQ:
-    case RPMTAG_BUILDREQUIRES:
-    case RPMTAG_BUILDCONFLICTS:
     case RPMTAG_CONFLICTFLAGS:
     case RPMTAG_OBSOLETEFLAGS:
     case RPMTAG_PROVIDEFLAGS:
        if (parseRCPOT(spec, pkg, field, tag, 0, tagflags))
            goto exit;
        break;
+    case RPMTAG_BUILDPREREQ:
+    case RPMTAG_BUILDREQUIRES:
+    case RPMTAG_BUILDCONFLICTS:
+       if (parseRCPOT(spec, spec->sourcePackage, field, tag, 0, tagflags))
+           goto exit;
+       break;
     case RPMTAG_EXCLUDEARCH:
     case RPMTAG_EXCLUSIVEARCH:
     case RPMTAG_EXCLUDEOS:
index 89135bf..36db460 100644 (file)
@@ -88,11 +88,9 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
     case RPMTAG_BUILDREQUIRES:
        nametag = RPMTAG_REQUIRENAME;
        tagflags |= RPMSENSE_ANY;
-       pkg = spec->sourcePackage;
        break;
     case RPMTAG_BUILDCONFLICTS:
        nametag = RPMTAG_CONFLICTNAME;
-       pkg = spec->sourcePackage;
        break;
     }