mirror of
https://git.rtems.org/rtems-source-builder
synced 2024-10-09 07:15:10 +08:00
Add checksum support for downloaded files.
File download by http, ftp, pw support checksum. The %hash directive provides a means of setting a hash used to checksum the file. Files on disk or just downloaded are checked.
This commit is contained in:
@@ -229,8 +229,9 @@ class file:
|
||||
|
||||
_ignore = [ re.compile('%setup'),
|
||||
re.compile('%configure'),
|
||||
re.compile('%source[0-9]*'),
|
||||
re.compile('%patch[0-9]*'),
|
||||
re.compile('%source'),
|
||||
re.compile('%patch'),
|
||||
re.compile('%hash'),
|
||||
re.compile('%select'),
|
||||
re.compile('%disable') ]
|
||||
|
||||
@@ -671,6 +672,9 @@ class file:
|
||||
def _sources(self, ls):
|
||||
return sources.process(ls[0][1:], ls[1:], self.macros, self._error)
|
||||
|
||||
def _hash(self, ls):
|
||||
return sources.hash(ls[1:], self.macros, self._error)
|
||||
|
||||
def _define(self, config, ls):
|
||||
if len(ls) <= 1:
|
||||
log.warning('invalid macro definition')
|
||||
@@ -892,6 +896,11 @@ class file:
|
||||
d = self._sources(ls)
|
||||
if d is not None:
|
||||
return ('data', d)
|
||||
elif ls[0] == '%hash':
|
||||
if isvalid:
|
||||
d = self._hash(ls)
|
||||
if d is not None:
|
||||
return ('data', d)
|
||||
elif ls[0] == '%patch':
|
||||
if isvalid:
|
||||
self._select(config, ls)
|
||||
|
Reference in New Issue
Block a user