anchor.diff:  , withHttpServer ? true
   , withStreams ? true
   }:
  -
  -# One and only one front-end.
  -assert withQt5 -> withQt4 == false;
  -assert withQt4 -> withQt5 == false;
  -assert withQt4 || withQt5;
   
   # Inter-dependencies.
   assert withCddb -> withCdda && withTaglib;
  
positive.code:     ++ stdenv.lib.optional  withMusicbrainz libmusicbrainz5
      ++ stdenv.lib.optional  withUdisks udisks2;
  
    nativeBuildInputs = [ cmake pkgconfig ];
  
    enableParallelBuilding = true;
  
    cmakeFlags = stdenv.lib.flatten [
      (fstat withQt5            "QT5")
      (fstats withTaglib        [ "TAGLIB" "TAGLIB_EXTRAS" ])
      (fstats withReplaygain    [ "FFMPEG" "MPG123" "SPEEXDSP" ])
      (fstat withCdda           "CDPARANOIA")
  
negative.code:     sha256 = "1b633chgfs8rya78bzzck5zijna15d1y4nmrz4dcjp862ks5y5q6";
    };
  
    buildInputs = [ vlc qtbase qtmultimedia qtsvg ]
      ++ stdenv.lib.optionals withTaglib [ taglib taglib_extras ]
      ++ stdenv.lib.optionals withReplaygain [ ffmpeg speex mpg123 ]
      ++ stdenv.lib.optional  withCdda cdparanoia
  