From edd at debian.org  Sat Jun 21 19:04:28 2008
From: edd at debian.org (Dirk Eddelbuettel)
Date: Sat, 21 Jun 2008 12:04:28 -0500
Subject: [Rd] Minor configure bug in R 2.7.1-rc
Message-ID: <18525.13468.615927.404761@ron.nulle.part>


Updating the Debian package to the current 2.7.1 rc, I noticed that R decides
to use its own bzip2 sources.  Looking at configure, I see the test is
essentially a strcmp on '1.0.5' from the version-returning function:
 
   #ifdef HAVE_BZLIB_H
   #include <bzlib.h>
   #endif
   int main() {
      char *ver = BZ2_bzlibVersion();
      exit(strcmp(ver, "1.0.5") < 0);
   }

but unfortunately, bzip2 returns a different string that includes the date:

   edd at ron:~/src/debian/R/R-2.7.1.20080621> cat /tmp/bzver.c
   #include <bzlib.h>
   #include <string.h>
   int main() {
       const char *ver = BZ2_bzlibVersion();
       printf("[%s] strcmp: %d strncmp(5): %d\n", ver, strcmp(ver, "1.0.5"), strncmp(ver, "1.0.5", 5));
       return 0;
   }
   edd at ron:~/src/debian/R/R-2.7.1.20080621> gcc -Wall -O2 -o /tmp/bzver  /tmp/bzver.c -lbz2
   edd at ron:~/src/debian/R/R-2.7.1.20080621> /tmp/bzver
   [1.0.5, 10-Dec-2007] strcmp: 1 strncmp(5): 0

Switching to strnmp with a limit of 5 'fixes' the issue but it probably too
fragile to be generally recommended.  

Dirk   


-- 
Three out of two people have difficulties with fractions.



[Rd] Minor configure bug in R 2.7.1-rc
Dirk Eddelbuettel