[Yum-devel] [PATCH] Add _override_sigchecks, so we catch dynamic repos. with --nogpgcheck etc.
seth vidal
skvidal at fedoraproject.org
Tue Dec 7 22:21:08 UTC 2010
On Fri, 2010-12-03 at 12:43 -0500, James Antill wrote:
> ---
> cli.py | 9 ++++-----
> yum/__init__.py | 7 ++++++-
> yum/repos.py | 2 ++
> yum/yumRepo.py | 2 +-
> 4 files changed, 13 insertions(+), 7 deletions(-)
>
> diff --git a/cli.py b/cli.py
> index 88d8c07..06bfb68 100644
> --- a/cli.py
> +++ b/cli.py
> @@ -1497,12 +1497,11 @@ class YumOptionParser(OptionParser):
>
> # Disable all gpg key checking, if requested.
> if opts.nogpgcheck:
> - self.base.conf.gpgcheck = False
> - self.base.conf.repo_gpgcheck = False
> - self.base.conf.localpkg_gpgcheck = False
> + # Altering the normal configs. doesn't work too well, esp. with
> + # regard to dynamically enabled repos.
> + self._override_sigchecks = True
> for repo in self.base.repos.listEnabled():
> - repo.gpgcheck = False
> - repo.repo_gpgcheck = False
> + repo._override_sigchecks = True
>
> except ValueError, e:
> self.logger.critical(_('Options Error: %s'), e)
> diff --git a/yum/__init__.py b/yum/__init__.py
> index 92fa0d0..5572960 100644
> --- a/yum/__init__.py
> +++ b/yum/__init__.py
> @@ -199,6 +199,8 @@ class YumBase(depsolve.Depsolve):
>
> self.run_with_package_names = set()
>
> + self._override_sigchecks = False
> +
> def __del__(self):
> self.close()
> self.closeRpmDB()
> @@ -2009,7 +2011,10 @@ class YumBase(depsolve.Depsolve):
> might help.
> - 2 - Fatal GPG verification error, give up.
> '''
> - if hasattr(po, 'pkgtype') and po.pkgtype == 'local':
> + if self._override_sigchecks:
> + check = False
> + hasgpgkey = 0
> + elif hasattr(po, 'pkgtype') and po.pkgtype == 'local':
> check = self.conf.localpkg_gpgcheck
> hasgpgkey = 0
> else:
> diff --git a/yum/repos.py b/yum/repos.py
> index 4b74ac6..4803a7f 100644
> --- a/yum/repos.py
> +++ b/yum/repos.py
> @@ -63,6 +63,8 @@ class RepoStorage:
> self._cache_enabled_repos = []
> self.quick_enable_disable = {}
>
> + self._override_sigchecks = ayum._override_sigchecks
> +
> def doSetup(self, thisrepo = None):
>
> self.ayum.plugins.run('prereposetup')
> diff --git a/yum/yumRepo.py b/yum/yumRepo.py
> index b0e23c6..a920db9 100644
> --- a/yum/yumRepo.py
> +++ b/yum/yumRepo.py
> @@ -1434,7 +1434,7 @@ class YumRepository(Repository, config.RepoConf):
> else:
> filepath = fo
>
> - if self.repo_gpgcheck:
> + if self.repo_gpgcheck and not self._override_sigchecks:
>
> if misc.gpgme is None:
> raise URLGrabError(-1, 'pygpgme is not working so repomd.xml can not be verified for %s' % (self))
ACK
-sv
More information about the Yum-devel
mailing list