;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
-;;; Copyright © 2014, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2014, 2017 John Darrington <jmd@gnu.org>
-;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2017 ng0 <ng0@infotropique.org>
+;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
+;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
+;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages maths)
#:use-module (gnu packages mcrypt)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages qt)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
(define-public libjpeg
(package
(name "libjpeg")
- (version "9b")
+ (version "9c")
(source (origin
(method url-fetch)
(uri (string-append "http://www.ijg.org/files/jpegsrc.v"
version ".tar.gz"))
(sha256 (base32
- "0lnhpahgdwlrkd41lx6cr90r199f8mc6ydlh7jznj5klvacd63r4"))))
+ "08kixcf3a7s9x91174abjnk1xbvj4v8crdc73zi4k9h3jfbm00k5"))))
(build-system gnu-build-system)
(synopsis "Library for handling JPEG files")
(description
(define-public jpegoptim
(package
(name "jpegoptim")
- (version "1.4.4")
+ (version "1.4.5")
(source (origin
(method url-fetch)
(uri (string-append "http://www.kokkonen.net/tjko/src/jpegoptim-"
version ".tar.gz"))
(sha256 (base32
- "1cn1i0g1xjdwa12w0ifbnzgb1vqbpr8ji6h05vxksj79vyi3x849"))))
+ "1mngi8c4mhzwa7i4wqrqq6i80cqj4adbacblfvk6dy573wywyxmi"))))
(build-system gnu-build-system)
(inputs `(("libjpeg" ,libjpeg)))
(arguments
the Huffman tables) and \"lossy\" optimization based on setting
maximum quality factor.")
(license license:gpl2+)
- (home-page "http://www.kokkonen.net/tjko/projects.html#jpegoptim")))
+ (home-page "https://www.kokkonen.net/tjko/projects.html#jpegoptim")))
(define-public libicns
(package
(package
(name "libtiff")
(version "4.0.9")
- (replacement libtiff/fixed)
(source
(origin
(method url-fetch)
version ".tar.gz"))
(sha256
(base32
- "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf"))))
+ "1kfg4q01r4mqn7dj63ifhi6pmqzbf4xax6ni6kkk81ri5kndwyvf"))
+ (patches (search-patches "libtiff-CVE-2017-9935.patch"
+ "libtiff-CVE-2017-18013.patch"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ;1.3 MiB of HTML documentation
"See COPYRIGHT in the distribution."))
(home-page "http://www.simplesystems.org/libtiff/")))
-(define libtiff/fixed
- (package
- (inherit libtiff)
- (source
- (origin
- (inherit (package-source libtiff))
- (patches
- (append (origin-patches (package-source libtiff))
- (search-patches "libtiff-CVE-2017-9935.patch"
- "libtiff-CVE-2017-18013.patch")))))))
-
(define-public leptonica
(package
(name "leptonica")
version ".tar.bz2"))
(sha256
(base32
- "1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))))
+ "1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))
+ (patches (search-patches
+ "giflib-make-reallocarray-private.patch"))))
(build-system gnu-build-system)
(outputs '("bin" ; utility programs
"out")) ; library
(add-after 'unpack 'disable-html-doc-gen
(lambda _
(substitute* "doc/Makefile.in"
- (("^all: allhtml manpages") ""))))
+ (("^all: allhtml manpages") ""))
+ #t))
(add-after 'install 'install-manpages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((bin (assoc-ref outputs "bin"))
(copy-file file
(string-append
man1dir "/" base))))
- (find-files "doc" "\\.1"))))))))
+ (find-files "doc" "\\.1"))
+ #t))))))
(synopsis "Tools and library for working with GIF images")
(description
"GIFLIB is a library for reading and writing GIF images. It is API and
(define-public imlib2
(package
(name "imlib2")
- (version "1.4.10")
+ (version "1.5.1")
(source (origin
(method url-fetch)
(uri (string-append
"/imlib2-" version ".tar.bz2"))
(sha256
(base32
- "0wm2q2xlkbm71k7mw2jyzbxgzylrkcj5yh6nq58w5gybhp98qs9z"))))
+ "1bms2iwmvnvpz5jqq3r52glarqkafif47zbh1ykz8hw85d2mfkps"))))
(build-system gnu-build-system)
(native-inputs
`(("pkgconfig" ,pkg-config)))
(sha256
(base32
"12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
- (patches (search-patches "freeimage-CVE-2015-0852.patch"
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ (for-each
+ (lambda (dir)
+ (delete-file-recursively (string-append "Source/" dir)))
+ '("LibJPEG" "LibOpenJPEG" "LibPNG" "LibRawLite"
+ ;; "LibJXR"
+ "LibWebP" "OpenEXR" "ZLib"))))
+ (patches (search-patches "freeimage-unbundle.patch"
+ "freeimage-CVE-2015-0852.patch"
"freeimage-CVE-2016-5684.patch"
"freeimage-fix-build-with-gcc-5.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
- (delete 'configure)
+ ;; According to Fedora these files depend on private headers, but their
+ ;; presence is required for building, so we replace them with empty files.
+ (add-after 'unpack 'delete-unbuildable-files
+ (lambda _
+ (for-each (lambda (file)
+ (delete-file file)
+ (close (open file O_CREAT)))
+ '("Source/FreeImage/PluginG3.cpp"
+ "Source/FreeImageToolkit/JPEGTransform.cpp"))
+ #t))
+ ;; These scripts generate the Makefiles.
+ (replace 'configure
+ (lambda _
+ (invoke "sh" "gensrclist.sh")
+ (invoke "sh" "genfipsrclist.sh")))
(add-before 'build 'patch-makefile
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile.gnu"
(("/usr") (assoc-ref outputs "out"))
(("-o root -g root") ""))
#t)))
- #:make-flags '("CC=gcc")
+ #:make-flags
+ (list "CC=gcc"
+ ;; We need '-fpermissive' for Source/FreeImage.h.
+ ;; libjxr doesn't have a pkg-config file.
+ (string-append "CFLAGS+=-O2 -fPIC -fvisibility=hidden -fpermissive "
+ ;"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"
+ ))
#:tests? #f)) ; no check target
(native-inputs
- `(("unzip" ,unzip)))
- ;; Fails to build on MIPS due to assembly code in the source.
- (supported-systems (delete "mips64el-linux" %supported-systems))
+ `(("pkg-config" ,pkg-config)
+ ("unzip" ,unzip)))
+ (inputs
+ `(("libjpeg" ,libjpeg)
+ ;("libjxr" ,libjxr)
+ ("libpng" ,libpng)
+ ("libraw" ,libraw)
+ ("libtiff" ,libtiff)
+ ("libwebp" ,libwebp)
+ ("openexr" ,openexr)
+ ("openjpeg" ,openjpeg)
+ ("zlib" ,zlib)))
(synopsis "Library for handling popular graphics image formats")
(description
"FreeImage is a library for developers who would like to support popular
("python2-sphinx" ,python2-sphinx)))
(arguments
`(#:test-target "check"
- #:parallel-build? #f ; parallel builds trigger an ICE
+ #:phases
+ (modify-phases %standard-phases
+ ;; See https://github.com/ukoethe/vigra/issues/432
+ (add-after 'unpack 'disable-broken-test
+ (lambda _
+ (substitute* "test/fourier/CMakeLists.txt"
+ (("VIGRA_ADD_TEST.*") ""))
+ #t)))
#:configure-flags
(list "-Wno-dev" ; suppress developer mode with lots of warnings
(string-append "-DVIGRANUMPY_INSTALL_DIR="
(license license:expat)
(home-page "https://ukoethe.github.io/vigra/")))
+(define-public vigra-c
+ (let* ((commit "a2ff675f42079e2623318d8ff8b4288dbe7a7f06")
+ (revision "0")
+ (version (git-version "0.0.0" revision commit)))
+ (package
+ (name "vigra-c")
+ (version version)
+ (home-page "https://github.com/BSeppke/vigra_c")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit commit)))
+ (sha256
+ (base32
+ "1f1phmfbbz3dsq9330rd6bjmdg29hxskxi9l17cyx1f4mdqpgdgl"))
+ (file-name (git-file-name name version))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ; No test target.
+ (native-inputs
+ `(("doxygen" ,doxygen)))
+ (inputs
+ `(("fftw" ,fftw)
+ ("fftwf" ,fftwf)
+ ("vigra" ,vigra)))
+ (synopsis "C interface to the VIGRA computer vision library")
+ (description
+ "This package provides a C interface to the VIGRA C++ computer vision
+library. It is designed primarily to ease the implementation of higher-level
+language bindings to VIGRA.")
+ (license license:expat))))
+
(define-public libwebp
(package
(name "libwebp")
- (version "0.6.1")
+ (version "1.0.0")
(source
(origin
- (method url-fetch)
- (uri (string-append
- "http://downloads.webmproject.org/releases/webp/libwebp-" version
- ".tar.gz"))
+ ;; No tarballs are provided for >0.6.1.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://chromium.googlesource.com/webm/libwebp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1ayq2zq0zbgf5yizbm32zh7p1vb8kibw74am6am1n5cz5mw3ql06"))))
+ "1w8jzdbr1s4238ygyrlxryycss3f2z6d9amxdq8m82nl3l6skar4"))))
(build-system gnu-build-system)
(inputs
`(("freeglut" ,freeglut)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libtiff" ,libtiff)))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
(arguments
'(#:configure-flags '("--enable-libwebpmux"
"--enable-libwebpdemux"
- "--enable-libwebpdecoder")))
+ "--enable-libwebpdecoder")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _
+ (invoke "autoreconf" "-vif"))))))
(home-page "https://developers.google.com/speed/webp/")
(synopsis "Lossless and lossy image compression")
(description
(define-public optipng
(package
(name "optipng")
- (version "0.7.6")
+ (version "0.7.7")
(source
(origin
(method url-fetch)
(uri (string-append "http://prdownloads.sourceforge.net/optipng/optipng-"
version ".tar.gz"))
- (patches (search-patches "optipng-CVE-2017-1000229.patch"))
(sha256
(base32
- "105yk5qykvhiahzag67gm36s2kplxf6qn5hay02md0nkrcgn6w28"))))
+ "0lj4clb851fzpaq446wgj0sfy922zs5l5misbpwv6w7qrqrz4cjg"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
(arguments
'(#:phases
(modify-phases %standard-phases
- ;; configure script does not accept arguments CONFIG_SHELL and SHELL
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
- (zero? (system* "sh" "configure"
- (string-append "--prefix=" (assoc-ref outputs "out")))))))))
- (synopsis "Optimizer that recompresses PNG image files to a
-smaller size")
+ ;; configure script doesn't accept arguments CONFIG_SHELL and SHELL
+ (invoke "sh" "configure"
+ (string-append "--prefix=" (assoc-ref outputs "out")))
+ #t)))))
+ (synopsis "Optimizer that recompresses PNG image files to a smaller size")
(description "OptiPNG is a PNG optimizer that recompresses image
files to a smaller size, without losing any information. This program
also converts external formats (BMP, GIF, PNM and TIFF) to optimized
(synopsis "Color picker")
(description "Gpick is an advanced color picker and palette editing tool.")
(license license:bsd-3)))
+
+(define-public libiptcdata
+ (package
+ (name "libiptcdata")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/" name "/" name "/"
+ version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "03pfvkmmx762iydq0q207x2028d275pbdysfsgpmrr0ywy63pxkr"))))
+ (build-system gnu-build-system)
+ (home-page "http://libiptcdata.sourceforge.net/")
+ (synopsis "IPTC metadata manipulation library")
+ (description "Libiptcdata is a C library for manipulating the International
+Press Telecommunications Council (IPTC) metadata stored within multimedia files
+such as images. This metadata can include captions and keywords, often used by
+popular photo management applications. The library provides routines for
+parsing, viewing, modifying, and saving this metadata.")
+ (license license:lgpl2.0+)))
+
+(define-public flameshot
+ (package
+ (name "flameshot")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/lupoDharkael/flameshot/archive/"
+ "v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0kp451bqgssvg8n3sg60s3fifplm9l5kxiij0yxkl864p2mhw8im"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("qttools" ,qttools)))
+ (inputs
+ `(("qtbase" ,qtbase)))
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "qmake"
+ "CONFIG+=packaging"
+ (string-append "BASEDIR=" (assoc-ref outputs "out"))
+ "PREFIX=/"))))))
+ (home-page "https://github.com/lupoDharkael/flameshot")
+ (synopsis "Powerful yet simple to use screenshot software")
+ (description "Flameshot is a screenshot program.
+Features:
+
+@itemize
+@item Customizable appearance.
+@item Easy to use.
+@item In-app screenshot edition.
+@item DBus interface.
+@item Upload to Imgur.
+@end itemize\n")
+ (license license:gpl3+)))
+
+(define-public r-jpeg
+ (package
+ (name "r-jpeg")
+ (version "0.1-8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "jpeg" version))
+ (sha256
+ (base32
+ "05hawv5qcb82ljc1l2nchx1wah8mq2k2kfkhpzyww554ngzbwcnh"))))
+ (build-system r-build-system)
+ (inputs `(("libjpeg" ,libjpeg)))
+ (home-page "http://www.rforge.net/jpeg/")
+ (synopsis "Read and write JPEG images with R")
+ (description "This package provides a way to read, write and display bitmap
+images stored in the JPEG format with R. It can read and write both files and
+in-memory raw vectors.")
+ (license license:gpl2+)))
+
+(define-public gifsicle
+ (package
+ (name "gifsicle")
+ (version "1.91")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.lcdf.org/gifsicle/gifsicle-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "00586z1yz86qcblgmf16yly39n4lkjrscl52hvfxqk14m81fckha"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'patch-tests
+ (lambda _
+ (substitute* "test/testie"
+ (("/usr/bin/perl")
+ (which "perl"))
+ (("/bin/sh")
+ (which "sh"))
+ (("/bin/rm")
+ (which "rm")))
+ #t)))))
+ (native-inputs `(("perl" ,perl))) ; Only for tests.
+ (inputs `(("libx11" ,libx11)))
+ (home-page "http://www.lcdf.org/gifsicle/")
+ (synopsis "Edit GIF images and animations")
+ (description "Gifsicle is a command-line GIF image manipulation tool that:
+
+@itemize
+@item Provides a batch mode for changing GIFs in place.
+@item Prints detailed information about GIFs, including comments.
+@item Control over interlacing, comments, looping, transparency, etc.
+@item Creates well-behaved GIFs: removes redundant colors, only uses local color
+tables, etc.
+@item Shrinks colormaps and change images to use the Web-safe palette.
+@item Optimizes GIF animations, or unoptimizes them for easier editing.
+@end itemize
+
+Two other programs are included with Gifsicle: @command{gifview} is a
+lightweight animated-GIF viewer, and @command{gifdiff} compares two GIFs for
+identical visual appearance.")
+ (license license:gpl2+)))