Update CI image + purge python-gnupg + 3.115 compatibility#1481
Update CI image + purge python-gnupg + 3.115 compatibility#1481dralley wants to merge 6 commits into
Conversation
|
python-gnupg is finicky against newer versions of GPG, and it was breaking with the CentOS Stream 10 image, so I'm just going to take this opportunity to replace it with pysequoia, which I needed to do anyway as part of the PQC work. And to get it working with 3.115 there are some small changes required. |
| return _deb_copy_content_domain | ||
|
|
||
|
|
||
| def import_signing_key(key_url, gpg_home): |
There was a problem hiding this comment.
This block copied straight from pulpcore. We could import from pulpcore, but I figured it's easier to just keep them independent, and we're deleting enough code that I don't feel bad about it.
bc5a186 to
d3ef28c
Compare
|
@quba42 Matthias suggested I ask for your review also given the changes. Overall it's a significant simplification since sequoia doesn't require all of the ceremony that |
python-gnupg wraps the gpg binary and is sensitive to GnuPG version differences. The switch to CentOS 10 (GnuPG 2.4) broke things. Replace all runtime uses of python-gnupg with pysequoia via pulpcore's gpg_verify() helper. This has other benefits - support for newer PGP certificates and standards (including PQC) and no reliance on a system CLI tool that needs to be shelled out to and cleaned up after. - signing_service.py: remove prepare_gpg(), use gpg_verify() for all signature verification in AptReleaseSigningService and AptPackageSigningService - synchronizing.py: remove _gpg_agent_cleanup decorator and GPG instance management, use gpg_verify() directly in verify_gpg_artifacts() - signing.py: replace gpg --list-packets subprocess call with pysequoia PacketPile for extracting issuer key IDs from _gpgorigin Assisted-By: Claude Opus 4.6
Replace the signing_gpg_metadata and signing_gpg_extra fixtures with deb_signing_key_primary and deb_signing_key_secondary, which return GPGKeyInfo dataclass instances instead of gnupg.GPG objects. Copy the import_signing_key, create_signing_service, and remove_signing_service helper functions from pulpcore and use them to simplify local test fixtures Add python-gnupg to functest_requirements.txt since it is still used. Assisted-By: Claude Opus 4.6
Use find_api_root(lstrip=True) instead.
No description provided.