configurations-guix/packages/defs/kdenlive-movit.scm

240 lines
8.5 KiB
Scheme

(define-module (kdenlive-movit)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages gnome)
#:use-module (gnu packages linux)
#:use-module (gnu packages video)
#:use-module (gnu packages gtk)
#:use-module (gnu packages xml)
#:use-module (gnu packages audio)
#:use-module (gnu packages photo)
#:use-module (gnu packages xiph)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages algebra)
#:use-module (gnu packages gl)
#:use-module (gnu packages kde-plasma)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages qt)
#:use-module (gnu packages sdl)
#:use-module (gnu packages check)
#:use-module (gnu packages pkg-config))
(define-public movit
(package
(name "movit")
(version "1.7.1")
(source (origin
(method url-fetch)
(uri (string-append "https://movit.sesse.net/movit-" version
".tar.gz"))
(sha256
(base32
"06n1zfqjq74c4b82v6jfpd07nh0m2lam3ks296nbdk7h0nvp6c5k"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f
#:make-flags #~'("GTEST_DIR=gtest/googletest")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'unpack-googletest
;; Copy the googletest sources to where the build system expects them.
(lambda* (#:key inputs #:allow-other-keys)
(let ((source (assoc-ref inputs "googletest-source"))
(target "gtest"))
(mkdir-p target)
(copy-recursively source target)
#t))))))
(native-inputs
`(("googletest-source" ,(package-source googletest))))
(inputs
(list
pkg-config
googletest
libepoxy
sdl2
fftw
eigen))
(synopsis "Modern Video Toolkit, a high performance library for video filters")
(description
"Movit is the Modern Video Toolkit, notwithstanding that anything that's called “modern” usually isn't, and it's really not a toolkit. It aims to be a high-quality, high-performance, free software library for video filters.")
(home-page "https://movit.sesse.net")
(license license:gpl2)))
(define-public mlt-movit
(package
(name "mlt-movit")
(version "7.20.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mltframework/mlt")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1dc09j8yvis6ilba5a13qicf6wbgxnzwllab6h48kzfl1lc0n8g7"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ;requires "Kwalify"
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'override-LDFLAGS
(lambda _
(setenv "LDFLAGS"
(string-append "-Wl,-rpath=" #$output "/lib"))))
(add-after 'install 'wrap-executable
(lambda _
(let* ((frei0r #$(this-package-input "frei0r-plugins"))
(ladspa #$(this-package-input "ladspa"))
(movit #$(this-package-input "movit"))
;; In MLT 7, 'melt' symlinks to 'melt-7'. Try to keep
;; compatibility with MLT 6 where it's only 'melt'.
(major #$(version-major version))
(exec (if (file-exists?
(string-append #$output "/bin/melt-" major))
(string-append "melt-" major)
"melt")))
(wrap-program (string-append #$output "/bin/" exec)
`("FREI0R_PATH" ":" =
(,(string-append frei0r "/lib/frei0r-1")))
`("LADSPA_PATH" ":" =
(,(string-append ladspa "/lib/ladspa"))))))))))
(inputs
(list alsa-lib
`(,alsa-plugins "pulseaudio")
bash-minimal
ffmpeg
fftw
frei0r-plugins
gdk-pixbuf
gtk+
libxml2
jack-1
ladspa
libebur128
libexif
libvorbis
movit
eigen
rubberband
libsamplerate
pulseaudio
qtbase-5
qtsvg-5
rtaudio
sdl2
sdl2-image
sox
vidstab))
(native-inputs
(list pkg-config))
(home-page "https://www.mltframework.org/")
(synopsis "Author, manage, and run multitrack audio/video compositions")
(description
"MLT is a multimedia framework, designed and developed for television
broadcasting. It provides a toolkit for broadcasters, video editors, media
players, transcoders, web streamers and many more types of applications. The
functionality of the system is provided via an assortment of ready to use
tools, XML authoring components, and an extensible plug-in based API.")
(license license:lgpl2.1+)))
(define-public kdenlive-movit
(package
(name "kdenlive-movit")
(version "23.04.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://invent.kde.org/multimedia/kdenlive")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0dgrgnnq38nphfzbapr7dkb21lv4idqynxqmzv9x3maijmp1jjfr"))))
(build-system qt-build-system)
(arguments
;; XXX: there is a single test that spawns other tests and
;; 1/3 tests failed and 1/327 assertions failed. It seems
;; that individual tests can't be skipped.
(list
#:configure-flags #~(list "-DBUILD_TESTING=off")
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'wrap-executable
(lambda _
(let* ((ffmpeg #$(this-package-input "ffmpeg"))
(frei0r #$(this-package-input "frei0r-plugins"))
(ladspa #$(this-package-input "ladspa"))
(qtbase #$(this-package-input "qtbase")))
(wrap-program (string-append #$output "/bin/kdenlive")
`("PATH" ":" prefix
,(list (string-append ffmpeg "/bin")))
`("FREI0R_PATH" ":" =
(,(string-append frei0r "/lib/frei0r-1")))
`("LADSPA_PATH" ":" =
(,(string-append ladspa "/lib/ladspa")))
`("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
(,(string-append qtbase "/lib/qt5/plugins/platforms")))
`("MLT_PREFIX" ":" =
(,#$(this-package-input "mlt-movit"))))))))))
(native-inputs
(list extra-cmake-modules kdoctools pkg-config qttools-5))
(inputs
(list bash-minimal
breeze ; make dark them available easily
breeze-icons ; recommended icon set
ffmpeg
frei0r-plugins
karchive
kcrash
kdbusaddons
kdeclarative
kdoctools
kfilemetadata
kguiaddons
kiconthemes
kirigami
knewstuff
knotifications
knotifyconfig
kparts
kplotting
ladspa
mlt-movit
movit
rtaudio
purpose
qtbase-5
qtdeclarative-5
qtgraphicaleffects
qtmultimedia-5
qtnetworkauth-5
qtquickcontrols-5
qtquickcontrols2-5
qtscript
qtsvg-5
shared-mime-info))
(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 beginner's (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+)))