mctools / ncrystal

NCrystal : a library for thermal neutron transport in crystals and other materials
https://mctools.github.io/ncrystal/
Other
41 stars 18 forks source link

Versioned shared libraries installed by the Python package aren't shared links, but copies of each other #186

Open yurivict opened 3 months ago

yurivict commented 3 months ago

Describe the bug

All these libraries are separate files:

$ ls -l `find work-py311/stage/ -name "*libNCrystal.so*"`
-rwxr-xr-x  1 yuri wheel 5602144 Aug 15 01:18 work-py311/stage/usr/local/lib/python3.11/site-packages/NCrystal/ncrystal_pyinst_data/lib/libNCrystal.so
-rwxr-xr-x  1 yuri wheel 6320968 Aug 15 01:18 work-py311/stage/usr/local/lib/python3.11/site-packages/NCrystal/ncrystal_pyinst_data/lib/libNCrystal.so.3
-rwxr-xr-x  1 yuri wheel 6320968 Aug 15 01:18 work-py311/stage/usr/local/lib/python3.11/site-packages/NCrystal/ncrystal_pyinst_data/lib/libNCrystal.so.3.9.0

Version: 3.9.0 Python 3.11 FreeBSD 14.1

tkittel commented 3 months ago

Thanks. How did you install it? Do you mean you did a "pip install ncrystal"?

yurivict commented 3 months ago

I've built it from source using PEP517 tools build and install.

tkittel commented 3 months ago

Please post your specific steps used here if you are doing something else that "pip install ./srcdir", since then you are doing something our other users do not.

yurivict commented 3 months ago

log

tkittel commented 3 months ago

Sorry, that doesn't tell me what you did, only what output you got.

yurivict commented 3 months ago

@tkittel The commands that are run are in the log:

/usr/local/bin/python3.11 -m build --no-isolation --wheel

/usr/local/bin/python3.11 -m installer --destdir /usr/ports/science/py-ncrystal/work-py311/stage --prefix /usr/local /usr/ports/science/py-ncrystal/work-py311/ncrystal-3.9.0/dist/ncrystal-3.9.0*.whl

tkittel commented 1 day ago

I believe this is due to:

https://github.com/scikit-build/scikit-build/issues/625#issuecomment-1016662377

So I guess the solution will be for me to simply coax CMake into avoiding the extra symlinks.