From aecfc649d6825acc147f3009577bfeb688bdc874 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Fri, 4 Jan 2013 15:10:02 +0200 Subject: [PATCH] rpm.SpecFile: change specfile attribute to represent filename There is specdir to get the (absolute) directory path. Signed-off-by: Markus Lehtonen --- gbp/rpm/__init__.py | 8 ++++---- gbp/scripts/buildpackage_rpm.py | 10 +++++----- gbp/scripts/import_srpm.py | 7 +++---- gbp/scripts/pq_rpm.py | 2 +- tests/test_rpm.py | 2 +- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/gbp/rpm/__init__.py b/gbp/rpm/__init__.py index 1000302..46cea28 100644 --- a/gbp/rpm/__init__.py +++ b/gbp/rpm/__init__.py @@ -127,8 +127,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: @@ -247,7 +247,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)) @@ -663,7 +663,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 338350c..3c6b7c1 100755 --- a/gbp/scripts/buildpackage_rpm.py +++ b/gbp/scripts/buildpackage_rpm.py @@ -517,9 +517,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: @@ -530,7 +529,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, @@ -570,9 +569,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 269101d..bbaa432 100755 --- a/gbp/scripts/import_srpm.py +++ b/gbp/scripts/import_srpm.py @@ -157,8 +157,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): @@ -331,7 +330,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): @@ -469,7 +468,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 ba34054..8a938fa 100755 --- a/gbp/scripts/pq_rpm.py +++ b/gbp/scripts/pq_rpm.py @@ -337,7 +337,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 29ecb56..68886e8 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.specpath == spec_filepath -- 2.7.4