Loading pkgs/applications/video/mpv/0001-fix-darwin-build.patch 0 → 100644 +29 −0 Original line number Diff line number Diff line --- a/osdep/mac/input_helper.swift +++ b/osdep/mac/input_helper.swift @@ -18,6 +18,14 @@ import Cocoa import Carbon.HIToolbox +extension NSCondition { + fileprivate func withLock<T>(_ body: () throws -> T) rethrows -> T { + self.lock() + defer { self.unlock() } + return try body() + } +} + class InputHelper: NSObject { var option: OptionHelper? var lock = NSCondition() --- a/audio/out/ao_avfoundation.m +++ b/audio/out/ao_avfoundation.m @@ -312,7 +312,8 @@ + #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 120000 p->observer = [[AVObserver alloc] initWithAO:ao]; NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; [center addObserver:p->observer selector:@selector(handleRestartNotification:) name:AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification object:p->renderer]; [center addObserver:p->observer selector:@selector(handleRestartNotification:) name:AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification object:p->renderer]; - + #endif return CONTROL_OK; pkgs/applications/video/mpv/darwin-sigtool-no-deep.patchdeleted 100644 → 0 +0 −13 Original line number Diff line number Diff line diff --git a/TOOLS/osxbundle.py b/TOOLS/osxbundle.py index 98699e478b..d02ecf610e 100755 --- a/TOOLS/osxbundle.py +++ b/TOOLS/osxbundle.py @@ -39,7 +39,7 @@ def apply_plist_template(plist_file, version): print(line.rstrip().replace('${VERSION}', version)) def sign_bundle(binary_name): - sh('codesign --force --deep -s - ' + bundle_path(binary_name)) + sh('rcodesign sign ' + bundle_path(binary_name)) def bundle_version(): if os.path.exists('VERSION'): pkgs/applications/video/mpv/default.nix +297 −200 Original line number Diff line number Diff line { lib , config , stdenv , fetchFromGitHub , addOpenGLRunpath , bash , docutils , meson , ninja , pkg-config , python3 , ffmpeg , freefont_ttf , freetype , libass , libpthreadstubs , nv-codec-headers-11 , lua , libuchardet , libiconv , xcbuild , rcodesign { lib, SDL2, addOpenGLRunpath, alsa-lib, bash, buildPackages, callPackage, config, darwin, docutils, fetchFromGitHub, ffmpeg, freefont_ttf, freetype, lcms2, libGL, libGLU, libX11, libXScrnSaver, libXext, libXinerama, libXpresent, libXrandr, libXv, libXxf86vm, libarchive, libass, libbluray, libbs2b, libcaca, libcdio, libcdio-paranoia, libdrm, libdvdnav, libiconv, libjack2, libplacebo, libpng, libpthreadstubs, libpulseaudio, libsixel, libtheora, libuchardet, libva, libvdpau, libxkbcommon, lua, mesa, meson, mujs, ninja, nv-codec-headers-11, openalSoft, pipewire, pkg-config, python3, rubberband, shaderc, # instead of spirv-cross speex, stdenv, swift, vapoursynth, vulkan-headers, vulkan-loader, wayland, wayland-protocols, wayland-scanner, xcbuild, zimg, , waylandSupport ? stdenv.isLinux , wayland , wayland-protocols , wayland-scanner , libxkbcommon , x11Support ? stdenv.isLinux , libGLU, libGL , libX11 , libXext , libXxf86vm , libXrandr , libXpresent , cddaSupport ? false , libcdio , libcdio-paranoia , vulkanSupport ? stdenv.isLinux , libplacebo , shaderc # instead of spirv-cross , vulkan-headers , vulkan-loader , drmSupport ? stdenv.isLinux , libdrm , mesa , alsaSupport ? stdenv.isLinux, alsa-lib , archiveSupport ? true, libarchive , bluraySupport ? true, libbluray , bs2bSupport ? true, libbs2b , cacaSupport ? true, libcaca , cmsSupport ? true, lcms2 , dvdnavSupport ? stdenv.isLinux, libdvdnav , dvbinSupport ? stdenv.isLinux , jackaudioSupport ? false, libjack2 , javascriptSupport ? true, mujs , libpngSupport ? true, libpng , openalSupport ? true, openalSoft , pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio , pipewireSupport ? stdenv.isLinux, pipewire , rubberbandSupport ? true, rubberband , screenSaverSupport ? true, libXScrnSaver , sdl2Support ? true, SDL2 , sixelSupport ? false, libsixel , speexSupport ? true, speex , swiftSupport ? stdenv.isDarwin, swift , theoraSupport ? true, libtheora , vaapiSupport ? x11Support || waylandSupport, libva , vapoursynthSupport ? false, vapoursynth , vdpauSupport ? true, libvdpau , xineramaSupport ? stdenv.isLinux, libXinerama , xvSupport ? stdenv.isLinux, libXv , zimgSupport ? true, zimg , darwin # Boolean alsaSupport ? stdenv.isLinux, archiveSupport ? true, bluraySupport ? true, bs2bSupport ? true, cacaSupport ? true, cddaSupport ? false, cmsSupport ? true, drmSupport ? stdenv.isLinux, dvbinSupport ? stdenv.isLinux, dvdnavSupport ? stdenv.isLinux, jackaudioSupport ? false, javascriptSupport ? true, libpngSupport ? true, openalSupport ? true, pipewireSupport ? stdenv.isLinux, pulseSupport ? config.pulseaudio or stdenv.isLinux, rubberbandSupport ? true, screenSaverSupport ? true, sdl2Support ? !stdenv.isDarwin, sixelSupport ? false, speexSupport ? true, swiftSupport ? stdenv.isDarwin, theoraSupport ? true, vaapiSupport ? x11Support || waylandSupport, vapoursynthSupport ? false, vdpauSupport ? true, vulkanSupport ? stdenv.isLinux, waylandSupport ? stdenv.isLinux, x11Support ? stdenv.isLinux, xineramaSupport ? stdenv.isLinux, xvSupport ? stdenv.isLinux, zimgSupport ? true, }: let inherit (darwin.apple_sdk_11_0.frameworks) AVFoundation Accelerate Cocoa CoreAudio CoreFoundation CoreMedia MediaPlayer VideoToolbox; AVFoundation Accelerate Cocoa CoreAudio CoreFoundation CoreMedia MediaPlayer VideoToolbox ; luaEnv = lua.withPackages (ps: with ps; [ luasocket ]); overrideSDK = platform: version: platform // lib.optionalAttrs (platform ? darwinMinVersion) { overrideSDK = platform: version: platform // lib.optionalAttrs (platform ? darwinMinVersion) { darwinMinVersion = version; }; stdenv' = if swiftSupport && stdenv.isDarwin && stdenv.isx86_64 then stdenv.override (old: { stdenv' = if swiftSupport && stdenv.isDarwin && stdenv.isx86_64 then stdenv.override (old: { buildPlatform = overrideSDK old.buildPlatform "10.15"; hostPlatform = overrideSDK old.hostPlatform "10.15"; targetPlatform = overrideSDK old.targetPlatform "10.15"; }) else stdenv; in stdenv'.mkDerivation (finalAttrs: { else stdenv; in stdenv'.mkDerivation (finalAttrs: { pname = "mpv"; version = "0.37.0"; version = "0.38.0"; outputs = [ "out" "dev" "doc" "man" ]; outputs = [ "out" "dev" "doc" "man" ]; src = fetchFromGitHub { owner = "mpv-player"; repo = "mpv"; rev = "v${finalAttrs.version}"; hash = "sha256-izAz9Iiam7tJAWIQkmn2cKOfoaog8oPKq4sOUtp1nvU="; hash = "sha256-dFajnCpGlNqUv33A8eFEn8kjtzIPkcBY5j0gNVlaiIY="; }; patches = [ ./darwin-sigtool-no-deep.patch ]; patches = [ # Fix build with Darwin SDK 11 ./0001-fix-darwin-build.patch ]; postPatch = lib.concatStringsSep "\n" [ # Don't reference compile time dependencies or create a build outputs cycle Loading @@ -135,7 +180,8 @@ in stdenv'.mkDerivation (finalAttrs: { export SWIFT_LIB_DYNAMIC="${lib.getLib swift.swift}/lib/swift/macosx" ''; mesonFlags = [ mesonFlags = [ (lib.mesonOption "default_library" "shared") (lib.mesonBool "libmpv" true) (lib.mesonEnable "libarchive" archiveSupport) Loading @@ -148,25 +194,31 @@ in stdenv'.mkDerivation (finalAttrs: { # Disable whilst Swift isn't supported (lib.mesonEnable "swift-build" swiftSupport) (lib.mesonEnable "macos-cocoa-cb" swiftSupport) ] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [ # Toggle explicitly because it fails on darwin (lib.mesonEnable "videotoolbox-pl" vulkanSupport) ]; mesonAutoFeatures = "auto"; nativeBuildInputs = [ nativeBuildInputs = [ addOpenGLRunpath docutils # for rst2man meson ninja pkg-config ] ++ lib.optionals stdenv.isDarwin [ xcbuild.xcrun rcodesign ] ++ lib.optionals stdenv.isDarwin [ buildPackages.darwin.sigtool xcbuild.xcrun ] ++ lib.optionals swiftSupport [ swift ] ++ lib.optionals waylandSupport [ wayland-scanner ]; buildInputs = [ buildInputs = [ bash ffmpeg freetype Loading @@ -176,15 +228,25 @@ in stdenv'.mkDerivation (finalAttrs: { libuchardet luaEnv python3 ] ++ lib.optionals alsaSupport [ alsa-lib ] ] ++ lib.optionals alsaSupport [ alsa-lib ] ++ lib.optionals archiveSupport [ libarchive ] ++ lib.optionals bluraySupport [ libbluray ] ++ lib.optionals bs2bSupport [ libbs2b ] ++ lib.optionals cacaSupport [ libcaca ] ++ lib.optionals cddaSupport [ libcdio libcdio-paranoia ] ++ lib.optionals cddaSupport [ libcdio libcdio-paranoia ] ++ lib.optionals cmsSupport [ lcms2 ] ++ lib.optionals drmSupport [ libdrm mesa ] ++ lib.optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ] ++ lib.optionals drmSupport [ libdrm mesa ] ++ lib.optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ] ++ lib.optionals jackaudioSupport [ libjack2 ] ++ lib.optionals javascriptSupport [ mujs ] ++ lib.optionals libpngSupport [ libpng ] Loading @@ -200,16 +262,42 @@ in stdenv'.mkDerivation (finalAttrs: { ++ lib.optionals vaapiSupport [ libva ] ++ lib.optionals vapoursynthSupport [ vapoursynth ] ++ lib.optionals vdpauSupport [ libvdpau ] ++ lib.optionals vulkanSupport [ shaderc vulkan-headers vulkan-loader ] ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ lib.optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr libXpresent ] ++ lib.optionals vulkanSupport [ shaderc vulkan-headers vulkan-loader ] ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ lib.optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr libXpresent ] ++ lib.optionals xineramaSupport [ libXinerama ] ++ lib.optionals xvSupport [ libXv ] ++ lib.optionals zimgSupport [ zimg ] ++ lib.optionals stdenv.isLinux [ nv-codec-headers-11 ] ++ lib.optionals stdenv.isDarwin [ libiconv ] ++ lib.optionals stdenv.isDarwin [ Accelerate CoreFoundation Cocoa CoreAudio MediaPlayer VideoToolbox ] ++ lib.optionals (stdenv.isDarwin && swiftSupport) [ AVFoundation CoreMedia ]; ++ lib.optionals stdenv.isDarwin [ Accelerate CoreFoundation Cocoa CoreAudio MediaPlayer VideoToolbox ] ++ lib.optionals (stdenv.isDarwin && swiftSupport) [ AVFoundation CoreMedia ]; postBuild = lib.optionalString stdenv.isDarwin '' pushd .. # Must be run from the source dir because it uses relative paths Loading @@ -217,7 +305,8 @@ in stdenv'.mkDerivation (finalAttrs: { popd ''; postInstall = '' postInstall = '' # Use a standard font mkdir -p $out/share/mpv ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf Loading @@ -234,7 +323,8 @@ in stdenv'.mkDerivation (finalAttrs: { mpv.desktop > umpv.desktop printf "NoDisplay=true\n" >> umpv.desktop popd '' + lib.optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin '' mkdir -p $out/Applications cp -r mpv.app $out/Applications ''; Loading @@ -258,6 +348,9 @@ in stdenv'.mkDerivation (finalAttrs: { vapoursynthSupport vapoursynth ; wrapper = callPackage ./wrapper.nix { }; scripts = callPackage ./scripts { }; }; meta = { Loading @@ -271,7 +364,11 @@ in stdenv'.mkDerivation (finalAttrs: { license = lib.licenses.gpl2Plus; mainProgram = "mpv"; maintainers = with lib.maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak AndersonTorres fpletz globin ma27 tadeokondrak ]; platforms = lib.platforms.unix; }; Loading pkgs/applications/video/mpv/wrapper.nix +10 −8 Original line number Diff line number Diff line Loading @@ -7,21 +7,23 @@ , symlinkJoin , writeTextDir , yt-dlp # the unwrapped mpv derivation , mpv }: # the unwrapped mpv derivation - 1st argument to `wrapMpv` mpv: let # arguments to the function (exposed as `wrapMpv` in all-packages.nix) # arguments to the function (exposed as `mpv-unwrapped.wrapper` in top-level) wrapper = { mpv, extraMakeWrapperArgs ? [], youtubeSupport ? true, # a set of derivations (probably from `mpvScripts`) where each is # expected to have a `scriptName` passthru attribute that points to the # name of the script that would reside in the script's derivation's # a set of derivations (probably from `mpvScripts`) where each is expected # to have a `scriptName` passthru attribute that points to the name of the # script that would reside in the script's derivation's # `$out/share/mpv/scripts/`. # A script can optionally also provide an `extraWrapperArgs` passthru attribute. # # A script can optionally also provide `passthru.extraWrapperArgs` # attribute. scripts ? [], extraUmpvWrapperArgs ? [] }: Loading pkgs/by-name/sv/svp/mpv.nix +4 −12 Original line number Diff line number Diff line { lib , mpv-unwrapped , wrapMpv , ocl-icd , ... }: let libraries = [ ocl-icd ]; in wrapMpv (mpv-unwrapped.override { vapoursynthSupport = true; }) { mpv-unwrapped.wrapper { mpv = mpv-unwrapped.override { vapoursynthSupport = true; }; extraMakeWrapperArgs = [ # Add paths to required libraries "--prefix" "LD_LIBRARY_PATH" ":" "/run/opengl-driver/lib:${lib.makeLibraryPath libraries}" "/run/opengl-driver/lib:${lib.makeLibraryPath [ ocl-icd ]}" ]; } Loading
pkgs/applications/video/mpv/0001-fix-darwin-build.patch 0 → 100644 +29 −0 Original line number Diff line number Diff line --- a/osdep/mac/input_helper.swift +++ b/osdep/mac/input_helper.swift @@ -18,6 +18,14 @@ import Cocoa import Carbon.HIToolbox +extension NSCondition { + fileprivate func withLock<T>(_ body: () throws -> T) rethrows -> T { + self.lock() + defer { self.unlock() } + return try body() + } +} + class InputHelper: NSObject { var option: OptionHelper? var lock = NSCondition() --- a/audio/out/ao_avfoundation.m +++ b/audio/out/ao_avfoundation.m @@ -312,7 +312,8 @@ + #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 120000 p->observer = [[AVObserver alloc] initWithAO:ao]; NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; [center addObserver:p->observer selector:@selector(handleRestartNotification:) name:AVSampleBufferAudioRendererOutputConfigurationDidChangeNotification object:p->renderer]; [center addObserver:p->observer selector:@selector(handleRestartNotification:) name:AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification object:p->renderer]; - + #endif return CONTROL_OK;
pkgs/applications/video/mpv/darwin-sigtool-no-deep.patchdeleted 100644 → 0 +0 −13 Original line number Diff line number Diff line diff --git a/TOOLS/osxbundle.py b/TOOLS/osxbundle.py index 98699e478b..d02ecf610e 100755 --- a/TOOLS/osxbundle.py +++ b/TOOLS/osxbundle.py @@ -39,7 +39,7 @@ def apply_plist_template(plist_file, version): print(line.rstrip().replace('${VERSION}', version)) def sign_bundle(binary_name): - sh('codesign --force --deep -s - ' + bundle_path(binary_name)) + sh('rcodesign sign ' + bundle_path(binary_name)) def bundle_version(): if os.path.exists('VERSION'):
pkgs/applications/video/mpv/default.nix +297 −200 Original line number Diff line number Diff line { lib , config , stdenv , fetchFromGitHub , addOpenGLRunpath , bash , docutils , meson , ninja , pkg-config , python3 , ffmpeg , freefont_ttf , freetype , libass , libpthreadstubs , nv-codec-headers-11 , lua , libuchardet , libiconv , xcbuild , rcodesign { lib, SDL2, addOpenGLRunpath, alsa-lib, bash, buildPackages, callPackage, config, darwin, docutils, fetchFromGitHub, ffmpeg, freefont_ttf, freetype, lcms2, libGL, libGLU, libX11, libXScrnSaver, libXext, libXinerama, libXpresent, libXrandr, libXv, libXxf86vm, libarchive, libass, libbluray, libbs2b, libcaca, libcdio, libcdio-paranoia, libdrm, libdvdnav, libiconv, libjack2, libplacebo, libpng, libpthreadstubs, libpulseaudio, libsixel, libtheora, libuchardet, libva, libvdpau, libxkbcommon, lua, mesa, meson, mujs, ninja, nv-codec-headers-11, openalSoft, pipewire, pkg-config, python3, rubberband, shaderc, # instead of spirv-cross speex, stdenv, swift, vapoursynth, vulkan-headers, vulkan-loader, wayland, wayland-protocols, wayland-scanner, xcbuild, zimg, , waylandSupport ? stdenv.isLinux , wayland , wayland-protocols , wayland-scanner , libxkbcommon , x11Support ? stdenv.isLinux , libGLU, libGL , libX11 , libXext , libXxf86vm , libXrandr , libXpresent , cddaSupport ? false , libcdio , libcdio-paranoia , vulkanSupport ? stdenv.isLinux , libplacebo , shaderc # instead of spirv-cross , vulkan-headers , vulkan-loader , drmSupport ? stdenv.isLinux , libdrm , mesa , alsaSupport ? stdenv.isLinux, alsa-lib , archiveSupport ? true, libarchive , bluraySupport ? true, libbluray , bs2bSupport ? true, libbs2b , cacaSupport ? true, libcaca , cmsSupport ? true, lcms2 , dvdnavSupport ? stdenv.isLinux, libdvdnav , dvbinSupport ? stdenv.isLinux , jackaudioSupport ? false, libjack2 , javascriptSupport ? true, mujs , libpngSupport ? true, libpng , openalSupport ? true, openalSoft , pulseSupport ? config.pulseaudio or stdenv.isLinux, libpulseaudio , pipewireSupport ? stdenv.isLinux, pipewire , rubberbandSupport ? true, rubberband , screenSaverSupport ? true, libXScrnSaver , sdl2Support ? true, SDL2 , sixelSupport ? false, libsixel , speexSupport ? true, speex , swiftSupport ? stdenv.isDarwin, swift , theoraSupport ? true, libtheora , vaapiSupport ? x11Support || waylandSupport, libva , vapoursynthSupport ? false, vapoursynth , vdpauSupport ? true, libvdpau , xineramaSupport ? stdenv.isLinux, libXinerama , xvSupport ? stdenv.isLinux, libXv , zimgSupport ? true, zimg , darwin # Boolean alsaSupport ? stdenv.isLinux, archiveSupport ? true, bluraySupport ? true, bs2bSupport ? true, cacaSupport ? true, cddaSupport ? false, cmsSupport ? true, drmSupport ? stdenv.isLinux, dvbinSupport ? stdenv.isLinux, dvdnavSupport ? stdenv.isLinux, jackaudioSupport ? false, javascriptSupport ? true, libpngSupport ? true, openalSupport ? true, pipewireSupport ? stdenv.isLinux, pulseSupport ? config.pulseaudio or stdenv.isLinux, rubberbandSupport ? true, screenSaverSupport ? true, sdl2Support ? !stdenv.isDarwin, sixelSupport ? false, speexSupport ? true, swiftSupport ? stdenv.isDarwin, theoraSupport ? true, vaapiSupport ? x11Support || waylandSupport, vapoursynthSupport ? false, vdpauSupport ? true, vulkanSupport ? stdenv.isLinux, waylandSupport ? stdenv.isLinux, x11Support ? stdenv.isLinux, xineramaSupport ? stdenv.isLinux, xvSupport ? stdenv.isLinux, zimgSupport ? true, }: let inherit (darwin.apple_sdk_11_0.frameworks) AVFoundation Accelerate Cocoa CoreAudio CoreFoundation CoreMedia MediaPlayer VideoToolbox; AVFoundation Accelerate Cocoa CoreAudio CoreFoundation CoreMedia MediaPlayer VideoToolbox ; luaEnv = lua.withPackages (ps: with ps; [ luasocket ]); overrideSDK = platform: version: platform // lib.optionalAttrs (platform ? darwinMinVersion) { overrideSDK = platform: version: platform // lib.optionalAttrs (platform ? darwinMinVersion) { darwinMinVersion = version; }; stdenv' = if swiftSupport && stdenv.isDarwin && stdenv.isx86_64 then stdenv.override (old: { stdenv' = if swiftSupport && stdenv.isDarwin && stdenv.isx86_64 then stdenv.override (old: { buildPlatform = overrideSDK old.buildPlatform "10.15"; hostPlatform = overrideSDK old.hostPlatform "10.15"; targetPlatform = overrideSDK old.targetPlatform "10.15"; }) else stdenv; in stdenv'.mkDerivation (finalAttrs: { else stdenv; in stdenv'.mkDerivation (finalAttrs: { pname = "mpv"; version = "0.37.0"; version = "0.38.0"; outputs = [ "out" "dev" "doc" "man" ]; outputs = [ "out" "dev" "doc" "man" ]; src = fetchFromGitHub { owner = "mpv-player"; repo = "mpv"; rev = "v${finalAttrs.version}"; hash = "sha256-izAz9Iiam7tJAWIQkmn2cKOfoaog8oPKq4sOUtp1nvU="; hash = "sha256-dFajnCpGlNqUv33A8eFEn8kjtzIPkcBY5j0gNVlaiIY="; }; patches = [ ./darwin-sigtool-no-deep.patch ]; patches = [ # Fix build with Darwin SDK 11 ./0001-fix-darwin-build.patch ]; postPatch = lib.concatStringsSep "\n" [ # Don't reference compile time dependencies or create a build outputs cycle Loading @@ -135,7 +180,8 @@ in stdenv'.mkDerivation (finalAttrs: { export SWIFT_LIB_DYNAMIC="${lib.getLib swift.swift}/lib/swift/macosx" ''; mesonFlags = [ mesonFlags = [ (lib.mesonOption "default_library" "shared") (lib.mesonBool "libmpv" true) (lib.mesonEnable "libarchive" archiveSupport) Loading @@ -148,25 +194,31 @@ in stdenv'.mkDerivation (finalAttrs: { # Disable whilst Swift isn't supported (lib.mesonEnable "swift-build" swiftSupport) (lib.mesonEnable "macos-cocoa-cb" swiftSupport) ] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [ # Toggle explicitly because it fails on darwin (lib.mesonEnable "videotoolbox-pl" vulkanSupport) ]; mesonAutoFeatures = "auto"; nativeBuildInputs = [ nativeBuildInputs = [ addOpenGLRunpath docutils # for rst2man meson ninja pkg-config ] ++ lib.optionals stdenv.isDarwin [ xcbuild.xcrun rcodesign ] ++ lib.optionals stdenv.isDarwin [ buildPackages.darwin.sigtool xcbuild.xcrun ] ++ lib.optionals swiftSupport [ swift ] ++ lib.optionals waylandSupport [ wayland-scanner ]; buildInputs = [ buildInputs = [ bash ffmpeg freetype Loading @@ -176,15 +228,25 @@ in stdenv'.mkDerivation (finalAttrs: { libuchardet luaEnv python3 ] ++ lib.optionals alsaSupport [ alsa-lib ] ] ++ lib.optionals alsaSupport [ alsa-lib ] ++ lib.optionals archiveSupport [ libarchive ] ++ lib.optionals bluraySupport [ libbluray ] ++ lib.optionals bs2bSupport [ libbs2b ] ++ lib.optionals cacaSupport [ libcaca ] ++ lib.optionals cddaSupport [ libcdio libcdio-paranoia ] ++ lib.optionals cddaSupport [ libcdio libcdio-paranoia ] ++ lib.optionals cmsSupport [ lcms2 ] ++ lib.optionals drmSupport [ libdrm mesa ] ++ lib.optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ] ++ lib.optionals drmSupport [ libdrm mesa ] ++ lib.optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ] ++ lib.optionals jackaudioSupport [ libjack2 ] ++ lib.optionals javascriptSupport [ mujs ] ++ lib.optionals libpngSupport [ libpng ] Loading @@ -200,16 +262,42 @@ in stdenv'.mkDerivation (finalAttrs: { ++ lib.optionals vaapiSupport [ libva ] ++ lib.optionals vapoursynthSupport [ vapoursynth ] ++ lib.optionals vdpauSupport [ libvdpau ] ++ lib.optionals vulkanSupport [ shaderc vulkan-headers vulkan-loader ] ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ lib.optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr libXpresent ] ++ lib.optionals vulkanSupport [ shaderc vulkan-headers vulkan-loader ] ++ lib.optionals waylandSupport [ wayland wayland-protocols libxkbcommon ] ++ lib.optionals x11Support [ libX11 libXext libGLU libGL libXxf86vm libXrandr libXpresent ] ++ lib.optionals xineramaSupport [ libXinerama ] ++ lib.optionals xvSupport [ libXv ] ++ lib.optionals zimgSupport [ zimg ] ++ lib.optionals stdenv.isLinux [ nv-codec-headers-11 ] ++ lib.optionals stdenv.isDarwin [ libiconv ] ++ lib.optionals stdenv.isDarwin [ Accelerate CoreFoundation Cocoa CoreAudio MediaPlayer VideoToolbox ] ++ lib.optionals (stdenv.isDarwin && swiftSupport) [ AVFoundation CoreMedia ]; ++ lib.optionals stdenv.isDarwin [ Accelerate CoreFoundation Cocoa CoreAudio MediaPlayer VideoToolbox ] ++ lib.optionals (stdenv.isDarwin && swiftSupport) [ AVFoundation CoreMedia ]; postBuild = lib.optionalString stdenv.isDarwin '' pushd .. # Must be run from the source dir because it uses relative paths Loading @@ -217,7 +305,8 @@ in stdenv'.mkDerivation (finalAttrs: { popd ''; postInstall = '' postInstall = '' # Use a standard font mkdir -p $out/share/mpv ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf Loading @@ -234,7 +323,8 @@ in stdenv'.mkDerivation (finalAttrs: { mpv.desktop > umpv.desktop printf "NoDisplay=true\n" >> umpv.desktop popd '' + lib.optionalString stdenv.isDarwin '' '' + lib.optionalString stdenv.isDarwin '' mkdir -p $out/Applications cp -r mpv.app $out/Applications ''; Loading @@ -258,6 +348,9 @@ in stdenv'.mkDerivation (finalAttrs: { vapoursynthSupport vapoursynth ; wrapper = callPackage ./wrapper.nix { }; scripts = callPackage ./scripts { }; }; meta = { Loading @@ -271,7 +364,11 @@ in stdenv'.mkDerivation (finalAttrs: { license = lib.licenses.gpl2Plus; mainProgram = "mpv"; maintainers = with lib.maintainers; [ AndersonTorres fpletz globin ma27 tadeokondrak AndersonTorres fpletz globin ma27 tadeokondrak ]; platforms = lib.platforms.unix; }; Loading
pkgs/applications/video/mpv/wrapper.nix +10 −8 Original line number Diff line number Diff line Loading @@ -7,21 +7,23 @@ , symlinkJoin , writeTextDir , yt-dlp # the unwrapped mpv derivation , mpv }: # the unwrapped mpv derivation - 1st argument to `wrapMpv` mpv: let # arguments to the function (exposed as `wrapMpv` in all-packages.nix) # arguments to the function (exposed as `mpv-unwrapped.wrapper` in top-level) wrapper = { mpv, extraMakeWrapperArgs ? [], youtubeSupport ? true, # a set of derivations (probably from `mpvScripts`) where each is # expected to have a `scriptName` passthru attribute that points to the # name of the script that would reside in the script's derivation's # a set of derivations (probably from `mpvScripts`) where each is expected # to have a `scriptName` passthru attribute that points to the name of the # script that would reside in the script's derivation's # `$out/share/mpv/scripts/`. # A script can optionally also provide an `extraWrapperArgs` passthru attribute. # # A script can optionally also provide `passthru.extraWrapperArgs` # attribute. scripts ? [], extraUmpvWrapperArgs ? [] }: Loading
pkgs/by-name/sv/svp/mpv.nix +4 −12 Original line number Diff line number Diff line { lib , mpv-unwrapped , wrapMpv , ocl-icd , ... }: let libraries = [ ocl-icd ]; in wrapMpv (mpv-unwrapped.override { vapoursynthSupport = true; }) { mpv-unwrapped.wrapper { mpv = mpv-unwrapped.override { vapoursynthSupport = true; }; extraMakeWrapperArgs = [ # Add paths to required libraries "--prefix" "LD_LIBRARY_PATH" ":" "/run/opengl-driver/lib:${lib.makeLibraryPath libraries}" "/run/opengl-driver/lib:${lib.makeLibraryPath [ ocl-icd ]}" ]; }