anchor.diff:  # checkout from a Subversion or CVS repository) into a source tarball
   # by running `autoreconf', `configure' and `make dist'.
   
  -args: with args;
  +{ officialRelease ? false
  +, buildInputs ? []
  +, src, stdenv, autoconf, automake, libtool
  +, ...} @ args:
  +
  +let
  +
  +  versionSuffix =
  +    if officialRelease
  +    then ""
  +    else if src ? rev then "-pre${toString src.rev}" else "";
  +
  +in
   
   stdenv.mkDerivation (
   
  
positive.code: 
      nextPostUnpack = if args ? postUnpack then args.postUnpack else "";
  
      preConfigure = ''
        # Some packages1 use the file `svn-revision' to construct the
        # release name.
        rev="${if src ? rev then toString src.rev else ""}"
        if test -n "$rev"; then echo "$rev" > svn-revision; fi
        eval "$nextPreConfigure"
      '';
  
      nextPreConfigure = if args ? preConfigure then args.preConfigure else "";
  
      # Autoconfiscate the sources.
      autoconfPhase = ''
        eval "$preAutoconf"
      
        if test -f ./bootstrap; then ./bootstrap
  
negative.code:   {
      src = src.path;
  
      buildInputs = buildInputs ++ [autoconf automake];
      
      postHook = ''
        ensureDir $out/nix-support
  