anchor.diff:  { stdenv, fetchFromGitHub, cmake
  -, icestorm, python3, boost, qtbase
  +, boost, python3
  +
  +# TODO: also add libtrellis, later on
  +, icestorm
  +
  +# TODO(thoughtpolice) Currently the GUI build seems broken at runtime on my
  +# laptop (and over a remote X server on my server...), so mark it broken for
  +# now, with intent to fix later.
  +, enableGui ? false
  +, qtbase
   }:
   
   let
  
positive.code:     license     = licenses.isc;
      platforms   = platforms.linux;
      maintainers = with maintainers; [ thoughtpolice ];
    };
  }
  
negative.code:   };
  
    nativeBuildInputs = [ cmake ];
    buildInputs
       = [ boostPython python3 ]
      ++ (stdenv.lib.optional enableGui qtbase);
  
    enableParallelBuilding = true;
    cmakeFlags =
      [ "-DARCH=generic;ice40"
        "-DICEBOX_ROOT=${icestorm}/share/icebox"
      ] ++ (stdenv.lib.optional (!enableGui) "-DBUILD_GUI=OFF");
  
    meta = with stdenv.lib; {
      description = "Place and route tool for FPGAs";
  