We recently discovered that since R 3.3.0, on our CentOS 6 based
cluster, R gets built without TIFF support.  The last version where TIFF
support was built, was 3.2.5.

We have libtiff 3.9.4 installed:

$ rpm -q libtiff-devel
libtiff-devel-3.9.4-21.el6_8.x86_64

(Since CentOS 6 is so old, we have manually installed newer versions of
some dependencies: curl 7.46.0, zlib 1.2.8, bzip2 1.0.6, xz 5.2.2 and
pcre 8.38.)

We configure R like this:

BLAS=--with-blas='-mkl=parallel'
LAPACK=--with-lapack
./configure --prefix=$destdir "$BLAS" "$LAPACK" --enable-BLAS-shlib 
--enable-R-shlib

(and build with Intel compilers.)



The tiff-related output of the configure script in R 3.2.5 was

$ grep -i tiff _log_3.2.5
checking tiffio.h usability... yes
checking tiffio.h presence... yes
checking for tiffio.h... yes
checking for TIFFOpen in -ltiff... yes
  Additional capabilities:   PNG, JPEG, TIFF, NLS, cairo

Beginning with R 3.3.0, it was just

$ grep -i tiff _log_3.3.0
  Capabilities skipped:      TIFF, ICU

(This has been the output for all versions we've installed since 3.3.0.)



I looked at the configure script, and in 3.2.5, the tests for libtiff
starts like this (I've adjusted the indentation):

if test "${use_libtiff}" = yes; then
    for ac_header in tiffio.h
    do :
        ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" 
"ac_cv_header_tiffio_h" "$ac_includes_default"
        if test "x$ac_cv_header_tiffio_h" = xyes; then :
            cat >>confdefs.h <<_ACEOF
#define HAVE_TIFFIO_H 1
_ACEOF

From 3.3.0 on, it starts like this (with indentation adjusted):

if test "${use_libtiff}" = yes; then
    mod=
  ## pkg-config support was introduced in libtiff 4.0.0
  ## I guess the module name might change in future, so
  ## program defensively here.
    if "${PKGCONF}" --exists libtiff-4; then
        mod=libtiff-4
    fi
    if test -n "${mod}"; then
        save_CPPFLAGS=${CPPFLAGS}
        TIF_CPPFLAGS=`"${PKGCONF}" --cflags ${mod}`
        CPPFLAGS="${CPPFLAGS} ${TIF_CPPFLAGS}"
        for ac_header in tiffio.h
        do :
            ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" 
"ac_cv_header_tiffio_h" "$ac_includes_default"
            if test "x$ac_cv_header_tiffio_h" = xyes; then :
                cat >>confdefs.h <<_ACEOF
#define HAVE_TIFFIO_H 1
_ACEOF

And all the rest of the tests for libtiff are within the "if test -n
"${mod}"; then" branch.  As I read it, this means that if you don't have
libtiff >= 4.0.0 installed, the tests for libtiff will not be run, and
support for TIFF disabled.



On the other hand, Appendix A.2 "Useful libraries and programs" in
https://cran.r-project.org/doc/manuals/r-release/R-admin.html says

"The bitmapped graphics devices jpeg(), png() and tiff() need the
appropriate headers and libraries installed: jpeg (version 6b or later,
or libjpeg-turbo) or libpng (version 1.2.7 or later) and zlib or libtiff
(any recent version – 3.9.[4-7] and 4.0.[2-10] have been tested)
respectively."

which seems to imply that libtiff 3.9.4 should be fine.



Is there a bug in the configure script, is the "R Installation and
Administration" not up to date, or is it me that misunderstands
something here?

-- 
Regards,
Bjørn-Helge Mevik

Attachment: signature.asc
Description: PGP signature

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to