anchor.diff:  
     # Works around a bug with 8.26:
     # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually).  Stop.
  -  preInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
  +  preInstall = optionalString isCross ''
       sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|'
     '';
   
  -  postInstall = optionalString (stdenv.hostPlatform != stdenv.buildPlatform && !minimal) ''
  +  postInstall = optionalString (isCross && !minimal) ''
       rm $out/share/man/man1/*
       cp ${buildPackages.coreutils-full}/share/man/man1/* $out/share/man/man1
     ''
  
positive.code:   outputs = [ "out" "info" ];
    separateDebugInfo = true;
  
    nativeBuildInputs = [ perl xz.bin autoreconfHook ] # autoreconfHook is due to patch, normally only needed for cygwin
      ++ optionals stdenv.hostPlatform.isCygwin [ texinfo ];  # due to patch
    configureFlags = [ "--with-packager=https://nixos.org" ]
      ++ optional (singleBinary != false)
        ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}")
      ++ optional withOpenssl "--with-openssl"
      ++ optional stdenv.hostPlatform.isSunOS "ac_cv_func_inotify_init=no"
      ++ optional withPrefix "--program-prefix=g"
      ++ optional stdenv.isDarwin "--disable-nls" # the shipped configure script doesn't enable nls, but using autoreconfHook does so which breaks the build
      ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc == "glibc") [
        # TODO(19b98110126fde7cbb1127af7e3fe1568eacad3d): Needed for fstatfs() I
        # don't know why it is not properly detected cross building with glibc.
        "fu_cv_sys_stat_statfs2_bsize=yes"
      ];
  
  
    buildInputs = [ gmp ]
      ++ optional aclSupport acl
      ++ optional attrSupport attr
      ++ optional withOpenssl openssl
      ++ optionals selinuxSupport [ libselinux libsepol ]
         # TODO(@Ericson2314): Investigate whether Darwin could benefit too
      ++ optional (stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform.libc != "glibc") libiconv;
  
    # The tests are known broken on Cygwin
    # (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
  
negative.code: { lib
  , stdenv
  , fetchurl
  , autoreconfHook
  , buildPackages
  , libiconv
  , perl
  , texinfo
  , xz
  , gmpSupport ? true, gmp
  , aclSupport ? stdenv.isLinux, acl
  , attrSupport ? stdenv.isLinux, attr
  , selinuxSupport ? false, libselinux, libsepol
  # No openssl in default version, so openssl-induced rebuilds aren't too big.
  # It makes *sum functions significantly faster.
  , minimal ? true
  , withOpenssl ? !minimal, openssl
  , withPrefix ? false
  , singleBinary ? "symlinks" # you can also pass "shebangs" or false
  }:
  
  # Note: this package is used for bootstrapping fetchurl, and thus cannot use
  # fetchpatch! All mutable patches (generated by GitHub or cgit) that are needed
  # here should be included directly in Nixpkgs as files.
  
  assert aclSupport -> acl != null;
  assert selinuxSupport -> libselinux != null && libsepol != null;
  
  let
    inherit (lib) concatStringsSep isString optional optionals optionalString;
    isCross = (stdenv.hostPlatform != stdenv.buildPlatform);
  in
  stdenv.mkDerivation rec {
    pname = "coreutils" + (optionalString (!minimal) "-full");
    version = "9.1";
  
    src = fetchurl {
  