* [Buildroot] [PATCH] utils/check-package: add a check for the separation in the hash files @ 2020-02-04 10:38 Heiko Thiery 2020-02-05 17:07 ` Yann E. MORIN 0 siblings, 1 reply; 3+ messages in thread From: Heiko Thiery @ 2020-02-04 10:38 UTC (permalink / raw) To: buildroot The seperation of the fields in the hash file should be 2 spaces for consitency. Add some extra infos about that in the "adding-packages-directory" part of the manual. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> --- docs/manual/adding-packages-directory.txt | 6 ++++-- utils/checkpackagelib/lib_hash.py | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt index 1c8b9f96b5..2c1a7d8776 100644 --- a/docs/manual/adding-packages-directory.txt +++ b/docs/manual/adding-packages-directory.txt @@ -461,7 +461,8 @@ The hashes stored in that file are used to validate the integrity of the downloaded files and of the license files. The format of this file is one line for each file for which to check the -hash, each line being space-separated, with these three fields: +hash. For every file to check the three fields (hash type, hash, filename) +has to be in that file separated by 2 spaces. * the type of hash, one of: ** +md5+, +sha1+, +sha224+, +sha256+, +sha384+, +sha512+, +none+ @@ -502,7 +503,8 @@ create the hash file in a subdirectory +<packageversion>+ of that package .Note The number of spaces does not matter, so one can use spaces (or tabs) to -properly align the different fields. +properly align the different fields. Nethertheless new packages has to be +separated by 2 spaces. The +none+ hash type is reserved to those archives downloaded from a repository, like a 'git clone', a 'subversion checkout'... diff --git a/utils/checkpackagelib/lib_hash.py b/utils/checkpackagelib/lib_hash.py index 3e381119a5..618ae5f679 100644 --- a/utils/checkpackagelib/lib_hash.py +++ b/utils/checkpackagelib/lib_hash.py @@ -40,7 +40,7 @@ class HashType(_CheckFunction): if len(fields) < 2: return - htype, hexa = fields[:2] + htype, hexa, filename = fields[:3] if htype == "none": return if htype not in self.len_of_hash.keys(): @@ -53,3 +53,8 @@ class HashType(_CheckFunction): .format(self.filename, lineno, self.url_to_manual), text, "expected {} hex digits".format(self.len_of_hash[htype])] + + if not re.match("^{} {} {}.*$".format(htype, hexa, filename), text): + return ["{}:{}: separation does not match expectation ({}#adding-packages-hash)" + .format(self.filename, lineno, self.url_to_manual), + text] -- 2.20.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] utils/check-package: add a check for the separation in the hash files 2020-02-04 10:38 [Buildroot] [PATCH] utils/check-package: add a check for the separation in the hash files Heiko Thiery @ 2020-02-05 17:07 ` Yann E. MORIN 2020-02-05 19:27 ` Heiko Thiery 0 siblings, 1 reply; 3+ messages in thread From: Yann E. MORIN @ 2020-02-05 17:07 UTC (permalink / raw) To: buildroot Heiko, All, On 2020-02-04 11:38 +0100, Heiko Thiery spake thusly: > The seperation of the fields in the hash file should be 2 spaces for > consitency. The script now throwsa traceback: $ make check-package [lots of output...] Traceback (most recent call last): File "./utils/check-package", line 194, in <module> __main__() File "./utils/check-package", line 177, in __main__ nwarnings, nlines = check_file_using_lib(fname) File "./utils/check-package", line 146, in check_file_using_lib nwarnings += print_warnings(cf.check_line(lineno + 1, text)) File "/home/ymorin/dev/buildroot/buildroot/utils/checkpackagelib/lib_hash.py", line 57, in check_line if not re.match("^{} {} {}.*$".format(htype, hexa, filename), text): File "/usr/lib/python2.7/re.py", line 141, in match return _compile(pattern, flags).match(string) File "/usr/lib/python2.7/re.py", line 251, in _compile raise error, v # invalid expression sre_constants.error: multiple repeat make: *** [Makefile:1185: check-package] Error 1 Care to have a look at it? In the meantime... > Add some extra infos about that in the "adding-packages-directory" part > of the manual. I've reworded that manual part, updated the following example while at it, and applied to master. Thanks! :-) Regards, Yann E. MORIN. > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> > --- > docs/manual/adding-packages-directory.txt | 6 ++++-- > utils/checkpackagelib/lib_hash.py | 7 ++++++- > 2 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt > index 1c8b9f96b5..2c1a7d8776 100644 > --- a/docs/manual/adding-packages-directory.txt > +++ b/docs/manual/adding-packages-directory.txt > @@ -461,7 +461,8 @@ The hashes stored in that file are used to validate the integrity of the > downloaded files and of the license files. > > The format of this file is one line for each file for which to check the > -hash, each line being space-separated, with these three fields: > +hash. For every file to check the three fields (hash type, hash, filename) > +has to be in that file separated by 2 spaces. > > * the type of hash, one of: > ** +md5+, +sha1+, +sha224+, +sha256+, +sha384+, +sha512+, +none+ > @@ -502,7 +503,8 @@ create the hash file in a subdirectory +<packageversion>+ of that package > > .Note > The number of spaces does not matter, so one can use spaces (or tabs) to > -properly align the different fields. > +properly align the different fields. Nethertheless new packages has to be > +separated by 2 spaces. > > The +none+ hash type is reserved to those archives downloaded from a > repository, like a 'git clone', a 'subversion checkout'... > diff --git a/utils/checkpackagelib/lib_hash.py b/utils/checkpackagelib/lib_hash.py > index 3e381119a5..618ae5f679 100644 > --- a/utils/checkpackagelib/lib_hash.py > +++ b/utils/checkpackagelib/lib_hash.py > @@ -40,7 +40,7 @@ class HashType(_CheckFunction): > if len(fields) < 2: > return > > - htype, hexa = fields[:2] > + htype, hexa, filename = fields[:3] > if htype == "none": > return > if htype not in self.len_of_hash.keys(): > @@ -53,3 +53,8 @@ class HashType(_CheckFunction): > .format(self.filename, lineno, self.url_to_manual), > text, > "expected {} hex digits".format(self.len_of_hash[htype])] > + > + if not re.match("^{} {} {}.*$".format(htype, hexa, filename), text): > + return ["{}:{}: separation does not match expectation ({}#adding-packages-hash)" > + .format(self.filename, lineno, self.url_to_manual), > + text] > -- > 2.20.1 > -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH] utils/check-package: add a check for the separation in the hash files 2020-02-05 17:07 ` Yann E. MORIN @ 2020-02-05 19:27 ` Heiko Thiery 0 siblings, 0 replies; 3+ messages in thread From: Heiko Thiery @ 2020-02-05 19:27 UTC (permalink / raw) To: buildroot Yann, All, > The script now throwsa traceback: > > $ make check-package > [lots of output...] > Traceback (most recent call last): > File "./utils/check-package", line 194, in <module> > __main__() > File "./utils/check-package", line 177, in __main__ > nwarnings, nlines = check_file_using_lib(fname) > File "./utils/check-package", line 146, in check_file_using_lib > nwarnings += print_warnings(cf.check_line(lineno + 1, text)) > File "/home/ymorin/dev/buildroot/buildroot/utils/checkpackagelib/lib_hash.py", line 57, in check_line > if not re.match("^{} {} {}.*$".format(htype, hexa, filename), text): > File "/usr/lib/python2.7/re.py", line 141, in match > return _compile(pattern, flags).match(string) > File "/usr/lib/python2.7/re.py", line 251, in _compile > raise error, v # invalid expression > sre_constants.error: multiple repeat > make: *** [Makefile:1185: check-package] Error 1 > > Care to have a look at it? Yes I see it .. the string has to be escaped .. I will prepare that and send a patch. -- Heiko ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-02-05 19:27 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-02-04 10:38 [Buildroot] [PATCH] utils/check-package: add a check for the separation in the hash files Heiko Thiery 2020-02-05 17:07 ` Yann E. MORIN 2020-02-05 19:27 ` Heiko Thiery
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox