https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270358

Charlie Li <vish...@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|python@FreeBSD.org          |vish...@freebsd.org

--- Comment #99 from Charlie Li <vish...@freebsd.org> ---
(In reply to Enji Cooper from comment #89)
How many times do I need to explain that there is no such thing as perfection
here. Unfortunately, there is no such thing as "good enough" in this case
either, since one change that fixes half the consumers also break the other
half, and both halves contain major dependencies for other software. It's just
a no-win situation.

*sigh* since $LIFE has gotten in the way of being able to properly keep track
of which ports need name normalisation fixes, anyone interested (along with
myself with some spare machine capacity) in helping move this along can start
doing this: test build every setuptools consumer that also specify
USE_PYTHON=pep517, with particular attention to those failing at stage,
especially errors looking like:

===>  Staging for py311-Mako-1.3.5
===>   Generating temporary packing list
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/lib/python3.11/site-packages/installer/__main__.py", line
98, in <module>
    _main(sys.argv[1:], "python -m installer")
  File "/usr/local/lib/python3.11/site-packages/installer/__main__.py", line
86, in _main
    with WheelFile.open(args.wheel) as source:
  File "/usr/local/lib/python3.11/contextlib.py", line 137, in __enter__
    return next(self.gen)
           ^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/installer/sources.py", line
162, in open
    with zipfile.ZipFile(path) as f:
         ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/zipfile.py", line 1295, in __init__
    self.fp = io.open(file, filemode)
              ^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory:
'/wrkdirs/overlays/overlay/textproc/py-mako/work-py311/Mako-1.3.5/dist/Mako-1.3.5*-*.whl'
*** Error code 1

Stop.
make: stopped making "stage" in /overlays/overlay/textproc/py-mako

There will be many such cases, between mixed cases needing to go all lowercase
and [-_.] normalised to underscore. Reference:
https://packaging.python.org/en/latest/specifications/binary-distribution-format/#escaping-and-unicode

Note that PORTNAME of each package should continue to match what upstream call
themselves, so no premature underscoring. Override DISTNAME if necessary
instead. This part is primarily on the part of each individual port maintainer.

Any proposed fix in Mk/Uses/python.mk must then be tested again on
non-setuptools USE_PYTHON=pep517 consumers, since it is not known if other
build backends completely implement the binary wheel name normalisation that
setuptools eventually did.

Hope this helps further explain how fragile this situation is. Not something
for "a day or two", even on powerful hardware, because this includes
resource-intensive ports like LLVM and Rust:
Queued: 3469 Inspected: 0 Ignored: 0 Built: 0 Failed: 0 Skipped: 0 Fetched: 0
Remaining: 3469

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to