diff options
| author | Cayetano Santos <csantosb@inventati.org> | 2026-02-24 19:14:02 +0100 |
|---|---|---|
| committer | Cayetano Santos <csantosb@inventati.org> | 2026-03-02 09:35:55 +0100 |
| commit | 6208c4931097d01121af37d0b64d31a19d149cc2 (patch) | |
| tree | 81184f5e67b87ed55389996a0e23eb2246921607 | |
| parent | fb7326831a1fb05542cc6d275f05c05c5ca358f2 (diff) | |
gnu: Add ripes.
* gnu/packages/computer-architecture.scm (ripes): New variable.
* gnu/local.mk (dist_patch_DATA): Register it.
* po/packages/POTFILES.in: Add new module.
Change-Id: I1e0ab70527cd0dfe86ccee88c6f39a1e2efadaf8
| -rw-r--r-- | gnu/local.mk | 1 | ||||
| -rw-r--r-- | gnu/packages/computer-architecture.scm | 106 | ||||
| -rw-r--r-- | po/packages/POTFILES.in | 1 |
3 files changed, 108 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 38d2b2ecada..aa51ca503e2 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -208,6 +208,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/commencement.scm \ %D%/packages/compression.scm \ %D%/packages/compton.scm \ + %D%/packages/computer-architecture.scm \ %D%/packages/configuration-management.scm \ %D%/packages/connman.scm \ %D%/packages/containers.scm \ diff --git a/gnu/packages/computer-architecture.scm b/gnu/packages/computer-architecture.scm new file mode 100644 index 00000000000..db289e15686 --- /dev/null +++ b/gnu/packages/computer-architecture.scm @@ -0,0 +1,106 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages computer-architecture) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system qt) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages electronics) + #:use-module (gnu packages python) + #:use-module (gnu packages qt)) + +(define-public ripes + ;; Includes Qt6 support. + (let ((commit "720066f8d1c9f8d62fad058f44471763a0312084") + (revision "0")) + (package + (name "ripes") + (version (git-version "2.2.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mortbopet/Ripes/") + (commit commit) + ;; TODO: Unbundle. Ripes recursively requires tones of non + ;; packaged dependencies in "external" directories. + (recursive? #t))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1kkdc3y18h985zvgmhbdbms3zynygrg5f64w1lm948hffj58x7gy")))) + (build-system qt-build-system) + (arguments + (list + #:qtbase qtbase ;for Qt6 + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'disable-tests + (lambda _ + (substitute* "test/CMakeLists.txt" + ;; Fails with "Compared values are not the same" + (("create_qtest\\(tst_riscv\\)") "") + ;; Fails with "Internal test error" + (("create_qtest\\(tst_reverse\\)") "")))) + (add-after 'unpack 'patch-bugs + (lambda* (#:key inputs #:allow-other-keys) + ;; TODO: Remove when fixed upstream. + ;; See https://github.com/mortbopet/Ripes/issues/388 and 62 + (substitute* + (string-append "external/VSRTL/external/cereal/include" + "/cereal/external/rapidjson/document.h") + (("GenericStringRef& operator=.*") + (string-append + "GenericStringRef& operator=(const GenericStringRef& rhs)" + " { s = rhs.s; return *this; }"))) + ;; As suggested by error message itself. + (substitute* '("external/VSRTL/interface/vsrtl_vcdfile.cpp") + (("#include <sstream>") + "#include <sstream>\n#include <cstdint>")) + ;; As suggested by error message itself. + (substitute* '("external/VSRTL/interface/vsrtl_vcdfile.h") + (("#include <map>") + "#include <map>\n#include <cstdint>")))) + (add-before 'configure 'set-envs + (lambda* (#:key inputs #:allow-other-keys) + (setenv "VERILATOR_ROOT" + (dirname + (dirname + (search-input-file inputs "/bin/verilator")))))) + (replace 'check ;as for .github/workflows/test.yml + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (for-each + (lambda (f) (invoke f)) + (filter executable-file? (find-files "test" "tst_"))))))) + #:configure-flags + #~(list "-DRIPES_BUILD_VERILATOR_PROCESSORS=ON" + "-DRIPES_BUILD_TESTS=ON"))) + (native-inputs + (list python-minimal-wrapper verilator)) + (inputs + (list qtsvg qtcharts)) + (home-page "https://github.com/mortbopet/Ripes/") + (synopsis "Visual computer architecture editor for RISCV") + (description + "Ripes is a visual computer architecture simulator and assembly code +editor built for the RISCV instruction set architecture.") + (license license:expat)))) diff --git a/po/packages/POTFILES.in b/po/packages/POTFILES.in index 5402ce34bf9..702e0c6d81e 100644 --- a/po/packages/POTFILES.in +++ b/po/packages/POTFILES.in @@ -72,6 +72,7 @@ gnu/packages/code.scm gnu/packages/commencement.scm gnu/packages/compression.scm gnu/packages/compton.scm +gnu/packages/computer-architecture.scm gnu/packages/configuration-management.scm gnu/packages/connman.scm gnu/packages/containers.scm |
