From 1abd60d6526f8c3d13eaaa342e97dfa9f264a44b Mon Sep 17 00:00:00 2001 From: lxnay Date: Wed, 8 Aug 2007 12:21:10 +0000 Subject: [PATCH] do some bug fixes and add dependency filtering git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@418 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- client/equoTools.py | 6 +++++- libraries/entropyConstants.py | 2 ++ libraries/reagentTools.py | 21 ++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/client/equoTools.py b/client/equoTools.py index 184c88a5d..ca7d5d26f 100644 --- a/client/equoTools.py +++ b/client/equoTools.py @@ -1335,6 +1335,8 @@ def installFile(package, infoDict = None): if not os.path.isdir(imageDir): return 2 + # setup imageDir properly + imageDir = imageDir.encode(sys.getfilesystemencoding()) # merge data into system for currentdir,subdirs,files in os.walk(imageDir): # create subdirs @@ -1345,7 +1347,9 @@ def installFile(package, infoDict = None): # get info if (rootdir): if os.path.islink(rootdir): - if not os.access(os.readlink(rootdir),os.R_OK): # broken symlink + if not os.path.exists(rootdir): # broken symlink + #print "I want to remove "+rootdir + #print os.readlink(rootdir) os.remove(rootdir) elif os.path.isfile(rootdir): # weird print_warning(red(" *** ")+bold(rootdir)+red(" is a file when it should be a directory !! Removing in 10 seconds...")) diff --git a/libraries/entropyConstants.py b/libraries/entropyConstants.py index be3573efb..264006984 100644 --- a/libraries/entropyConstants.py +++ b/libraries/entropyConstants.py @@ -333,6 +333,8 @@ etpConst = { 'packagedbdir': "/db", # directory of the database file in the .tbz2 package 'packagedbfile': "/data.db", # database file in the directory above 'packagecontentdir': "/package", # directory of the package file in the .tbz2 package + 'dependenciesfilter': ['sys-devel/automake','sys-devel/autoconf','sys-devel/libtool','dev-util/pkgconfig','sys-devel/make'], + 'developmentcategories': ['sys-devel','dev-'], } diff --git a/libraries/reagentTools.py b/libraries/reagentTools.py index 1e5183ff4..246428f75 100644 --- a/libraries/reagentTools.py +++ b/libraries/reagentTools.py @@ -297,7 +297,7 @@ def extractPkgData(package, etpBranch = "unstable", structuredLayout = False): _outcontent = [] for i in outcontent: try: - i.encode("utf-8") + i = i.encode(sys.getfilesystemencoding()) _outcontent.append(i) except: pass @@ -553,6 +553,25 @@ def extractPkgData(package, etpBranch = "unstable", structuredLayout = False): for i in conflicts.split(): etpData['conflicts'].append(i) + # filter development dependencies + devPackage = False + for cat in etpConst['developmentcategories']: + if etpData['category'].startswith(cat): + devPackage = True + break + if (not devPackage): + # rip away building dependencies + if (etpData['dependencies']): + newdeps = etpData['dependencies'][:] + for dep in newdeps: + for develdep in etpConst['dependenciesfilter']: + if dep.find(develdep) != -1: + try: + while 1: etpData['dependencies'].remove(dep) + except: + pass + + if (kernelDependentModule): # add kname to the dependency etpData['dependencies'].append("sys-kernel/linux-"+kname+"-"+kver)