anchor.diff:      xorg.libXfixes
       xorg.libXdamage
       wavpack
  -  ]
  -  ++ optional gtkSupport gtk3 # for gtksink
  -  ++ optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ]
  -  ++ optionals stdenv.isLinux [ libv4l libpulseaudio libavc1394 libiec61883 libgudev ]
  -  ++ optionals (stdenv.isLinux && enableJack) [
  +  ] ++ optional gtkSupport [
  +    # for gtksink
  +    gtk3
  +  ] ++ optionals stdenv.isDarwin [
  +    darwin.apple_sdk.frameworks.Cocoa
  +  ] ++ optionals stdenv.isLinux [
  +    libv4l
  +    libpulseaudio
  +    libavc1394
  +    libiec61883
  +    libgudev
  +  ] ++ optionals (stdenv.isLinux && enableJack) [
       jack2
     ];
   
     mesonFlags = [
  -    # Enables all features, so that we know when new dependencies are necessary.
  -    "-Dauto_features=enabled"
       "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
       "-Dqt5=disabled" # not clear as of writing how to correctly pass in the required qt5 deps
  -  ]
  -  ++ optional (!gtkSupport) "-Dgtk3=disabled"
  -  ++ optionals (!stdenv.isLinux || !enableJack) [
  +  ] ++ optionals (!gtkSupport) [
  +    "-Dgtk3=disabled"
  +  ] ++ optionals (!stdenv.isLinux || !enableJack) [
       "-Djack=disabled" # unclear whether Jack works on Darwin
  -  ]
  -  ++ optionals (!stdenv.isLinux) [
  +  ] ++ optionals (!stdenv.isLinux) [
       "-Dv4l2-gudev=disabled"
  +  ];
  +
  +
  +  NIX_LDFLAGS = [
  +    # linking error on Darwin
  +    # https://github.com/NixOS/nixpkgs/pull/70690#issuecomment-553694896
  +    "-lncurses"
     ];
   
     # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''"
     doCheck = false;
   
  +  meta = with stdenv.lib; {
  +    description = "GStreamer Good Plugins";
  +    homepage = "https://gstreamer.freedesktop.org";
  +    longDescription = ''
  +      a set of plug-ins that we consider to have good quality code,
  +      correct functionality, our preferred license (LGPL for the plug-in
  +      code, LGPL or LGPL-compatible for the supporting library).
  +    '';
  +    license = licenses.lgpl2Plus;
  +    platforms = platforms.linux ++ platforms.darwin;
  +    maintainers = with maintainers; [ matthewbauer ];
  +  };
   }
  
positive.code: in
  stdenv.mkDerivation rec {
    pname = "gst-plugins-good";
    version = "1.16.0";
  
    meta = with stdenv.lib; {
      description = "Gstreamer Good Plugins";
      homepage    = "https://gstreamer.freedesktop.org";
      longDescription = ''
        a set of plug-ins that we consider to have good quality code,
        correct functionality, our preferred license (LGPL for the plug-in
        code, LGPL or LGPL-compatible for the supporting library).
      '';
      license     = licenses.lgpl2Plus;
      platforms   = platforms.linux ++ platforms.darwin;
      maintainers = with maintainers; [ matthewbauer ];
    };
  
    src = fetchurl {
      url = "${meta.homepage}/src/${pname}/${pname}-${version}.tar.xz";
      sha256 = "1zdhif1mhf0ihkjpjyrh65g2iz2cawkjjb3h5w8h9ml06grxwjk5";
    };
  
    outputs = [ "out" "dev" ];
  
    patches = [ ./fix_pkgconfig_includedir.patch ];
  
    nativeBuildInputs = [ pkgconfig python meson ninja gettext ];
  
    NIX_LDFLAGS = "-lncurses";
  
    buildInputs = [
      gst-plugins-base orc bzip2
      libdv libvpx speex flac taglib
      cairo gdk-pixbuf aalib libcaca
      libsoup libshout lame mpg123 twolame libintl
      libXdamage
      libXext
      libXfixes
  
negative.code: { stdenv
  , fetchurl
  , meson
  , ninja
  , pkgconfig
  , python
  , gst-plugins-base
  , orc
  , bzip2
  , gettext
  , libv4l
  , libdv
  , libavc1394
  , libiec61883
  , libvpx
  , speex
  , flac
  , taglib
  , libshout
  , cairo
  , gdk-pixbuf
  , aalib
  , libcaca
  , libsoup
  , libpulseaudio
  , libintl
  , darwin
  , lame
  , mpg123
  , twolame
  , gtkSupport ? false, gtk3 ? null
    # As of writing, jack2 incurs a Qt dependency (big!) via `ffado`.
    # In the future we should probably split `ffado`.
  , enableJack ? false, jack2
  , libXdamage
  , libXext
  , libXfixes
  