Re: calm: two patches
Jon Turney writes: > Firstly, this doesn't do what's wanted (always use Base64 encoded > hashes), as the hash is only computed here if it's not available from > a sha512.sum file (which mirror maintenance scripts on sourceware > generate for us) > > So, I guess the correct change would be to re-encode the sha512 hashes > from hex to base64 somewhere. OK, then that's the correct solution. > I'm not sure I really see the value in that, though. It would reduce > the length of the hashes from 86 to 128 characters, so setup.ini gets > somewhat less that 33% smaller, but I'm sceptical that the size of the > compressed setup.ini file changes much. It shrinks by about 4% when compressed as .xz last I looked, but more importantly for me anyway is that more of the lines don't wrap when I look at those files. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Waldorf MIDI Implementation & additional documentation: http://Synth.Stromeko.net/Downloads.html#WaldorfDocs
Re: calm: two patches
On 17/09/2016 17:51, Achim Gratz wrote: From 3fa17efb7049f7cc20c119c0a696e4f4212dd6bc Mon Sep 17 00:00:00 2001 From: Achim GratzDate: Sat, 17 Sep 2016 18:49:19 +0200 Subject: [PATCH 2/2] Write human-readable time in addition to machine-readable timestamp * calm/package.py (write_setup_ini): In addition to the epoch timestamp write that time (as a comment) in human-readable form so that it can be more easily deciphered. This is a good idea. Applied, with updated tests. Thanks. From f35d1d01e83b6e319b249f736b69eb4e4e677d6d Mon Sep 17 00:00:00 2001 From: Achim Gratz Date: Sat, 17 Sep 2016 18:47:44 +0200 Subject: [PATCH 1/2] Use Base64URL encoding for the checksums * calm/package.py (sha512_file): Import base64 and use Base64URL encoding for the checksums for higher coding efficiency and shorter setup files. [...] -return sha512.hexdigest() +return base64.urlsafe_b64encode(sha512.digest())[:86].decode() I'm not so sure about this. Firstly, this doesn't do what's wanted (always use Base64 encoded hashes), as the hash is only computed here if it's not available from a sha512.sum file (which mirror maintenance scripts on sourceware generate for us) So, I guess the correct change would be to re-encode the sha512 hashes from hex to base64 somewhere. I'm not sure I really see the value in that, though. It would reduce the length of the hashes from 86 to 128 characters, so setup.ini gets somewhat less that 33% smaller, but I'm sceptical that the size of the compressed setup.ini file changes much.
calm: two patches
>From f35d1d01e83b6e319b249f736b69eb4e4e677d6d Mon Sep 17 00:00:00 2001 From: Achim GratzDate: Sat, 17 Sep 2016 18:47:44 +0200 Subject: [PATCH 1/2] Use Base64URL encoding for the checksums * calm/package.py (sha512_file): Import base64 and use Base64URL encoding for the checksums for higher coding effieiency and shorter setup files. --- calm/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/calm/package.py b/calm/package.py index a5881e3..90b386e 100755 --- a/calm/package.py +++ b/calm/package.py @@ -26,6 +26,7 @@ # from collections import defaultdict +import base64 import copy import difflib import hashlib @@ -103,7 +104,7 @@ def sha512_file(fn, block_size=256*128): for chunk in iter(lambda: f.read(block_size), b''): sha512.update(chunk) -return sha512.hexdigest() +return base64.urlsafe_b64encode(sha512.digest())[:86].decode() # helper function to read hints -- 2.8.3 >From 3fa17efb7049f7cc20c119c0a696e4f4212dd6bc Mon Sep 17 00:00:00 2001 From: Achim Gratz Date: Sat, 17 Sep 2016 18:49:19 +0200 Subject: [PATCH 2/2] Write human-readable time in addition to machine-readable timestamp * calm/package.py (write_setup_ini): In addition to the epoch timestamp write that time (as a comment) in human-readable form so that it can be more easily deciphered. --- calm/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/calm/package.py b/calm/package.py index 90b386e..30eb0c4 100755 --- a/calm/package.py +++ b/calm/package.py @@ -655,7 +655,9 @@ def write_setup_ini(args, packages, arch): if args.release: print("release: %s" % args.release, file=f) print("arch: %s" % arch, file=f) -print("setup-timestamp: %d" % time.time(), file=f) +tz = time.time() +print("# Created on %s" % time.ctime(tz), file=f) +print("setup-timestamp: %d" % tz, file=f) if args.setup_version: print("setup-version: %s" % args.setup_version, file=f) -- 2.8.3 Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ SD adaptations for Waldorf Q V3.00R3 and Q+ V3.54R2: http://Synth.Stromeko.net/Downloads.html#WaldorfSDada