anchor.diff:  , ffmpegSupport ? true
   , gtk3Support ? true, gtk2, gtk3, wrapGAppsHook
   , waylandSupport ? true, libxkbcommon
  +, ltoSupport ? true, overrideCC, buildPackages
   , gssSupport ? true, kerberos
   , pipewireSupport ? waylandSupport && webrtcSupport, pipewire
   
  
positive.code:   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
    ++ lib.optional  gtk3Support gtk3
    ++ lib.optional  gssSupport kerberos
    ++ lib.optionals waylandSupport [ libxkbcommon ]
    ++ lib.optionals pipewireSupport [ pipewire ]
    ++ lib.optionals stdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
                                       AVFoundation MediaToolbox CoreLocation
                                       Foundation libobjc AddressBook cups ];
  
    NIX_CFLAGS_COMPILE = toString [
      "-I${glib.dev}/include/gio-unix-2.0"
  
negative.code:     gappsWrapperArgs+=(--argv0 "$out/bin/.${binaryName}-wrapped")
    '';
  
    postFixup = lib.optionalString buildStdenv.isLinux ''
      # Fix notifications. LibXUL uses dlopen for this, unfortunately; see #18712.
      patchelf --set-rpath "${lib.getLib libnotify
        }/lib:$(patchelf --print-rpath "$out"/lib/${binaryName}*/libxul.so)" \
  