From 3a83bc100d6ced7286ccbde9609af5b6347a485b Mon Sep 17 00:00:00 2001 From: Xin LI Date: Wed, 17 Mar 2010 21:06:18 +0000 Subject: [PATCH] libxml2 knows too much about zlib internals. Beginning from zlib 1.2.2.3 the zlib authors has provided a 'gzdirect' function to detect whether the current gzFile descriptor is still providing a stream from uncompression, so use it instead of rolling own. The upcoming zlib 1.2.4 update will break the current libxml2 usage. Patch was the same as Mark Adler provided to libxml2 maintainers at: http://osdir.com/ml/svn-commits-list/2010-01/msg05723.html PR: ports/144828 Approved by: mezz (freebsd-gnome@) --- textproc/libxml2/Makefile | 2 +- textproc/libxml2/files/patch-xmlIO.c | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 textproc/libxml2/files/patch-xmlIO.c diff --git a/textproc/libxml2/Makefile b/textproc/libxml2/Makefile index e80dfa2224e6..32b45e3ca7e9 100644 --- a/textproc/libxml2/Makefile +++ b/textproc/libxml2/Makefile @@ -12,7 +12,7 @@ PORTNAME= libxml2 PORTVERSION= 2.7.6 -PORTREVISION?= 1 +PORTREVISION?= 2 CATEGORIES?= textproc gnome MASTER_SITES= ftp://fr.rpmfind.net/pub/libxml/ \ ftp://gd.tuwien.ac.at/pub/libxml/ \ diff --git a/textproc/libxml2/files/patch-xmlIO.c b/textproc/libxml2/files/patch-xmlIO.c new file mode 100644 index 000000000000..6f765aefc9f9 --- /dev/null +++ b/textproc/libxml2/files/patch-xmlIO.c @@ -0,0 +1,20 @@ +--- ./xmlIO.c.orig 2009-09-24 08:32:00.000000000 -0700 ++++ ./xmlIO.c 2010-03-17 12:35:00.957293884 -0700 +@@ -2518,6 +2518,9 @@ + #ifdef HAVE_ZLIB_H + if ((xmlInputCallbackTable[i].opencallback == xmlGzfileOpen) && + (strcmp(URI, "-") != 0)) { ++#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1230 ++ ret->compressed = !gzdirect(context); ++#else + if (((z_stream *)context)->avail_in > 4) { + char *cptr, buff4[4]; + cptr = (char *) ((z_stream *)context)->next_in; +@@ -2529,6 +2532,7 @@ + gzrewind(context); + } + } ++#endif + } + #endif + }