diff options
author | Marius Bakke <mbakke@fastmail.com> | 2019-09-27 19:11:27 +0200 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2019-09-27 19:11:27 +0200 |
commit | e7f62a41b245ca30404c54f3f77930336627c2f7 (patch) | |
tree | 4b2a24dcc84f137b92ca581dba96cf7abac70439 /gnu/packages/image.scm | |
parent | 1fdab9d3b3e78b0c90b52567be5535a861a7273d (diff) | |
parent | b48eb1e934f1d457ff6a0fec1c572bb12ed15fab (diff) |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/image.scm')
-rw-r--r-- | gnu/packages/image.scm | 111 |
1 files changed, 70 insertions, 41 deletions
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 7b6c8b3e0b..0026e99f59 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -419,36 +419,66 @@ lossless JPEG manipulations such as rotation, scaling or cropping: (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))))) + (arguments + '(#:make-flags + (list "CC=gcc" + ;; A substitute* procedure call would be enough to add the -fPIC + ;; flag if there was no file decoding error. + ;; The makefile is a "Non-ISO extended-ASCII text, with CRLF line + ;; terminators" according to the file(1) utility. + (string-append "CFLAGS=-I. -Icommon/include -Iimage/sys -fPIC " + "-D__ANSI__ -DDISABLE_PERF_MEASUREMENT -w -O ")) + #:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-after 'build 'build-shared-library + (lambda _ + ;; The Makefile uses optimization level 1, so the same + ;; level is used here for consistency. + (invoke "gcc" "-shared" "-fPIC" "-O" + ;; Common files. + "adapthuff.o" "image.o" "strcodec.o" "strPredQuant.o" + "strTransform.o" "perfTimerANSI.o" + ;; Decoding files. + "decode.o" "postprocess.o" "segdec.o" "strdec.o" + "strInvTransform.o" "strPredQuantDec.o" "JXRTranscode.o" + ;; Encoding files. + "encode.o" "segenc.o" "strenc.o" "strFwdTransform.o" + "strPredQuantEnc.o" + "-o" "libjpegxr.so") + (invoke "gcc" "-shared" "-fPIC" "-O" + ;; Glue files. + "JXRGlue.o" "JXRMeta.o" "JXRGluePFC.o" "JXRGlueJxr.o" + ;; Test files. + "JXRTest.o" "JXRTestBmp.o" "JXRTestHdr.o" "JXRTestPnm.o" + "JXRTestTif.o" "JXRTestYUV.o" + "-o" "libjxrglue.so"))) + ;; 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|so)$")) + (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.") @@ -893,7 +923,7 @@ supplies a generic doubly-linked list and some string functions.") (define-public freeimage (package (name "freeimage") - (version "3.17.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append @@ -903,7 +933,7 @@ supplies a generic doubly-linked list and some string functions.") ".zip")) (sha256 (base32 - "12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v")) + "1z9qwi9mlq69d5jipr3v2jika2g0kszqdzilggm99nls5xl7j4zl")) (modules '((guix build utils))) (snippet '(begin @@ -911,12 +941,8 @@ supplies a generic doubly-linked list and some string functions.") (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")))) + "LibJXR" "LibWebP" "OpenEXR" "ZLib")))) + (patches (search-patches "freeimage-unbundle.patch")))) (build-system gnu-build-system) (arguments '(#:phases @@ -947,15 +973,18 @@ supplies a generic doubly-linked list and some string functions.") ;; 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" - )) + "-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib " + + ;; FIXME: OpenEXR 2.4.0 requires C++11 or later. + ;; Remove when the default compiler is > GCC 5. + "-std=gnu++11")) #:tests? #f)) ; no check target (native-inputs `(("pkg-config" ,pkg-config) ("unzip" ,unzip))) (inputs `(("libjpeg" ,libjpeg) - ;("libjxr" ,libjxr) + ("libjxr" ,libjxr) ("libpng" ,libpng) ("libraw" ,libraw) ("libtiff" ,libtiff) |