All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.