summaryrefslogtreecommitdiffstats
path: root/pym
Commit message (Collapse)AuthorAgeFilesLines
* Update header timestamps for modified files.Zac Medico2011-03-258-8/+8
|
* MergeProcess: call elog_process for replaced pkgsZac Medico2011-03-253-5/+8
|
* dblink: use self.mycpv in _elogZac Medico2011-03-251-2/+2
|
* MergeProcess: toggle vardbapi._pkgs_changedZac Medico2011-03-251-0/+1
|
* config: blacklist PORTAGE_BACKGROUND* varsZac Medico2011-03-251-1/+5
|
* MergeProcess: handle unicode in elog pipeZac Medico2011-03-252-3/+3
|
* env_update: remove sleep_for_mtime_granularityDavid James2011-03-251-11/+7
| | | | | | | | Instead of sleeping, use os.utime to avoid mtime ambiguity. Change-Id: I359ececca19b6be9f5997ac5c8fe6fea6ea49dd5 Review URL: http://codereview.chromium.org/6676150
* PollScheduler: tweak _unregister event cleanupZac Medico2011-03-251-5/+9
|
* PollScheduler: handle missing log directoryZac Medico2011-03-251-12/+23
| | | | | This can be triggered by AbstractPollTask._log_poll_exception(), as reported by Michael Haubenwallner <haubi@gentoo.org> for AIX.
* dblink: fix elog bugs for unmerge phasesZac Medico2011-03-251-18/+22
|
* vartree: remove broken scheduler referenceZac Medico2011-03-251-2/+1
|
* vartree: remove unused scheduler referencesZac Medico2011-03-251-33/+7
| | | | | Since all the merge code runs inside MergeProcess now, there's no reason to yield to the scheduler.
* MergeProcess: separate unmerge output from mergeZac Medico2011-03-253-29/+46
| | | | | | | The unmerge output has been mixed together with the merge output since commit 7535cabdf2fab76fc55df83643157613dfd66be9 because dblink._scheduler was set to None. Now it's fixed to produce separate logs like it used to.
* ebuild(1): fix AttributeError for merge phaseZac Medico2011-03-251-1/+2
| | | | | | | | | | File "pym/portage/dbapi/vartree.py", line 4043, in merge merge_task.start() File "pym/_emerge/AsynchronousTask.py", line 23, in start self._start() File "pym/_emerge/SpawnProcess.py", line 118, in _start self._reg_id = self.scheduler.register(files.process.fileno(), AttributeError: 'NoneType' object has no attribute 'register'
* MergeProcess: close elog_writer_fd leakZac Medico2011-03-251-0/+1
|
* 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.