anchor.diff: -{ lib, stdenv, fetchurl, fetchpatch
  -, getopt, tzdata, ksh
  +{ lib
  +, stdenv
  +, fetchurl
  +, fetchpatch
  +, getopt
  +, tzdata
  +, ksh
   , pkgsMusl # for passthru.tests
   }:
   
   stdenv.mkDerivation rec {
     pname = "bmake";
  -  version = "20210621";
  +  version = "20220208";
   
     src = fetchurl {
  -    url    = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
  -    sha256 = "0gpzv75ibzqz1j1h0hdjgx1v7hkl3i5cb5yf6q9sfcgx0bvb55xa";
  +    url = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
  +    hash = "sha256-ewDB4UYrLh5Upk2ND88n/HfursPxOSDv+NlST/BZ1to=";
     };
   
     # Make tests work with musl
  
positive.code:     })
    ];
  
    # The generated makefile is a small wrapper for calling ./boot-strap
    # with a given op. On a case-insensitive filesystem this generated
    # makefile clobbers a distinct, shipped, Makefile and causes
    # infinite recursion during tests which eventually fail with
    # "fork: Resource temporarily unavailable"
    configureFlags = [
      "--without-makefile"
    ];
  
    buildPhase = ''
      runHook preBuild
  
negative.code: 
    setupHook = ./setup-hook.sh;
  
    meta = with lib; {
      homepage = "http://www.crufty.net/help/sjg/bmake.html";
      description = "Portable version of NetBSD 'make'";
      license = licenses.bsd3;
      maintainers = with maintainers; [ thoughtpolice AndersonTorres ];
      platforms = platforms.unix;
      broken = stdenv.isAarch64; # ofborg complains
    };
  
    passthru.tests.bmakeMusl = pkgsMusl.bmake;
  }
  # TODO: report the quirks and patches to bmake devteam (especially the Musl one)
  