diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index c5ca3d1f982f7..1cedbfce2aac8 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -16,7 +16,7 @@ embree, fetchzip, fetchFromGitHub, - ffmpeg_7, + ffmpeg, fftw, fftwFloat, freetype, @@ -234,7 +234,7 @@ stdenv'.mkDerivation (finalAttrs: { buildInputs = [ alembic boost - ffmpeg_7 + ffmpeg fftw fftwFloat freetype diff --git a/pkgs/by-name/bl/blender/pins.nix b/pkgs/by-name/bl/blender/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/bl/blender/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/ch/chiaki/package.nix b/pkgs/by-name/ch/chiaki/package.nix index 39720c826f2e6..76bba18cd7c4a 100644 --- a/pkgs/by-name/ch/chiaki/package.nix +++ b/pkgs/by-name/ch/chiaki/package.nix @@ -4,7 +4,7 @@ fetchgit, cmake, pkg-config, - ffmpeg_7, + ffmpeg, libopus, SDL2, libevdev, @@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: { ''; buildInputs = [ - ffmpeg_7 # needs avcodec_close which was removed in ffmpeg 8 + ffmpeg libopus libsForQt5.qtbase libsForQt5.qtmultimedia diff --git a/pkgs/by-name/ch/chiaki/pins.nix b/pkgs/by-name/ch/chiaki/pins.nix new file mode 100644 index 0000000000000..f3c1fea81ecdf --- /dev/null +++ b/pkgs/by-name/ch/chiaki/pins.nix @@ -0,0 +1,5 @@ +{ ffmpeg_7 }: +{ + # needs avcodec_close which was removed in ffmpeg 8 + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/dj/djv/package.nix b/pkgs/by-name/dj/djv/package.nix index 2a861f28d7c80..9cc1ae9d13174 100644 --- a/pkgs/by-name/dj/djv/package.nix +++ b/pkgs/by-name/dj/djv/package.nix @@ -6,7 +6,7 @@ pkg-config, bzip2, feather-tk, - ffmpeg_7, + ffmpeg, freetype, glfw, imath, @@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ bzip2 feather-tk - ffmpeg_7 + ffmpeg freetype glfw imath diff --git a/pkgs/by-name/dj/djv/pins.nix b/pkgs/by-name/dj/djv/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/dj/djv/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/ml/mlt/package.nix b/pkgs/by-name/ml/mlt/package.nix index ae965a28077cf..3b85c79707576 100644 --- a/pkgs/by-name/ml/mlt/package.nix +++ b/pkgs/by-name/ml/mlt/package.nix @@ -6,7 +6,7 @@ cmake, pkg-config, which, - ffmpeg_7, + ffmpeg, fftw, frei0r, libdv, @@ -71,8 +71,8 @@ stdenv.mkDerivation rec { ]; buildInputs = [ - (opencv4.override { inherit ffmpeg_7; }) - ffmpeg_7 + (opencv4.override { ffmpeg_7 = ffmpeg; }) + ffmpeg fftw frei0r libdv @@ -137,7 +137,7 @@ stdenv.mkDerivation rec { ''; passthru = { - ffmpeg = ffmpeg_7; + ffmpeg = ffmpeg; }; passthru.updateScript = gitUpdater { diff --git a/pkgs/by-name/ml/mlt/pins.nix b/pkgs/by-name/ml/mlt/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/ml/mlt/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/re/retroarch-bare/package.nix b/pkgs/by-name/re/retroarch-bare/package.nix index 266ac84cbdf91..44fa61e1b9475 100644 --- a/pkgs/by-name/re/retroarch-bare/package.nix +++ b/pkgs/by-name/re/retroarch-bare/package.nix @@ -5,7 +5,7 @@ alsa-lib, dbus, fetchFromGitHub, - ffmpeg_7, + ffmpeg, flac, freetype, gamemode, @@ -75,7 +75,7 @@ stdenv.mkDerivation rec { ++ lib.optional (runtimeLibs != [ ]) makeBinaryWrapper; buildInputs = [ - ffmpeg_7 + ffmpeg flac freetype libGL diff --git a/pkgs/by-name/re/retroarch-bare/pins.nix b/pkgs/by-name/re/retroarch-bare/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/re/retroarch-bare/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/rp/rpcs3/package.nix b/pkgs/by-name/rp/rpcs3/package.nix index 4fea7834c994a..109f71454fe25 100644 --- a/pkgs/by-name/rp/rpcs3/package.nix +++ b/pkgs/by-name/rp/rpcs3/package.nix @@ -14,7 +14,7 @@ vulkan-loader, libpng, libSM, - ffmpeg_7, + ffmpeg, libevdev, libusb1, zlib, @@ -120,7 +120,7 @@ stdenv.mkDerivation (finalAttrs: { vulkan-headers vulkan-loader libpng - ffmpeg_7 + ffmpeg libevdev zlib libusb1 diff --git a/pkgs/by-name/rp/rpcs3/pins.nix b/pkgs/by-name/rp/rpcs3/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/rp/rpcs3/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/ru/rustdesk-flutter/package.nix b/pkgs/by-name/ru/rustdesk-flutter/package.nix index 1544b0e838f05..05459b33fc5cb 100644 --- a/pkgs/by-name/ru/rustdesk-flutter/package.nix +++ b/pkgs/by-name/ru/rustdesk-flutter/package.nix @@ -5,7 +5,7 @@ copyDesktopItems, fetchFromGitHub, flutter329, - ffmpeg_7, + ffmpeg, gst_all_1, fuse3, libXtst, @@ -119,7 +119,7 @@ flutter329.buildFlutterApplication rec { ]; buildInputs = [ - ffmpeg_7 + ffmpeg fuse3 gst_all_1.gst-plugins-base gst_all_1.gstreamer diff --git a/pkgs/by-name/ru/rustdesk-flutter/pins.nix b/pkgs/by-name/ru/rustdesk-flutter/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/ru/rustdesk-flutter/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/te/tenacity/package.nix b/pkgs/by-name/te/tenacity/package.nix index 3636dc9342eee..f98250ed65f52 100644 --- a/pkgs/by-name/te/tenacity/package.nix +++ b/pkgs/by-name/te/tenacity/package.nix @@ -31,7 +31,7 @@ expat, libid3tag, libopus, - ffmpeg_7, + ffmpeg, soundtouch, pcre, portaudio, @@ -76,7 +76,7 @@ stdenv.mkDerivation (finalAttrs: { # looking only in a few specific directories. # Make sure it searches for our version of ffmpeg in the nix store. substituteInPlace libraries/lib-ffmpeg-support/FFmpegFunctions.cpp \ - --replace-fail /usr/local/lib/tenacity ${lib.getLib ffmpeg_7}/lib + --replace-fail /usr/local/lib/tenacity ${lib.getLib ffmpeg}/lib ''; postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -130,7 +130,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ expat - ffmpeg_7 + ffmpeg file flac glib diff --git a/pkgs/by-name/te/tenacity/pins.nix b/pkgs/by-name/te/tenacity/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/te/tenacity/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/tl/tlrender/package.nix b/pkgs/by-name/tl/tlrender/package.nix index 6704c59925652..81893619f5af7 100644 --- a/pkgs/by-name/tl/tlrender/package.nix +++ b/pkgs/by-name/tl/tlrender/package.nix @@ -7,7 +7,7 @@ bzip2, feather-tk, - ffmpeg_7, + ffmpeg, freetype, glfw, imath, @@ -112,7 +112,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals enableTiff [ libtiff ] ++ lib.optionals enablePng [ libpng ] ++ lib.optionals enableOpenexr [ openexr ] - ++ lib.optionals enableFfmpeg [ ffmpeg_7 ] + ++ lib.optionals enableFfmpeg [ ffmpeg ] ++ lib.optionals enableUsd [ openusd ]; cmakeFlags = [ diff --git a/pkgs/by-name/tl/tlrender/pins.nix b/pkgs/by-name/tl/tlrender/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/tl/tlrender/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/by-name/yt/ytdl-sub/package.nix b/pkgs/by-name/yt/ytdl-sub/package.nix index 2815ce3114d6a..2578b4b3fcd3d 100644 --- a/pkgs/by-name/yt/ytdl-sub/package.nix +++ b/pkgs/by-name/yt/ytdl-sub/package.nix @@ -1,7 +1,7 @@ { python3Packages, fetchFromGitHub, - ffmpeg_7, + ffmpeg, lib, versionCheckHook, }: @@ -38,8 +38,8 @@ python3Packages.buildPythonApplication rec { ]; makeWrapperArgs = [ - "--set YTDL_SUB_FFMPEG_PATH ${lib.getExe' ffmpeg_7 "ffmpeg"}" - "--set YTDL_SUB_FFPROBE_PATH ${lib.getExe' ffmpeg_7 "ffprobe"}" + "--set YTDL_SUB_FFMPEG_PATH ${lib.getExe' ffmpeg "ffmpeg"}" + "--set YTDL_SUB_FFPROBE_PATH ${lib.getExe' ffmpeg "ffprobe"}" ]; nativeCheckInputs = [ @@ -49,8 +49,8 @@ python3Packages.buildPythonApplication rec { versionCheckProgramArg = "--version"; env = { - YTDL_SUB_FFMPEG_PATH = "${lib.getExe' ffmpeg_7 "ffmpeg"}"; - YTDL_SUB_FFPROBE_PATH = "${lib.getExe' ffmpeg_7 "ffprobe"}"; + YTDL_SUB_FFMPEG_PATH = "${lib.getExe' ffmpeg "ffmpeg"}"; + YTDL_SUB_FFPROBE_PATH = "${lib.getExe' ffmpeg "ffprobe"}"; }; disabledTests = [ diff --git a/pkgs/by-name/yt/ytdl-sub/pins.nix b/pkgs/by-name/yt/ytdl-sub/pins.nix new file mode 100644 index 0000000000000..87892a11e15e4 --- /dev/null +++ b/pkgs/by-name/yt/ytdl-sub/pins.nix @@ -0,0 +1,4 @@ +{ ffmpeg_7 }: +{ + ffmpeg = ffmpeg_7; +} diff --git a/pkgs/top-level/by-name-overlay.nix b/pkgs/top-level/by-name-overlay.nix index e6fe5b7215560..69bedf15348b0 100644 --- a/pkgs/top-level/by-name-overlay.nix +++ b/pkgs/top-level/by-name-overlay.nix @@ -19,7 +19,7 @@ let mergeAttrsList ; - # Package files for a single shard + # Package directories for a single shard # Type: String -> String -> AttrsOf Path namesForShard = shard: type: @@ -32,23 +32,23 @@ let # Additionally in either of those alternatives, we would have to duplicate the hardcoding of "README.md" { } else - mapAttrs (name: _: baseDirectory + "/${shard}/${name}/package.nix") ( - readDir (baseDirectory + "/${shard}") - ); + mapAttrs (name: _: baseDirectory + "/${shard}/${name}") (readDir (baseDirectory + "/${shard}")); # The attribute set mapping names to the package files defining them # This is defined up here in order to allow reuse of the value (it's kind of expensive to compute) # if the overlay has to be applied multiple times - packageFiles = mergeAttrsList (mapAttrsToList namesForShard (readDir baseDirectory)); + packageDirectories = mergeAttrsList (mapAttrsToList namesForShard (readDir baseDirectory)); in -self: super: -{ - # This attribute is necessary to allow CI to ensure that all packages defined in `pkgs/by-name` - # don't have an overriding definition in `all-packages.nix` with an empty (`{ }`) second `callPackage` argument. - # It achieves that with an overlay that modifies both `callPackage` and this attribute to signal whether `callPackage` is used - # and whether it's defined by this file here or `all-packages.nix`. - # TODO: This can be removed once `pkgs/by-name` can handle custom `callPackage` arguments without `all-packages.nix` (or any other way of achieving the same result). - # Because at that point the code in ./stage.nix can be changed to not allow definitions in `all-packages.nix` to override ones from `pkgs/by-name` anymore and throw an error if that happens instead. - _internalCallByNamePackageFile = file: self.callPackage file { }; -} -// mapAttrs (name: self._internalCallByNamePackageFile) packageFiles +final: prev: +mapAttrs ( + _: packageDirectory: + if lib.pathExists (packageDirectory + "/pins.nix") then + final.callPackage (packageDirectory + "/package.nix") ( + lib.removeAttrs (final.callPackage (packageDirectory + "/pins.nix") { }) [ + "override" + "overrideDerivation" + ] + ) + else + final.callPackage (packageDirectory + "/package.nix") { } +) packageDirectories