diff --git a/packages/defs/kdenlive-movit.scm b/packages/defs/kdenlive-movit.scm new file mode 100644 index 0000000..22742ca --- /dev/null +++ b/packages/defs/kdenlive-movit.scm @@ -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+))) diff --git a/packages/defs/xmlcopyeditor.scm b/packages/defs/xmlcopyeditor.scm new file mode 100644 index 0000000..0fa625c --- /dev/null +++ b/packages/defs/xmlcopyeditor.scm @@ -0,0 +1,83 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2023 Adrien 'neox' Bourmault +;;; +;;; 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 . + +(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+)))