Skip to content
Commits on Source (5)
......@@ -42,23 +42,10 @@ clean:
test check: check-syntax
check-syntax: stamps/CVE-syntax \
stamps/DSA-syntax stamps/DTSA-syntax stamps/DLA-syntax
stamps/CVE-syntax: data/CVE/list bin/check-syntax $(PYTHON_MODULES)
$(PYTHON) bin/check-syntax CVE data/CVE/list
touch $@
stamps/DSA-syntax: data/DSA/list bin/check-syntax $(PYTHON_MODULES)
$(PYTHON) bin/check-syntax DSA data/DSA/list
touch $@
stamps/DTSA-syntax: data/DTSA/list bin/check-syntax $(PYTHON_MODULES)
$(PYTHON) bin/check-syntax DTSA data/DTSA/list
touch $@
stamps/DLA-syntax: data/DLA/list bin/check-syntax $(PYTHON_MODULES)
$(PYTHON) bin/check-syntax DLA data/DLA/list
SYNTAX_STAMPS = $(patsubst %,stamps/%-syntax,$(shell bin/check-syntax --get))
check-syntax: $(SYNTAX_STAMPS)
stamps/%-syntax: data/%/list bin/check-syntax $(PYTHON_MODULES)
$(PYTHON) bin/check-syntax $* data/$*/list
touch $@
.PHONY: serve
......
......@@ -52,29 +52,37 @@ def construct(c, name):
f = file(name)
return c(name, f)
sources = debian_support.getconfig()["sources"]
def parse_CVE(name):
f = construct(bugs.CVEFile, name)
def find_source(name):
for source in sources:
if source["name"] == name:
return source
return None
def parse_file(name, filename):
source = find_source(name)
cls = source["class"]
cls = getattr(bugs, cls)
f = construct(cls, filename)
if cls == bugs.CVEFile:
# Relax syntax checking a bit.
f.no_version_needs_note = False
do_parse(f)
def parse_DSA(name):
do_parse(construct(bugs.DSAFile, name))
def parse_DTSA(name):
do_parse(construct(bugs.DTSAFile, name))
do_parse(f)
file_types = {'CVE' : parse_CVE,
'DSA' : parse_DSA,
'DTSA' : parse_DTSA,
'DLA' : parse_DSA}
if len(sys.argv) == 2 and sys.argv[1] == "--get":
l = [src["name"] for src in sources]
print ' '.join(l)
sys.exit(0)
if len(sys.argv) <> 3 or not file_types.has_key(sys.argv[1]):
l = file_types.keys()
if len(sys.argv) <> 3 or find_source(sys.argv[1]) == None:
l = [src["name"] for src in sources]
l.sort()
sys.stderr.write("usage: check-syntax {%s} file-name\n"
% '|'.join(l))
sys.exit(1)
file_types[sys.argv[1]](sys.argv[2])
parse_file(sys.argv[1], sys.argv[2])
......@@ -83,10 +83,10 @@
"release": "unstable"
}
},
"sources": {
"/CVE/list": "CVEFile",
"/DSA/list": "DSAFile",
"/DTSA/list": "DTSAFile",
"/DLA/list": "DSAFile"
}
"sources": [
{"name": "CVE", "path": "/CVE/list", "class": "CVEFile"},
{"name": "DSA", "path": "/DSA/list", "class": "DSAFile"},
{"name": "DTSA", "path": "/DTSA/list", "class": "DTSAFile"},
{"name": "DLA", "path": "/DLA/list", "class": "DSAFile"}
]
}
......@@ -866,9 +866,9 @@ class DB:
sources = self.getSources()
advs = []
for path, cls in sources.iteritems():
name = path.split('/')[1]
for src in sources:
name = src["name"]
cls = src["class"]
if cls == 'DSAFile':
advs.append(name)
......@@ -936,9 +936,10 @@ class DB:
source_removed_packages = '/packages/removed-packages'
sources = self.getSources()
source_paths = [src["path"] for src in sources]
unchanged = True
for filename in sources.keys() + [source_removed_packages]:
for filename in source_paths + [source_removed_packages]:
if has_changed(path + filename):
unchanged = False
break
......@@ -958,9 +959,11 @@ class DB:
"""INSERT OR REPLACE INTO inodeprints (inodeprint, file)
VALUES (?, ?)""", (current_print, filename))
for name, cls in sources.iteritems():
for src in sources:
srcpath = src["path"]
cls = src["class"]
cls = getattr(bugs, cls)
read_one(cls(path + name))
read_one(cls(path + srcpath))
if self.verbose:
print " update removed packages"
......