Merge pull request #35885 from rnhmjoj/mpv

mpv: fix lua library paths and clean up
This commit is contained in:
Jörg Thalheim 2018-02-28 00:12:19 +00:00 committed by GitHub
commit 700a963111
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 39 additions and 20 deletions

View file

@ -1,7 +1,7 @@
{ stdenv, fetchurl, fetchFromGitHub, fetchpatch, makeWrapper
, docutils, perl, pkgconfig, python3, which, ffmpeg
, freefont_ttf, freetype, libass, libpthreadstubs
, lua, lua5_sockets, libuchardet, libiconv ? null, darwin
, lua, luasocket, libuchardet, libiconv ? null, darwin
, x11Support ? true,
mesa ? null,
@ -13,25 +13,25 @@
wayland ? null,
libxkbcommon ? null
, rubberbandSupport ? !stdenv.isDarwin, rubberband ? null
, rubberbandSupport ? true, rubberband ? null
, xineramaSupport ? true, libXinerama ? null
, xvSupport ? true, libXv ? null
, sdl2Support ? true, SDL2 ? null
, alsaSupport ? !stdenv.isDarwin, alsaLib ? null
, alsaSupport ? true, alsaLib ? null
, screenSaverSupport ? true, libXScrnSaver ? null
, vdpauSupport ? true, libvdpau ? null
, dvdreadSupport ? !stdenv.isDarwin, libdvdread ? null
, dvdnavSupport ? dvdreadSupport, libdvdnav ? null
, dvdreadSupport ? true, libdvdread ? null
, dvdnavSupport ? true, libdvdnav ? null
, bluraySupport ? true, libbluray ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
, pulseSupport ? !stdenv.isDarwin, libpulseaudio ? null
, pulseSupport ? true, libpulseaudio ? null
, bs2bSupport ? true, libbs2b ? null
, cacaSupport ? true, libcaca ? null
, libpngSupport ? true, libpng ? null
, youtubeSupport ? true, youtube-dl ? null
, vaapiSupport ? true, libva ? null
, drmSupport ? !stdenv.isDarwin, libdrm ? null
, drmSupport ? true, libdrm ? null
, vapoursynthSupport ? false, vapoursynth ? null
, archiveSupport ? false, libarchive ? null
, jackaudioSupport ? false, libjack2 ? null
@ -127,14 +127,15 @@ in stdenv.mkDerivation rec {
python3 ${waf} configure --prefix=$out $configureFlags
'';
nativeBuildInputs = [ docutils makeWrapper perl pkgconfig python3 which ];
nativeBuildInputs = [
docutils makeWrapper perl
pkgconfig python3 which
];
buildInputs = [
ffmpeg freetype libass libpthreadstubs
lua lua5_sockets libuchardet
] ++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
libiconv Cocoa CoreAudio ])
++ optional alsaSupport alsaLib
lua luasocket libuchardet
] ++ optional alsaSupport alsaLib
++ optional xvSupport libXv
++ optional theoraSupport libtheora
++ optional xineramaSupport libXinerama
@ -157,7 +158,10 @@ in stdenv.mkDerivation rec {
++ optional archiveSupport libarchive
++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
++ optionals x11Support [ libX11 libXext mesa libXxf86vm ]
++ optionals waylandSupport [ wayland libxkbcommon ];
++ optionals waylandSupport [ wayland libxkbcommon ]
++ optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
libiconv Cocoa CoreAudio
]);
enableParallelBuilding = true;
@ -165,7 +169,14 @@ in stdenv.mkDerivation rec {
python3 ${waf} build
'';
installPhase = ''
installPhase =
let
getPath = type : "${luasocket}/lib/lua/${lua.luaversion}/?.${type};" +
"${luasocket}/share/lua/${lua.luaversion}/?.${type}";
luaPath = getPath "lua";
luaCPath = getPath "so";
in
''
python3 ${waf} install
# Use a standard font
@ -174,6 +185,8 @@ in stdenv.mkDerivation rec {
# Ensure youtube-dl is available in $PATH for MPV
wrapProgram $out/bin/mpv \
--add-flags "--scripts=${concatStringsSep "," scripts}" \
--prefix LUA_PATH : "${luaPath}" \
--prefix LUA_CPATH : "${luaCPath}" \
'' + optionalString youtubeSupport ''
--prefix PATH : "${youtube-dl}/bin" \
'' + optionalString vapoursynthSupport ''
@ -199,5 +212,3 @@ in stdenv.mkDerivation rec {
'';
};
}
# TODO: investigate caca support
# TODO: investigate lua5_sockets bug

View file

@ -16554,11 +16554,19 @@ with pkgs;
};
mpv = callPackage ../applications/video/mpv rec {
lua = lua5_1;
lua5_sockets = lua5_1_sockets;
inherit (luaPackages) luasocket;
youtube-dl = pythonPackages.youtube-dl;
libva = libva-full;
waylandSupport = stdenv.isLinux;
libva = libva-full;
waylandSupport = stdenv.isLinux;
alsaSupport = !stdenv.isDarwin;
pulseSupport = !stdenv.isDarwin;
rubberbandSupport = !stdenv.isDarwin;
dvdreadSupport = !stdenv.isDarwin;
dvdnavSupport = !stdenv.isDarwin;
drmSupport = !stdenv.isDarwin;
x11Support = !stdenv.isDarwin;
xineramaSupport = !stdenv.isDarwin;
xvSupport = !stdenv.isDarwin;
};
mpvScripts = {