conda-forge / r-tiff-feedstock

A conda-smithy repository for r-tiff.
BSD 3-Clause "New" or "Revised" License
0 stars 5 forks source link

Missing `libtiff` and `jpeg` dependencies #14

Open mfansler opened 1 year ago

mfansler commented 1 year ago

Solution to issue cannot be found in the documentation.

Issue

This package links against libtiff and libjpeg, but does not declare this in the metadata. The builds always work because r-base depends explicitly on libtiff and jpeg. However, this means the pinnings are not explicitly declared here, such that the recent rebuilds with libtiff=4.5 are incompatible with this package.

Minimal Example

name: foo
channels:
  - conda-forge
  - nodefaults
dependencies:
  - r-base=4.2
  - r-tiff
  - libtiff=4.5

On osx-64, we find:

(foo) $ R -e 'library(tiff)'

R version 4.2.2 (2022-10-31) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin13.4.0 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(tiff)
Error: package or namespace load failed for ‘tiff’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Users/mfansler/miniconda3/envs/foo/lib/R/library/tiff/libs/tiff.dylib':
  dlopen(/Users/mfansler/miniconda3/envs/foo/lib/R/library/tiff/libs/tiff.dylib, 6): Library not loaded: @rpath/libtiff.5.dylib
  Referenced from: /Users/mfansler/miniconda3/envs/foo/lib/R/library/tiff/libs/tiff.dylib
  Reason: image not found
Execution halted

Recommendation

  1. Recipe should be updated to explicitly declare dependencies.
  2. Existing builds should have metadata patched to add the dependencies. This may take some sleuthing to identify what they actually built against.

Installed packages

# packages in environment at /Users/mfansler/miniconda3/envs/foo:
#
# Name                    Version                   Build  Channel
_r-mutex                  1.0.1               anacondar_1  
bwidget                   1.9.14               h694c41f_1  
bzip2                     1.0.8                h0d85af4_4  
c-ares                    1.18.1               h0d85af4_0  
ca-certificates           2022.12.7            h033912b_0  
cairo                     1.16.0            h904041c_1014  
cctools_osx-64            973.0.1             hcc6d90d_11  
clang                     14.0.6               h694c41f_0  
clang-14                  14.0.6          default_h55ffa42_0  
clang_osx-64              14.0.6               h3113cd8_4  
clangxx                   14.0.6          default_h55ffa42_0  
clangxx_osx-64            14.0.6               h6f97653_4  
compiler-rt               14.0.6               h613da45_0  
compiler-rt_osx-64        14.0.6               hab78ec2_0  
curl                      7.87.0               h6df9250_0  
expat                     2.5.0                hf0c8a7f_0  
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0  
font-ttf-inconsolata      3.000                h77eed37_0  
font-ttf-source-code-pro  2.038                h77eed37_0  
font-ttf-ubuntu           0.83                 hab24e00_0  
fontconfig                2.14.1               h5bb23bf_0  
fonts-conda-ecosystem     1                             0  
fonts-conda-forge         1                             0  
freetype                  2.12.1               h3f81eb7_1  
fribidi                   1.0.10               hbcb3906_0  
gettext                   0.21.1               h8a4c099_0  
gfortran_impl_osx-64      11.3.0              h1f927f5_27  
gfortran_osx-64           11.3.0               h18f7dce_0  
gmp                       6.2.1                h2e338ed_0  
graphite2                 1.3.13            h2e338ed_1001  
gsl                       2.7                  h93259b0_0  
harfbuzz                  6.0.0                h08f8713_0  
icu                       70.1                 h96cf925_0  
isl                       0.25                 hb486fe8_0  
jpeg                      9e                   hac89ed1_2  
krb5                      1.20.1               h049b76e_0  
ld64_osx-64               609                 hfd63004_11  
lerc                      4.0.0                hb486fe8_0  
libblas                   3.9.0           16_osx64_openblas  
libcblas                  3.9.0           16_osx64_openblas  
libclang-cpp14            14.0.6          default_h55ffa42_0  
libcurl                   7.87.0               h6df9250_0  
libcxx                    14.0.6               hccf4f1f_0  
libdeflate                1.14                 hb7f2c08_0  
libedit                   3.1.20191231         h0678c8f_2  
libev                     4.33                 haf1e3a3_1  
libffi                    3.4.2                h0d85af4_5  
libgfortran               5.0.0           11_3_0_h97931a8_27  
libgfortran-devel_osx-64  11.3.0              h824d247_27  
libgfortran5              11.3.0              h082f757_27  
libglib                   2.74.1               h4c723e1_1  
libiconv                  1.17                 hac89ed1_0  
liblapack                 3.9.0           16_osx64_openblas  
libllvm14                 14.0.6               h5b596cc_1  
libnghttp2                1.47.0               h5aae05b_1  
libopenblas               0.3.21          openmp_h429af6e_3  
libpng                    1.6.39               ha978bb4_0  
libssh2                   1.10.0               h47af595_3  
libtiff                   4.5.0                h6268bbc_0  
libwebp-base              1.2.4                h775f41a_0  
libxml2                   2.10.3               hb9e07b5_0  
libzlib                   1.2.13               hfd90126_4  
llvm-openmp               15.0.6               h61d9ccf_0  
llvm-tools                14.0.6               h5b596cc_1  
make                      4.3                  h22f3db7_1  
mpc                       1.2.1                hbb51d92_0  
mpfr                      4.1.0                h0f52abe_1  
ncurses                   6.3                  h96cf925_1  
openssl                   3.0.7                hfd90126_1  
pango                     1.50.12              hbd9bf65_1  
pcre2                     10.40                h1c4e4bc_0  
pixman                    0.40.0               hbcb3906_0  
r-base                    4.2.2                h841e2fe_3  
r-tiff                    0.1_11            r42h815d134_1  
readline                  8.1.2                h3899abd_0  
sigtool                   0.1.3                h88f4db0_0  
tapi                      1100.0.11            h9ce4665_0  
tk                        8.6.12               h5dbffcc_0  
tktable                   2.10                 h49f0cf7_3  
xz                        5.2.6                h775f41a_0  
zlib                      1.2.13               hfd90126_4  
zstd                      1.5.2                hfa58983_4

Environment info

active environment : foo
    active env location : /Users/mfansler/miniconda3/envs/foo
            shell level : 2
       user config file : /Users/mfansler/.condarc
 populated config files : /Users/mfansler/.condarc
          conda version : 4.14.0
    conda-build version : 3.21.9
         python version : 3.9.15.final.0
       virtual packages : __osx=11.7=0
                          __unix=0=0
                          __archspec=1=x86_64
       base environment : /Users/mfansler/miniconda3  (writable)
      conda av data dir : /Users/mfansler/miniconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/osx-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/bioconda/osx-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://repo.anaconda.com/pkgs/main/osx-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/mfansler/miniconda3/pkgs
                          /Users/mfansler/.conda/pkgs
       envs directories : /Users/mfansler/miniconda3/envs
                          /Users/mfansler/.conda/envs
               platform : osx-64
             user-agent : conda/4.14.0 requests/2.28.1 CPython/3.9.15 Darwin/20.6.0 OSX/11.7
                UID:GID : 501:20
             netrc file : None
           offline mode : False
mfansler commented 1 year ago

Dumping some otool -L info for all the osx-64 builds to start the process of mapping the versions to pin:

Processing r-tiff=0.1_5=r3.3.2_0:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        @rpath/libtiff.5.dylib (compatibility version 8.0.0, current version 8.4.0)
        @rpath/libjpeg.9.dylib (compatibility version 12.0.0, current version 12.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.3.0, current version 3.3.2)
        @rpath/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)

Processing r-tiff=0.1_5=r3.4.1_0:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        @rpath/libtiff.5.dylib (compatibility version 8.0.0, current version 8.4.0)
        @rpath/libjpeg.9.dylib (compatibility version 12.0.0, current version 12.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.4.0, current version 3.4.1)
        @rpath/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)

Processing r-tiff=0.1_5=r341h470a237_1:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        @rpath/./libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        @rpath/libtiff.5.dylib (compatibility version 9.0.0, current version 9.0.0)
        @rpath/libjpeg.9.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.4.0, current version 3.4.1)
        @rpath/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)

Processing r-tiff=0.1_5=r341h470a237_2:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        @rpath/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        @rpath/libtiff.5.dylib (compatibility version 9.0.0, current version 9.0.0)
        @rpath/libjpeg.9.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.4.0, current version 3.4.1)
        @rpath/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)

Processing r-tiff=0.1_5=r351h1de35cc_1002:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 9.0.0, current version 9.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.5.0, current version 3.5.1)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_5=r351h470a237_2:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
        @rpath/libgfortran.3.dylib (compatibility version 4.0.0, current version 4.0.0)
        @rpath/libtiff.5.dylib (compatibility version 9.0.0, current version 9.0.0)
        @rpath/libjpeg.9.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.5.0, current version 3.5.1)
        @rpath/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
        @rpath/libiconv.2.dylib (compatibility version 9.0.0, current version 9.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1153.18.0)

Processing r-tiff=0.1_5=r35h01d97ff_1003:
        @rpath/R/library/tiff/libs/tiff.so (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 10.0.0, current version 10.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.5.0, current version 3.5.1)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_5=r36h01d97ff_1003:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 10.0.0, current version 10.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.6.0, current version 3.6.1)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_5=r36h0b31af3_1004:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.6.0, current version 3.6.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_5=r40h0b31af3_1004:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.0.0, current version 4.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_6=r36hc929b4f_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.6.0, current version 3.6.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_6=r40hc929b4f_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 11.0.0, current version 11.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.0.0, current version 4.0.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_7=r36h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 12.0.0, current version 12.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.6.0, current version 3.6.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_7=r40h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 12.0.0, current version 12.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.0.0, current version 4.0.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_8=r36h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 12.0.0, current version 12.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 3.6.0, current version 3.6.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_8=r40h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 12.0.0, current version 12.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.0.0, current version 4.0.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_8=r41h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.1.0, current version 4.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_10=r40h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.0.0, current version 4.0.5)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_10=r41h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.1.0, current version 4.1.1)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_11=r40h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.0.0, current version 4.0.5)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_11=r41h28b5c78_0:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 13.0.0, current version 13.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.1.0, current version 4.1.2)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_11=r41h815d134_1:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 14.0.0, current version 14.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.1.0, current version 4.1.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

Processing r-tiff=0.1_11=r42h815d134_1:
        @rpath/R/library/tiff/libs/tiff.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/libtiff.5.dylib (compatibility version 14.0.0, current version 14.0.0)
        @rpath/R/lib/libR.dylib (compatibility version 4.2.0, current version 4.2.1)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)