can no longer install py- ports

oliver@

Developer
For some unknown reason, I'm no longer able to install any python package on my FreeBSD 15 system.


Code:
py-build> make
===>  License MIT accepted by the user
===>   py314-build-1.4.4 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by py314-build-1.4.4 for building
===>  Extracting for py314-build-1.4.4
=> SHA256 Checksum OK for build-1.4.4.tar.gz.
===>  Patching for py314-build-1.4.4
===>   py314-build-1.4.4 depends on file: /usr/local/bin/python3.14 - found
===>   py314-build-1.4.4 depends on package: py314-flit-core>=3.11 - found
===>   py314-build-1.4.4 depends on package: py314-installer>=0 - found
===>  Configuring for py314-build-1.4.4
===>  Building for py314-build-1.4.4
Building wheel from /usr/obj/ports/usr/ports/devel/py-build/work-py314/build-1.4.4
Wheel built /usr/obj/ports/usr/ports/devel/py-build/work-py314/build-1.4.4/dist/build-1.4.4-py3-none-any.whl
===>  Staging for py314-build-1.4.4
===>   py314-build-1.4.4 depends on package: py314-packaging>=24.0 - found
===>   py314-build-1.4.4 depends on package: py314-pyproject-hooks>=0 - found
===>   py314-build-1.4.4 depends on file: /usr/local/bin/python3.14 - found
===>   Generating temporary packing list
===> Creating unique files: Move MAN files needing SUFFIX
===> Creating unique files: Move files needing SUFFIX
Makefile error: UNIQUE (suffix): bin/pyproject-build not found
*** Error code 1

Stop.
make: stopped making "all" in /usr/ports/devel/py-build
Exit 1
py-build>

The issue seems to be, that the logic in /usr/ports/Mk/Uses/uniquefiles.mk wants to add the python version suffix to binaries before installation. So what the ports system wants to do is to
  • move /usr/obj/ports/usr/ports/devel/py-build/work-py314/stage/usr/local/bin/pyproject-build to /usr/obj/ports/usr/ports/devel/py-build/work-py314/stage/usr/local/bin/pyproject-build-3.14
  • then create a symlink pyproject-build -> pyproject-build-3.14
But on my failing system, the file is already with the suffix inside the stage directory. For unknown reasons:

Code:
py-build> ls -l /usr/obj/ports/usr/ports/devel/py-build/work-py314/stage/usr/local/bin/
total 12
drwxr-xr-x   2 root wheel 512 Apr 28 19:08 ./
drwxr-xr-x  12 root wheel 512 Apr 28 19:08 ../
-rwxr-xr-x   1 root wheel 234 Apr 28 19:08 pyproject-build-3.14*

So the rename is failing, thats what make -d A output is suggesting.

I'm wondering - what could lead to such a scenario where the files in the stage directory are already being created with a version suffix. My make.conf is not very special:

Code:
WRKDIRPREFIX=/usr/obj/ports
DEFAULT_VERSIONS+=python=3.14
DEFAULT_VERSIONS+=python3=3.14
DEFAULT_VERSIONS+=perl5=5.42
 
Back
Top