summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
Commit message (Collapse)AuthorAgeFilesLines
* Split a _main_loop() method out of Scheduler._merge().Zac Medico2008-07-041-24/+54
| | | | svn path=/main/trunk/; revision=10927
* Split out a Scheduler._execute_pkg() method from _merge().Zac Medico2008-07-041-19/+25
| | | | svn path=/main/trunk/; revision=10926
* Rename PollSelectFallback to PollSelectAdapter.Zac Medico2008-07-041-2/+2
| | | | svn path=/main/trunk/; revision=10925
* * Split out a MergeListItem class from Scheduler._execute_task().Zac Medico2008-07-041-80/+135
| | | | | | | | | * Remove Scheduler._execute_task() and migrate some of it's code to Scheduler._merge(). * Fix _world_atom() so that it doesn't add an atom in --oneshot mode or similar. svn path=/main/trunk/; revision=10924
* Create a Scheduler._task_queues attribute which has "build" and "prefetch"Zac Medico2008-07-041-4/+6
| | | | | | | queues. The build queue is currently unused and the prefetch queue is used for parallel fetch. svn path=/main/trunk/; revision=10922
* Change the way the way things that have to call the scheduler interactZac Medico2008-07-041-56/+60
| | | | | | | | | | | | | | | | | | | | with it: * Return a unique integer id from scheduler.register(), to be passed back into other scheduler methods. * Control handler unregistration with the handler's return value, like some other frameworks do for similar callbacks. * Add a SpawnProcess.reg_id attribute to store the id returned from scheduler.register() * Pass the SpawnProcess.reg_id value into scheduler.schedule() calls, so the scheduler knows to return when the callback referred to by the given id unregisters itself by returning False. svn path=/main/trunk/; revision=10921
* When logging is disabled, make the EbuildPhase create a dummy pipe to provideZac Medico2008-07-041-6/+45
| | | | | | | a file descriptor that the scheduler can use to monitor the process from inside a poll() loop. svn path=/main/trunk/; revision=10920
* * Split out a SequentialTaskQueue class to encapsulate the parallel-fetchZac Medico2008-07-041-35/+50
| | | | | | | | prefetcher queue. * Fix broken return value status handling in Scheduler.merge(). svn path=/main/trunk/; revision=10918
* Split out a _create_prefetcher() method from _add_prefetchers().Zac Medico2008-07-031-14/+26
| | | | svn path=/main/trunk/; revision=10913
* Remove old unused vars inside _execute_task() and fix code not to use theZac Medico2008-07-031-38/+17
| | | | | | old vars. svn path=/main/trunk/; revision=10912
* Split logging and world atom code out of Scheduler._execute() task, andZac Medico2008-07-031-65/+86
| | | | | | trigger it inside EbuildPhase.execute(). svn path=/main/trunk/; revision=10911
* Clean up Scheduler.merge() and split out a _save_resume_list() method.Zac Medico2008-07-031-76/+35
| | | | svn path=/main/trunk/; revision=10910
* Add a portage._disable_legacy_globals() function. This deletes theZac Medico2008-07-031-2/+1
| | | | | | | | | | ObjectProxy instances that are used for lazy initialization of legacy global variables. The purpose of deleting them is to prevent new code from referencing these deprecated variables. This allows the removal of the PORTAGE_LEGACY_GLOBALS variable which used to serve the same purpose. svn path=/main/trunk/; revision=10909
* Split out a _restart_if_necessary() method from Scheduler._merge().Zac Medico2008-07-031-48/+74
| | | | svn path=/main/trunk/; revision=10908
* Remove unused BinpkgMerge class.Zac Medico2008-07-031-27/+0
| | | | svn path=/main/trunk/; revision=10907
* Remove the Scheduler._post_merge() method, and create a newZac Medico2008-07-031-30/+29
| | | | | | _show_failed_fetches() method. svn path=/main/trunk/; revision=10906
* Split out a new _add_prefetchers() method from Scheduler._merge().Zac Medico2008-07-031-26/+34
| | | | svn path=/main/trunk/; revision=10905
* Split out a new _check_manifests() method from Scheduler._merge() sinceZac Medico2008-07-031-41/+55
| | | | | | | this method is not useful for parallel scheduling and any useful code needs to be relocated. svn path=/main/trunk/; revision=10903
* Implement asynchronous binary package extraction, so that the schedulerZac Medico2008-07-031-4/+128
| | | | | | can run while a package is extracting in the background. svn path=/main/trunk/; revision=10902
* Make BinpkgFetcherAsync inherit from SpawnProcess.Zac Medico2008-07-031-74/+11
| | | | svn path=/main/trunk/; revision=10901
* Add missing BinpkgFetcherAsync.registered attribute.Zac Medico2008-07-031-1/+1
| | | | svn path=/main/trunk/; revision=10900
* Move post ebuild phase code (originally from spawnebuild) fromZac Medico2008-07-031-6/+8
| | | | | | EbuildExecuter.execute() to EbuildPhase._set_returncode(). svn path=/main/trunk/; revision=10899
* Split out a SpawnProcess base class out of EbuildFetcherAsync.Zac Medico2008-07-031-38/+74
| | | | svn path=/main/trunk/; revision=10898
* Fix EbuildBuildDir so that it works properly with binary packages.Zac Medico2008-07-021-14/+21
| | | | svn path=/main/trunk/; revision=10895
* Handle missing select.poll on interix by using select() to emulate a pollZac Medico2008-07-021-1/+61
| | | | | | object. svn path=/main/trunk/; revision=10894
* Remove $PORTAGE_BUILDDIR locking from portage.pkgmerge() and useZac Medico2008-07-021-6/+12
| | | | | | an instance of EbuildBuildDir instead. svn path=/main/trunk/; revision=10892
* Split out a SubProcess base class for EbuildFetcherAsync, EbuildPhase,Zac Medico2008-07-021-114/+53
| | | | | | and BinpkgFetcherAsync. svn path=/main/trunk/; revision=10891
* Fix EbuildBuild.execute() to return os.EX_OK on success.Zac Medico2008-07-021-0/+1
| | | | svn path=/main/trunk/; revision=10889
* Fix inverted buildpkgonly logic.Zac Medico2008-07-021-1/+1
| | | | svn path=/main/trunk/; revision=10888
* Split out a Binpkg class from code inside Scheduler._execute_task().Zac Medico2008-07-021-54/+104
| | | | svn path=/main/trunk/; revision=10887
* Remove debugging code from the previous commit.Zac Medico2008-07-021-4/+0
| | | | svn path=/main/trunk/; revision=10886
* * Rename existing EbuildBuild class to EbuildExecuter.Zac Medico2008-07-021-127/+210
| | | | | | | * Split more code out of Scheduler._execute_task() and use it to make a more comprehensive EbuildBuild class. svn path=/main/trunk/; revision=10885
* Py3k compatibility patch #1 by Ali Polatel <hawking@g.o>.Zac Medico2008-07-011-3/+3
| | | | | | Replace dict.has_key() calls with "in" and "not in" operators.. svn path=/main/trunk/; revision=10870
* Add a "prefix" keyword parameter to slot_dict_class() which controls theZac Medico2008-07-011-29/+29
| | | | | | | | prefix used when mapping attribute names from keys. Use this to change the syntax from files["foo"] to files.foo (it's fewer characters to look at). svn path=/main/trunk/; revision=10869
* Add a new BinpkgFetcherAsync class and use it to implement parellel-fetchZac Medico2008-07-011-15/+240
| | | | | | for --getbinpkg. svn path=/main/trunk/; revision=10868
* Clear the self._task_queue to avoid duplicate parallel-fetch tasksZac Medico2008-06-301-0/+1
| | | | | | in --keep-going mode. svn path=/main/trunk/; revision=10856
* Reimplement parallel-fetch by spawning the `ebuild fetch` command for eachZac Medico2008-06-301-91/+231
| | | | | | | | ebuild. The benefit of using this approach is that it can be integrated together with parallel build scheduling that's planned. Parallel-fetch support for binhost is not implemented yet, though it worked previously. svn path=/main/trunk/; revision=10855
* Rename the MergeTask class to Scheduler.Zac Medico2008-06-301-3/+3
| | | | svn path=/main/trunk/; revision=10853
* Centralize select.poll() event handling in MergeTask._schedule(). This willZac Medico2008-06-291-39/+47
| | | | | | | allow the parent process to handle output of multiple child processes running in parllel. svn path=/main/trunk/; revision=10851
* * Add "fd_pipes" and "returnpid" parameters to doebuild() and passZac Medico2008-06-291-5/+167
| | | | | | | | | | | | | | these into spawn calls, enabling ebuild processes to execute asynchronously. * Add a EbuildPhase class that's derived from the pty logging code inside portage.spawn(). * Integrate post-phase code from spawnebuild() into EbuildBuild.execute() so that it still gets called even though doebuild() calls execute asynchronously. svn path=/main/trunk/; revision=10849
* In EbuildBuild.execute(), call doebuild() separately for each phase sinceZac Medico2008-06-291-4/+9
| | | | | | | it will be easier to add asynchronous support to doebuild() if it's called this way. svn path=/main/trunk/; revision=10848
* Handle invalid atoms inside depgraph._add_pkg_deps(), to avoid anZac Medico2008-06-291-0/+7
| | | | | | | unhandled InvalidAtom exception from dep_expand() when matching against the vardb. svn path=/main/trunk/; revision=10844
* Move clean code, from the previous commit, from doebuild() toZac Medico2008-06-291-2/+7
| | | | | | EbuildBuild.execute() where it fits better. svn path=/main/trunk/; revision=10843
* Instead of calling the ebuild "clean" phase in MergeTask.merge(),Zac Medico2008-06-291-5/+2
| | | | | | | move it inside doebuild() where it can be tied into the actionmap_deps framework. svn path=/main/trunk/; revision=10842
* Split out an EbuildBuildDir class to handle locking of the build dir.Zac Medico2008-06-291-34/+76
| | | | svn path=/main/trunk/; revision=10841
* Make EbuildBinpkg delegate everything up to src_install() toZac Medico2008-06-281-2/+17
| | | | | | the EbuildBuild class. svn path=/main/trunk/; revision=10839
* * Remove unused EbuildBuild.pretend attribute.Zac Medico2008-06-281-7/+7
| | | | | | * Add TODO not about asynchronous execution. svn path=/main/trunk/; revision=10838
* Use the EbuildMerge class instead of portage.merge().Zac Medico2008-06-281-8/+5
| | | | svn path=/main/trunk/; revision=10834
* Split out a PackageUninstall class.Zac Medico2008-06-281-6/+24
| | | | svn path=/main/trunk/; revision=10833
* * Split out an EbuildBinpkg class.Zac Medico2008-06-281-16/+44
| | | | | | * Remove unused EbuildBuild.ldpath_mtimes attribute. svn path=/main/trunk/; revision=10832