;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2017 Ricardo Wurmus ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2019 Pkill -9 ;;; ;;; 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 (gnu packages animation) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-dow
aboutsummaryrefslogtreecommitdiff
blob: 927a12f4cf0990ef064c97246bfc098da775b343 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; 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 (gnu packages libsigsegv)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu))

(define-public libsigsegv
  (package
   (name "libsigsegv")
   (version "2.12")
   (source (origin
            (method url-fetch)
            (uri (string-append
                  "mirror://gnu/libsigsegv/libsigsegv-"
                  version ".tar.gz"))
            (sha256
             (base32 "1dlhqf4igzpqayms25lkhycjq1ccavisx8cnb3y4zapbkqsszq9s"))))
   (build-system gnu-build-system)
   (home-page "https://www.gnu.org/software/libsigsegv/")
   (synopsis "Library for handling page faults")
   (arguments
    `(;; The shared library isn't built by default but some packages need it.
      #:configure-flags '("--enable-shared")

      ;; On MIPS, work around this error:
      ;;
      ;; In file included from fault-linux-mips-old.h:18:0,
      ;;    [...]
      ;; linux-libre-headers-cross-mips64el-linux-gnu-3.3.8/include/asm/sigcontext.h:57:8: error: redefinition of 'struct sigcontext'
      ,@(if (string-contains (or (%current-target-system) (%current-system))
                             "mips64el")
            `(#:phases (modify-phases %standard-phases
                         (add-before 'configure 'patch-mips-old-h
                           (lambda _
                             (substitute* "src/fault-linux-mips-old.h"
                               (("#include <asm/sigcontext\\.h>") ""))
                             #t))))
            '())))
   (description
    "GNU libsigsegv is a library to handle page faults, which occur when a
program tries to access an unavailable region of memory, in user mode.  By
catching and handling page faults, the program can implement pageable virtual
memory, stack overflow handlers, and so on.")
   (license gpl2+)))
(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") (commit commit))) (file-name (git-file-name name version)) (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 {")))) (invoke "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 "https://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+)))) (define-public pencil2d (package (name "pencil2d") (version "0.6.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/pencil2d/pencil") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "06l60wawkhb3wrsj79p5f7ka5cgcyly36pbvm95fvwbkmlvmjzf1")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) ("qtxmlpatterns" ,qtxmlpatterns) ("qtmultimedia" ,qtmultimedia) ("qtsvg" ,qtsvg))) (arguments `(#:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (invoke "qmake" (string-append "PREFIX=" out))))) (add-after 'install 'wrap-executable (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (plugin-path (getenv "QT_PLUGIN_PATH"))) (wrap-program (string-append out "/bin/pencil2d") `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))) #t)))))) (home-page "https://www.pencil2d.org") (synopsis "Make 2D hand-drawn animations") (description "Pencil2D is an easy-to-use and intuitive animation and drawing tool. It lets you create traditional hand-drawn animations (cartoons) using both bitmap and vector graphics.") (license license:gpl2)))