aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/image.scm52
-rw-r--r--gnu/packages/patches/devil-fix-libpng.patch36
3 files changed, 89 insertions, 0 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 75914b7153..ccc1255c5b 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -433,6 +433,7 @@ dist_patch_DATA = \
gnu/packages/patches/cursynth-wave-rand.patch \
gnu/packages/patches/dbus-helper-search-path.patch \
gnu/packages/patches/dealii-p4est-interface.patch \
+ gnu/packages/patches/devil-fix-libpng.patch \
gnu/packages/patches/diffutils-gets-undeclared.patch \
gnu/packages/patches/dfu-programmer-fix-libusb.patch \
gnu/packages/patches/doxygen-test.patch \
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 1acc5ee973..979d144ca4 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -666,3 +666,55 @@ channels.")
(description
"Libmng is the MNG (Multiple-image Network Graphics) reference library.")
(license license:bsd-3)))
+
+(define-public devil
+ (package
+ (name "devil")
+ (version "1.7.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://downloads.sourceforge.net/openil/"
+ "DevIL-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8"))
+ ;; Backported from upstream:
+ ;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch
+ (patches (list (search-patch "devil-fix-libpng.patch")))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Fix old lcms include directives and lib flags.
+ '(substitute* '("configure" "src-IL/src/il_profiles.c")
+ (("-llcms") "-llcms2")
+ (("lcms/lcms\\.h") "lcms2/lcms2.h")
+ (("lcms\\.h") "lcms2.h")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:configure-flags '("--enable-ILUT=yes") ; build utility library
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'fix-tests
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Fix hard-coded /bin/bash reference.
+ (substitute* '("test/Makefile")
+ (("TESTS_ENVIRONMENT = /bin/bash")
+ (string-append "TESTS_ENVIRONMENT = "
+ (assoc-ref inputs "bash")
+ "/bin/bash")))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("lcms" ,lcms)
+ ("libjpeg" ,libjpeg)
+ ("libmng" ,libmng)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)
+ ("openexr" ,openexr)
+ ("zlib" ,zlib)))
+ (synopsis "Library for manipulating many image formats")
+ (description "Developer's Image Library (DevIL) is a library to develop
+applications with support for many types of images. DevIL can load, save,
+convert, manipulate, filter and display a wide variety of image formats.")
+ (home-page "http://openil.sourceforge.net")
+ (license license:lgpl2.1+)))
diff --git a/gnu/packages/patches/devil-fix-libpng.patch b/gnu/packages/patches/devil-fix-libpng.patch
new file mode 100644
index 0000000000..a8e90333a3
--- /dev/null
+++ b/gnu/packages/patches/devil-fix-libpng.patch
@@ -0,0 +1,36 @@
+From 724194d7a9a91221a564579f64bdd6f0abd64219 Mon Sep 17 00:00:00 2001
+From: Noah Mayr <max96at@gmail.com>
+Date: Sun, 1 Mar 2015 10:10:56 +0100
+Subject: [PATCH] Fixed deprecated libpng API usage.
+
+---
+ src-IL/src/il_icon.c | 2 +-
+ src-IL/src/il_png.c | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src-IL/src/il_icon.c b/src-IL/src/il_icon.c
+index 2ccb1a3..fd9475d 100644
+--- a/src-IL/src/il_icon.c
++++ b/src-IL/src/il_icon.c
+@@ -525,7 +525,7 @@ ILboolean ico_readpng_get_image(ICOIMAGE *Icon, ILdouble display_exponent)
+
+ // Expand low-bit-depth grayscale images to 8 bits
+ if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+- png_set_gray_1_2_4_to_8(ico_png_ptr);
++ png_set_expand_gray_1_2_4_to_8(ico_png_ptr);
+ }
+
+ // Expand RGB images with transparency to full alpha channels
+diff --git a/src-IL/src/il_png.c b/src-IL/src/il_png.c
+index da9517d..2866508 100644
+--- a/src-IL/src/il_png.c
++++ b/src-IL/src/il_png.c
+@@ -277,7 +277,7 @@ ILboolean readpng_get_image(ILdouble display_exponent)
+
+ // Expand low-bit-depth grayscale images to 8 bits
+ if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ // Expand RGB images with transparency to full alpha channels