Subject: bug#54482: closed (Re: bug#54482: [PATCH] gnu: Add simavr)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 24 Mar 2022 11:59:02 +0000

Your bug report

#54482: [PATCH] gnu: Add simavr

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
54482: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=54482
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#54482: [PATCH] gnu: Add simavr
From: Ludovic Courtès <[email-masked]>
To: "Artyom V. Poptsov" <[email-masked]>
Cc: [email-masked], Maxime Devos <[email-masked]>
Date: Thu, 24 Mar 2022 12:58:41 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Artyom,

"Artyom V. Poptsov" <[email-masked]> skribis:

> From 2ea020a319f5c2fa27662a8e505a1d4b8e916ea9 Mon Sep 17 00:00:00 2001
> From: "Artyom V. Poptsov" <[email-masked]>
> Date: Sat, 19 Mar 2022 23:39:54 +0300
> Subject: [PATCH] gnu: avr-xyz: Add simavr
>
> * gnu/packages/avr-xyz.scm: New module.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add 'avr-xyz.scm'.

Applied with the cosmetic changes below.

Thank you and thanks Maxime!

Ludo’.

diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm
index 800f8af21e..a05157ede7 100644
--- a/gnu/packages/avr-xyz.scm
+++ b/gnu/packages/avr-xyz.scm
@@ -83,9 +83,9 @@ (define-public simavr
     (inputs
      (list bash-minimal libelf freeglut))
     (home-page "https://github.com/buserror/simavr")
-    (synopsis "Lean, mean and hackable AVR simulator for GNU/Linux and OSX")
+    (synopsis "Lean, mean and hackable simulator for AVR CPUs/MCUs")
     (description
-     "simavr is a new AVR simulator for GNU/Linux, or any platform that uses
+     "simavr is a new AVR simulator for GNU/Linux or any platform that uses
 @command{avr-gcc}.  It uses avr-gcc's own register definition to simplify
 creating new targets for supported AVR devices.  The core was made to be small
 and compact, and hackable so allow quick prototyping of an AVR project.  The

Subject: [PATCH] gnu: Add simavr
From: "Artyom V. Poptsov" <[email-masked]>
To: [email-masked]
Date: Sun, 20 Mar 2022 19:36:39 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

this patch adds simavr [1] -- an AVR simulator.

Thanks,

- Artyom

References:
1: https://github.com/buserror/simavr
From 05b3a83a9f0f9b0e08d2675cb9b1a80c6b30114d Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Sat, 19 Mar 2022 23:39:54 +0300
Subject: [PATCH] gnu: Add simavr

* gnu/packages/avr.scm (simavr): New variable.
---
 gnu/packages/avr.scm | 74 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 73 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index 3cc5a6964e..9836cc6305 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2018 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2020 Marius Bakke <[email-masked]>
 ;;; Copyright © 2020 Arun Isaac <[email-masked]>
+;;; Copyright © 2022 Artyom V. Poptsov <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -25,6 +26,7 @@
 (define-module (gnu packages avr)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils)
+  #:use-module (guix gexp)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
@@ -35,7 +37,17 @@
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages flashing-tools)
   #:use-module (gnu packages gcc)
-  #:use-module (gnu packages vim))
+  #:use-module (gnu packages vim)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages avr)
+  #:use-module (gnu packages elf)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages ruby))
 
 (define-public avr-binutils
   (package
@@ -181,3 +193,63 @@ inlining, and features an aggressive tree-shaker, eliminating unused top-level
 definitions.  Microscheme has a robust @dfn{Foreign Function Interface} (FFI)
 meaning that C code may be invoked directly from (ms) programs.")
     (license license:expat)))
+
+(define-public simavr
+  (package
+    (name "simavr")
+    (version "1.7")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/buserror/simavr")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32 "0njz03lkw5374x1lxrq08irz4b86lzj2hibx46ssp7zv712pq55q"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (arguments
+     (list
+      #:tests? #f
+      #:modules '((guix build gnu-build-system)
+                  (guix build utils))
+      #:phases #~(modify-phases %standard-phases
+                   (delete 'configure)
+                   (replace 'check
+                     (lambda* (#:key outputs #:allow-other-keys)
+                       (when tests?
+                         (invoke "make"
+                                 "-C"
+                                 "tests"
+                                 (string-append "CC=" #$(cc-for-target))
+                                 "RELEASE=1"
+                                 "run_tests")))))
+      #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
+                           "RELEASE=1"
+                           (string-append "PREFIX=" #$output)
+                           (string-append "DESTDIR=" #$output))))
+    (propagated-inputs
+     (list avr-toolchain))
+    (native-inputs
+     (list autoconf
+           which
+           git
+           automake
+           pkg-config
+           ncurses
+           ruby))
+    (inputs
+     (list bash-minimal libelf freeglut))
+    (home-page "https://github.com/buserror/simavr")
+    (synopsis "Lean, mean and hackable AVR simulator for GNU/Linux and OSX")
+    (description
+     "simavr is a new AVR simulator for GNU/Linux, or any platform that uses
+@command{avr-gcc}.  It uses avr-gcc's own register definition to simplify
+creating new targets for supported AVR devices.  The core was made to be small
+and compact, and hackable so allow quick prototyping of an AVR project.  The
+AVR core is now stable for use with parts with <= 128KB flash, and with
+preliminary support for the bigger parts.  The simulator loads ELF files
+directly, and there is even a way to specify simulation parameterps directly
+in the emulated code using an @code{.elf} section.  You can also load
+multipart HEX files.")
+    (license license:gpl3)))
-- 
2.25.1

-- 
Artyom "avp" Poptsov <[email-masked]>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F