From cf6a5a0434ccf52ef59164d8524c4ad35b31fb82 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Sat, 27 Jun 2009 14:44:56 +0000 Subject: [PATCH] Merged from trunk -r13688:13690 | 13689 | Split out a depgraph._iter_match_pkgs() method from | | zmedico | _select_pkg_highest_available_imp(). | | 13690 | Add/update copyright headers. | | zmedico | | svn path=/main/branches/prefix/; revision=13715 --- pym/_emerge/AbstractDepPriority.py | 4 + pym/_emerge/AbstractPollTask.py | 4 + pym/_emerge/AsynchronousTask.py | 4 + pym/_emerge/AtomArg.py | 4 + pym/_emerge/Binpkg.py | 4 + pym/_emerge/BinpkgExtractorAsync.py | 4 + pym/_emerge/BinpkgFetcher.py | 4 + pym/_emerge/BinpkgPrefetcher.py | 4 + pym/_emerge/BinpkgVerifier.py | 4 + pym/_emerge/Blocker.py | 4 + pym/_emerge/BlockerCache.py | 4 + pym/_emerge/BlockerDB.py | 4 + pym/_emerge/BlockerDepPriority.py | 4 + pym/_emerge/CompositeTask.py | 4 + pym/_emerge/DepPriority.py | 4 + pym/_emerge/DepPriorityNormalRange.py | 4 + pym/_emerge/DepPrioritySatisfiedRange.py | 4 + pym/_emerge/Dependency.py | 4 + pym/_emerge/DependencyArg.py | 4 + pym/_emerge/EbuildBinpkg.py | 4 + pym/_emerge/EbuildBuild.py | 4 + pym/_emerge/EbuildBuildDir.py | 4 + pym/_emerge/EbuildExecuter.py | 4 + pym/_emerge/EbuildFetcher.py | 4 + pym/_emerge/EbuildFetchonly.py | 4 + pym/_emerge/EbuildMerge.py | 4 + pym/_emerge/EbuildMetadataPhase.py | 4 + pym/_emerge/EbuildPhase.py | 4 + pym/_emerge/EbuildProcess.py | 4 + pym/_emerge/FakeVartree.py | 4 + pym/_emerge/JobStatusDisplay.py | 4 + pym/_emerge/MergeListItem.py | 4 + pym/_emerge/MetadataRegen.py | 4 + pym/_emerge/MiscFunctionsProcess.py | 4 + pym/_emerge/Package.py | 4 + pym/_emerge/PackageArg.py | 4 + pym/_emerge/PackageCounters.py | 4 + pym/_emerge/PackageMerge.py | 4 + pym/_emerge/PackageUninstall.py | 4 + pym/_emerge/PackageVirtualDbapi.py | 4 + pym/_emerge/PipeReader.py | 4 + pym/_emerge/PollConstants.py | 4 + pym/_emerge/PollScheduler.py | 4 + pym/_emerge/PollSelectAdapter.py | 4 + pym/_emerge/ProgressHandler.py | 4 + pym/_emerge/QueueScheduler.py | 4 + pym/_emerge/RepoDisplay.py | 4 + pym/_emerge/RootConfig.py | 4 + pym/_emerge/Scheduler.py | 4 + pym/_emerge/SequentialTaskQueue.py | 4 + pym/_emerge/SetArg.py | 4 + pym/_emerge/SlotObject.py | 4 + pym/_emerge/SpawnProcess.py | 4 + pym/_emerge/SubProcess.py | 4 + pym/_emerge/Task.py | 4 + pym/_emerge/TaskScheduler.py | 4 + pym/_emerge/TaskSequence.py | 4 + pym/_emerge/UninstallFailure.py | 4 + pym/_emerge/UnmergeDepPriority.py | 4 + pym/_emerge/UseFlagDisplay.py | 4 + pym/_emerge/__init__.py | 3 +- pym/_emerge/_find_deep_system_runtime_deps.py | 4 + pym/_emerge/_flush_elog_mod_echo.py | 4 + pym/_emerge/actions.py | 4 + pym/_emerge/changelog.py | 4 + pym/_emerge/clear_caches.py | 4 + pym/_emerge/countdown.py | 4 + pym/_emerge/create_depgraph_params.py | 4 + pym/_emerge/create_world_atom.py | 4 + pym/_emerge/depgraph.py | 137 ++++++++++-------- pym/_emerge/emergelog.py | 4 + pym/_emerge/format_size.py | 3 + pym/_emerge/getloadavg.py | 4 + pym/_emerge/help.py | 2 +- pym/_emerge/is_valid_package_atom.py | 4 + pym/_emerge/search.py | 4 + pym/_emerge/show_invalid_depstring_notice.py | 4 + pym/_emerge/stdout_spinner.py | 4 + pym/_emerge/unmerge.py | 4 + pym/_emerge/userquery.py | 4 + pym/_emerge/visible.py | 4 + 81 files changed, 392 insertions(+), 61 deletions(-) diff --git a/pym/_emerge/AbstractDepPriority.py b/pym/_emerge/AbstractDepPriority.py index 840054d02..53d6a8a09 100644 --- a/pym/_emerge/AbstractDepPriority.py +++ b/pym/_emerge/AbstractDepPriority.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject class AbstractDepPriority(SlotObject): __slots__ = ("buildtime", "runtime", "runtime_post") diff --git a/pym/_emerge/AbstractPollTask.py b/pym/_emerge/AbstractPollTask.py index 4262b0b34..491e803c2 100644 --- a/pym/_emerge/AbstractPollTask.py +++ b/pym/_emerge/AbstractPollTask.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AsynchronousTask import AsynchronousTask from _emerge.PollConstants import PollConstants class AbstractPollTask(AsynchronousTask): diff --git a/pym/_emerge/AsynchronousTask.py b/pym/_emerge/AsynchronousTask.py index 089e1acfc..dace8b154 100644 --- a/pym/_emerge/AsynchronousTask.py +++ b/pym/_emerge/AsynchronousTask.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject class AsynchronousTask(SlotObject): """ diff --git a/pym/_emerge/AtomArg.py b/pym/_emerge/AtomArg.py index 938204692..6178be266 100644 --- a/pym/_emerge/AtomArg.py +++ b/pym/_emerge/AtomArg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DependencyArg import DependencyArg # for an explanation on this logic, see pym/_emerge/__init__.py diff --git a/pym/_emerge/Binpkg.py b/pym/_emerge/Binpkg.py index 7307b0596..4e710fe75 100644 --- a/pym/_emerge/Binpkg.py +++ b/pym/_emerge/Binpkg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.EbuildPhase import EbuildPhase from _emerge.BinpkgFetcher import BinpkgFetcher from _emerge.BinpkgExtractorAsync import BinpkgExtractorAsync diff --git a/pym/_emerge/BinpkgExtractorAsync.py b/pym/_emerge/BinpkgExtractorAsync.py index 427dd8d14..e22fcf65d 100644 --- a/pym/_emerge/BinpkgExtractorAsync.py +++ b/pym/_emerge/BinpkgExtractorAsync.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SpawnProcess import SpawnProcess # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/BinpkgFetcher.py b/pym/_emerge/BinpkgFetcher.py index 8002d7b9a..47c114dad 100644 --- a/pym/_emerge/BinpkgFetcher.py +++ b/pym/_emerge/BinpkgFetcher.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SpawnProcess import SpawnProcess import urlparse import sys diff --git a/pym/_emerge/BinpkgPrefetcher.py b/pym/_emerge/BinpkgPrefetcher.py index b275cc88f..a1e63fd32 100644 --- a/pym/_emerge/BinpkgPrefetcher.py +++ b/pym/_emerge/BinpkgPrefetcher.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.BinpkgFetcher import BinpkgFetcher from _emerge.CompositeTask import CompositeTask from _emerge.BinpkgVerifier import BinpkgVerifier diff --git a/pym/_emerge/BinpkgVerifier.py b/pym/_emerge/BinpkgVerifier.py index b56ee4dc0..56190a60b 100644 --- a/pym/_emerge/BinpkgVerifier.py +++ b/pym/_emerge/BinpkgVerifier.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AsynchronousTask import AsynchronousTask from portage.util import writemsg import sys diff --git a/pym/_emerge/Blocker.py b/pym/_emerge/Blocker.py index ec24d57cf..ea93d6b8a 100644 --- a/pym/_emerge/Blocker.py +++ b/pym/_emerge/Blocker.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.Task import Task # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/BlockerCache.py b/pym/_emerge/BlockerCache.py index 3936b1245..c13143bb2 100644 --- a/pym/_emerge/BlockerCache.py +++ b/pym/_emerge/BlockerCache.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from portage.util import writemsg from portage.data import secpass # for an explanation on this logic, see pym/_emerge/__init__.py diff --git a/pym/_emerge/BlockerDB.py b/pym/_emerge/BlockerDB.py index f27b3301b..56b606a74 100644 --- a/pym/_emerge/BlockerDB.py +++ b/pym/_emerge/BlockerDB.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + # for an explanation on this logic, see pym/_emerge/__init__.py import os import sys diff --git a/pym/_emerge/BlockerDepPriority.py b/pym/_emerge/BlockerDepPriority.py index 8bc249b75..626013c18 100644 --- a/pym/_emerge/BlockerDepPriority.py +++ b/pym/_emerge/BlockerDepPriority.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DepPriority import DepPriority class BlockerDepPriority(DepPriority): __slots__ = () diff --git a/pym/_emerge/CompositeTask.py b/pym/_emerge/CompositeTask.py index 92a441bab..25de4dcf3 100644 --- a/pym/_emerge/CompositeTask.py +++ b/pym/_emerge/CompositeTask.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AsynchronousTask import AsynchronousTask import os class CompositeTask(AsynchronousTask): diff --git a/pym/_emerge/DepPriority.py b/pym/_emerge/DepPriority.py index d094cd043..6ea704337 100644 --- a/pym/_emerge/DepPriority.py +++ b/pym/_emerge/DepPriority.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AbstractDepPriority import AbstractDepPriority class DepPriority(AbstractDepPriority): diff --git a/pym/_emerge/DepPriorityNormalRange.py b/pym/_emerge/DepPriorityNormalRange.py index ab276b42b..d9176487b 100644 --- a/pym/_emerge/DepPriorityNormalRange.py +++ b/pym/_emerge/DepPriorityNormalRange.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DepPriority import DepPriority class DepPriorityNormalRange(object): """ diff --git a/pym/_emerge/DepPrioritySatisfiedRange.py b/pym/_emerge/DepPrioritySatisfiedRange.py index bb41780c8..e2417b529 100644 --- a/pym/_emerge/DepPrioritySatisfiedRange.py +++ b/pym/_emerge/DepPrioritySatisfiedRange.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DepPriority import DepPriority class DepPrioritySatisfiedRange(object): """ diff --git a/pym/_emerge/Dependency.py b/pym/_emerge/Dependency.py index 6d6b23be5..6f52744c0 100644 --- a/pym/_emerge/Dependency.py +++ b/pym/_emerge/Dependency.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DepPriority import DepPriority from _emerge.SlotObject import SlotObject class Dependency(SlotObject): diff --git a/pym/_emerge/DependencyArg.py b/pym/_emerge/DependencyArg.py index 1ba03bbc6..f3b0d0f7f 100644 --- a/pym/_emerge/DependencyArg.py +++ b/pym/_emerge/DependencyArg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + class DependencyArg(object): def __init__(self, arg=None, root_config=None): self.arg = arg diff --git a/pym/_emerge/EbuildBinpkg.py b/pym/_emerge/EbuildBinpkg.py index 3522184fe..4f5159d78 100644 --- a/pym/_emerge/EbuildBinpkg.py +++ b/pym/_emerge/EbuildBinpkg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.EbuildProcess import EbuildProcess import os class EbuildBinpkg(EbuildProcess): diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py index 1ac270394..effa5fcfe 100644 --- a/pym/_emerge/EbuildBuild.py +++ b/pym/_emerge/EbuildBuild.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.EbuildExecuter import EbuildExecuter from _emerge.EbuildPhase import EbuildPhase from _emerge.EbuildBinpkg import EbuildBinpkg diff --git a/pym/_emerge/EbuildBuildDir.py b/pym/_emerge/EbuildBuildDir.py index 3e76a47c0..abef92e7b 100644 --- a/pym/_emerge/EbuildBuildDir.py +++ b/pym/_emerge/EbuildBuildDir.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/EbuildExecuter.py b/pym/_emerge/EbuildExecuter.py index 7845828ac..bf05dc3b6 100644 --- a/pym/_emerge/EbuildExecuter.py +++ b/pym/_emerge/EbuildExecuter.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.EbuildPhase import EbuildPhase from _emerge.TaskSequence import TaskSequence from _emerge.CompositeTask import CompositeTask diff --git a/pym/_emerge/EbuildFetcher.py b/pym/_emerge/EbuildFetcher.py index 86a717af9..b17484565 100644 --- a/pym/_emerge/EbuildFetcher.py +++ b/pym/_emerge/EbuildFetcher.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SpawnProcess import SpawnProcess from _emerge.EbuildBuildDir import EbuildBuildDir # for an explanation on this logic, see pym/_emerge/__init__.py diff --git a/pym/_emerge/EbuildFetchonly.py b/pym/_emerge/EbuildFetchonly.py index 818b842e2..e89d30fae 100644 --- a/pym/_emerge/EbuildFetchonly.py +++ b/pym/_emerge/EbuildFetchonly.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject import shutil # for an explanation on this logic, see pym/_emerge/__init__.py diff --git a/pym/_emerge/EbuildMerge.py b/pym/_emerge/EbuildMerge.py index e69bcef6a..b0776ed76 100644 --- a/pym/_emerge/EbuildMerge.py +++ b/pym/_emerge/EbuildMerge.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/EbuildMetadataPhase.py b/pym/_emerge/EbuildMetadataPhase.py index 7f99ebc45..46db6a0f3 100644 --- a/pym/_emerge/EbuildMetadataPhase.py +++ b/pym/_emerge/EbuildMetadataPhase.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SubProcess import SubProcess from _emerge.PollConstants import PollConstants import sys diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index 2d76992e4..d88f9e77a 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.MiscFunctionsProcess import MiscFunctionsProcess from _emerge.EbuildProcess import EbuildProcess from _emerge.CompositeTask import CompositeTask diff --git a/pym/_emerge/EbuildProcess.py b/pym/_emerge/EbuildProcess.py index b3b3dabfd..d6d7a5d78 100644 --- a/pym/_emerge/EbuildProcess.py +++ b/pym/_emerge/EbuildProcess.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SpawnProcess import SpawnProcess # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/FakeVartree.py b/pym/_emerge/FakeVartree.py index 922f53826..2425f1303 100644 --- a/pym/_emerge/FakeVartree.py +++ b/pym/_emerge/FakeVartree.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import os from itertools import izip diff --git a/pym/_emerge/JobStatusDisplay.py b/pym/_emerge/JobStatusDisplay.py index 5c9517850..35dac62fb 100644 --- a/pym/_emerge/JobStatusDisplay.py +++ b/pym/_emerge/JobStatusDisplay.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import formatter import os import sys diff --git a/pym/_emerge/MergeListItem.py b/pym/_emerge/MergeListItem.py index 9238a7a37..aab79da08 100644 --- a/pym/_emerge/MergeListItem.py +++ b/pym/_emerge/MergeListItem.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import os from portage.output import colorize diff --git a/pym/_emerge/MetadataRegen.py b/pym/_emerge/MetadataRegen.py index 479a66feb..f3be52f87 100644 --- a/pym/_emerge/MetadataRegen.py +++ b/pym/_emerge/MetadataRegen.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + # for an explanation on this logic, see pym/_emerge/__init__.py import os import sys diff --git a/pym/_emerge/MiscFunctionsProcess.py b/pym/_emerge/MiscFunctionsProcess.py index 36b287cef..305bbab77 100644 --- a/pym/_emerge/MiscFunctionsProcess.py +++ b/pym/_emerge/MiscFunctionsProcess.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SpawnProcess import SpawnProcess # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index e1283bbf4..c5dcd30e2 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import re from itertools import chain diff --git a/pym/_emerge/PackageArg.py b/pym/_emerge/PackageArg.py index 178ea87ae..29fbf44c5 100644 --- a/pym/_emerge/PackageArg.py +++ b/pym/_emerge/PackageArg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DependencyArg import DependencyArg # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/PackageCounters.py b/pym/_emerge/PackageCounters.py index 91757f004..9da79d389 100644 --- a/pym/_emerge/PackageCounters.py +++ b/pym/_emerge/PackageCounters.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from portage.output import colorize, create_color_func bad = create_color_func("BAD") diff --git a/pym/_emerge/PackageMerge.py b/pym/_emerge/PackageMerge.py index 5fcde1e98..67553ddf8 100644 --- a/pym/_emerge/PackageMerge.py +++ b/pym/_emerge/PackageMerge.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AsynchronousTask import AsynchronousTask from portage.output import colorize class PackageMerge(AsynchronousTask): diff --git a/pym/_emerge/PackageUninstall.py b/pym/_emerge/PackageUninstall.py index 74898ade1..dee26d2f3 100644 --- a/pym/_emerge/PackageUninstall.py +++ b/pym/_emerge/PackageUninstall.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import logging # for an explanation on this logic, see pym/_emerge/__init__.py import os diff --git a/pym/_emerge/PackageVirtualDbapi.py b/pym/_emerge/PackageVirtualDbapi.py index 3967cc726..6049830c4 100644 --- a/pym/_emerge/PackageVirtualDbapi.py +++ b/pym/_emerge/PackageVirtualDbapi.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + # for an explanation on this logic, see pym/_emerge/__init__.py import os import sys diff --git a/pym/_emerge/PipeReader.py b/pym/_emerge/PipeReader.py index 4b2e2f141..d3cc18425 100644 --- a/pym/_emerge/PipeReader.py +++ b/pym/_emerge/PipeReader.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AbstractPollTask import AbstractPollTask from _emerge.PollConstants import PollConstants import sys diff --git a/pym/_emerge/PollConstants.py b/pym/_emerge/PollConstants.py index 13b5f21df..0ec8abbe9 100644 --- a/pym/_emerge/PollConstants.py +++ b/pym/_emerge/PollConstants.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import select class PollConstants(object): diff --git a/pym/_emerge/PollScheduler.py b/pym/_emerge/PollScheduler.py index 3a23877f9..3733af45b 100644 --- a/pym/_emerge/PollScheduler.py +++ b/pym/_emerge/PollScheduler.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import logging import select diff --git a/pym/_emerge/PollSelectAdapter.py b/pym/_emerge/PollSelectAdapter.py index d3b9da990..64f17094e 100644 --- a/pym/_emerge/PollSelectAdapter.py +++ b/pym/_emerge/PollSelectAdapter.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.PollConstants import PollConstants import select class PollSelectAdapter(PollConstants): diff --git a/pym/_emerge/ProgressHandler.py b/pym/_emerge/ProgressHandler.py index 0b0b77532..08ba2c01d 100644 --- a/pym/_emerge/ProgressHandler.py +++ b/pym/_emerge/ProgressHandler.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import time class ProgressHandler(object): def __init__(self): diff --git a/pym/_emerge/QueueScheduler.py b/pym/_emerge/QueueScheduler.py index f88c13caa..27893e39b 100644 --- a/pym/_emerge/QueueScheduler.py +++ b/pym/_emerge/QueueScheduler.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.PollScheduler import PollScheduler class QueueScheduler(PollScheduler): diff --git a/pym/_emerge/RepoDisplay.py b/pym/_emerge/RepoDisplay.py index 708414fb0..420569770 100644 --- a/pym/_emerge/RepoDisplay.py +++ b/pym/_emerge/RepoDisplay.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from portage.output import teal import os class RepoDisplay(object): diff --git a/pym/_emerge/RootConfig.py b/pym/_emerge/RootConfig.py index 8ed11c9f2..8d1a744c6 100644 --- a/pym/_emerge/RootConfig.py +++ b/pym/_emerge/RootConfig.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.PackageVirtualDbapi import PackageVirtualDbapi class RootConfig(object): diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index d10336337..2279ab26c 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import logging import os import sys diff --git a/pym/_emerge/SequentialTaskQueue.py b/pym/_emerge/SequentialTaskQueue.py index 24fac0410..7dcc6e516 100644 --- a/pym/_emerge/SequentialTaskQueue.py +++ b/pym/_emerge/SequentialTaskQueue.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject from collections import deque class SequentialTaskQueue(SlotObject): diff --git a/pym/_emerge/SetArg.py b/pym/_emerge/SetArg.py index 079b7c4d0..987965dba 100644 --- a/pym/_emerge/SetArg.py +++ b/pym/_emerge/SetArg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DependencyArg import DependencyArg from portage.sets import SETPREFIX class SetArg(DependencyArg): diff --git a/pym/_emerge/SlotObject.py b/pym/_emerge/SlotObject.py index 492382694..1205327d6 100644 --- a/pym/_emerge/SlotObject.py +++ b/pym/_emerge/SlotObject.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + class SlotObject(object): __slots__ = ("__weakref__",) diff --git a/pym/_emerge/SpawnProcess.py b/pym/_emerge/SpawnProcess.py index fdd5fa61a..6d8a26405 100644 --- a/pym/_emerge/SpawnProcess.py +++ b/pym/_emerge/SpawnProcess.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SubProcess import SubProcess from _emerge.PollConstants import PollConstants import sys diff --git a/pym/_emerge/SubProcess.py b/pym/_emerge/SubProcess.py index 67d682bc5..37957c394 100644 --- a/pym/_emerge/SubProcess.py +++ b/pym/_emerge/SubProcess.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AbstractPollTask import AbstractPollTask import signal import os diff --git a/pym/_emerge/Task.py b/pym/_emerge/Task.py index 6adb2cd93..dbbdcd24f 100644 --- a/pym/_emerge/Task.py +++ b/pym/_emerge/Task.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.SlotObject import SlotObject class Task(SlotObject): __slots__ = ("_hash_key", "_hash_value") diff --git a/pym/_emerge/TaskScheduler.py b/pym/_emerge/TaskScheduler.py index 564f130aa..9b945b942 100644 --- a/pym/_emerge/TaskScheduler.py +++ b/pym/_emerge/TaskScheduler.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.QueueScheduler import QueueScheduler from _emerge.SequentialTaskQueue import SequentialTaskQueue diff --git a/pym/_emerge/TaskSequence.py b/pym/_emerge/TaskSequence.py index d0609f43e..3d54d90ac 100644 --- a/pym/_emerge/TaskSequence.py +++ b/pym/_emerge/TaskSequence.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.CompositeTask import CompositeTask from _emerge.AsynchronousTask import AsynchronousTask import os diff --git a/pym/_emerge/UninstallFailure.py b/pym/_emerge/UninstallFailure.py index 2a7cdc661..8b7cdfa66 100644 --- a/pym/_emerge/UninstallFailure.py +++ b/pym/_emerge/UninstallFailure.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + # for an explanation on this logic, see pym/_emerge/__init__.py import os import sys diff --git a/pym/_emerge/UnmergeDepPriority.py b/pym/_emerge/UnmergeDepPriority.py index 8ad0cd1ea..a642e07fe 100644 --- a/pym/_emerge/UnmergeDepPriority.py +++ b/pym/_emerge/UnmergeDepPriority.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.AbstractDepPriority import AbstractDepPriority class UnmergeDepPriority(AbstractDepPriority): __slots__ = ("optional", "satisfied",) diff --git a/pym/_emerge/UseFlagDisplay.py b/pym/_emerge/UseFlagDisplay.py index d243133e1..66f860f96 100644 --- a/pym/_emerge/UseFlagDisplay.py +++ b/pym/_emerge/UseFlagDisplay.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from portage.output import red from portage.util import cmp_sort_key from portage.output import blue diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index d4eb82947..8047cad11 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -1,5 +1,4 @@ -#!@PORTAGE_PYTHON@ -O -# Copyright 1999-2006 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ diff --git a/pym/_emerge/_find_deep_system_runtime_deps.py b/pym/_emerge/_find_deep_system_runtime_deps.py index 3249168f2..4acf239df 100644 --- a/pym/_emerge/_find_deep_system_runtime_deps.py +++ b/pym/_emerge/_find_deep_system_runtime_deps.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + from _emerge.DepPriority import DepPriority from _emerge.Package import Package diff --git a/pym/_emerge/_flush_elog_mod_echo.py b/pym/_emerge/_flush_elog_mod_echo.py index 61eeb29f7..302138a7e 100644 --- a/pym/_emerge/_flush_elog_mod_echo.py +++ b/pym/_emerge/_flush_elog_mod_echo.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + def _flush_elog_mod_echo(): """ Dump the mod_echo output now so that our other diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index d670813b6..4511dfc55 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import commands import errno import logging diff --git a/pym/_emerge/changelog.py b/pym/_emerge/changelog.py index b3b582b18..65427b23a 100644 --- a/pym/_emerge/changelog.py +++ b/pym/_emerge/changelog.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import os import re diff --git a/pym/_emerge/clear_caches.py b/pym/_emerge/clear_caches.py index 9ba09aba8..412855871 100644 --- a/pym/_emerge/clear_caches.py +++ b/pym/_emerge/clear_caches.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import gc # for an explanation on this logic, see pym/_emerge/__init__.py diff --git a/pym/_emerge/countdown.py b/pym/_emerge/countdown.py index a5fcde84e..6c97699a3 100644 --- a/pym/_emerge/countdown.py +++ b/pym/_emerge/countdown.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import sys import time diff --git a/pym/_emerge/create_depgraph_params.py b/pym/_emerge/create_depgraph_params.py index fab741be5..5baad8004 100644 --- a/pym/_emerge/create_depgraph_params.py +++ b/pym/_emerge/create_depgraph_params.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + def create_depgraph_params(myopts, myaction): #configure emerge engine parameters # diff --git a/pym/_emerge/create_world_atom.py b/pym/_emerge/create_world_atom.py index a76bb2edb..a0e5ecf8b 100644 --- a/pym/_emerge/create_world_atom.py +++ b/pym/_emerge/create_world_atom.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + # for an explanation on this logic, see pym/_emerge/__init__.py import os import sys diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index a7d324370..b19dbb1b6 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import gc import os import re @@ -1771,6 +1775,77 @@ class depgraph(object): print + def _iter_match_pkgs(self, root_config, pkg_type, atom, onlydeps=False): + """ + Iterate over Package instances of pkg_type matching the given atom. + This does not check visibility and it also does not match USE for + unbuilt ebuilds since USE are lazily calculated after visibility + checks (to avoid the expense when possible). + """ + + db = root_config.trees[self.pkg_tree_map[pkg_type]].dbapi + + if hasattr(db, "xmatch"): + cpv_list = db.xmatch("match-all", atom) + else: + cpv_list = db.match(atom) + + # USE=multislot can make an installed package appear as if + # it doesn't satisfy a slot dependency. Rebuilding the ebuild + # won't do any good as long as USE=multislot is enabled since + # the newly built package still won't have the expected slot. + # Therefore, assume that such SLOT dependencies are already + # satisfied rather than forcing a rebuild. + installed = pkg_type == 'installed' + if installed and not cpv_list and atom.slot: + for cpv in db.match(atom.cp): + slot_available = False + for other_db, other_type, other_built, \ + other_installed, other_keys in \ + self._filtered_trees[root_config.root]["dbs"]: + try: + if atom.slot == \ + other_db.aux_get(cpv, ["SLOT"])[0]: + slot_available = True + break + except KeyError: + pass + if not slot_available: + continue + inst_pkg = self._pkg(cpv, "installed", + root_config, installed=installed) + # Remove the slot from the atom and verify that + # the package matches the resulting atom. + atom_without_slot = portage.dep.remove_slot(atom) + if atom.use: + atom_without_slot += str(atom.use) + atom_without_slot = portage.dep.Atom(atom_without_slot) + if portage.match_from_list( + atom_without_slot, [inst_pkg]): + cpv_list = [inst_pkg.cpv] + break + + if cpv_list: + + # descending order + cpv_list.reverse() + for cpv in cpv_list: + try: + pkg = self._pkg(cpv, pkg_type, root_config, + installed=installed, onlydeps=onlydeps) + except portage.exception.PackageNotFound: + pass + else: + if pkg.cp != atom.cp: + # A cpv can be returned from dbapi.match() as an + # old-style virtual match even in cases when the + # package does not actually PROVIDE the virtual. + # Filter out any such false matches here. + if not InternalPackageSet(initial_atoms=(atom,) + ).findAtomForPackage(pkg): + continue + yield pkg + def _select_pkg_highest_available(self, root, atom, onlydeps=False): cache_key = (root, atom, onlydeps) ret = self._highest_pkg_cache.get(cache_key) @@ -1806,7 +1881,6 @@ class depgraph(object): if not isinstance(atom, portage.dep.Atom): atom = portage.dep.Atom(atom) atom_cp = atom.cp - atom_set = InternalPackageSet(initial_atoms=(atom,)) existing_node = None myeb = None usepkgonly = "--usepkgonly" in self.myopts @@ -1837,63 +1911,18 @@ class depgraph(object): (found_available_arg and not selective) if want_reinstall and matched_packages: continue - if hasattr(db, "xmatch"): - cpv_list = db.xmatch("match-all", atom) - else: - cpv_list = db.match(atom) - - # USE=multislot can make an installed package appear as if - # it doesn't satisfy a slot dependency. Rebuilding the ebuild - # won't do any good as long as USE=multislot is enabled since - # the newly built package still won't have the expected slot. - # Therefore, assume that such SLOT dependencies are already - # satisfied rather than forcing a rebuild. - if installed and not cpv_list and atom.slot: - for cpv in db.match(atom.cp): - slot_available = False - for other_db, other_type, other_built, \ - other_installed, other_keys in dbs: - try: - if atom.slot == \ - other_db.aux_get(cpv, ["SLOT"])[0]: - slot_available = True - break - except KeyError: - pass - if not slot_available: - continue - inst_pkg = self._pkg(cpv, "installed", - root_config, installed=installed) - # Remove the slot from the atom and verify that - # the package matches the resulting atom. - atom_without_slot = portage.dep.remove_slot(atom) - if atom.use: - atom_without_slot += str(atom.use) - atom_without_slot = portage.dep.Atom(atom_without_slot) - if portage.match_from_list( - atom_without_slot, [inst_pkg]): - cpv_list = [inst_pkg.cpv] - break - - if not cpv_list: - continue - # descending order - cpv_list.reverse() - for cpv in cpv_list: + for pkg in self._iter_match_pkgs(root_config, pkg_type, atom, + onlydeps=onlydeps): + cpv = pkg.cpv # Make --noreplace take precedence over --newuse. - if not installed and noreplace and \ + if not pkg.installed and noreplace and \ cpv in vardb.match(atom): # If the installed version is masked, it may # be necessary to look at lower versions, # in case there is a visible downgrade. continue reinstall_for_flags = None - try: - pkg = self._pkg(cpv, pkg_type, root_config, - installed=installed, onlydeps=onlydeps) - except portage.exception.PackageNotFound: - continue if not installed or (built and matched_packages): # Only enforce visibility on installed packages @@ -1948,14 +1977,6 @@ class depgraph(object): # expensive, so it is only performed lazily, after the # above visibility checks are complete. - if pkg.cp != atom.cp: - # A cpv can be returned from dbapi.match() as an - # old-style virtual match even in cases when the - # package does not actually PROVIDE the virtual. - # Filter out any such false matches here. - if not atom_set.findAtomForPackage(pkg): - continue - myarg = None if root == self.target_root: try: diff --git a/pym/_emerge/emergelog.py b/pym/_emerge/emergelog.py index c3f37d23f..f8b537ced 100644 --- a/pym/_emerge/emergelog.py +++ b/pym/_emerge/emergelog.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import os import sys import time diff --git a/pym/_emerge/format_size.py b/pym/_emerge/format_size.py index 7638100f6..f48d11b17 100644 --- a/pym/_emerge/format_size.py +++ b/pym/_emerge/format_size.py @@ -1,3 +1,6 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ # formats a size given in bytes nicely def format_size(mysize): diff --git a/pym/_emerge/getloadavg.py b/pym/_emerge/getloadavg.py index b5a66cce9..81265d500 100644 --- a/pym/_emerge/getloadavg.py +++ b/pym/_emerge/getloadavg.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import os getloadavg = getattr(os, "getloadavg", None) diff --git a/pym/_emerge/help.py b/pym/_emerge/help.py index bb60d0c49..950692136 100644 --- a/pym/_emerge/help.py +++ b/pym/_emerge/help.py @@ -1,4 +1,4 @@ -# Copyright 1999-2007 Gentoo Foundation +# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ diff --git a/pym/_emerge/is_valid_package_atom.py b/pym/_emerge/is_valid_package_atom.py index 33f424896..2717a9080 100644 --- a/pym/_emerge/is_valid_package_atom.py +++ b/pym/_emerge/is_valid_package_atom.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import re # for an explanation on this logic, see pym/_emerge/__init__.py diff --git a/pym/_emerge/search.py b/pym/_emerge/search.py index 49d855a2b..750564197 100644 --- a/pym/_emerge/search.py +++ b/pym/_emerge/search.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import os import re from itertools import izip diff --git a/pym/_emerge/show_invalid_depstring_notice.py b/pym/_emerge/show_invalid_depstring_notice.py index dd839d113..9688f437a 100644 --- a/pym/_emerge/show_invalid_depstring_notice.py +++ b/pym/_emerge/show_invalid_depstring_notice.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import logging import os import textwrap diff --git a/pym/_emerge/stdout_spinner.py b/pym/_emerge/stdout_spinner.py index 1f49a6850..f299b5915 100644 --- a/pym/_emerge/stdout_spinner.py +++ b/pym/_emerge/stdout_spinner.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import platform import sys import time diff --git a/pym/_emerge/unmerge.py b/pym/_emerge/unmerge.py index 2cddd88e3..5bdead580 100644 --- a/pym/_emerge/unmerge.py +++ b/pym/_emerge/unmerge.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import logging import os import sys diff --git a/pym/_emerge/userquery.py b/pym/_emerge/userquery.py index 64a8761e0..8b5fb4c1c 100644 --- a/pym/_emerge/userquery.py +++ b/pym/_emerge/userquery.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + import sys from portage.output import bold, create_color_func diff --git a/pym/_emerge/visible.py b/pym/_emerge/visible.py index 66fd26d77..e47089ed4 100644 --- a/pym/_emerge/visible.py +++ b/pym/_emerge/visible.py @@ -1,3 +1,7 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + # for an explanation on this logic, see pym/_emerge/__init__.py import os import sys -- 2.26.2