[bug#77067,v3] gnu: icestorm: Update to 0.0-5.3cdcf4b.

Message ID 70195b2e71c81651588ddde2783cf04715bd50fa.1744281179.git.csantosb@inventati.org
State New
Headers
Series [bug#77067,v3] gnu: icestorm: Update to 0.0-5.3cdcf4b. |

Commit Message

Cayetano Santos April 10, 2025, 10:32 a.m. UTC
  * gnu/packages/fpga.scm (icestorm): Update to 0.0-5.3cdcf4b.

Change-Id: I545ac91c94a97989c3a1494479d36cb5bb46930d

[source]: Update url.
[arguments]<#:phases>: Add make-info to produce info document using included makefile.
[arguments]<#:phases>: Update /usr/local substitutions in makefiles.
[arguments]<#:tests>: Tests require nextpnr-ice40, which depends on this package.
[arguments]<#:make-flags>: Update CC, CXX and PREFIX variables.
[native-inputs]: Replaced old style, add requirements for buildig the documentation.
[homepage]: Update url.
[synopsys]: Improve.
[description]: Improve.

Change-Id: I22d8adb52daac893bf7436fd86fefe0df18c7bf9
---
 gnu/packages/fpga.scm | 108 +++++++++++++++++++++++++-----------------
 1 file changed, 65 insertions(+), 43 deletions(-)


base-commit: 07c9a4273152deb128006b5ac2087d5fe30a5927
--
2.49.0
  

Patch

diff --git a/gnu/packages/fpga.scm b/gnu/packages/fpga.scm
index 893e875276..8afaccf62c 100644
--- a/gnu/packages/fpga.scm
+++ b/gnu/packages/fpga.scm
@@ -75,7 +75,9 @@  (define-module (gnu packages fpga)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages tcl)
+  #:use-module (gnu packages texinfo)
   #:use-module (gnu packages toolkits)
   #:use-module (gnu packages version-control))
 
@@ -269,49 +271,69 @@  (define-public yosys-clang
     (synopsis "FPGA Verilog RTL synthesizer (Clang variant)")))
 
 (define-public icestorm
-  (let ((commit "2bc541743ada3542c6da36a50e66303b9cbd2059")
-        (revision "4"))
-   (package
-    (name "icestorm")
-    (version (git-version "0.0" revision commit))
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                     (url "https://github.com/cliffordwolf/icestorm")
-                     (commit commit)))
-              (file-name (git-file-name name version))
-              (sha256
-                (base32
-                 "0d0ibdq3rzmjcbv97h4b9wgq8ikvgwlfw60spi2w81mis317lis8"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:tests? #f ; no unit tests that don't need an FPGA exist.
-       #:make-flags (list "CC=gcc" "CXX=g++"
-                          (string-append "PREFIX=" (assoc-ref %outputs "out")))
-       #:phases
-        (modify-phases %standard-phases
-          (add-after 'unpack 'remove-usr-local
-            (lambda _
-              (substitute* "iceprog/Makefile"
-                (("-I/usr/local/include") "")
-                (("-L/usr/local/lib") ""))
-              #t))
-          (add-after 'remove-usr-local 'fix-usr-local
-            (lambda* (#:key outputs #:allow-other-keys)
-              (substitute* "icebox/icebox_vlog.py"
-                (("/usr/local/share") (string-append (assoc-ref outputs "out") "/share")))
-              #t))
-          (delete 'configure))))
-    (inputs
-     (list libftdi))
-    (native-inputs
-     `(("python-3" ,python)
-       ("pkg-config" ,pkg-config)))
-    (home-page "https://www.clifford.at/icestorm/")
-    (synopsis "Project IceStorm - Lattice iCE40 FPGAs bitstream tools")
-    (description "Project IceStorm - Lattice iCE40 FPGAs Bitstream Tools.
-Includes the actual FTDI connector.")
-    (license license:isc))))
+  (let ((commit "3cdcf4b009bb8681ab7e2e09d65043f04334b60e")
+        (revision "5"))
+    (package
+      (name "icestorm")
+      (version (git-version "0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/YosysHQ/icestorm/")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0ygp6cj7grlnyji572kx215p2mw4crllskif9g795f390bp38g68"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:tests? #f ; tests require nextpr-ice40, will be run in there
+        #:make-flags
+        #~(list (string-append "CC="
+                               #$(cc-for-target))
+                (string-append "CXX="
+                               #$(cxx-for-target))
+                (string-append "PREFIX="
+                               #$output)
+                "ICEPROG=1")
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'fix-usr-local
+              (lambda* (#:key outputs #:allow-other-keys)
+                (substitute* "icepack/Makefile"
+                  (("/usr/local")
+                   #$output))
+                (substitute* "icebox/Makefile"
+                  (("/usr/local")
+                   #$output))
+                (substitute* "icebox/icebox_vlog.py"
+                  (("/usr/local")
+                   #$output))))
+            (add-after 'build 'make-info
+              (lambda* (#:key outputs #:allow-other-keys)
+                (with-directory-excursion "docs"
+                  (invoke "make" "info")
+                  (install-file "build/texinfo/projecticestorm.info"
+                                (string-append #$output "/share/info"))
+                  (copy-recursively "build/texinfo/projecticestorm-figures"
+                                    (string-append #$output
+                                     "/share/info/projecticestorm-figures")))))
+            (delete 'configure))))
+      (inputs (list libftdi))
+      (native-inputs (list python
+                           pkg-config
+                           ;; doc
+                           texinfo
+                           python-sphinx
+                           python-sphinx-rtd-theme))
+      (home-page "https://prjicestorm.readthedocs.io/")
+      (synopsis "Project IceStorm")
+      (description
+       "Project IceStorm aims at documenting the bitstream format of
+Lattice iCE40 FPGAs and providing simple tools for analyzing and creating bitstream
+files.")
+      (license license:isc))))
 
 (define-public nextpnr-ice40
   (let* ((version "0.7")