summaryrefslogtreecommitdiff
path: root/Master/tlpkg/TeXLive/TLPDB.pm
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2016-05-05 02:15:12 +0000
committerNorbert Preining <preining@logic.at>2016-05-05 02:15:12 +0000
commit5413e02cb51c0edb633e91c9d4392544deb8182a (patch)
tree5674dc42b0c4144ebab6cca526fda1ae81278ce5 /Master/tlpkg/TeXLive/TLPDB.pm
parent860db49e7ecadc88bfc288aaa53ff773ab0d2ef4 (diff)
continue despite missing pubkey, report details for failed verification
git-svn-id: svn://tug.org/texlive/trunk@40898 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/TeXLive/TLPDB.pm')
-rw-r--r--Master/tlpkg/TeXLive/TLPDB.pm31
1 files changed, 31 insertions, 0 deletions
diff --git a/Master/tlpkg/TeXLive/TLPDB.pm b/Master/tlpkg/TeXLive/TLPDB.pm
index aa2c7f51040..b82d747c2bb 100644
--- a/Master/tlpkg/TeXLive/TLPDB.pm
+++ b/Master/tlpkg/TeXLive/TLPDB.pm
@@ -51,6 +51,7 @@ C<TeXLive::TLPDB> -- A database of TeX Live Packages
$tlpdb->location;
$tlpdb->platform;
$tlpdb->is_verified;
+ $tlpdb->verification_status;
$tlpdb->config_src_container;
$tlpdb->config_doc_container;
$tlpdb->config_container_format;
@@ -270,6 +271,7 @@ sub from_file {
} else {
$self->root($root_from_path);
}
+ $self->verification_status("unknown");
my $retfh;
my $tlpdbfile;
my $is_verified = 0;
@@ -373,10 +375,16 @@ sub from_file {
tldie("$0: connection problems, cannot download: $m\n");
} elsif ($r == -2) {
debug("$0: remote database checksum is not signed, continuing anyway!\n");
+ $self->verification_status("not signed");
} elsif ($r == -3) {
debug("$0: TLPDB: no gpg available, continuing anyway!\n");
+ $self->verification_status("gnupg not available");
+ } elsif ($r == -4) {
+ debug("$0: TLPDB: pubkey missing, continuing anyway!\n");
+ $self->verification_status("pubkey missing");
} elsif ($r == 0) {
$is_verified = 1;
+ $self->verification_status("verified");
} else {
tldie("$0: unexpected return value from verify_checksum: $r\n");
}
@@ -393,8 +401,13 @@ sub from_file {
tldie("$0: connection problems, cannot download: $m\n");
} elsif ($r == -2) {
debug("$0: remote database checksum is not signed, continuing anyway!\n");
+ $self->verification_status("not signed");
} elsif ($r == -3) {
debug("$0: TLPDB: no gpg available, continuing anyway!\n");
+ $self->verification_status("gnupg not available");
+ } elsif ($r == -4) {
+ debug("$0: TLPDB: pubkey missing, continuing anyway!\n");
+ $self->verification_status("pubkey missing");
} elsif ($r == 0) {
$is_verified = 1;
} else {
@@ -1160,6 +1173,24 @@ sub is_verified {
if (@_) { $self->{'verified'} = shift }
return $self->{'verified'};
}
+=pod
+
+=item C<< $tlpdb->verification_status >>
+
+Returns a short textual explanation of the verification status.
+In particular if the database is not verified, it returns the reason.
+
+=cut
+
+sub verification_status {
+ my $self = shift;
+ if ($self->is_virtual) {
+ tlwarn("TLPDB: cannot set/edit verification status of a virtual tlpdb\n");
+ return 0;
+ }
+ if (@_) { $self->{'verification_status'} = shift }
+ return $self->{'verification_status'};
+}
=pod