Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Environment creation fails in mamba and micromamba if it contains the _x86_64-microarch-level package in Linux #3222

Closed
3 tasks done
traversaro opened this issue Mar 7, 2024 · 8 comments · Fixed by #3433

Comments

@traversaro
Copy link
Member

Troubleshooting docs

  • My problem is not solved in the Troubleshooting docs

Anaconda default channels

  • I do NOT use the Anaconda default channels (pkgs/* etc.)

How did you install Mamba?

Mambaforge or latest Miniforge

Search tried in issue tracker

archspec

Latest version of Mamba

  • My problem is not solved with the latest version

Tried in Conda?

I do not have this problem with Conda, just with Mamba

Describe your issue

If I try to run mamba -v create -n test _x86_64-microarch-level or micromamba -v create -n test _x86_64-microarch-level, the environment creation fails. If I try conda create -n test _x86_64-microarch-level or install the _x86_64-microarch-level package in pixi, the installation in successful.

Related to conda-forge/staged-recipes#24306 and conda-forge/conda-forge.github.io#2091 .

mamba info / micromamba info

(base) traversaro@IITBMP014LW012:~$ mamba info

          mamba version : 1.5.7
     active environment : base
    active env location : /home/traversaro/miniforge3
            shell level : 1
       user config file : /home/traversaro/.condarc
 populated config files : /home/traversaro/miniforge3/.condarc
                          /home/traversaro/.condarc
          conda version : 24.1.2
    conda-build version : 24.1.2
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.1.2=0
                          __cuda=12.3=0
                          __glibc=2.35=0
                          __linux=5.15.146.1=0
                          __unix=0=0
       base environment : /home/traversaro/miniforge3  (writable)
      conda av data dir : /home/traversaro/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/traversaro/miniforge3/pkgs
                          /home/traversaro/.conda/pkgs
       envs directories : /home/traversaro/miniforge3/envs
                          /home/traversaro/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.10.13 Linux/5.15.146.1-microsoft-standard-WSL2 ubuntu/22.04.3 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.7
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False



(base) traversaro@IITBMP014LW012:~$ micromamba info

       libmamba version : 1.5.7
     micromamba version : 1.5.7
           curl version : libcurl/8.5.0 OpenSSL/3.2.1 zlib/1.2.13 zstd/1.5.5 libssh2/1.11.0 nghttp2/1.58.0
     libarchive version : libarchive 3.7.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.5
       envs directories : /home/traversaro/micromamba/envs
          package cache : /home/traversaro/micromamba/pkgs
                          /home/traversaro/.mamba/pkgs
            environment : /home/traversaro/miniforge3 (active)
           env location : /home/traversaro/miniforge3
      user config files : /home/traversaro/.mambarc
 populated config files : /home/traversaro/miniforge3/.condarc
                          /home/traversaro/.condarc
       virtual packages : __unix=0=0
                          __linux=5.15.146=0
                          __glibc=2.35=0
                          __archspec=1=x86_64-v3
                          __cuda=12.3=0
               channels : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
       base environment : /home/traversaro/micromamba
               platform : linux-64
(base) traversaro@IITBMP014LW012:~$ conda info

     active environment : base
    active env location : /home/traversaro/miniforge3
            shell level : 1
       user config file : /home/traversaro/.condarc
 populated config files : /home/traversaro/miniforge3/.condarc
                          /home/traversaro/.condarc
          conda version : 24.1.2
    conda-build version : 24.1.2
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.1.2=0
                          __cuda=12.3=0
                          __glibc=2.35=0
                          __linux=5.15.146.1=0
                          __unix=0=0
       base environment : /home/traversaro/miniforge3  (writable)
      conda av data dir : /home/traversaro/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/traversaro/miniforge3/pkgs
                          /home/traversaro/.conda/pkgs
       envs directories : /home/traversaro/miniforge3/envs
                          /home/traversaro/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.10.13 Linux/5.15.146.1-microsoft-standard-WSL2 ubuntu/22.04.3 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.7
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Logs

traversaro@IITBMP014LW012:~$ mamba -v create -n test _x86_64-microarch-level
WARNING: A conda environment already exists at '/home/traversaro/miniforge3/envs/test'
Remove existing environment (y/[n])? y


Looking for: ['_x86_64-microarch-level']

warning  libmamba Cache file "/home/traversaro/miniforge3/pkgs/cache/497deca9.json" was modified by another program
warning  libmamba Cache file "/home/traversaro/miniforge3/pkgs/cache/09cdf8bf.json" was modified by another program
conda-forge/noarch                                  13.8MB @   2.5MB/s  5.6s
conda-forge/linux-64                                32.9MB @   3.1MB/s 10.8s
Could not solve for environment specs
The following packages are incompatible
└─ _x86_64-microarch-level is not installable because there are no viable options
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 core2, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 k10, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 nocona, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 x86_64, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 bulldozer, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 ivybridge, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 nehalem, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 piledriver, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 sandybridge, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 steamroller, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 westmere, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 x86_64_v2, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 broadwell, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 cannonlake, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 excavator, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 haswell, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 mic_knl, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 skylake, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 x86_64_v3, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 zen, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 zen2, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 zen3, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 cascadelake, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 icelake, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 skylake_avx512, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 x86_64_v4, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 zen4, which is missing on the system;
   └─ _x86_64-microarch-level 4 would require
      └─ __archspec 1 sapphirerapids, which is missing on the system.
traversaro@IITBMP014LW012:~$ micromamba -v create -n test _x86_64-microarch-level
micromamba: command not found
traversaro@IITBMP014LW012:~$ mamba activaet base
usage: mamba [-h] [-v] [--no-plugins] [-V] COMMAND ...
mamba: error: argument COMMAND: invalid choice: 'activaet' (choose from 'activate', 'deactivate', 'clean', 'compare', 'config', 'create', 'env', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'build', 'convert', 'debug', 'develop', 'doctor', 'index', 'inspect', 'metapackage', 'render', 'repoquery', 'skeleton', 'server', 'pack')
traversaro@IITBMP014LW012:~$ mamba activate base
(base) traversaro@IITBMP014LW012:~$ micromamba -v create -n test _x86_64-microarch-level
warning  libmamba 'root_prefix' set with default value: /home/traversaro/micromamba
info     libmamba You have not set the 'root_prefix' environment variable.
    To permanently modify the root prefix location, either:
    - set the 'MAMBA_ROOT_PREFIX' environment variable
    - use the '-r,--root-prefix' CLI option
    - use 'micromamba shell init ...' to initialize your shell
        (then restart or source the contents of the shell init script)
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Searching index cache file for repo 'https://conda.anaconda.org/conda-forge/linux-64/repodata.json'
conda-forge/linux-64                                        Using cache
info     libmamba Searching index cache file for repo 'https://conda.anaconda.org/conda-forge/noarch/repodata.json'
conda-forge/noarch                                          Using cache
info     libmamba All targets to download are cached
info     libmamba All targets to download are cached
info     libmamba Reading cache files '/home/traversaro/micromamba/pkgs/cache/497deca9.solv.*' for repo index 'conda-forge/linux-64'
info     libmamba Attempting to read libsolv solv file "/home/traversaro/micromamba/pkgs/cache/497deca9.solv" for repo conda-forge/linux-64
info     libmamba Expecting solv metadata : {"etag":"\"e0954d7fee16c27df57454083ba4e0d1\"","mod":"Thu, 07 Mar 2024 22:19:21 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/linux-64"}
info     libmamba Loaded solv metadata : {"etag":"\"e0954d7fee16c27df57454083ba4e0d1\"","mod":"Thu, 07 Mar 2024 22:19:21 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/linux-64"}
info     libmamba Metadata from solv are valid, loading successful
info     libmamba Reading cache files '/home/traversaro/micromamba/pkgs/cache/09cdf8bf.solv.*' for repo index 'conda-forge/noarch'
info     libmamba Attempting to read libsolv solv file "/home/traversaro/micromamba/pkgs/cache/09cdf8bf.solv" for repo conda-forge/noarch
info     libmamba Expecting solv metadata : {"etag":"\"38e6f056bdf4240ef53d986e2c96d07d\"","mod":"Thu, 07 Mar 2024 22:41:44 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/noarch"}
info     libmamba Loaded solv metadata : {"etag":"\"38e6f056bdf4240ef53d986e2c96d07d\"","mod":"Thu, 07 Mar 2024 22:41:44 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/noarch"}
info     libmamba Metadata from solv are valid, loading successful
info     libmamba Adding package record to repo __archspec
info     libmamba Adding package record to repo __cuda
info     libmamba Adding package record to repo __glibc
info     libmamba Adding package record to repo __linux
info     libmamba Adding package record to repo __unix
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Adding job: _x86_64-microarch-level
info     libmamba Problem count: 1
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 zen4
info     libmamba Parsing MatchSpec __archspec 1 zen4
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 sapphirerapids
info     libmamba Parsing MatchSpec __archspec 1 sapphirerapids
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 zen4
info     libmamba Parsing MatchSpec __archspec 1 zen4
error    libmamba Could not solve for environment specs
    The following packages are incompatible
    └─ _x86_64-microarch-level is not installable because there are no viable options
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 core2, which is missing on the system;
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 k10, which is missing on the system;
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 nocona, which is missing on the system;
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 x86_64, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 bulldozer, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 ivybridge, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 nehalem, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 piledriver, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 sandybridge, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 steamroller, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 westmere, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 x86_64_v2, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 broadwell, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 cannonlake, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 excavator, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 haswell, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 mic_knl, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 skylake, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 x86_64_v3, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 zen, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 zen2, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 zen3, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 cascadelake, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 icelake, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 skylake_avx512, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 x86_64_v4, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 zen4, which is missing on the system;
       └─ _x86_64-microarch-level 4 would require
          └─ __archspec 1 sapphirerapids, which is missing on the system.
critical libmamba Could not solve for environment specs
(base) traversaro@IITBMP014LW012:~$ conda create -n test _x86_64-microarch-level
Channels:
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/traversaro/miniforge3/envs/test

  added / updated specs:
    - _x86_64-microarch-level


The following NEW packages will be INSTALLED:

  _x86_64-microarch~ conda-forge/noarch::_x86_64-microarch-level-3-1_skylake


Proceed ([y]/n)? y


Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

environment.yml

name: test
channels: 
  - conda-forge
dependencies:
  - _x86_64-microarch-level

~/.condarc

(base) traversaro@IITBMP014LW012:~$ cat ~/.condarc
channels:
  - conda-forge
auto_activate_base: false
@traversaro
Copy link
Member Author

I noticed that mamba info and conda info report as __archspec virtual package available __archspec=1=skylake, while micromamba reports __archspec=1=x86_64-v3, that perhaps could be the source behind the error. Probably this can be handled on the https://github.com/conda-forge/microarch-level-feedstock side, but I am not sure what is the best way forward on this.

@hmaarrfk
Copy link
Contributor

I've found that my environments that require a __cuda package seem to fail. For example, I created conda-forge/staged-recipes#26116 but the variant that is created with __cuda fails to solve for new environments.

mamba create --name t cupyifcudaavailable=*=cuda_* python=3.10

will fail with

Could not solve for environment specs
The following package could not be installed
└─ cupyifcudaavailable * cuda_* is not installable because it requires
   └─ __cuda, which is missing on the system.

in fact, even after activating the environment, mamba will not recognize that one could "update" to the 100s level package to install .

conda with libmamba-solver seems to find the correct package.

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Apr 21, 2024

Sorry for the noise on your issue. I think the problem with my issue is that mamba uses nvidia-smi to detect the cuda version:

std::vector<std::string> args = { "nvidia-smi", "--query", "-u", "-x" };

whereas conda uses heuristics based on typical installation paths:
https://github.com/anaconda/conda/blob/0dbf85e0546e0b0dc060c8265ec936591ccbe980/conda/common/cuda.py#L5

I was able to install nvidia-smi to resolve my issue with the __cuda virtual package.

I suspect there are other quirks with how virtual packages are detected for bleeding edge features.

Maybe conda + libmamba is enough to help you!

So I tracked it down to a change between mamba version 1.4.5 and 1.4.6

On 1.4.5

base environment
$ mamba list
# packages in environment at /home/mark/miniforge3:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
anaconda-client           1.12.3             pyhd8ed1ab_0    conda-forge
anaconda-project          0.11.1             pyhd8ed1ab_0    conda-forge
anyio                     3.7.1              pyhd8ed1ab_0    conda-forge
archspec                  0.2.3              pyhd8ed1ab_0    conda-forge
attrs                     23.2.0             pyh71513ae_0    conda-forge
backports                 1.0                pyhd8ed1ab_3    conda-forge
backports.functools_lru_cache 2.0.0              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.12.3             pyha770c72_0    conda-forge
blinker                   1.7.0              pyhd8ed1ab_0    conda-forge
boltons                   24.0.0             pyhd8ed1ab_0    conda-forge
boolean.py                4.0                pyhd8ed1ab_0    conda-forge
brotli-python             1.1.0           py310hc6cd4ac_1    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
c-ares                    1.28.1               hd590300_0    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py310h2fee648_0    conda-forge
chardet                   5.2.0           py310hff52083_1    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
cirun                     0.30               pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
clyent                    1.2.2              pyhd8ed1ab_2    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
conda                     23.1.0          py310hff52083_0    conda-forge
conda-build               3.24.0          py310hff52083_1    conda-forge
conda-forge-pinning       2024.04.21.17.21.54      hd8ed1ab_0    conda-forge
conda-index               0.4.0              pyhd8ed1ab_0    conda-forge
conda-libmamba-solver     23.1.0             pyhd8ed1ab_0    conda-forge
conda-pack                0.7.1              pyhd8ed1ab_0    conda-forge
conda-package-handling    2.2.0              pyh38be061_0    conda-forge
conda-package-streaming   0.9.0              pyhd8ed1ab_0    conda-forge
conda-smithy              3.34.1             pyhd8ed1ab_0    conda-forge
cryptography              42.0.5          py310h75e40e8_0    conda-forge
curl                      8.7.1                hca28451_0    conda-forge
dataclasses               0.8                pyhc8e2a94_3    conda-forge
dbus                      1.13.6               h5008d03_3    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
deprecated                1.2.14             pyh1a96a4e_0    conda-forge
distlib                   0.3.8              pyhd8ed1ab_0    conda-forge
distro                    1.9.0              pyhd8ed1ab_0    conda-forge
editables                 0.5                pyhd8ed1ab_0    conda-forge
exceptiongroup            1.2.0              pyhd8ed1ab_2    conda-forge
expat                     2.6.2                h59595ed_0    conda-forge
filelock                  3.13.4             pyhd8ed1ab_0    conda-forge
fmt                       9.1.0                h924138e_0    conda-forge
freetype                  2.12.1               h267a509_2    conda-forge
gettext                   0.22.5               h59595ed_2    conda-forge
gettext-tools             0.22.5               h59595ed_2    conda-forge
git                       2.44.0          pl5321h709897a_0    conda-forge
gitdb                     4.0.11             pyhd8ed1ab_0    conda-forge
gitpython                 3.1.43             pyhd8ed1ab_0    conda-forge
glob2                     0.7                        py_0    conda-forge
gmp                       6.3.0                h59595ed_1    conda-forge
h11                       0.14.0             pyhd8ed1ab_0    conda-forge
h2                        4.1.0              pyhd8ed1ab_0    conda-forge
hatch                     1.9.4              pyhd8ed1ab_0    conda-forge
hatchling                 1.21.1             pyhd8ed1ab_0    conda-forge
hpack                     4.0.0              pyh9f0ad1d_0    conda-forge
httpcore                  1.0.5              pyhd8ed1ab_0    conda-forge
httpx                     0.27.0             pyhd8ed1ab_0    conda-forge
hyperframe                6.0.1              pyhd8ed1ab_0    conda-forge
hyperlink                 21.0.0             pyhd3deb0d_0    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.7                pyhd8ed1ab_0    conda-forge
importlib-metadata        7.1.0              pyha770c72_0    conda-forge
importlib_metadata        7.1.0                hd8ed1ab_0    conda-forge
importlib_resources       6.4.0              pyhd8ed1ab_0    conda-forge
isodate                   0.6.1              pyhd8ed1ab_0    conda-forge
jaraco.classes            3.4.0              pyhd8ed1ab_0    conda-forge
jaraco.context            4.3.0              pyhd8ed1ab_0    conda-forge
jaraco.functools          4.0.0              pyhd8ed1ab_0    conda-forge
jeepney                   0.8.0              pyhd8ed1ab_0    conda-forge
jinja2                    3.1.3              pyhd8ed1ab_0    conda-forge
joblib                    1.4.0              pyhd8ed1ab_0    conda-forge
json5                     0.9.25             pyhd8ed1ab_0    conda-forge
jsonpatch                 1.33               pyhd8ed1ab_0    conda-forge
jsonpointer               2.4             py310hff52083_3    conda-forge
jsonschema                4.21.1             pyhd8ed1ab_0    conda-forge
jsonschema-specifications 2023.12.1          pyhd8ed1ab_0    conda-forge
jupyter_core              5.7.2           py310hff52083_0    conda-forge
keyring                   25.1.0             pyha804496_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.21.2               h659d440_0    conda-forge
lcms2                     2.16                 hb7c19ff_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libarchive                3.6.2                h039dbb9_1    conda-forge
libasprintf               0.22.5               h661eb56_2    conda-forge
libasprintf-devel         0.22.5               h661eb56_2    conda-forge
libcurl                   8.7.1                hca28451_0    conda-forge
libdeflate                1.20                 hd590300_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 hd590300_2    conda-forge
libexpat                  2.6.2                h59595ed_0    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgettextpo              0.22.5               h59595ed_2    conda-forge
libgettextpo-devel        0.22.5               h59595ed_2    conda-forge
libglib                   2.80.0               hf2295e7_6    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libjpeg-turbo             3.0.0                hd590300_1    conda-forge
liblief                   0.12.3               h27087fc_0    conda-forge
libmamba                  1.4.5                h658169a_0    conda-forge
libmambapy                1.4.5           py310h8aae740_0    conda-forge
libnghttp2                1.58.0               h47da74e_1    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libpng                    1.6.43               h2797004_0    conda-forge
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libsolv                   0.7.28               hfc55251_2    conda-forge
libsqlite                 3.45.3               h2797004_0    conda-forge
libssh2                   1.11.0               h0841786_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libtiff                   4.6.0                h1dd3fc0_3    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libwebp-base              1.4.0                hd590300_0    conda-forge
libxcb                    1.15                 h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.12.6               h232c23b_2    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
license-expression        30.1.1             pyhd8ed1ab_0    conda-forge
lz4-c                     1.9.4                hcb278e6_0    conda-forge
lzo                       2.10              hd590300_1001    conda-forge
mamba                     1.4.5           py310h51d5547_0    conda-forge
markdown-it-py            3.0.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py310h2372a71_0    conda-forge
mdurl                     0.1.2              pyhd8ed1ab_0    conda-forge
menuinst                  2.0.2           py310hff52083_0    conda-forge
more-itertools            10.2.0             pyhd8ed1ab_0    conda-forge
msrest                    0.6.21             pyh44b312d_0    conda-forge
nbformat                  5.10.4             pyhd8ed1ab_0    conda-forge
ncurses                   6.4.20240210         h59595ed_0    conda-forge
oauthlib                  3.2.2              pyhd8ed1ab_0    conda-forge
openjpeg                  2.5.2                h488ebb8_0    conda-forge
openssl                   3.2.1                hd590300_1    conda-forge
packaging                 24.0               pyhd8ed1ab_0    conda-forge
patch                     2.7.6             h7f98852_1002    conda-forge
patchelf                  0.18.0               h59595ed_1    conda-forge
pathspec                  0.12.1             pyhd8ed1ab_0    conda-forge
pcre2                     10.43                hcad00b1_0    conda-forge
perl                      5.32.1          7_hd590300_perl5    conda-forge
pexpect                   4.9.0              pyhd8ed1ab_0    conda-forge
pillow                    10.3.0          py310hf73ecf8_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
pkginfo                   1.10.0             pyhd8ed1ab_0    conda-forge
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_1    conda-forge
platformdirs              4.2.0              pyhd8ed1ab_0    conda-forge
pluggy                    1.5.0              pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.42             pyha770c72_0    conda-forge
prompt_toolkit            3.0.42               hd8ed1ab_0    conda-forge
psutil                    5.9.8           py310h2372a71_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
py-lief                   0.12.3          py310hd8f1fbe_0    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycosat                   0.6.6           py310h2372a71_0    conda-forge
pycparser                 2.22               pyhd8ed1ab_0    conda-forge
pycryptodome              3.20.0          py310hb0f0acc_0    conda-forge
pygithub                  2.3.0              pyhd8ed1ab_0    conda-forge
pygments                  2.17.2             pyhd8ed1ab_0    conda-forge
pyjwt                     2.8.0              pyhd8ed1ab_1    conda-forge
pynacl                    1.5.0           py310h2372a71_3    conda-forge
pyopenssl                 24.0.0             pyhd8ed1ab_0    conda-forge
pyperclip                 1.8.2              pyhd8ed1ab_2    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.10.14         hd12c33a_0_cpython    conda-forge
python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge
python-fastjsonschema     2.19.1             pyhd8ed1ab_0    conda-forge
python-libarchive-c       5.1             py310hff52083_0    conda-forge
python_abi                3.10                    4_cp310    conda-forge
pytz                      2024.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.1           py310h2372a71_1    conda-forge
readline                  8.2                  h8228510_1    conda-forge
referencing               0.34.0             pyhd8ed1ab_0    conda-forge
reproc                    14.2.4.post0         hd590300_1    conda-forge
reproc-cpp                14.2.4.post0         h59595ed_1    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
requests-oauthlib         2.0.0              pyhd8ed1ab_0    conda-forge
requests-toolbelt         1.0.0              pyhd8ed1ab_0    conda-forge
rich                      13.7.1             pyhd8ed1ab_0    conda-forge
ripgrep                   14.1.0               he8a937b_0    conda-forge
rpds-py                   0.18.0          py310hcb5633a_0    conda-forge
ruamel.yaml               0.17.40         py310h2372a71_0    conda-forge
ruamel.yaml.clib          0.2.8           py310h2372a71_0    conda-forge
ruamel_yaml               0.15.80         py310h2372a71_1009    conda-forge
scrypt                    0.8.24          py310hd2d1899_0    conda-forge
secretstorage             3.3.3           py310hff52083_2    conda-forge
setuptools                69.5.1             pyhd8ed1ab_0    conda-forge
shellingham               1.5.4              pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
smmap                     5.0.0              pyhd8ed1ab_0    conda-forge
sniffio                   1.3.1              pyhd8ed1ab_0    conda-forge
soupsieve                 2.5                pyhd8ed1ab_1    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
tomli-w                   1.0.0              pyhd8ed1ab_0    conda-forge
tomlkit                   0.12.4             pyha770c72_0    conda-forge
toolz                     0.12.1             pyhd8ed1ab_0    conda-forge
tornado                   6.4             py310h2372a71_0    conda-forge
tqdm                      4.66.2             pyhd8ed1ab_0    conda-forge
traitlets                 5.14.3             pyhd8ed1ab_0    conda-forge
trove-classifiers         2024.4.10          pyhd8ed1ab_0    conda-forge
truststore                0.8.0              pyhd8ed1ab_0    conda-forge
typer                     0.12.3             pyhd8ed1ab_0    conda-forge
typer-slim                0.12.3             pyhd8ed1ab_0    conda-forge
typer-slim-standard       0.12.3               hd8ed1ab_0    conda-forge
typing-extensions         4.11.0               hd8ed1ab_0    conda-forge
typing_extensions         4.11.0             pyha770c72_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
urllib3                   2.2.1              pyhd8ed1ab_0    conda-forge
userpath                  1.7.0              pyhd8ed1ab_0    conda-forge
virtualenv                20.25.3            pyhd8ed1ab_0    conda-forge
vsts-python-api           0.1.25             pyhd8ed1ab_1    conda-forge
watchgod                  0.8.2              pyhd8ed1ab_0    conda-forge
wcwidth                   0.2.13             pyhd8ed1ab_0    conda-forge
wheel                     0.43.0             pyhd8ed1ab_1    conda-forge
wrapt                     1.16.0          py310h2372a71_0    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
yaml-cpp                  0.7.0                h59595ed_3    conda-forge
zipp                      3.17.0             pyhd8ed1ab_0    conda-forge
zstandard                 0.22.0          py310h1275a96_0    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge

Environment resolution with the command

mamba create --name t __cuda

succeeds with:

conda-forge/noarch                                  14.4MB @  10.4MB/s  1.5s
Transaction

  Prefix: /home/mark/miniforge3/envs/t

  All requested packages already installed

Preparing transaction: done
Verifying transaction: done
Executing transaction: done

To activate this environment, use

     $ mamba activate t

To deactivate an active environment, use

     $ mamba deactivate

Then updating mamba to 1.4.6 and running the same command:

$ mamba install "mamba=1.4.6" --yes && mamba --version && mamba create --name t_1.4.6 __cuda

Looking for: ['mamba=1.4.6']

conda-forge/noarch                                  16.6MB @   6.1MB/s  2.8s
conda-forge/linux-64                                39.7MB @   6.2MB/s  7.9s

Pinned packages:
  - python 3.10.*


Transaction

  Prefix: /home/mark/miniforge3

  Updating specs:

   - mamba=1.4.6
   - ca-certificates
   - certifi
   - openssl


  Package       Version  Build            Channel           Size
──────────────────────────────────────────────────────────────────
  Upgrade:
──────────────────────────────────────────────────────────────────

  - libmamba      1.4.5  h658169a_0       conda-forge
  + libmamba      1.4.6  h658169a_0       conda-forge     Cached
  - libmambapy    1.4.5  py310h8aae740_0  conda-forge
  + libmambapy    1.4.6  py310h8aae740_0  conda-forge     Cached
  - mamba         1.4.5  py310h51d5547_0  conda-forge
  + mamba         1.4.6  py310h51d5547_0  conda-forge     Cached

  Summary:

  Upgrade: 3 packages

  Total download: 0 B

──────────────────────────────────────────────────────────────────



Downloading and Extracting Packages

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
mamba 1.4.6
conda 23.1.0

Looking for: ['__cuda']

conda-forge/noarch                                  16.6MB @   6.8MB/s  2.6s
conda-forge/linux-64                                39.7MB @   5.4MB/s  8.9s
Could not solve for environment specs
The following package could not be installed
└─ __cuda is missing on the system.

@traversaro
Copy link
Member Author

Sorry @hmaarrfk, I had missed your comment. Yes, the problem are similar but different, they boil down to virtual packages to be implemented in different ways in conda and mamba (and also rattler/pixi), so these issues emerge. Indeed the long term solution is for users to use either conda or rattler/pixi, so we reduce the number of different virtual packages implementations from 3 to 2, but users tend to me lazy in change tools (especially when muscle memory of commands to type is involved).

The main problem here is that in the context of conda-forge/conda-forge.github.io#1261 if you try to add archspec support as documented (as of May 2024) in https://conda-forge.org/docs/maintainer/knowledge_base/#microarch, this will result in packages that silently can't be installed at all with mamba, that may be an issue difficult to debug. Probably a possible strategy is to remove the x86_64-microarch-level dependency in unix and x86_64 and microarch_level == 1 builds, so that the downside in mamba will remain that you can't install AVX2 or higher builds, that may be more acceptable as downside.

@traversaro
Copy link
Member Author

I just tested with mamba 2 and the problem is still present. As more packages are added to conda-forge that use archspec-optimized builds as described in https://conda-forge.org/docs/maintainer/knowledge_base/#microarch, all such builds (even the one with microarch_level==1) can't be installed with mamba, resulting in mamba silently installing old version of the packages that are not archspec-optimized.

For example, trying to install the latest version of the graph-tool package works fine on conda, but fails on mamba.

conda:

traversaro@IITBMP014LW012:~$ conda create -n graph-tool graph-tool==2.77.*
Channels:
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
    current version: 24.3.0
    latest version: 24.7.1

Please update conda by running

    $ conda update -n base -c conda-forge conda



## Package Plan ##

  environment location: /home/traversaro/miniforge3/envs/graph-tool

  added / updated specs:
    - graph-tool=2.77


The following packages will be downloaded:
[...]

mamba:

traversaro@IITBMP014LW012:~$ mamba create -n graph-tool graph-tool==2.77.*

Looking for: ['graph-tool=2.77']

warning  libmamba Could not parse mod/etag header
warning  libmamba Could not parse mod/etag header
conda-forge/noarch                                  16.0MB @ 638.8kB/s 25.0s
conda-forge/linux-64                                36.9MB @   1.1MB/s 32.2s
Could not solve for environment specs
The following packages are incompatible
└─ graph-tool 2.77**  is not installable because there are no viable options
   ├─ graph-tool 2.77 would require
   │  └─ graph-tool-base [2.77 py310h9e900f9_300|2.77 py311haefbb00_300|2.77 py312h24de238_300|2.77 py38h8c1b0d4_300|2.77 py39hf24311c_300], which requires
   │     └─ _x86_64-microarch-level >=3  but there are no viable options
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 broadwell, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 cannonlake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 excavator, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 haswell, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 mic_knl, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 skylake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 x86_64_v3, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 zen, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 zen2, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 zen3, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 cascadelake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 icelake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 skylake_avx512, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 x86_64_v4, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 zen4, which is missing on the system;
   │        └─ _x86_64-microarch-level 4 would require
   │           └─ __archspec 1 sapphirerapids, which is missing on the system;
   ├─ graph-tool 2.77 would require
   │  └─ graph-tool-base [2.77 py310hc5c3ccb_100|2.77 py311h0951e8c_100|2.77 py312h7379947_100|2.77 py38hee84d54_100|2.77 py39h45f8f1b_100], which requires
   │     └─ _x86_64-microarch-level >=1  but there are no viable options
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 core2, which is missing on the system;
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 k10, which is missing on the system;
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 nocona, which is missing on the system;
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 x86_64, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 bulldozer, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 ivybridge, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 nehalem, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 piledriver, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 sandybridge, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 steamroller, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 westmere, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 x86_64_v2, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        └─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   └─ graph-tool 2.77 would require
      └─ graph-tool-base [2.77 py310h6300a93_400|2.77 py311hf115aa5_400|2.77 py312h71012fb_400|2.77 py38h33ea7c3_400|2.77 py39heddc103_400], which requires
         └─ _x86_64-microarch-level 4.* , which cannot be installed (as previously explained).

@traversaro
Copy link
Member Author

By looking a bit more into this, the problems seems that mamba reports generic microarch as x86_64-v3 (see

return "x86_64-v4";
}
/* if (__builtin_cpu_supports ("x86-64-v3")) */
if (__builtin_cpu_supports("avx") && __builtin_cpu_supports("avx2")
&& __builtin_cpu_supports("bmi") && __builtin_cpu_supports("bmi2")
&& __builtin_cpu_supports("fma"))
{
return "x86_64-v3";
}
/* if (__builtin_cpu_supports ("x86-64-v2")) */
if (__builtin_cpu_supports("popcnt") && __builtin_cpu_supports("sse3")
&& __builtin_cpu_supports("ssse3") && __builtin_cpu_supports("sse4.1")
&& __builtin_cpu_supports("sse4.2"))
{
return "x86_64-v2";
), while conda force expects x86_64_v3, see https://github.com/conda-forge/microarch-level-feedstock/blob/1b446dbab3999c5e27f1e0b000231f18fa1b6df1/recipe/conda_build_config.yaml#L15 .

Probably it make sense to open a sister issue in https://github.com/conda-forge/microarch-level-feedstock to let the maintainers there be aware of this.

@isuruf
Copy link
Contributor

isuruf commented Aug 12, 2024

Yeah we should fix it to report x86_64_v3 which is compliant with archspec.

@traversaro
Copy link
Member Author

Yeah we should fix it to report x86_64_v3 which is compliant with archspec.

Thanks, done in #3404 .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants