nice-florist-55958
12/02/2022, 1:40 PMstderr:
Could not find the installation RECORD for kerberos 1.3.0+krb1.16 under /d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/c51db2b09b8517e2fdbbc7422eedacdd46162b6f2dd15ea8df4b2e99c9c9227c/kerberos-1.3.0+krb1.16-0-cp37-cp37m-manylinux2014_x86_64.whl.ad9a0577715b49b28e33fdaa8407ebcd
Is Pants doing some package metadata validation and this particular wheel doesn't ship correctly?
Background:
I recently found out our firm builds special wheels for the various kerberos packages (kerberos, pykerberos, gssapi, etc.) that bind specifically to krb1.16
(so on our index, we have kerberos==1.3.0+krb1.16
for instance). Previously we were just resolving the latest version and building the wheels locally, but that has started to have consequences as we've deployed applications to different hosts/environments, resulting in obscure errors like ImportError: /lib64/libk5crypto.so.3 undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b
when importing kerberos
. So we added pinned dependencies on the special wheels our firm builds. Resolve works fine, and running apps locally (without Pants) works after exporting the virtual environment. But Pants can't run/package anything depending on this, throwing the above error.nice-florist-55958
12/02/2022, 2:19 PMnice-florist-55958
12/02/2022, 2:31 PMFile "/d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/dd24a2333561b849fbebe03fe7319585ddb9a8ad512920b6bb2d9249a810cb71/pex-2.1.104-py2.py3-none-any.whl/pex/jobs.py", line 139, in _finalize_job
self._finalizer(self._process.returncode)
File "/d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/dd24a2333561b849fbebe03fe7319585ddb9a8ad512920b6bb2d9249a810cb71/pex-2.1.104-py2.py3-none-any.whl/pex/pip/tool.py", line 670, in fixup_install
version=project_name_and_version.version,
File "/d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/dd24a2333561b849fbebe03fe7319585ddb9a8ad512920b6bb2d9249a810cb71/pex-2.1.104-py2.py3-none-any.whl/pex/pep_376.py", line 461, in from_prefix_install
project_name=project_name, version=version, prefix_dir=prefix_dir
pex.pep_376.RecordNotFoundError: Could not find the installation RECORD for kerberos 1.3.0+krb1.16 under /d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/c51db2b09b8517e2fdbbc7422eedacdd46162b6f2dd15ea8df4b2e99c9c9227c/kerberos-1.3.0+krb1.16-0-cp37-cp37m-manylinux2014_x86_64.whl.3fd17ae5c38a474dbfde4a79727fc437
Could not find the installation RECORD for kerberos 1.3.0+krb1.16 under /d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/c51db2b09b8517e2fdbbc7422eedacdd46162b6f2dd15ea8df4b2e99c9c9227c/kerberos-1.3.0+krb1.16-0-cp37-cp37m-manylinux2014_x86_64.whl.3fd17ae5c38a474dbfde4a79727fc437
Listing the path pex says is missing the RECORD:
$ ls /d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/c51db2b09b8517e2fdbbc7422eedacdd46162b6f2dd15ea8df4b2e99c9c9227c/kerberos-1.3.0+krb1.16-0-cp37-cp37m-manylinux2014_x86_64.whl.3fd17ae5c38a474dbfde4a79727fc437/lib/python3.7/site-packages
kerberos-1.3.0.dist-info kerberos.cpython-37m-x86_64-linux-gnu.so
And listing the dist info, it matches what's in the exported virtual environment:
$ ls /d/d1/user/taymarti/.cache/pants/named_caches/pex_root/installed_wheels/c51db2b09b8517e2fdbbc7422eedacdd46162b6f2dd15ea8df4b2e99c9c9227c/kerberos-1.3.0+krb1.16-0-cp37-cp37m-manylinux2014_x86_64.whl.3fd17ae5c38a474dbfde4a79727fc437/lib/python3.7/site-packages/kerberos-1.3.0.dist-info
INSTALLER METADATA RECORD REQUESTED WHEEL direct_url.json top_level.txt
nice-florist-55958
12/02/2022, 2:50 PM+krb1.16
is getting stripped off the .dist-info folder.
In the path of the installed wheel
kerberos-1.3.0+krb1.16-0-cp37-cp37m-manylinux2014_x86_64.whl.3fd17ae5c38a474dbfde4a79727fc437
it's kerberos-1.3.0.dist-info
, when it should be kerberos-1.3.0+krb1.16.dist-info
(as it is in a virtual environment from pip install).
Does pex do this because the +krb1.16
suffix isn't a valid systematic version string?enough-analyst-54434
12/02/2022, 5:49 PMenough-analyst-54434
12/02/2022, 6:33 PMenough-analyst-54434
12/02/2022, 6:44 PMzipinfo
of its contents and the contents of its METADATA, WHEEL and RECORD files?nice-florist-55958
12/03/2022, 12:30 AM