Subject: Re: [bug#28934] ROCA detect

From: ng0 <[email-masked]>
Date: Thu, 26 Oct 2017 05:16:31 +0000

Ludovic Courtès transcribed 7.2K bytes:
> Hi ng0,
> 
> ng0 <[email-masked]> skribis:
> 
> > From 412e84ce5e2f03ab67c29d751667bfd7b53ef34a Mon Sep 17 00:00:00 2001
> > From: ng0 <[email-masked]>
> > Date: Sat, 21 Oct 2017 22:46:06 +0000
> > Subject: [PATCH 1/6] gnu: Add python-humanfriendly.
> >
> > * gnu/packages/python.scm (python-humanfriendly): New variable.
> 
> Note: commit logs should also mention the “python2-” variables that are
> added.  I amended them.

Oh? Hardly anyone does this ever, that's why I never picked up on it.
Thanks for the notice :)

> Committed with these adjustments:
> 

> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index edb434fb3..6e01d2e2d 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -1112,15 +1112,18 @@ etc.).  The package is structured to make adding new modules easy.")
>           "0pisgizjql86785jchfjv217g0lsgk114g2lja5j4y3lsc3b9szi"))))
>      (build-system python-build-system)
>      (arguments
> -     `(; Tests depend on coloredlogs, which in turn depends on humanfriendly.
> +     `(;; XXX: Tests depend on coloredlogs, which in turn depends on humanfriendly.

Imo we should bootstrap this eventually.

>         #:tests? #f))
>      (propagated-inputs
>       `(("python-monotonic" ,python-monotonic)))
>      (home-page "https://humanfriendly.readthedocs.io")
> -    (synopsis "Human friendly input and output in Python")
> +    (synopsis "Human-friendly input and output in Python")
>      (description
> -     "The functions and classes in the humanfriendly package can be used
> -to make text interfaces more user friendly.")
> +     "The functions and classes in @code{humanfriendly} can be used to make
> +text interfaces more user-friendly.  It includes tools to parse and format
> +numbers, file sizes, and timespans, timers for long-running operations, menus
> +to allow the user to choose from a list of options, and terminal interaction
> +helpers.")
>      (license license:expat)))
>  
>  (define-public python2-humanfriendly

> 
> > From 81e9157501ffa3e4f47498fe802702b3bf66004c Mon Sep 17 00:00:00 2001
> > From: ng0 <[email-masked]>
> > Date: Sat, 21 Oct 2017 22:56:09 +0000
> > Subject: [PATCH 2/6] gnu: Add python-capturer.
> >
> > * gnu/packages/python.scm (python-capturer): New variable.
> 
> [...]
> 
> > From 662d4fa2c40202cfeb2e1ce8918d23f3cc4469b2 Mon Sep 17 00:00:00 2001
> > From: ng0 <[email-masked]>
> > Date: Sat, 21 Oct 2017 23:12:17 +0000
> > Subject: [PATCH 3/6] gnu: Add python-verboselogs.
> >
> > * gnu/packages/python.scm (python-verboselogs): New variable.
> 
> [...]
> 
> > From 36170f8801dbb33d91626447ff3e69bf1ac31dca Mon Sep 17 00:00:00 2001
> > From: ng0 <[email-masked]>
> > Date: Sat, 21 Oct 2017 23:29:17 +0000
> > Subject: [PATCH 4/6] gnu: Add python-coloredlogs.
> >
> > * gnu/packages/python.scm (python-coloredlogs): New variable.
> 
> Applied with similar modifications to descriptions.
> 
> > From 8ff7e30582a6d84b6c9bf56cd985ef9c04af9eaa Mon Sep 17 00:00:00 2001
> > From: ng0 <[email-masked]>
> > Date: Sat, 21 Oct 2017 23:41:26 +0000
> > Subject: [PATCH 5/6] gnu: Add python-pgpdump.
> >
> > * gnu/packages/gnupg.scm (python-pgpdump): New variable.
> 
> I made these modifications:
> 

> diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm
> index 9a6ff68f8..fabeee232 100644
> --- a/gnu/packages/gnupg.scm
> +++ b/gnu/packages/gnupg.scm
> @@ -851,9 +851,9 @@ them to transform your existing public key into a secret key.")
>  files, to verify signatures, and to manage the private and public keys.")
>      (license license:gpl3+)))
>  
> -(define-public python-pgpdump
> +(define-public python2-pgpdump
>    (package
> -    (name "python-pgpdump")
> +    (name "python2-pgpdump")
>      (version "1.5")
>      (source
>       (origin
> @@ -863,21 +863,21 @@ files, to verify signatures, and to manage the private and public keys.")
>          (base32
>           "0s4nh8h7qsdj2yf29bspjs1zvxd4lcd11r6g11dp7fppgf2h0iqw"))))
>      (build-system python-build-system)
> +
> +    ;; Currently fails to build with Python 3.
> +    (arguments `(#:python ,python-2))
> +
>      (home-page "https://github.com/toofishes/python-pgpdump")
>      (synopsis "Python library for parsing PGP packets")
>      (description
> -     "Python-pgpdump is based on the pgpdump
> -(http://www.mew.org/~kazu/proj/pgpdump/).  Currently supported things
> -include:
> -
> -@enumerate
> -@item Signature packets
> -@item Public key packets
> -@item Secret key packets
> -@item Trust, user ID, and user attribute packets
> -@item ASCII-armor decoding and CRC check
> -@end enumerate\n")
> +     "Python-pgpdump is an OpenPGP packet parser based on
> +@uref{http://www.mew.org/~kazu/proj/pgpdump/, pgpdump}.  It notably supports:
> +
> +@itemize
> +@item signature packets;
> +@item public key packets;
> +@item secret key packets;
> +@item trust, user ID, and user attribute packets;
> +@item ASCII-armor decoding and CRC check.
> +@end itemize\n")
>      (license license:bsd-3)))
> -
> -(define-public python2-pgpdump
> -  (package-with-python2 python-pgpdump))

> 
> This is because the Python 3.x variant fails to build:
> 
> --8<---------------cut here---------------start------------->8---
> ======================================================================
> FAIL: test_parse_partial_length (pgpdump.test.EncryptedPacketsTestCase)
> This file contains an encrypted message with a Partial Body Length header
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/tmp/guix-build-python-pgpdump-1.5.drv-0/pgpdump-1.5/pgpdump/test.py", line 435, in test_parse_partial_length
>     rawdata = self.load_data('partial_length.gpg')
>   File "/tmp/guix-build-python-pgpdump-1.5.drv-0/pgpdump-1.5/pgpdump/test.py", line 102, in load_data
>     self.assertTrue(os.path.exists(full_path))
> AssertionError: False is not true
> 
> ======================================================================
> FAIL: test_parse_partial_length (pgpdump.test.EncryptedPacketsTestCase)
> This file contains an encrypted message with a Partial Body Length header
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/tmp/guix-build-python-pgpdump-1.5.drv-0/pgpdump-1.5/pgpdump/test.py", line 435, in test_parse_partial_length
>     rawdata = self.load_data('partial_length.gpg')
>   File "/tmp/guix-build-python-pgpdump-1.5.drv-0/pgpdump-1.5/pgpdump/test.py", line 102, in load_data
>     self.assertTrue(os.path.exists(full_path))
> AssertionError: False is not true
> 
> ----------------------------------------------------------------------
> Ran 58 tests in 0.546s
> 
> FAILED (failures=2)
> --8<---------------cut here---------------end--------------->8---

Strange… I did build it.

> > From ed8ec89c1bd898aa927ddca9c453bc6e950e61a3 Mon Sep 17 00:00:00 2001
> > From: ng0 <[email-masked]>
> > Date: Sat, 21 Oct 2017 23:45:51 +0000
> > Subject: [PATCH 6/6] gnu: Add python-roca-detect.
> >
> > * gnu/packages/crypto.scm (python-roca-detect): New variable.
> 
> Applied with similar changes as above.
> 
> Thank you!
> 
> Ludo’.

Thanks!
-- 
ng0
GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
GnuPG: https://dist.ng0.infotropique.org/dist/keys/
https://www.infotropique.org https://ng0.infotropique.org