From 2809a355b6473d947db24a0d80b4d2e8c454d9d7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 22 Oct 2017 03:02:40 +0200 Subject: [PATCH] gnu: Add papagayo. * gnu/packages/animation.scm (papagayo): New variable. --- gnu/packages/animation.scm | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index faa0d17230..952d3bab0d 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -19,6 +19,7 @@ (define-module (gnu packages animation) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) @@ -34,6 +35,8 @@ #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages qt) #:use-module (gnu packages video)) (define-public etl @@ -185,3 +188,71 @@ be capable of producing feature-film quality animation. It eliminates the need for tweening, preventing the need to hand-draw each frame. This package contains the graphical user interface for synfig.") (license license:gpl3+))) + +(define-public papagayo + (let ((commit "e143684b30e59fe4a554f965cb655d23cbe93ee7") + (revision "1")) + (package + (name "papagayo") + (version (string-append "2.0b1-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LostMoho/Papagayo.git") + (commit commit))) + (sha256 + (base32 + "1p9gffjhbph34jhrvgpg93yha75bf88vkvlnk06x1r9601ph5321")) + (modules '((guix build utils))) + ;; Delete bundled libsndfile sources. + (snippet + '(begin + (delete-file-recursively "libsndfile_1.0.19") + (delete-file-recursively "libsndfile_1.0.25") + #t)))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((libsndfile (assoc-ref inputs "libsndfile"))) + ;; Do not use bundled libsndfile sources + (substitute* "Papagayo.pro" + (("else \\{") + (string-append "\nINCLUDEPATH += " libsndfile + "/include" + "\nLIBS +=" libsndfile + "/lib/libsndfile.so\n" + "win32 {")))) + (zero? (system* "qmake" + (string-append "DESTDIR=" + (assoc-ref outputs "out") + "/bin"))))) + ;; Ensure that all required Qt plugins are found at runtime. + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (qt '("qt" "qtmultimedia"))) + (wrap-program (string-append out "/bin/Papagayo") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins/")) + qt))) + #t)))))) + (inputs + `(("qt" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ("libsndfile" ,libsndfile))) + (native-inputs + `(("qttools" ,qttools))) + (home-page "http://www.lostmarble.com/papagayo/") + (synopsis "Lip-syncing for animations") + (description + "Papagayo is a lip-syncing program designed to help you line up +phonemes with the actual recorded sound of actors speaking. Papagayo makes it +easy to lip sync animated characters by making the process very simple – just +type in the words being spoken, then drag the words on top of the sound’s +waveform until they line up with the proper sounds.") + (license license:gpl3+))))