7810dcbd7b
kdenlive's configuration stores two paths to the `mlt` package. These may be set in the GUI under `Settings -> Configure Kdenlive -> Environment`, and are persisted in $XDG_CONFIG_HOME/.kdenliverc A problem I encountered was `kdenlive` holding on to old `mlt` paths in these settings after a nixpkgs update, causing video rendering to fail. The C++ class kdenlive uses for these settings is automatically generated, so what this patch does is edit the declaration of the relevant settings to provide default values with the absolute path of `mlt` known at build time, and mark those settings as hidden. In testing, I've found that changing `mlt` and rebuilding `kdenlive` causes updated paths to appear in the GUI, and no entries to be added to the kdenliverc file. A shortcoming of this patch is that existing users will already have paths stored in their `kdenliverc` files that can cause trouble. The hope is that an approach like the one taken here will reduce this sort of breakage moving forward.
85 lines
1.3 KiB
Nix
85 lines
1.3 KiB
Nix
{ mkDerivation
|
|
, lib
|
|
, extra-cmake-modules
|
|
, breeze-icons
|
|
, breeze-qt5
|
|
, kdoctools
|
|
, kconfig
|
|
, kcrash
|
|
, kguiaddons
|
|
, kiconthemes
|
|
, ki18n
|
|
, kinit
|
|
, kdbusaddons
|
|
, knotifications
|
|
, knewstuff
|
|
, karchive
|
|
, knotifyconfig
|
|
, kplotting
|
|
, ktextwidgets
|
|
, mlt
|
|
, shared-mime-info
|
|
, libv4l
|
|
, kfilemetadata
|
|
, ffmpeg-full
|
|
, frei0r
|
|
, phonon-backend-gstreamer
|
|
, qtdeclarative
|
|
, qtquickcontrols
|
|
, qtscript
|
|
, qtwebkit
|
|
, rttr
|
|
, kpurpose
|
|
, kdeclarative
|
|
}:
|
|
|
|
mkDerivation {
|
|
name = "kdenlive";
|
|
nativeBuildInputs = [
|
|
extra-cmake-modules
|
|
kdoctools
|
|
];
|
|
buildInputs = [
|
|
breeze-icons
|
|
breeze-qt5
|
|
kconfig
|
|
kcrash
|
|
kdbusaddons
|
|
kfilemetadata
|
|
kguiaddons
|
|
ki18n
|
|
kiconthemes
|
|
kinit
|
|
knotifications
|
|
knewstuff
|
|
karchive
|
|
knotifyconfig
|
|
kplotting
|
|
ktextwidgets
|
|
mlt
|
|
phonon-backend-gstreamer
|
|
qtdeclarative
|
|
qtquickcontrols
|
|
qtscript
|
|
qtwebkit
|
|
shared-mime-info
|
|
libv4l
|
|
ffmpeg-full
|
|
frei0r
|
|
rttr
|
|
kpurpose
|
|
kdeclarative
|
|
];
|
|
patches = [ ./mlt-path.patch ];
|
|
inherit mlt;
|
|
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
|
|
'';
|
|
meta = {
|
|
license = with lib.licenses; [ gpl2Plus ];
|
|
};
|
|
}
|