anchor.diff:        --replace '#pragma GCC diagnostic error   "-Wcast-align"' ""
     '';
   
  -  outputs = [ "out" "dev" ];
  +  outputs = [ "out" "dev" "devdoc" ];
     outputBin = "dev";
   
  -  configureFlags = [
  -    # not auto-detected by default
  -    "--with-graphite2=${if withGraphite2 then "yes" else "no"}"
  -    "--with-icu=${if withIcu then "yes" else "no"}"
  -    "--with-gobject=yes"
  -    "--enable-introspection=yes"
  -  ]
  -    ++ stdenv.lib.optional withCoreText "--with-coretext=yes";
  +  mesonFlags = [
  +    (mesonFeatureFlag "graphite" withGraphite2)
  +    (mesonFeatureFlag "icu" withIcu)
  +    (mesonFeatureFlag "coretext" withCoreText)
  +  ];
   
     nativeBuildInputs = [
  +    meson
  +    ninja
       gobject-introspection
       libintl
       pkgconfig
  +    python3
  +    gtk-doc
  +    docbook-xsl-nons
  +    docbook_xml_dtd_43
     ];
   
     buildInputs = [ glib freetype cairo ] # recommended by upstream
  
positive.code:     ++ optional withGraphite2 graphite2
      ++ optionals withIcu [ icu harfbuzz ];
  
    checkInputs = [ python ];
    doInstallCheck = false; # fails, probably a bug
  
    # Slightly hacky; some pkgs expect them in a single directory.
    postInstall = optionalString withIcu ''
      rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
      ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
      ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
  
negative.code: { stdenv, fetchFromGitHub, pkgconfig, glib, freetype, cairo, libintl
  , meson, ninja
  , gobject-introspection
  , icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one.
  , ApplicationServices, CoreText
  , withCoreText ? false
  , withIcu ? false # recommended by upstream as default, but most don't needed and it's big
  , withGraphite2 ? true # it is small and major distros do include it
  , python3
  , gtk-doc, docbook-xsl-nons, docbook_xml_dtd_43
  }:
  
  let
    version = "2.7.1";
    inherit (stdenv.lib) optional optionals optionalString;
    mesonFeatureFlag = opt: b:
      "-D${opt}=${if b then "enabled" else "disabled"}";
  in
  
  stdenv.mkDerivation {
    name = "harfbuzz${optionalString withIcu "-icu"}-${version}";
  
    src = fetchFromGitHub {
      owner  = "harfbuzz";
      repo   = "harfbuzz";
      rev    = version;
      sha256 = "172jmwp666xbs6yy1pc2495gnkz8xw11b8zkz3j19jxlvvp4mxcs";
    };
  
    postPatch = ''
      patchShebangs src/*.py
      patchShebangs test
    '' + stdenv.lib.optionalString stdenv.isDarwin ''
      # ApplicationServices.framework headers have cast-align warnings.
  