On Tue, Jun 19, 2012 at 11:21 PM, Mike Frysinger <vap...@gentoo.org> wrote: > On Tuesday 19 June 2012 17:35:00 Jeroen Roovers wrote: >> On Tue, 12 Jun 2012 23:02:40 -0400 Mike Frysinger wrote: >> > i've noticed a growing trend where people put setup of variables into >> > pkg_setup that only matter to src_* funcs presumably so they don't >> > have to call the respective src_* func from an inherited eclass. >> > unfortunately this adds pointless overhead to binpkgs. can we please >> > move away from this practice ? >> >> Like this? > > not quite > >> * ERROR: cat/pkg-version failed (prepare phase): >> * python_set_active_version() can be used only in pkg_setup() phase >> * >> * Call stack: >> * ebuild.sh, line 85: Called src_prepare >> * environment, line 5885: Called python_set_active_version '2' >> * environment, line 5603: Called die >> * The specific snippet of code: >> * die "${FUNCNAME}() can be used only in pkg_setup() phase"; >> * >> >> Shouldn't that be in src_prepare already, or does python.eclass do >> something rather important here while installing a binpkg? > > Gentoo's python integration is an ugly beast. in this case, i believe it's > screwing with your $ROOT which means it has to be in pkg_* (let's quietly > ignore what happens if you try to emerge two ebuilds which need conflicting > versions of python active). > -mike
python_set_active_version basically just sets the EPYTHON and PYTHON_ABI variables; nothing in ${ROOT} is modified. The variables are used in python_pkg_setup to implement use-flag checks for PYTHON_USE_WITH, and also in python_mod_optimize which is called in pkg_postinst.