cmd_build: use correct spec file
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Thu, 28 Jun 2012 12:50:08 +0000 (15:50 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 10 Jul 2012 13:16:34 +0000 (16:16 +0300)
Do not parse the working copy of the spec file but the one destined for
building.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gitbuildsys/cmd_build.py

index 3118145f17bd5b0d4f2e1400f76b1bb71f65f996..d04101e382552b5a5d19d846659eef4badebcb7a 100644 (file)
@@ -258,12 +258,6 @@ def do(opts, args):
         msger.error('arch %s not supported, supported archs are: %s ' % \
                    (buildarch, ','.join(supportedarchs)))
 
-    specs = glob.glob('%s/packaging/*.spec' % workdir)
-    if not specs:
-        msger.error('no spec file found under /packaging sub-directory')
-
-    specfile = utils.guess_spec(workdir, opts.spec)
-
     build_cmd  = configmgr.get('build_cmd', 'build')
     userid     = configmgr.get('user', 'remotebuild')
     tmpdir     = configmgr.get('tmpdir', 'general')
@@ -379,14 +373,9 @@ def do(opts, args):
         except errors.QemuError, exc:
             msger.error('%s' % exc)
 
-    try:
-        spec = rpm.parse_spec(specfile)
-    except GbpError, err:
-        msger.error('%s' % err)
-
-    if not spec.name or not spec.version:
-        msger.error('can\'t get correct name or version from spec file.')
-
+    # Only guess spec filename here, parse later when we have the correct
+    # spec file at hand
+    specfile = utils.guess_spec(workdir, opts.spec)
     packaging_dir = os.path.join(workdir, 'packaging/')
     export_dir = tempfile.mkdtemp(prefix=packaging_dir + 'build_')
     with utils.Workdir(workdir):
@@ -404,6 +393,17 @@ def do(opts, args):
         except GitRepositoryError, excobj:
             msger.error("Repository error: %s" % excobj)
 
+    # Parse spec file
+    try:
+        spec = rpm.parse_spec(os.path.join(export_dir, os.path.basename(specfile)))
+    except GbpError, err:
+        msger.error('%s' % err)
+
+    if not spec.name or not spec.version:
+        msger.error('can\'t get correct name or version from spec file.')
+
+    cmd += [spec.specfile]
+
     if opts.incremental:
         cmd += ['--rsync-src=%s' % os.path.abspath(workdir)]
         cmd += ['--rsync-dest=/home/abuild/rpmbuild/BUILD/%s-%s' % \