summary refs log tree commit diff
path: root/gnu/packages/image.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/image.scm')
-rw-r--r--gnu/packages/image.scm147
1 files changed, 96 insertions, 51 deletions
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 24f1b1570c..393ee7e08b 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -25,6 +25,7 @@
 ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +75,7 @@
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages textutils)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
@@ -856,6 +858,55 @@ compose, and analyze GIF images.")
     (home-page "http://giflib.sourceforge.net/")
     (license license:x11)))
 
+(define-public libuemf
+  (package
+    (name "libuemf")
+    (version "0.2.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/libuemf/libUEMF-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "05djs99vqf067x81xfpskh7a66y5x7b4mmjavybcy7swnm0swg7v"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; Overriding CMAKE_INSTALL_PREFIX is not a good idea.
+         (add-after 'unpack 'fix-CMakeLists.txt
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               ((".*SET\\(CMAKE_INSTALL_PREFIX.*") ""))
+             #t))
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (sources (string-append "../libUEMF-" ,version))
+                    (drm-tools (assoc-ref inputs "drm-tools"))
+                    (extract (string-append drm-tools "/bin/extract"))
+                    (execinput (string-append drm-tools "/bin/execinput")))
+               (with-directory-excursion sources
+                 (substitute* "testit.sh"
+                   (("^EPATH=.*")
+                    (format #f "EPATH=~a~%" bin))
+                   (("`which diff`")
+                    "diff")
+                   (("^EXTRACT=.*")
+                    (format #f "EXTRACT=~a~%" extract))
+                   (("^EXECINPUT=.*")
+                    (format #f "EXECINPUT=~a~%" execinput)))
+                 (invoke "sh" "testit.sh"))))))))
+    (native-inputs `(("drm-tools" ,drm-tools))) ;for tests
+    (home-page "http://libuemf.sourceforge.net/")
+    (synopsis "Library for working with WFM, EMF and EMF+ images")
+    (description "The libUEMF library is a portable C99 implementation for
+reading and writing @acronym{WFM, Windows Metafile}, @acronym{EMF, Enhanced
+Metafile}, and @acronym{EMF+, Enhanced Metafile Plus} files.")
+    (license license:gpl2+)))
+
 (define-public libungif
   (package
     (name "libungif")
@@ -2016,62 +2067,56 @@ This package can be used to create @code{favicon.ico} files for web sites.")
      `(("libaom" ,libaom)
        ("dav1d" ,dav1d)))
     (synopsis "Encode and decode AVIF files")
-    (description "Libavif is a C implementation of the AV1 Image File Format
-(AVIF).  It can encode and decode all YUV formats and bit depths supported by
-AOM, including with alpha.")
+    (description "Libavif is a C implementation of @acronym{AVIF, the AV1 Image
+File Format}.  It can encode and decode all YUV formats and bit depths supported
+by AOM, including with alpha.")
     (home-page "https://github.com/AOMediaCodec/libavif")
     (license (list license:bsd-2    ; libavif itself
                    license:expat)))) ; cJSON in the test suite
 
 (define-public mtpaint
-  (let ((commit "03b1b0938067b88d86d9f1b1088730f1934d411e")
-        (revision "1"))
-    (package
-      (name "mtpaint")
-      ;; The author neither releases tarballs nor uses git version tags.
-      ;; Instead, author puts version in git commit title.
-      (version (git-version "3.49.25" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/wjaguar/mtPaint/")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "0izm2wvj26566fd8mqvypr7bmv7jnq8qhp4760m7z2wrc4y8pjn1"))))
-      (build-system gnu-build-system)
-      (native-inputs
-       `(("gettext" ,gettext-minimal)
-         ("pkg-config" ,pkg-config)
-         ("which" ,which)))
-      (inputs
-       `(("imlib2" ,imlib2)
-         ("libtiff" ,libtiff)
-         ("libpng" ,libpng)
-         ("libungif", libungif)
-         ("libjpeg", libjpeg-turbo)
-         ("libwebp" ,libwebp)
-         ("openjpeg" ,openjpeg)
-         ("lcms" ,lcms)
-         ("zlib", zlib)
-         ("glib" ,glib)
-         ;; support for gtk3 is in testing stage
-         ("gtk+" ,gtk+-2)))
-      (arguments
-       `(#:configure-flags
-         (list
-          ;; internationalized version
-          "intl"
-          ;; install man page
-          "man")
-         ;; no check target
-         #:tests? #f))
-      (home-page "http://mtpaint.sourceforge.net/")
-      (synopsis "Create pixel art and manipulate digital images")
-      (description
-       "Mtpaint is a graphic editing program which uses the GTK+ toolkit.
+  (package
+    (name "mtpaint")
+    ;; The author neither releases tarballs nor uses git version tags.
+    ;; Instead, author puts version in git commit title.
+    (version "3.49.27")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/wjaguar/mtPaint")
+             (commit "26751cd0336414e2f16cbe25c9fe2702f34e7b5c")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "12mzai9pqvyb342m21rjz0jxiy75q24sjw6ax147pzy8frzkgd54"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("pkg-config" ,pkg-config)
+       ("which" ,which)))
+    (inputs
+     `(("imlib2" ,imlib2)
+       ("libtiff" ,libtiff)
+       ("libpng" ,libpng)
+       ("libungif", libungif)
+       ("libjpeg", libjpeg-turbo)
+       ("libwebp" ,libwebp)
+       ("openjpeg" ,openjpeg)
+       ("lcms" ,lcms)
+       ("zlib", zlib)
+       ("glib" ,glib)
+       ;; Support for gtk3 is in the testing stage.
+       ("gtk+" ,gtk+-2)))
+    (arguments
+     `(#:configure-flags
+       (list "intl"                     ; build internationalized version
+             "man")                     ; build the man page
+       #:tests? #f))                    ; no test suite
+    (home-page "http://mtpaint.sourceforge.net/")
+    (synopsis "Create pixel art and manipulate digital images")
+    (description
+     "Mtpaint is a graphic editing program which uses the GTK+ toolkit.
 It can create and edit indexed palette or 24bit RGB images, offers basic
 painting and palette manipulation tools.  It also handles JPEG, JPEG2000,
 GIF, TIFF, WEBP, BMP, PNG, XPM formats.")
-      (license license:gpl3+))))
+    (license license:gpl3+)))