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.

-- Jason


Reply via email to