diff -up hplip-3.20.3/base/tui.py.keyserver hplip-3.20.3/base/tui.py --- hplip-3.20.3/base/tui.py.keyserver 2020-03-10 09:01:53.000000000 +0100 +++ hplip-3.20.3/base/tui.py 2020-04-07 08:44:44.319710001 +0200 @@ -241,6 +241,7 @@ class ProgressMeter(object): sys.stdout.write(y) sys.stdout.flush() + sys.stdout.write('\n') self.prev_length = len(y) self.spinner_pos = (self.spinner_pos + 1) % 8 diff -up hplip-3.20.3/base/validation.py.keyserver hplip-3.20.3/base/validation.py --- hplip-3.20.3/base/validation.py.keyserver 2020-03-10 09:01:53.000000000 +0100 +++ hplip-3.20.3/base/validation.py 2020-04-07 08:45:46.657132415 +0200 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/python3 # -*- coding: utf-8 -*- # # (c) Copyright 2015 HP Development Company, L.P. @@ -42,8 +42,11 @@ class DigiSign_Verification(object): class GPG_Verification(DigiSign_Verification): - def __init__(self, pgp_site = 'pgp.mit.edu', key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9): - self.__pgp_site = pgp_site + def __init__(self, keyservers = ['pool.sks-keyservers.net', + 'keyserver.ubuntu.com', + 'sks-keyservers.net', 'pgp.mit.edu'], + key = 0x4ABA2F66DBD5A95894910E0673D770CDA59047B9): + self.__keyservers = keyservers self.__key = key self.__gpg = utils.which('gpg',True) @@ -82,13 +85,18 @@ class GPG_Verification(DigiSign_Verifica def __acquire_gpg_key(self): - - cmd = '%s --homedir %s --no-permission-warning --keyserver %s --recv-keys 0x%X' \ - % (self.__gpg, self.__gpg_dir, self.__pgp_site, self.__key) - - log.info("Receiving digital keys: %s" % cmd) - status, output = utils.run(cmd) - log.debug(output) + for kserver in self.__keyservers: + cmd = '%s --homedir %s --no-permission-warning --keyserver %s --recv-keys 0x%X' \ + % (self.__gpg, self.__gpg_dir, kserver, self.__key) + + log.info("Receiving digital keys: %s" % cmd) + status, output = utils.run(cmd) + log.debug(output) + + if not status: + break + log.info("Receiving keys from {} failed, trying the next keyserver." + .format(kserver)) self.__change_owner(True)