anchor.diff:  , perl, pkgconfig, python, serd, sord, sratom, suil }:
   
   let
  +
  +  # Ardour git repo uses a mix of annotated and lightweight tags. Annotated
  +  # tags are used for MAJOR.MINOR versioning, and lightweight tags are used
  +  # in-between; MAJOR.MINOR.REV where REV is the number of commits since the
  +  # last annotated tag. A slightly different version string format is needed
  +  # for the 'revision' info that is built into the binary; it is the format of
  +  # "git describe" when _not_ on an annotated tag(!): MAJOR.MINOR-REV-HASH.
  +
  +  # Version to build.
     tag = "3.5.403";
  +
  +  # Version info that is built into the binary. Keep in sync with 'tag'. The
  +  # last 8 digits is a (fake) commit id.
  +  revision = "3.5-403-00000000";
  +
   in
   
   stdenv.mkDerivation rec {
  
positive.code:     ];
  
    patchPhase = ''
      # The funny revision number is from `git describe rev`
      printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-g2f6065b\"; }\n' > libs/ardour/revision.cc
      # Note the different version number
      sed -i '33i rev = \"3.5-380-g2f6065b\"' wscript
      sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
      sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
      sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl
  
negative.code:   src = fetchgit {
      url = git://git.ardour.org/ardour/ardour.git;
      rev = "refs/tags/${tag}";
      sha256 = "0k1z8sbjf88dqn12kf9cykrqj38vkr879n2g6b4adk6cghn8wz3x";
    };
  
    buildInputs = 
  