From: Markus Lehtonen Date: Fri, 4 Jan 2013 13:10:02 +0000 (+0200) Subject: rpm.SpecFile: change specfile attribute to represent filename X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1140ccfa8619dd76cfe6e62a2f546ed4e86691d8;p=tools%2Fgit-buildpackage.git rpm.SpecFile: change specfile attribute to represent filename There is specdir to get the (absolute) directory path. Signed-off-by: Markus Lehtonen --- diff --git a/gbp/rpm/__init__.py b/gbp/rpm/__init__.py index 68f9b753..25c449cb 100644 --- a/gbp/rpm/__init__.py +++ b/gbp/rpm/__init__.py @@ -121,8 +121,8 @@ class SpecFile(object): def __init__(self, specfile): # Load spec file into our special data structure - self.specfile = os.path.abspath(specfile) - self.specdir = os.path.dirname(self.specfile) + self.specfile = os.path.basename(specfile) + self.specdir = os.path.dirname(os.path.abspath(specfile)) self._content = LinkedList() try: with open(specfile) as spec_file: @@ -241,7 +241,7 @@ class SpecFile(object): """ Write, possibly updated, spec to disk """ - with open(self.specfile, 'w') as spec_file: + with open(os.path.join(self.specdir, self.specfile), 'w') as spec_file: for line in self._content: spec_file.write(str(line)) @@ -661,7 +661,7 @@ class SpecFile(object): Return patches of the RPM as a gbp patchseries """ series = PatchSeries() - patchdir = os.path.dirname(self.specfile) + patchdir = self.specdir for n, p in sorted(self.patches.iteritems()): if p['autoupdate'] and p['apply']: fname = os.path.basename(p['filename']) diff --git a/gbp/scripts/buildpackage_rpm.py b/gbp/scripts/buildpackage_rpm.py index 75643fc4..47b352d4 100755 --- a/gbp/scripts/buildpackage_rpm.py +++ b/gbp/scripts/buildpackage_rpm.py @@ -509,9 +509,8 @@ def main(argv): pkgfiles = os.listdir(spec.specdir) for f in pkgfiles: src = os.path.join(spec.specdir, f) - if f == os.path.basename(spec.specfile): + if f == spec.specfile: dst = os.path.join(spec_dir, f) - spec.specfile = os.path.abspath(dst) else: dst = os.path.join(source_dir, f) try: @@ -522,7 +521,7 @@ def main(argv): shutil.copy2(src, dst) except IOError, err: raise GbpError, "Error exporting files: %s" % err - spec.specdir = spec_dir + spec.specdir = os.path.abspath(spec_dir) if options.orig_prefix != 'auto': options.orig_prefix = options.orig_prefix % dict(spec.version, @@ -562,9 +561,10 @@ def main(argv): # Finally build the package: if options.builder.startswith("rpmbuild"): - builder_args.extend([spec.specfile]) + builder_args.append(os.path.join(spec.specdir, + spec.specfile)) else: - builder_args.extend([os.path.basename(spec.specfile)]) + builder_args.append(spec.specfile) RunAtCommand(options.builder, builder_args, shell=True, extra_env={'GBP_BUILD_DIR': export_dir})(dir=export_dir) if options.postbuild: diff --git a/gbp/scripts/import_srpm.py b/gbp/scripts/import_srpm.py index a5d0a9a6..e57ddcc4 100755 --- a/gbp/scripts/import_srpm.py +++ b/gbp/scripts/import_srpm.py @@ -151,8 +151,7 @@ def import_spec_patches(repo, spec, dirs): repo.force_head('HEAD', hard=True) raise PatchImportError("Unable to update spec file, you need to edit" "and commit it manually") - repo.commit_all(msg=PATCH_AUTODELETE_COMMIT_MSG % - os.path.basename(spec.specfile)) + repo.commit_all(msg=PATCH_AUTODELETE_COMMIT_MSG % spec.specfile) def force_to_branch_head(repo, branch): @@ -325,7 +324,7 @@ def main(argv): for num, src in spec.sources.iteritems(): if num != spec.orig_src_num: files.append(src['filename']) - files.append(spec.specfile) + files.append(os.path.join(spec.specdir, spec.specfile)) for fname in files: fpath = os.path.join(dirs['src'], fname) if os.path.exists(fpath): @@ -463,7 +462,7 @@ def main(argv): if options.patch_import: spec = parse_spec(os.path.join(repo.path, options.packaging_dir, - os.path.basename(spec.specfile))) + spec.specfile)) import_spec_patches(repo, spec, dirs) commit = options.packaging_branch diff --git a/gbp/scripts/pq_rpm.py b/gbp/scripts/pq_rpm.py index 16e1f52e..d86d654a 100755 --- a/gbp/scripts/pq_rpm.py +++ b/gbp/scripts/pq_rpm.py @@ -336,7 +336,7 @@ def import_spec_patches(repo, branch, options): repo.set_branch(branch) - return os.path.basename(spec.specfile) + return spec.specfile def rebase_pq(repo, branch, options): diff --git a/tests/test_rpm.py b/tests/test_rpm.py index 3e04fcd8..01d8b277 100644 --- a/tests/test_rpm.py +++ b/tests/test_rpm.py @@ -88,7 +88,7 @@ class TestSpecFile(object): spec = SpecFileTester(spec_filepath) # Test basic properties - assert spec.specfile == spec_filepath + assert spec.specfile == os.path.basename(spec_filepath) assert spec.specdir == os.path.dirname(spec_filepath) assert spec.name == 'gbp-test'