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.
This commit is contained in:
parent
7fd936735c
commit
162be154d2
@ -63,7 +63,7 @@ class R(Package):
|
||||
depends_on('ncurses')
|
||||
depends_on('icu4c')
|
||||
depends_on('glib')
|
||||
depends_on('zlib@:1.2.8')
|
||||
depends_on('zlib@1.2.5:')
|
||||
depends_on('bzip2')
|
||||
depends_on('libtiff')
|
||||
depends_on('jpeg')
|
||||
@ -82,6 +82,8 @@ class R(Package):
|
||||
depends_on('pcre')
|
||||
depends_on('jdk')
|
||||
|
||||
patch('zlib.patch', when='@:3.3.1')
|
||||
|
||||
@property
|
||||
def etcdir(self):
|
||||
return join_path(prefix, 'rlib', 'R', 'etc')
|
||||
|
29
var/spack/repos/builtin/packages/r/zlib.patch
Normal file
29
var/spack/repos/builtin/packages/r/zlib.patch
Normal file
@ -0,0 +1,29 @@
|
||||
*** 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
|
Loading…
Reference in New Issue
Block a user