How to package .pyc files
Kubilay Kocak
koobs at FreeBSD.org
Wed Sep 2 04:47:02 UTC 2020
On 1/09/2020 4:46 am, Gleb Popov wrote:
> On Mon, Aug 31, 2020 at 9:45 PM Gleb Popov <arrowd at freebsd.org> wrote:
>
>> Hello. I'm fiddling with the devel/mercurial port (
>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242463 ). The current
>> Makefile results in
>>
>> Error: Orphaned: %%PYTHON_SITELIBDIR%%/mercurial/__modulepolicy__.py
>> Error: Orphaned:
>> %%PYTHON_SITELIBDIR%%/mercurial/__pycache__/__modulepolicy__.cpython-37.opt-1.pyc
>> Error: Orphaned:
>> %%PYTHON_SITELIBDIR%%/mercurial/__pycache__/__modulepolicy__.cpython-37.pyc
>>
>> errors. However, adding these files into pkg-plist seems a bit hard - it
>> requires %%PYTHON_VER%% subst and a special treatment for python2 case.
>> Which made me wonder - should these files be packaged at all? If yes, maybe
>> there is some simple solution I'm missing?
Yes, just add them to pkg-plist (while using USE_PYTHON=autoplist to
handle the rest automatically)
>> Thanks in advance.
>>
>
> Inspecting ${WRKDIR}/.PLIST* files after the build revealed that all other
> .pyc files are correctly added to the plist. So, there is something special
> about this __modulepolicy__.py file. I'm tempted to simply remove it on
> post-install.
They are handled specially (see setup.py)
The root cause and outcome of that special handling (overriding the
default setuptools build/install classes) is that those files are not
added to setuptools --record output (the list of files that a package
installs), which our framework uses to produce the pkg-plist
This ultimately needs to be resolved by upstream, such that those files
are added to the list correctly, as they should be.
See examples of "get_outputs" use in setup.py files in github, like:
https://github.com/Nevisor/Client/blob/master/ScriptLib/Python-2.2/Tools/idle/setup.py#L41
> Any ideas?
More information about the freebsd-python
mailing list