|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
From 7ede78fc7b8fae2e78c700f39eb68df1696e107f Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
From: Otto Urpelainen <oturpe@iki.fi>
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
Date: Tue, 12 Oct 2021 20:48:43 +0300
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
Subject: [PATCH] Continue execution if specfile parsing fails
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
The unused sources detection feature implemented by class SpecFile
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
is simply an optimization to avoid downloading unused sources.
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
The parsing is quite different from other steps performed by rpkg,
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
which also meant it can fail in new ways.
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
To avoid situations where an error in this optimization step prevents
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
usage that would otherwise succeed, this commit changes handling
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
of such errors from exiting to logging the situation and continuing
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
with the assumption that all sources in the sources file may
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
be needed.
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
Resolves: #583
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
JIRA: RHELCMP-7087
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
Merges: https://pagure.io/rpkg/pull-request/581
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
Signed-off-by: Otto Urpelainen <oturpe@iki.fi>
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
---
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
pyrpkg/__init__.py | 13 ++++++++++---
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
1 file changed, 10 insertions(+), 3 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
diff --git a/pyrpkg/__init__.py b/pyrpkg/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
index 23bca5b..2edcb09 100644
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
--- a/pyrpkg/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+++ b/pyrpkg/__init__.py
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
@@ -2042,8 +2042,15 @@ class Commands(object):
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
outdir = self.path
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
sourcesf = SourcesFile(self.sources_filename, self.source_entry_type)
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
- specf = SpecFile(os.path.join(self.layout.specdir, self.spec),
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
- self.layout.sourcedir)
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ try:
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ specf = SpecFile(os.path.join(self.layout.specdir, self.spec),
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ self.layout.sourcedir)
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ spec_parsed = True
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ except Exception:
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ self.log.warn("Parsing specfile for used sources failed. "
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ "Falling back to downloading all sources.")
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ spec_parsed = False
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
args = dict()
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
if self.lookaside_request_params:
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
@@ -2062,7 +2069,7 @@ class Commands(object):
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
"Error: Attempting a download '{0}' that would override a git tracked file. "
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
"Either remove the corresponding line from 'sources' file to keep the git "
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
"tracked one or 'git rm' the file to allow the download.".format(outfile))
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
- if (entry.file not in specf.sources):
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
+ if (spec_parsed and entry.file not in specf.sources):
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
self.log.info("Not downloading unused %s" % entry.file)
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
continue
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
self.lookasidecache.download(
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
--
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
2.31.1
|
|
![](https://seccdn.libravatar.org/avatar/4839116d65bebe0d191f285b19d5774238ed4be98dedc4f0d138e5a43e413e02?s=16&d=retro) |
fbeaedc |
|