conda-forge / occt-feedstock

A conda-smithy repository for occt.
BSD 3-Clause "New" or "Revised" License
4 stars 21 forks source link

conda resolves occt dependency by installing version with lower build number #49

Closed cafhach closed 4 years ago

cafhach commented 4 years ago

Issue: I updated my conda env using an environment.yml containing dependency pythonocc-core=7.4 among various other dependencies and conda resolved the graph by downloading build h9121d39_3, which was probably compiled without flag HAVE_FREEIMAGE (-> doesn't work for my use case).

According to conda search, the downloaded version does not have the highest build number though. How is that possible? The conda docs (https://docs.conda.io/projects/conda-build/en/latest/resources/package-spec.html) tell me

A non-negative integer representing the build number of the package.

Unlike the build string, the build_number is inspected by conda. Conda uses it to sort packages that have otherwise identical names and versions to determine the latest one. This is important because new builds that contain bug fixes for the way a package is built may be added to a repository.

Bug in conda? Only when I force conda to use ha3df0f5_7, it downloads the highest build number.

occt 7.4.0 h9121d39_3
---------------------
file name   : occt-7.4.0-h9121d39_3.tar.bz2
name        : occt
version     : 7.4.0
build       : h9121d39_3
build number: 3
size        : 28.1 MB
license     : LGPL-2.1
subdir      : linux-64
url         : https://conda.anaconda.org/conda-forge/linux-64/occt-7.4.0-h9121d39_3.tar.bz2
md5         : e70faa46c7a625ba160fb3c1ddc5eee9
timestamp   : 2020-03-20 15:44:09 UTC
dependencies: 
  - fontconfig >=2.13.1,<3.0a0
  - freetype >=2.9.1,<3.0a0
  - libgcc-ng >=7.3.0
  - libstdcxx-ng >=7.3.0
  - tbb >=2020.1
  - xorg-libxt

occt 7.4.0 ha3df0f5_7
---------------------
file name   : occt-7.4.0-ha3df0f5_7.tar.bz2
name        : occt
version     : 7.4.0
build       : ha3df0f5_7
build number: 7
size        : 28.1 MB
license     : LGPL-2.1
subdir      : linux-64
url         : https://conda.anaconda.org/conda-forge/linux-64/occt-7.4.0-ha3df0f5_7.tar.bz2
md5         : d4b700e10ab20dcdff0a941c3c0d7fbd
timestamp   : 2020-08-04 07:34:29 UTC
dependencies: 
  - fontconfig >=2.13.1,<3.0a0
  - freeimage >=3.18.0,<3.19.0a0
  - freetype >=2.9.1,<3.0a0
  - libgcc-ng >=7.5.0
  - libstdcxx-ng >=7.5.0
  - tbb >=2020.1
  - vtk >=8.2.0,<8.2.1.0a0
  - xorg-libxt


Environment (conda list):

# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main    conda-forge
argon2-cffi               20.1.0           py37h7b6447c_1  
async_generator           1.10             py37h28b3542_0  
attrs                     20.2.0                     py_0  
backcall                  0.2.0                      py_0  
bleach                    3.2.1                      py_0  
ca-certificates           2020.7.22                     0  
certifi                   2020.6.20                py37_0  
cffi                      1.14.0           py37h2e261b9_0  
dbus                      1.13.16              hb2f20db_0  
decorator                 4.4.2                      py_0    conda-forge
defusedxml                0.6.0                      py_0    conda-forge
docopt                    0.6.2                    py37_0  
entrypoints               0.3                      py37_0  
expat                     2.2.9                he6710b0_2  
fontconfig                2.13.1            h1056068_1002    conda-forge
freetype                  2.10.2               h5ab3b9f_0  
glib                      2.63.1               h5a9c865_0  
gst-plugins-base          1.14.5               h0935bb2_2    conda-forge
gstreamer                 1.14.5               h36ae1b5_2    conda-forge
icu                       67.1                 he1b5a44_0    conda-forge
importlib-metadata        1.7.0                    py37_0  
importlib_metadata        1.7.0                         0    conda-forge
iniconfig                 1.0.1                      py_0  
ipykernel                 5.3.4            py37h5ca1d4c_0  
ipython                   7.18.1           py37h5ca1d4c_0  
ipython_genutils          0.2.0                    py37_0  
ipywidgets                7.5.1                      py_1  
jedi                      0.17.2                   py37_0  
jinja2                    2.11.2                     py_0  
jpeg                      9d                   h516909a_0    conda-forge
jsonschema                3.2.0                    py37_1  
jupyter                   1.0.0                    py37_7  
jupyter_client            6.1.7                      py_0    conda-forge
jupyter_console           6.2.0                      py_0    conda-forge
jupyter_core              4.6.3                    py37_0    conda-forge
jupyterlab_pygments       0.1.2                      py_0  
krb5                      1.17.1               h173b8e3_0  
ld_impl_linux-64          2.33.1               h53a641e_7    conda-forge
libclang                  10.0.1          default_hb85057a_2  
libedit                   3.1.20191231         h14c3975_1  
libevent                  2.1.10               hcdb4288_2    conda-forge
libffi                    3.2.1             hf484d3e_1007  
libgcc-ng                 9.1.0                hdf63c60_0  
libiconv                  1.15                 h63c8f33_5  
libllvm10                 10.0.1               hbcb73fb_5  
libpng                    1.6.37               hbc83047_0  
libpq                     12.3                 h5513abc_0    conda-forge
libsodium                 1.0.18               h7b6447c_0  
libstdcxx-ng              9.1.0                hdf63c60_0  
libuuid                   2.32.1            h14c3975_1000    conda-forge
libxcb                    1.14                 h7b6447c_0  
libxkbcommon              0.10.0               he1b5a44_0    conda-forge
libxml2                   2.9.10               h72b56ed_2    conda-forge
libxslt                   1.1.33               h572872d_1    conda-forge
lz4-c                     1.9.2                he6710b0_1  
markupsafe                1.1.1            py37h14c3975_1  
mistune                   0.8.4           py37h14c3975_1001  
more-itertools            8.5.0                      py_0    conda-forge
mysql-common              8.0.21                        2    conda-forge
mysql-libs                8.0.21               hf3661c5_2    conda-forge
nbclient                  0.5.0                      py_0    conda-forge
nbconvert                 6.0.7                    py37_0  
nbformat                  5.0.7                      py_0    conda-forge
ncurses                   6.2                  he6710b0_1  
nest-asyncio              1.4.1                      py_0    conda-forge
notebook                  6.1.4                    py37_0  
nspr                      4.22                 he6710b0_0  
nss                       3.46.1               hab99668_0  
numpy                     1.19.2                   pypi_0    pypi
occt                      7.4.0                h9121d39_3    conda-forge
omd                       1.0                       dev_0    
openssl                   1.1.1h               h7b6447c_0  
packaging                 20.4                       py_0  
pandoc                    2.10.1                        0  
pandocfilters             1.4.2                    py37_1  
parso                     0.7.0                      py_0  
pcre                      8.44                 he6710b0_0  
pexpect                   4.8.0                    py37_1  
pickleshare               0.7.5                 py37_1001  
pip                       20.2.3                   py37_0  
pluggy                    0.13.1                   py37_0  
prometheus_client         0.8.0                      py_0  
prompt-toolkit            3.0.7                      py_0    conda-forge
prompt_toolkit            3.0.7                         0    conda-forge
ptyprocess                0.6.0                    py37_0    conda-forge
py                        1.9.0                      py_0  
pycparser                 2.20                       py_2  
pygments                  2.7.1                      py_0    conda-forge
pyparsing                 2.4.7                      py_0  
pyqt                      5.12.3           py37h8685d9f_3    conda-forge
pyqt5-sip                 4.19.18                  pypi_0    pypi
pyqtchart                 5.12                     pypi_0    pypi
pyqtwebengine             5.12.1                   pypi_0    pypi
pyrsistent                0.17.3           py37h7b6447c_0  
pyside2                   5.13.2           py37hbee1fde_2    conda-forge
pytest                    6.1.0                    py37_0  
python                    3.7.7           hcf32534_0_cpython  
python-dateutil           2.8.1                      py_0    conda-forge
python_abi                3.7                     1_cp37m    conda-forge
pythonocc-core            7.4.0            py37h8e684b0_0    conda-forge
pyyaml                    5.3.1            py37h7b6447c_1  
pyzmq                     19.0.2           py37he6710b0_1  
qt                        5.12.6               h0c8506f_0    conda-forge
qtconsole                 4.7.7                      py_0  
qtpy                      1.9.0                      py_0    conda-forge
readline                  8.0                  h7b6447c_0  
send2trash                1.5.0                    py37_0  
setuptools                50.3.0           py37hb0f4dca_1  
six                       1.15.0                     py_0  
sqlite                    3.33.0               h62c20be_0  
tbb                       2020.3               hfd86e86_0  
terminado                 0.8.3                    py37_0    conda-forge
testpath                  0.4.4                      py_0    conda-forge
tk                        8.6.10               hbc83047_0  
toml                      0.10.1                     py_0  
tornado                   6.0.4            py37h7b6447c_1  
traitlets                 5.0.4                      py_0    conda-forge
wcwidth                   0.2.5                      py_0  
webencodings              0.5.1                    py37_1  
wheel                     0.35.1                     py_0  
widgetsnbextension        3.5.1                    py37_0    conda-forge
xorg-kbproto              1.0.7             h14c3975_1002    conda-forge
xorg-libice               1.0.10               h516909a_0    conda-forge
xorg-libsm                1.2.3             h84519dc_1000    conda-forge
xorg-libx11               1.6.12               h516909a_0    conda-forge
xorg-libxt                1.2.0                h516909a_0    conda-forge
xorg-xproto               7.0.31            h14c3975_1007    conda-forge
xz                        5.2.5                h7b6447c_0  
yaml                      0.2.5                h7b6447c_0  
zeromq                    4.3.2                he6710b0_3  
zipp                      3.3.0                      py_0    conda-forge
zlib                      1.2.11               h7b6447c_3  
zstd                      1.4.5                h9ceee32_0  


Details about conda and system ( conda info ):

``` active environment : /home/xxx/env active env location : /home/xxx/env shell level : 2 user config file : /home/xxx/.condarc populated config files : /home/xxx/.condarc conda version : 4.8.5 conda-build version : 3.20.0 python version : 3.7.3.final.0 virtual packages : __cuda=10.2 __glibc=2.27 base environment : /home/xxx/extapps/anaconda3 (writable) channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /home/xxx/extapps/anaconda3/pkgs /home/xxx/.conda/pkgs envs directories : /home/xxx/extapps/anaconda3/envs /home/xxx/.conda/envs platform : linux-64 user-agent : conda/4.8.5 requests/2.24.0 CPython/3.7.3 Linux/4.15.0-101-generic ubuntu/18.04.4 glibc/2.27 UID:GID : 206700:91189 netrc file : None offline mode : False ```
looooo commented 4 years ago

This might be related to the additional dependencies added in newer occt-builds. Maybe there is a dependency available in a newer version which is somehow preferred. Difficult to say.

looooo commented 4 years ago

@cafhach I guess the latest available occt-package is built against vtk 9: https://github.com/conda-forge/occt-feedstock/blob/master/.ci_support/migrations/vtk901.yaml

Why vtk8 is used for your environment I don't know, but if you look at the vtk9-migration you see some packages are still not migrated: https://conda-forge.org/status/#vtk901