Re: [gentoo-portage-dev] Re: Re: Patch problem
On 03/08/2011 05:41 AM, Michael wrote: > I've been able to collect the list of flags required to satisfy the > dependency and apply them, but I'm having difficulty with ensuring that they > do not override the user's settings. > > eg. need +foo to satisfy the dependency, but do not do it it USE="-foo". > > As suggested by yourself, portage.settings.configdict["conf"]["USE"] indeed > does contain explicit enable/disable information from make.conf, however the > other keys, such as those representing the env or package.use do not. > > How can I get this information? In pym/portage/package/ebuild/_config/UseManager.py there's a getPUSE method that should give you the negative package.use settings. That's what setcpv calls to the package.use settings before it applies the "incremental" stacking that eliminates the negative values. -- Thanks, Zac
Re: [gentoo-portage-dev] Re: Re: Patch problem
On Wed, 2011-03-09 at 00:41 +1100, Michael wrote: > Zac Medico wrote: > > Inside depgraph._resolve(), it returns False if > > self._dynamic_config._needed_use_config_changes is non-empty. You want > > to add an option that causes it to return True instead. Also, you'll > > need to propagate these changes to the config.setcpv() method somehow, > > so that the changes will be applied by the Scheduler at build time. > > Normally, the config.setcpv() method calculates USE based on config > > files, but you want it override the config files with whatever values > > the depgraph's _needed_use_config_changes contains. > > I've been able to collect the list of flags required to satisfy the > dependency and apply them, but I'm having difficulty with ensuring that they > do not override the user's settings. > > eg. need +foo to satisfy the dependency, but do not do it it USE="-foo". > > As suggested by yourself, portage.settings.configdict["conf"]["USE"] indeed > does contain explicit enable/disable information from make.conf, however the > other keys, such as those representing the env or package.use do not. > > How can I get this information? > > > Thanks, > Michael > > I suppose you could get the final environment before you modify the USE then compare with the portage.settings.configdict["conf"]["USE"] you already got. have a look in the public_api branch. there are several functions there that do that. http://ln-s.net/8a4K or http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=blob;f=pym/portage/api/flag.py;h=52ea9be0128074dd3a544ea480796f17591232c2;hb=refs/heads/public_api -- Brian Dolbec signature.asc Description: This is a digitally signed message part
[gentoo-portage-dev] Re: Re: Patch problem
Zac Medico wrote: > Inside depgraph._resolve(), it returns False if > self._dynamic_config._needed_use_config_changes is non-empty. You want > to add an option that causes it to return True instead. Also, you'll > need to propagate these changes to the config.setcpv() method somehow, > so that the changes will be applied by the Scheduler at build time. > Normally, the config.setcpv() method calculates USE based on config > files, but you want it override the config files with whatever values > the depgraph's _needed_use_config_changes contains. I've been able to collect the list of flags required to satisfy the dependency and apply them, but I'm having difficulty with ensuring that they do not override the user's settings. eg. need +foo to satisfy the dependency, but do not do it it USE="-foo". As suggested by yourself, portage.settings.configdict["conf"]["USE"] indeed does contain explicit enable/disable information from make.conf, however the other keys, such as those representing the env or package.use do not. How can I get this information? Thanks, Michael
[gentoo-portage-dev] Re: Re: Patch problem
Zac Medico wrote: > Inside depgraph._resolve(), it returns False if > self._dynamic_config._needed_use_config_changes is non-empty. You want > to add an option that causes it to return True instead. Also, you'll > need to propagate these changes to the config.setcpv() method somehow, > so that the changes will be applied by the Scheduler at build time. > Normally, the config.setcpv() method calculates USE based on config > files, but you want it override the config files with whatever values > the depgraph's _needed_use_config_changes contains. Thanks - much appreciated. -Michael