GNU bug report logs - #51885
Blacksmith - Rowhammer Fuzzer

Previous Next

Package: guix-patches;

Reported by: Raghav Gururajan <rg <at> raghavgururajan.name>

Date: Mon, 15 Nov 2021 23:59:02 UTC

Severity: normal

Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 51885 in the body.
You can then email your comments to 51885 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Mon, 15 Nov 2021 23:59:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 15 Nov 2021 23:59:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Subject: Blacksmith - Rowhammer Fuzzer
Date: Mon, 15 Nov 2021 18:58:35 -0500
[Message part 1 (text/plain, inline)]
Hello Folks!

I am opening this thread for packaging blacksmith 
(https://comsec.ethz.ch/research/dram/blacksmith/).

Regards,
RG.
[OpenPGP_0x5F5816647F8BE551.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Sun, 28 Nov 2021 00:56:02 GMT) Full text and rfc822 format available.

Message #8 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: jgart <jgart <at> dismail.de>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 guixrus <jgart <at> dismail.de>
Subject: [PATCH 1/2] gnu: Add asmjit.
Date: Sat, 27 Nov 2021 19:55:26 -0500
From: guixrus <jgart <at> dismail.de>

* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Raghav Gururajan <rg <at> raghavgururajan.name>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9520a164f1..8ed639cc49 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1373,6 +1373,38 @@ (define-public jsonnet
 syntax with variables, conditions, functions and more.")
     (license license:asl2.0)))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/asmjit/asmjit")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+        `(#:configure-flags
+          '("-DASMJIT_TEST=TRUE")))
+      (synopsis "Machine code generation for C++")
+      (description
+"AsmJit is a lightweight library for machine code generation written
+in C++ language. It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set - from
+legacy MMX to the newest AVX-512 and AMX. It has a type-safe API that
+allows C++ compiler to do semantic checks at compile-time even before the
+assembled code is generated or executed. It also provides an optional
+register allocator that makes it easy to generate complex code without
+a significant development effort.")
+      (home-page "https://asmjit.com/")
+      (license license:zlib))))
+
 (define-public simdjson
   (package
     (name "simdjson")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Sun, 28 Nov 2021 00:56:02 GMT) Full text and rfc822 format available.

Message #11 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: jgart <jgart <at> dismail.de>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 guixrus <jgart <at> dismail.de>
Subject: [PATCH 2/2] gnu: Add argagg.
Date: Sat, 27 Nov 2021 19:55:27 -0500
From: guixrus <jgart <at> dismail.de>

* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Raghav Gururajan <rg <at> raghavgururajan.name>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 8ed639cc49..486d25675e 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -1373,6 +1373,32 @@ (define-public jsonnet
 syntax with variables, conditions, functions and more.")
     (license license:asl2.0)))
 
+(define-public argagg
+  (package
+    (name "argagg")
+    (version "0.4.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vietjtnguyen/argagg")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "12kb9rdh1ngn4qhzxc20kv2rl1kjwpn1y21ggmh9lx7hyw06aarh"))))
+    (build-system cmake-build-system)
+    (native-inputs
+      `(("doxygen" ,doxygen)))
+    (synopsis "Simple C++11 command line argument parser")
+    (description
+"This is yet another C++ command line argument/option parser.  It was
+written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve
+the majority of argument parsing needs in a simple manner with an easy
+to use API.")
+    (home-page "https://github.com/vietjtnguyen/simdjson")
+    (license license:expat)))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Sun, 28 Nov 2021 01:02:01 GMT) Full text and rfc822 format available.

Message #14 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: jgart <jgart <at> dismail.de>
To: 51885 <at> debbugs.gnu.org
Subject: Guix Meetup Nov 27 2021: asmjit and argagg
Date: Sat, 27 Nov 2021 20:01:49 -0500
Hi Guixers,

The above two packages were worked on with volunteers from today's Guix Meetup.

These packages are dependencies of Blacksmith.

all best,

jgart




Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Wed, 01 Dec 2021 04:30:02 GMT) Full text and rfc822 format available.

Message #17 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, jgart <jgart <at> dismail.de>
Subject: [PATCH 3/4] gnu: Add json.
Date: Tue, 30 Nov 2021 23:29:26 -0500
* gnu/packages/cpp.scm (json): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
---
 gnu/packages/cpp.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 2fe0d70a60..4b0f839b2a 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -74,6 +74,69 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public json
+  (package
+    (name "json")
+    (version "3.10.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nlohmann/json")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17kxwxl6515s8nb5x7zy69c8qy4gswac66fp15261x1g6sa2jnkx"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-1)))
+       (snippet
+        `(begin
+           (delete-file-recursively "third_party")
+           (let ((keep
+                  ;; Custom forks which are incompatible with the ones in Guix.
+                  '("doctest" "fifo_map")))
+             (with-directory-excursion "test/thirdparty"
+               (for-each delete-file-recursively
+                         (lset-difference string=?
+                                          (scandir ".")
+                                          (cons* "." ".." keep)))))
+             #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "-DJSON_TestDataDirectory="
+                       (assoc-ref %build-inputs "json_test_data")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "test/CMakeLists.txt"
+               ;; Requires network connection.
+               (("add_subdirectory\\(cmake_fetch_content\\)") "")))))))
+    (native-inputs
+     `(("json_test_data"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/nlohmann/json_test_data")
+             (commit "v3.0.0")))
+           (file-name
+            (git-file-name "json_test_data" "3.0.0"))
+           (sha256
+            (base32 "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))
+       ("python" ,python-wrapper)))
+    (home-page "https://json.nlohmann.me/")
+    (synopsis "JSON for C++")
+    (description "@code{json} is a C++ json library for converting to and from
+C++ data structures.  It's design goals emphasize intuitive syntax, trivial
+integration via a single header file, and serious test coverage involving all of
+the codebase.")
+    (license license:expat)))
+
 (define-public argagg
   (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Wed, 01 Dec 2021 04:31:01 GMT) Full text and rfc822 format available.

Message #20 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH 1/4] gnu: Add asmjit.
Date: Tue, 30 Nov 2021 23:29:24 -0500
* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index e2f2279418..b8741a9be7 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -74,6 +74,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Wed, 01 Dec 2021 04:31:02 GMT) Full text and rfc822 format available.

Message #23 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH 2/4] gnu: Add argagg.
Date: Tue, 30 Nov 2021 23:29:25 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index b8741a9be7..2fe0d70a60 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -74,6 +74,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "Simple C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Wed, 01 Dec 2021 04:31:02 GMT) Full text and rfc822 format available.

Message #26 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH 4/4] gnu: Add blacksmith.
Date: Tue, 30 Nov 2021 23:29:27 -0500
* gnu/packages/cybersecurity.scm (blacksmith): New variable.
---
 gnu/packages/cybersecurity.scm | 78 ++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e4614e908e..e096c41fd6 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 c4droid <c4droid <at> foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,10 +21,14 @@
 
 (define-module (gnu packages cybersecurity)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages engineering)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-crypto)
@@ -32,6 +37,79 @@ (define-module (gnu packages cybersecurity)
   #:use-module (gnu packages bioinformatics)      ;python-intervaltree
   #:use-module (gnu packages emulators))
 
+(define-public blacksmith
+  (let ((commit "c8e65b709a83665f9528efdedcf064abdb04859f")
+        (revision "0"))
+    (package
+      (name "blacksmith")
+      (version
+       (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/comsec-group/blacksmith")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+         (modules '((guix build utils)))
+         (snippet
+          `(begin
+             (delete-file-recursively "external")
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(external\\)") "")
+               (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+                (string-append "find_package(asmjit)\n"
+                               "find_package(nlohmann_json)")))
+             #t))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test-suite
+         #:imported-modules
+         ((guix build copy-build-system)
+          ,@%cmake-build-system-modules)
+         #:modules
+         (((guix build copy-build-system)
+           #:prefix copy:)
+          (guix build cmake-build-system)
+          (guix build utils))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (substitute* "CMakeLists.txt"
+                 ;; Use default C++ standard instead.
+                 (("cxx_std_17") "")
+                 ;; This project tries to link argagg library,
+                 ;; which doesn't exist, as argagg project
+                 ;; is a single header file.
+                 (("argagg") ""))))
+           (replace 'install
+             (lambda args
+               (apply (assoc-ref copy:%standard-phases 'install)
+                      #:install-plan
+                      '(("." "bin"
+                         #:include ("blacksmith"))
+                        ("." "lib"
+                         #:include-regexp ("\\.a$")))
+                      args))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("argagg" ,argagg)
+         ("asmjit" ,asmjit)
+         ("json" ,json)))
+      (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+      (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+      (description "Blacksmith is an implementation of Rowhammer fuzzer that
+crafts novel non-uniform Rowhammer access patterns based on the concepts of
+frequency, phase, and amplitude.  It is able to bypass recent
+@acronym{TRR, Target Row Refresh}in-DRAM mitigations effectively and as such can
+could trigger bit flips.")
+      (license license:expat))))
+
 (define-public ropgadget
   (package
     (name "ropgadget")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 10:53:02 GMT) Full text and rfc822 format available.

Message #29 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v2 1/4] gnu: Add asmjit.
Date: Thu,  9 Dec 2021 05:52:09 -0500
* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9ab6e0b835..bbcdcd6be9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,9 @@
 ;;; Copyright © 2020 Brett Gilio <brettg <at> gnu.org>
 ;;; Copyright © 2020 Milkey Mouse <milkeymouse <at> meme.institute>
 ;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;; Copyright © 2021 jgart <jgart <at> dismail.de>
+;;; Copyright © 2021 Julien Lepiller <julien <at> lepiller.eu>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +77,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 10:53:02 GMT) Full text and rfc822 format available.

Message #32 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v2 2/4] gnu: Add argagg.
Date: Thu,  9 Dec 2021 05:52:10 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..a579c47ad9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "Simple C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 10:54:02 GMT) Full text and rfc822 format available.

Message #35 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, jgart <jgart <at> dismail.de>
Subject: [PATCH v2 3/4] gnu: Add json.
Date: Thu,  9 Dec 2021 05:52:11 -0500
* gnu/packages/cpp.scm (json): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
---
 gnu/packages/cpp.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index a579c47ad9..28705d5bb6 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,69 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public json
+  (package
+    (name "json")
+    (version "3.10.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nlohmann/json")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17kxwxl6515s8nb5x7zy69c8qy4gswac66fp15261x1g6sa2jnkx"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-1)))
+       (snippet
+        `(begin
+           (delete-file-recursively "third_party")
+           (let ((keep
+                  ;; Custom forks which are incompatible with the ones in Guix.
+                  '("doctest" "fifo_map")))
+             (with-directory-excursion "test/thirdparty"
+               (for-each delete-file-recursively
+                         (lset-difference string=?
+                                          (scandir ".")
+                                          (cons* "." ".." keep)))))
+             #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "-DJSON_TestDataDirectory="
+                       (assoc-ref %build-inputs "json_test_data")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "test/CMakeLists.txt"
+               ;; Requires network connection.
+               (("add_subdirectory\\(cmake_fetch_content\\)") "")))))))
+    (native-inputs
+     `(("json_test_data"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/nlohmann/json_test_data")
+             (commit "v3.0.0")))
+           (file-name
+            (git-file-name "json_test_data" "3.0.0"))
+           (sha256
+            (base32 "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))
+       ("python" ,python-wrapper)))
+    (home-page "https://json.nlohmann.me/")
+    (synopsis "JSON for C++")
+    (description "@code{json} is a C++ json library for converting to and from
+C++ data structures.  It's design goals emphasize intuitive syntax, trivial
+integration via a single header file, and serious test coverage involving all of
+the codebase.")
+    (license license:expat)))
+
 (define-public argagg
   (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 10:54:02 GMT) Full text and rfc822 format available.

Message #38 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v2 4/4] gnu: Add blacksmith.
Date: Thu,  9 Dec 2021 05:52:12 -0500
* gnu/packages/cybersecurity.scm (blacksmith): New variable.
---
 gnu/packages/cybersecurity.scm | 78 ++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e4614e908e..8c9bb986be 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 c4droid <c4droid <at> foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,10 +21,14 @@
 
 (define-module (gnu packages cybersecurity)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages engineering)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-crypto)
@@ -32,6 +37,79 @@ (define-module (gnu packages cybersecurity)
   #:use-module (gnu packages bioinformatics)      ;python-intervaltree
   #:use-module (gnu packages emulators))
 
+(define-public blacksmith
+  (let ((commit "c8e65b709a83665f9528efdedcf064abdb04859f")
+        (revision "0"))
+    (package
+      (name "blacksmith")
+      (version
+       (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/comsec-group/blacksmith")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+         (modules '((guix build utils)))
+         (snippet
+          `(begin
+             (delete-file-recursively "external")
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(external\\)") "")
+               (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+                (string-append "find_package(asmjit)\n"
+                               "find_package(nlohmann_json)")))
+             #t))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test-suite
+         #:imported-modules
+         ((guix build copy-build-system)
+          ,@%cmake-build-system-modules)
+         #:modules
+         (((guix build copy-build-system)
+           #:prefix copy:)
+          (guix build cmake-build-system)
+          (guix build utils))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (substitute* "CMakeLists.txt"
+                 ;; Use default C++ standard instead.
+                 (("cxx_std_17") "")
+                 ;; This project tries to link argagg library,
+                 ;; which doesn't exist, as argagg project
+                 ;; is a single header file.
+                 (("argagg") ""))))
+           (replace 'install
+             (lambda args
+               (apply (assoc-ref copy:%standard-phases 'install)
+                      #:install-plan
+                      '(("." "bin"
+                         #:include ("blacksmith"))
+                        ("." "lib"
+                         #:include-regexp ("\\.a$")))
+                      args))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("argagg" ,argagg)
+         ("asmjit" ,asmjit)
+         ("json" ,json)))
+      (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+      (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+      (description "Blacksmith is an implementation of Rowhammer fuzzer that
+crafts novel non-uniform Rowhammer access patterns based on the concepts of
+frequency, phase, and amplitude.  It is able to bypass recent
+@acronym{TRR, Target Row Refresh}in-DRAM mitigations effectively and as such can
+trigger bit flips.")
+      (license license:expat))))
+
 (define-public ropgadget
   (package
     (name "ropgadget")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 10:58:02 GMT) Full text and rfc822 format available.

Message #41 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nicolò Balzarotti <anothersms <at> gmail.com>
To: Raghav Gururajan via Guix-patches via <guix-patches <at> gnu.org>,
 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, jgart <jgart <at> dismail.de>
Subject: Re: [bug#51885] [PATCH v2 3/4] gnu: Add json.
Date: Thu, 09 Dec 2021 11:57:21 +0100
Hi, is this different from json-modern-cxx (except for the version)?

Raghav Gururajan via Guix-patches via <guix-patches <at> gnu.org> writes:

> * gnu/packages/cpp.scm (json): New variable.
>
> Co-authored-by: jgart <jgart <at> dismail.de>
> ---
>  gnu/packages/cpp.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>
> diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
> index a579c47ad9..28705d5bb6 100644
> --- a/gnu/packages/cpp.scm
> +++ b/gnu/packages/cpp.scm
> @@ -77,6 +77,69 @@ (define-module (gnu packages cpp)
>    #:use-module (gnu packages web)
>    #:use-module (gnu packages xml))
>  
> +(define-public json
> +  (package
> +    (name "json")
> +    (version "3.10.4")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       (uri
> +        (git-reference
> +         (url "https://github.com/nlohmann/json")
> +         (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32 "17kxwxl6515s8nb5x7zy69c8qy4gswac66fp15261x1g6sa2jnkx"))
> +       (modules '((guix build utils)
> +                  (ice-9 ftw)
> +                  (srfi srfi-1)))
> +       (snippet
> +        `(begin
> +           (delete-file-recursively "third_party")
> +           (let ((keep
> +                  ;; Custom forks which are incompatible with the ones in Guix.
> +                  '("doctest" "fifo_map")))
> +             (with-directory-excursion "test/thirdparty"
> +               (for-each delete-file-recursively
> +                         (lset-difference string=?
> +                                          (scandir ".")
> +                                          (cons* "." ".." keep)))))
> +             #t))))
> +    (build-system cmake-build-system)
> +    (arguments
> +     `(#:configure-flags
> +       (list
> +        (string-append "-DJSON_TestDataDirectory="
> +                       (assoc-ref %build-inputs "json_test_data")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'disable-failing-tests
> +           (lambda _
> +             (substitute* "test/CMakeLists.txt"
> +               ;; Requires network connection.
> +               (("add_subdirectory\\(cmake_fetch_content\\)") "")))))))
> +    (native-inputs
> +     `(("json_test_data"
> +        ,(origin
> +           (method git-fetch)
> +           (uri
> +            (git-reference
> +             (url "https://github.com/nlohmann/json_test_data")
> +             (commit "v3.0.0")))
> +           (file-name
> +            (git-file-name "json_test_data" "3.0.0"))
> +           (sha256
> +            (base32 "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))
> +       ("python" ,python-wrapper)))
> +    (home-page "https://json.nlohmann.me/")
> +    (synopsis "JSON for C++")
> +    (description "@code{json} is a C++ json library for converting to and from
> +C++ data structures.  It's design goals emphasize intuitive syntax, trivial
> +integration via a single header file, and serious test coverage involving all of
> +the codebase.")
> +    (license license:expat)))
> +
>  (define-public argagg
>    (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
>          (revision "0"))
> -- 
> 2.34.0




Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 10:58:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:18:01 GMT) Full text and rfc822 format available.

Message #47 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>, anothersms <at> gmail.com
Subject: [PATCH v3 1/3] gnu: Add argagg.
Date: Thu,  9 Dec 2021 08:16:46 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..0ce2b681c8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:18:02 GMT) Full text and rfc822 format available.

Message #50 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, jgart <jgart <at> dismail.de>,
 anothersms <at> gmail.com
Subject: [PATCH v3 2/3] gnu: Add json.
Date: Thu,  9 Dec 2021 08:16:47 -0500
* gnu/packages/cpp.scm (json): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
---
 gnu/packages/cpp.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 0ce2b681c8..d09de04f99 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,69 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public json
+  (package
+    (name "json")
+    (version "3.10.4")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/nlohmann/json")
+         (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17kxwxl6515s8nb5x7zy69c8qy4gswac66fp15261x1g6sa2jnkx"))
+       (modules '((guix build utils)
+                  (ice-9 ftw)
+                  (srfi srfi-1)))
+       (snippet
+        `(begin
+           (delete-file-recursively "third_party")
+           (let ((keep
+                  ;; Custom forks which are incompatible with the ones in Guix.
+                  '("doctest" "fifo_map")))
+             (with-directory-excursion "test/thirdparty"
+               (for-each delete-file-recursively
+                         (lset-difference string=?
+                                          (scandir ".")
+                                          (cons* "." ".." keep)))))
+             #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        (string-append "-DJSON_TestDataDirectory="
+                       (assoc-ref %build-inputs "json_test_data")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (substitute* "test/CMakeLists.txt"
+               ;; Requires network connection.
+               (("add_subdirectory\\(cmake_fetch_content\\)") "")))))))
+    (native-inputs
+     `(("json_test_data"
+        ,(origin
+           (method git-fetch)
+           (uri
+            (git-reference
+             (url "https://github.com/nlohmann/json_test_data")
+             (commit "v3.0.0")))
+           (file-name
+            (git-file-name "json_test_data" "3.0.0"))
+           (sha256
+            (base32 "0nzsjzlvk14dazwh7k2jb1dinb0pv9jbx5jsyn264wvva0y7daiv"))))
+       ("python" ,python-wrapper)))
+    (home-page "https://json.nlohmann.me/")
+    (synopsis "JSON for C++")
+    (description "@code{json} is a C++ json library for converting to and from
+C++ data structures.  It's design goals emphasize intuitive syntax, trivial
+integration via a single header file, and serious test coverage involving all of
+the codebase.")
+    (license license:expat)))
+
 (define-public argagg
   (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:25:02 GMT) Full text and rfc822 format available.

Message #53 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>, anothersms <at> gmail.com
Subject: [PATCH v4 1/3] gnu: Add asmjit.
Date: Thu,  9 Dec 2021 08:23:43 -0500
* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9ab6e0b835..bbcdcd6be9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,9 @@
 ;;; Copyright © 2020 Brett Gilio <brettg <at> gnu.org>
 ;;; Copyright © 2020 Milkey Mouse <milkeymouse <at> meme.institute>
 ;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;; Copyright © 2021 jgart <jgart <at> dismail.de>
+;;; Copyright © 2021 Julien Lepiller <julien <at> lepiller.eu>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +77,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:25:02 GMT) Full text and rfc822 format available.

Message #56 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>, anothersms <at> gmail.com
Subject: [PATCH v4 2/3] gnu: Add argagg.
Date: Thu,  9 Dec 2021 08:23:44 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..0ce2b681c8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:25:02 GMT) Full text and rfc822 format available.

Message #59 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, anothersms <at> gmail.com
Subject: [PATCH v4 3/3] gnu: Add blacksmith.
Date: Thu,  9 Dec 2021 08:23:45 -0500
* gnu/packages/cybersecurity.scm (blacksmith): New variable.
---
 gnu/packages/cybersecurity.scm | 78 ++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e4614e908e..8c9bb986be 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 c4droid <c4droid <at> foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,10 +21,14 @@
 
 (define-module (gnu packages cybersecurity)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages engineering)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-crypto)
@@ -32,6 +37,79 @@ (define-module (gnu packages cybersecurity)
   #:use-module (gnu packages bioinformatics)      ;python-intervaltree
   #:use-module (gnu packages emulators))
 
+(define-public blacksmith
+  (let ((commit "c8e65b709a83665f9528efdedcf064abdb04859f")
+        (revision "0"))
+    (package
+      (name "blacksmith")
+      (version
+       (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/comsec-group/blacksmith")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+         (modules '((guix build utils)))
+         (snippet
+          `(begin
+             (delete-file-recursively "external")
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(external\\)") "")
+               (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+                (string-append "find_package(asmjit)\n"
+                               "find_package(nlohmann_json)")))
+             #t))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test-suite
+         #:imported-modules
+         ((guix build copy-build-system)
+          ,@%cmake-build-system-modules)
+         #:modules
+         (((guix build copy-build-system)
+           #:prefix copy:)
+          (guix build cmake-build-system)
+          (guix build utils))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (substitute* "CMakeLists.txt"
+                 ;; Use default C++ standard instead.
+                 (("cxx_std_17") "")
+                 ;; This project tries to link argagg library,
+                 ;; which doesn't exist, as argagg project
+                 ;; is a single header file.
+                 (("argagg") ""))))
+           (replace 'install
+             (lambda args
+               (apply (assoc-ref copy:%standard-phases 'install)
+                      #:install-plan
+                      '(("." "bin"
+                         #:include ("blacksmith"))
+                        ("." "lib"
+                         #:include-regexp ("\\.a$")))
+                      args))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("argagg" ,argagg)
+         ("asmjit" ,asmjit)
+         ("json" ,json)))
+      (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+      (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+      (description "Blacksmith is an implementation of Rowhammer fuzzer that
+crafts novel non-uniform Rowhammer access patterns based on the concepts of
+frequency, phase, and amplitude.  It is able to bypass recent
+@acronym{TRR, Target Row Refresh}in-DRAM mitigations effectively and as such can
+trigger bit flips.")
+      (license license:expat))))
+
 (define-public ropgadget
   (package
     (name "ropgadget")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:27:02 GMT) Full text and rfc822 format available.

Message #62 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Nicolò Balzarotti <anothersms <at> gmail.com>
Cc: 51885 <at> debbugs.gnu.org, jgart <jgart <at> dismail.de>
Subject: Re: [bug#51885] [PATCH v2 3/4] gnu: Add json.
Date: Thu, 9 Dec 2021 08:26:28 -0500
[Message part 1 (text/plain, inline)]
Hi Nicolò,

> Hi, is this different from json-modern-cxx (except for the version)?

Thanks for catching that. I dropped the commit in v4 patch-set.

Regards,
RG.
[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:31:02 GMT) Full text and rfc822 format available.

Message #65 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v5 1/3] gnu: Add asmjit.
Date: Thu,  9 Dec 2021 08:30:43 -0500
* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9ab6e0b835..bbcdcd6be9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,9 @@
 ;;; Copyright © 2020 Brett Gilio <brettg <at> gnu.org>
 ;;; Copyright © 2020 Milkey Mouse <milkeymouse <at> meme.institute>
 ;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;; Copyright © 2021 jgart <jgart <at> dismail.de>
+;;; Copyright © 2021 Julien Lepiller <julien <at> lepiller.eu>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +77,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:32:01 GMT) Full text and rfc822 format available.

Message #68 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v5 2/3] gnu: Add argagg.
Date: Thu,  9 Dec 2021 08:30:44 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..0ce2b681c8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:32:02 GMT) Full text and rfc822 format available.

Message #71 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v5 3/3] gnu: Add blacksmith.
Date: Thu,  9 Dec 2021 08:30:45 -0500
* gnu/packages/cybersecurity.scm (blacksmith): New variable.
---
 gnu/packages/cybersecurity.scm | 78 ++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e4614e908e..8c9bb986be 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 c4droid <c4droid <at> foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,10 +21,14 @@
 
 (define-module (gnu packages cybersecurity)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages engineering)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-crypto)
@@ -32,6 +37,79 @@ (define-module (gnu packages cybersecurity)
   #:use-module (gnu packages bioinformatics)      ;python-intervaltree
   #:use-module (gnu packages emulators))
 
+(define-public blacksmith
+  (let ((commit "c8e65b709a83665f9528efdedcf064abdb04859f")
+        (revision "0"))
+    (package
+      (name "blacksmith")
+      (version
+       (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/comsec-group/blacksmith")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+         (modules '((guix build utils)))
+         (snippet
+          `(begin
+             (delete-file-recursively "external")
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(external\\)") "")
+               (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+                (string-append "find_package(asmjit)\n"
+                               "find_package(nlohmann_json)")))
+             #t))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test-suite
+         #:imported-modules
+         ((guix build copy-build-system)
+          ,@%cmake-build-system-modules)
+         #:modules
+         (((guix build copy-build-system)
+           #:prefix copy:)
+          (guix build cmake-build-system)
+          (guix build utils))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (substitute* "CMakeLists.txt"
+                 ;; Use default C++ standard instead.
+                 (("cxx_std_17") "")
+                 ;; This project tries to link argagg library,
+                 ;; which doesn't exist, as argagg project
+                 ;; is a single header file.
+                 (("argagg") ""))))
+           (replace 'install
+             (lambda args
+               (apply (assoc-ref copy:%standard-phases 'install)
+                      #:install-plan
+                      '(("." "bin"
+                         #:include ("blacksmith"))
+                        ("." "lib"
+                         #:include-regexp ("\\.a$")))
+                      args))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("argagg" ,argagg)
+         ("asmjit" ,asmjit)
+         ("json" ,json)))
+      (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+      (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+      (description "Blacksmith is an implementation of Rowhammer fuzzer that
+crafts novel non-uniform Rowhammer access patterns based on the concepts of
+frequency, phase, and amplitude.  It is able to bypass recent
+@acronym{TRR, Target Row Refresh}in-DRAM mitigations effectively and as such can
+trigger bit flips.")
+      (license license:expat))))
+
 (define-public ropgadget
   (package
     (name "ropgadget")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:37:01 GMT) Full text and rfc822 format available.

Message #74 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v6 1/3] gnu: Add asmjit.
Date: Thu,  9 Dec 2021 08:36:12 -0500
* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9ab6e0b835..bbcdcd6be9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,9 @@
 ;;; Copyright © 2020 Brett Gilio <brettg <at> gnu.org>
 ;;; Copyright © 2020 Milkey Mouse <milkeymouse <at> meme.institute>
 ;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;; Copyright © 2021 jgart <jgart <at> dismail.de>
+;;; Copyright © 2021 Julien Lepiller <julien <at> lepiller.eu>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +77,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:37:02 GMT) Full text and rfc822 format available.

Message #77 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v6 2/3] gnu: Add argagg.
Date: Thu,  9 Dec 2021 08:36:13 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..0ce2b681c8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:37:02 GMT) Full text and rfc822 format available.

Message #80 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v6 3/3] gnu: Add blacksmith.
Date: Thu,  9 Dec 2021 08:36:14 -0500
* gnu/packages/cybersecurity.scm (blacksmith): New variable.
---
 gnu/packages/cybersecurity.scm | 78 ++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e4614e908e..c280ed48dc 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 c4droid <c4droid <at> foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,10 +21,14 @@
 
 (define-module (gnu packages cybersecurity)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages engineering)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-crypto)
@@ -32,6 +37,79 @@ (define-module (gnu packages cybersecurity)
   #:use-module (gnu packages bioinformatics)      ;python-intervaltree
   #:use-module (gnu packages emulators))
 
+(define-public blacksmith
+  (let ((commit "c8e65b709a83665f9528efdedcf064abdb04859f")
+        (revision "0"))
+    (package
+      (name "blacksmith")
+      (version
+       (git-version "0.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/comsec-group/blacksmith")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+         (modules '((guix build utils)))
+         (snippet
+          `(begin
+             (delete-file-recursively "external")
+             (substitute* "CMakeLists.txt"
+               (("add_subdirectory\\(external\\)") "")
+               (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+                (string-append "find_package(asmjit)\n"
+                               "find_package(nlohmann_json)")))
+             #t))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:tests? #f                    ;no test-suite
+         #:imported-modules
+         ((guix build copy-build-system)
+          ,@%cmake-build-system-modules)
+         #:modules
+         (((guix build copy-build-system)
+           #:prefix copy:)
+          (guix build cmake-build-system)
+          (guix build utils))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-build
+             (lambda _
+               (substitute* "CMakeLists.txt"
+                 ;; Use default C++ standard instead.
+                 (("cxx_std_17") "")
+                 ;; This project tries to link argagg library,
+                 ;; which doesn't exist, as argagg project
+                 ;; is a single header file.
+                 (("argagg") ""))))
+           (replace 'install
+             (lambda args
+               (apply (assoc-ref copy:%standard-phases 'install)
+                      #:install-plan
+                      '(("." "bin"
+                         #:include ("blacksmith"))
+                        ("." "lib"
+                         #:include-regexp ("\\.a$")))
+                      args))))))
+      (native-inputs
+       `(("pkg-config" ,pkg-config)))
+      (inputs
+       `(("argagg" ,argagg)
+         ("asmjit" ,asmjit)
+         ("json-modern-cxx" ,json-modern-cxx)))
+      (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+      (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+      (description "Blacksmith is an implementation of Rowhammer fuzzer that
+crafts novel non-uniform Rowhammer access patterns based on the concepts of
+frequency, phase, and amplitude.  It is able to bypass recent
+@acronym{TRR, Target Row Refresh}in-DRAM mitigations effectively and as such can
+trigger bit flips.")
+      (license license:expat))))
+
 (define-public ropgadget
   (package
     (name "ropgadget")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:47:01 GMT) Full text and rfc822 format available.

Message #83 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v7 1/3] gnu: Add asmjit.
Date: Thu,  9 Dec 2021 08:45:45 -0500
* gnu/packages/cpp.scm (asmjit): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 9ab6e0b835..bbcdcd6be9 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,9 @@
 ;;; Copyright © 2020 Brett Gilio <brettg <at> gnu.org>
 ;;; Copyright © 2020 Milkey Mouse <milkeymouse <at> meme.institute>
 ;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;; Copyright © 2021 jgart <jgart <at> dismail.de>
+;;; Copyright © 2021 Julien Lepiller <julien <at> lepiller.eu>
+;;; Copyright © 2021 Disseminate Dissent <disseminatedissent <at> protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +77,38 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public asmjit
+  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
+        (revision "0"))
+    (package
+      (name "asmjit")
+      (version (git-version "0.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/asmjit/asmjit")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+      (build-system cmake-build-system)
+      (arguments
+       `(#:configure-flags
+         (list
+          "-DASMJIT_TEST=TRUE")))
+      (home-page "https://asmjit.com/")
+      (synopsis "Machine code generation for C++")
+      (description "AsmJit is a lightweight library for machine code generation
+written in C++ language.  It can generate machine code for X86 and X86_64
+architectures with the support for the whole instruction set from legacy MMX to
+the newest AVX-512 and AMX.  It has a type-safe API that allows C++ compiler to
+do semantic checks at compile-time even before the assembled code is generated
+or executed.  It also provides an optional register allocator that makes it easy
+to generate complex code without a significant development effort.")
+      (license license:zlib))))
+
 (define-public range-v3
   (package
     (name "range-v3")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:47:02 GMT) Full text and rfc822 format available.

Message #86 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Julien Lepiller <julien <at> lepiller.eu>,
 Disseminate Dissent <disseminatedissent <at> protonmail.com>,
 jgart <jgart <at> dismail.de>
Subject: [PATCH v7 2/3] gnu: Add argagg.
Date: Thu,  9 Dec 2021 08:45:46 -0500
* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <jgart <at> dismail.de>
Co-authored-by: Julien Lepiller <julien <at> lepiller.eu>
Co-authored-by: Disseminate Dissent <disseminatedissent <at> protonmail.com>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..0ce2b681c8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Thu, 09 Dec 2021 13:47:02 GMT) Full text and rfc822 format available.

Message #89 received at 51885 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 51885 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v7 3/3] gnu: Add blacksmith.
Date: Thu,  9 Dec 2021 08:45:47 -0500
* gnu/packages/cybersecurity.scm (blacksmith): New variable.
---
 gnu/packages/cybersecurity.scm | 75 ++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/gnu/packages/cybersecurity.scm b/gnu/packages/cybersecurity.scm
index e4614e908e..2ebdf6a8f8 100644
--- a/gnu/packages/cybersecurity.scm
+++ b/gnu/packages/cybersecurity.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2020 Jakub Kądziołka <kuba <at> kadziolka.net>
 ;;; Copyright © 2020, 2021 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2021 c4droid <c4droid <at> foxmail.com>
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,10 +21,14 @@
 
 (define-module (gnu packages cybersecurity)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system python)
+  #:use-module (gnu packages cpp)
   #:use-module (gnu packages engineering)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages python-crypto)
@@ -32,6 +37,76 @@ (define-module (gnu packages cybersecurity)
   #:use-module (gnu packages bioinformatics)      ;python-intervaltree
   #:use-module (gnu packages emulators))
 
+(define-public blacksmith
+  (package
+    (name "blacksmith")
+    (version "0.0.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/comsec-group/blacksmith")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0kyp71wndf527dgza5iks5m5vj543mvxp5w7cjd8x0pilmd1xrls"))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           (delete-file-recursively "external")
+           (substitute* "CMakeLists.txt"
+             (("add_subdirectory\\(external\\)") "")
+             (("[ \t]*FetchContent_MakeAvailable\\(asmjit\\)")
+              (string-append "find_package(asmjit)\n"
+                             "find_package(nlohmann_json)")))
+           #t))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test-suite
+       #:imported-modules
+       ((guix build copy-build-system)
+        ,@%cmake-build-system-modules)
+       #:modules
+       (((guix build copy-build-system)
+         #:prefix copy:)
+        (guix build cmake-build-system)
+        (guix build utils))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-build
+           (lambda _
+             (substitute* "CMakeLists.txt"
+               ;; Use default C++ standard instead.
+               (("cxx_std_17") "")
+               ;; This project tries to link argagg library,
+               ;; which doesn't exist, as argagg project
+               ;; is a single header file.
+               (("argagg") ""))))
+         (replace 'install
+           (lambda args
+             (apply (assoc-ref copy:%standard-phases 'install)
+                    #:install-plan
+                    '(("." "bin"
+                       #:include ("blacksmith"))
+                      ("." "lib"
+                       #:include-regexp ("\\.a$")))
+                    args))))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("argagg" ,argagg)
+       ("asmjit" ,asmjit)
+       ("json-modern-cxx" ,json-modern-cxx)))
+    (home-page "https://comsec.ethz.ch/research/dram/blacksmith")
+    (synopsis "Rowhammer fuzzer with non-uniform and frequency-based patterns")
+    (description "Blacksmith is an implementation of Rowhammer fuzzer that
+crafts novel non-uniform Rowhammer access patterns based on the concepts of
+frequency, phase, and amplitude.  It is able to bypass recent
+@acronym{TRR, Target Row Refresh}in-DRAM mitigations effectively and as such can
+trigger bit flips.")
+    (license license:expat)))
+
 (define-public ropgadget
   (package
     (name "ropgadget")
-- 
2.34.0





Information forwarded to guix-patches <at> gnu.org:
bug#51885; Package guix-patches. (Fri, 14 Jan 2022 09:01:01 GMT) Full text and rfc822 format available.

Message #92 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Raghav Gururajan via Guix-patches via <guix-patches <at> gnu.org>
Cc: 51885-done <at> debbugs.gnu.org, Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: Re: [bug#51885] Blacksmith - Rowhammer Fuzzer
Date: Fri, 14 Jan 2022 10:00:26 +0100
Hello,

Raghav Gururajan via Guix-patches via <guix-patches <at> gnu.org> writes:

> I am opening this thread for packaging blacksmith
> (https://comsec.ethz.ch/research/dram/blacksmith/).

I applied the v7 of this patch set.  Thank you.

Regards,
-- 
Nicolas Goaziou




Reply sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
You have taken responsibility. (Fri, 14 Jan 2022 09:01:02 GMT) Full text and rfc822 format available.

Notification sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
bug acknowledged by developer. (Fri, 14 Jan 2022 09:01:03 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 11 Feb 2022 12:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 75 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.