Date: Wed, 11 Jan 2023 00:01:43 +0300 From: Michael Zhilin <mizhka@gmail.com> To: freebsd-python@freebsd.org Subject: PYTHON_EXT_SUFFIX value for shared libraries, pyc files and others Message-ID: <CAF19XBKVL=1CdJHsYC1-WZwX7Gvop7Zjv3aADHCx5eoW9rAz_w@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--000000000000475ceb05f1ef30ac Content-Type: text/plain; charset="UTF-8" Hi, I have a problem with PYTHON_EXT_SUFFIX when I try to build ports (including python) with the option WITH_DEBUG. I want to build subset of ports with WITH_DEBUG by poudriere, but several python package builds have failed on phase "package" due to missing artifacts. The root cause of failure is that ports uses same macro PYTHON_EXT_SUFFIX for shared libraries and pyc files, but actual file names have different suffixes: - pyc files have the suffix ".cpython-39" as expected. - so files have the suffix ".cpython-39d". The "d" is ${PYTHON_ABIVER} and actual ABI flags of Python build. According to Python specifications, all pyc files must have a suffix without ABI flags. Shared libraries have suffixes with ABI flags, but I didn't find any spec about it. For instance, port gobject-introspection contains pyc files like: /usr/local/lib/gobject-introspection/giscanner/__pycache__/testcodegen.cpython-39.pyc and shared library like: /usr/local/lib/gobject-introspection/giscanner/_giscanner.cpython-39d.so The first idea came to me is to add an extra suffix PYTHON_EXTSO_SUFFIX with value ".cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}". It's easy to add it and replace all occurrences in pkg-plist and Makefile, but it may be hard to maintain it in future. Any thoughts? Thanks, Michael. --000000000000475ceb05f1ef30ac Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Hi,</div><div><br></div><div>I have a problem with PY= THON_EXT_SUFFIX when I try to build ports (including python) with the optio= n WITH_DEBUG.</div><div><br></div><div>I want to build subset of ports with= WITH_DEBUG by poudriere, but several python package builds have failed on = phase "package" due to missing artifacts. The root cause of failu= re is that ports uses same macro PYTHON_EXT_SUFFIX for shared libraries and= pyc files, but actual file names have different suffixes:<br></div><div>= =C2=A0- pyc files have the suffix ".cpython-39" as expected. <br>= </div><div>=C2=A0- so files have the suffix ".cpython-39d". <br><= /div><div><br></div><div>The "d" is ${PYTHON_ABIVER} and actual A= BI flags of Python build. According to Python specifications, all pyc files= must have a suffix without ABI flags. Shared libraries have suffixes with = ABI flags, but I didn't find any spec about it.</div><div><br></div><di= v>For instance, port gobject-introspection contains pyc files like:</div><d= iv>=C2=A0=C2=A0 /usr/local/lib/gobject-introspection/giscanner/__pycache__/= testcodegen.cpython-39.pyc</div><div>and shared library like:</div><div>=C2= =A0=C2=A0 /usr/local/lib/gobject-introspection/giscanner/_<a href=3D"http:/= /giscanner.cpython-39d.so">giscanner.cpython-39d.so</a><br></div><div><br><= /div><div>The first idea came to me is to add an extra suffix PYTHON_EXTSO_= SUFFIX with value ".cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}". It= 's easy to add it and replace all occurrences in pkg-plist and Makefile= , but it may be hard to maintain it in future. <br></div><div><br></div><di= v>Any thoughts?</div><div><br></div><div>Thanks, <br></div><div>Michael.<br= ></div><div><br></div></div> --000000000000475ceb05f1ef30ac--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF19XBKVL=1CdJHsYC1-WZwX7Gvop7Zjv3aADHCx5eoW9rAz_w>