anchor.diff:    ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
     ++ lib.optional  gtk3Support gtk3
     ++ lib.optional  gssSupport kerberos
  -  ++ lib.optionals waylandSupport [ libxkbcommon pipewire ]
  +  ++ lib.optionals waylandSupport [ libxkbcommon ]
  +  ++ lib.optionals pipewireSupport [ pipewire ]
     ++ lib.optionals stdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
                                        AVFoundation MediaToolbox CoreLocation
                                        Foundation libobjc AddressBook cups ];
  
positive.code: 
    patches = [
      ./env_var_for_system_dir.patch
      (fetchpatch {
        # https://src.fedoraproject.org/rpms/firefox/blob/master/f/firefox-pipewire-0-3.patch
        url = "https://src.fedoraproject.org/rpms/firefox/raw/e99b683a352cf5b2c9ff198756859bae408b5d9d/f/firefox-pipewire-0-3.patch";
        sha256 = "0qc62di5823r7ly2lxkclzj9rhg2z7ms81igz44nv0fzv3dszdab";
      })
    ]
    ++ patches;
  
  
  
negative.code: }:
  
  assert stdenv.cc.libc or null != null;
  assert pipewireSupport -> !waylandSupport || !webrtcSupport -> throw "pipewireSupport requires both wayland and webrtc support.";
  
  let
    flag = tf: x: [(if tf then "--enable-${x}" else "--disable-${x}")];
  