Skip to content
Snippets Groups Projects
Commit 162be154 authored by George Hartzell's avatar George Hartzell Committed by becker33
Browse files

Fix configure's zlib version check (#2901)

* Fix configure's zlib version check

R wants a version of zlib that is 1.2.5 or newer.

The version checking code just does a lexicographic comparison
of the first 5 characters of the string, so it seesthat the latest
zlib version, 1.2.10, as 1.2.1 and fails.

This patch changes the comparison to use zlibs' hex ZLIB_VERNUM
so that it does not suffer from this problem.

A version of this patch is wending it's way through the R comunity
community and will/should be included in a future release.

I tested the patch with the current R, 3.3.1.

* Tighten zlib dependency version (>= 1.2.5)

* Convert patch to level=1 format.
parent 7fd93673
No related branches found
No related tags found
No related merge requests found
...@@ -63,7 +63,7 @@ class R(Package): ...@@ -63,7 +63,7 @@ class R(Package):
depends_on('ncurses') depends_on('ncurses')
depends_on('icu4c') depends_on('icu4c')
depends_on('glib') depends_on('glib')
depends_on('zlib@:1.2.8') depends_on('zlib@1.2.5:')
depends_on('bzip2') depends_on('bzip2')
depends_on('libtiff') depends_on('libtiff')
depends_on('jpeg') depends_on('jpeg')
...@@ -82,6 +82,8 @@ class R(Package): ...@@ -82,6 +82,8 @@ class R(Package):
depends_on('pcre') depends_on('pcre')
depends_on('jdk') depends_on('jdk')
patch('zlib.patch', when='@:3.3.1')
@property @property
def etcdir(self): def etcdir(self):
return join_path(prefix, 'rlib', 'R', 'etc') return join_path(prefix, 'rlib', 'R', 'etc')
......
*** a/configure 2017-01-21 21:48:35.077000000 +0000
--- b/configure 2017-01-21 21:50:50.700000000 +0000
***************
*** 35496,35505 ****
#include <string.h>
#include <zlib.h>
int main() {
! #ifdef ZLIB_VERSION
! /* Work around Debian bug: it uses 1.2.3.4 even though there was no such
! version on the master site zlib.net */
! exit(strncmp(ZLIB_VERSION, "1.2.5", 5) < 0);
#else
exit(1);
#endif
--- 35496,35509 ----
#include <string.h>
#include <zlib.h>
int main() {
! /* Checking ZLIB_VERNUM trick learned here:
! * https://github.com/TransitApp/protobuf/blob/master/configure.ac#L95
! */
! #ifdef ZLIB_VERNUM
! if (ZLIB_VERNUM < 0x1250) {
! exit(1);
! }
! exit(0);
#else
exit(1);
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment