Fix regression on addressing main package by its name (RhBug:972994)
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 11 Jun 2013 06:51:48 +0000 (09:51 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 11 Jun 2013 06:55:59 +0000 (09:55 +0300)
- The main package name is not known when we start parsing the preamble,
  so newPackage() is called with NULL name and the early callers use
  NULL to find it. Populate the name as soon as we know it so
  various "%foo -n <name>" operations work on the main package too,
  which got broken by commit 9929459f9967ecfe0a05d557bc42531944faa70a.
(cherry picked from commit fed1298af7911145c953da8910fd5f2f15976374)

build/parsePreamble.c

index f7cc167..e4b1f94 100644 (file)
@@ -670,6 +670,9 @@ static rpmRC handlePreambleTag(rpmSpec spec, Package pkg, rpmTagVal tag,
        if (rpmCharCheck(spec, field, strlen(field), ".-_+%{}"))
           goto exit;
        headerPutString(pkg->header, tag, field);
+       /* Main pkg name is unknown at the start, populate as soon as we can */
+       if (pkg == spec->packages)
+           pkg->name = rpmstrPoolId(spec->pool, field, 1);
        break;
     case RPMTAG_VERSION:
     case RPMTAG_RELEASE: