anchor.diff:  
       # intermittent failures on builders, unknown reason
       sed '2i echo Skipping du basic test && exit 77' -i ./tests/du/basic.sh
  -  '' + (optionalString (stdenv.hostPlatform.libc == "musl") (lib.concatStringsSep "\n" [
  +  '' + (optionalString (stdenv.hostPlatform.libc == "musl") (concatStringsSep "\n" [
       ''
         echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c
         echo "int main() { return 77; }" > gnulib-tests/test-getlogin.c
  
positive.code: { stdenv, lib, buildPackages
  , autoreconfHook, bison, texinfo, fetchurl, perl, xz, libiconv, gmp ? null
  , aclSupport ? stdenv.isLinux, acl ? null
  , attrSupport ? stdenv.isLinux, attr ? null
  , selinuxSupport? false, libselinux ? null, libsepol ? null
  # No openssl in default version, so openssl-induced rebuilds aren't too big.
  # It makes *sum functions significantly faster.
  , minimal ? true, withOpenssl ? !minimal, openssl ? null
  , 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;
  
  with lib;
  
  stdenv.mkDerivation (rec {
    pname = "coreutils${optionalString (!minimal) "-full"}";
    version = "9.1";
  
    src = fetchurl {
  
negative.code:   outputs = [ "out" "info" ];
    separateDebugInfo = true;
  
    nativeBuildInputs = [
      # autoreconfHook is due to patch, normally only needed for cygwin
      autoreconfHook
      perl
      xz.bin
    ]
    ++ optionals stdenv.hostPlatform.isCygwin [
      # due to patch
      texinfo
    ];
  
    buildInputs = [ ]
      ++ optional aclSupport acl
      ++ optional attrSupport attr
      ++ optional gmpSupport gmp
      ++ optional withOpenssl openssl
      ++ optionals selinuxSupport [ libselinux libsepol ]
      # TODO(@Ericson2314): Investigate whether Darwin could benefit too
      ++ optional (isCross && stdenv.hostPlatform.libc != "glibc") libiconv;
  
    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"
      # the shipped configure script doesn't enable nls, but using autoreconfHook
      # does so which breaks the build
      ++ optional stdenv.isDarwin "--disable-nls"
      ++ optionals (isCross && 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"
      ];
  
    # The tests are known broken on Cygwin
    # (http://article.gmane.org/gmane.comp.gnu.core-utils.bugs/19025),
  