Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Feb 2023 20:38:34 +0100
From:      Rainer Hurling <rhurlin@gwdg.de>
To:        Charlie Li <vishwin@freebsd.org>
Cc:        Po-Chuan Hsieh <sunpoet@freebsd.org>, <ports-committers@freebsd.org>, <dev-commits-ports-all@freebsd.org>, <dev-commits-ports-main@freebsd.org>
Subject:   Re: git: f5890bd3cbc6 - main - Revert "Mk/Uses/python.mk: Fix USE_PYTHON=pep517: always compile and install bytecode"
Message-ID:  <16b4fecb-f7f4-4d01-6b23-56c121983a05@gwdg.de>
In-Reply-To: <729ca691-4f25-a094-a6b4-99490674ecd0@freebsd.org>
References:  <202302051941.315JfQOP071383@gitrepo.freebsd.org> <CAMHz58QuYSdSi0J93aLoBbjfR3ncizOjFcYyXizUZ%2BP0hji_pg@mail.gmail.com> <729ca691-4f25-a094-a6b4-99490674ecd0@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi Charlie,

Am 07.02.23 um 19:36 schrieb Charlie Li:
> Po-Chuan Hsieh wrote:
>> Those issues you mentioned might be a problem in the future but 
>> clearly not in the short term.
>> I'm trying to fix an immediate problem which greatly affects the 
>> development.
> They are problems now, because they impede any proper fixes. We have 
> been doing quite a few things wrong with Python packaging, and simply 
> fixing "immediate problems" doesn't work.
>> It may not be good from your point of view but it really fixed the 
>> problem (see below).
>> If you have a better solution, I'm fine with it.
>>
>>
>>          Instead of compiling and installing bytecode at stage/package 
>> time,
>>          there is a WIP, review D34739, that compiles and installs 
>> bytecode
>>          at install time instead, using triggers.
>>
>>
>> Thanks for pointing out a possible solution but it is still WIP.
>>
> It will be *the* solution, because bytecode is not meant to be packaged, 
> but only compiled at install or run-time at user's discretion. The only 
> reason why bytecode was packaged in operating system-level package 
> distributions is how most such systems lack a trigger function that we 
> now have.
> 
> When Python packaging tooling is the final arbiter, bytecode is compiled 
> only after the installation process completes if the user does not 
> disable it. In our case, pkg(8) is the final arbiter, so such tasking 
> falls to pkg(8)'s triggers and not during stage/packaging.

Just out of curiosity, do you expect the trigger to work with Portmaster?

Best wishes,
Rainer

>>
>>          The aforementioned build_fs_violations will be investigated.
>>
>>
>> You could reproduce this problem as follows.
>> 1. Revert d6583d67b69dbf690e6f102e1aec799cb7fd564a (change 
>> devel/py-importlib-metadata back to USE_PYTHON=pep517 which is the 
>> background)
>> 2. Build a port with USE_PYTHON=pep517. I choose devel/py-pyls-black 
>> here.
>> Now it failed earlier with devel/py-click.
>> You could expect more ports to be failed/skipped while building 
>> hundreds of ports in my case.
>>
> Can't reproduce with a proper PEP-517 bootstrap tooling, which most 
> importantly does not have setuptools in the environment at all. If 
> anything, your build failure only demonstrates just how "problematic, 
> fragile and unreliable" compiling and installing bytecode at 
> stage/package time is.
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?16b4fecb-f7f4-4d01-6b23-56c121983a05>