Subject: Add kdenlive

From: Mark Meyer <[email-masked]>
Date: Sun, 11 Mar 2018 22:12:29 +0100

Moin,
This adds kdenlive. Since the upstream project has no links to tarballs, we take the current release from Git. Note, you will need an updated MLT. It is recommended that you install `breeze-icons' in addition to this, but kdenlive without them being present.

See: guix-patches 30770 for the mlt changes.

Cheers, Mark
-- 
  Mark Meyer
  [email-masked]
From 09f4a0d9d0f38c8804f82861b49d4a02f9ad6f60 Mon Sep 17 00:00:00 2001
From: Mark Meyer <[email-masked]>
Date: Sun, 11 Mar 2018 22:09:46 +0100
Subject: [PATCH] gnu: Add kdenlive.

* gnu/packages/kde.scm (kdenlive): New variable.
---
 gnu/packages/kde.scm | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 77 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm
index 812f63cb4..cf8a371eb 100644
--- a/gnu/packages/kde.scm
+++ b/gnu/packages/kde.scm
@@ -1,7 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2016, 2017 Thomas Danckaert <[email-masked]>
-;;; Copyright © 2017 Mark Meyer <[email-masked]>
+;;; Copyright © 2017, 2018 Mark Meyer <[email-masked]>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -21,6 +21,7 @@
 
 (define-module (gnu packages kde)
   #:use-module (guix build-system cmake)
+  #:use-module (guix git-download)
   #:use-module (guix download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -47,8 +48,83 @@
   #:use-module (gnu packages tls)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages xorg))
 
+(define-public kdenlive
+  (let ((version "17.12.3"))
+    (package
+      (name "kdenlive")
+      (version version)
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "git://anongit.kde.org/kdenlive.git")
+               (commit (string-append "v" version))))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "08y0pjm0qgbby0cxqwbzgar455a8bifn766s74qzzk8pq0bma42m"))))
+      (build-system cmake-build-system)
+      (native-inputs
+       `(("extra-cmake-modules" ,extra-cmake-modules)
+         ("qttools" ,qttools)))
+      (propagated-inputs
+       `(("mlt" ,mlt)))
+      (inputs
+       `(("shared-mime-info" ,shared-mime-info)
+         ("frei0r-plugins" ,frei0r-plugins)
+         ("qtbase" ,qtbase)
+         ("qtscript" ,qtscript)
+         ("qtsvg" ,qtsvg)
+         ("kparts" ,kparts)
+         ("knotifications" ,knotifications)
+         ("karchive" ,karchive)
+         ("kdbusaddons" ,kdbusaddons)
+         ("kcrash" ,kcrash)
+         ("kguiaddons" ,kguiaddons)
+         ("knewstuff" ,knewstuff)
+         ("knotifyconfig" ,knotifyconfig)
+         ("kfilemetadata" ,kfilemetadata)
+         ("kdoctools" ,kdoctools)
+         ("kdeclarative" ,kdeclarative)
+         ("qtdeclarative" ,qtdeclarative)
+         ("qtquickcontrols" ,qtquickcontrols)
+         ("kiconthemes" ,kiconthemes)
+         ("qtgraphicaleffects" ,qtgraphicaleffects)
+         ("kplotting" ,kplotting)))
+          (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out  (assoc-ref outputs "out"))
+                    (qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
+                    (qtbase (assoc-ref inputs "qtbase"))
+                    (qtdeclarative (assoc-ref inputs "qtdeclarative"))
+                    (frei0r (assoc-ref inputs "frei0r-plugins"))
+                    (qml "/lib/qt5/qml"))
+               (wrap-program (string-append out "/bin/kdenlive")
+                 `("QT_PLUGIN_PATH" ":" prefix
+                   ,(map (lambda (label)
+                           (string-append (assoc-ref inputs label)
+                                          "/lib/qt5/plugins/"))
+                         '("qtbase", "qtsvg")))
+                 `("FREI0R_PATH" ":" =
+                   (,(string-append frei0r "/lib/frei0r-1/")))
+                 `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
+                   (,(string-append qtbase "/lib/qt5/plugins/platforms")))
+                 `("QML2_IMPORT_PATH" ":" prefix
+                   (,(string-append qtquickcontrols qml)
+                    ,(string-append qtdeclarative qml))))))))))
+      (home-page "https://kdenlive.org")
+      (synopsis "Non-linear video editor")
+      (description "Kdenlive is an acronym for KDE Non-Linear Video Editor.
+
+Non-linear video editing is much more powerful than beginners’ (linear) editors, hence it requires a bit more organization before starting. However, it is not reserved to specialists and can be used for small personal projects.")
+      (license license:gpl2+))))
+
 (define-public kdevelop
   (package
     (name "kdevelop")
-- 
2.16.2