On Sat, May 26, 2012 at 11:32 AM, Maxim Koltsov <firstname.lastname@example.org> wrote:
> First of all, how well is this eclass adapted to packages not using
> distutils? Old eclass had set of convenient functions
> (python_execute_function, python_generate_wrapper_scripts,
> python_conver_shebangs). I see some functions like these ones in new
> eclass, but can they serve as good replace and is their API public and
We will have to make sure there is good support for non-distutils
packages, it will just take some time and good bug reports about what
you need from the eclass. If you're asking if these new functions are
a good replacement, are public and stable, it seems you haven't yet
decided they're not. I don't think we (as in the python team) are
promoting python-distutils-ng as the default eclass *at this time*, so
it might take some time to work things out, but hopefully we can find
good solutions to all the issues you mention here.
> Then, we think that this ruby-ng style approach with PYTHON_TARGETS is
> a bit uncomfortable for end users and developers. This is going to be
> pain for all users if eclass gets used widely. Eclass allows developer
> not to set PYTHON_COMPAT and populate it with all available values —
> well, it's nice. But imagine that Python 3.3 arrives. All ebuilds
> using new eclass will get new IUSE and therefore will be rebuilt
> during emerge --update --newuse world. That's hardly sensible. It's
> awful to rebuild packages which might be very 'heavy' just for
> On the other hand, if developers are forced to set PYTHON_COMPAT, this
> will result in great delays in getting new python support to Gentoo.
> You can say that ruby-ng has the same behavior and nobody complains.
> But python is not ruby. Ruby 1.8 to 1.9 transitition was connected
> with a lot of incompabilities, so one could not assume that ruby-1.8
> package will work on 1.9. Python 3.2 to 3.3 transitition should be
> harmless and almost all packages will require no changes. So some
> implicit mechanism of doing this must be implemented.
So I think the second part of this (x.y to x.y+1 transitions, in the
Python world, are generally relatively smooth) invalidates your point
in the first part: if the transitions are generally smooth, then yes,
when Python 3.3 gets stabilized, I want all of my Python packages to
be available from the 3.3 interpreter. I agree that it's annoying to
have to rebuild all those packages, but on the other hand, rebuilding
the Python parts of my system every 18 months or so doesn't seem that
big of an issue compared to the upside. And the parts that you least
want to rebuild (e.g. big binary Python modules) are probably the ones
that it would be hardest to think of some alternate solution for, so
let's not even go there.
> So, new eclass has serious problems, old is bad too, not to say here
> why, and we have no solution yet :)
> But still discussion is needed, or we will end up accepting silently
> bad decisions. Please speak up everyone who agrees with me and/or has
> any suggestions.
> I want to say that I personally don't want to use python-distutils-ng
> in its current state and I know several active python ebuild writers
> that are not Gentoo developers and they don't want to use it too.
Given all of the above, these two paragraphs seem a little bit vague
and alarmist to me. Yes, the new eclass isn't perfect. We don't expect
it to be, certainly not given the short time it's been in the tree.
But I don't think your implicit suggestion that the python team or
anyone involved is "silently accepting bad decisions" is warranted.
Obviously no one should be shy about raising actual issues he/she has
with the ebuild or suggesting improvements (and as far as I've seen,
people haven't been, but maybe I'm not talking to the same people you
So, I'd prefer it if, instead of speaking up about general concerns
that the new eclass isn't ready or has serious problems, people please
file one bug each about each serious problem they have run into,
found, or are concerned about, CC the python team, and we'll try to
take a look.