conda-forge / conda-forge/numpy-feedstock

f2py entry point with non-functioning shebang in osx-arm cross-compile

Open
#276 23 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Shell
Stars
10
Forks
52
Avg merge
4h 45m
Merged PRs (30d)
5

Description

### Solution to issue cannot be found in the documentation.

- [X] I checked the documentation.

### Issue

With

```yaml
requirements:
build:
- numpy # [build_platform != target_platform]
```

[for the osx-arm cross-compilation, calling f2py3 fails with](https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=534009&view=logs&j=385a3385-ae8b-54d1-9abe-3c614f74cb73&t=a5f9d343-149e-5621-6ab9-f0278009be04&l=395):

```
/Users/runner/miniforge3/conda-bld/slycot_1657493761007/_build_env/bin/f2py3: line 3: import: command not found
/Users/runner/miniforge3/conda-bld/slycot_1657493761007/_build_env/bin/f2py3: line 4: import: command not found
from: can't read /var/mail/numpy.f2py.f2py2e
/Users/runner/miniforge3/conda-bld/slycot_1657493761007/_build_env/bin/f2py3: line 7: syntax error near unexpected token `('
/Users/runner/miniforge3/conda-bld/slycot_1657493761007/_build_env/bin/f2py3: line 7: ` sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])'

```

```
$> which f2py3
$BUILD_PREFIX/bin/f2py3
$> head f2py3
#!$BUILD_PREFIX/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from numpy.f2py.f2py2e import main
```

See discussion in https://github.com/conda-forge/slycot-feedstock/pull/50 and https://github.com/conda-forge/slycot-feedstock/pull/49.

cc @conda-forge/help-osx-arm64

### Installed packages

```shell
bzip2: 1.0.8-h3422bc3_4 conda-forge
c-ares: 1.18.1-h3422bc3_0 conda-forge
ca-certificates: 2022.6.15-h4653dfc_0 conda-forge
cmake: 3.23.2-h52850c7_0 conda-forge
distro: 1.6.0-pyhd8ed1ab_0 conda-forge
expat: 2.4.8-h6b3803e_0 conda-forge
krb5: 1.19.3-he492e65_0 conda-forge
libblas: 3.9.0-5_h880f123_netlib conda-forge
libcblas: 3.9.0-5_h880f123_netlib conda-forge
libcurl: 7.83.1-h7965298_0 conda-forge
libcxx: 14.0.6-h04bba0f_0 conda-forge
libedit: 3.1.20191231-hc8eb9b7_2 conda-forge
libev: 4.33-h642e427_1 conda-forge
libffi: 3.4.2-h3422bc3_5 conda-forge
libgfortran: 5.0.0.dev0-11_0_1_hf114ba7_23 conda-forge
libgfortran5: 11.0.1.dev0-hf114ba7_23 conda-forge
liblapack: 3.9.0-5_h880f123_netlib conda-forge
libnghttp2: 1.47.0-hf30690b_0 conda-forge
libssh2: 1.10.0-h7a5bd25_2 conda-forge
libuv: 1.43.0-h3422bc3_0 conda-forge
libzlib: 1.2.12-ha287fd2_1 conda-forge
llvm-openmp: 14.0.4-hd125106_0 conda-forge
lz4-c: 1.9.3-hbdafb3b_1 conda-forge
make: 4.3-he57ea6c_1 conda-forge
ncurses: 6.3-h07bb92c_1 conda-forge
numpy: 1.23.1-py310h0a343b5_0 conda-forge
openssl: 3.0.5-ha287fd2_0 conda-forge
packaging: 21.3-pyhd8ed1ab_0 conda-forge
pip: 22.1.2-pyhd8ed1ab_0 conda-forge
pyparsing: 3.0.9-pyhd8ed1ab_0 conda-forge
python: 3.10.5-h4eee789_0_cpython conda-forge
python_abi: 3.10-2_cp310 conda-forge
readline: 8.1.2-h46ed386_0 conda-forge
rhash: 1.4.3-he4db4b2_0 conda-forge
scikit-build: 0.15.0-pyhb871ab6_0 conda-forge
setuptools: 63.1.0-py310hbe9552e_0 conda-forge
sqlite: 3.39.0-h40dfcc0_0 conda-forge
tk: 8.6.12-he1e0b03_0 conda-forge
tzdata: 2022a-h191b570_0 conda-forge
wheel: 0.37.1-pyhd8ed1ab_0 conda-forge
xz: 5.2.5-h642e427_1 conda-forge
zlib: 1.2.12-ha287fd2_1 conda-forge
zstd: 1.5.2-hd705a24_2 conda-forge

bzip2: 1.0.8-h0d85af4_4 conda-forge
c-ares: 1.18.1-h0d85af4_0 conda-forge
ca-certificates: 2022.6.15-h033912b_0 conda-forge
cctools_osx-64: 973.0.1-h3eff9a4_10 conda-forge
cctools_osx-arm64: 973.0.1-h98580c8_10 conda-forge
clang: 13.0.1-h694c41f_0 conda-forge
clang-13: 13.0.1-default_he082bbe_0 conda-forge
clang_osx-arm64: 13.0.1-hdd0e76e_2 conda-forge
clangxx: 13.0.1-default_he082bbe_0 conda-forge
cmake: 3.23.2-hf2c7296_0 conda-forge
compiler-rt: 13.0.1-he01351e_0 conda-forge
compiler-rt_osx-64: 13.0.1-hd3f61c9_0 conda-forge
cross-python_osx-arm64: 3.10-27_cpython conda-forge
crossenv: 1.2.0-pyhd8ed1ab_7 conda-forge
distro: 1.6.0-pyhd8ed1ab_0 conda-forge
expat: 2.4.8-h96cf925_0 conda-forge
gettext: 0.19.8.1-hd1a6beb_1008 conda-forge
gfortran_impl_osx-64: 9.3.0-h9cc0e5e_23 conda-forge
gfortran_impl_osx-arm64: 11.0.1.dev0-h3653101_23 conda-forge
gfortran_osx-arm64: 11.0.1.dev0-h64a2375_15 conda-forge
gmp: 6.2.1-h2e338ed_0 conda-forge
isl: 0.22.1-hb1e8313_2 conda-forge
krb5: 1.19.3-hb98e516_0 conda-forge
ld64_osx-64: 609-h6fbe7a8_10 conda-forge
```

### Environment info

```shell
(conda-forge osx-arm build on azure)
```

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the osx-arm cross-compilation failure with the shown build requirements, then inspect the generated $BUILD_PREFIX/bin/f2py3 entry point and its shebang. Done means invoking f2py3 during the cross-build runs through the appropriate Python interpreter instead of being parsed by the shell.

Written by the indexing model from the issue text.

Assessment

Tech stack
numpy, python, yaml
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.