Merged from trunk 11001:11016
authorFabian Groffen <grobian@gentoo.org>
Fri, 11 Jul 2008 07:41:11 +0000 (07:41 -0000)
committerFabian Groffen <grobian@gentoo.org>
Fri, 11 Jul 2008 07:41:11 +0000 (07:41 -0000)
commitb4abbaed2c6f6eaa6a83c26c5499fed3f90f2365
treeffaa2f69e4db80ae5c86ed140f43f7f8beab9267
parentaa221334918c857087dba841ccda2c502d27328a
   Merged from trunk 11001:11016

   | 11002   | Use the EbuildFetcher class to implement async fetch for the |
   | zmedico | EbuildBuild class. When in background mode, fetch output is  |
   |         | logged to emerge-fetch.log. This solves a problem with       |
   |         | calling doebuild(returnpid=1) and then doebuild calling      |
   |         | fetch() synchronously. In that case, doebuild would return   |
   |         | an int if fetch() failed (including when running             |
   |         | pkg_nofetch), which would lead to a TypeError since          |
   |         | doebuild(returnpid=1) is supposed to return a list           |
   |         | containing a spawned pid.                                    |

   | 11003   | For parallel-fetch prefetchers, pass fetchonly=1 into the    |
   | zmedico | EbuildFetcher constructor.                                   |

   | 11004   | Bug #231358 - Fix 'NameError: global name 'p' is not         |
   | zmedico | defined' in getmaskingstatus() that's triggered by a         |
   |         | conditional in LICENSE.                                      |

   | 11005   | Like in Binpkg, cancel or wait for the prefetcher in         |
   | zmedico | EbuildBuild.                                                 |

   | 11006   | Fix Scheduler._is_restart_necessary() to return False if the |
   | zmedico | replacement version of portage is the same exact version as  |
   |         | the currently running instance.                              |

   | 11007   | * Handle errno.ECHILD and errno.ESRCH from waitpid() and     |
   | zmedico | kill() calls. These errors commonly occur when ^C is used to |
   |         | kill emerge. * Remove spawned pids from                      |
   |         | portage.process.spawned_pids immediately in order to avoid a |
   |         | race condition for removing it.                              |

   | 11008   | * Fix AsynchronousTask._wait_hook() to prevent potential     |
   | zmedico | recursive calls triggered when calling exit listeners. *     |
   |         | Make SequentialTaskQueue use exit listeners to trigger       |
   |         | scheduling as soon as a task exits. This makes it possible   |
   |         | for the queues to automatically schedule new tasks while     |
   |         | scheduler remains in it's poll() loop.                       |

   | 11009   | Make digestcheck() skip the "checking ebuild checksums" part |
   | zmedico | when fetching in the background.                             |

   | 11010   | Bug #231382 - If the open() call in getconfig() raises an    |
   | zmedico | unexpected IOError, write a message to stderr showing the    |
   |         | exact call that failed, including the path of the file, in   |
   |         | order to aid in debugging.                                   |

   | 11011   | When a package replaces another one, add the corresponding   |
   | zmedico | uninstall task for the replaced package to                   |
   |         | Scheduler._completed_tasks so that it's properly accounted   |
   |         | for in _dependent_on_scheduled_merges().                     |

   | 11012   | Add support for parallel --regen, using the existing --jobs  |
   | zmedico | and --load-average options: * Split out a PollLoop base      |
   |         | class from Scheduler and derive a MetadataRegen class to     |
   |         | handle parallel scheduling for --regen. * Add                |
   |         | pordbapi._metadata_process() and _metadata_callback()        |
   |         | methods to implement asynchronous metadata generation. One   |
   |         | method returns an EbuildMetadataPhase instance to            |
   |         | encapsulate the async task. The other method is called to    |
   |         | save the metadata when the process completes successfully.   |
   |         | These methods share code with aux_get to avoid duplicate     |
   |         | code.                                                        |

   | 11013   | Refactor and simplify the main task scheduling and poll      |
   | zmedico | loops: * Make output handlers unregister themselves and call |
   |         | wait() to notify exit listeners immediately. This makes the  |
   |         | exit listeners more useful for scheduling tasks. This makes  |
   |         | the poll loop nice an clean because it just calls the        |
   |         | handlers and then the handlers can do the scheduling when    |
   |         | necessary. * Make SequentialTaskQueue.add() and addFront()   |
   |         | trigger scheduling internally, so that it's more of a chain  |
   |         | reaction than something that has to be done explicitly.      |

   | 11014   | Document the new --jobs and --load-average options for       |
   | zmedico | parallelization.                                             |

   | 11015   | Call settings.reset() in EbuildMetadataPhase.start() since   |
   | zmedico | that's what portdbapi does too before generating metadata,   |
   |         | and without it, a previous CATEGORY can leak into the ebuild |
   |         | env and corrupt it (breaks lots of packages that reference   |
   |         | $CATEGORY).                                                  |

   | 11016   | Copy INHERITED/_eclasses_ handling from                      |
   | zmedico | portdbapi._metadata_callback() to portdbapi.aux_get() since  |
   |         | it's still needed there or else aux_get won't properly       |
   |         | return INHERITED.                                            |

svn path=/main/branches/prefix/; revision=11017
NEWS
man/emerge.1
pym/_emerge/__init__.py
pym/_emerge/help.py
pym/portage/__init__.py
pym/portage/dbapi/porttree.py
pym/portage/util.py