diff --git a/pkgs/applications/kde/ffmpeg-path.patch b/pkgs/applications/kde/ffmpeg-path.patch new file mode 100644 index 000000000000..a0cef882f596 --- /dev/null +++ b/pkgs/applications/kde/ffmpeg-path.patch @@ -0,0 +1,25 @@ +diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg +index 5edad5ae7..d35347a40 100644 +--- a/src/kdenlivesettings.kcfg ++++ b/src/kdenlivesettings.kcfg +@@ -403,17 +403,17 @@ + + <entry name="ffmpegpath" type="Path"> + <label>FFmpeg / Libav binary path.</label> +- <default></default> ++ <default>@ffmpeg@/bin/ffmpeg</default> + </entry> + + <entry name="ffplaypath" type="Path"> + <label>FFplay / avplay binary path.</label> +- <default></default> ++ <default>@ffmpeg@/bin/ffplay</default> + </entry> + + <entry name="ffprobepath" type="Path"> + <label>FFprobe / avprobe binary path.</label> +- <default></default> ++ <default>@ffmpeg@/bin/ffprobe</default> + </entry> + + <entry name="mltthreads" type="Int"> diff --git a/pkgs/applications/kde/kdenlive.nix b/pkgs/applications/kde/kdenlive.nix index b7c691e9594b..95496f90e043 100644 --- a/pkgs/applications/kde/kdenlive.nix +++ b/pkgs/applications/kde/kdenlive.nix @@ -70,14 +70,24 @@ mkDerivation { kpurpose kdeclarative ]; - patches = [ ./mlt-path.patch ]; + # Both MLT and FFMpeg paths must be set or Kdenlive will complain that it + # doesn't find them. See: + # https://github.com/NixOS/nixpkgs/issues/83885 + patches = [ ./mlt-path.patch ./ffmpeg-path.patch ]; inherit mlt; + ffmpeg = ffmpeg-full; postPatch = # Module Qt5::Concurrent must be included in `find_package` before it is used. '' sed -i CMakeLists.txt -e '/find_package(Qt5 REQUIRED/ s|)| Concurrent)|' substituteAllInPlace src/kdenlivesettings.kcfg ''; + # Frei0r path needs to be set too or Kdenlive will complain. See: + # https://github.com/NixOS/nixpkgs/issues/83885 + # https://github.com/NixOS/nixpkgs/issues/29614#issuecomment-488849325 + qtWrapperArgs = [ + "--set FREI0R_PATH ${frei0r}/lib/frei0r-1" + ]; meta = { license = with lib.licenses; [ gpl2Plus ]; };