taler
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Taler] signature (purpose) refactoring


From: Christian Grothoff
Subject: Re: [Taler] signature (purpose) refactoring
Date: Sun, 24 Apr 2022 17:56:21 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0

On 4/24/22 17:25, Thien-Thi Nguyen wrote:

I've just now modified gana.git format.sh to take a second
optional arg SELEXP:

- https://git.gnunet.org/gana.git/commit/?id=6ece5330af02170401c

This is in preparation for the signature (purpose) refactoring
on the horizon, which immediate aim is to generate exchange.git
src/include/taler_signatures.h (offloading the chore to gana).
Other benefits of centralizing will follow, i'm sure.

So, the mechanism is in place.  Now, to clarify the policy.

In discussion w/ CG, we touched on two approaches:

(a) Add another directory to gana.git w/ Taler-specific Stuff.

(b) Augment gana.git gnunet-signatures w/ Taler-specific Stuff
     and put in place a mechanism for partial extraction and
     generation of caller-specified subset (GNUnet vs Taler, at
     this point) of the single registry.

The above changes to format.sh assume we are going w/ (b), but
if i'm mistaken, then please let me know!

Yes, just go with (b): extend the existing GNUnet signature registry, instead of adding a new directory. Simply add a 'package: GNUnet' or 'package: Taler' line to each of the existing entries, and filter by the package when generating code for GNUnet or GNU Taler.

Presuming (b), my plan is to:

(1) Change the gana.git gnunet-signatures/Makefile to specify a
     GNUnet-specific SELEXP, something like:

      ../format.sh h.template 'Subsystem ~ "^GNUnet"'

     so that "make" in that dir continues to DTRT.

(2) Add a call in exchange.git src/include/Makefile to extract
     Taler-specific Stuff, something like:

      $(top_srcdir)/contrib/gana/format.sh \
        h.template 'Subsystem ~ "^Taler"'

     and write the output to src/include/taler_signatures.h.

Please simply extend the existing contrib/gana-update.sh scripts.
Modifying the 'Makefile' may cause the code to be generated at compile time, but it should be generated at 'bootstrap' time (i.e. before configure / 'make dist') so that we have no dependency on GNU recutils for users of the TGZ.

(3) Add to gana.git gnunet-signatures/registry.rec all the
     #define:s from the former taler_signatures.h, rewritten
     in proper recfile syntax, each w/ 'Subsystem: Taler' in it.

(4) Repeat (2) and (3) for Anastasis (in anastasis.git, this
     time, and with 'Subsystem: Anastasis' as appropriate) and
     also Sync (sync.git, 'Subsystem: Sync').

(5) document in developer handbook ;-).

My questions are:
(x) Does this plan look OK?
(y) Am i missing anything?
(z) Is there a better approach?

@CG I'm writing to the Taler list in case anyone else would like
     to add something -- hope you don't mind.

No problem ;-)

Happy hacking!

Christian



reply via email to

[Prev in Thread] Current Thread [Next in Thread]