From b81245ccb38dc16d115519dd3166d8bb2c295bb8 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Thu, 3 Nov 2016 13:36:02 -0400 Subject: [PATCH] [PATCH] gnu: Add libjxr. * gnu/packages/image.scm (libjxr): New variable. * gnu/packages/patches/libjxr-fix-function-signature.patch: New file. * gnu/packages/patches/libjxr-fix-typos.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patches. --- gnu/local.mk | 2 + gnu/packages/image.scm | 57 +++++++++++++++++++ .../libjxr-fix-function-signature.patch | 16 ++++++ gnu/packages/patches/libjxr-fix-typos.patch | 29 ++++++++++ 4 files changed, 104 insertions(+) create mode 100644 gnu/packages/patches/libjxr-fix-function-signature.patch create mode 100644 gnu/packages/patches/libjxr-fix-typos.patch 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 ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2016 Arun Isaac +;;; Copyright © 2016 Kei Kebreau ;;; ;;; 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 +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 + +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