aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/image.scm57
-rw-r--r--gnu/packages/patches/libjxr-fix-function-signature.patch16
-rw-r--r--gnu/packages/patches/libjxr-fix-typos.patch29
4 files changed, 104 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 5fe6be5190..a23d536394 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -639,6 +639,8 @@ dist_patch_DATA = \
%D%/packages/patches/libdrm-symbol-check.patch \
%D%/packages/patches/libevent-dns-tests.patch \
%D%/packages/patches/libextractor-ffmpeg-3.patch \
+ %D%/packages/patches/libjxr-fix-function-signature.patch \
+ %D%/packages/patches/libjxr-fix-typos.patch \
%D%/packages/patches/liboop-mips64-deplibs-fix.patch \
%D%/packages/patches/libotr-test-auth-fix.patch \
%D%/packages/patches/liblxqt-include.patch \
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 3a1209f4b1..6f83fc4be4 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -129,6 +130,62 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.")
(sha256 (base32
"1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0"))))))
+(define-public libjxr
+ (package
+ (name "libjxr")
+ (version "1.1")
+ (source (origin
+ ;; We are using the Debian source because CodePlex does not
+ ;; deliver an easily downloadable tarball.
+ (method url-fetch)
+ (uri (string-append "mirror://debian/pool/main/j/jxrlib/jxrlib_"
+ version ".orig.tar.gz"))
+ (sha256
+ (base32
+ "00w3f3cmjsm3fiaxq5mxskmp5rl3mki8psrf9y8s1vqbg237na67"))
+ (patch-flags '("-p1" "--binary"))
+ (patches (search-patches "libjxr-fix-function-signature.patch"
+ "libjxr-fix-typos.patch"))))
+ (build-system gnu-build-system)
+ (arguments '(#:make-flags '("CC=gcc")
+ #:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ ;; The upstream makefile does not include an install phase.
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include/jxrlib")))
+ (for-each (lambda (file)
+ (install-file file include)
+ (delete-file file))
+ (append
+ '("jxrgluelib/JXRGlue.h"
+ "jxrgluelib/JXRMeta.h"
+ "jxrtestlib/JXRTest.h"
+ "image/sys/windowsmediaphoto.h")
+ (find-files "common/include" "\\.h$")))
+ (for-each (lambda (file)
+ (install-file file lib)
+ (delete-file file))
+ (find-files "." "\\.a$"))
+ (for-each (lambda (file)
+ (install-file file bin)
+ (delete-file file))
+ '("JxrDecApp" "JxrEncApp")))
+ #t)))))
+ (synopsis "Implementation of the JPEG XR standard")
+ (description "JPEG XR is an approved ISO/IEC International standard (its
+official designation is ISO/IEC 29199-2). This library is an implementation of that standard.")
+ (license
+ (license:non-copyleft
+ "file://Makefile"
+ "See the header of the Makefile in the distribution."))
+ (home-page "https://jxrlib.codeplex.com/")))
+
(define-public jpegoptim
(package
(name "jpegoptim")
diff --git a/gnu/packages/patches/libjxr-fix-function-signature.patch b/gnu/packages/patches/libjxr-fix-function-signature.patch
new file mode 100644
index 0000000000..32f5f64512
--- /dev/null
+++ b/gnu/packages/patches/libjxr-fix-function-signature.patch
@@ -0,0 +1,16 @@
+Description: Fix function signature
+Author: Mathieu Malaterre <malat@debian.org>
+Origin: upstream, https://jxrlib.codeplex.com/SourceControl/changeset/04cf339385b8196f98025b43a366a0790deac994
+Bug-Debian: http://bugs.debian.org/748590
+
+--- jxrlib-1.1.orig/image/decode/JXRTranscode.c
++++ jxrlib-1.1/image/decode/JXRTranscode.c
+@@ -47,7 +47,7 @@ EXTERN_C Void FreeCodingContextDec(CWMIm
+ EXTERN_C Int StrEncInit(CWMImageStrCodec *);
+ EXTERN_C Void StrIOEncTerm(CWMImageStrCodec *);
+ EXTERN_C Void FreeCodingContextEnc(CWMImageStrCodec *);
+-EXTERN_C Void encodeMB(CWMImageStrCodec *, Int, Int);
++EXTERN_C Int encodeMB(CWMImageStrCodec *, Int, Int);
+ EXTERN_C Int writeIndexTableNull(CWMImageStrCodec *);
+ EXTERN_C Void writePacketHeader(BitIOInfo *, U8, U8);
+
diff --git a/gnu/packages/patches/libjxr-fix-typos.patch b/gnu/packages/patches/libjxr-fix-typos.patch
new file mode 100644
index 0000000000..819db34900
--- /dev/null
+++ b/gnu/packages/patches/libjxr-fix-typos.patch
@@ -0,0 +1,29 @@
+Description: Fix typos and remove some warnings
+Author: Mathieu Malaterre <malat@debian.org>
+
+Index: jxrlib-1.1/jxrencoderdecoder/JxrEncApp.c
+===================================================================
+--- jxrlib-1.1.orig/jxrencoderdecoder/JxrEncApp.c
++++ jxrlib-1.1/jxrencoderdecoder/JxrEncApp.c
+@@ -578,7 +578,7 @@ main(int argc, char* argv[])
+
+ //================================
+ Call(PKCreateCodecFactory(&pCodecFactory, WMP_SDK_VERSION));
+- Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, &pEncoder));
++ Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, (void**)&pEncoder));
+
+ //----------------------------------------------------------------
+ Call(PKCreateTestFactory(&pTestFactory, WMP_SDK_VERSION));
+Index: jxrlib-1.1/jxrgluelib/JXRMeta.h
+===================================================================
+--- jxrlib-1.1.orig/jxrgluelib/JXRMeta.h
++++ jxrlib-1.1/jxrgluelib/JXRMeta.h
+@@ -34,7 +34,7 @@
+
+ #ifndef UNREFERENCED_PARAMETER
+ #define UNREFERENCED_PARAMETER(P) { (P) = (P); }
+-#endif UNREFERENCED_PARAMETER
++#endif /*UNREFERENCED_PARAMETER*/
+
+ //================================================================
+ // Container