This commit is contained in:
Adrien 'neox' Bourmault 2023-12-12 11:59:57 +01:00
parent 35597500b3
commit 99b306378a
No known key found for this signature in database
GPG Key ID: 2974E1D5F25DFCC8
2 changed files with 322 additions and 0 deletions

View File

@ -0,0 +1,239 @@
(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+)))

View File

@ -0,0 +1,83 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Adrien 'neox' Bourmault <neox@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (xmlcopyeditor)
#:use-module ((guix licenses)
#:select (gpl3+ lgpl2.0+ lgpl3+ public-domain))
#:use-module (gnu packages)
#:use-module (gnu packages aspell)
#:use-module (gnu packages boost)
#:use-module (gnu packages glib)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pcre)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (guix i18n)
#:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:prefix license:))
(define-public xmlcopyeditor
(package
(name "xmlcopyeditor")
(version "1.3.1.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://forge.chalec.org/neox/xml-copy-editor-code.git")
(commit version)))
(file-name
(git-file-name name version))
(sha256
(base32 "05fryg98knxlqsjgx3wwj6pqkw5nz6q5wgjcql8xdfxc2ggbcyb5"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f
#:configure-flags
#~(list
(string-append
"--prefix=" #$output)
(string-append
"--exec-prefix=" #$output))))
(native-inputs
(list
intltool
pkg-config))
(inputs
(list
pcre2
wxwidgets
aspell
boost
xerces-c
libxml2
libxslt
expat))
(synopsis "XML Copy Editor")
(description
"Fast, free, validating XML editor.")
(home-page "https://xml-copy-editor.sourceforge.io/")
(license gpl3+)))