Merge remote-tracking branch 'tails/img-determinism'

master
Simon McVittie 2017-09-28 11:19:27 +01:00
commit 30b101e6e8
2 changed files with 19 additions and 0 deletions

View File

@ -174,6 +174,12 @@ sub preprocess (@) {
my $r = $im->Read("$format:$srcfile\[$pagenumber]");
error sprintf(gettext("failed to read %s: %s"), $file, $r) if $r;
if ($config{deterministic}) {
$im->Set('date:create' => 0);
$im->Set('date:modify' => 0);
$im->Set('option' => 'png:exclude-chunk=time');
}
if (! defined $im->Get("width") || ! defined $im->Get("height")) {
error sprintf(gettext("failed to get dimensions of %s"), $file);
}

13
t/img.t
View File

@ -155,6 +155,19 @@ ok(! -e "$outpath/666x-really-pdf.jpg");
like($outhtml, qr/${quot}really-pdf\.png${quot} does not seem to be a valid png file/);
ok(! -e "$outpath/666x-really-pdf.png");
# resize is deterministic when deterministic=1
ok(utime(333333333, 333333333, "t/tmp/in/redsquare.png"));
ok(! system("rm $outpath/10x-redsquare.png"));
ok(! system(@command, '--set-yaml', 'img_allowed_formats=[JPEG, PNG, svg, pdf]', '--set', 'deterministic=1', "--rebuild"));
ok(! system("cp $outpath/10x-redsquare.png $outpath/10x-redsquare.png.orig"));
ok(utime(444444444, 444444444, "t/tmp/in/redsquare.png"));
ok(! system("rm $outpath/10x-redsquare.png"));
ok(! system(@command, '--set-yaml', 'img_allowed_formats=[JPEG, PNG, svg, pdf]', '--set', 'deterministic=1', "--rebuild"));
ok(
! system("cmp $outpath/10x-redsquare.png $outpath/10x-redsquare.png.orig"),
"resize is deterministic when configured with deterministic=1"
);
# disable support for uncommon formats and try again
ok(! system(@command, "--rebuild"));
ok(! -e "$outpath/10x-bluesquare.png");