Wheel output does not install all build requirements

Hi,

I’m entirely new to Conda and trying to use it to build wheels for a package.

My problem can be reproduced with a directory containing just this meta.yaml file:

package:
  name: dummy-package
  version: 0.0

source:
  path: .

requirements:
  build:
    - poppler-qt
    - wheel

outputs:
  - type: wheel

When I run conda build ., there is this near the beginning of the output:

    _libgcc_mutex:    0.1-main              
    _openmp_mutex:    5.1-1_gnu             
    bzip2:            1.0.8-h7b6447c_0      
    ca-certificates:  2023.01.10-h06a4308_0 
    ld_impl_linux-64: 2.38-h1181459_1       
    libffi:           3.4.2-h6a678d5_6      
    libgcc-ng:        11.2.0-h1234567_1     
    libgomp:          11.2.0-h1234567_1     
    libstdcxx-ng:     11.2.0-h1234567_1     
    libuuid:          1.41.5-h5eee18b_0     
    ncurses:          6.4-h6a678d5_0        
    openssl:          1.1.1t-h7f8727e_0     
    pip:              23.0.1-py310h06a4308_0
    python:           3.10.11-h7a1cb2a_2    
    readline:         8.2-h5eee18b_0        
    setuptools:       66.0.0-py310h06a4308_0
    sqlite:           3.41.2-h5eee18b_0     
    tk:               8.6.12-h1ccaba5_0     
    tzdata:           2023c-h04d1e81_0      
    wheel:            0.38.4-py310h06a4308_0
    xz:               5.4.2-h5eee18b_0      
    zlib:             1.2.13-h5eee18b_0     

Note how poppler-qt is not part of this list.

On the other hand, if I remove the last part, under the outputs key, I get

    _libgcc_mutex:    0.1-main                 
    _openmp_mutex:    5.1-1_gnu                
    boost-cpp:        1.73.0-h7f8727e_12       
    bzip2:            1.0.8-h7b6447c_0         
    c-ares:           1.19.0-h5eee18b_0        
    ca-certificates:  2023.01.10-h06a4308_0    
    cairo:            1.16.0-hb05425b_4        
    dbus:             1.13.18-hb2f20db_0       
    expat:            2.4.9-h6a678d5_0         
    fontconfig:       2.14.1-h4c34cd2_2        
    freetype:         2.12.1-h4a9f257_0        
    glib:             2.69.1-he621ea3_2        
    gst-plugins-base: 1.14.1-h6a678d5_1        
    gstreamer:        1.14.1-h5eee18b_1        
    icu:              58.2-he6710b0_3          
    jpeg:             9e-h5eee18b_1            
    krb5:             1.19.4-h568e23c_0        
    lcms2:            2.12-h3be6417_0          
    ld_impl_linux-64: 2.38-h1181459_1          
    lerc:             3.0-h295c915_0           
    libboost:         1.73.0-h28710b8_12       
    libclang:         14.0.6-default_hc6dbbc7_1
    libclang13:       14.0.6-default_he11475f_1
    libcurl:          7.88.1-h91b91d3_0        
    libdeflate:       1.17-h5eee18b_0          
    libedit:          3.1.20221030-h5eee18b_0  
    libev:            4.33-h7f8727e_1          
    libevent:         2.1.12-h8f2d780_0        
    libffi:           3.4.2-h6a678d5_6         
    libgcc-ng:        11.2.0-h1234567_1        
    libgomp:          11.2.0-h1234567_1        
    libiconv:         1.16-h7f8727e_2          
    libllvm14:        14.0.6-hdb19cb5_2        
    libnghttp2:       1.46.0-hce63b2e_0        
    libpng:           1.6.39-h5eee18b_0        
    libpq:            12.9-h16c4e8d_3          
    libssh2:          1.10.0-h8f2d780_0        
    libstdcxx-ng:     11.2.0-h1234567_1        
    libtiff:          4.5.0-h6a678d5_2         
    libuuid:          1.41.5-h5eee18b_0        
    libwebp-base:     1.2.4-h5eee18b_1         
    libxcb:           1.15-h7f8727e_0          
    libxkbcommon:     1.0.1-h5eee18b_1         
    libxml2:          2.10.3-hcbfbd50_0        
    lz4-c:            1.9.4-h6a678d5_0         
    ncurses:          6.4-h6a678d5_0           
    nspr:             4.33-h295c915_0          
    nss:              3.74-h0370c37_0          
    openjpeg:         2.4.0-h3ad879b_0         
    openssl:          1.1.1t-h7f8727e_0        
    pcre:             8.45-h295c915_0          
    pip:              23.0.1-py311h06a4308_0   
    pixman:           0.40.0-h7f8727e_1        
    poppler:          22.12.0-h381b16e_0       
    poppler-data:     0.4.11-h06a4308_1        
    poppler-qt:       22.12.0-h381b16e_0       
    python:           3.11.3-h7a1cb2a_0        
    qt-main:          5.15.2-h8373d8f_8        
    readline:         8.2-h5eee18b_0           
    setuptools:       66.0.0-py311h06a4308_0   
    sqlite:           3.41.2-h5eee18b_0        
    tk:               8.6.12-h1ccaba5_0        
    tzdata:           2023c-h04d1e81_0         
    wheel:            0.38.4-py311h06a4308_0   
    xz:               5.4.2-h5eee18b_0         
    zlib:             1.2.13-h5eee18b_0        
    zstd:             1.5.5-hc292b87_0         

Here you can see poppler-qt and all of its dependencies.

What am I misunderstanding?

Is poppler-qt really only a build dependency? Build dependencies are things that are only needed during the build process, but not needed to run/use the result (typically things like make or git). Perhaps you want to put poppler-qt as a “run” dependency. (There’s some more info in the docs.)

The example was badly chosen; in my actual package, the dependency was pyqt-builder, which is a build time but not runtime dependency.

Hmmm, that is odd. I haven’t really used conda’s wheel-building abilities, so maybe someone with more knowledge can clarify.