- added the whitelist parser

- fixed a bug in addPackage


git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1259 cd1c1023-2f26-0410-ae45-c471fc1f0318
This commit is contained in:
(no author)
2008-02-20 14:15:58 +00:00
parent 97dd9444e3
commit dc27f639a6
4 changed files with 35 additions and 8 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
post_pkg_postrm() {
if [ "$SKIP_EQUO_SYNC" != "1" ]; then
if [ "$SKIP_EQUO_SYNC" != "1" ] || [ -z "$ENTROPY_SERVER_SIDE" ]; then
equo database gentoosync
fi
}
+1 -1
View File
@@ -767,7 +767,7 @@ class etpDatabase:
for mylicense in mylicenses:
found = self.isLicensedataKeyAvailable(mylicense)
if not found:
text = mylicenses[mylicense]
text = etpData['licensedata'][mylicense]
self.cursor.execute(
'INSERT into licensedata VALUES '
'(?,?,?)'
+32 -6
View File
@@ -174,6 +174,7 @@ class EquoInterface(TextInterface):
for item in self.repoDbCache:
self.repoDbCache[item].closeDB()
self.repoDbCache.clear()
etpConst['packagemasking'] = None
def openClientDatabase(self):
self.clientDbconn = self.databaseTools.openClientDatabase(indexing = self.indexing, generate = self.noclientdb, xcache = self.xcache, OutputInterface = self)
@@ -4109,12 +4110,12 @@ class RepoInterface:
header = "\t",
back = True
)
mask_status = self.download_item("lic_whitelist", repo)
if not mask_status:
mask_message = red("No %s available. It's ok." % (etpConst['etpdatabaselicwhitelistfile'],))
lic_status = self.download_item("lic_whitelist", repo)
if not lic_status:
lic_message = red("No %s available. It's ok." % (etpConst['etpdatabaselicwhitelistfile'],))
else:
mask_message = red("Downloaded %s. Cool :-)" % (etpConst['etpdatabaselicwhitelistfile'],))
self.Entropy.updateProgress( mask_message,
lic_message = red("Downloaded %s. Cool :-)" % (etpConst['etpdatabaselicwhitelistfile'],))
self.Entropy.updateProgress( lic_message,
importance = 0,
type = "info",
header = "\t"
@@ -6334,27 +6335,35 @@ class PackageMaskingParser:
'unmask': etpConst['confdir']+"/packages/package.unmask", # unmasking configuration files
'mask': etpConst['confdir']+"/packages/package.mask", # masking configuration files
'repos_mask': {},
'repos_license_whitelist': {}
}
# append repositories mask files
for repoid in etpRepositoriesOrder:
maskpath = os.path.join(etpRepositories[repoid]['dbpath'],etpConst['etpdatabasemaskfile'])
if os.path.isfile(maskpath):
wlpath = os.path.join(etpRepositories[repoid]['dbpath'],etpConst['etpdatabaselicwhitelistfile'])
if os.path.isfile(maskpath) and os.access(maskpath,os.R_OK):
self.etpMaskFiles['repos_mask'][repoid] = maskpath
if os.path.isfile(wlpath) and os.access(wlpath,os.R_OK):
self.etpMaskFiles['repos_license_whitelist'][repoid] = wlpath
self.etpMtimeFiles = {
'keywords_mtime': etpConst['dumpstoragedir']+"/keywords.mtime", # keywording configuration files mtime
'unmask_mtime': etpConst['dumpstoragedir']+"/unmask.mtime", # unmasking configuration files mtime
'mask_mtime': etpConst['dumpstoragedir']+"/mask.mtime", # masking configuration files mtime
'repos_mask': {},
'repos_license_whitelist': {}
}
# append repositories mtime files
for repoid in etpRepositoriesOrder:
if repoid in self.etpMaskFiles['repos_mask']:
self.etpMtimeFiles['repos_mask'][repoid] = etpConst['dumpstoragedir']+"/repo_"+repoid+"_"+etpConst['etpdatabasemaskfile']+".mtime"
if repoid in self.etpMaskFiles['repos_license_whitelist']:
self.etpMtimeFiles['repos_license_whitelist'][repoid] = etpConst['dumpstoragedir']+"/repo_"+repoid+"_"+etpConst['etpdatabaselicwhitelistfile']+".mtime"
data = {}
for item in self.etpMaskFiles:
data[item] = eval('self.'+item+'_parser')()
#print data['repos_license_whitelist']
return data
@@ -6455,6 +6464,23 @@ class PackageMaskingParser:
data.add(line)
return data
def repos_license_whitelist_parser(self):
data = {}
for repoid in self.etpMaskFiles['repos_license_whitelist']:
data[repoid] = set()
self.__validateEntropyCache(self.etpMaskFiles['repos_license_whitelist'][repoid],self.etpMtimeFiles['repos_license_whitelist'][repoid], repoid = repoid)
if os.path.isfile(self.etpMaskFiles['repos_license_whitelist'][repoid]):
f = open(self.etpMaskFiles['repos_license_whitelist'][repoid],"r")
content = f.readlines()
f.close()
# filter comments and white lines
content = [x.strip() for x in content if not x.startswith("#") and x.strip()]
for mylicense in content:
data[repoid].add(mylicense)
return data
def repos_mask_parser(self):
data = {}
+1
View File
@@ -22,6 +22,7 @@
from entropyConstants import *
etpSys['serverside'] = True
os.environ['ENTROPY_SERVER_SIDE'] = "1"
def initConfig_serverConstants():