From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 03F28138A1F for ; Fri, 18 Apr 2014 19:51:00 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 66F05E09C0; Fri, 18 Apr 2014 19:50:57 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id C9AD4E09C0 for ; Fri, 18 Apr 2014 19:50:56 +0000 (UTC) Received: from spoonbill.gentoo.org (spoonbill.gentoo.org [81.93.255.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A3B723400E8 for ; Fri, 18 Apr 2014 19:50:55 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by spoonbill.gentoo.org (Postfix) with ESMTP id 1CDE318167 for ; Fri, 18 Apr 2014 19:50:54 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <1397850615.cb7d234d24bcada5e486ab1975d3592ac5af7218.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/EbuildBuild.py pym/_emerge/TaskSequence.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: cb7d234d24bcada5e486ab1975d3592ac5af7218 X-VCS-Branch: master Date: Fri, 18 Apr 2014 19:50:54 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: e8f43e1d-5cb0-4926-bd36-59fe9a8652b9 X-Archives-Hash: 048ea52363b62b3c6e3d0d06b29c9025 commit: cb7d234d24bcada5e486ab1975d3592ac5af7218 Author: Zac Medico gentoo org> AuthorDate: Fri Apr 18 19:50:15 2014 +0000 Commit: Zac Medico gentoo org> CommitDate: Fri Apr 18 19:50:15 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=cb7d234d EbuildBuild: handle empty PORTAGE_BINPKG_FORMAT Also, make TaskSequence._start_next_task() call exit hooks if the queue happens to be empty. X-Gentoo-Bug: 506186 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=506186 --- pym/_emerge/EbuildBuild.py | 9 +++++++-- pym/_emerge/TaskSequence.py | 26 +++++++++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py index e13b1cf..86a5631 100644 --- a/pym/_emerge/EbuildBuild.py +++ b/pym/_emerge/EbuildBuild.py @@ -1,4 +1,4 @@ -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 from _emerge.EbuildExecuter import EbuildExecuter @@ -321,7 +321,12 @@ class EbuildBuild(CompositeTask): pkg=self.pkg, scheduler=self.scheduler, settings=self.settings)) - self._start_task(binpkg_tasks, self._buildpkg_exit) + if binpkg_tasks: + self._start_task(binpkg_tasks, self._buildpkg_exit) + return + + self._final_exit(build) + self.wait() def _buildpkg_exit(self, packager): """ diff --git a/pym/_emerge/TaskSequence.py b/pym/_emerge/TaskSequence.py index b4bfefe..1f2ba94 100644 --- a/pym/_emerge/TaskSequence.py +++ b/pym/_emerge/TaskSequence.py @@ -1,10 +1,12 @@ -# Copyright 1999-2011 Gentoo Foundation +# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +import sys +from collections import deque + from portage import os from _emerge.CompositeTask import CompositeTask from _emerge.AsynchronousTask import AsynchronousTask -from collections import deque class TaskSequence(CompositeTask): """ @@ -30,9 +32,15 @@ class TaskSequence(CompositeTask): CompositeTask._cancel(self) def _start_next_task(self): - if self._task_queue: - self._start_task(self._task_queue.popleft(), - self._task_exit_handler) + try: + task = self._task_queue.popleft() + except IndexError: + self._current_task = None + self.returncode = os.EX_OK + self.wait() + return + + self._start_task(task, self._task_exit_handler) def _task_exit_handler(self, task): if self._default_exit(task) != os.EX_OK: @@ -43,3 +51,11 @@ class TaskSequence(CompositeTask): self._final_exit(task) self.wait() + def __bool__(self): + return bool(self._task_queue) + + if sys.hexversion < 0x3000000: + __nonzero__ = __bool__ + + def __len__(self): + return len(self._task_queue)