Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Arnout Vandecappelle <arnout@mind.be>
Cc: Romain Naour <romain.naour@smile.fr>,
	James Hilliard <james.hilliard1@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Arnout Vandecappelle via buildroot <buildroot@buildroot.org>
Subject: Re: [Buildroot] [git commit] package/python-setuptools: add missing dependency on host-python-wheel
Date: Thu, 6 Jul 2023 22:28:40 +0200	[thread overview]
Message-ID: <20230706202840.GB2664@scaer> (raw)
In-Reply-To: <38008674-4a63-4223-84d1-c55aa52f023b@mind.be>

Arnout, All,

On 2023-07-04 22:28 +0200, Arnout Vandecappelle spake thusly:
> On 03/07/2023 20:56, Thomas Petazzoni wrote:
> >On Mon, 3 Jul 2023 20:20:31 +0200
> >Arnout Vandecappelle via buildroot <buildroot@buildroot.org> wrote:
> >Hu, this was not in the patch from Romain I believe.
> >>+	select BR2_PACKAGE_PYTHON_WHEEL # runtime
> >This is not correct, there is no such symbol in Buildroot, and it
> >causes a check-symbol error:
> >https://gitlab.com/buildroot.org/buildroot/-/jobs/4586144848
> >What was the motivation behind this additional select?
> 
>  Because setuptools has a runtime dependency on wheel. The pep517
> infrastructure does a build-time check of this runtime dependency, but due
> to the way we run python, the build-time check looks at what is installed
> for the host, not what is installed for the target. Therefore, we have a
> dependency on host-python-wheel instead of target python-wheel.
> 
>  Since setuptools clearly defines that it has a dependency on wheel, I
> thought it logical that we would reflect that dependency in Buildroot as
> well. It is really a runtime dependency, not a build-time dependency, so I
> added this select like we do for runtime dependencies.
> 
>  Of course, I didn't notice that we don't have a target python-wheel
> package, so it doesn't actually work.
> 
>  So, dropping this select I'm pretty sure is going to break something, at

Dropping the select can not break anything: there is no package to
select to begin with. So it can't be more broken than it was before the
select was introduced.

Of course, if we really need wheel as a target package, then it should
be made such a package before we can select it.

Although having sheel on the target jsut because some (most?) packages
have a spurious dependency on it, would be seriously a shame...

> some point. I've looked a bit closer now, and it turns out that wheel is
> actually only imported in one specific function, in the "editable_wheel"
> command. So it's quite unlikely anyone will ever see this breakage.
> 
>  However, now I look a bit more in detail at it, it looks like this commit
> is in fact bogus, and Yann's original comment that the wheel dependency
> should be added to the infrastructure is in fact correct. From the
> documentation:
> 
>    Historically this documentation has unnecessarily listed ``wheel``
>    in the ``requires`` list, and many projects still do that. This is
>    not recommended. The backend automatically adds ``wheel`` dependency
>    when it is required, and listing it explicitly causes it to be
>    unnecessarily required for source distribution builds.
> 
> And it's pretty clear what is adding this dependency: the pep517 infra calls
> the build with
> 
>    python -m build -n -w
> 
> The "-w" stands for "build a wheel" and I guess it's obvious that that
> implies a dependency on host-python-wheel? And I guess that the relatively
> few pep517 packages we have already have a setuptools-based package (and
> therefore host-python-setuptools and host-python-wheel) somewhere in their
> dependency chain.
> 
>  So, I do think this dependency should move the the pkg-python infra _for
> pep517 packages_, as Yann originally commented.

I'd defer to James to find a better solution, because I don't grasp even
partially all this pep517-introduced pain...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  parent reply	other threads:[~2023-07-06 20:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-03 18:20 [Buildroot] [git commit] package/python-setuptools: add missing dependency on host-python-wheel Arnout Vandecappelle via buildroot
2023-07-03 18:56 ` Thomas Petazzoni via buildroot
2023-07-03 19:36   ` Yann E. MORIN
2023-07-04 20:28   ` Arnout Vandecappelle via buildroot
2023-07-04 20:59     ` James Hilliard
2023-07-06 20:28     ` Yann E. MORIN [this message]
2023-07-06 21:05       ` James Hilliard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230706202840.GB2664@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=arnout@mind.be \
    --cc=buildroot@buildroot.org \
    --cc=james.hilliard1@gmail.com \
    --cc=romain.naour@smile.fr \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox