summaryrefslogtreecommitdiff
path: root/extra/racket/racket-libpng16.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/racket/racket-libpng16.patch')
-rw-r--r--extra/racket/racket-libpng16.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/extra/racket/racket-libpng16.patch b/extra/racket/racket-libpng16.patch
new file mode 100644
index 000000000..8e4b605f2
--- /dev/null
+++ b/extra/racket/racket-libpng16.patch
@@ -0,0 +1,52 @@
+From 5629a6156a5720e51a277849f75b3135cb93664f Mon Sep 17 00:00:00 2001
+From: Matthew Flatt <mflatt@racket-lang.org>
+Date: Wed, 15 May 2013 20:28:05 -0600
+Subject: [PATCH] support libpng16
+
+---
+ collects/racket/draw/unsafe/png.rkt | 21 ++++++++++++++-------
+ 1 file changed, 14 insertions(+), 7 deletions(-)
+
+diff --git a/collects/racket/draw/unsafe/png.rkt b/collects/racket/draw/unsafe/png.rkt
+index 596fcb4..a6b028d 100644
+--- a/collects/racket/draw/unsafe/png.rkt
++++ b/collects/racket/draw/unsafe/png.rkt
+@@ -10,11 +10,15 @@
+ [(unix)
+ ;; Most Linux distros supply "libpng12", while other Unix
+ ;; variants often have just "libpng", etc.
+- (ffi-lib "libpng15" '("15" "")
+- #:fail (lambda ()
+- (ffi-lib "libpng12" '("0" "")
+- #:fail (lambda ()
+- (ffi-lib "libpng")))))]
++ (let loop ([alts '(("libpng16" ("16" ""))
++ ("libpng15" ("15" ""))
++ ("libpng12" ("0" ""))
++ ("libpng"))])
++ (cond
++ [(null? alts) #f]
++ [else (apply ffi-lib (car alts)
++ #:fail (lambda ()
++ (loop (cdr alts))))]))]
+ [(macosx) (ffi-lib "libpng15.15.dylib")]
+ [(windows)
+ (ffi-lib "zlib1.dll")
+@@ -29,9 +33,12 @@
+ ;; assume that other versions are also ok
+ (define PNG_LIBPNG_VER_STRING (string->bytes/latin-1
+ (let ([v (png_access_version_number)])
+- (format "~s.~s"
++ (format "~s.~s~a"
+ (quotient v 10000)
+- (quotient (remainder v 10000) 100)))))
++ (quotient (remainder v 10000) 100)
++ (if (zero? (remainder v 100))
++ ""
++ (format ".~a" (remainder v 100)))))))
+
+ (define _png_structp (_cpointer 'png_structp))
+ (define _png_infop (_cpointer 'png_infop))
+--
+1.8.1.6
+