Loading ci/OWNERS +2 −2 Original line number Diff line number Diff line Loading @@ -373,8 +373,8 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt /pkgs/development/lua-modules @NixOS/lua # mpvScripts /pkgs/applications/video/mpv/scripts @uninsane /pkgs/applications/video/mpv/scripts.nix @uninsane /pkgs/by-name/mp/mpv/scripts @uninsane /pkgs/by-name/mp/mpv/scripts.nix @uninsane # Neovim /pkgs/applications/editors/neovim @NixOS/neovim Loading doc/release-notes/rl-2605.section.md +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ ### Deprecations {#sec-nixpkgs-release-26.05-lib-deprecations} - Create the first release note entry in this section! - `mpv-unwrapped.scripts` and `mpv-unwrapped.wrapper` have been removed. Please use `mpvScripts` and `mpv.override` accordingly. ### Additions and Improvements {#sec-nixpkgs-release-26.05-lib-additions-improvements} Loading pkgs/applications/video/mpv/wrapper.nixdeleted 100644 → 0 +0 −163 Original line number Diff line number Diff line # Arguments that this derivation gets when it is created with `callPackage` { stdenv, buildEnv, lib, makeBinaryWrapper, mpvScripts, symlinkJoin, writeTextDir, yt-dlp, # the unwrapped mpv derivation }: let # 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 # `$out/share/mpv/scripts/`. # # A script can optionally also provide `passthru.extraWrapperArgs` # attribute. scripts ? [ ], extraUmpvWrapperArgs ? [ ], }: let binPath = lib.makeBinPath ( [ mpv.luaEnv ] ++ lib.optionals mpv.vapoursynthSupport [ mpv.vapoursynth.python3 ] ); # With some tools, we want to prioritize tools that are in PATH. For example, users may want # to quickly expose a newer version of yt-dlp through the nix shell because it needs to be # kept up-to-date for it to work. fallbackBinPath = lib.makeBinPath (lib.optionals youtubeSupport [ yt-dlp ]); # All arguments besides the input and output binaries (${mpv}/bin/mpv and # $out/bin/mpv). These are used by the darwin specific makeWrapper call # used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well. mostMakeWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" # These are always needed (TODO: Explain why) "--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so" "--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua" ] ++ lib.optionals mpv.vapoursynthSupport [ "--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/${mpv.vapoursynth.python3.sitePackages}" ] ++ lib.optionals (binPath != "") [ "--prefix" "PATH" ":" binPath ] ++ lib.optionals (fallbackBinPath != "") [ "--suffix" "PATH" ":" fallbackBinPath ] ++ (lib.lists.flatten ( map # For every script in the `scripts` argument, add the necessary flags to the wrapper ( script: let mkScriptArgs = script: scriptName: [ "--add-flags" "--script=${script}/share/mpv/scripts/${scriptName}" ]; in # Here we rely on the existence of the `scriptName` passthru # attribute of the script derivation from the `scripts` (mkScriptArgs script script.scriptName) # scripts might need others to be explicitly loaded ++ (map (extraScriptName: mkScriptArgs script extraScriptName) (script.extraScriptsToLoad or [ ])) # scripts can also set the `extraWrapperArgs` passthru ++ (script.extraWrapperArgs or [ ]) ) scripts )) ++ extraMakeWrapperArgs ); umpvWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" "--set" "MPV" "${placeholder "out"}/bin/mpv" ] ++ extraUmpvWrapperArgs ); in symlinkJoin { name = "mpv-with-scripts-${mpv.version}"; # TODO: don't link all mpv outputs and convert package to mpv-unwrapped? paths = [ mpv.all ]; nativeBuildInputs = [ makeBinaryWrapper ]; passthru.unwrapped = mpv; passthru.tests.mpv-scripts-should-not-collide = buildEnv { name = "mpv-scripts-env"; paths = lib.pipe mpvScripts [ # filters "override" "overrideDerivation" "recurseForDerivations" (lib.filterAttrs (key: script: lib.isDerivation script)) # replaces unfree and meta.broken scripts with decent placeholders (lib.mapAttrsToList ( key: script: if (builtins.tryEval script.outPath).success then script else writeTextDir "share/mpv/scripts/${script.scriptName}" "placeholder of ${script.name}" )) ]; }; postBuild = '' # wrapProgram can't operate on symlinks rm "$out/bin/mpv" makeWrapper "${mpv}/bin/mpv" "$out/bin/mpv" ${mostMakeWrapperArgs} rm "$out/bin/umpv" makeWrapper "${mpv}/bin/umpv" "$out/bin/umpv" ${umpvWrapperArgs} '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # wrapProgram can't operate on symlinks rm "$out/Applications/mpv.app/Contents/MacOS/mpv" makeWrapper "${mpv}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs} ''; meta = { inherit (mpv.meta) homepage description longDescription maintainers ; mainProgram = "mpv"; }; }; in lib.makeOverridable wrapper pkgs/applications/video/mpv/default.nix→pkgs/by-name/mp/mpv-unwrapped/package.nix +3 −4 Original line number Diff line number Diff line Loading @@ -5,11 +5,9 @@ alsa-lib, bash, buildPackages, callPackage, config, docutils, fetchFromGitHub, fetchpatch, ffmpeg, freefont_ttf, freetype, Loading Loading @@ -301,8 +299,9 @@ stdenv.mkDerivation (finalAttrs: { vapoursynth ; wrapper = callPackage ./wrapper.nix { }; scripts = callPackage ./scripts.nix { }; # Should be removed in the future. These can't be added to `pkgs/top-level/aliases.nix`. scripts = throw "'mpv-unwrapped.scripts' has been removed. Please use 'mpvScripts' instead."; # Added 2025-12-29 wrapper = throw "'mpv-unwrapped.wrapper' has been removed. Please use 'mpv.override' instead."; # Added 2025-12-29 tests = { inherit (nixosTests) mpv; Loading pkgs/by-name/mp/mpv/package.nix 0 → 100644 +154 −0 Original line number Diff line number Diff line { stdenv, buildEnv, lib, makeBinaryWrapper, mpvScripts, mpv-unwrapped, symlinkJoin, writeTextDir, yt-dlp, 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 # `$out/share/mpv/scripts/`. # # A script can optionally also provide `passthru.extraWrapperArgs` # attribute. scripts ? [ ], extraUmpvWrapperArgs ? [ ], }: let binPath = lib.makeBinPath ( [ mpv-unwrapped.luaEnv ] ++ lib.optionals mpv-unwrapped.vapoursynthSupport [ mpv-unwrapped.vapoursynth.python3 ] ); # With some tools, we want to prioritize tools that are in PATH. For example, users may want # to quickly expose a newer version of yt-dlp through the nix shell because it needs to be # kept up-to-date for it to work. fallbackBinPath = lib.makeBinPath (lib.optionals youtubeSupport [ yt-dlp ]); # All arguments besides the input and output binaries (${mpv-unwrapped}/bin/mpv and # $out/bin/mpv). These are used by the darwin specific makeWrapper call # used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well. mostMakeWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" # These are always needed (TODO: Explain why) "--prefix" "LUA_CPATH" ";" "${mpv-unwrapped.luaEnv}/lib/lua/${mpv-unwrapped.lua.luaversion}/?.so" "--prefix" "LUA_PATH" ";" "${mpv-unwrapped.luaEnv}/share/lua/${mpv-unwrapped.lua.luaversion}/?.lua" ] ++ lib.optionals mpv-unwrapped.vapoursynthSupport [ "--prefix" "PYTHONPATH" ":" "${mpv-unwrapped.vapoursynth}/${mpv-unwrapped.vapoursynth.python3.sitePackages}" ] ++ lib.optionals (binPath != "") [ "--prefix" "PATH" ":" binPath ] ++ lib.optionals (fallbackBinPath != "") [ "--suffix" "PATH" ":" fallbackBinPath ] ++ (lib.lists.flatten ( map # For every script in the `scripts` argument, add the necessary flags to the wrapper ( script: let mkScriptArgs = script: scriptName: [ "--add-flags" "--script=${script}/share/mpv/scripts/${scriptName}" ]; in # Here we rely on the existence of the `scriptName` passthru # attribute of the script derivation from the `scripts` (mkScriptArgs script script.scriptName) # scripts might need others to be explicitly loaded ++ (map (extraScriptName: mkScriptArgs script extraScriptName) (script.extraScriptsToLoad or [ ])) # scripts can also set the `extraWrapperArgs` passthru ++ (script.extraWrapperArgs or [ ]) ) scripts )) ++ extraMakeWrapperArgs ); umpvWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" "--set" "MPV" "${placeholder "out"}/bin/mpv" ] ++ extraUmpvWrapperArgs ); in symlinkJoin { name = "mpv-with-scripts-${mpv-unwrapped.version}"; # TODO: don't link all mpv outputs paths = [ mpv-unwrapped.all ]; nativeBuildInputs = [ makeBinaryWrapper ]; passthru.unwrapped = mpv-unwrapped; passthru.tests.mpv-scripts-should-not-collide = buildEnv { name = "mpv-scripts-env"; paths = lib.pipe mpvScripts [ # filters "override" "overrideDerivation" "recurseForDerivations" (lib.filterAttrs (key: script: lib.isDerivation script)) # replaces unfree and meta.broken scripts with decent placeholders (lib.mapAttrsToList ( key: script: if (builtins.tryEval script.outPath).success then script else writeTextDir "share/mpv/scripts/${script.scriptName}" "placeholder of ${script.name}" )) ]; }; postBuild = '' # wrapProgram can't operate on symlinks rm "$out/bin/mpv" makeWrapper "${mpv-unwrapped}/bin/mpv" "$out/bin/mpv" ${mostMakeWrapperArgs} rm "$out/bin/umpv" makeWrapper "${mpv-unwrapped}/bin/umpv" "$out/bin/umpv" ${umpvWrapperArgs} '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # wrapProgram can't operate on symlinks rm "$out/Applications/mpv.app/Contents/MacOS/mpv" makeWrapper "${mpv-unwrapped}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs} ''; meta = { inherit (mpv-unwrapped.meta) homepage description longDescription maintainers ; mainProgram = "mpv"; }; } Loading
ci/OWNERS +2 −2 Original line number Diff line number Diff line Loading @@ -373,8 +373,8 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt /pkgs/development/lua-modules @NixOS/lua # mpvScripts /pkgs/applications/video/mpv/scripts @uninsane /pkgs/applications/video/mpv/scripts.nix @uninsane /pkgs/by-name/mp/mpv/scripts @uninsane /pkgs/by-name/mp/mpv/scripts.nix @uninsane # Neovim /pkgs/applications/editors/neovim @NixOS/neovim Loading
doc/release-notes/rl-2605.section.md +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ ### Deprecations {#sec-nixpkgs-release-26.05-lib-deprecations} - Create the first release note entry in this section! - `mpv-unwrapped.scripts` and `mpv-unwrapped.wrapper` have been removed. Please use `mpvScripts` and `mpv.override` accordingly. ### Additions and Improvements {#sec-nixpkgs-release-26.05-lib-additions-improvements} Loading
pkgs/applications/video/mpv/wrapper.nixdeleted 100644 → 0 +0 −163 Original line number Diff line number Diff line # Arguments that this derivation gets when it is created with `callPackage` { stdenv, buildEnv, lib, makeBinaryWrapper, mpvScripts, symlinkJoin, writeTextDir, yt-dlp, # the unwrapped mpv derivation }: let # 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 # `$out/share/mpv/scripts/`. # # A script can optionally also provide `passthru.extraWrapperArgs` # attribute. scripts ? [ ], extraUmpvWrapperArgs ? [ ], }: let binPath = lib.makeBinPath ( [ mpv.luaEnv ] ++ lib.optionals mpv.vapoursynthSupport [ mpv.vapoursynth.python3 ] ); # With some tools, we want to prioritize tools that are in PATH. For example, users may want # to quickly expose a newer version of yt-dlp through the nix shell because it needs to be # kept up-to-date for it to work. fallbackBinPath = lib.makeBinPath (lib.optionals youtubeSupport [ yt-dlp ]); # All arguments besides the input and output binaries (${mpv}/bin/mpv and # $out/bin/mpv). These are used by the darwin specific makeWrapper call # used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well. mostMakeWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" # These are always needed (TODO: Explain why) "--prefix" "LUA_CPATH" ";" "${mpv.luaEnv}/lib/lua/${mpv.lua.luaversion}/?.so" "--prefix" "LUA_PATH" ";" "${mpv.luaEnv}/share/lua/${mpv.lua.luaversion}/?.lua" ] ++ lib.optionals mpv.vapoursynthSupport [ "--prefix" "PYTHONPATH" ":" "${mpv.vapoursynth}/${mpv.vapoursynth.python3.sitePackages}" ] ++ lib.optionals (binPath != "") [ "--prefix" "PATH" ":" binPath ] ++ lib.optionals (fallbackBinPath != "") [ "--suffix" "PATH" ":" fallbackBinPath ] ++ (lib.lists.flatten ( map # For every script in the `scripts` argument, add the necessary flags to the wrapper ( script: let mkScriptArgs = script: scriptName: [ "--add-flags" "--script=${script}/share/mpv/scripts/${scriptName}" ]; in # Here we rely on the existence of the `scriptName` passthru # attribute of the script derivation from the `scripts` (mkScriptArgs script script.scriptName) # scripts might need others to be explicitly loaded ++ (map (extraScriptName: mkScriptArgs script extraScriptName) (script.extraScriptsToLoad or [ ])) # scripts can also set the `extraWrapperArgs` passthru ++ (script.extraWrapperArgs or [ ]) ) scripts )) ++ extraMakeWrapperArgs ); umpvWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" "--set" "MPV" "${placeholder "out"}/bin/mpv" ] ++ extraUmpvWrapperArgs ); in symlinkJoin { name = "mpv-with-scripts-${mpv.version}"; # TODO: don't link all mpv outputs and convert package to mpv-unwrapped? paths = [ mpv.all ]; nativeBuildInputs = [ makeBinaryWrapper ]; passthru.unwrapped = mpv; passthru.tests.mpv-scripts-should-not-collide = buildEnv { name = "mpv-scripts-env"; paths = lib.pipe mpvScripts [ # filters "override" "overrideDerivation" "recurseForDerivations" (lib.filterAttrs (key: script: lib.isDerivation script)) # replaces unfree and meta.broken scripts with decent placeholders (lib.mapAttrsToList ( key: script: if (builtins.tryEval script.outPath).success then script else writeTextDir "share/mpv/scripts/${script.scriptName}" "placeholder of ${script.name}" )) ]; }; postBuild = '' # wrapProgram can't operate on symlinks rm "$out/bin/mpv" makeWrapper "${mpv}/bin/mpv" "$out/bin/mpv" ${mostMakeWrapperArgs} rm "$out/bin/umpv" makeWrapper "${mpv}/bin/umpv" "$out/bin/umpv" ${umpvWrapperArgs} '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # wrapProgram can't operate on symlinks rm "$out/Applications/mpv.app/Contents/MacOS/mpv" makeWrapper "${mpv}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs} ''; meta = { inherit (mpv.meta) homepage description longDescription maintainers ; mainProgram = "mpv"; }; }; in lib.makeOverridable wrapper
pkgs/applications/video/mpv/default.nix→pkgs/by-name/mp/mpv-unwrapped/package.nix +3 −4 Original line number Diff line number Diff line Loading @@ -5,11 +5,9 @@ alsa-lib, bash, buildPackages, callPackage, config, docutils, fetchFromGitHub, fetchpatch, ffmpeg, freefont_ttf, freetype, Loading Loading @@ -301,8 +299,9 @@ stdenv.mkDerivation (finalAttrs: { vapoursynth ; wrapper = callPackage ./wrapper.nix { }; scripts = callPackage ./scripts.nix { }; # Should be removed in the future. These can't be added to `pkgs/top-level/aliases.nix`. scripts = throw "'mpv-unwrapped.scripts' has been removed. Please use 'mpvScripts' instead."; # Added 2025-12-29 wrapper = throw "'mpv-unwrapped.wrapper' has been removed. Please use 'mpv.override' instead."; # Added 2025-12-29 tests = { inherit (nixosTests) mpv; Loading
pkgs/by-name/mp/mpv/package.nix 0 → 100644 +154 −0 Original line number Diff line number Diff line { stdenv, buildEnv, lib, makeBinaryWrapper, mpvScripts, mpv-unwrapped, symlinkJoin, writeTextDir, yt-dlp, 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 # `$out/share/mpv/scripts/`. # # A script can optionally also provide `passthru.extraWrapperArgs` # attribute. scripts ? [ ], extraUmpvWrapperArgs ? [ ], }: let binPath = lib.makeBinPath ( [ mpv-unwrapped.luaEnv ] ++ lib.optionals mpv-unwrapped.vapoursynthSupport [ mpv-unwrapped.vapoursynth.python3 ] ); # With some tools, we want to prioritize tools that are in PATH. For example, users may want # to quickly expose a newer version of yt-dlp through the nix shell because it needs to be # kept up-to-date for it to work. fallbackBinPath = lib.makeBinPath (lib.optionals youtubeSupport [ yt-dlp ]); # All arguments besides the input and output binaries (${mpv-unwrapped}/bin/mpv and # $out/bin/mpv). These are used by the darwin specific makeWrapper call # used to wrap $out/Applications/mpv.app/Contents/MacOS/mpv as well. mostMakeWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" # These are always needed (TODO: Explain why) "--prefix" "LUA_CPATH" ";" "${mpv-unwrapped.luaEnv}/lib/lua/${mpv-unwrapped.lua.luaversion}/?.so" "--prefix" "LUA_PATH" ";" "${mpv-unwrapped.luaEnv}/share/lua/${mpv-unwrapped.lua.luaversion}/?.lua" ] ++ lib.optionals mpv-unwrapped.vapoursynthSupport [ "--prefix" "PYTHONPATH" ":" "${mpv-unwrapped.vapoursynth}/${mpv-unwrapped.vapoursynth.python3.sitePackages}" ] ++ lib.optionals (binPath != "") [ "--prefix" "PATH" ":" binPath ] ++ lib.optionals (fallbackBinPath != "") [ "--suffix" "PATH" ":" fallbackBinPath ] ++ (lib.lists.flatten ( map # For every script in the `scripts` argument, add the necessary flags to the wrapper ( script: let mkScriptArgs = script: scriptName: [ "--add-flags" "--script=${script}/share/mpv/scripts/${scriptName}" ]; in # Here we rely on the existence of the `scriptName` passthru # attribute of the script derivation from the `scripts` (mkScriptArgs script script.scriptName) # scripts might need others to be explicitly loaded ++ (map (extraScriptName: mkScriptArgs script extraScriptName) (script.extraScriptsToLoad or [ ])) # scripts can also set the `extraWrapperArgs` passthru ++ (script.extraWrapperArgs or [ ]) ) scripts )) ++ extraMakeWrapperArgs ); umpvWrapperArgs = lib.strings.escapeShellArgs ( [ "--inherit-argv0" "--set" "MPV" "${placeholder "out"}/bin/mpv" ] ++ extraUmpvWrapperArgs ); in symlinkJoin { name = "mpv-with-scripts-${mpv-unwrapped.version}"; # TODO: don't link all mpv outputs paths = [ mpv-unwrapped.all ]; nativeBuildInputs = [ makeBinaryWrapper ]; passthru.unwrapped = mpv-unwrapped; passthru.tests.mpv-scripts-should-not-collide = buildEnv { name = "mpv-scripts-env"; paths = lib.pipe mpvScripts [ # filters "override" "overrideDerivation" "recurseForDerivations" (lib.filterAttrs (key: script: lib.isDerivation script)) # replaces unfree and meta.broken scripts with decent placeholders (lib.mapAttrsToList ( key: script: if (builtins.tryEval script.outPath).success then script else writeTextDir "share/mpv/scripts/${script.scriptName}" "placeholder of ${script.name}" )) ]; }; postBuild = '' # wrapProgram can't operate on symlinks rm "$out/bin/mpv" makeWrapper "${mpv-unwrapped}/bin/mpv" "$out/bin/mpv" ${mostMakeWrapperArgs} rm "$out/bin/umpv" makeWrapper "${mpv-unwrapped}/bin/umpv" "$out/bin/umpv" ${umpvWrapperArgs} '' + lib.optionalString stdenv.hostPlatform.isDarwin '' # wrapProgram can't operate on symlinks rm "$out/Applications/mpv.app/Contents/MacOS/mpv" makeWrapper "${mpv-unwrapped}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs} ''; meta = { inherit (mpv-unwrapped.meta) homepage description longDescription maintainers ; mainProgram = "mpv"; }; }