[prev in list] [next in list] [prev in thread] [next in thread]
List: gentoo-dev
Subject: Re: [gentoo-dev] [RFC] dev-python/setuptools deps in distutils-r1 packages
From: Michał_Górny <mgorny () gentoo ! org>
Date: 2019-11-28 16:05:34
Message-ID: ec7ec3b768db88fa40feb15de5d85f49ec9c04b2.camel () gentoo ! org
[Download RAW message or body]
On Tue, 2019-11-26 at 21:30 +0800, Jason Zaman wrote:
> On Mon, Nov 25, 2019 at 06:38:47PM +0100, Michał Górny wrote:
> > Hi,
> >
> > TL;DR: should we depend on setuptools by default? Alternatively, should
> > we add distutils_enable_setuptools API to provide at least partial
> > validity checks.
> >
> >
> > Variant 1: automatic dependency on setuptools
> > =============================================
> > Basically, we add a new trinary pre-inherit variable:
> >
> > DISTUTILS_USE_SETUPTOOLS=no
> > -> no deps
> > DISTUTILS_USE_SETUPTOOLS=bdepend
> > -> add to BDEPEND (the default)
> > DISTUTILS_USE_SETUPTOOLS=rdepend
> > -> add to BDEPEND+RDEPEND
> >
> > This is roughly 'erring on the safe side'. The default will work for
> > the majority of packages. We will have to disable it for setuptools
> > bootstrap deps, and devs will be able to adjust it to correct values
> > as they update ebuilds. For the time being, existing *DEPEND
> > on setuptools will avoid breaking stuff.
> >
> > This will also enable me to add extra QA checks to esetup.py. It should
> > be able to reasonably detect incorrect value and report it. This will
> > imply some 'false positives' for packages that use the old method of
> > specifying setuptools in RDEPEND but that's a minor hassle.
> >
> > Pros:
> > - works out of the box for the majority of packages
> > - enables full-range QA checking
> >
> > Cons:
> > - pre-inherit variable
> > - some (harmless) false positives on existing packages
> >
>
> I like variant 1 most since in almost all cases it'll be less work in
> the ebuilds. What about distutils_optional tho? In tensorflow I have all
> the python support behind USE="python" and guard all the deps. In the
> optional case is there any way for this to work other than just setting
> it to no and doing it manually?
> I assume if i set it to no and make it optional then the esetup.py
> checks wouldnt happen which isnt as nice.
>
Hmm, I gave it some more thought and I have an idea.
We could introduce new ${DISTUTILS_RDEPEND} and ${DISTUTILS_DEPEND}
variables, and deprecate (as a general rule) direct ${PYTHON_DEPS} usage
in favor of it. Then we could easily inject setuptools into it.
Bad news is that it will make it incorrect to do BDEPEND=${RDEPEND}
in general, even when DISTUTILS_RDEPEND==DISTUTILS_DEPEND.
--
Best regards,
Michał Górny
["signature.asc" (application/pgp-signature)]
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic