This is an automated email from the git hooks/post-receive script.
praiskup pushed a commit to branch master
in repository copr/copr.
commit ad5422e692b5c40af8416ff3f8d851a0904e73a9
Author: Jakub Kadlcik <frostyx(a)email.cz>
AuthorDate: Fri Jan 31 22:49:38 2020 +0100
rpmbuild: properly clean tmp directories even on build failure
Fixes: #1204
Merges: #1245
---
rpmbuild/main.py | 43 +++++++++++++++++++++++--------------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/rpmbuild/main.py b/rpmbuild/main.py
index 67e0396..5cf524f 100755
--- a/rpmbuild/main.py
+++ b/rpmbuild/main.py
@@ -152,12 +152,14 @@ def produce_srpm(task, config, resultdir):
"""
tempdir = tempfile.mkdtemp(prefix=resultdir)
os.chmod(tempdir, stat.S_IRWXU|stat.S_IRWXO)
- provider = providers.factory(task["source_type"])(
- task["source_json"], tempdir, config)
- provider.produce_srpm()
- for item in os.listdir(tempdir):
- shutil.copy(os.path.join(tempdir, item), resultdir)
- shutil.rmtree(tempdir)
+ try:
+ provider = providers.factory(task["source_type"])(
+ task["source_json"], tempdir, config)
+ provider.produce_srpm()
+ for item in os.listdir(tempdir):
+ shutil.copy(os.path.join(tempdir, item), resultdir)
+ finally:
+ shutil.rmtree(tempdir)
def get_task(args, config, build_config_url_path=None, task_id=None):
@@ -240,20 +242,21 @@ def build_rpm(args, config):
log_task(task)
sourcedir = tempfile.mkdtemp()
- scm_provider = providers.ScmProvider(task["source_json"], sourcedir,
config)
-
- if task.get("fetch_sources_only"):
- scm_provider.produce_sources()
- else:
- scm_provider.produce_srpm()
- built_srpm = locate_srpm(sourcedir)
- extract_srpm(built_srpm, sourcedir)
-
- resultdir = config.get("main", "resultdir")
- builder = MockBuilder(task, sourcedir, resultdir, config)
- builder.run()
- builder.touch_success_file()
- shutil.rmtree(sourcedir)
+ try:
+ scm_provider = providers.ScmProvider(task["source_json"], sourcedir,
config)
+ if task.get("fetch_sources_only"):
+ scm_provider.produce_sources()
+ else:
+ scm_provider.produce_srpm()
+ built_srpm = locate_srpm(sourcedir)
+ extract_srpm(built_srpm, sourcedir)
+
+ resultdir = config.get("main", "resultdir")
+ builder = MockBuilder(task, sourcedir, resultdir, config)
+ builder.run()
+ builder.touch_success_file()
+ finally:
+ shutil.rmtree(sourcedir)
def dump_configs(args, config):
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.