summaryrefslogtreecommitdiffstats
path: root/pym
Commit message (Collapse)AuthorAgeFilesLines
* MergeProcess: Fix PORTAGE_BACKGROUND/LOG_FILE useZac Medico2011-03-244-14/+33
| | | | | | | | In this subprocess we don't want PORTAGE_BACKGROUND to suppress stdout/stderr output since they are pipes. We also don't want to open PORTAGE_LOG_FILE, since it will already be opened by the parent process, so we set the PORTAGE_BACKGROUND="subprocess" value for use in conditional logging code involving PORTAGE_LOG_FILE.
* Preserve elog message continuity during updates.Zac Medico2011-03-243-3/+7
| | | | | | This integrates the fix from commit 8209aeab647b1ab80a64d5931069b3533776ef75 with the asynchronous merge changes from commit 7535cabdf2fab76fc55df83643157613dfd66be9.
* Merge packages asynchronously in Portage.David James2011-03-247-108/+182
| | | | | | | | This allows for the scheduler to continue to run while packages are being merged and installed, allowing for additional parallelism and making better use of the CPUs. Review URL: http://codereview.chromium.org/6713043
* Update Portage to sync BlockerDB at init.David James2011-03-243-30/+25
| | | | | | | | | | | | Currently, Portage syncs the BlockerDB before every merge. This slows down merges considerably because it requires reading the entire vardb from disk. Since Portage doesn't merge conflicting packages anyway, we can optimize this by just reading the vardb at initialization and caching that. Change-Id: I6701926f022ef3aa2da10482fc8b09573ae24610 Review URL: http://codereview.chromium.org/6688037
* emerge: support [ y | n ] for --askZac Medico2011-03-242-3/+18
| | | | | | This allows --ask to be enabled via EMERGE_DEFAULT_OPTS, and then temporarily disabled via the command-line. This may be useful for programs that call emerge non-interactively, as in bug #360233.
* get_dep_chain: handle InvalidDependStringZac Medico2011-03-231-2/+6
|
* chk_updated_cfg_files: fix whitespace in messageZac Medico2011-03-201-1/+2
| | | | Thanks to Dennis Schridde in bug #359681.
* emerge_main: add "args" parameter (sys.argv[1:])Zac Medico2011-03-201-7/+12
| | | | | Also, fix local portage.debug import so that "global portage" is not necessary.
* TaskSequence: also call CompositeTask._cancel()Zac Medico2011-03-181-0/+1
| | | | | | This is a regression from commit 363a7478a100495d2e8597bc6c6d2fdac94339e0 but it's usually not noticeable with Ctrl-C since SIGINT is propagated to nested processes.
* Update timestamps in headers of modified files.v2.2.0_alpha28Zac Medico2011-03-184-4/+4
|
* PackageVirtualDbapi: fix get() for reposyntaxZac Medico2011-03-182-3/+3
|
* CompositeTask: fix _wait for TASK_QUEUEDZac Medico2011-03-181-3/+19
| | | | | | | Though this case might never have been triggered, the logic was broken for cases in which self.cancelled was false and a task was queued. In this case we need to call back into the scheduler until the queued task is started or we are cancelled, whichever comes first.
* EbuildIpcDaemon: use non-blocking writeZac Medico2011-03-171-5/+24
| | | | | | | | | | | This prevents the Scheduler from hanging if the client is killed before we can send the reply, as reported by David James: http://codereview.chromium.org/6713003 This commit depends on ebuild-ipc (the client) opening the other side of this fifo before it sends its request, which has already been added in commit eff879ff0ce7dcc1ce68d5f16de1ec73051f8c18.
* AsynchronousLock: implement _cancelZac Medico2011-03-171-0/+8
|
* dep_check: return errors as unicodeZac Medico2011-03-171-4/+5
| | | | | | | | | | | This should prevent the following error due to returning raw bytes, reported in forum thread #869281: File "pym/_emerge/BlockerDB.py", line 72, in findInstalledBlockers portage.writemsg("!!! %s/*DEPEND: %s\n" % \ (pkg_location, atoms), noiselevel=-1) UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 23: ordinal not in range(128)
* AsynchronousTask: add _cancel template methodZac Medico2011-03-167-17/+21
|
* Update Scheduler to protect against infinite loopDavid James2011-03-161-4/+2
| | | | | If we have running tasks, but we're not listening to these tasks, we're going to loop forever. So throw an exception in this case.
* Scheduler: tweak prefetcher cancellation logicZac Medico2011-03-164-7/+16
| | | | | This should prevent "TypeError: an integer is required" raised from waitpid when trying to cancel a prefetcher that never started.
* CompositeTask: handle unstarted terminated tasksZac Medico2011-03-163-6/+24
|
* CompositeTask: fix assertion in _waitZac Medico2011-03-161-0/+5
|
* AsynchronousTask: always call wait() if cancelledZac Medico2011-03-164-10/+7
| | | | | | This is needed in order to ensure that exit listeners are called. Subclasses call the base class cancel() method in order to inherit the wait() call.
* Scheduler: terminate _merge_wait_queueZac Medico2011-03-161-0/+4
|
* iter_owners: try the hashed approach in any caseZac Medico2011-03-161-8/+0
| | | | | | Previously, the slow approach was used whenever more than 10 files were given as input. However, large numbers of files don't necessarily mean the hashed approach is a bad choice, so try it in any case.
* slot_conflict: tweak message and fix grammarZac Medico2011-03-151-1/+1
|
* emerge: support [ y | n ] for --quietv2.2.0_alpha27Zac Medico2011-03-142-5/+31
| | | | | | This allows --quiet and --quiet-build to be enabled via EMERGE_DEFAULT_OPTS, and then temporarily disabled via the command- line.
* Update timestamps in headers of modified files.Zac Medico2011-03-142-2/+2
|
* Scheduler: fix AttributeError in _terminate_tasksZac Medico2011-03-121-1/+4
| | | | | Thanks to David James <davidjames@google.com> for reporting this error: AttributeError: 'EbuildPhase' object has no attribute 'merge'
* Make all temp dirs under $PORTAGE_TMPDIR/portage.Zac Medico2011-03-112-11/+14
| | | | | | | | | | | Before, some temporary directories would be created directly in $PORTAGE_TMPDIR. Now, all are subdirectories of $PORTAGE_TMPDIR/portage since it's common for people to assume that this is the case anyway. With the default PORTAGE_TMPDIR setting of /var/tmp, this allows /var/tmp to be mounted with the "noexec" option, as long as the /var/tmp/portage subdirectory is a separate mount (people have already tended to assume that they can do this, so we're making it a reality in order to avoid any more bug reports). This will fix bug #346899.
* PollScheduler: tweek termination logicZac Medico2011-03-104-11/+36
| | | | | | | | | * PollScheduler and all subclasses now use the _terminated_tasks variable to check whether or not _terminate_tasks() has been called, and behave appropriately in that case. * The _schedule_tasks() method now has documentation about the relationship with _terminate_tasks() and _terminated_tasks.
* PollScheduler: call _terminate_tasks in _scheduleZac Medico2011-03-101-7/+11
| | | | | This prevents it from being called while the _schedule_tasks() implementation is running, in order to avoid potential interference.
* Scheduler: avoid infinite loop after CTRL-CZac Medico2011-03-101-1/+14
| | | | | | | | If CTRL-C was received at certain times, it was possible for discarded tasks to be erroneously left in Scheduler._running_tasks, which would cause the main loop to run infinitely. Thanks to David James <davidjames@google.com> for reporting this issue and helping to devise a solution.
* AbstractPollTask: log exceptional eventsZac Medico2011-03-092-1/+15
| | | | | | | | | | | | | | | | Previously, when AbstractPollTask receives a POLLERR or POLLNVAL event, it would silently cancel the task. Now it will generate a message like this: !!! SpawnProcess received strange poll event: 8 The message is displayed via a new _log_poll_exception method, which is overridden by AbstractEbuildProcess to log the message via elog. This might help diagnose reported cases of SIGTERM signals killing ebuild processes for no apparent reason: http://code.google.com/p/chromium-os/issues/detail?id=12968
* unmerge: use vardbapi._dblink() to simplifyZac Medico2011-03-081-4/+1
| | | | The dblink constructor is complex and best avoided.
* Bug #357009: Disallow uninstallation of currently used Python interpreter.Arfrever Frehtes Taifersar Arahesis2011-03-091-13/+21
|
* portdbapi: source ebuilds when eclass dir missingZac Medico2011-03-071-2/+0
| | | | This will fix bug #357581.
* eclass_cache: remove deprecated methodsZac Medico2011-03-051-15/+2
|
* config: quote overlays containing spacesZac Medico2011-03-041-12/+13
| | | | This will fix bug #357297.
* Remove redundant CONTENTS parent dir generation.Zac Medico2011-03-021-28/+1
| | | | | | This code is redunant now, since similar code has been added to dblink.getcontents() in commit e0b4048274b2cfc1617f2eff379cbe8435e13ed4.
* dblink.getcontents(): generate parent directoriesZac Medico2011-03-021-0/+16
| | | | | We can't necessarily assume that they are explicitly listed in CONTENTS, and they are crucial for callers such as dblink.isowner().
* grablines: allow inline commentsZac Medico2011-03-021-3/+13
|
* grabdict: allow inline commentsTheo Chatzimichos2011-03-021-0/+7
|
* depgraph: don't output \b to non-ttyZac Medico2011-03-021-2/+7
| | | | This will fix bug #357093.
* action_deselect: expand cat against world atomsZac Medico2011-03-011-12/+24
|
* unmerge: log pre/postrm FAILED messagesZac Medico2011-03-011-6/+11
|
* owners_cache: fix EPREFIX miscalculationZac Medico2011-03-011-5/+3
| | | | | This reverts commit 43e0b3ea4289aab9b4258d29d06afac40abd6c01 and renames the root_len variable to eroot_len (for clarity).
* owners_cache: add parent dirs deeper than EPREFIXZac Medico2011-03-011-1/+3
|
* unmerge: implicitly unmerge parent directoriesZac Medico2011-03-011-3/+16
| | | | | We can't necessarily assume that they are explicitly listed in CONTENTS.
* owners_cache: implicitly add parent directoriesZac Medico2011-03-011-1/+18
| | | | | We can't necessarily assume that they are explicitly listed in CONTENTS.
* repoman: variable.usedwithhelpers ignore quotedZac Medico2011-02-281-1/+3
|
* depgraph: case insensitive search for unsatisfiedZac Medico2011-02-281-1/+12
| | | | This will fix bug #356555.