Le lundi 05 novembre 2012 à 16:48 -0800, Brian Harring a écrit : > > Either way, I'm honestly not trying to piss folks off here nor stop > the efforts to dig us out of the python.eclass mess. That said, > *this > time around* that eclass should actually have a plan so that we don't > wind up in the same cluster fuck scenario as prior.
I'm sure everyone understands that we want to avoid these eclass to be a flying spaghetti monster again. I am probably biased as I did not find using python.eclass that difficult but I must admit the new one is much easier to understand at least and for the case of distutils, really simple to use as I have packaged a handful of pypi hosted packages in less than 5 minutes each. So as a user of those eclasses and seeing the current code/patches I think I can describe a bit what is intended, although I am not part of the writing of it. python-r1.eclass is intended to provide all necessary functions to help building packages using python, be it pure-python or python bindings or however you may need python. It differs a lot from python.eclass in that in does not try to attempt to define any phase which is imho fine as that would be better done by another eclass more tied to the case being considered, autotools-python, cmake-python, but I'm hypothesizing of the use I would do of it for Gnome originated packages. python-r1.eclass also wants to make things clear for package managers by exposing the current selected python interpreter (or ABI if you prefer) as USE_EXPAND flags. As already explained in other threads, this is very similar to ruby.eclass and tentative multilib support and it appears to be working decently fine. As for the use of USE_PYTHON, I would guess that it was not reused to: * not have to deal with backward compatibility * avoid confusion wrt to USE_EXPAND behavior and result of mixing USE_PYTHON definition that are not use flags at all distutils-r1.eclass is a simple eclass using python-r1.eclass in order to build any python package relying on setuptools/distutils. Basically, you should not need to do more than: EAPI=bla PYTHON_COMPAT=( mylist ) inherit distutils-r1 and you are done. If someone wants to check how it looks like for real world examples, check for rq-* ebuilds in my dev overlay. Feel free to stab me if I telling atrocities or ask more details if that looks insufficient, I'm sure this will help draft the roadmap and/or enhance eclass documentation you'd like to see. -- Gilles Dartiguelongue <e...@gentoo.org> Gentoo