summaryrefslogtreecommitdiff
path: root/Master/tlpkg/TeXLive
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2016-05-17 14:32:03 +0000
committerNorbert Preining <preining@logic.at>2016-05-17 14:32:03 +0000
commit650958eaccd148987439f9bf75728bb0db208385 (patch)
tree56b9c80eb9b18bd9ad87615a024d8a8fd976bf9e /Master/tlpkg/TeXLive
parent725022c18848410ea99f5ec1bb3e7d83a24880a9 (diff)
checksum rework
- die in tlchecksum if no checksum is defined - make sure that we call tlchecksum in TLPOBJ::make_container only if it is a system container (for some tlnet - not a backup one), or there is a checksum method defined - make sure that we don't call tlchecksum in tlmgr when making a container git-svn-id: svn://tug.org/texlive/trunk@41218 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/TeXLive')
-rw-r--r--Master/tlpkg/TeXLive/TLCrypto.pm16
-rw-r--r--Master/tlpkg/TeXLive/TLPOBJ.pm11
2 files changed, 20 insertions, 7 deletions
diff --git a/Master/tlpkg/TeXLive/TLCrypto.pm b/Master/tlpkg/TeXLive/TLCrypto.pm
index 7716f9eb292..29e7a2c5a41 100644
--- a/Master/tlpkg/TeXLive/TLCrypto.pm
+++ b/Master/tlpkg/TeXLive/TLCrypto.pm
@@ -68,6 +68,11 @@ Returns the checksum method or undef if none found.
=cut
sub setup_checksum_method {
+ # make it a noop if already defined
+ # the checksum method could also be "" meaning that there
+ # is none. We do not need to check again. Thus we check
+ # on defined.
+ return ($::checksum_method) if defined($::checksum_method);
# default is no checksum
$::checksum_method = "";
# for debugging
@@ -122,11 +127,12 @@ Return checksum of C<$file>.
sub tlchecksum {
my ($file) = @_;
- # no reason to have this here
- # if (!$::checksum_method) {
- # setup_checksum_method();
- # }
- return "" if (!$::checksum_method);
+ # this is here for the case that a script forgets to
+ # set up the checksum method!
+ if (!$::checksum_method) {
+ setup_checksum_method();
+ }
+ tldie("no checksum method available\n") if (!$::checksum_method);
if (-r $file) {
my ($out, $ret);
if ($::checksum_method eq "openssl") {
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm
index 5830be6ae9a..91a06c32a29 100644
--- a/Master/tlpkg/TeXLive/TLPOBJ.pm
+++ b/Master/tlpkg/TeXLive/TLPOBJ.pm
@@ -602,8 +602,9 @@ sub make_container {
# overflow standard tar format and result in special things being
# done. We don't want the GNU-specific special things.
#
+ my $is_sys_container = ( $containername =~ /\.r[0-9]/ );
my @attrs
- = $containername =~ /\.r[0-9]/
+ = $is_sys_container
? ()
: ( "--owner", "0", "--group", "0", "--exclude", ".svn",
"--format", "ustar" );
@@ -683,7 +684,13 @@ sub make_container {
return (0, 0, "");
}
my $size = (stat "$destdir/$containername") [7];
- my $checksum = TeXLive::TLCrypto::tlchecksum("$destdir/$containername");
+ #
+ # if we are creating a system container, or there is a way to
+ # compute the checksums, do it
+ my $checksum = "";
+ if ($is_sys_container || $::checksum_method) {
+ $checksum = TeXLive::TLCrypto::tlchecksum("$destdir/$containername");
+ }
# cleaning up
unlink("$tlpobjdir/$self->{'name'}.tlpobj");