[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [emerge] /: Move debug code to EmergeDebug.py (start to refactor utils.py a bit
From:       Hannah von Reth <vonreth () kde ! org>
Date:       2015-12-31 13:51:26
Message-ID: E1aEddW-0005lt-Lu () scm ! kde ! org
[Download RAW message or body]

Git commit d531ef0f75800f2b076ec63e891148ac31fcee68 by Hannah von Reth.
Committed on 31/12/2015 at 13:51.
Pushed by vonreth into branch 'master'.

Move debug code to EmergeDebug.py (start to refactor utils.py a bit

M  +2    -1    bin/BuildSystem/BoostBuildSystem.py
M  +4    -4    bin/BuildSystem/BuildSystemBase.py
M  +5    -4    bin/BuildSystem/CMakeBuildSystem.py
M  +2    -1    bin/BuildSystem/PipBuildSystem.py
M  +2    -2    bin/BuildSystem/QMakeBuildSystem.py
M  +13   -12   bin/EmergeBase.py
A  +-    --    bin/EmergeDebug.py
M  +46   -44   bin/InstallDB.py
M  +2    -2    bin/Package/AutoToolsPackageBase.py
M  +2    -2    bin/Package/BinaryPackageBase.py
M  +2    -3    bin/Package/BoostPackageBase.py
M  +2    -2    bin/Package/CMakePackageBase.py
M  +2    -2    bin/Package/MakeFilePackageBase.py
M  +19   -19   bin/Package/PackageBase.py
M  +2    -1    bin/Package/PipPackageBase.py
M  +2    -2    bin/Package/PythonPackageBase.py
M  +2    -2    bin/Package/QMakePackageBase.py
M  +2    -2    bin/Package/Qt5CorePackageBase.py
M  +2    -2    bin/Package/SetupPackageBase.py
M  +2    -1    bin/Package/VirtualPackageBase.py
M  +2    -2    bin/Packager/CPackPackager.py
M  +18   -17   bin/Packager/CollectionPackagerBase.py
M  +7    -7    bin/Packager/InnoSetupPackager.py
M  +11   -10   bin/Packager/KDEWinPackager.py
M  +2    -2    bin/Packager/MSIFragmentPackager.py
M  +3    -2    bin/Packager/MSInstallerPackager.py
M  +2    -2    bin/Packager/MultiPackager.py
M  +6    -5    bin/Packager/NullsoftInstallerPackager.py
M  +3    -3    bin/Packager/PackagerFactory.py
M  +2    -2    bin/Packager/PortablePackager.py
M  +4    -3    bin/Packager/SevenZipPackager.py
M  +2    -2    bin/Packager/TypePackager.py
M  +30   -29   bin/Source/ArchiveSource.py
M  +18   -17   bin/Source/GitSource.py
M  +7    -7    bin/Source/HgSource.py
M  +16   -16   bin/Source/MultiSource.py
M  +5    -5    bin/Source/SourceBase.py
M  +3    -3    bin/Source/SourceFactory.py
M  +9    -9    bin/Source/SvnSource.py
M  +16   -16   bin/Source/VersionSystemSourceBase.py
M  +3    -3    bin/VersionInfo.py
M  +6    -5    bin/compiler.py
M  +4    -3    bin/dependencies.py
M  +36   -34   bin/emerge.py
M  +3    -2    bin/graphviz.py
M  +2    -1    bin/options.py
M  +2    -1    bin/packagelistparser.py
M  +26   -25   bin/portage.py
M  +2    -1    bin/portageSearch.py
M  +2    -1    bin/prepare-sdk.py
M  +2    -1    bin/shells.py
M  +76   -165  bin/utils.py
M  +2    -1    portage/contributed/gpg-wce-dev/gpg-wce-dev.py
M  +2    -1    portage/dev-util/git/git.py
M  +2    -1    portage/frameworks/tier1/breeze-icons/breeze-icons.py
M  +2    -1    portage/frameworks/tier1/kapidox/kapidox.py
M  +2    -1    portage/internal/QMakeBuildSystem/QMakeBuildSystem.py
M  +2    -1    portage/libs/qt5/qtwebengine/qtwebengine.py
M  +4    -3    portage/testing/sip/sip.py
M  +2    -1    portage/unmaintained/win32libs/dbus-c++/dbus-c++.py
M  +5    -4    portage/win32libs/boost/boost-bjam/boost-bjam.py

http://commits.kde.org/emerge/d531ef0f75800f2b076ec63e891148ac31fcee68

diff --git a/bin/BuildSystem/BoostBuildSystem.py \
b/bin/BuildSystem/BoostBuildSystem.py index 90a9301..7d58dd8 100644
--- a/bin/BuildSystem/BoostBuildSystem.py
+++ b/bin/BuildSystem/BoostBuildSystem.py
@@ -7,6 +7,7 @@
 
 import os
 
+import EmergeDebug
 import utils
 from BuildSystem.BuildSystemBase import *
 
@@ -83,7 +84,7 @@ class BoostBuildSystem(BuildSystemBase):
         self.enterSourceDir()
         cmd  = "bjam"
         cmd += self.configureOptions(self.subinfo.options.configure.defines)
-        if utils.verbose() >= 1:
+        if EmergeDebug.verbose() >= 1:
             print(cmd)
         return self.system(cmd)
 
diff --git a/bin/BuildSystem/BuildSystemBase.py b/bin/BuildSystem/BuildSystemBase.py
index 11ec24d..d2b8cdd 100644
--- a/bin/BuildSystem/BuildSystemBase.py
+++ b/bin/BuildSystem/BuildSystemBase.py
@@ -3,7 +3,7 @@
 #
 
 """ \package BuildSystemBase"""
-
+import EmergeDebug
 from EmergeBase import *
 import compiler
 from graphviz import *
@@ -33,7 +33,7 @@ class BuildSystemBase(EmergeBase):
             return "ninja"
         EMERGE_MAKE_PROGRAM = emergeSettings.get("General", "EMERGE_MAKE_PROGRAM", \
                "" )
         if EMERGE_MAKE_PROGRAM != "" and self.subinfo.options.make.supportsMultijob:
-            utils.debug( "set custom make program: %s" % EMERGE_MAKE_PROGRAM, 1 )
+            EmergeDebug.debug("set custom make program: %s" % EMERGE_MAKE_PROGRAM, \
1)  return EMERGE_MAKE_PROGRAM
         elif not self.subinfo.options.make.supportsMultijob:
             if "MAKE" in os.environ:
@@ -43,7 +43,7 @@ class BuildSystemBase(EmergeBase):
         elif compiler.isMinGW():
             return "mingw32-make"
         else:
-            utils.die( "unknown %s compiler" % self.compiler() )
+            EmergeDebug.die("unknown %s compiler" % self.compiler())
     makeProgramm = property(_getmakeProgram)
 
     def compile(self):
@@ -90,7 +90,7 @@ class BuildSystemBase(EmergeBase):
             defines += " -i"
         if self.subinfo.options.make.makeOptions:
             defines += " %s" % self.subinfo.options.make.makeOptions
-        if maybeVerbose and utils.verbose() > 1:
+        if maybeVerbose and EmergeDebug.verbose() > 1:
             if self.supportsNinja and \
emergeSettings.getboolean("General","EMERGE_USE_NINJA", False ):  defines += " -v "
             else:
diff --git a/bin/BuildSystem/CMakeBuildSystem.py \
b/bin/BuildSystem/CMakeBuildSystem.py index c94f584..c7e3d8f 100644
--- a/bin/BuildSystem/CMakeBuildSystem.py
+++ b/bin/BuildSystem/CMakeBuildSystem.py
@@ -6,6 +6,7 @@
 
 import os
 
+import EmergeDebug
 import utils
 from BuildSystem.CMakeDependencies import *
 from BuildSystem.BuildSystemBase import *
@@ -39,7 +40,7 @@ class CMakeBuildSystem(BuildSystemBase):
         elif compiler.isMinGW():
             return "MinGW Makefiles"
         else:
-            utils.die( "unknown %s compiler" % self.compiler() )
+            EmergeDebug.die("unknown %s compiler" % self.compiler())
 
     def __onlyBuildDefines( self, buildOnlyTargets ):
         """This method returns a list of cmake defines to exclude targets from \
build""" @@ -143,7 +144,7 @@ class CMakeBuildSystem(BuildSystemBase):
             if compiler.isMSVC2008():
                 command = "vcbuild /M1 %s \"%s|WIN32\"" % (self.__slnFileName(), \
self.buildType())  elif compiler.isMSVC2010():
-                utils.die("has to be implemented");
+                EmergeDebug.die("has to be implemented");
         elif self.subinfo.options.cmake.useCTest:
             # first make clean
             self.system( self.makeProgramm + " clean", "make clean" )
@@ -200,12 +201,12 @@ class CMakeBuildSystem(BuildSystemBase):
         outFile = os.path.join(outDir, self.package+'-cmake.dot')
         a = CMakeDependencies()
         if not a.parse(srcDir):
-            utils.debug("could not find source files for generating cmake \
dependencies") +            EmergeDebug.debug("could not find source files for \
generating cmake dependencies")  return False
         title = "%s cmake dependency chart - version %s" % (self.package, \
self.version)  a.toPackageList(title, srcDir)
         if not a.toDot(title, srcDir, outFile):
-            utils.debug("could not create dot file")
+            EmergeDebug.debug("could not create dot file")
             return False
 
         graphviz = GraphViz(self)
diff --git a/bin/BuildSystem/PipBuildSystem.py b/bin/BuildSystem/PipBuildSystem.py
index 02a53de..be7bbd3 100644
--- a/bin/BuildSystem/PipBuildSystem.py
+++ b/bin/BuildSystem/PipBuildSystem.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 from BuildSystem.BuildSystemBase import *
 
 class PipBuildSystem(BuildSystemBase):
@@ -26,7 +27,7 @@ class PipBuildSystem(BuildSystemBase):
             args += " --allow-all-external "
         for path  in pythons:
             command = "%s install --upgrade %s %s" % (os.path.join(path, "Scripts", \
                "pip"), args, self.subinfo.package)
-            utils.debug(command)
+            EmergeDebug.debug(command)
             ok = ok and utils.system(command)
         return ok
 
diff --git a/bin/BuildSystem/QMakeBuildSystem.py \
b/bin/BuildSystem/QMakeBuildSystem.py index fba45e3..f8c0241 100644
--- a/bin/BuildSystem/QMakeBuildSystem.py
+++ b/bin/BuildSystem/QMakeBuildSystem.py
@@ -2,7 +2,7 @@
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
 # definitions for the qmake build system
-
+import EmergeDebug
 import utils
 import compiler
 
@@ -19,7 +19,7 @@ class QMakeBuildSystem(BuildSystemBase):
         elif compiler.isIntel():
             self.platform = "win32-icc"
         else:
-            utils.die( "QMakeBuildSystem: unsupported compiler platform %s" % \
self.compiler() ) +            EmergeDebug.die("QMakeBuildSystem: unsupported \
compiler platform %s" % self.compiler())  
 
     def configure( self, configureDefines="" ):
diff --git a/bin/EmergeBase.py b/bin/EmergeBase.py
index 0dec42f..50fa814 100644
--- a/bin/EmergeBase.py
+++ b/bin/EmergeBase.py
@@ -6,6 +6,7 @@ import sys
 import datetime
 from ctypes import *
 
+import EmergeDebug
 import utils
 import portage
 import compiler
@@ -30,7 +31,7 @@ class EmergeBase(object):
         # TODO: some __init__  of subclasses need to already have been
         # called here. That is really the wrong way round.
         object.__init__(self)
-        utils.debug( "EmergeBase.__init__ called", 2 )
+        EmergeDebug.debug("EmergeBase.__init__ called", 2)
         self.filename, self.category, self.subpackage, self.package, mod = \
portage.PortageInstance._CURRENT_MODULE#ugly workaround we need to replace the \
constructor  
         if not hasattr(self, 'subinfo'):
@@ -112,7 +113,7 @@ class EmergeBase(object):
             return directory
         buf = create_string_buffer('\000' * (length + 1))
         windll.kernel32.GetShortPathNameA(path, byref(buf), length+1) # ignore \
                function result...
-        utils.debug("converting " + directory + " to " + buf.value)
+        EmergeDebug.debug("converting " + directory + " to " + buf.value)
         return buf.value
 
     def buildType(self):
@@ -177,11 +178,11 @@ class EmergeBase(object):
         return self.__adjustPath(_workDir)
 
     def buildDir(self):
-        utils.debug("EmergeBase.buildDir() called", 2)
+        EmergeDebug.debug("EmergeBase.buildDir() called", 2)
         builddir = os.path.join(self.workDir(), self.workDirPattern())
         if self.subinfo.options.unpack.unpackIntoBuildDir and \
                self.subinfo.hasTargetSourcePath():
             builddir = os.path.join(builddir, self.subinfo.targetSourcePath())
-        utils.debug("package builddir is: %s" % builddir, 2)
+        EmergeDebug.debug("package builddir is: %s" % builddir, 2)
         return self.__adjustPath(builddir)
 
     def imageDir(self):
@@ -241,7 +242,7 @@ class EmergeBase(object):
         """return absolute path to the directory where binary packages are placed \
into.  Default is to optionally append build type subdirectory"""
 
-        utils.debug( "EmergeBase.packageDestinationDir called", 2 )
+        EmergeDebug.debug("EmergeBase.packageDestinationDir called", 2)
         dstpath = emergeSettings.get("General","EMERGE_PKGDSTDIR", os.path.join( \
EmergeStandardDirs.emergeRoot(), "tmp" ) )  
         if withBuildType:
@@ -265,21 +266,21 @@ class EmergeBase(object):
         return EmergeStandardDirs.emergeRoot()
 
     def enterBuildDir(self):
-        utils.trace( "EmergeBase.enterBuildDir called")
+        EmergeDebug.trace("EmergeBase.enterBuildDir called")
 
         if ( not os.path.exists( self.buildDir() ) ):
             os.makedirs( self.buildDir() )
-            utils.debug("creating: %s" % self.buildDir())
+            EmergeDebug.debug("creating: %s" % self.buildDir())
 
         os.chdir( self.buildDir() )
-        utils.debug("entering: %s" % self.buildDir())
+        EmergeDebug.debug("entering: %s" % self.buildDir())
 
     def enterSourceDir(self):
         if ( not os.path.exists( self.sourceDir() ) ):
             return False
-        utils.warning("entering the source directory!")
+        EmergeDebug.warning("entering the source directory!")
         os.chdir( self.sourceDir() )
-        utils.debug("entering: %s" % self.sourceDir())
+        EmergeDebug.debug("entering: %s" % self.sourceDir())
 
     def system( self, command, errorMessage="", debuglevel=1, **kw):
         """convencience function for running system commands.
@@ -290,9 +291,9 @@ class EmergeBase(object):
         if utils.system( command, **kw):
             return True
         if self.subinfo.options.exitOnErrors:
-            utils.warning( "while running %s cmd: %s" % (errorMessage, str(command)) \
) +            EmergeDebug.warning("while running %s cmd: %s" % (errorMessage, \
str(command)))  else:
-            utils.warning( "while running %s cmd: %s" % (errorMessage, str(command)) \
) +            EmergeDebug.warning("while running %s cmd: %s" % (errorMessage, \
str(command)))  return False
 
     def proxySettings(self):
diff --git a/bin/EmergeDebug.py b/bin/EmergeDebug.py
new file mode 100644
index 0000000..69ed25c
Binary files /dev/null and b/bin/EmergeDebug.py differ
diff --git a/bin/InstallDB.py b/bin/InstallDB.py
index 53abdf8..4fb9d4f 100644
--- a/bin/InstallDB.py
+++ b/bin/InstallDB.py
@@ -1,6 +1,8 @@
 import os
 import sqlite3
 import threading
+
+import EmergeDebug
 from EmergeConfig import *
 
 import utils
@@ -51,7 +53,7 @@ class InstallPackage(object):
     def getFiles( self ):
         """ get a list of files that will be uninstalled """
         cmd = '''SELECT filename, fileHash FROM fileList WHERE packageId=?;'''
-        utils.debug( "executing sqlcmd '%s' with parameter %s" % ( cmd, str( \
self.packageId ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with \
parameter %s" % (cmd, str(self.packageId)), 2)  self.cursor.execute(cmd, \
(self.packageId,))  return self.cursor.fetchall()
 
@@ -62,10 +64,10 @@ class InstallPackage(object):
     def uninstall( self ):
         """ really uninstall that package """
         cmd = '''DELETE FROM fileList WHERE packageId=?;'''
-        utils.debug( "executing sqlcmd '%s' with parameter %s" % ( cmd, str( \
self.packageId ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with \
parameter %s" % (cmd, str(self.packageId)), 2)  self.cursor.execute(cmd, \
(self.packageId,))  cmd = '''DELETE FROM packageList WHERE packageId=?;'''
-        utils.debug( "executing sqlcmd '%s' with parameter %s" % ( cmd, str( \
self.packageId ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with \
parameter %s" % (cmd, str(self.packageId)), 2)  self.cursor.execute(cmd, \
(self.packageId,))  self.cursor.connection.commit()
 
@@ -78,7 +80,7 @@ class InstallPackage(object):
         dataList = list(zip( [ None ] * fileNumber, [ self.packageId ] * fileNumber, \
list(self.fileDict.keys()), list(self.fileDict.values()) ))  
         cmd = '''INSERT INTO fileList VALUES (?, ?, ?, ?)'''
-        utils.debug( "executing sqlcmd '%s' %s times" % ( cmd, len( self.fileDict ) \
), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' %s times" % (cmd, \
len(self.fileDict)), 2)  self.cursor.executemany( cmd, dataList )
 
         # at last, commit all the changes so that they are committed only after \
everything is written to the @@ -146,17 +148,17 @@ class InstallDB(object):
         stmt, params = self.__constructWhereStmt( { 'prefix': prefix, 'category': \
category, 'packageName': package, 'version': version } )  cmd += stmt
         cmd += ''';'''
-        utils.debug( "executing sqlcmd '%s' with parameters: %s" % ( cmd, tuple( \
params ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with parameters: \
%s" % (cmd, tuple(params)), 2)  
         cursor = self.connection.cursor()
         cursor.execute( cmd, tuple( params ) )
         isPackageInstalled = len( cursor.fetchall() ) > 0
         if isPackageInstalled:
-            utils.debug( """The package %s/%s has been installed in prefix '%s' with
-                            version '%s'.""" % ( category, package, prefix, version \
), 2 ) +            EmergeDebug.debug("""The package %s/%s has been installed in \
prefix '%s' with +                            version '%s'.""" % ( category, package, \
prefix, version ), 2)  else:
-            utils.debug( """Couldn't find a trace that the package %s/%s has been \
                installed in
-                            prefix '%s' with version '%s'""" % ( category, package, \
prefix, version ), 1 ) +            EmergeDebug.debug("""Couldn't find a trace that \
the package %s/%s has been installed in +                            prefix '%s' with \
version '%s'""" % ( category, package, prefix, version ), 1)  cursor.close()
         return isPackageInstalled
 
@@ -168,7 +170,7 @@ class InstallDB(object):
         stmt, params = self.__constructWhereStmt( { 'prefix': prefix, 'category': \
category, 'packageName': package } )  cmd += stmt
         cmd += ''';'''
-        utils.debug( "executing sqlcmd '%s' with parameters: %s" % ( cmd, tuple( \
params ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with parameters: \
%s" % (cmd, tuple(params)), 2)  
         cursor = self.connection.cursor()
         cursor.execute( cmd, tuple( params ) )
@@ -184,7 +186,7 @@ class InstallDB(object):
         stmt, params = self.__constructWhereStmt( { 'prefix': prefix, 'category': \
category, 'packageName': package } )  cmd += stmt
         cmd += ''';'''
-        utils.debug( "executing sqlcmd '%s' with parameters: %s" % ( cmd, tuple( \
params ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with parameters: \
%s" % (cmd, tuple(params)), 2)  
         cursor = self.connection.cursor()
         cursor.execute( cmd, tuple( params ) )
@@ -200,7 +202,7 @@ class InstallDB(object):
         stmt, params = self.__constructWhereStmt( { 'prefix': prefix, 'category': \
category, 'packageName': package } )  cmd += stmt
         cmd += ''';'''
-        utils.debug( "executing sqlcmd '%s' with parameters: %s" % ( cmd, tuple( \
params ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with parameters: \
%s" % (cmd, tuple(params)), 2)  
         cursor = self.connection.cursor()
         cursor.execute( cmd, tuple( params ) )
@@ -217,7 +219,7 @@ class InstallDB(object):
 
         params = [ None, prefix, category, package, version, revision ]
         cmd = '''INSERT INTO packageList VALUES (?, ?, ?, ?, ?, ?)'''
-        utils.debug( "executing sqlcmd '%s' with parameters: %s" % ( cmd, tuple( \
params ) ), 2 ) +        EmergeDebug.debug("executing sqlcmd '%s' with parameters: \
%s" % (cmd, tuple(params)), 2)  cursor.execute( cmd, tuple( params ) )
         return InstallPackage( cursor, self.getLastId() )
 
@@ -280,7 +282,7 @@ def main():
     db_temp = InstallDB( tempdbpath1 )
     db = InstallDB( tempdbpath2 )
 
-    utils.debug( 'testing installation database' )
+    EmergeDebug.debug('testing installation database')
 
     # in case the package is still installed, remove it first silently
     if db.isInstalled( 'win32libs', 'dbus-src', '1.4.0' ):
@@ -288,31 +290,31 @@ def main():
         # really commit uninstall
         for package in packageList:
             package.uninstall()
-    utils.debug_line()
+    EmergeDebug.debug_line()
 
-    utils.new_line()
+    EmergeDebug.new_line()
     # add a package
-    utils.debug( 'installing package win32libs/dbus-src-1.4.0 (release)' )
+    EmergeDebug.debug('installing package win32libs/dbus-src-1.4.0 (release)')
     package = db.addInstalled( 'win32libs', 'dbus-src', '1.4.0', 'release' )
     package.addFiles( dict().fromkeys( [ 'test', 'test1', 'test2' ], 'empty hash' ) \
)  # now really commit the package
     package.install()
 
     # add another package in a different prefix
-    utils.debug( 'installing package win32libs/dbus-src-1.4.0 (debug)' )
+    EmergeDebug.debug('installing package win32libs/dbus-src-1.4.0 (debug)')
     package = db.addInstalled( 'win32libs', 'dbus-src', '1.4.0', 'debug' )
     package.addFiles( dict().fromkeys( [ 'test', 'test1', 'test2' ], 'empty hash' ) \
)  # now really commit the package
     package.install()
-    utils.debug_line()
+    EmergeDebug.debug_line()
 
-    utils.new_line()
-    utils.debug( 'checking installed packages' )
-    utils.debug( 'get installed package (release): %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'release' ) )
-    utils.debug( 'get installed package (debug):   %s' % db.getInstalled( \
'win32libs', 'dbus-src', 'debug' ) ) +    EmergeDebug.new_line()
+    EmergeDebug.debug('checking installed packages')
+    EmergeDebug.debug('get installed package (release): %s' % \
db.getInstalled('win32libs', 'dbus-src', 'release')) +    EmergeDebug.debug('get \
installed package (debug):   %s' % db.getInstalled('win32libs', 'dbus-src', 'debug')) \
                
-    utils.new_line()
-    utils.debug( 'now trying to remove package & revert it again later' )
+    EmergeDebug.new_line()
+    EmergeDebug.debug('now trying to remove package & revert it again later')
     # remove the package again
     packageList = db.getInstalledPackages( 'win32libs', 'dbus-src' )
     for pac in packageList:
@@ -320,42 +322,42 @@ def main():
             # we could remove the file here
             # print line
             pass
-    utils.debug_line()
+    EmergeDebug.debug_line()
 
-    utils.new_line()
-    utils.debug( 'checking installed packages' )
-    utils.debug( 'get installed package (release): %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'release' ) )
-    utils.debug( 'get installed package (debug):   %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'debug' ) )
-    utils.debug_line()
+    EmergeDebug.new_line()
+    EmergeDebug.debug('checking installed packages')
+    EmergeDebug.debug('get installed package (release): %s' % \
db.getInstalled('win32libs', 'dbus-src', 'release')) +    EmergeDebug.debug('get \
installed package (debug):   %s' % db.getInstalled('win32libs', 'dbus-src', 'debug')) \
+    EmergeDebug.debug_line()  
-    utils.new_line()
-    utils.debug( 'reverting removal' )
+    EmergeDebug.new_line()
+    EmergeDebug.debug('reverting removal')
     # now instead of completing the removal, revert it
     for pac in packageList:
         pac.revert()
 
-    utils.debug( 'checking installed packages' )
-    utils.debug( 'get installed package (release): %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'release' ) )
-    utils.debug( 'get installed package (debug):   %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'debug' ) )
-    utils.debug_line()
+    EmergeDebug.debug('checking installed packages')
+    EmergeDebug.debug('get installed package (release): %s' % \
db.getInstalled('win32libs', 'dbus-src', 'release')) +    EmergeDebug.debug('get \
installed package (debug):   %s' % db.getInstalled('win32libs', 'dbus-src', 'debug')) \
+    EmergeDebug.debug_line()  
     db.getInstalled()
     db.getInstalled( category='win32libs', prefix='debug' )
     db.getInstalled( package='dbus-src' )
 
-    utils.new_line()
-    utils.debug( 'now really remove the package' )
+    EmergeDebug.new_line()
+    EmergeDebug.debug('now really remove the package')
     packageList = db.getInstalledPackages( 'win32libs', 'dbus-src' )
     for pac in packageList:
-        utils.debug( 'removing %s files' % len( pac.getFiles() ) )
+        EmergeDebug.debug('removing %s files' % len(pac.getFiles()))
         pac.uninstall()
 
-    utils.debug( 'get installed package (release): %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'release' ) )
-    utils.debug( 'get installed package (debug):   %s' % db.getInstalled( \
                'win32libs', 'dbus-src', 'debug' ) )
-    utils.debug_line()
+    EmergeDebug.debug('get installed package (release): %s' % \
db.getInstalled('win32libs', 'dbus-src', 'release')) +    EmergeDebug.debug('get \
installed package (debug):   %s' % db.getInstalled('win32libs', 'dbus-src', 'debug')) \
+    EmergeDebug.debug_line()  
     # test the import from the old style (manifest based) databases
-    utils.new_line()
+    EmergeDebug.new_line()
     print("getInstalled:", db_temp.getInstalled())
 
 if __name__ == '__main__':
diff --git a/bin/Package/AutoToolsPackageBase.py \
b/bin/Package/AutoToolsPackageBase.py index e6e1ed5..943a586 100644
--- a/bin/Package/AutoToolsPackageBase.py
+++ b/bin/Package/AutoToolsPackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2010 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.AutoToolsBuildSystem import *
@@ -10,7 +10,7 @@ from Packager.TypePackager import *
 class AutoToolsPackageBase (PackageBase, MultiSource, AutoToolsBuildSystem, \
                TypePackager):
     """provides a base class for autotools based packages from any source"""
     def __init__(self):
-        utils.debug("AutoToolsPackageBase.__init__ called", 2)
+        EmergeDebug.debug("AutoToolsPackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         AutoToolsBuildSystem.__init__(self)
diff --git a/bin/Package/BinaryPackageBase.py b/bin/Package/BinaryPackageBase.py
index 9de7196..675653b 100644
--- a/bin/Package/BinaryPackageBase.py
+++ b/bin/Package/BinaryPackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.BinaryBuildSystem import *
@@ -10,7 +10,7 @@ from Packager.TypePackager import *
 class BinaryPackageBase (PackageBase, MultiSource, BinaryBuildSystem, TypePackager):
     """provides a base class for binary packages"""
     def __init__(self):
-        utils.debug("BinaryPackageBase.__init__ called", 2)
+        EmergeDebug.debug("BinaryPackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         BinaryBuildSystem.__init__(self)
diff --git a/bin/Package/BoostPackageBase.py b/bin/Package/BoostPackageBase.py
index 103cc0d..9c689b2 100644
--- a/bin/Package/BoostPackageBase.py
+++ b/bin/Package/BoostPackageBase.py
@@ -2,8 +2,7 @@
 # this package contains functions to check the current compiler
 # copyright:
 # Hannah von Reth <vonreth@kde.org>
-
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.BoostBuildSystem import *
@@ -12,7 +11,7 @@ from Packager.TypePackager import *
 class BoostPackageBase (PackageBase, MultiSource, BoostBuildSystem, TypePackager):
     """provides a base class for cmake packages from any source"""
     def __init__(self):
-        utils.debug("BoostPackageBase.__init__ called", 2)
+        EmergeDebug.debug("BoostPackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         BoostBuildSystem.__init__(self)
diff --git a/bin/Package/CMakePackageBase.py b/bin/Package/CMakePackageBase.py
index e323965..1fd5e76 100644
--- a/bin/Package/CMakePackageBase.py
+++ b/bin/Package/CMakePackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.CMakeBuildSystem import *
@@ -10,7 +10,7 @@ from Packager.TypePackager import *
 class CMakePackageBase (PackageBase, MultiSource, CMakeBuildSystem, TypePackager):
     """provides a base class for cmake packages from any source"""
     def __init__(self):
-        utils.debug("CMakePackageBase.__init__ called", 2)
+        EmergeDebug.debug("CMakePackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         CMakeBuildSystem.__init__(self)
diff --git a/bin/Package/MakeFilePackageBase.py b/bin/Package/MakeFilePackageBase.py
index 6dd6dcf..8af55fc 100644
--- a/bin/Package/MakeFilePackageBase.py
+++ b/bin/Package/MakeFilePackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2010 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.MakeFileBuildSystem import *
@@ -10,7 +10,7 @@ from Packager.TypePackager import *
 class MakeFilePackageBase (PackageBase, MultiSource, MakeFileBuildSystem, \
                TypePackager):
     """provides a base class for simple makefile based packages from any source"""
     def __init__(self):
-        utils.debug("MakeFilePackageBase.__init__ called", 2)
+        EmergeDebug.debug("MakeFilePackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         MakeFileBuildSystem.__init__(self)
diff --git a/bin/Package/PackageBase.py b/bin/Package/PackageBase.py
index ec1b801..23241a4 100644
--- a/bin/Package/PackageBase.py
+++ b/bin/Package/PackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from EmergeBase import *
 from InstallDB import *
 from compiler import *
@@ -24,7 +24,7 @@ class PackageBase (EmergeBase):
     #imagedir   -> PackageBase
 
     def __init__(self):
-        utils.debug("PackageBase.__init__ called", 2)
+        EmergeDebug.debug("PackageBase.__init__ called", 2)
         EmergeBase.__init__(self)
 
     def _installedDBPrefix(self, buildType=None):
@@ -52,7 +52,7 @@ class PackageBase (EmergeBase):
 
         
 
-        utils.debug("qmerge package to %s" % self.mergeDestinationDir(), 2)
+        EmergeDebug.debug("qmerge package to %s" % self.mergeDestinationDir(), 2)
         utils.mergeImageDirToRootDir( self.mergeSourceDir(), \
self.mergeDestinationDir() )  
         # run post-install scripts
@@ -61,14 +61,14 @@ class PackageBase (EmergeBase):
                 scriptName = "post-install-%s-%s.cmd" % ( self.package, pkgtype )
                 script = os.path.join( self.mergeDestinationDir(), "manifest", \
scriptName )  if os.path.exists( script ):
-                    utils.debug("run post install script '%s'" % script , 2)
+                    EmergeDebug.debug("run post install script '%s'" % script, 2)
                     cmd = "cd /D %s && %s" % ( self.mergeDestinationDir(), script )
                     if not utils.system(cmd):
-                        utils.warning("%s failed!" % cmd )
+                        EmergeDebug.warning("%s failed!" % cmd)
                 else:
-                    utils.debug("post install script '%s' not found" % script , 2)
+                    EmergeDebug.debug("post install script '%s' not found" % script, \
2)  else:
-            utils.debug("running of post install scripts disabled!")
+            EmergeDebug.debug("running of post install scripts disabled!")
 
         # add package to installed database -> is this not the task of the manifest \
files ?  
@@ -90,13 +90,13 @@ class PackageBase (EmergeBase):
 
     def unmerge( self ):
         """unmergeing the files from the filesystem"""
-        utils.debug( "Packagebase unmerge called", 2 )
+        EmergeDebug.debug("Packagebase unmerge called", 2)
 
         ## \todo mergeDestinationDir() reads the real used merge dir from the
         ## package definition, which fails if this is changed
         ## a better solution will be to save the merge sub dir into
         ## /etc/portage/installed and to read from it on unmerge
-        utils.debug( "unmerge package from %s" % self.mergeDestinationDir(), 2 )
+        EmergeDebug.debug("unmerge package from %s" % self.mergeDestinationDir(), 2)
         if self.useBuildTypeRelatedMergeRoot and \
self.subinfo.options.merge.ignoreBuildType \  and \
self.subinfo.options.merge.destinationPath != None:  for prefix in [ "Release", \
"RelWithDebInfo", "Debug" ]: @@ -127,24 +127,24 @@ class PackageBase (EmergeBase):
                 scriptName = "post-uninstall-%s-%s.cmd" % ( self.package, pkgtype )
                 script = os.path.join( self.mergeDestinationDir(), "manifest", \
scriptName )  if os.path.exists( script ):
-                    utils.debug("run post uninstall script '%s'" % script , 2)
+                    EmergeDebug.debug("run post uninstall script '%s'" % script, 2)
                     cmd = "cd /D %s && %s" % ( self.mergeDestinationDir(), script )
                     if not utils.system(cmd):
-                        utils.warning("%s failed!" % cmd )
+                        EmergeDebug.warning("%s failed!" % cmd)
                 else:
-                    utils.debug("post uninstall script '%s' not found" % script , 2)
+                    EmergeDebug.debug("post uninstall script '%s' not found" % \
script, 2)  else:
-            utils.debug("running of post uninstall scripts disabled!")
+            EmergeDebug.debug("running of post uninstall scripts disabled!")
 
         return True
 
     def cleanImage( self ):
         """cleanup before install to imagedir"""
         if self.buildSystemType == 'binary':
-            utils.debug("skipped cleaning image dir because we use binary build \
system", 1) +            EmergeDebug.debug("skipped cleaning image dir because we use \
binary build system", 1)  return True
         if ( os.path.exists( self.imageDir() ) ):
-            utils.debug( "cleaning image dir: %s" % self.imageDir(), 1 )
+            EmergeDebug.debug("cleaning image dir: %s" % self.imageDir(), 1)
             utils.cleanDirectory( self.imageDir() )
             os.rmdir(self.imageDir())
         return True
@@ -153,7 +153,7 @@ class PackageBase (EmergeBase):
         """cleanup currently used build dir"""
         if os.path.exists( self.buildDir() ):
             utils.cleanDirectory( self.buildDir() )
-            utils.debug( "cleaning build dir: %s" % self.buildDir(), 1 )
+            EmergeDebug.debug("cleaning build dir: %s" % self.buildDir(), 1)
 
         return True
 
@@ -164,13 +164,13 @@ class PackageBase (EmergeBase):
     def strip( self , fileName ):
         """strip debugging informations from shared libraries and executables - \
                mingw only!!! """
         if self.subinfo.options.package.disableStriping or not isMinGW(): 
-            utils.debug("Skiping stipping of " + fileName ,2 )
+            EmergeDebug.debug("Skiping stipping of " + fileName, 2)
             return True
         basepath = os.path.join( self.installDir() )
         filepath = os.path.join( basepath, "bin",  fileName )
 
         cmd = "strip -s " + filepath
-        utils.debug(cmd,2)
+        EmergeDebug.debug(cmd, 2)
         os.system( cmd )
         return True
 
@@ -197,7 +197,7 @@ class PackageBase (EmergeBase):
         this will be executed from the package if the package is started on its own
         it shouldn't be called if the package is imported as a python module"""
 
-        utils.debug( "PackageBase.execute called. args: %s" % sys.argv, 2 )
+        EmergeDebug.debug("PackageBase.execute called. args: %s" % sys.argv, 2)
         command, _ = self.getAction(cmd)
 
         if self.subinfo.options.disableReleaseBuild and self.buildType() == \
                "Release" \
diff --git a/bin/Package/PipPackageBase.py b/bin/Package/PipPackageBase.py
index 22871e8..b9794cd 100644
--- a/bin/Package/PipPackageBase.py
+++ b/bin/Package/PipPackageBase.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 from Package.PackageBase import *
 from Source.SourceBase import *
 from BuildSystem.PipBuildSystem import *
@@ -6,7 +7,7 @@ from Packager.PackagerBase import *
 class PipPackageBase (PackageBase, SourceBase, PipBuildSystem, PackagerBase):
     """provides a base class for pip packages"""
     def __init__(self):
-        utils.debug("PipPackageBase.__init__ called", 2)
+        EmergeDebug.debug("PipPackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         SourceBase.__init__(self)
         PipBuildSystem.__init__(self)
diff --git a/bin/Package/PythonPackageBase.py b/bin/Package/PythonPackageBase.py
index e336258..05ee4b5 100644
--- a/bin/Package/PythonPackageBase.py
+++ b/bin/Package/PythonPackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2011 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.BuildSystemBase import *
@@ -9,7 +9,7 @@ from Packager.PackagerBase import *
 
 class PythonPackageBase(PackageBase, MultiSource, BuildSystemBase, PackagerBase):
     def __init__( self ):
-        utils.debug("PythonPackageBase.__init__ called", 2)
+        EmergeDebug.debug("PythonPackageBase.__init__ called", 2)
         PackageBase.__init__( self )
         MultiSource.__init__( self )
         BuildSystemBase.__init__( self )
diff --git a/bin/Package/QMakePackageBase.py b/bin/Package/QMakePackageBase.py
index 0bbe9ef..ffdb551 100644
--- a/bin/Package/QMakePackageBase.py
+++ b/bin/Package/QMakePackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.QMakeBuildSystem import *
@@ -10,7 +10,7 @@ from Packager.TypePackager import *
 class QMakePackageBase (PackageBase, MultiSource, QMakeBuildSystem, TypePackager):
     """provides a base class for qmake packages from any source"""
     def __init__(self):
-        utils.debug("QMakePackageBase.__init__ called", 2)
+        EmergeDebug.debug("QMakePackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         QMakeBuildSystem.__init__(self)
diff --git a/bin/Package/Qt5CorePackageBase.py b/bin/Package/Qt5CorePackageBase.py
index 20baf85..da2416a 100644
--- a/bin/Package/Qt5CorePackageBase.py
+++ b/bin/Package/Qt5CorePackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2012 Hannah von Reth <vonreth@kde.org>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.Qt5CoreBuildSystem import *
@@ -10,7 +10,7 @@ from Packager.TypePackager import *
 class Qt5CorePackageBase (PackageBase, MultiSource, Qt5CoreBuildSystem, \
TypePackager):  """provides a base class for qt5 modules"""
     def __init__(self):
-        utils.debug("Qt5CorePackageBase.__init__ called", 2)
+        EmergeDebug.debug("Qt5CorePackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         Qt5CoreBuildSystem.__init__(self)
diff --git a/bin/Package/SetupPackageBase.py b/bin/Package/SetupPackageBase.py
index 4d08e65..ff8d99a 100644
--- a/bin/Package/SetupPackageBase.py
+++ b/bin/Package/SetupPackageBase.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2011 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Package.PackageBase import *
 from Source.MultiSource import *
 from BuildSystem.BuildSystemBase import *
@@ -10,7 +10,7 @@ from Packager.PackagerBase import *
 class SetupPackageBase (PackageBase, MultiSource, BuildSystemBase, PackagerBase):
     """provides a base class for 3rd party installers or msi packages"""
     def __init__(self):
-        utils.debug("SetupPackageBase.__init__ called", 2)
+        EmergeDebug.debug("SetupPackageBase.__init__ called", 2)
         PackageBase.__init__(self)
         MultiSource.__init__(self)
         BuildSystemBase.__init__(self)
diff --git a/bin/Package/VirtualPackageBase.py b/bin/Package/VirtualPackageBase.py
index 4936147..e739e95 100644
--- a/bin/Package/VirtualPackageBase.py
+++ b/bin/Package/VirtualPackageBase.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 from Package.PackageBase import *
 from Source.SourceBase import *
 from BuildSystem.BuildSystemBase import *
@@ -8,7 +9,7 @@ import portage
 class VirtualPackageBase( PackageBase, SourceBase, BuildSystemBase, PackagerBase ):
     """provides a base class for virtual packages"""
     def __init__( self ):
-        utils.debug( "VirtualPackageBase.__init__ called", 2 )
+        EmergeDebug.debug("VirtualPackageBase.__init__ called", 2)
         PackageBase.__init__( self )
         SourceBase.__init__( self )
         BuildSystemBase.__init__( self, "" )
diff --git a/bin/Packager/CPackPackager.py b/bin/Packager/CPackPackager.py
index 2f64a32..4e33fa3 100644
--- a/bin/Packager/CPackPackager.py
+++ b/bin/Packager/CPackPackager.py
@@ -1,4 +1,4 @@
-
+import EmergeDebug
 from Packager.PackagerBase import *
 
 class CPackPackager (PackagerBase):
@@ -6,6 +6,6 @@ class CPackPackager (PackagerBase):
         PackagerBase.__init__(self)
 
     def createPackage(self):
-        utils.die("not implemented yet")
+        EmergeDebug.die("not implemented yet")
 
 
diff --git a/bin/Packager/CollectionPackagerBase.py \
b/bin/Packager/CollectionPackagerBase.py index 36fb618..ffaed54 100644
--- a/bin/Packager/CollectionPackagerBase.py
+++ b/bin/Packager/CollectionPackagerBase.py
@@ -7,6 +7,7 @@ import re
 import types
 import fileinput
 
+import EmergeDebug
 from Packager.PackagerBase import *
 
 
@@ -24,9 +25,9 @@ class PackagerLists(object):
             try:
                 exp = re.compile( line, re.IGNORECASE )
                 ret.append( exp )
-                utils.debug( "%s added to blacklist as %s" % ( line, exp.pattern ), \
2 ) +                EmergeDebug.debug("%s added to blacklist as %s" % (line, \
exp.pattern), 2)  except re.error:
-                utils.debug( "%s is not a valid regexp" % line, 1 )
+                EmergeDebug.debug("%s is not a valid regexp" % line, 1)
         return ret
 
     @staticmethod
@@ -57,7 +58,7 @@ class CollectionPackagerBase( PackagerBase ):
     def whitelist(self):
         if not self._whitelist:
             for entry in self.whitelist_file:
-                utils.debug( "reading whitelist: %s" % entry, 2 )
+                EmergeDebug.debug("reading whitelist: %s" % entry, 2)
                 if isinstance( entry, types.FunctionType ) or isinstance( entry, \
types.MethodType ):  for line in entry():
                         self._whitelist.append( line )
@@ -69,7 +70,7 @@ class CollectionPackagerBase( PackagerBase ):
     def blacklist(self):
         if not self._blacklist:
             for entry in self.blacklist_file:
-                utils.debug( "reading blacklist: %s" % entry, 2 )
+                EmergeDebug.debug("reading blacklist: %s" % entry, 2)
                 if isinstance( entry, types.FunctionType ) or isinstance( entry, \
types.MethodType ):  for line in entry():
                         self._blacklist.append( line )
@@ -116,7 +117,7 @@ class CollectionPackagerBase( PackagerBase ):
             imageDirs.append(( os.path.join( self.rootdir, "build", x.category, \
x.package,  self.__imageDirPattern( _package, _package.buildTarget )), \
_package.subinfo.options.merge.destinationPath , \
_package.subinfo.options.package.disableStriping ) )  # this loop collects the files \
                from all image directories
-            utils.debug("__getImageDirectories: category: %s, package: %s, version: \
%s, defaultTarget: %s" % ( _package.category, x.package, _package.version, \
_package.buildTarget ), 2) +            EmergeDebug.debug("__getImageDirectories: \
category: %s, package: %s, version: %s, defaultTarget: %s" % (_package.category, \
x.package, _package.version, _package.buildTarget), 2)  if \
emergeSettings.getboolean("QtSDK", "Enabled", "false"):  \
imageDirs.append((os.path.join( emergeSettings.get("QtSDK", "Path") , \
emergeSettings.get("QtSDK", "Version"), emergeSettings.get("QtSDK", "Compiler")), \
None, False))  return imageDirs
@@ -125,7 +126,7 @@ class CollectionPackagerBase( PackagerBase ):
         """ Read regular expressions from fname """
         fname = os.path.join( self.packageDir(), fname )
         if not os.path.isfile( fname ):
-            utils.die( "Whitelist not found at: %s" % os.path.abspath( fname ) )
+            EmergeDebug.die("Whitelist not found at: %s" % os.path.abspath(fname))
             return False
         for line in fileinput.input( fname ):
             # Cleanup white spaces / line endings
@@ -136,15 +137,15 @@ class CollectionPackagerBase( PackagerBase ):
             try:
                 exp = re.compile( line, re.IGNORECASE )
                 self._whitelist.append( exp )
-                utils.debug( "%s added to whitelist as %s" % ( line, exp.pattern ), \
2 ) +                EmergeDebug.debug("%s added to whitelist as %s" % (line, \
exp.pattern), 2)  except re.error:
-                utils.debug( "%s is not a valid regexp" % line, 1 )
+                EmergeDebug.debug("%s is not a valid regexp" % line, 1)
 
     def read_blacklist( self, fname ):
         """ Read regular expressions from fname """
         fname = os.path.join( self.packageDir(), fname )
         if not os.path.isfile( fname ):
-            utils.die( "Blacklist not found at: %s" % os.path.abspath( fname ) )
+            EmergeDebug.die("Blacklist not found at: %s" % os.path.abspath(fname))
             return False
         for line in fileinput.input( fname ):
             # Cleanup white spaces / line endings
@@ -155,9 +156,9 @@ class CollectionPackagerBase( PackagerBase ):
             try:
                 exp = re.compile( line, re.IGNORECASE )
                 self._blacklist.append( exp )
-                utils.debug( "%s added to blacklist as %s" % ( line, exp.pattern ), \
2 ) +                EmergeDebug.debug("%s added to blacklist as %s" % (line, \
exp.pattern), 2)  except re.error:
-                utils.debug( "%s is not a valid regexp" % line, 1 )
+                EmergeDebug.debug("%s is not a valid regexp" % line, 1)
 
     def whitelisted( self, pathname ):
         """ return True if pathname is included in the pattern, and False if not """
@@ -200,14 +201,14 @@ class CollectionPackagerBase( PackagerBase ):
             directory
         """
         utils.createDir( destDir )
-        utils.debug( "Copying from %s ..." % ( srcDir ) )
+        EmergeDebug.debug("Copying from %s ..." % (srcDir))
         uniquebasenames = []
         self.unique_names = []
         duplicates = []
 
         for entry in self.traverse( srcDir, self.whitelisted, self.blacklisted ):
             if os.path.basename( entry ) in uniquebasenames:
-                utils.debug( "Found duplicate filename: %s" % os.path.basename( \
entry ), 2 ) +                EmergeDebug.debug("Found duplicate filename: %s" % \
os.path.basename(entry), 2)  duplicates.append( entry )
             else:
                 self.unique_names.append( entry )
@@ -218,7 +219,7 @@ class CollectionPackagerBase( PackagerBase ):
             if not os.path.exists( os.path.dirname( entry_target ) ):
                 utils.createDir( os.path.dirname( entry_target ) )
             shutil.copy( entry, entry_target )
-            utils.debug( "Copied %s to %s" % ( entry, entry_target ), 2 )
+            EmergeDebug.debug("Copied %s to %s" % (entry, entry_target), 2)
             if not strip and (entry_target.endswith(".dll") or \
entry_target.endswith(".exe")):  self.strip( entry_target )
         for entry in duplicates:
@@ -226,14 +227,14 @@ class CollectionPackagerBase( PackagerBase ):
             if not os.path.exists( os.path.dirname( entry_target ) ):
                 utils.createDir( os.path.dirname( entry_target ) )
             shutil.copy( entry, entry_target )
-            utils.debug( "Copied %s to %s" % ( entry, entry_target ), 2 )
+            EmergeDebug.debug("Copied %s to %s" % (entry, entry_target), 2)
             if not strip and (entry_target.endswith(".dll") or \
entry_target.endswith(".exe")):  self.strip( entry_target )
           
     def internalCreatePackage( self ):
         """ create a package """
         if not self.noClean:
-            utils.debug( "cleaning imagedir: %s" % self.imageDir() )
+            EmergeDebug.debug("cleaning imagedir: %s" % self.imageDir())
             utils.cleanDirectory( self.imageDir() )
             for directory, mergeDir, strip  in self.__getImageDirectories():
                 imageDir = self.imageDir()
@@ -242,7 +243,7 @@ class CollectionPackagerBase( PackagerBase ):
                 if os.path.exists( directory ):
                     self.copyFiles(directory, imageDir, strip)
                 else:
-                    utils.die( "image directory %s does not exist!" % directory )
+                    EmergeDebug.die("image directory %s does not exist!" % \
directory)  
         if not os.path.exists( self.imageDir() ):
             os.makedirs( self.imageDir() )
diff --git a/bin/Packager/InnoSetupPackager.py b/bin/Packager/InnoSetupPackager.py
index 85d06e1..1c45133 100644
--- a/bin/Packager/InnoSetupPackager.py
+++ b/bin/Packager/InnoSetupPackager.py
@@ -2,7 +2,7 @@
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
 # Packager base
-
+import EmergeDebug
 from Packager.PackagerBase import *
 
 class InnoSetupPackager (PackagerBase):
@@ -11,14 +11,14 @@ class InnoSetupPackager (PackagerBase):
         if not initialized: PackagerBase.__init__( self )
         self.packagerExe = os.path.join(os.environ["ProgramFiles"], "Inno Setup 5", \
"ISCC.exe")  if self.packagerExe:
-            utils.debug("using inno setup packager from %s" % self.packagerExe, 2)
+            EmergeDebug.debug("using inno setup packager from %s" % \
self.packagerExe, 2)  
     def configFile(self):
         """ return path of installer config file"""
-        utils.debug("searching package dir for setup config", 2)
+        EmergeDebug.debug("searching package dir for setup config", 2)
 
         fileName = os.path.join(self.buildDir(), "setup.iss")
-        utils.debug("searching build dir for setup config %s" % fileName, 2)
+        EmergeDebug.debug("searching build dir for setup config %s" % fileName, 2)
         if os.path.exists(fileName):
             return fileName
 
@@ -37,7 +37,7 @@ class InnoSetupPackager (PackagerBase):
         print("createPackage from innosetupPackager")
 
         if not self.packagerExe:
-            utils.die("could not find packager in your path!")
+            EmergeDebug.die("could not find packager in your path!")
 
         if self.subinfo.options.package.packageName != None:
             pkgName = self.subinfo.options.package.packageName
@@ -89,7 +89,7 @@ class InnoSetupPackager (PackagerBase):
         #
         infile = self.configFile()
         if infile == None:
-            utils.die("could not find config file %s" % infile)
+            EmergeDebug.die("could not find config file %s" % infile)
         with open(infile,'r') as _in:
             lines = _in.read().splitlines()
 
@@ -105,7 +105,7 @@ class InnoSetupPackager (PackagerBase):
 
         cmd += " \"%s\"" % (outfile)
         if not utils.systemWithoutShell(cmd):
-            utils.die( "while packaging. cmd: %s" % cmd )
+            EmergeDebug.die("while packaging. cmd: %s" % cmd)
         return True
 
 
diff --git a/bin/Packager/KDEWinPackager.py b/bin/Packager/KDEWinPackager.py
index 3abd6c1..3ae7153 100644
--- a/bin/Packager/KDEWinPackager.py
+++ b/bin/Packager/KDEWinPackager.py
@@ -5,6 +5,7 @@
 
 import subprocess
 
+import EmergeDebug
 from Packager.PackagerBase import *
 import compiler
 
@@ -22,7 +23,7 @@ class KDEWinPackager (PackagerBase):
                 self.packagerExe = path
                 break
         if self.packagerExe:
-            utils.debug("using kdewin packager from %s" % self.packagerExe, 2)
+            EmergeDebug.debug("using kdewin packager from %s" % self.packagerExe, 2)
             _,tmp = subprocess.Popen(self.packagerExe, stdout=subprocess.PIPE, \
stderr=subprocess.PIPE).communicate()  tmp = str(tmp,"windows-1252")
             self.useDebugPackages = "symroot" in tmp
@@ -39,7 +40,7 @@ class KDEWinPackager (PackagerBase):
         This requires the kdewin-packager"""
 
         if not self.packagerExe:
-            utils.die("could not find kdewin-packager in your path!")
+            EmergeDebug.die("could not find kdewin-packager in your path!")
 
         if self.subinfo.options.package.packageName != None:
             pkgName = self.subinfo.options.package.packageName
@@ -62,7 +63,7 @@ class KDEWinPackager (PackagerBase):
             srcCmd = " -srcroot " + self.sourceDir()
         else:
             if not os.path.exists( self.sourceDir() ):
-                utils.warning( "The source directory %s doesn't exist and can't be \
used for packaging." % self.sourceDir() ) +                EmergeDebug.warning("The \
source directory %s doesn't exist and can't be used for packaging." % \
self.sourceDir())  srcCmd = ""
 
         # copy pdb/sym files to a temporary directory, because they can be scattered \
all over the build directory @@ -82,7 +83,7 @@ class KDEWinPackager (PackagerBase):
             # shouldn't be needed, usually; but if files are present, that could \
lead to errors  utils.cleanDirectory ( symRoot )
 
-            utils.debug( "Copying debugging files to 'dbg'..." )
+            EmergeDebug.debug("Copying debugging files to 'dbg'...")
             for path, _, files in os.walk( path ):
                 found = 0
                 for directory in range( 0, len( dirsToIgnore ) ):
@@ -91,7 +92,7 @@ class KDEWinPackager (PackagerBase):
                         break
                 if found == 1:
                     continue
-                utils.debug( "Checking: %s" % path, 3 )
+                EmergeDebug.debug("Checking: %s" % path, 3)
                 for fileName in files:
                     if ( fileName.endswith( ".pdb" ) ):
                         utils.copyFile( os.path.join( path, fileName ), \
os.path.join( symPath, fileName ) ) @@ -108,7 +109,7 @@ class KDEWinPackager \
(PackagerBase):  symCmd += "-strip "
             symCmd += "-debug-package "
             symCmd += "-symroot " + symRoot
-            utils.debug ( symCmd, 2 )
+            EmergeDebug.debug(symCmd, 2)
 
         cmd = "-name %s -root %s -version %s -destdir %s %s %s -checksum sha1 " % \
                   ( pkgName, self.imageDir(), pkgVersion, dstpath, srcCmd, symCmd )
@@ -116,15 +117,15 @@ class KDEWinPackager (PackagerBase):
         if os.path.exists(xmltemplate):
             cmd = self.packagerExe + " " + cmd + " -template " + xmltemplate + " \
                -notes " + \
                     "%s/%s:%s:unknown " % ( self.category, self.package, \
                pkgNotesVersion ) + "-compression 2 "
-            utils.debug("using xml template for package generating", 1)
+            EmergeDebug.debug("using xml template for package generating", 1)
         elif self.package == "qt":
             cmd = self.packagerExe + " " + cmd + " -template :/template-qt.xml \
                -notes " + \
                     "%s/%s:%s:unknown " % ( self.category, self.package, \
                pkgNotesVersion ) + "-compression 2 "
-            utils.debug("using xml template for package generating", 1)
+            EmergeDebug.debug("using xml template for package generating", 1)
         else:
             cmd = self.packagerExe + " " + cmd + " -verbose -notes " + \
                     "%s/%s:%s:unknown " % ( self.category, self.package, \
                pkgNotesVersion ) + "-compression 2 "
-            utils.debug(" xml template %s for package generating not found" % \
xmltemplate, 1) +            EmergeDebug.debug(" xml template %s for package \
generating not found" % xmltemplate, 1)  
         if( self.subinfo.options.package.withCompiler ):
             cmd += " -type "
@@ -141,7 +142,7 @@ class KDEWinPackager (PackagerBase):
 #            cmd += " -special"
 
         if not utils.system(cmd):
-            utils.die( "while packaging. cmd: %s" % cmd )
+            EmergeDebug.die("while packaging. cmd: %s" % cmd)
 
         if self.useDebugPackages:
             utils.rmtree( symPath )
diff --git a/bin/Packager/MSIFragmentPackager.py \
b/bin/Packager/MSIFragmentPackager.py index 8fb0ed2..7760cdb 100644
--- a/bin/Packager/MSIFragmentPackager.py
+++ b/bin/Packager/MSIFragmentPackager.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2015 Patrick Spendrin <ps_ml@gmx.de>
 #
-
+import EmergeDebug
 import portage
 from xml.dom.minidom import Document
 import hashlib
@@ -30,7 +30,7 @@ class MSIFragmentPackager( PackagerBase ):
 
     def __init__( self, initialized = False ):
         if not initialized: PackagerBase.__init__( self )
-        utils.debug( "MSIFragmentPackager __init__", 2 )
+        EmergeDebug.debug("MSIFragmentPackager __init__", 2)
         self.outDestination = self.packageDestinationDir()
         self.objectFiles = []
 
diff --git a/bin/Packager/MSInstallerPackager.py \
b/bin/Packager/MSInstallerPackager.py index 55812cd..4e16af5 100644
--- a/bin/Packager/MSInstallerPackager.py
+++ b/bin/Packager/MSInstallerPackager.py
@@ -7,6 +7,7 @@ from string import Template
 from io import StringIO
 import re
 
+import EmergeDebug
 from .CollectionPackagerBase import *
 
 
@@ -64,8 +65,8 @@ class MSInstallerPackager( CollectionPackagerBase ):
             dstpath = self.packageDestinationDir()
             self.defines[ "setupname" ] = os.path.join( dstpath, self.defines[ \
"setupname" ] )  
-        utils.new_line()
-        utils.debug( "generating installer %s" % self.defines[ "setupname" ] )
+        EmergeDebug.new_line()
+        EmergeDebug.debug("generating installer %s" % self.defines["setupname"])
 
         wxs = Document()
         componentRefs = Document()
diff --git a/bin/Packager/MultiPackager.py b/bin/Packager/MultiPackager.py
index 1a98e8c..c849b35 100644
--- a/bin/Packager/MultiPackager.py
+++ b/bin/Packager/MultiPackager.py
@@ -1,12 +1,12 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Packager.PackagerFactory import *
 
 class MultiPackager(object):
     def __init__(self, packagerType=None):
-        utils.debug( "MultiPackager __init__ %s" %packagerType, 2 )
+        EmergeDebug.debug("MultiPackager __init__ %s" % packagerType, 2)
         self.packagers = PackagerFactory(self, packagerType)
 
     def createPackage(self):
diff --git a/bin/Packager/NullsoftInstallerPackager.py \
b/bin/Packager/NullsoftInstallerPackager.py index 55bf668..62975c9 100644
--- a/bin/Packager/NullsoftInstallerPackager.py
+++ b/bin/Packager/NullsoftInstallerPackager.py
@@ -4,6 +4,7 @@
 #
 from winreg import * # pylint: disable=F0401
 
+import EmergeDebug
 import utils
 from Packager.CollectionPackagerBase import *
 
@@ -51,10 +52,10 @@ file collection process is skipped, and only the installer is \
generated.  if not self._isInstalled:
             self._isInstalled = self.__isInstalled()
             if not self._isInstalled:
-                utils.die( "could not find installed nsis package, "
+                EmergeDebug.die("could not find installed nsis package, "
                            "you can install it using emerge nsis or"
                            "download and install it from "
-                           "http://sourceforge.net/projects/nsis/" )
+                           "http://sourceforge.net/projects/nsis/")
 
     def __isInstalled( self ):
         """ check if nsis (Nullsoft scriptable install system) is installed \
somewhere """ @@ -124,13 +125,13 @@ file collection process is skipped, and only the \
installer is generated.  for key in self.defines:
             definestring += " /D" + key + "=\"" + self.defines[ key ] + "\""
 
-        utils.new_line()
-        utils.debug( "generating installer %s" % self.defines[ "setupname" ] )
+        EmergeDebug.new_line()
+        EmergeDebug.debug("generating installer %s" % self.defines["setupname"])
         if self.isInstalled:
             if not utils.systemWithoutShell( "\"%s\" %s %s" % ( os.path.join(
                     self.nsisInstallPath, 'makensis.exe' ), definestring,
                     self.scriptname ), cwd = os.path.abspath( self.packageDir() ) ):
-                utils.die("Error in makensis execution")
+                EmergeDebug.die("Error in makensis execution")
 
     def createPackage( self ):
         """ create a package """
diff --git a/bin/Packager/PackagerFactory.py b/bin/Packager/PackagerFactory.py
index fce24d6..2db9ed9 100644
--- a/bin/Packager/PackagerFactory.py
+++ b/bin/Packager/PackagerFactory.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Packager.KDEWinPackager import *
 from Packager.CPackPackager import *
 from Packager.SevenZipPackager import *
@@ -20,13 +20,13 @@ def init(packager, parent):
 def PackagerFactory(parent, packagerType):
     """provides multi packager type api
     return PackagerBase derived instance for recent settings"""
-    utils.debug( "PackagerFactory called", 2 )
+    EmergeDebug.debug("PackagerFactory called", 2)
     packagers = []
 
     if packagerType:
         for packagerClass in packagerType:
             if not issubclass(packagerClass, PackagerBase):
-                utils.die("PackagerFactory: unsupported packager %s" % \
packagerClass) +                EmergeDebug.die("PackagerFactory: unsupported \
packager %s" % packagerClass)  else:
                 packager = packagerClass()
                 init(packager, parent)
diff --git a/bin/Packager/PortablePackager.py b/bin/Packager/PortablePackager.py
index fcc22cf..edcd2ee 100644
--- a/bin/Packager/PortablePackager.py
+++ b/bin/Packager/PortablePackager.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2011 Hannah von Reth <vonreth@kde.org>
 #
-
+import EmergeDebug
 import utils
 from .CollectionPackagerBase import *
 from .SevenZipPackager import *
@@ -22,7 +22,7 @@ Packager for portal 7zip archives
         """create portable 7z package with digest files located in the manifest \
subdir"""  
         if not self.packagerExe:
-            utils.die("could not find 7za in your path!")
+            EmergeDebug.die("could not find 7za in your path!")
 
 
         if not "setupname" in self.defines or not self.defines[ "setupname" ]:
diff --git a/bin/Packager/SevenZipPackager.py b/bin/Packager/SevenZipPackager.py
index 05fc690..b647bea 100644
--- a/bin/Packager/SevenZipPackager.py
+++ b/bin/Packager/SevenZipPackager.py
@@ -12,6 +12,7 @@
 # - self extraction archives
 #
 #
+import EmergeDebug
 from Packager.PackagerBase import *
 
 class SevenZipPackager (PackagerBase):
@@ -26,7 +27,7 @@ class SevenZipPackager (PackagerBase):
                 self.packagerExe = path
                 break
         if self.packagerExe:
-            utils.debug("using 7za from %s" % self.packagerExe, 2)
+            EmergeDebug.debug("using 7za from %s" % self.packagerExe, 2)
 
     def _archiveName(self, pkgSuffix):
         pkgVersion, _ = self.getPackageVersion()
@@ -41,13 +42,13 @@ class SevenZipPackager (PackagerBase):
         utils.deleteFile(archiveName)
         cmd = "%s a -r %s %s/*" % (self.packagerExe, os.path.join(destDir, \
archiveName), sourceDir )  if not utils.system(cmd):
-            utils.die( "while packaging. cmd: %s" % cmd )
+            EmergeDebug.die("while packaging. cmd: %s" % cmd)
 
     def createPackage(self):
         """create 7z package with digest files located in the manifest subdir"""
 
         if not self.packagerExe:
-            utils.die("could not find 7za in your path!")
+            EmergeDebug.die("could not find 7za in your path!")
 
 
         dstpath = self.packageDestinationDir()
diff --git a/bin/Packager/TypePackager.py b/bin/Packager/TypePackager.py
index 8ff671b..066bd1d 100644
--- a/bin/Packager/TypePackager.py
+++ b/bin/Packager/TypePackager.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2015 Patrick Spendrin <ps_ml@gmx.de>
 #
-
+import EmergeDebug
 from Packager.PackagerBase import *
 
 from Packager.KDEWinPackager import *
@@ -17,7 +17,7 @@ The packager used can be decided at runtime
     PackagerTypes = [ "SevenZipPackager", "KDEWinPackager", "MSIFragmentPackager", \
"InnoSetupPackager" ]  
     def __init__( self, defaultType = "MSIFragmentPackager" ):
-        utils.debug( "TypePackager __init__ %s" % defaultType, 2 )
+        EmergeDebug.debug("TypePackager __init__ %s" % defaultType, 2)
         self.defaultPackager = defaultType
 
     def changePackager( self, packager=None ):
diff --git a/bin/Source/ArchiveSource.py b/bin/Source/ArchiveSource.py
index b43d601..471204c 100644
--- a/bin/Source/ArchiveSource.py
+++ b/bin/Source/ArchiveSource.py
@@ -4,6 +4,7 @@
 
 import shutil
 
+import EmergeDebug
 from Source.SourceBase import *
 
 
@@ -11,7 +12,7 @@ class ArchiveSource(SourceBase):
     """ file download source"""
     filenames = []
     def __init__(self, subinfo=None):
-        utils.debug( "ArchiveSource.__init__ called", 2 )
+        EmergeDebug.debug("ArchiveSource.__init__ called", 2)
         if subinfo:
             self.subinfo = subinfo
         SourceBase.__init__( self )
@@ -36,7 +37,7 @@ class ArchiveSource(SourceBase):
 
     def localFileNamesBase(self):
         """ collect local filenames """
-        utils.debug( "ArchiveSource.localFileNamesBase called", 2 )
+        EmergeDebug.debug("ArchiveSource.localFileNamesBase called", 2)
 
         filenames = []
         for i in range(self.repositoryUrlCount()):
@@ -60,23 +61,23 @@ class ArchiveSource(SourceBase):
 
     def fetch( self, dummyRepopath = None ):
         """fetch normal tarballs"""
-        utils.debug( "ArchiveSource.fetch called", 2 )
+        EmergeDebug.debug("ArchiveSource.fetch called", 2)
 
         filenames = self.localFileNames()
 
         if ( self.noFetch ):
-            utils.debug( "skipping fetch (--offline)" )
+            EmergeDebug.debug("skipping fetch (--offline)")
             return True
 
         self.setProxy()
         if self.subinfo.hasTarget():
             if self.__checkFilesPresent(filenames):
-                utils.debug("files and digests available, no need to download \
files", 1) +                EmergeDebug.debug("files and digests available, no need \
to download files", 1)  return True
 
             result = utils.getFiles( self.subinfo.target(), \
EmergeStandardDirs.downloadDir() , filenames = self.subinfo.archiveName() )  if not \
                result:
-                utils.debug( "failed to download files", 1 )
+                EmergeDebug.debug("failed to download files", 1)
                 return False
             if result and self.subinfo.hasTargetDigestUrls():
                 if self.subinfo.targetDigestUrl() == "auto":
@@ -84,34 +85,34 @@ class ArchiveSource(SourceBase):
                 else:
                     return utils.getFiles( self.subinfo.targetDigestUrl(), \
EmergeStandardDirs.downloadDir(), filenames = '' )  else:
-                utils.debug( "no digestUrls present", 2 )
+                EmergeDebug.debug("no digestUrls present", 2)
                 return True
         else:
             return utils.getFiles( "", EmergeStandardDirs.downloadDir() )
 
     def checkDigest(self):
-        utils.debug( "ArchiveSource.checkDigest called", 2 )
+        EmergeDebug.debug("ArchiveSource.checkDigest called", 2)
         filenames = self.localFileNames()
 
         if self.subinfo.hasTargetDigestUrls():
-            utils.debug("check digests urls", 1)
+            EmergeDebug.debug("check digests urls", 1)
             if not utils.checkFilesDigests( EmergeStandardDirs.downloadDir(), \
                filenames):
-                utils.error("invalid digest file")
+                EmergeDebug.error("invalid digest file")
                 return False
         elif self.subinfo.hasTargetDigests():
-            utils.debug("check digests", 1)
+            EmergeDebug.debug("check digests", 1)
             if not utils.checkFilesDigests( EmergeStandardDirs.downloadDir(), \
                filenames, self.subinfo.targetDigest()):
-                utils.error("invalid digest file")
+                EmergeDebug.error("invalid digest file")
                 return False
         else:
-            utils.debug("print source file digests", 1)
+            EmergeDebug.debug("print source file digests", 1)
             digests = utils.createFilesDigests( EmergeStandardDirs.downloadDir(), \
filenames )  utils.printFilesDigests( digests, self.subinfo.buildTarget)
         return True
 
     def unpack(self):
         """unpacking all zipped(gz, zip, bz2) tarballs"""
-        utils.debug( "ArchiveSource.unpack called", 2 )
+        EmergeDebug.debug("ArchiveSource.unpack called", 2)
 
         filenames = self.localFileNames()
         ## @todo: unpack destination is probably sourceDir()
@@ -121,30 +122,30 @@ class ArchiveSource(SourceBase):
         # if using BinaryBuildSystem the files should be unpacked into imagedir
         if self.buildSystemType == 'binary':
             destdir = self.installDir()
-            utils.debug("unpacking files into image root %s" % destdir, 1)
+            EmergeDebug.debug("unpacking files into image root %s" % destdir, 1)
         # tempory solution
         elif self.subinfo.options.unpack.unpackIntoBuildDir:
             destdir = self.buildDir()
-            utils.debug("unpacking files into build dir %s" % destdir, 1)
+            EmergeDebug.debug("unpacking files into build dir %s" % destdir, 1)
         else:
             destdir = self.workDir()
-            utils.debug("unpacking files into work root %s" % destdir, 1)
+            EmergeDebug.debug("unpacking files into work root %s" % destdir, 1)
 
         if hasattr(self.subinfo.options.unpack, 'unpackDir'):
             destdir = os.path.join(destdir, self.subinfo.options.unpack.unpackDir)
 
         if self.subinfo.hasTargetDigestUrls():
-            utils.debug("check digests urls", 1)
+            EmergeDebug.debug("check digests urls", 1)
             if not utils.checkFilesDigests( EmergeStandardDirs.downloadDir(), \
                filenames):
-                utils.error("invalid digest file")
+                EmergeDebug.error("invalid digest file")
                 return False
         elif self.subinfo.hasTargetDigests():
-            utils.debug("check digests", 1)
+            EmergeDebug.debug("check digests", 1)
             if not utils.checkFilesDigests( EmergeStandardDirs.downloadDir(), \
                filenames, self.subinfo.targetDigest()):
-                utils.error("invalid digest file")
+                EmergeDebug.error("invalid digest file")
                 return False
         else:
-            utils.debug("print source file digests", 1)
+            EmergeDebug.debug("print source file digests", 1)
             digests = utils.createFilesDigests( EmergeStandardDirs.downloadDir(), \
filenames )  utils.printFilesDigests( digests, self.subinfo.buildTarget)
 
@@ -179,7 +180,7 @@ class ArchiveSource(SourceBase):
         
         diffExe = os.path.join( self.rootdir, "dev-utils", "bin", "diff.exe" )
         if not os.path.exists( diffExe ):
-            utils.die("could not find diff tool, please run 'emerge diffutils'")
+            EmergeDebug.die("could not find diff tool, please run 'emerge \
diffutils'")  
         # get the file paths of the tarballs
         filenames = self.localFileNames()
@@ -187,16 +188,16 @@ class ArchiveSource(SourceBase):
         # if using BinaryBuildSystem the files should be unpacked into imagedir
         if self.buildSystemType == 'binary':
             destdir = self.installDir()
-            utils.debug( "unpacking files into image root %s" % destdir, 1 )
+            EmergeDebug.debug("unpacking files into image root %s" % destdir, 1)
         else:
             destdir = self.workDir()
 
         # it makes no sense to make a diff against nothing
         if ( not os.path.exists( self.sourceDir() ) ):
-            utils.error( "source directory doesn't exist, please run unpack first" )
+            EmergeDebug.error("source directory doesn't exist, please run unpack \
first")  return False
 
-        utils.debug( "unpacking files into work root %s" % destdir, 1 )
+        EmergeDebug.debug("unpacking files into work root %s" % destdir, 1)
 
 
         # make a temporary directory so the original packages don't overwrite the \
already existing ones @@ -214,7 +215,7 @@ class ArchiveSource(SourceBase):
 
         # unpack all packages
         for filename in filenames:
-            utils.debug( "unpacking this file: %s" % filename, 1 )
+            EmergeDebug.debug("unpacking this file: %s" % filename, 1)
             if ( not utils.unpackFile( EmergeStandardDirs.downloadDir(), filename, \
unpackDir ) ):  return False
 
@@ -229,7 +230,7 @@ class ArchiveSource(SourceBase):
             if not isinstance(patches, list):
                 patches = list([patches])
             for fileName, patchdepth in patches[:-1]:
-                utils.debug( "applying patch %s with patchlevel: %s" % ( fileName, \
patchdepth ) ) +                EmergeDebug.debug("applying patch %s with patchlevel: \
                %s" % (fileName, patchdepth))
                 if not self.applyPatch( fileName, patchdepth, os.path.join( tmpdir, \
packagelist[ 0 ] ) ):  return False
             if patches[-1][0]:
@@ -251,7 +252,7 @@ class ArchiveSource(SourceBase):
             if not self.system( cmd ):
                 return False
 
-        utils.debug( "patch created at %s" % patchName )
+        EmergeDebug.debug("patch created at %s" % patchName)
         # remove all directories that are not needed any more after making the patch
         # disabled for now
         #for directory in packagelist:
diff --git a/bin/Source/GitSource.py b/bin/Source/GitSource.py
index d37101e..d49389c 100644
--- a/bin/Source/GitSource.py
+++ b/bin/Source/GitSource.py
@@ -6,6 +6,7 @@
 
 import tempfile
 
+import EmergeDebug
 from Source.VersionSystemSourceBase import *
 
 
@@ -14,7 +15,7 @@ from Source.VersionSystemSourceBase import *
 class GitSource ( VersionSystemSourceBase ):
     """git support"""
     def __init__(self, subinfo=None):
-        utils.trace( 'GitSource __init__', 2 )
+        EmergeDebug.trace('GitSource __init__', 2)
         if subinfo:
             self.subinfo = subinfo
         VersionSystemSourceBase.__init__( self )
@@ -81,11 +82,11 @@ class GitSource ( VersionSystemSourceBase ):
             return branch
 
     def __fetchSingleBranch( self, repopath = None ):
-        utils.trace( 'GitSource __fetchSingleBranch', 2 )
+        EmergeDebug.trace('GitSource __fetchSingleBranch', 2)
         # get the path where the repositories should be stored to
         if repopath == None:
             repopath = self.repositoryUrl()
-        utils.debug( "fetching %s" % repopath)
+        EmergeDebug.debug("fetching %s" % repopath)
 
         # in case you need to move from a read only Url to a writeable one, here it \
gets replaced  repopath = repopath.replace( "[git]", "" )
@@ -140,7 +141,7 @@ class GitSource ( VersionSystemSourceBase ):
                     ret = self.__git('checkout', repoTag)
 
         else:
-            utils.debug( "skipping git fetch (--offline)" )
+            EmergeDebug.debug("skipping git fetch (--offline)")
         return ret
 
     def __git(self, command, *args, **kwargs):
@@ -157,11 +158,11 @@ class GitSource ( VersionSystemSourceBase ):
         return self.system(' '.join(parts), **kwargs)
 
     def __fetchMultipleBranch(self, repopath=None):
-        utils.trace( 'GitSource __fetchMultipleBranch', 2 )
+        EmergeDebug.trace('GitSource __fetchMultipleBranch', 2)
         # get the path where the repositories should be stored to
         if repopath == None:
             repopath = self.repositoryUrl()
-        utils.debug( "fetching %s" % repopath)
+        EmergeDebug.debug("fetching %s" % repopath)
 
         # in case you need to move from a read only Url to a writeable one, here it \
gets replaced  repopath = repopath.replace("[git]", "")
@@ -183,7 +184,7 @@ class GitSource ( VersionSystemSourceBase ):
             else:
                 ret = self.__git('fetch', cwd=rootCheckoutDir)
                 if not ret:
-                    utils.die( "could not fetch remote data" )
+                    EmergeDebug.die("could not fetch remote data")
 
             if repoBranch == "":
                 repoBranch = "master"
@@ -195,18 +196,18 @@ class GitSource ( VersionSystemSourceBase ):
                 else:
                     ret = self.__git('pull')
                     if not ret:
-                        utils.die( "could not pull into branch %s" % repoBranch )
+                        EmergeDebug.die("could not pull into branch %s" % \
repoBranch)  
             if ret:
                 #ret = self.__git('checkout', '-f')
                 ret = self.__git("checkout", "-f", repoTag or repoBranch, \
cwd=branchDir)  else:
-            utils.debug( "skipping git fetch (--offline)" )
+            EmergeDebug.debug("skipping git fetch (--offline)")
         return ret
 
 
     def fetch(self, repopath=None):
-        utils.trace( 'GitSource fetch', 2 )
+        EmergeDebug.trace('GitSource fetch', 2)
         if emergeSettings.getboolean("General","EMERGE_GIT_MULTIBRANCH", False):
             return self.__fetchMultipleBranch(repopath)
         else:
@@ -214,7 +215,7 @@ class GitSource ( VersionSystemSourceBase ):
 
     def applyPatch(self, fileName, patchdepth, unusedSrcDir=None):
         """apply single patch o git repository"""
-        utils.trace( 'GitSource ', 2 )
+        EmergeDebug.trace('GitSource ', 2)
         if fileName:
             patchfile = os.path.join ( self.packageDir(), fileName )
             if emergeSettings.getboolean("General","EMERGE_GIT_MULTIBRANCH", False):
@@ -236,25 +237,25 @@ class GitSource ( VersionSystemSourceBase ):
     def createPatch( self ):
         """create patch file from git source into the related package dir.
         The patch file is named autocreated.patch"""
-        utils.trace( 'GitSource createPatch', 2 )
+        EmergeDebug.trace('GitSource createPatch', 2)
         patchFileName = os.path.join( self.packageDir(), "%s-%s.patch" % \
                 ( self.package, str( datetime.date.today() ).replace('-', '') ) )
-        utils.debug("git diff %s" % patchFileName, 1)
+        EmergeDebug.debug("git diff %s" % patchFileName, 1)
         with open(patchFileName,'wt+') as patchFile:
             return self.__git('diff', stdout=patchFile)
 
     def sourceVersion( self ):
         """print the revision returned by git show"""
-        utils.trace( 'GitSource sourceVersion', 2 )
+        EmergeDebug.trace('GitSource sourceVersion', 2)
 
         return self.__getCurrentRevision()
 
     def checkoutDir(self, index=0 ):
-        utils.trace( 'GitSource checkoutDir', 2 )
+        EmergeDebug.trace('GitSource checkoutDir', 2)
         return VersionSystemSourceBase.checkoutDir( self, index )
 
     def sourceDir(self, index=0 ):
-        utils.trace( 'GitSource sourceDir', 2 )
+        EmergeDebug.trace('GitSource sourceDir', 2)
         repopath = self.repositoryUrl()
         # in case you need to move from a read only Url to a writeable one, here it \
gets replaced  repopath = repopath.replace("[git]", "")
@@ -270,7 +271,7 @@ class GitSource ( VersionSystemSourceBase ):
         if self.subinfo.hasTargetSourcePath():
             sourcedir = os.path.join(sourcedir, self.subinfo.targetSourcePath())
 
-        utils.debug("using sourcedir: %s" % sourcedir, 2)
+        EmergeDebug.debug("using sourcedir: %s" % sourcedir, 2)
         return sourcedir
 
     def getUrls( self ):
diff --git a/bin/Source/HgSource.py b/bin/Source/HgSource.py
index df5c8f2..80fb187 100644
--- a/bin/Source/HgSource.py
+++ b/bin/Source/HgSource.py
@@ -2,13 +2,13 @@
 # copyright (c) 2009 Patrick Spendrin <ps_ml@gmx.de>
 #
 # mercurial support based on the git support
-
+import EmergeDebug
 from Source.VersionSystemSourceBase import *
 
 class HgSource ( VersionSystemSourceBase ):
     """mercurial support"""
     def __init__( self, subinfo=None ):
-        utils.trace( 'HgSource __init__', 2 )
+        EmergeDebug.trace('HgSource __init__', 2)
         if subinfo:
             self.subinfo = subinfo
         VersionSystemSourceBase.__init__( self )
@@ -26,7 +26,7 @@ class HgSource ( VersionSystemSourceBase ):
 
     def fetch( self, repopath=None ):
         """try to clone or update the repository"""
-        utils.trace( "HgSource.fetch called", 2 )
+        EmergeDebug.trace("HgSource.fetch called", 2)
 
         # get the path where the repositories should be stored to
         if repopath == None:
@@ -57,12 +57,12 @@ class HgSource ( VersionSystemSourceBase ):
                 os.chdir( checkoutDir )
                 ret = self.system( "%s update %s" % ( self.hgExecutable, repoBranch \
) ) # TODO: check return code for success  else:
-            utils.debug( "skipping hg fetch (--offline)" )
+            EmergeDebug.debug("skipping hg fetch (--offline)")
         return ret
 
     def applyPatch(self, fileName, patchdepth, unusedSrcDir=None):
         """apply a patch to a mercurial repository checkout"""
-        utils.trace( "HgSource.applyPatches called", 2 )
+        EmergeDebug.trace("HgSource.applyPatches called", 2)
         if fileName and self.enableHg:
             patchfile = os.path.join ( self.packageDir(), fileName )
             os.chdir( self.sourceDir() )
@@ -71,7 +71,7 @@ class HgSource ( VersionSystemSourceBase ):
 
     def createPatch( self ):
         """create patch file from git source into the related package dir. The patch \
                file is named autocreated.patch"""
-        utils.trace( "HgSource.createPatch called", 2 )
+        EmergeDebug.trace("HgSource.createPatch called", 2)
         ret = False
         if self.enableHg:
             os.chdir( self.sourceDir() )
@@ -81,7 +81,7 @@ class HgSource ( VersionSystemSourceBase ):
 
     def sourceVersion( self ):
         """ return the revision of the repository """
-        utils.trace( "HgSource.sourceVersion called", 2 )
+        EmergeDebug.trace("HgSource.sourceVersion called", 2)
 
         if self.enableHg:
 
diff --git a/bin/Source/MultiSource.py b/bin/Source/MultiSource.py
index c972965..db9f7c2 100644
--- a/bin/Source/MultiSource.py
+++ b/bin/Source/MultiSource.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 import utils
 
 from Source.SourceFactory import *
@@ -10,7 +10,7 @@ class MultiSource(object):
     """ provides multi source type api """
     def __init__(self):
         object.__init__(self)
-        utils.trace( "MultiSource __init__", 2 )
+        EmergeDebug.trace("MultiSource __init__", 2)
         # pylint: disable=E1101
         # multiple inheritance: MultiSource is never the only
         # superclass, others define self.source, self.subinfo etc.
@@ -19,21 +19,21 @@ class MultiSource(object):
         self.source.localFileNames = self.localFileNames.__get__(self, MultiSource)
 
     def localFileNames( self ):
-        utils.trace( "MultiSource localFileNames", 2 )
+        EmergeDebug.trace("MultiSource localFileNames", 2)
         if self.subinfo.archiveName() == "":
             return self.source.localFileNamesBase()
         return  (self.subinfo.archiveName(),)
 
     def fetch( self, repopath = None ):
-        utils.trace( "MultiSource fetch", 2 )
+        EmergeDebug.trace("MultiSource fetch", 2)
         return self.source.fetch( repopath )
 
     def checkDigest(self):
-        utils.trace( "MultiSource checkDigest", 2 )
+        EmergeDebug.trace("MultiSource checkDigest", 2)
         return self.source.checkDigest()
 
     def unpack(self):
-        utils.trace( "MultiSource unpack", 2 )
+        EmergeDebug.trace("MultiSource unpack", 2)
         # pylint: disable=E1101
         # multiple inheritance: MultiSource is never the only
         # superclass, others define self.buildSystemType.
@@ -41,23 +41,23 @@ class MultiSource(object):
         return self.source.unpack()
 
     def checkoutDir(self):
-        utils.trace( "MultiSource checkoutDir", 2 )
+        EmergeDebug.trace("MultiSource checkoutDir", 2)
         return self.source.checkoutDir()
 
     def sourceDir(self):
-        utils.trace( "MultiSource sourceDir", 2 )
+        EmergeDebug.trace("MultiSource sourceDir", 2)
         return self.source.sourceDir()
 
     def repositoryUrl(self, index=0):
-        utils.trace( "MultiSource repositoryUrl", 2 )
+        EmergeDebug.trace("MultiSource repositoryUrl", 2)
         return self.source.repositoryUrl(index)
 
     def repositoryUrlCount(self):
-        utils.trace( "MultiSource repositoryUrlCount", 2 )
+        EmergeDebug.trace("MultiSource repositoryUrlCount", 2)
         return self.source.repositoryUrlCount()
 
     def applyPatches(self):
-        utils.trace( "MultiSource applyPatches", 2 )
+        EmergeDebug.trace("MultiSource applyPatches", 2)
         return self.source.applyPatches()
 
     def applyPatch(self):
@@ -67,23 +67,23 @@ class MultiSource(object):
         # return self.source.applyPatch()
 
     def createPatch(self):
-        utils.trace( "MultiSource createPatch", 2 )
+        EmergeDebug.trace("MultiSource createPatch", 2)
         return self.source.createPatch()
 
     def getUrls(self):
-        utils.trace( "MultiSource getUrls", 2 )
+        EmergeDebug.trace("MultiSource getUrls", 2)
         return self.source.getUrls()
 
     def sourceVersion(self):
-        utils.trace( "MultiSource sourceVersion", 2 )
+        EmergeDebug.trace("MultiSource sourceVersion", 2)
         return self.source.sourceVersion()
 
     def sourceRevision(self):
-        utils.trace( "MultiSource sourceVersion", 2 )
+        EmergeDebug.trace("MultiSource sourceVersion", 2)
         return self.source.sourceRevision()
 
         
     def printSourceVersion(self):
-        utils.trace( "MultiSource printSourceVersion", 2 )
+        EmergeDebug.trace("MultiSource printSourceVersion", 2)
         print(self.source.sourceVersion())
         return True
diff --git a/bin/Source/SourceBase.py b/bin/Source/SourceBase.py
index b5d6fae..76ca8a6 100644
--- a/bin/Source/SourceBase.py
+++ b/bin/Source/SourceBase.py
@@ -1,13 +1,13 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from EmergeBase import *
 
 class SourceBase(EmergeBase):
     """ implements basic stuff required for all sources"""
     def __init__(self):
-        utils.trace( "SourceBase.__init__ called", 2 )
+        EmergeDebug.trace("SourceBase.__init__ called", 2)
         EmergeBase.__init__(self)
         self.url = ""
 
@@ -56,12 +56,12 @@ class SourceBase(EmergeBase):
 
         if self.subinfo.hasTargetSourcePath():
             sourcedir = os.path.join(sourcedir, self.subinfo.targetSourcePath())
-        utils.debug( "using sourcedir: " + sourcedir, 1 )
+        EmergeDebug.debug("using sourcedir: " + sourcedir, 1)
         return sourcedir
 
     def applyPatches(self):
         """apply patches if available"""
-        utils.trace( "SourceBase.applyPatches called", 0 )
+        EmergeDebug.trace("SourceBase.applyPatches called", 0)
         if self.subinfo.hasTarget() or self.subinfo.hasSvnTarget():
             patches = self.subinfo.patchesToApply()
             if not isinstance(patches, list):
@@ -73,7 +73,7 @@ class SourceBase(EmergeBase):
 
     def applyPatch(self, fileName, patchdepth, srcdir=None ):
         """base implementation for applying a single patch to the source"""
-        utils.trace( "SourceBase.applyPatch called", 2 )
+        EmergeDebug.trace("SourceBase.applyPatch called", 2)
         if not fileName:
             return True
         if not srcdir:
diff --git a/bin/Source/SourceFactory.py b/bin/Source/SourceFactory.py
index 08765d5..68ccad5 100644
--- a/bin/Source/SourceFactory.py
+++ b/bin/Source/SourceFactory.py
@@ -1,7 +1,7 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 import utils
 
 from Source.ArchiveSource import *
@@ -11,7 +11,7 @@ from Source.HgSource import *
 
 def SourceFactory(settings):
     """ return sourceBase derived instance for recent settings"""
-    utils.trace( "SourceFactory called", 1 )
+    EmergeDebug.trace("SourceFactory called", 1)
     source = None
 
     if settings.hasTarget():
@@ -33,7 +33,7 @@ def SourceFactory(settings):
             source = GitSource(settings)
 
     if source == None:
-        utils.die("none or unsupported source system set")
+        EmergeDebug.die("none or unsupported source system set")
     if not source.subinfo:
         source.subinfo = settings
     source.url = url
diff --git a/bin/Source/SvnSource.py b/bin/Source/SvnSource.py
index 2363807..4513211 100644
--- a/bin/Source/SvnSource.py
+++ b/bin/Source/SvnSource.py
@@ -3,13 +3,13 @@
 #
 # subversion support
 ## \todo needs dev-utils/subversion package, add some kind of tool requirement \
                tracking for SourceBase derived classes
-
+import EmergeDebug
 from Source.VersionSystemSourceBase import *
 
 class SvnSource (VersionSystemSourceBase):
     """subversion support"""
     def __init__(self, subinfo=None):
-        utils.trace( "SvnSource.__init__", 2 )
+        EmergeDebug.trace("SvnSource.__init__", 2)
         if subinfo:
             self.subinfo = subinfo
         VersionSystemSourceBase.__init__( self )
@@ -19,7 +19,7 @@ class SvnSource (VersionSystemSourceBase):
 
 
     def checkoutDir( self, index=0 ):
-        utils.trace( "SvnSource.checkoutDir", 2 )
+        EmergeDebug.trace("SvnSource.checkoutDir", 2)
         if self.subinfo.hasSvnTarget():
             u = self.getUrl(index)
             (url, dummy) = self.splitUrl(u)
@@ -33,7 +33,7 @@ class SvnSource (VersionSystemSourceBase):
                 if path and emergeSettings.getboolean("General", \
"EMERGE_SVN_STDLAYOUT", False):  sourcedir = os.path.join( sourcedir, path )
         else:
-            utils.die("svnTarget property not set for this target")
+            EmergeDebug.die("svnTarget property not set for this target")
 
         if self.subinfo.targetSourceSuffix() != None:
             sourcedir = "%s-%s" % (sourcedir, self.subinfo.targetSourceSuffix())
@@ -42,7 +42,7 @@ class SvnSource (VersionSystemSourceBase):
 
     def applyPatch(self, fileName, patchdepth, unusedSrcDir=None):
         """apply a patch to a svn repository checkout"""
-        utils.trace( "SvnSource.applyPatch", 2 )
+        EmergeDebug.trace("SvnSource.applyPatch", 2)
         if fileName:
             patchfile = os.path.join (self.packageDir(), fileName)
             # @todo check if this could be merged into SourceBase.applyPatch
@@ -69,13 +69,13 @@ class SvnSource (VersionSystemSourceBase):
 
     def fetch( self, repopath = None ):
         """ checkout or update an existing repository path """
-        utils.trace( "SvnSource.fetch", 2 )
+        EmergeDebug.trace("SvnSource.fetch", 2)
         if self.noFetch:
-            utils.debug( "skipping svn fetch (--offline)" )
+            EmergeDebug.debug("skipping svn fetch (--offline)")
             return True
 
         if not os.path.exists(self.svnInstallDir):
-            utils.die("required subversion package not installed in %s" % \
self.svnInstallDir) +            EmergeDebug.die("required subversion package not \
installed in %s" % self.svnInstallDir)  
         for i in range(self.repositoryUrlCount()):
             if repopath:
@@ -193,7 +193,7 @@ class SvnSource (VersionSystemSourceBase):
         if not recursive:
             option = "--depth=files"
 
-        if utils.verbose() < 2 and not emergeSettings.getboolean("General", \
"KDESVNVERBOSE",True): +        if EmergeDebug.verbose() < 2 and not \
emergeSettings.getboolean("General", "KDESVNVERBOSE", True):  option += " --quiet"
 
         self.setProxy()
diff --git a/bin/Source/VersionSystemSourceBase.py \
b/bin/Source/VersionSystemSourceBase.py index 2794073..1a3b685 100644
--- a/bin/Source/VersionSystemSourceBase.py
+++ b/bin/Source/VersionSystemSourceBase.py
@@ -1,19 +1,19 @@
 #
 # copyright (c) 2009 Ralf Habacker <ralf.habacker@freenet.de>
 #
-
+import EmergeDebug
 from Source.SourceBase import *
 
 class VersionSystemSourceBase (SourceBase):
     """abstract base class for version system support"""
 
     def __init__(self):
-        utils.trace( "VersionSystemSourceBase __init__", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase __init__", 2)
         SourceBase.__init__(self)
 
     def getUrl( self, index ):
         """get the url at position 'index' from a ';' separated list of urls"""
-        utils.trace( "VersionSystemSourceBase getUrl", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase getUrl", 2)
         u = self.subinfo.svnTarget()
         if u.find(';') == -1:
             if index == 0:
@@ -30,14 +30,14 @@ class VersionSystemSourceBase (SourceBase):
 
     def splitUrl( self, url ):
         """ split url into real url and url option. the delimiter is '#'"""
-        utils.trace( "VersionSystemSourceBase splitUrl", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase splitUrl", 2)
         if url.find('#') != -1:
             return url.split('#')
         return [url, ""]
 
     def __repositoryBaseUrl( self ):
         """ this function return the base url to the KDE repository """
-        utils.trace( "VersionSystemSourceBase __repositoryBaseUrl", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase __repositoryBaseUrl", 2)
         # @todo move to SvnSource
         server = emergeSettings.get("General", "KDESVNSERVER", \
"svn://anonsvn.kde.org")  
@@ -45,16 +45,16 @@ class VersionSystemSourceBase (SourceBase):
         return server + '/home/kde/'
 
     def unpack(self):
-        utils.trace( "VersionSystemSourceBase unpack", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase unpack", 2)
         self.enterBuildDir()
 
         if not self.noClean:
-            if utils.verbose() > 0:
+            if EmergeDebug.verbose() > 0:
                 print("cleaning %s" % self.buildDir())
             utils.cleanDirectory( self.buildDir() )
         if not self.noCopy:
             sourceDir = self.checkoutDir()
-            if utils.verbose() > 0:
+            if EmergeDebug.verbose() > 0:
                 print("copying %s to %s" % (sourceDir, self.buildDir()))
             utils.copySrcDirToDestDir(sourceDir, self.buildDir())
         ret = self.applyPatches()
@@ -64,7 +64,7 @@ class VersionSystemSourceBase (SourceBase):
 
     def repositoryUrlCount( self ):
         """return the number of provided repository url's. Multiple repository urls' \
                are delimited by ';'"""
-        utils.trace( "VersionSystemSourceBase repositoryUrlCount", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase repositoryUrlCount", 2)
         if not self.subinfo.hasSvnTarget():
             return 0
         u = self.subinfo.svnTarget()
@@ -76,7 +76,7 @@ class VersionSystemSourceBase (SourceBase):
     def repositoryUrl( self, index=0 ):
         """this function returns the full url into a version system based repository \
                at position 'index'.
         See @ref repositoryUrlCount how to define multiple repository urls."""
-        utils.trace( "VersionSystemSourceBase repositoryUrl", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase repositoryUrl", 2)
         if self.subinfo.hasSvnTarget():
             u1 = self.getUrl(index)
             (u, dummy) = self.splitUrl(u1)
@@ -94,7 +94,7 @@ class VersionSystemSourceBase (SourceBase):
         """this function return options for the repository url at position 'index'.
         Options for a repository url are defined by adding '#' followed by the \
specific option.  """
-        utils.trace( "VersionSystemSourceBase repositoryUrlOptions", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase repositoryUrlOptions", 2)
         if self.subinfo.hasSvnTarget():
             u = self.getUrl(index)
             (dummy, option) = self.splitUrl(u)
@@ -102,11 +102,11 @@ class VersionSystemSourceBase (SourceBase):
         return None
 
     def checkoutDir( self, dummyIndex=0 ):
-        utils.trace( "VersionSystemSourceBase checkoutDir", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase checkoutDir", 2)
         if self.subinfo.hasSvnTarget():
             sourcedir = os.path.join(  EmergeStandardDirs.gitDir(), self.package )
         else:
-            utils.die("svnTarget property not set for this target")
+            EmergeDebug.die("svnTarget property not set for this target")
 
         if self.subinfo.targetSourceSuffix() != None:
             sourcedir = "%s-%s" % (sourcedir, self.subinfo.targetSourceSuffix())
@@ -114,7 +114,7 @@ class VersionSystemSourceBase (SourceBase):
         return os.path.abspath(sourcedir)
 
     def sourceDir(self, index=0 ):
-        utils.trace( "VersionSystemSourceBase sourceDir", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase sourceDir", 2)
         if not self.noCopy:
             # need to check index ?
             sourcedir = self.workDir()
@@ -129,11 +129,11 @@ class VersionSystemSourceBase (SourceBase):
         if self.subinfo.hasTargetSourcePath():
             sourcedir = os.path.join(sourcedir, self.subinfo.targetSourcePath())
 
-        utils.debug("using sourcedir: %s" % sourcedir, 2)
+        EmergeDebug.debug("using sourcedir: %s" % sourcedir, 2)
         return os.path.abspath(sourcedir)
 
     def sourceRevision(self):
-        utils.trace( "VersionSystemSourceBase sourceRevision", 2 )
+        EmergeDebug.trace("VersionSystemSourceBase sourceRevision", 2)
         return self.sourceVersion()
 
 
diff --git a/bin/VersionInfo.py b/bin/VersionInfo.py
index 4255a45..dd8cf5e 100644
--- a/bin/VersionInfo.py
+++ b/bin/VersionInfo.py
@@ -2,7 +2,7 @@
 # this package contains functions to easily set versions for packages like qt5 or \
kde  # copyright:
 # Hannah von Reth <vonreth [AT] kde [DOT] org>
-
+import EmergeDebug
 from EmergeConfig import *
 import utils
 
@@ -38,14 +38,14 @@ class VersionInfo( object ):
                 iniPath = os.path.abspath( iniPath )
                 if iniPath in VersionInfo._VERSION_INFOS.keys( ):
                     VersionInfo._VERSION_INFOS_HINTS[ name ] = iniPath
-                    utils.debug( "Found a version info for %s in cache" % name, 2 )
+                    EmergeDebug.debug("Found a version info for %s in cache" % name, \
2)  return VersionInfo._VERSION_INFOS[ iniPath ]
                 elif os.path.exists( iniPath ):
                     config = configparser.ConfigParser( )
                     config.read( iniPath )
                     VersionInfo._VERSION_INFOS[ iniPath ] = config
                     VersionInfo._VERSION_INFOS_HINTS[ name ] = iniPath
-                    utils.debug( "Found a version info for %s in %s" % (name, \
iniPath), 2 ) +                    EmergeDebug.debug("Found a version info for %s in \
%s" % (name, iniPath), 2)  return config
             VersionInfo._VERSION_INFOS_HINTS[ name ] = None
         return self.__defaulVersions
diff --git a/bin/compiler.py b/bin/compiler.py
index 8c3fe5a..87e3ae3 100644
--- a/bin/compiler.py
+++ b/bin/compiler.py
@@ -7,6 +7,7 @@ import os
 import subprocess
 import re
 
+import EmergeDebug
 import utils
 from EmergeConfig import *
 
@@ -20,7 +21,7 @@ def _getGCCTarget():
     if not _GCCTARGET:
         status, result = subprocess.getstatusoutput("gcc -dumpmachine")
         if status == 0:
-            utils.debug("GCC Target Processor:%s" % result, 1 )
+            EmergeDebug.debug("GCC Target Processor:%s" % result, 1)
             _GCCTARGET = result.strip()
         else:
             #if no mingw is installed return mingw-w32 it is part of base
@@ -90,7 +91,7 @@ def getCompilerName():
     elif isIntel():
         return "intel-%s-%s" % (os.getenv("TARGET_ARCH"), os.getenv("TARGET_VS"))
     else:
-        utils.die("Unknown Compiler %s" %  _compiler())
+        EmergeDebug.die("Unknown Compiler %s" % _compiler())
 
 def getSimpleCompilerName():
     if isMinGW():
@@ -100,7 +101,7 @@ def getSimpleCompilerName():
     elif isIntel():
         return "intel"
     else:
-        utils.die("Unknown Compiler %s" %  _compiler())
+        EmergeDebug.die("Unknown Compiler %s" % _compiler())
 
 def getMinGWVersion():
     global _MINGW_VERSION # pylint: disable=W0603
@@ -108,7 +109,7 @@ def getMinGWVersion():
         status, result = subprocess.getstatusoutput("gcc --version")
         if status == 0:
             result = re.findall("\d+\.\d+\.?\d*",result)[0]
-            utils.debug("GCC Version:%s" % result, 1 )
+            EmergeDebug.debug("GCC Version:%s" % result, 1)
             _MINGW_VERSION = result.strip()
         else:
             #if no mingw is installed return 0
@@ -136,7 +137,7 @@ def getShortName():
     elif isMSVC2015():
         return "vc140"
     else:
-        utils.die("Unknown Compiler %s" %  _compiler())
+        EmergeDebug.die("Unknown Compiler %s" % _compiler())
 
 
 if __name__ == '__main__':
diff --git a/bin/dependencies.py b/bin/dependencies.py
index 480466f..0e42238 100644
--- a/bin/dependencies.py
+++ b/bin/dependencies.py
@@ -44,6 +44,7 @@
 
    $ dot -T svg -o deps.svg deps.dot
 """
+import EmergeDebug
 
 __author__  = "Sascha L. Teichmann <sascha.teichmann@intevation.de>"
 __license__ = "New-style BSD"
@@ -415,7 +416,7 @@ class DependenciesTree(object):
 
     def getMetaData( self, category, package ):
         """ returns all targets of a specified package """
-        utils.debug( "getMetaData: importing file %s" % portage.getFilename( \
category, package ), 1 ) +        EmergeDebug.debug("getMetaData: importing file %s" \
% portage.getFilename(category, package), 1)  if not ( category and package ):
             return dict()
         info = portage._getSubinfo(  category, package  )
@@ -430,7 +431,7 @@ class DependenciesTree(object):
             if not info.homepage == "":
                 tmpdict['homepage'] = info.homepage
             tmpdict['withCompiler'] = info.options.package.withCompiler
-            utils.debug( tmpdict, 2 )
+            EmergeDebug.debug(tmpdict, 2)
             return tmpdict
         else:
             return {'withCompiler': True}
@@ -593,7 +594,7 @@ def main():
     elif rest:
         output = dumpDependencies(rest[0], output_type, depstyle)
     else:
-        utils.error("missing package list file or package/category")
+        EmergeDebug.error("missing package list file or package/category")
         sys.exit(1)
 
     if hasattr(args, "outputname") and args.outputname:
diff --git a/bin/emerge.py b/bin/emerge.py
index a444196..88e935e 100755
--- a/bin/emerge.py
+++ b/bin/emerge.py
@@ -12,6 +12,8 @@
 
 import sys
 
+import EmergeDebug
+
 MIN_PY_VERSION = (3, 4, 0)
 
 if sys.version_info[ 0:3 ] < MIN_PY_VERSION:
@@ -44,15 +46,15 @@ def packageIsOutdated( category, package ):
 @utils.log
 def doExec( package, action, continueFlag = False ):
     utils.startTimer( "%s for %s" % ( action, package ), 1 )
-    utils.info("Action: %s for %s" % (action, package))
+    EmergeDebug.info("Action: %s for %s" % (action, package))
     ret = package.execute( action )
     utils.stopTimer( "%s for %s" % ( action, package ) )
     return ret or continueFlag
 
 
 def handlePackage( category, packageName, buildAction, continueFlag, skipUpToDateVcs \
                ):
-    utils.debug_line( )
-    utils.info("Handling package: %s, build action: %s" % (packageName, \
buildAction)) +    EmergeDebug.debug_line()
+    EmergeDebug.info("Handling package: %s, build action: %s" % (packageName, \
buildAction))  
     success = True
     package = portage.getPackageInstance( category, packageName )
@@ -65,7 +67,7 @@ def handlePackage( category, packageName, buildAction, \
continueFlag, skipUpToDat  revision = package.sourceVersion( )
             for p in installdb.getInstalledPackages( category, packageName ):
                 if p.getRevision( ) == revision:
-                    utils.info("Skipping further actions, package is up-to-date")
+                    EmergeDebug.info("Skipping further actions, package is \
up-to-date")  return True
 
         success = success and doExec( package, "unpack", continueFlag )
@@ -102,7 +104,7 @@ def handlePackage( category, packageName, buildAction, \
continueFlag, skipUpToDat  portage.printTargets( category, packageName )
         success = True
     else:
-        success = utils.error( "could not understand this buildAction: %s" % \
buildAction ) +        success = EmergeDebug.error("could not understand this \
buildAction: %s" % buildAction)  
     return success
 
@@ -117,9 +119,9 @@ def handleSinglePackage( packageName, args ):
     if args.action == "update-all":
         installedPackages = portage.PortageInstance.getInstallables( )
         if portage.PortageInstance.isCategory( packageName ):
-            utils.debug( "Updating installed packages from category " + packageName, \
1 ) +            EmergeDebug.debug("Updating installed packages from category " + \
packageName, 1)  else:
-            utils.debug( "Updating all installed packages", 1 )
+            EmergeDebug.debug("Updating all installed packages", 1)
         packageList = [ ]
         for mainCategory, mainPackage in installedPackages:
             if portage.PortageInstance.isCategory( packageName ) and ( mainCategory \
!= packageName ): @@ -128,7 +130,7 @@ def handleSinglePackage( packageName, args ):
                     and portage.isPackageUpdateable( mainCategory, mainPackage ):
                 categoryList.append( mainCategory )
                 packageList.append( mainPackage )
-        utils.debug( "Will update packages: " + str( packageList ), 1 )
+        EmergeDebug.debug("Will update packages: " + str(packageList), 1)
     elif args.list_file:
         listFileObject = open( args.list_file, 'r' )
         for line in listFileObject:
@@ -145,7 +147,7 @@ def handleSinglePackage( packageName, args ):
         packageList, categoryList = portage.getPackagesCategories( packageName )
 
     for entry in packageList:
-        utils.debug("Checking dependencies for: %s" % entry, 1)
+        EmergeDebug.debug("Checking dependencies for: %s" % entry, 1)
 
     for mainCategory, entry in zip( categoryList, packageList ):
         deplist = portage.solveDependencies( mainCategory, entry, deplist, \
args.dependencyType, @@ -173,12 +175,12 @@ def handleSinglePackage( packageName, args \
                ):
             # if no target or a wrong one is defined, simply set the default target \
here  item.target = args.target
 
-        utils.debug( "dependency: %s" % item, 1 )
+        EmergeDebug.debug("dependency: %s" % item, 1)
 
     if not deplist:
-        utils.debug("<none>", 1)
+        EmergeDebug.debug("<none>", 1)
 
-    utils.debug_line( 1 )
+    EmergeDebug.debug_line(1)
 
     #for item in deplist:
     #    cat = item[ 0 ]
@@ -241,22 +243,22 @@ def handleSinglePackage( packageName, args ):
             if ( isInstalled and not info.enabled ) and not (
                             isInstalled and (args.outDateVCS or (
                                     args.outDatePackage and isLastPackage) ) and \
                isVCSTarget ):
-                if utils.verbose( ) > 1 and info.package == packageName:
-                    utils.warning( "already installed %s/%s" % ( info.category, \
                info.package) )
-                elif utils.verbose( ) > 2 and not info.package == packageName:
-                    utils.warning( "already installed %s/%s" % ( info.category, \
info.package ) ) +                if EmergeDebug.verbose() > 1 and info.package == \
packageName: +                    EmergeDebug.warning("already installed %s/%s" % \
(info.category, info.package)) +                elif EmergeDebug.verbose() > 2 and \
not info.package == packageName: +                    EmergeDebug.warning("already \
installed %s/%s" % (info.category, info.package))  else:
                 # in case we only want to see which packages are still to be build, \
simply return the package name  if args.probe:
-                    if utils.verbose( ) > 0:
-                        utils.warning( "pretending %s" % info )
+                    if EmergeDebug.verbose() > 0:
+                        EmergeDebug.warning("pretending %s" % info)
                 else:
                     if args.action in [ "install-deps", "update-direct-deps" ]:
                         args.action = "all"
 
                     if not handlePackage( info.category, info.package, args.action, \
                args.doContinue, args.update_fast ):
-                        utils.error( "fatal error: package %s/%s %s failed" % \
-                                     ( info.category, info.package, args.action ) )
+                        EmergeDebug.error("fatal error: package %s/%s %s failed" % \
+                                          ( info.category, info.package, args.action \
))  utils.notify( "Emerge build failed",
                                       "Build of %s/%s failed" % ( info.category, \
info.package),  args.action )
@@ -265,7 +267,7 @@ def handleSinglePackage( packageName, args ):
                                   "Build of %s/%s finished" % ( info.category, \
info.package),  args.action )
 
-    utils.new_line( )
+    EmergeDebug.new_line()
     return True
 
 
@@ -373,9 +375,9 @@ def main( ):
     if args.stayQuiet == True or args.action in [ "version-dir", "version-package",
                                                   "print-installable", \
"print-installed",  "print-targets" ]:
-        utils.setVerbose( -1 )
+        EmergeDebug.setVerbose(-1)
     elif args.verbose:
-        utils.setVerbose( args.verbose )
+        EmergeDebug.setVerbose(args.verbose)
 
     emergeSettings.set( "General", "WorkOffline", args.offline )
     emergeSettings.set( "General", "EMERGE_NOCOPY", args.nocopy )
@@ -405,15 +407,15 @@ def main( ):
     if args.action in [ "update", "update-all" ]:
         args.noclean = True
 
-    utils.debug( "buildAction: %s" % args.action )
-    utils.debug( "doPretend: %s" % args.probe, 1 )
-    utils.debug( "packageName: %s" % args.packageNames )
-    utils.debug( "buildType: %s" % args.buildType )
-    utils.debug( "buildTests: %s" % args.buildTests )
-    utils.debug( "verbose: %d" % utils.verbose( ), 1 )
-    utils.debug( "trace: %s" % args.trace, 1 )
-    utils.debug( "KDEROOT: %s" % EmergeStandardDirs.emergeRoot( ), 1 )
-    utils.debug_line( )
+    EmergeDebug.debug("buildAction: %s" % args.action)
+    EmergeDebug.debug("doPretend: %s" % args.probe, 1)
+    EmergeDebug.debug("packageName: %s" % args.packageNames)
+    EmergeDebug.debug("buildType: %s" % args.buildType)
+    EmergeDebug.debug("buildTests: %s" % args.buildTests)
+    EmergeDebug.debug("verbose: %d" % EmergeDebug.verbose(), 1)
+    EmergeDebug.debug("trace: %s" % args.trace, 1)
+    EmergeDebug.debug("KDEROOT: %s" % EmergeStandardDirs.emergeRoot(), 1)
+    EmergeDebug.debug_line()
 
     if args.print_installed:
         printInstalled( )
@@ -448,8 +450,8 @@ if __name__ == '__main__':
     except KeyboardInterrupt:
         pass
     except portage.PortageException as e:
-        utils.debug(e.exception, 1)
-        utils.error(e)
+        EmergeDebug.debug(e.exception, 1)
+        EmergeDebug.error(e)
     except Exception as e:
         print( e )
         traceback.print_tb( e.__traceback__ )
diff --git a/bin/graphviz.py b/bin/graphviz.py
index cd5a970..71dfb97 100644
--- a/bin/graphviz.py
+++ b/bin/graphviz.py
@@ -6,6 +6,7 @@
 
 import os
 
+import EmergeDebug
 import utils
 
 try:
@@ -51,7 +52,7 @@ class GraphViz(object):
         if not self.isInstalled():
             utils.system("emerge.bat graphviz")
             if not self.isInstalled():
-                utils.die("could not find installed graphviz package, you may \
download and install it from http://www.graphviz.org/Download.php") +                \
EmergeDebug.die("could not find installed graphviz package, you may download and \
install it from http://www.graphviz.org/Download.php")  
     def isInstalled(self):
         if HAS_REGISTRY:
@@ -65,7 +66,7 @@ class GraphViz(object):
         if utils.system( command ):
             return True
         else:
-            utils.die( "while running %s cmd: %s" % ( errorMessage, str( command ) ) \
) +            EmergeDebug.die("while running %s cmd: %s" % (errorMessage, \
str(command)))  
     def runDot(self, inFile, outFile, dotFormat="pdf"):
         dotExecutable = self.graphVizInstallPath
diff --git a/bin/options.py b/bin/options.py
index 1b41f70..a6264fe 100644
--- a/bin/options.py
+++ b/bin/options.py
@@ -34,6 +34,7 @@ import os
 import inspect
 import shlex
 
+import EmergeDebug
 from EmergeConfig import  *
 import utils
 import portage
@@ -353,7 +354,7 @@ class Options(object):
         result = False
         for entry in opts:
             if entry.find('=') == -1:
-                utils.debug('incomplete option %s' % entry, 3)
+                EmergeDebug.debug('incomplete option %s' % entry, 3)
                 continue
             (key, value) = entry.split( '=', 1 )
             if self.__setInstanceAttribute(key, value):
diff --git a/bin/packagelistparser.py b/bin/packagelistparser.py
index 1b68b99..92a297f 100644
--- a/bin/packagelistparser.py
+++ b/bin/packagelistparser.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 import utils
 
 class PackageListParser(object):
@@ -10,7 +11,7 @@ class PackageListParser(object):
         try:
             _listfile = open(self.filename, 'r')
         except:
-            utils.error("couldn't open listfile")
+            EmergeDebug.error("couldn't open listfile")
             return
         for line in _listfile:
             line = line.strip()
diff --git a/bin/portage.py b/bin/portage.py
index e1d0adf..efa6594 100644
--- a/bin/portage.py
+++ b/bin/portage.py
@@ -5,6 +5,7 @@ import builtins
 import importlib
 from collections import OrderedDict
 
+import EmergeDebug
 from EmergePackageObject import PackageObjectBase
 from EmergeConfig import *
 import InstallDB
@@ -68,16 +69,16 @@ class DependencyPackage(PackageObjectBase):
         if deps:
             for line in deps:
                 ( category, package ) = line.split( "/" )
-                utils.debug( "category: %s, name: %s" % ( category, package ), 2 )
+                EmergeDebug.debug("category: %s, name: %s" % (category, package), 2)
                 try:
                     version = PortageInstance.getNewestVersion( category, package )
                 except PortageException as e:
-                    utils.warning("%s for %s/%s as a dependency of %s/%s" %(e, \
e.category, e.package, self.category , self.name)) +                    \
EmergeDebug.warning("%s for %s/%s as a dependency of %s/%s" % (e, e.category, \
e.package, self.category , self.name))  continue
 
                 if not line in self._dependencyList.keys():
                     p = DependencyPackage( category, package, False, self )
-                    utils.debug( "adding package %s/%s-%s" % ( category, package, \
version ), 2 ) +                    EmergeDebug.debug("adding package %s/%s-%s" % \
(category, package, version), 2)  self._dependencyList[ line ] = p
                     p.__readChildren()
                 else:
@@ -133,7 +134,7 @@ throws exception if not found
     for i in rootDirectories():
         if category and os.path.exists( os.path.join( i, category ) ):
             return i
-    utils.die( "can't find category %s" % category )
+    EmergeDebug.die("can't find category %s" % category)
 
 def rootDirForPackage( category, package ):
     """returns the portage directory where it finds the first occurance of this \
package @@ -169,7 +170,7 @@ def getDirname( category, package ):
         else:
             return os.path.join( rootDirForPackage( category, package ), category, \
package )  else:
-        utils.die( "broken category or package %s/%s" % ( category, package ) )
+        EmergeDebug.die("broken category or package %s/%s" % (category, package))
 
 def getFilename( category, package ):
     """ return absolute filename for a given category, package  """
@@ -261,11 +262,11 @@ class Portage(object):
 
     def getCategory( self, package ):
         """ returns the category of this package """
-        utils.debug( "getCategory: %s" % package, 2 )
+        EmergeDebug.debug("getCategory: %s" % package, 2)
 
         for cat in list(self.categories.keys()):
             if package in self.categories[ cat ]:
-                utils.debug( "getCategory: found category %s for package %s" % ( \
cat, package ), 3 ) +                EmergeDebug.debug("getCategory: found category \
%s for package %s" % (cat, package), 3)  return cat
         return False
 
@@ -316,12 +317,12 @@ class Portage(object):
         mod = None
         if fileName.endswith(".py") and os.path.isfile(fileName):
             if not fileName in self._packageDict:
-                utils.debug( "module to import: %s" % fileName, 2 )
+                EmergeDebug.debug("module to import: %s" % fileName, 2)
                 if not os.path.isfile( fileName ):
                     try:
                         mod = builtins.__import__( fileName )
                     except ImportError as e:
-                        utils.warning( 'import failed for module %s: %s' % \
(fileName, str(e)) ) +                        EmergeDebug.warning('import failed for \
module %s: %s' % (fileName, str(e)))  mod =  None
                 else:
                     modulename = os.path.basename( fileName )[:-3].replace('.', '_')
@@ -343,7 +344,7 @@ class Portage(object):
 
     def getDefaultTarget( self, category, package ):
         """ returns the default package of a specified package """
-        utils.debug( "getDefaultTarget: importing file %s" % getFilename( category, \
package ), 2 ) +        EmergeDebug.debug("getDefaultTarget: importing file %s" % \
getFilename(category, package), 2)  if not ( category and package ):
             return dict()
 
@@ -355,14 +356,14 @@ class Portage(object):
 
     def getAllTargets( self, category, package ):
         """ returns all targets of a specified package """
-        utils.debug( "getAllTargets: importing file %s" % getFilename( category, \
package ), 2 ) +        EmergeDebug.debug("getAllTargets: importing file %s" % \
getFilename(category, package), 2)  if not ( category and package ):
             return dict()
         info = _getSubinfo( category, package )
         if not info is None:
             tagDict = info.svnTargets
             tagDict.update( info.targets )
-            utils.debug( tagDict, 2 )
+            EmergeDebug.debug(tagDict, 2)
             return tagDict
         else:
             return dict()
@@ -370,12 +371,12 @@ class Portage(object):
     def getAllVCSTargets( self, category, package ):
         """ returns all version control system targets of a specified package,
             excluding those which do contain tags """
-        utils.debug( "getAllVCSTargets: importing file %s" % getFilename( category, \
package ), 1 ) +        EmergeDebug.debug("getAllVCSTargets: importing file %s" % \
getFilename(category, package), 1)  info = _getSubinfo(  category, package )
         if not info is None:
             tagDict = info.svnTargets
             for key in tagDict:
-                utils.debug( '%s: %s' % ( key, tagDict[key] ), 2 )
+                EmergeDebug.debug('%s: %s' % (key, tagDict[key]), 2)
             return tagDict
         else:
             return dict()
@@ -454,10 +455,10 @@ def getDependencies( category, package, runtimeOnly = False ):
 
     subpackage, package = getSubPackage( category, package )
     if subpackage:
-        utils.debug( "solving package %s/%s/%s %s" % ( category, subpackage, \
                package,
-                                                          getFilename( category, \
package ) ) ) +        EmergeDebug.debug("solving package %s/%s/%s %s" % (category, \
subpackage, package, +                                                           \
getFilename( category, package )))  else:
-        utils.debug( "solving package %s/%s %s" % ( category, package, getFilename( \
category, package ) ) ) +        EmergeDebug.debug("solving package %s/%s %s" % \
(category, package, getFilename(category, package)))  subpackage = package
 
     deps = []
@@ -497,7 +498,7 @@ def solveDependencies( category, package, depList, dep_type = \
'both', maxDetpth  depList.reverse()
     if ( category == "" ):
         category = PortageInstance.getCategory( package )
-        utils.debug( "found package in category %s" % category, 2 )
+        EmergeDebug.debug("found package in category %s" % category, 2)
 
     pac = DependencyPackage( category, package, parent = None )
     depList = pac.getDependencies( depList, dep_type=dep_type, maxDetpth = \
maxDetpth, single = set() ) @@ -527,7 +528,7 @@ def _getSubinfo( category, package  \
):  
 
 def readChildren( category, package ):
-    utils.debug( "solving package %s/%s %s" % ( category, package, getFilename( \
category, package ) ), 2 ) +    EmergeDebug.debug("solving package %s/%s %s" % \
(category, package, getFilename(category, package)), 2)  subinfo = _getSubinfo( \
category, package  )  
     if subinfo is None:
@@ -542,7 +543,7 @@ def readChildren( category, package ):
     return runtimeDependencies, buildDependencies
 
 def isPackageUpdateable( category, package ):
-    utils.debug( "isPackageUpdateable: importing file %s" % getFilename( category, \
package ), 2 ) +    EmergeDebug.debug("isPackageUpdateable: importing file %s" % \
getFilename(category, package), 2)  subinfo = _getSubinfo( category, package )
     if not subinfo is None:
         if len( subinfo.svnTargets ) == 1 and not subinfo.svnTargets[ \
list(subinfo.svnTargets.keys())[0] ]: @@ -591,18 +592,18 @@ def printInstallables():
 
 
 def getPackagesCategories(packageName, defaultCategory = None):
-    utils.trace("getPackagesCategories for package name %s" % packageName)
+    EmergeDebug.trace("getPackagesCategories for package name %s" % packageName)
     if defaultCategory is None:
         defaultCategory = \
emergeSettings.get("General","EMERGE_DEFAULTCATEGORY","kde")  
     packageList, categoryList = [], []
     if len( packageName.split( "/" ) ) == 1:
         if PortageInstance.isCategory( packageName ):
-            utils.debug( "isCategory=True", 2 )
+            EmergeDebug.debug("isCategory=True", 2)
             packageList = PortageInstance.getAllPackages( packageName )
             categoryList = [ packageName ] * len(packageList)
         else:
-            utils.debug( "isCategory=False", 2 )
+            EmergeDebug.debug("isCategory=False", 2)
             if PortageInstance.isCategory( defaultCategory ) and \
PortageInstance.isPackage( defaultCategory, packageName ):  # prefer the default \
category  packageList = [ packageName ]
@@ -620,9 +621,9 @@ def getPackagesCategories(packageName, defaultCategory = None):
         if len( categoryList ) > 0 and PortageInstance.isPackage( categoryList[0], \
pac ):  packageList = [ pac ]
         if len( categoryList ) and len( packageList ):
-            utils.debug( "added package %s/%s" % ( categoryList[0], pac ), 2 )
+            EmergeDebug.debug("added package %s/%s" % (categoryList[0], pac), 2)
     else:
-        utils.error( "unknown packageName" )
+        EmergeDebug.error("unknown packageName")
 
     return packageList, categoryList
 
diff --git a/bin/portageSearch.py b/bin/portageSearch.py
index 45824d4..1ec99e4 100644
--- a/bin/portageSearch.py
+++ b/bin/portageSearch.py
@@ -1,5 +1,6 @@
 import re
 
+import EmergeDebug
 import portage
 import utils
 import InstallDB
@@ -38,7 +39,7 @@ def printSearch(search_category, search_package,maxDist = 2):
             similar = [match]
         
         for levDist,package in similar:
-            utils.debug((package,levDist),1)
+            EmergeDebug.debug((package, levDist), 1)
             print(package)
             print("\t Homepage: %s" % package.subinfo.homepage)
             print("\t Description: %s" % package.subinfo.shortDescription)
diff --git a/bin/prepare-sdk.py b/bin/prepare-sdk.py
index 25a5b81..4eac5d0 100644
--- a/bin/prepare-sdk.py
+++ b/bin/prepare-sdk.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 import utils
 from EmergeConfig import *
 import InstallDB
@@ -35,7 +36,7 @@ def resetSettings():
         fout.write(text)
 
 if __name__ == "__main__":
-    utils.setVerbose(3)
+    EmergeDebug.setVerbose(3)
     # we don't use the db directly and the file must not be locked
     del InstallDB.installdb
     backup()
diff --git a/bin/shells.py b/bin/shells.py
index 2472409..2881fe5 100644
--- a/bin/shells.py
+++ b/bin/shells.py
@@ -7,6 +7,7 @@
 import os
 import sys
 
+import EmergeDebug
 import utils
 import compiler
 from options import *
@@ -87,7 +88,7 @@ class MSysShell(object):
     def execute(self, path, cmd, args="", out=sys.stdout, err=sys.stderr):
         command = "%s --login -c \"export %s && cd %s && %s %s\"" % \
                   ( self._sh, self._environmentSetup(), self.toNativePath( path ), \
                self.toNativePath( cmd ), args )
-        utils.info( "msys execute: %s" % command)
+        EmergeDebug.info("msys execute: %s" % command)
         return utils.system( command, stdout=out, stderr=err )
 
     def login(self):
diff --git a/bin/utils.py b/bin/utils.py
index d8b17a5..d3b2e7e 100644
--- a/bin/utils.py
+++ b/bin/utils.py
@@ -8,33 +8,29 @@ this file contains some helper functions for emerge
 # Patrick Spendrin <ps_ml [AT] gmx [DOT] de>
 # Ralf Habacker <ralf.habacker [AT] freenet [DOT] de>
 
-import http.client
+import ctypes
+import datetime
 import ftplib
-import urllib.request
-import urllib.error
-import urllib.parse
+import hashlib
+import http.client
+import inspect
 import shutil
-import zipfile
 import tarfile
-import hashlib
-import traceback
 import tempfile
-import getpass
-import subprocess
-import re
-import inspect
-import datetime
+import urllib.error
+import urllib.parse
+import urllib.request
+import zipfile
 from operator import itemgetter
-import ctypes
 
 import Notifier.NotificationLoader
 from EmergeConfig import *
-
+from EmergeDebug import verbose, setVerbose, info, debug, warning, error, die
 
 if os.name == 'nt':
-    import msvcrt # pylint: disable=F0401
+    pass
 else:
-    import fcntl # pylint: disable=F0401
+    pass
 
 import configparser
 
@@ -74,41 +70,9 @@ def test4application( appname):
         p.wait()
         return True
     except OSError:
-        debug( "could not find application %s" % appname, 1 )
+        debug("could not find application %s" % appname, 1)
         return False
 
-class Verbose(object):
-    """
-        This class will work on the overall output verbosity
-        It defines the interface for the option parser but before the default
-        value is taken from the environment variable.
-        There is only one verbosity value for all parts of emerge.
-        Always updates the shell variable EMERGE_VERBOSE.
-    """
-    __level = 0
-
-    @staticmethod
-    def increase():
-        """increase verbosity"""
-        Verbose.setLevel(Verbose.__level + 1)
-
-    @staticmethod
-    def decrease():
-        """decrease verbosity"""
-        Verbose.setLevel(Verbose.__level - 1)
-
-    @staticmethod
-    def level():
-        return Verbose.__level
-
-    @staticmethod
-    def setLevel(newLevel):
-        """ set the level by hand for quick and dirty changes """
-        Verbose.__level = max(-1, newLevel)
-
-    def verbose( self ):
-        """ returns the verbosity level for the application """
-        return Verbose.__level
 
 class TemporaryVerbosity(object):
     """Context handler for temporarily different verbosity"""
@@ -123,16 +87,9 @@ class TemporaryVerbosity(object):
         setVerbose(self.prevLevel)
 
 
-def verbose():
-    """return the value of the verbose level"""
-    return Verbose.level()
-
-def setVerbose( _verbose ):
-    Verbose.setLevel(_verbose)
-
 def getFiles( urls, destdir, suffix='' , filenames = ''):
     """download files from 'url' into 'destdir'"""
-    debug( "getfiles called. urls: %s, filenames: %s, suffix: %s" % ( urls, \
filenames, suffix ), 1 ) +    debug("getfiles called. urls: %s, filenames: %s, \
suffix: %s" % (urls, filenames, suffix), 1)  # make sure distfiles dir exists
     if ( not os.path.exists( destdir ) ):
         os.makedirs( destdir )
@@ -160,9 +117,9 @@ def getFiles( urls, destdir, suffix='' , filenames = ''):
 
 def getFile( url, destdir , filename='' ):
     """download file from 'url' into 'destdir'"""
-    debug( "getFile called. url: %s" % url, 1 )
+    debug("getFile called. url: %s" % url, 1)
     if url == "":
-        error( "fetch: no url given" )
+        error("fetch: no url given")
         return False
 
 
@@ -174,14 +131,14 @@ def getFile( url, destdir , filename='' ):
 
 
     filename = os.path.basename( path )
-    debug( "%s\n%s\n%s\n%s" % ( scheme, host, path, filename ) )
+    debug("%s\n%s\n%s\n%s" % (scheme, host, path, filename))
 
     if ( scheme == "http" ):
         return getHttpFile( host, path, destdir, filename )
     elif ( scheme == "ftp" ):
         return getFtpFile( host, path, destdir, filename )
     else:
-        error( "getFile: protocol not understood" )
+        error("getFile: protocol not understood")
         return False
 
 def wgetFile( url, destdir, filename=''):
@@ -195,15 +152,15 @@ def wgetFile( url, destdir, filename=''):
     else:
         command += " -O %s" % os.path.join( destdir, filename )
     command += " %s" % url
-    debug( "wgetfile called", 1 )
+    debug("wgetfile called", 1)
     ret = system( command )
-    debug( "wget ret: %s" % ret, 2)
+    debug("wget ret: %s" % ret, 2)
     return ret
 
 def getFtpFile( host, path, destdir, filename ):
     """download file from a ftp host specified by 'host' and 'path' into 'destdir' \
using 'filename' as file name"""  # FIXME check return values here (implement useful \
                error handling)...
-    debug( "FIXME getFtpFile called. %s %s" % ( host, path ), 1 )
+    debug("FIXME getFtpFile called. %s %s" % (host, path), 1)
 
     ftp = ftplib.FTP( host )
     ftp.login( "anonymous", "johndoe" )
@@ -215,25 +172,25 @@ def getFtpFile( host, path, destdir, filename ):
 def getHttpFile( host, path, destdir, filename ):
     """download file from a http host specified by 'host' and 'path' into 'destdir' \
using 'filename' as file name"""  # FIXME check return values here (implement useful \
                error handling)...
-    debug( "getHttpFile called. %s %s" % ( host, path ), 1 )
+    debug("getHttpFile called. %s %s" % (host, path), 1)
 
     conn = http.client.HTTPConnection( host )
     conn.request( "GET", path )
     r1 = conn.getresponse()
-    debug( "status: %s; reason: %s" % ( str( r1.status ), str( r1.reason ) ) )
+    debug("status: %s; reason: %s" % (str(r1.status), str(r1.reason)))
 
     count = 0
     while r1.status == 302:
         if count > 10:
-            debug( "Redirect loop" )
+            debug("Redirect loop")
             return False
         count += 1
         _, host, path, _, _, _ = urllib.parse.urlparse( r1.getheader( "Location" ) )
-        debug( "Redirection: %s %s" % ( host, path ), 1 )
+        debug("Redirection: %s %s" % (host, path), 1)
         conn = http.client.HTTPConnection( host )
         conn.request( "GET", path )
         r1 = conn.getresponse()
-        debug( "status: %s; reason: %s" % ( str( r1.status ), str( r1.reason ) ) )
+        debug("status: %s; reason: %s" % (str(r1.status), str(r1.reason)))
 
 
     data = r1.read()
@@ -258,7 +215,7 @@ def checkFilesDigests( downloaddir, filenames, digests=None ):
 
     i = 0
     for filename in filenames:
-        debug( "checking digest of: %s" % filename, 1 )
+        debug("checking digest of: %s" % filename, 1)
         pathName = os.path.join( downloaddir, filename )
         if digests == None:
             digestFileName = pathName + '.sha1'
@@ -266,27 +223,27 @@ def checkFilesDigests( downloaddir, filenames, digests=None ):
                 digestFileName, _ = os.path.splitext( pathName )
                 digestFileName += '.sha1'
                 if not os.path.exists( digestFileName ):
-                    error( "digest validation request for file %s, but no digest  \
                file present" %
-                            pathName )
+                    error("digest validation request for file %s, but no digest  \
file present" % +                          pathName)
                     return False
             currentHash = digestFileSha1( pathName )
             with open( digestFileName, "r" ) as f:
                 line = f.readline()
             digest = re.search('\\b[0-9a-fA-F]{40}\\b', line)
             if not digest:
-                error( " digestFile %s for file %s does not contain a valid SHA1 \
                hash" % (digestFileName,
-                        pathName,) )
+                error(" digestFile %s for file %s does not contain a valid SHA1 \
hash" % (digestFileName, +                                                            \
pathName,))  return False
             digest = digest.group(0)
             if len(digest) != len(currentHash) or digest.find(currentHash) == -1:
-                error( "SHA1 hash for file %s (%s) does not match (%s)" % (pathName, \
currentHash, digest) ) +                error("SHA1 hash for file %s (%s) does not \
match (%s)" % (pathName, currentHash, digest))  return False
         # digest provided in digests parameter
         else:
             currentHash = digestFileSha1( pathName )
             digest = digestList[i].strip()
             if len(digest) != len(currentHash) or digest.find(currentHash) == -1:
-                error( "SHA1 hash for file %s (%s) does not match (%s)" % (pathName, \
currentHash, digest) ) +                error("SHA1 hash for file %s (%s) does not \
match (%s)" % (pathName, currentHash, digest))  return False
         i = i + 1
     return True
@@ -343,7 +300,7 @@ def unpackFiles( downloaddir, filenames, workdir ):
     cleanDirectory( workdir )
 
     for filename in filenames:
-        debug( "unpacking this file: %s" % filename, 1 )
+        debug("unpacking this file: %s" % filename, 1)
         if ( not unpackFile( downloaddir, filename, workdir ) ):
             return False
 
@@ -363,13 +320,13 @@ def unpackFile( downloaddir, filename, workdir ):
         if ( myext == ".tar" ):
             return unTar( os.path.join( downloaddir, filename ), workdir )
         else:
-            error( "unpacking %s" % myext )
+            error("unpacking %s" % myext)
             return False
     elif ( ext == ".exe" ):
-        warning( "unpack ignoring exe file" )
+        warning("unpack ignoring exe file")
         return True
     else:
-        error( "dont know how to unpack this file: %s" % filename )
+        error("dont know how to unpack this file: %s" % filename)
     return False
 
 def un7zip( fileName, destdir, flag = None ):
@@ -388,7 +345,7 @@ def un7zip( fileName, destdir, flag = None ):
 
 def unTar( fileName, destdir ):
     """unpack tar file specified by 'file' into 'destdir'"""
-    debug( "unTar called. file: %s, destdir: %s" % ( fileName, destdir ), 1 )
+    debug("unTar called. file: %s, destdir: %s" % (fileName, destdir), 1)
     ( shortname, ext ) = os.path.splitext( fileName )
     emerge_tmp = os.path.join(destdir,"emerge_tmp")
 
@@ -404,7 +361,7 @@ def unTar( fileName, destdir ):
 
 
     if not os.path.exists( fileName ):
-        error( "couldn't find file %s" % fileName )
+        error("couldn't find file %s" % fileName)
         return False
 
     try:
@@ -420,19 +377,19 @@ def unTar( fileName, destdir ):
                         if target in tar.getnames():
                             tar.extract(target, emerge_tmp )
                             shutil.move(os.path.join( emerge_tmp , tarDir , \
                tarMember.linkname ),os.path.join( destdir , tarMember.name ))
-                            warning("Resolved symlink %s in tarfile %s to %s" % ( \
tarMember.name, fileName , tarMember.linkname)) +                            \
warning("Resolved symlink %s in tarfile %s to %s" % (tarMember.name, fileName , \
tarMember.linkname))  else:
-                            warning("link target %s for %s not included in tarfile" \
% ( target , tarMember.name)) +                            warning("link target %s \
for %s not included in tarfile" % (target , tarMember.name))  else:
                         tar.extract(tarMember, destdir )
                 except tarfile.TarError:
-                    error( "couldn't extract file %s to directory %s" % ( fileName, \
destdir ) ) +                    error("couldn't extract file %s to directory %s" % \
(fileName, destdir))  return False
                 except IOError:
-                    warning("Failed to extract %s to directory %s" % ( \
tarMember.name, destdir ) ) +                    warning("Failed to extract %s to \
directory %s" % (tarMember.name, destdir))  return True
     except tarfile.TarError as e:
-        error( "could not open existing tar archive: %s error: %s" % (fileName,e) )
+        error("could not open existing tar archive: %s error: %s" % (fileName, e))
         return False
     finally:
         if os.path.exists(emerge_tmp):
@@ -440,7 +397,7 @@ def unTar( fileName, destdir ):
 
 def unZip( fileName, destdir ):
     """unzip file specified by 'file' into 'destdir'"""
-    debug( "unZip called: file %s to destination %s" % ( fileName, destdir ), 1 )
+    debug("unZip called: file %s to destination %s" % (fileName, destdir), 1)
 
     if not os.path.exists( destdir ):
         os.makedirs( destdir )
@@ -448,7 +405,7 @@ def unZip( fileName, destdir ):
     try:
         zipObj = zipfile.ZipFile( fileName )
     except (zipfile.BadZipfile, IOError):
-        error( "couldn't extract file %s" % fileName )
+        error("couldn't extract file %s" % fileName)
         return False
 
     for name in zipObj.namelist():
@@ -464,52 +421,6 @@ def unZip( fileName, destdir ):
     return True
 
 
-def info( message ):
-    if verbose() >= 0:
-        print("*** %s ***" % message)
-    return True
-
-def debug( message, level=1 ):
-    if verbose() > level and verbose() > 0:
-        print("emerge debug (%s): %s" % (level, message))
-        sys.stdout.flush()
-    return True
-
-def warning( message ):
-    if verbose() > 0:
-        try:
-            print("emerge warning: %s" % message)
-        except UnicodeEncodeError:
-            print("emerge warning: failed to print message")
-    return True
-
-def new_line( level=0 ):
-    if verbose() > level and verbose() > 0:
-        print()
-
-def debug_line( level=0 ):
-    if verbose() > level and verbose() > 0:
-        print("_" * 80)
-
-def error( message ):
-    if verbose() > 0:
-        print("emerge error: %s" % message, file=sys.stderr)
-    return False
-
-def die( message ):
-    raise Exception("emerge fatal error: %s" % message)
-
-
-def traceMode():
-    """return the value of the trace level"""
-    return int(emergeSettings.get( "General", "EMERGE_TRACE", "0" ))
-
-def trace( message, dummyLevel=0 ):
-    if traceMode(): #> level:
-        print("emerge trace:", message)
-    sys.stdout.flush()
-    return True
-
 def system(cmd, **kw ):
     """execute cmd in a shell. All keywords are passed to Popen. stdout and stderr
     might be changed depending on the chosen logging options."""
@@ -520,7 +431,7 @@ def systemWithoutShell(cmd, **kw):
     """execute cmd. All keywords are passed to Popen. stdout and stderr
     might be changed depending on the chosen logging options."""
 
-    debug( "executing command: %s" % cmd, 1 )
+    debug("executing command: %s" % cmd, 1)
 
     if kw.get('stdout') is None:
         kw['stdout'] = sys.stdout
@@ -570,7 +481,7 @@ def unmergeFileList(rootdir, fileList, forced=False):
         if os.path.isfile(fullPath):
             currentHash = digestFile(fullPath)
             if currentHash == filehash or filehash == "":
-                debug( "deleting file %s" % fullPath, 2)
+                debug("deleting file %s" % fullPath, 2)
                 try:
                     os.remove(fullPath)
                 except OSError:
@@ -578,18 +489,18 @@ def unmergeFileList(rootdir, fileList, forced=False):
                     os.remove(fullPath)
             else:
                 if forced:
-                    warning( "file %s has different hash: %s %s, deleting anyway" % \
                \
-                            (fullPath, currentHash, filehash ) )
+                    warning("file %s has different hash: %s %s, deleting anyway" % \
+                            (fullPath, currentHash, filehash ))
                 try:
                     os.remove(fullPath)
                 except OSError:
                     system( "cmd /C \"attrib -R %s\"" % fullPath )
                     os.remove(fullPath)
                 else:
-                    warning( "file %s has different hash: %s %s, run with option \
                --force to delete it anyway" % \
-                            (fullPath, currentHash, filehash ) )
+                    warning("file %s has different hash: %s %s, run with option \
--force to delete it anyway" % \ +                            (fullPath, currentHash, \
filehash ))  elif not os.path.isdir(fullPath):
-            warning( "file %s does not exist" % fullPath)
+            warning("file %s does not exist" % fullPath)
 
 def mergeImageDirToRootDir( imagedir, rootdir , linkOnly = \
emergeSettings.getboolean("General", "UseHardlinks", False )):  copyDir( imagedir, \
rootdir , linkOnly) @@ -598,7 +509,7 @@ def moveEntries( srcdir, destdir ):
     for entry in os.listdir( srcdir ):
         src = os.path.join( srcdir, entry )
         dest = os.path.join( destdir, entry )
-        debug("move: %s -> %s" %( src, dest ), 1)
+        debug("move: %s -> %s" % (src, dest), 1)
         if( os.path.isfile( dest ) ):
             os.remove( dest )
         if( os.path.isdir( dest ) ):
@@ -623,7 +534,7 @@ def fixCmakeImageDir( imagedir, rootdir ):
     so when we want to be able to install imagedir into KDEROOT,
     we have to move things around...
     """
-    debug( "fixImageDir: %s %s" % ( imagedir, rootdir ), 1 )
+    debug("fixImageDir: %s %s" % (imagedir, rootdir), 1)
     # imagedir = e:\foo\thirdroot\tmp\dbus-0\image
     # rootdir  = e:\foo\thirdroot
     # files are installed to
@@ -640,7 +551,7 @@ def fixCmakeImageDir( imagedir, rootdir ):
     if len(rootpath) == 0:
         return
     tmp = os.path.join( imagedir, rootpath )
-    debug( "tmp: %s" % tmp, 1 )
+    debug("tmp: %s" % tmp, 1)
     tmpdir = os.path.join( imagedir, "tMpDiR" )
 
     if ( not os.path.isdir( tmpdir ) ):
@@ -665,7 +576,7 @@ def cleanDirectory( directory ):
                     try:
                         os.remove( os.path.join(root, name) )
                     except OSError:
-                        die( "couldn't delete file %s\n ( %s )" % ( name, \
os.path.join( root, name ) ) ) +                        die("couldn't delete file \
%s\n ( %s )" % (name, os.path.join(root, name)))  for name in dirs:
                 try:
                     os.rmdir( os.path.join(root, name) )
@@ -674,7 +585,7 @@ def cleanDirectory( directory ):
                     try:
                         os.rmdir( os.path.join(root, name) )
                     except OSError:
-                        die( "couldn't delete directory %s\n( %s )" % ( name, \
os.path.join( root, name ) ) ) +                        die("couldn't delete \
directory %s\n( %s )" % (name, os.path.join(root, name)))  else:
         os.makedirs( directory )
 
@@ -813,12 +724,12 @@ def createImportLibs( dll_name, basepath ):
         HAVE_GENDEF = True
         USE_GENDEF = False
     if not HAVE_GENDEF:
-        warning( "system does not have gendef.exe" )
+        warning("system does not have gendef.exe")
         return False
     if not HAVE_LIB  and not os.path.isfile( imppath ):
-        warning( "system does not have lib.exe (from msvc)" )
+        warning("system does not have lib.exe (from msvc)")
     if not HAVE_DLLTOOL and not os.path.isfile( gccpath ):
-        warning( "system does not have dlltool.exe" )
+        warning("system does not have dlltool.exe")
 
     # create .def
     if USE_GENDEF:
@@ -852,7 +763,7 @@ def cleanPackageName( basename, packagename ):
 
 def renameDir(src, dest):
     """ rename a directory """
-    debug("rename directory from %s to %s" % ( src, dest ), 2)
+    debug("rename directory from %s to %s" % (src, dest), 2)
     if os.rename( src, dest ) == 0:
         return False
     else:
@@ -861,18 +772,18 @@ def renameDir(src, dest):
 def createDir(path):
     """Recursive directory creation function. Makes all intermediate-level \
directories needed to contain the leaf directory"""  if not os.path.exists( path ):
-        debug("creating directory %s " % ( path ), 2)
+        debug("creating directory %s " % (path), 2)
         os.makedirs( path )
     return True
     
 def copyFile(src, dest,linkOnly = emergeSettings.getboolean("General", \
"UseHardlinks", False)):  """ copy file from src to dest"""
-    debug("copy file from %s to %s" % ( src, dest ), 2)
+    debug("copy file from %s to %s" % (src, dest), 2)
     destDir = os.path.dirname( dest )
     if not os.path.exists( destDir ):
         os.makedirs( destDir )
     if os.path.exists( dest ):
-        warning( "Overriding %s" % dest )
+        warning("Overriding %s" % dest)
         os.remove( dest )
     if linkOnly:
         try:
@@ -889,7 +800,7 @@ def copyFile(src, dest,linkOnly = \
emergeSettings.getboolean("General", "UseHardl  
 def copyDir( srcdir, destdir,linkOnly = emergeSettings.getboolean("General", \
"UseHardlinks", False ) ):  """ copy directory from srcdir to destdir """
-    debug( "copyDir called. srcdir: %s, destdir: %s" % ( srcdir, destdir ), 2)
+    debug("copyDir called. srcdir: %s, destdir: %s" % (srcdir, destdir), 2)
 
     if ( not srcdir.endswith( "\\" ) ):
         srcdir += "\\"
@@ -905,7 +816,7 @@ def copyDir( srcdir, destdir,linkOnly = \
emergeSettings.getboolean("General", "Us  os.makedirs( tmpdir )
             for fileName in files:
                 copyFile(os.path.join( root, fileName ),os.path.join( tmpdir, \
                fileName ), linkOnly)
-                debug( "copy %s to %s" % ( os.path.join( root, fileName ), \
os.path.join( tmpdir, fileName ) ), 2) +                debug("copy %s to %s" % \
(os.path.join(root, fileName), os.path.join(tmpdir, fileName)), 2)  
 def mergeTree(srcdir, destdir):
     """ copy directory from @p srcdir to @p destdir
@@ -930,7 +841,7 @@ def mergeTree(srcdir, destdir):
 
 def moveDir( srcdir, destdir ):
     """ move directory from srcdir to destdir """
-    debug( "moveDir called. srcdir: %s, destdir: %s" % ( srcdir, destdir ), 1 )
+    debug("moveDir called. srcdir: %s, destdir: %s" % (srcdir, destdir), 1)
     try:
         shutil.move( srcdir, destdir )
     except Exception as e:
@@ -940,12 +851,12 @@ def moveDir( srcdir, destdir ):
 
 def rmtree( directory ):
     """ recursively delete directory """
-    debug( "rmtree called. directory: %s" % ( directory ), 2 )
+    debug("rmtree called. directory: %s" % (directory), 2)
     shutil.rmtree ( directory, True ) # ignore errors
 
 def moveFile(src, dest):
     """move file from src to dest"""
-    debug("move file from %s to %s" % ( src, dest ), 2)
+    debug("move file from %s to %s" % (src, dest), 2)
     shutil.move( src, dest )
     return True
 
@@ -953,7 +864,7 @@ def deleteFile(fileName):
     """delete file """
     if not os.path.exists( fileName ):
         return False
-    debug("delete file %s " % ( fileName ), 2)
+    debug("delete file %s " % (fileName), 2)
     os.remove( fileName )
     return True
 
@@ -974,7 +885,7 @@ def findFiles( directory, pattern=None, fileNames=None):
 
 def putenv(name, value):
     """set environment variable"""
-    debug("set environment variable -- set %s=%s" % ( name, value ), 2)
+    debug("set environment variable -- set %s=%s" % (name, value), 2)
     os.putenv( name, value )
     return True
 
@@ -995,7 +906,7 @@ def applyPatch(sourceDir, f, patchLevel='0'):
     else:
         result = system( cmd )
     if not result:
-        warning( "applying %s failed!" % f)
+        warning("applying %s failed!" % f)
     return result
 
 def log(fn):
@@ -1079,7 +990,7 @@ def embedManifest(executable, manifest):
         # We die here because this is a problem with the portage files
         die("embedManifest %s or %s do not exist" % (executable, manifest))
     debug("embedding ressource manifest %s into %s" % \
-            (manifest, executable), 2)
+          (manifest, executable), 2)
     mtExe = None
     mtExe = os.path.join(EmergeStandardDirs.emergeRoot(), "dev-utils", "bin", \
"mt.exe")  
@@ -1095,7 +1006,7 @@ def embedManifest(executable, manifest):
             mtExe = r'%s' % os.path.join(sdkdir, "Bin", "mt.exe")
             if not os.path.isfile(os.path.normpath(mtExe)):
                 debug("embedManifest could not find a mt.exe in\n\t %s" % \
-                    os.path.dirname(mtExe), 2)
+                      os.path.dirname(mtExe), 2)
     if os.path.isfile(mtExe):
         return system([mtExe, "-nologo", "-manifest", manifest,
             "-outputresource:%s;1" % executable])
@@ -1140,7 +1051,7 @@ def stopTimer(name):
     """stops a timer for meassurement"""
     if emergeSettings.getboolean( "EmergeDebug", "MeasureTime", False ):
         if not name in _TIMERS:
-            debug( "%s not in timers" % name )
+            debug("%s not in timers" % name)
             return
         startTime , level = _TIMERS[name]
         if verbose() > 0  and (level == 0 or verbose() > level):
diff --git a/portage/contributed/gpg-wce-dev/gpg-wce-dev.py \
b/portage/contributed/gpg-wce-dev/gpg-wce-dev.py index f2c41cd..8052cdd 100644
--- a/portage/contributed/gpg-wce-dev/gpg-wce-dev.py
+++ b/portage/contributed/gpg-wce-dev/gpg-wce-dev.py
@@ -1,6 +1,7 @@
 import os
 import subprocess
 
+import EmergeDebug
 from Package.BinaryPackageBase import *
 import info
 import utils
@@ -66,7 +67,7 @@ class Package(BinaryPackageBase):
         (command, option) = self.getAction()
         if command == "install":
             self.runAction(command)
-            utils.debug("Generating libgpgme.lib", 2)
+            EmergeDebug.debug("Generating libgpgme.lib", 2)
             deffile = os.path.join(self.imageDir(), "lib", "gpgme.def")
             outfile = os.path.join(self.imageDir(), "lib", "libgpgme.lib")
             args = ["lib", "/machine:thumb", "/name:libgpgme-11",
diff --git a/portage/dev-util/git/git.py b/portage/dev-util/git/git.py
index 6ae7764..25a2081 100644
--- a/portage/dev-util/git/git.py
+++ b/portage/dev-util/git/git.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 import tempfile
 
+import EmergeDebug
 import info
 import utils
 
@@ -51,7 +52,7 @@ class Package(BinaryPackageBase):
         for line in tmpFile:
             if str(line,'UTF-8').find("kde:")>-1:
                 return True
-        utils.debug( "adding kde related settings to global git config file",1 )
+        EmergeDebug.debug("adding kde related settings to global git config file", \
                1)
         utils.system( "%s config --global url.git://anongit.kde.org/.insteadOf kde:" \
                % git)
         utils.system( "%s config --global url.ssh://git@git.kde.org/.pushInsteadOf \
kde:" % git)  utils.system( "%s config --global core.autocrlf false" % git)
diff --git a/portage/frameworks/tier1/breeze-icons/breeze-icons.py \
b/portage/frameworks/tier1/breeze-icons/breeze-icons.py index 2c38573..5de4080 100644
--- a/portage/frameworks/tier1/breeze-icons/breeze-icons.py
+++ b/portage/frameworks/tier1/breeze-icons/breeze-icons.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 import info
 
 
@@ -42,7 +43,7 @@ class Package(CMakePackageBase):
                 if path.endswith(".svg") and os.path.isfile(path):
                     toReplace = self.resolveGitSymLink(path)
                     if not os.path.exists(toReplace):
-                        utils.warning("Resolving %s failed: %s does not exists." % \
(path, toReplace)) +                        EmergeDebug.warning("Resolving %s failed: \
%s does not exists." % (path, toReplace))  continue
                     if toReplace != path:
                         utils.deleteFile(path)
diff --git a/portage/frameworks/tier1/kapidox/kapidox.py \
b/portage/frameworks/tier1/kapidox/kapidox.py index 9e1eb8c..ec0e45d 100644
--- a/portage/frameworks/tier1/kapidox/kapidox.py
+++ b/portage/frameworks/tier1/kapidox/kapidox.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 import info
 
 
@@ -27,7 +28,7 @@ class Package(CMakePackageBase):
     
     def configure(self):
         if not ("Paths","Python27") in emergeSettings:
-            utils.die("Please make sure Paths/Python27 is set in your \
kdesettings.ini") +            EmergeDebug.die("Please make sure Paths/Python27 is \
set in your kdesettings.ini")  return CMakeBuildSystem.configure(self)
 
 
diff --git a/portage/internal/QMakeBuildSystem/QMakeBuildSystem.py \
b/portage/internal/QMakeBuildSystem/QMakeBuildSystem.py index edd7e54..9d1b376 100644
--- a/portage/internal/QMakeBuildSystem/QMakeBuildSystem.py
+++ b/portage/internal/QMakeBuildSystem/QMakeBuildSystem.py
@@ -1,12 +1,13 @@
 import os
 
+import EmergeDebug
 import info
 import compiler
 
 
 class subinfo(info.infoclass):
     def setDependencies( self ):
-        utils.debug("emergebuildsystem:subinfo.setDependencies not implemented \
yet",1) +        EmergeDebug.debug("emergebuildsystem:subinfo.setDependencies not \
implemented yet", 1)  # we need at least qmake
         #self.dependencies['libs/qt'] = 'default'
         self.buildDependencies['dev-util/jom'] = 'default'
diff --git a/portage/libs/qt5/qtwebengine/qtwebengine.py \
b/portage/libs/qt5/qtwebengine/qtwebengine.py index 9ea30cd..6cb997e 100644
--- a/portage/libs/qt5/qtwebengine/qtwebengine.py
+++ b/portage/libs/qt5/qtwebengine/qtwebengine.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+import EmergeDebug
 import info
 
 
@@ -19,7 +20,7 @@ class Package( Qt5CorePackageBase ):
         
     def compile(self):
         if not ("Paths","Python27") in emergeSettings:
-            utils.die("Please make sure Paths/Python27 is set in your \
kdesettings.ini") +            EmergeDebug.die("Please make sure Paths/Python27 is \
set in your kdesettings.ini")  \
utils.prependPath(emergeSettings.get("Paths","PYTHON27",""))  return \
Qt5CorePackageBase.compile(self)  
diff --git a/portage/testing/sip/sip.py b/portage/testing/sip/sip.py
index 3d3aeaa..334ee84 100644
--- a/portage/testing/sip/sip.py
+++ b/portage/testing/sip/sip.py
@@ -1,6 +1,7 @@
 import sys
 import os
 
+import EmergeDebug
 import utils
 import info
 import compiler
@@ -44,18 +45,18 @@ class Package(CMakePackageBase):
 
         cmd = "python configure.py"
         cmd += self.subinfo.options.configure.defines
-        os.system(cmd) and utils.die("command: %s failed" % (cmd))
+        os.system(cmd) and EmergeDebug.die("command: %s failed" % (cmd))
         return True
         
     def make( self ):
         self.enterSourceDir()
-        os.system(self.makeProgramm) and utils.die("command: %s failed" % \
self.makeProgramm) +        os.system(self.makeProgramm) and \
EmergeDebug.die("command: %s failed" % self.makeProgramm)  return True
 
     def install( self ):
         self.enterSourceDir()
         cmd = self.makeProgramm + " install"
-        os.system(cmd) and utils.die("command: %s failed" % cmd)
+        os.system(cmd) and EmergeDebug.die("command: %s failed" % cmd)
         
         # fix problem with not copying manifest file
         if not compiler.isMinGW():
diff --git a/portage/unmaintained/win32libs/dbus-c++/dbus-c++.py \
b/portage/unmaintained/win32libs/dbus-c++/dbus-c++.py index 86e3983..7a555e7 100644
--- a/portage/unmaintained/win32libs/dbus-c++/dbus-c++.py
+++ b/portage/unmaintained/win32libs/dbus-c++/dbus-c++.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 import info
 
 
@@ -35,7 +36,7 @@ class Package(CMakePackageBase):
             return False
         # Check whether compiler is mingw or not...
         if self.compiler() != "mingw" and self.compiler() != "mingw4":
-            utils.die("This package is currently only compiled with mingw.")
+            EmergeDebug.die("This package is currently only compiled with mingw.")
 
         return True
 
diff --git a/portage/win32libs/boost/boost-bjam/boost-bjam.py \
b/portage/win32libs/boost/boost-bjam/boost-bjam.py index 867b9b7..0c1b76d 100644
--- a/portage/win32libs/boost/boost-bjam/boost-bjam.py
+++ b/portage/win32libs/boost/boost-bjam/boost-bjam.py
@@ -1,3 +1,4 @@
+import EmergeDebug
 import info
 class subinfo(info.infoclass):
     def setTargets(self):
@@ -46,10 +47,10 @@ class Package(BoostPackageBase):
                     cmd += "vc9"
                 elif compiler.isMSVC2010():
                     cmd += "vc10"
-            if utils.verbose() >= 1:
+            if EmergeDebug.verbose() >= 1:
                 print(cmd)
             utils.system(cmd, cwd = \
                os.path.join(portage.getPackageInstance('win32libs',
-                    'boost-headers').sourceDir(),"tools","build","v2","engine")) or \
utils.die( +                    \
'boost-headers').sourceDir(),"tools","build","v2","engine")) or EmergeDebug.die(  \
"command: %s failed" % (cmd))  else:
             cmd = "bootstrap.bat "
@@ -68,10 +69,10 @@ class Package(BoostPackageBase):
                     cmd += "vc12"
                 elif compiler.isMSVC2015():
                     cmd += "vc14"
-            if utils.verbose() >= 1:
+            if EmergeDebug.verbose() >= 1:
                 print(cmd)
             utils.system(cmd, cwd = \
                os.path.join(portage.getPackageInstance('win32libs',
-                    'boost-headers').sourceDir(),"tools","build")) or utils.die(
+                    'boost-headers').sourceDir(),"tools","build")) or \
EmergeDebug.die(  "command: %s failed" % (cmd))
         return True
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic