anchor.diff:      addOpenGLRunpath $out/bin/mpv
     '';
   
  -  meta = with lib; {
  -    homepage = "https://mpv.io";
  -    description = "General-purpose media player, fork of MPlayer and mplayer2";
  -    longDescription = ''
  -      mpv is a free and open-source general-purpose video player, based on the
  -      MPlayer and mplayer2 projects, with great improvements above both.
  -    '';
  -    license = licenses.gpl2Plus;
  -    maintainers = with maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak ];
  -    platforms = platforms.darwin ++ platforms.linux;
  -  };
  -
     passthru = {
       inherit
       # The wrapper consults luaEnv and lua.version
  
positive.code: , nv-codec-headers
  , lua
  , libuchardet
  , libiconv ? null
  , CoreFoundation, Cocoa, CoreAudio, MediaPlayer
  
  , waylandSupport ? stdenv.isLinux
    , wayland           ? null
    , wayland-protocols ? null
    , libxkbcommon      ? null
  
  , x11Support ? stdenv.isLinux
    , libGLU, libGL ? null
    , libX11          ? null
    , libXext         ? null
    , libXxf86vm      ? null
    , libXrandr       ? null
  
  , cddaSupport ? false
    , libcdio          ? null
    , libcdio-paranoia ? null
  
  , vulkanSupport ? stdenv.isLinux
    , libplacebo     ? null
    , shaderc        ? null
    , vulkan-headers ? null
    , vulkan-loader  ? null
  
  , drmSupport ? stdenv.isLinux
    , libdrm ? null
    , mesa   ? null
  
  , alsaSupport        ? stdenv.isLinux, alsa-lib      ? null
  , archiveSupport     ? true,           libarchive    ? null
  , bluraySupport      ? true,           libbluray     ? null
  , bs2bSupport        ? true,           libbs2b       ? null
  , cacaSupport        ? true,           libcaca       ? null
  , cmsSupport         ? true,           lcms2         ? null
  , dvdnavSupport      ? stdenv.isLinux, libdvdnav     ? null
  , jackaudioSupport   ? false,          libjack2      ? null
  , libpngSupport      ? true,           libpng        ? null
  , openalSupport      ? true,           openalSoft    ? null
  , pulseSupport       ? config.pulseaudio or stdenv.isLinux, libpulseaudio ? null
  , rubberbandSupport  ? stdenv.isLinux, rubberband    ? null
  , screenSaverSupport ? true,           libXScrnSaver ? null
  , sdl2Support        ? true,           SDL2          ? null
  , sixelSupport       ? false,          libsixel      ? null
  , speexSupport       ? true,           speex         ? null
  , swiftSupport       ? false,          swift         ? null
  , theoraSupport      ? true,           libtheora     ? null
  , vaapiSupport       ? stdenv.isLinux, libva         ? null
  , vapoursynthSupport ? false,          vapoursynth   ? null
  , vdpauSupport       ? true,           libvdpau      ? null
  , xineramaSupport    ? stdenv.isLinux, libXinerama   ? null
  , xvSupport          ? stdenv.isLinux, libXv         ? null
  , zimgSupport        ? true,           zimg          ? null
  }:
  
  with lib;
  
  let
    available = x: x != null;
  in
  assert alsaSupport        -> available alsa-lib;
  assert archiveSupport     -> available libarchive;
  assert bluraySupport      -> available libbluray;
  assert bs2bSupport        -> available libbs2b;
  assert cacaSupport        -> available libcaca;
  assert cddaSupport        -> all available [ libcdio libcdio-paranoia ];
  assert cmsSupport         -> available lcms2;
  assert drmSupport         -> all available [ libdrm mesa ];
  assert dvdnavSupport      -> available libdvdnav;
  assert jackaudioSupport   -> available libjack2;
  assert libpngSupport      -> available libpng;
  assert openalSupport      -> available openalSoft;
  assert pulseSupport       -> available libpulseaudio;
  assert rubberbandSupport  -> available rubberband;
  assert screenSaverSupport -> available libXScrnSaver;
  assert sdl2Support        -> available SDL2;
  assert sixelSupport       -> available libsixel;
  assert speexSupport       -> available speex;
  assert theoraSupport      -> available libtheora;
  assert vaapiSupport       -> available libva;
  assert vapoursynthSupport -> available vapoursynth;
  assert vdpauSupport       -> available libvdpau;
  assert vulkanSupport      -> all available [ libplacebo shaderc vulkan-headers vulkan-loader ];
  assert waylandSupport     -> all available [ wayland wayland-protocols libxkbcommon ];
  assert x11Support         -> all available [ libGLU libGL libX11 libXext libXxf86vm libXrandr ];
  assert xineramaSupport    -> x11Support && available libXinerama;
  assert xvSupport          -> x11Support && available libXv;
  assert zimgSupport        -> available zimg;
  
  let
    luaEnv = lua.withPackages (ps: with ps; [ luasocket ]);
  
negative.code:   postPatch = ''
      patchShebangs ./TOOLS/
    '';
  
    NIX_LDFLAGS = lib.optionalString x11Support "-lX11 -lXext "
      + lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
  
    wafConfigureFlags = [
      "--enable-libmpv-shared"
  