anchor.diff:        '';
   
   
  -  # Make a package that just contains a setup hook with the given contents.
  +  /*
  +   * Make a package that just contains a setup hook with the given contents.
  +   * This setup hook will be invoked by any package that includes this package
  +   * as a buildInput. Optionally takes a list of substitutions that should be
  +   * applied to the resulting script.
  +   *
  +   * Examples:
  +   * # setup hook that depends on the hello package and runs ./myscript.sh
  +   * myhellohook = makeSetupHook { deps = [ hello ]; } ./myscript.sh;
  +   *
  +   * # wrotes a setup hook where @bash@ myscript.sh is substituted for the
  +   * # bash interpreter. 
  +   * myhellohookSub = makeSetupHook {
  +   *                 deps = [ hello ];
  +   *                 substitutions = { bash = "${pkgs.bash}/bin/bash"; };
  +   *               } ./myscript.sh;
  +   */
     makeSetupHook = { name ? "hook", deps ? [], substitutions ? {} }: script:
       runCommand name substitutions
         (''
  
positive.code: 
  rec {
  
    # Run the shell command `buildCommand' to produce a store path named
    # `name'.  The attributes in `env' are added to the environment
    # prior to running the command.
    runCommand = runCommandNoCC;
    runCommandNoCC = runCommand' stdenvNoCC;
    runCommandCC = runCommand' stdenv;
  
  
    # Create a single file.
    writeTextFile =
      { name # the name of the derivation
      , text
  
negative.code:       '') entries));
  
  
    /* Print an error message if the file with the specified name and
     * hash doesn't exist in the Nix store. This function should only
     * be used by non-redistributable software with an unfree license
     * that we need to require the user to download manually. It produces
     * packages that cannot be built automatically.
     *
     * Examples:
     * 
     * requireFile {
     *   name = "my-file";
     *   url = "http://example.com/download/";
     *   sha256 = "ffffffffffffffffffffffffffffffffffffffffffffffffffff";
     * }
     */
    requireFile = { name ? null
                  , sha256 ? null
                  , sha1 ? null
  