[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