)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"04ff33f3ceccc06755635519177d3cfdfb0bfe41","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"09f55df8_3614234a","updated":"2024-09-25 07:11:15.000000000","message":"For other reviewers musllinux info is: https://peps.python.org/pep-0656/","commit_id":"46aa2e214b310523e69decada0f82955cda86bdd"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bba9e5fc7f870d0fb01f2a0da438a8e640ef3747","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"076c4a5e_1a684d76","updated":"2024-09-25 17:59:04.000000000","message":"recheck\n\nSome transient centos-9-stream repo error.","commit_id":"46aa2e214b310523e69decada0f82955cda86bdd"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"b0b4244fd0c1936fa7bc440a0d83a8e06b761e42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"688b56d6_d5970a45","updated":"2024-10-09 03:48:11.000000000","message":"Hrmm, I pull up an apline docker image and the musllinux whl installs.. but:\n\n```\n(venv) / # pip install  ~/wheels/pyeclib-1.6.1-cp35-abi3-musllinux_1_1_x86_64.whl \nProcessing /root/wheels/pyeclib-1.6.1-cp35-abi3-musllinux_1_1_x86_64.whl\nInstalling collected packages: pyeclib\nSuccessfully installed pyeclib-1.6.1\n(venv) / # ldd venv/lib\nlib/    lib64/\n(venv) / # ldd venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so \n\t/lib/ld-musl-x86_64.so.1 (0x7f87812d8000)\n\tliberasurecode-pyeclib.so.1 \u003d\u003e venv/lib64/python3.12/site-packages/pyeclib.libs/liberasurecode-pyeclib.so.1 (0x7f87812b4000)\n\tlibc.musl-x86_64.so.1 \u003d\u003e /lib/ld-musl-x86_64.so.1 (0x7f87812d8000)\n\tlibXorcode-pyeclib.so.1 \u003d\u003e venv/lib64/python3.12/site-packages/pyeclib.libs/libXorcode-pyeclib.so.1 (0x7f87812aa000)\n\tlibz.so.1 \u003d\u003e /lib/libz.so.1 (0x7f8781290000)\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyList_Size: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyDict_SetItemString: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyErr_SetString: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyUnicode_FromString: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyLong_FromLong: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyObject_GetAttrString: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: _Py_BuildValue_SizeT: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyList_SetItem: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyTuple_GetItem: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyImport_ImportModule: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyObject_IsTrue: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyDict_New: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyCapsule_GetPointer: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyErr_Clear: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyList_Append: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyList_GetItem: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyList_New: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyTuple_Size: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyCapsule_New: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: _PyArg_ParseTuple_SizeT: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyModule_Create2: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyLong_AsLong: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyBytes_AsStringAndSize: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: _Py_TrueStruct: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: _Py_NoneStruct: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: _Py_FalseStruct: symbol not found\nError relocating venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so: PyCapsule_Type: symbol not found\n```\n\nThat doesn\u0027t look good. Then when I try and run a test using pyeclib:\n\n```\n(venv) / # python ~/wheels/dodgytest.py \nliberasurecode[36]: liberasurecode_instance_create: dynamic linking error Error loading shared library liberasurecode_rs_vand-pyeclib.so.1: No such file or directory\nTraceback (most recent call last):\n  File \"/root/wheels/dodgytest.py\", line 5, in \u003cmodule\u003e\n    pyeclib_driver \u003d ECDriver(k\u003d8, m\u003d4, ec_type\u003d\u0027liberasurecode_rs_vand\u0027)\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/venv/lib/python3.12/site-packages/pyeclib/ec_iface.py\", line 212, in __init__\n    self.ec_lib_reference \u003d create_instance(\n                            ^^^^^^^^^^^^^^^^\n  File \"/venv/lib/python3.12/site-packages/pyeclib/utils.py\", line 73, in create_instance\n    instance \u003d object_class(*args, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/venv/lib/python3.12/site-packages/pyeclib/core.py\", line 52, in __init__\n    self.handle \u003d pyeclib_c.init(\n                  ^^^^^^^^^^^^^^^\npyeclib.ec_iface.ECBackendInstanceNotAvailable: pyeclib_c_init ERROR: Backend instance not found. Please inspect syslog for liberasurecode error report.\n```\n\nSo something isn\u0027t working with the musllinux wheels.","commit_id":"6746b21beb183810e3315b481a1cf1b97057c423"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3316354e556cab3536e521e3abbda769f260ad47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"74ed53f1_7c2246ff","in_reply_to":"2275f641_01c90de1","updated":"2024-10-09 19:09:34.000000000","message":"The plot thickens:\n\n- If I set `LD_LIBRARY_PATH` explicitly, it all works.\n- If I remove `RUNPATH` from `pyeclib_c.abi3.so` I get a new sort of error (`ImportError: Error loading shared library liberasurecode-pyeclib.so.1: No such file or directory (needed by /root/py36/lib/python3.6/site-packages/pyeclib_c.abi3.so)`) so it clearly has the desired effect for dynamic _linking_.\n- Yet it seems to **not** work right for dynamic _loading_ -- I still get that `liberasurecode_instance_create: dynamic linking error Error loading shared library liberasurecode_rs_vand-pyeclib.so.1: No such file or directory` coming out of liberasurecode, eventually coming out as `ECBackendInstanceNotAvailable: pyeclib_c_init ERROR: Backend instance not found. Please inspect syslog for liberasurecode error report.` back in python.\n\nThat all seems to line up with what I can see with `strace`:\n```\nbash-5.0# strace -e %file ~/py36/bin/python -c \u0027import pyeclib.ec_iface; pyeclib.ec_iface.ECDriver(ec_type\u003d\"liberasurecode_rs_vand\", k\u003d4, m\u003d2).encode(b\"asdf\")\u0027 2\u003e\u00261 | grep \u0027pyeclib.*so\\|liberasurecode\u0027\nstat(\"/root/py36/lib/python3.6/site-packages/pyeclib/__init__.cpython-36m-x86_64-linux-gnu.so\", 0x7ffd13620430) \u003d -1 ENOENT (No such file or directory)\nstat(\"/root/py36/lib/python3.6/site-packages/pyeclib/__init__.abi3.so\", 0x7ffd13620430) \u003d -1 ENOENT (No such file or directory)\nstat(\"/root/py36/lib/python3.6/site-packages/pyeclib/__init__.so\", 0x7ffd13620430) \u003d -1 ENOENT (No such file or directory)\nstat(\"/root/py36/lib/python3.6/site-packages/pyeclib_c.abi3.so\", {st_mode\u003dS_IFREG|0644, st_size\u003d79192, ...}) \u003d 0\nopen(\"/root/py36/lib/python3.6/site-packages/pyeclib_c.abi3.so\", O_RDONLY|O_CLOEXEC) \u003d 3\nopen(\"/root/py36/lib/python3.6/site-packages/pyeclib.libs/liberasurecode-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d 3\nopen(\"/root/py36/lib/python3.6/site-packages/pyeclib.libs/libXorcode-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d 3\nopen(\"/root/py36/lib/python3.6/site-packages/pyeclib.libs/libz.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/root/py36/lib/python3.6/site-packages/pyeclib.libs/libz.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libisal-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libisal-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libisal-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libshss-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libshss-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libshss-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libisal-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libisal-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libisal-pyeclib.so.2\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libphazr-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libphazr-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libphazr-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nliberasurecode[182]: liberasurecode_instance_create: dynamic linking error Error loading shared library liberasurecode_rs_vand-pyeclib.so.1: No such file or directory\npyeclib.ec_iface.ECBackendInstanceNotAvailable: pyeclib_c_init ERROR: Backend instance not found. Please inspect syslog for liberasurecode error report.\n```\nI.e., we can get `pyeclib.libs` included in the search path while we\u0027re loading what was dynamically linked, but then it isn\u0027t attempted when we start trying to load backends with `dlopen`.\n\nThe undefined python symbols seem to be a red herring, at least.","commit_id":"6746b21beb183810e3315b481a1cf1b97057c423"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"39ad1f8e77e8f9e10f6b61ef58b23f774309578d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2275f641_01c90de1","in_reply_to":"688b56d6_d5970a45","updated":"2024-10-09 16:10:47.000000000","message":"Fascinating! On my VSAIO, I also see a bunch of undefined python symbols:\n```\n$ objdump -T /vagrant/pyeclib/pyeclib_c.abi3.so | grep Py\n0000000000000000      D  *UND*\t0000000000000000  Base        PyList_New\n0000000000000000      D  *UND*\t0000000000000000  Base        PyDict_SetItemString\n0000000000000000      D  *UND*\t0000000000000000  Base        PyObject_GetAttrString\n0000000000000000      D  *UND*\t0000000000000000  Base        PyErr_SetString\n0000000000000000      D  *UND*\t0000000000000000  Base        PyTuple_GetItem\n0000000000000000      D  *UND*\t0000000000000000  Base        PyLong_FromLong\n0000000000000000      D  *UND*\t0000000000000000  Base        PyErr_Clear\n0000000000000000      D  *UND*\t0000000000000000  Base        PyList_Append\n0000000000000000      D  *UND*\t0000000000000000  Base        _Py_FalseStruct\n0000000000000000      D  *UND*\t0000000000000000  Base        PyModule_Create2\n0000000000000000      D  *UND*\t0000000000000000  Base        PyLong_AsLong\n0000000000000000      D  *UND*\t0000000000000000  Base        PyImport_ImportModule\n0000000000000000      D  *UND*\t0000000000000000  Base        PyList_SetItem\n0000000000000000      D  *UND*\t0000000000000000  Base        _PyArg_ParseTuple_SizeT\n0000000000000000      D  *UND*\t0000000000000000  Base        _Py_NoneStruct\n0000000000000000      D  *UND*\t0000000000000000  Base        PyObject_IsTrue\n0000000000000000      D  *UND*\t0000000000000000  Base        PyList_Size\n0000000000000000      D  *UND*\t0000000000000000  Base        _Py_TrueStruct\n0000000000000000      D  *UND*\t0000000000000000  Base        PyDict_New\n0000000000000000      D  *UND*\t0000000000000000  Base        PyCapsule_Type\n0000000000000000      D  *UND*\t0000000000000000  Base        PyUnicode_FromString\n0000000000000000      D  *UND*\t0000000000000000  Base        PyType_GetFlags\n0000000000000000      D  *UND*\t0000000000000000  Base        PyCapsule_New\n0000000000000000      D  *UND*\t0000000000000000  Base        PyTuple_Size\n0000000000000000      D  *UND*\t0000000000000000  Base        PyCapsule_GetPointer\n0000000000000000      D  *UND*\t0000000000000000  Base        _Py_BuildValue_SizeT\n0000000000000000      D  *UND*\t0000000000000000  Base        PyBytes_AsStringAndSize\n0000000000000000      D  *UND*\t0000000000000000  Base        PyList_GetItem\n0000000000004250 g    DF .text\t0000000000000015  Base        PyInit_pyeclib_c\n```\nbut it still _works_ -- and `ldd` is pretty quiet about it:\n```\n$ ldd /vagrant/pyeclib/pyeclib_c.abi3.so\n\tlinux-vdso.so.1 (0x00007ffcde7f8000)\n\tliberasurecode.so.1 \u003d\u003e /usr/local/lib/liberasurecode.so.1 (0x00007f6f8a837000)\n\tlibc.so.6 \u003d\u003e /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6f8a60e000)\n\tlibXorcode.so.1 \u003d\u003e /usr/local/lib/libXorcode.so.1 (0x00007f6f8a605000)\n\tlibz.so.1 \u003d\u003e /lib/x86_64-linux-gnu/libz.so.1 (0x00007f6f8a5e9000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007f6f8a85b000)\n```\nBut I\u0027m definitely seeing the same behavior when I pull up an Alpine container.\n\nI suppose this is an indication that we should really have some extra validation step for the built wheels...\n\n---\n\nI\u0027ll dig into it some more; in the meantime, I\u0027ll pop this one out of the chain -- no reason to hold off on useful wheels for the majority of use-cases just for this. It was opportunistic anyway, and can always come later.","commit_id":"6746b21beb183810e3315b481a1cf1b97057c423"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"812034c4e89910618f6c303de224a60089d1aad5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6e0452f0_850e800c","updated":"2024-10-10 02:52:25.000000000","message":"Grabbed a newly build one from zuul (it\u0027s queued up to build the aarch ones on the arm boxes.. and waiting hours. But luckily the other build wheels job is done an successful.\n\nSo far so good:\n```\n(venv) ~ # ldd venv/lib64/python3.12/site-packages/pyeclib_c.abi3.so \n\t/lib/ld-musl-x86_64.so.1 (0x7f4a2ea99000)\n\tliberasurecode-pyeclib.so.1 \u003d\u003e venv/lib64/python3.12/site-packages/pyeclib.libs/liberasurecode-pyeclib.so.1 (0x7f4a2ea73000)\n\tlibc.musl-x86_64.so.1 \u003d\u003e /lib/ld-musl-x86_64.so.1 (0x7f4a2ea99000)\n\tlibisal-pyeclib.so.2 \u003d\u003e venv/lib64/python3.12/site-packages/pyeclib.libs/libisal-pyeclib.so.2 (0x7f4a2ea1a000)\n\tliberasurecode_rs_vand-pyeclib.so.1 \u003d\u003e venv/lib64/python3.12/site-packages/pyeclib.libs/liberasurecode_rs_vand-pyeclib.so.1 (0x7f4a2ea13000)\n\tlibXorcode-pyeclib.so.1 \u003d\u003e venv/lib64/python3.12/site-packages/pyeclib.libs/libXorcode-pyeclib.so.1 (0x7f4a2ea09000)\n\tlibz.so.1 \u003d\u003e /lib/libz.so.1 (0x7f4a2e9ef000)\n...\n```\nIgnoring all the \u0027symbol not found\u0027s.\n\nOK so no errors running dodytest.py:\n```\n(venv) ~ # python wheels/dodgytest.py \n(venv) ~ #\n```\n\nAnd strace shows it\u0027s now finding them\n```\n(venv) ~ # strace -o dodgytest.strace python wheels/dodgytest.py \n(venv) ~ # grep \u0027pyeclib.*so\\|liberasurecode\u0027 dodgytest.strace \nstat(\"/root/venv/lib/python3.12/site-packages/pyeclib/__init__.cpython-312-x86_64-linux-musl.so\", 0x7ffccab0a970) \u003d -1 ENOENT (No such file or directory)\nstat(\"/root/venv/lib/python3.12/site-packages/pyeclib/__init__.abi3.so\", 0x7ffccab0a970) \u003d -1 ENOENT (No such file or directory)\nstat(\"/root/venv/lib/python3.12/site-packages/pyeclib/__init__.so\", 0x7ffccab0a970) \u003d -1 ENOENT (No such file or directory)\nstat(\"/root/venv/lib/python3.12/site-packages/pyeclib_c.abi3.so\", {st_mode\u003dS_IFREG|0644, st_size\u003d79192, ...}) \u003d 0\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib_c.abi3.so\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d 3\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib.libs/liberasurecode-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d 3\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib.libs/libisal-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d 3\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib.libs/liberasurecode_rs_vand-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d 3\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib.libs/libXorcode-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d 3\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib.libs/libz.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/root/venv/lib/python3.12/site-packages/pyeclib.libs/libz.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libJerasure-pyeclib.so.2\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libshss-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libshss-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libshss-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/lib/libphazr-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/local/lib/libphazr-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\nopen(\"/usr/lib/libphazr-pyeclib.so.1\", O_RDONLY|O_LARGEFILE|O_CLOEXEC) \u003d -1 ENOENT (No such file or directory)\n```","commit_id":"29f1add6ba835d1b4028bf1a97a4b71e68582cb2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"8d4fd44de229b89705e638f8a207eb34171377bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"dc66db0b_d70bbd62","in_reply_to":"6e0452f0_850e800c","updated":"2024-10-16 18:51:55.000000000","message":"FWIW, I verified the aarch64 wheels with the `python/alpine` docker image -- liberasurecode_rs_vand and both isa_l backends work great.","commit_id":"29f1add6ba835d1b4028bf1a97a4b71e68582cb2"}],"pack_wheel.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0d8ec1a6a108c52b0aa264fd9daf18b213f57a24","unresolved":true,"context_lines":[{"line_number":177,"context_line":"    isal \u003d locate_library(\u0027isal\u0027, missing_ok\u003dTrue)"},{"line_number":178,"context_line":"    if isal:"},{"line_number":179,"context_line":"        inject(isal)"},{"line_number":180,"context_line":"        maybe_add_needed(relocated_libec, os.path.basename(isal))"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"def update_rpath(lib, rpath_suffix\u003d\u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":10,"id":"d1662346_37f294b6","line":180,"range":{"start_line":180,"start_character":42,"end_line":180,"end_character":64},"updated":"2024-10-09 21:44:30.000000000","message":"Ah -- nope, that\u0027s not what we want...\n```\n# ldd /usr/local/lib/python3.13/site-packages/pyeclib_c.abi3.so\n\t/lib/ld-musl-x86_64.so.1 (0x7d0147350000)\n\tliberasurecode-pyeclib.so.1 \u003d\u003e /usr/local/lib/python3.13/site-packages/pyeclib.libs/liberasurecode-pyeclib.so.1 (0x7d014732d000)\n\tlibc.musl-x86_64.so.1 \u003d\u003e /lib/ld-musl-x86_64.so.1 (0x7d0147350000)\n\tlibisal-91665c9c.so.2.0.31 \u003d\u003e /usr/local/lib/python3.13/site-packages/pyeclib.libs/libisal-91665c9c.so.2.0.31 (0x7d01472d4000)\n\tliberasurecode_rs_vand-pyeclib.so.1 \u003d\u003e /usr/local/lib/python3.13/site-packages/pyeclib.libs/liberasurecode_rs_vand-pyeclib.so.1 (0x7d01472cd000)\n\tlibXorcode-pyeclib.so.1 \u003d\u003e /usr/local/lib/python3.13/site-packages/pyeclib.libs/libXorcode-pyeclib.so.1 (0x7d01472c3000)\n\tlibz.so.1 \u003d\u003e /lib/libz.so.1 (0x7d01472a9000)\n```\nGotta grab the injected name.","commit_id":"80d41075a815d68072eb870d09aa701c05eb6ef0"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"df7a5300deb73cdf9a8049a43bd1272e32aa1a36","unresolved":false,"context_lines":[{"line_number":177,"context_line":"    isal \u003d locate_library(\u0027isal\u0027, missing_ok\u003dTrue)"},{"line_number":178,"context_line":"    if isal:"},{"line_number":179,"context_line":"        inject(isal)"},{"line_number":180,"context_line":"        maybe_add_needed(relocated_libec, os.path.basename(isal))"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"def update_rpath(lib, rpath_suffix\u003d\u0027\u0027):"}],"source_content_type":"text/x-python","patch_set":10,"id":"77a09812_6b2d4f52","line":180,"range":{"start_line":180,"start_character":42,"end_line":180,"end_character":64},"in_reply_to":"d1662346_37f294b6","updated":"2024-10-09 23:28:28.000000000","message":"Done","commit_id":"80d41075a815d68072eb870d09aa701c05eb6ef0"}],"tools/playbooks/build-wheel/roles/build-pyeclib-image/tasks/main.yaml":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"f024aebd2ffbef00c5517439887a904d743f4374","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  args:"},{"line_number":4,"context_line":"    chdir: \"{{ zuul.project.src_dir }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- name: Build image"},{"line_number":7,"context_line":"  command: \"docker build --build-arg TARGET\u003dmusl_{{ wheel_target }} . --tag {{ tag }}-musl\""},{"line_number":8,"context_line":"  args:"},{"line_number":9,"context_line":"    chdir: \"{{ zuul.project.src_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"b7cca604_6f311c9b","line":6,"updated":"2024-10-09 03:27:12.000000000","message":"Probably better to differentiate the `name`s for the two... also, this role might better be named `build-pyeclib-images` now, plural.","commit_id":"6746b21beb183810e3315b481a1cf1b97057c423"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"3316354e556cab3536e521e3abbda769f260ad47","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  args:"},{"line_number":4,"context_line":"    chdir: \"{{ zuul.project.src_dir }}\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"- name: Build image"},{"line_number":7,"context_line":"  command: \"docker build --build-arg TARGET\u003dmusl_{{ wheel_target }} . --tag {{ tag }}-musl\""},{"line_number":8,"context_line":"  args:"},{"line_number":9,"context_line":"    chdir: \"{{ zuul.project.src_dir }}\""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"ff1a99d0_f4996cb0","line":6,"in_reply_to":"b7cca604_6f311c9b","updated":"2024-10-09 19:09:34.000000000","message":"Done","commit_id":"6746b21beb183810e3315b481a1cf1b97057c423"}]}
