anchor.diff: -{ stdenv
  +{ lib
  +, stdenv
   , fetchFromGitHub
  +, fetchpatch
  +, buildPackages
   , cmake
   , glib
  -, gobject-introspection
   , icu
   , libxml2
   , ninja
   , perl
   , pkgconfig
  +, libical
   , python3
   , tzdata
  -, vala
  +, introspectionSupport ? stdenv.buildPlatform == stdenv.hostPlatform
  +, gobject-introspection ? null
  +, vala ? null
   }:
  +
  +assert introspectionSupport -> gobject-introspection != null && vala != null;
   
   stdenv.mkDerivation rec {
     pname = "libical";
  
positive.code:   ];
  
    cmakeFlags = [
      "-DGOBJECT_INTROSPECTION=True"
      "-DENABLE_GTK_DOC=False"
      "-DICAL_GLIB_VAPI=True"
    ];
  
    patches = [
      # Will appear in 3.1.0
      # https://github.com/libical/libical/issues/350
      ./respect-env-tzdir.patch
    ];
  
    # Using install check so we do not have to manually set
  
negative.code: 
    nativeBuildInputs = [
      cmake
      ninja
      perl
      pkgconfig
      # Docs building fails:
      # https://github.com/NixOS/nixpkgs/pull/67204
      # previously with https://github.com/NixOS/nixpkgs/pull/61657#issuecomment-495579489
      # gtk-doc docbook_xsl docbook_xml_dtd_43 # for docs
    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
      # provides ical-glib-src-generator that runs during build
      libical
    ] ++ lib.optionals introspectionSupport [
      gobject-introspection
      vala
    ];
    installCheckInputs = [
      # running libical-glib tests
  