From: "Jakub Kądziołka" <kuba@kadziolka.net>
To: Mathieu Othacehe <othacehe@gnu.org>
Cc: 41637@debbugs.gnu.org
Subject: [bug#41637] [PATCH] gnu: Add hashcash.
Date: Sat, 6 Jun 2020 16:39:28 +0200 [thread overview]
Message-ID: <20200606143928.humyr6gzzwcb4ool@gravity> (raw)
In-Reply-To: <87blm07i50.fsf@gnu.org>
[-- Attachment #1.1: Type: text/plain, Size: 3287 bytes --]
On Wed, Jun 03, 2020 at 08:55:39AM +0200, Mathieu Othacehe wrote:
>
> Hey Jakub,
>
> Thanks for fixing the cross-compilation, a full review this time :)
>
> > + (let* ((outdir (assoc-ref outputs "out"))
> > + (bindir (string-append outdir "/bin"))
> > + (mandir (string-append outdir "/share/man/man1"))
> > + (docdir (string-append outdir "/share/doc/hashcash-" ,version)))
> > + ;; make install assumes /usr and doesn't provide a way to override it
> > + (install-file "hashcash" bindir)
> > + (install-file "hashcash.1" mandir)
> > + (install-file "README" docdir)
> > + (install-file "LICENSE" docdir)
> > + (install-file "CHANGELOG" docdir)
>
> I think you can set the variables INSTALL_PATH, MAN_INSTALL_PATH and
> DOC_INSTALL_PATH instead.
>
> > + #t))))))
> > + (home-page "https://www.hashcash.org/")
> > + (synopsis "Denial-of-service countermeasure")
> > + (description "Hashcash is a proof-of-work algorithm, which has been used
> > +as a denial-of-service countermeasure technique in a number of systems.
>
> You can remove "in a number of systems".
Note that systems means things like e-mail or bitcoin, rather than Guix
or Debian.
> > +A hashcash stamp constitutes a proof-of-work which takes a parametrizable
> > +amount of work to compute for the sender. The recipient can verify received
> > +hashcash stamps efficiently.
> > +
> > +This package contains a command-line tool for computing and verifying hashcash
> > +stamps.")
> > + (license license:public-domain)))
>
> I'm also concerned by this line in the Makefile:
>
> --8<---------------cut here---------------start------------->8---
> # request static link of -lcrypto only
> LIBCRYPTO=/usr/lib/libcrypto.a
> --8<---------------cut here---------------end--------------->8---
>
> We should maybe add "openssl" to the inputs and fix this variable
> (that's what Nix does).
Firstly, the benchmarking code seems to be broken in Hashcash 1.22.
Downgrading to 1.21 and running hashcash -sv, I found that OpenSSL
is slower than another minting backend, and is not used by default.
I believe it would be better to not include OpenSSL in the package.
That's what Debian does, anyway.
I therefore propose only the following changes:
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index b38e75eb7f..ecd72eee26 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -3217,7 +3217,7 @@ an implementation of LLDP. It also supports some proprietary protocols.")
(bindir (string-append outdir "/bin"))
(mandir (string-append outdir "/share/man/man1"))
(docdir (string-append outdir "/share/doc/hashcash-" ,version)))
- ;; make install assumes /usr and doesn't provide a way to override it
+ ;; Install manually, as we don't need the `sha1' binary
(install-file "hashcash" bindir)
(install-file "hashcash.1" mandir)
(install-file "README" docdir)
Regards,
Jakub Kądziołka
[-- Attachment #1.2: v2-0001-gnu-Add-hashcash.patch --]
[-- Type: text/plain, Size: 3127 bytes --]
From de679e91b17b3a04a5f07446d0b121ed8f5890ed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= <kuba@kadziolka.net>
Date: Mon, 1 Jun 2020 02:37:03 +0200
Subject: [PATCH v2] gnu: Add hashcash.
* gnu/packages/networking.scm (hashcash): New variable.
---
gnu/packages/networking.scm | 47 +++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index fd29370841..d7de5b1956 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -38,6 +38,7 @@
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3189,3 +3190,49 @@ CDP. The goal of LLDP is to provide an inter-vendor compatible mechanism to
deliver Link-Layer notifications to adjacent network devices. @code{lldpd} is
an implementation of LLDP. It also supports some proprietary protocols.")
(license license:isc)))
+
+(define-public hashcash
+ (package
+ (name "hashcash")
+ (version "1.22")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.hashcash.org/source/hashcash-"
+ version ".tgz"))
+ (sha256
+ (base32
+ "15kqaimwb2y8wvzpn73021bvay9mz1gqqfc40gk4hj6f84nz34h1"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "CC=" ,(cc-for-target)))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ ;; No tests available.
+ (delete 'check)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((outdir (assoc-ref outputs "out"))
+ (bindir (string-append outdir "/bin"))
+ (mandir (string-append outdir "/share/man/man1"))
+ (docdir (string-append outdir "/share/doc/hashcash-" ,version)))
+ ;; Install manually, as we don't need the `sha1' binary
+ (install-file "hashcash" bindir)
+ (install-file "hashcash.1" mandir)
+ (install-file "README" docdir)
+ (install-file "LICENSE" docdir)
+ (install-file "CHANGELOG" docdir)
+ #t))))))
+ (home-page "https://www.hashcash.org/")
+ (synopsis "Denial-of-service countermeasure")
+ (description "Hashcash is a proof-of-work algorithm, which has been used
+as a denial-of-service countermeasure technique in a number of systems.
+
+A hashcash stamp constitutes a proof-of-work which takes a parametrizable
+amount of work to compute for the sender. The recipient can verify received
+hashcash stamps efficiently.
+
+This package contains a command-line tool for computing and verifying hashcash
+stamps.")
+ (license license:public-domain)))
--
2.26.2
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2020-06-06 14:40 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-01 0:40 [bug#41637] [PATCH] gnu: Add hashcash Jakub Kądziołka
2020-06-02 12:12 ` Mathieu Othacehe
2020-06-02 13:25 ` Jakub Kądziołka
2020-06-03 6:55 ` Mathieu Othacehe
2020-06-03 12:18 ` Jakub Kądziołka
2020-06-03 12:30 ` Mathieu Othacehe
2020-06-06 14:39 ` Jakub Kądziołka [this message]
2020-06-20 21:29 ` bug#41637: Done: " Jakub Kądziołka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200606143928.humyr6gzzwcb4ool@gravity \
--to=kuba@kadziolka.net \
--cc=41637@debbugs.gnu.org \
--cc=othacehe@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).