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>