Disable some image comparison tests on architectures such as i686 where intermediate floating-point operations are done with 80-bit long doubles, and typically later rounded to 64-bit doubles. This double rounding causes small differences in the resulting pixel values compared with other architectures, causing the image comparisons to fail. Patch by Mark H Weaver . diff -ru libgd-2.2.3.orig/tests/gdimagecopyresampled/basic_alpha.c libgd-2.2.3/tests/gdimagecopyresampled/basic_alpha.c --- libgd-2.2.3.orig/tests/gdimagecopyresampled/basic_alpha.c 2016-07-21 04:06:42.000000000 -0400 +++ libgd-2.2.3/tests/gdimagecopyresampled/basic_alpha.c 2016-07-29 13:50:56.214877446 -0400 @@ -1,5 +1,6 @@ /* Testing basic gdImageCopyResampled() functionality with alpha channel */ +#include #include "gd.h" #include "gdtest.h" @@ -33,7 +34,8 @@ gdImageCopyResampled(copy, im, 0,0, 0,0, 200,200, 400,300); gdImageDestroy(im); - gdAssertImageEqualsToFile("gdimagecopyresampled/basic_alpha_exp.png", copy); + if (FLT_EVAL_METHOD != 2) + gdAssertImageEqualsToFile("gdimagecopyresampled/basic_alpha_exp.png", copy); gdImageDestroy(copy); return gdNumFailures(); diff -ru libgd-2.2.3.orig/tests/gdimagecopyresampled/bug00201.c libgd-2.2.3/tests/gdimagecopyresampled/bug00201.c --- libgd-2.2.3.orig/tests/gdimagecopyresampled/bug00201.c 2016-07-21 04:06:42.000000000 -0400 +++ libgd-2.2.3/tests/gdimagecopyresampled/bug00201.c 2016-07-29 13:50:30.638559003 -0400 @@ -1,3 +1,4 @@ +#include #include "gd.h" #include "gdtest.h" @@ -65,7 +66,8 @@ gdImageDestroy(background); gdImageDestroy(scaled_logo); - gdAssertImageEqualsToFile("gdimagecopyresampled/bug00201_exp.png", img); + if (FLT_EVAL_METHOD != 2) + gdAssertImageEqualsToFile("gdimagecopyresampled/bug00201_exp.png", img); gdImageDestroy(img); return gdNumFailures(); } diff -ru libgd-2.2.3.orig/tests/gdimagerotate/bug00067.c libgd-2.2.3/tests/gdimagerotate/bug00067.c --- libgd-2.2.3.orig/tests/gdimagerotate/bug00067.c 2016-06-18 05:42:16.000000000 -0400 +++ libgd-2.2.3/tests/gdimagerotate/bug00067.c 2016-07-29 13:50:07.566271765 -0400 @@ -1,5 +1,6 @@ #include #include +#include #include "gd.h" #include "gdtest.h" @@ -43,7 +44,7 @@ sprintf(filename, "bug00067_%03d_exp.png", angle); path = gdTestFilePath2("gdimagerotate", filename); - if (!gdAssertImageEqualsToFile(path, exp)) { + if (FLT_EVAL_METHOD != 2 && !gdAssertImageEqualsToFile(path, exp)) { gdTestErrorMsg("comparing rotated image to %s failed.\n", path); error += 1; } &showmsg=1'>Expand)Author 2020-12-15store-copy: 'populate-store' can optionally deduplicate files....Until now deduplication was performed as an additional pass after copying files, which involve re-traversing all the files that had just been copied. * guix/store/deduplication.scm (copy-file/deduplicate): New procedure. * tests/store-deduplication.scm ("copy-file/deduplicate"): New test. * guix/build/store-copy.scm (populate-store): Add #:deduplicate? parameter and honor it. * tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate? to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise. * gnu/build/install.scm (populate-single-profile-directory): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/linux-initrd.scm (build-initrd): Likewise. * guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New procedure. [build]: Pass it as an argument to 'source-module-closure'. * guix/scripts/pack.scm (squashfs-image)[build]: Wrap in 'with-extensions'. * gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New procedure. [builder]: Pass it to 'source-module-closure'. * gnu/system/install.scm (cow-store-service-type)[import-module?]: New procedure. Pass it to 'source-module-closure'. Ludovic Courtès