release-cross: Test for unchanged native derivations

These derivations do not care about the target platform, and thus should
not be affected by cross-compiling. Currently, these tests *fail*, but they
will be fixed soon by a latter PR. The release-cross job doesn't block a
channel, so this should be no problem.
This commit is contained in:
John Ericson 2016-12-25 10:50:53 -08:00
parent 916012121c
commit 1d0e91831b

View file

@ -1,5 +1,7 @@
with import ./release-lib.nix { supportedSystems = [ builtins.currentSystem ]; };
let
lib = import ../../lib;
nativePlatforms = linux;
/* Basic list of packages to cross-build */
@ -22,6 +24,40 @@ let
in
{
# These `nativeDrv`s should be identical to their vanilla ones --- cross
# compiling should not affect the native derivation.
ensureUnaffected = let
# Absurd values are fine here, as we are not building anything. In fact,
# there probably a good idea to try to be "more parametric" --- i.e. avoid
# any special casing.
crossSystem = {
config = "foosys";
libc = "foolibc";
};
# Converting to a string (drv path) before checking equality is probably a
# good idea lest there be some irrelevant pass-through debug attrs that
# cause false negatives.
testEqualOne = path: system: let
f = attrs: builtins.toString (lib.getAttrFromPath path (allPackages attrs));
in assert f { inherit system; } == f { inherit system crossSystem; }; true;
testEqual = path: systems: forAllSupportedSystems systems (testEqualOne path);
mapTestEqual = lib.mapAttrsRecursive testEqual;
in mapTestEqual {
boehmgc = nativePlatforms;
libffi = nativePlatforms;
libiconv = nativePlatforms;
libtool = nativePlatforms;
zlib = nativePlatforms;
readline = nativePlatforms;
libxml2 = nativePlatforms;
guile = nativePlatforms;
};
/* Test some cross builds to the Sheevaplug */
crossSheevaplugLinux = let
crossSystem = {