240 lines
8.5 KiB
Scheme
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+)))
|