Bug 272600 - devel/py-rpds-py: "FileNotFoundError: [Errno 2] No such file or directory: 'maturin'" in build phase for non-default Python
Summary: devel/py-rpds-py: "FileNotFoundError: [Errno 2] No such file or directory: 'm...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Kai Knoblich
URL:
Keywords:
Depends on: 272618
Blocks:
  Show dependency treegraph
 
Reported: 2023-07-19 14:30 UTC by John W. O'Brien
Modified: 2023-08-16 18:12 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John W. O'Brien 2023-07-19 14:30:08 UTC
The build of a non-default devel/py-rpds-py flavor fails with the following error (or substantially similar).

===========================================================================
=======================<phase: build          >============================
===>  Building for py38-rpds-py-0.7.1_1
* Getting build dependencies for wheel...
* Building wheel...
Running `maturin pep517 build-wheel -i /usr/local/bin/python3.8 --compatibility off`
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
    main()
  File "/usr/local/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/local/lib/python3.8/site-packages/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
  File "/usr/local/lib/python3.8/site-packages/maturin/__init__.py", line 90, in build_wheel
    return _build_wheel(wheel_directory, config_settings, metadata_directory)
  File "/usr/local/lib/python3.8/site-packages/maturin/__init__.py", line 73, in _build_wheel
    result = subprocess.run(command, stdout=subprocess.PIPE)
  File "/usr/local/lib/python3.8/subprocess.py", line 493, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/local/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/local/lib/python3.8/subprocess.py", line 1720, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'maturin'

ERROR Backend subprocess exited when trying to invoke build_wheel
*** Error code 1
Comment 1 commit-hook freebsd_committer freebsd_triage 2023-08-03 11:12:59 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=00ae5289b23194d0b79413e62abc6ceff960fb09

commit 00ae5289b23194d0b79413e62abc6ceff960fb09
Author:     John Hein <jcfyecrayz@liamekaens.com>
AuthorDate: 2023-08-03 11:04:59 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2023-08-03 11:04:59 +0000

    devel/py-maturin: Fix command name for non-default Python versions

    If devel/py-maturin is built for a non-default python flavor (e.g.,
    'make FLAVOR=py38'), the port installs bin/maturin-<ver> and does not
    install bin/maturin which is normal and expected.

    The site-packages/maturin/__init__.py file, however, explicitly defines
    the command to use as 'maturin'.

    Because of this when using maturin to build other ports, they can fail
    with "No such file or directory: 'maturin'". [1]  Fix the issue by
    aligning the command name to the actual Python flavor.

    PR:             272618, 272600 [1]
    Reported by:    John W. O'Brien [1]
    MFH:            2023Q3 (after 1 week)

 devel/py-maturin/Makefile                              |  3 ++-
 devel/py-maturin/files/patch-maturin-__init__.py (new) | 11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
Comment 2 commit-hook freebsd_committer freebsd_triage 2023-08-10 12:18:03 UTC
A commit in branch 2023Q3 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0199fbab9ae53912fd05dcacd3348a32a28de3a7

commit 0199fbab9ae53912fd05dcacd3348a32a28de3a7
Author:     John Hein <jcfyecrayz@liamekaens.com>
AuthorDate: 2023-08-03 11:04:59 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2023-08-10 12:14:55 +0000

    devel/py-maturin: Fix command name for non-default Python versions

    If devel/py-maturin is built for a non-default python flavor (e.g.,
    'make FLAVOR=py38'), the port installs bin/maturin-<ver> and does not
    install bin/maturin which is normal and expected.

    The site-packages/maturin/__init__.py file, however, explicitly defines
    the command to use as 'maturin'.

    Because of this when using maturin to build other ports, they can fail
    with "No such file or directory: 'maturin'". [1]  Fix the issue by
    aligning the command name to the actual Python flavor.

    PR:             272618, 272600 [1]
    Reported by:    John W. O'Brien [1]
    MFH:            2023Q3 (after 1 week)

    (cherry picked from commit 00ae5289b23194d0b79413e62abc6ceff960fb09)

 devel/py-maturin/Makefile                              |  3 ++-
 devel/py-maturin/files/patch-maturin-__init__.py (new) | 11 +++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
Comment 3 Kai Knoblich freebsd_committer freebsd_triage 2023-08-11 05:37:45 UTC
@sunpoet: The reported issue should be fixed with bug #272618. If there are no further issues this bug can be closed.
Comment 4 Po-Chuan Hsieh freebsd_committer freebsd_triage 2023-08-16 18:12:15 UTC
@kai, I could confirm the issue is fixed. Thanks!