anchor.diff:          imagemagick gconf ]
       ++ stdenv.lib.optional (withX && withGTK2) gtk2
       ++ stdenv.lib.optional (withX && withGTK3) gtk3
  -    ++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo;
  +    ++ stdenv.lib.optional (stdenv.isDarwin && withX) cairo
  +    ++ stdenv.lib.optional withXwidgets webkitgtk24x;
   
     propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit GSS ImageIO ];
   
     configureFlags =
  -    if stdenv.isDarwin
  +    (if stdenv.isDarwin
         then [ "--with-ns" "--disable-ns-self-contained" ]
       else if withX
         then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
         else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
  -             "--with-gif=no" "--with-tiff=no" ];
  +             "--with-gif=no" "--with-tiff=no" ])
  +    ++ stdenv.lib.optional withXwidgets "--with-xwidgets";
   
     NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
       "-I${cairo.dev}/include/cairo";
  
positive.code: , autoconf, automake
  , withX ? !stdenv.isDarwin
  , withGTK3 ? false, gtk3 ? null
  , withGTK2 ? true, gtk2
  }:
  
  
negative.code: assert withGTK3 -> withX || stdenv.isDarwin;
  assert withGTK2 -> !withGTK3 && gtk2 != null;
  assert withGTK3 -> !withGTK2 && gtk3 != null;
  assert withXwidgets -> withGTK3 && webkitgtk24x != null;
  
  let
    toolkit =
  