import-srpm: import all packaging files from src.rpm
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Wed, 27 Feb 2013 13:53:52 +0000 (15:53 +0200)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 7 Jan 2014 14:21:30 +0000 (16:21 +0200)
Don't try to be too clever when importing an (true) src.rpm - just
import all files from there without trying to guess file list from spec.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/scripts/import_srpm.py

index 63ea7f7514b2e25e5b19c8a87223165f8d193b95..d6b1ba58fbeae15a379350b3688dfaa938b04e77 100755 (executable)
@@ -262,8 +262,10 @@ def main(argv):
             srpm = download_source(srpm, dirs)
 
         # Real srpm, we need to unpack, first
+        true_srcrpm = False
         if not os.path.isdir(srpm) and not srpm.endswith(".spec"):
             src = parse_srpm(srpm)
+            true_srcrpm = True
             dirs['pkgextract'] = tempfile.mkdtemp(dir=dirs['tmp_base'],
                                                   prefix='pkgextract_')
             gbp.log.info("Extracting src rpm to '%s'" % dirs['pkgextract'])
@@ -319,13 +321,20 @@ def main(argv):
             if err.errno != errno.EEXIST:
                 raise
 
-        # Need to copy files to the packaging directory given by caller
-        files = [os.path.basename(patch.path) \
-                for patch in spec.patchseries(unapplied=True, ignored=True)]
-        for num, filename in spec.sources().iteritems():
-            if not spec.orig_src or num != spec.orig_src['num']:
+        if true_srcrpm:
+            # For true src.rpm we just take everything
+            files = os.listdir(dirs['src'])
+        else:
+            # Need to copy files to the packaging directory given by caller
+            files = [os.path.basename(patch.path) \
+                    for patch in spec.patchseries(unapplied=True, ignored=True)]
+            for filename in spec.sources().values():
                 files.append(filename)
-        files.append(os.path.join(spec.specdir, spec.specfile))
+            files.append(os.path.join(spec.specdir, spec.specfile))
+        # Don't copy orig source archive, though
+        if spec.orig_src and spec.orig_src['filename'] in files:
+            files.remove(spec.orig_src['filename'])
+
         for fname in files:
             fpath = os.path.join(dirs['src'], fname)
             if os.path.exists(fpath):