Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 29 additions & 1 deletion repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -844,10 +844,38 @@ def updateInstallProgress(m):
total = 0
updateInstallProgress(m)
rv = p.wait()
gpg_error_message = None

if stderr.find(' in import_key_to_pubring') >= 0:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this extra indentation?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah this is an badly solved merge conflict with 522558a, which will need to be reverted first. Any hint about what problems this was stderr capture was seen to cause?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DNF5 output some information we need to stderr instead of stdout. So we don't separate stderr now. I suppose you would need to collect it somehow now.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not really easy for me to do such forward-porting on master (especially testing), since we've not started to use that branch. Would it be possible to target xs8 first, and then once that gets accepted start to work on a master version, to streamline the process a bit more?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, fine with me

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It took some time to get back to it, but #334 is here at last.

gpg_error_message = "Signature key import failed"
# add any other instance of uncaught GpgmeError before this like
elif stderr.find('gpgme.GpgmeError: ') >= 0:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor.

I find

elif 'gpgme.GpgmeError: ' in stderr:

more readable.

gpg_error_message = "Cryptography-related yum crash"

elif re.search("Couldn't open file [^ ]*/repodata/repomd.xml.asc", stderr):
# would otherwise be mistaken for "pubring import" !?
gpg_error_message = "No signature on repository metadata"
elif stderr.find('repomd.xml signature could not be verified') >= 0:
gpg_error_message = "Repository signature verification failure"

else:
match = re.search("Public key for ([^ ]*.rpm) is not installed", stderr)
if match:
gpg_error_message = "Missing key for %s" % (match.group(1),)
match = re.search("Package ([^ ]*.rpm) is not signed", stderr)
if match:
gpg_error_message = "Package not signed: %s" % (match.group(1),)
match = re.search(r" ([^ ]*): \[Errno [0-9]*\] No more mirrors to try", stderr)
if match:
# rpm not found or corrupted/re-signed/etc
gpg_error_rpm_not_found = match.group(1)
gpg_error_message = "Cannot find valid rpm for %s" % (match.group(1),)

if rv:
logger.log("DNF exited with %d" % rv)
raise ErrorInstallingPackage("Error installing packages")
if gpg_error_message is None:
gpg_error_message = "Error installing packages"
raise ErrorInstallingPackage(gpg_error_message)

shutil.rmtree(os.path.join(mounts['root'], cachedir), ignore_errors=True)

Expand Down