This is still a problem in Fedora 33. There are some older posts about this and there is a fix being worked on by Gnome. For me, the problem is caused by the rpmsphere and rpmsphere-noarch repos, because they have gpgcheck set to 0. Disabling these repos fixes the problem:
sudo dnf config-manager --set-disabled rpmsphere rpmsphere-noarch
Any repo with gpgcheck=0 will cause the problem. This script will fix them all:
#!/usr/bin/env perl
# Attempts to fix the error: "could not do untrusted question as no klass
# support"
# Bill Chatfield - GPL2
# The problem is caused by repos that have GPG disabled, probably because
# their packages are unsigned. The gpgcheck=0 in repo file is the direct
# cause of the error. But, you can't just set it to 1 because then any
# packages will fail to upgrade because they're likely unsigned.
my $iniPackage = "perl-Config-INI";
my $isIniInstalled = (system("rpm --query --quiet $iniPackage") >> 8) == 0;
if (! $isIniInstalled) {
print "Required package $iniPackage will be installed.\n";
system("sudo dnf install $iniPackage");
}
use Config::INI::Reader;
my @repoFiles=`grep -lw 'gpgcheck=0' /etc/yum.repos.d/*`;
my $foundRepoToDisable = 0;
for my $repoFile (@repoFiles) {
chomp($repoFile);
my $conf = Config::INI::Reader->read_file($repoFile);
for my $repoName (keys(%$conf)) {
my $repoProps = $conf->{$repoName};
if ($repoProps->{gpgcheck} == 0 && $repoProps->{enabled} == 1) {
$foundRepoToDisable = 1;
print "The $repoName repo has gpgcheck turned off, so it will be disabled.\n";
system("sudo dnf config-manager --set-disabled $repoName");
}
}
}
if (! $foundRepoToDisable) {
print "All repos are ready for upgrade.\n";
}
Also here.