[bug#77645] gnu: Add python-surf.

Message ID b181495e4c0cef03131f35e643b9db9959d1fbc9.1744120981.git.csantosb@inventati.org
State New
Headers
Series [bug#77645] gnu: Add python-surf. |

Commit Message

Cayetano Santos April 8, 2025, 2:03 p.m. UTC
  * gnu/packages/electronics.scm (python-surf): New variable.

Change-Id: Iddedfd5acfe3dbe04e092de27b42b6fdf1c95fb1
---
 gnu/packages/electronics.scm | 36 +++++++++++++++++++++++++++++++++++-
 1 file changed, 35 insertions(+), 1 deletion(-)


base-commit: 1dab24555a494beb3db5a335c675f07043e77f1c
  

Comments

Andreas Enge April 8, 2025, 7:17 p.m. UTC | #1
Hello Cayetano,

Am Tue, Apr 08, 2025 at 04:03:01PM +0200 schrieb Cayetano Santos:
> +    (description "A huge VHDL library for FPGA development.")

could you please replace this by full sentences, preferably a little
longer than just some keywords, and without marketing speak such as
"huge"?

I do not know if you have run "guix lint" on the package, which is
always a good idea.

Thanks,

Andreas
  
Sharlatan Hellseher April 13, 2025, 8:48 p.m. UTC | #2
Hi,

I'm not sure if this patch may be accepted to Guix because of the
licence:

--8<---------------cut here---------------start------------->8---
Copyright (c) 2025, The Board of Trustees of the Leland Stanford Junior 
University, through SLAC National Accelerator Laboratory (subject to receipt 
of any required approvals from the U.S. Dept. of Energy). All rights reserved. 
Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:
--8<---------------cut here---------------end--------------->8---
<https://github.com/slaclab/surf/blob/main/LICENSE.txt>

--
Thanks,
Oleg
  
Sharlatan Hellseher April 13, 2025, 8:48 p.m. UTC | #3
Hi,

I'm not sure if this patch may be accepted to Guix because of the
licence:

--8<---------------cut here---------------start------------->8---
Copyright (c) 2025, The Board of Trustees of the Leland Stanford Junior 
University, through SLAC National Accelerator Laboratory (subject to receipt 
of any required approvals from the U.S. Dept. of Energy). All rights reserved. 
Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met:
--8<---------------cut here---------------end--------------->8---
<https://github.com/slaclab/surf/blob/main/LICENSE.txt>

--
Thanks,
Oleg
  
Andreas Enge April 14, 2025, 8:07 a.m. UTC | #4
Hello Oleg,

thanks for looking at the license, that is always an important step in
package submission and acceptance.

Am Sun, Apr 13, 2025 at 09:48:28PM +0100 schrieb Sharlatan Hellseher:
> --8<---------------cut here---------------start------------->8---
> Copyright (c) 2025, The Board of Trustees of the Leland Stanford Junior 
> University, through SLAC National Accelerator Laboratory (subject to receipt 
> of any required approvals from the U.S. Dept. of Energy). All rights reserved. 
> Redistribution and use in source and binary forms, with or without 
> modification, are permitted provided that the following conditions are met:
> --8<---------------cut here---------------end--------------->8---
> <https://github.com/slaclab/surf/blob/main/LICENSE.txt>

The license given there is essentially the bsd-3 license:
   https://directory.fsf.org/wiki/License:BSD-3-Clause
with "the author" replaced by the actual name of the copyright holder.

So it is fine to add the package to Guix; I think we use the
(define* (non-copyleft uri #:optional (comment ""))
  "Return a lax, permissive, non-copyleft license (for example a variant of
the 3-clause BSD license or the Expat license), whose full text can be found
at URI, which may be a file:// URI pointing the package's tree."
  (license "non-copyleft"
           uri
           (string-append
            "This is a lax, non-copyleft free software license.  "
            "Check the URI for details.  "
            comment)))
form of the license in this case, for "a variant of the 3-clause BSD
license".

Andreas
  
Cayetano Santos April 14, 2025, 8:50 a.m. UTC | #5
>Mon 14 Apr 2025 at 10:07, Andreas Enge <andreas@enge.fr> wrote:

> Hello Oleg,
>
> thanks for looking at the license, that is always an important step in
> package submission and acceptance.
>
> Am Sun, Apr 13, 2025 at 09:48:28PM +0100 schrieb Sharlatan Hellseher:
>> --8<---------------cut here---------------start------------->8---
>> Copyright (c) 2025, The Board of Trustees of the Leland Stanford Junior
>> University, through SLAC National Accelerator Laboratory (subject to receipt
>> of any required approvals from the U.S. Dept. of Energy). All rights reserved.
>> Redistribution and use in source and binary forms, with or without
>> modification, are permitted provided that the following conditions are met:
>> --8<---------------cut here---------------end--------------->8---
>> <https://github.com/slaclab/surf/blob/main/LICENSE.txt>
>
> The license given there is essentially the bsd-3 license:
>    https://directory.fsf.org/wiki/License:BSD-3-Clause
> with "the author" replaced by the actual name of the copyright holder.
>
> So it is fine to add the package to Guix; I think we use the
> (define* (non-copyleft uri #:optional (comment ""))
>   "Return a lax, permissive, non-copyleft license (for example a variant of
> the 3-clause BSD license or the Expat license), whose full text can be found
> at URI, which may be a file:// URI pointing the package's tree."
>   (license "non-copyleft"
>            uri
>            (string-append
>             "This is a lax, non-copyleft free software license.  "
>             "Check the URI for details.  "
>             comment)))
> form of the license in this case, for "a variant of the 3-clause BSD
> license".
>
> Andreas

Thanks for noticing about the license. I just sent a v2 to fix it.
  
Andreas Enge April 14, 2025, 9:02 a.m. UTC | #6
Hello,

Am Mon, Apr 14, 2025 at 10:50:18AM +0200 schrieb Cayetano Santos:
> Thanks for noticing about the license. I just sent a v2 to fix it.

you forgot to test whether it works :)
This version does not even compile, since license:non-copyleft is not a
license object, but a function that returns one, see the source code
I copied into my previous message.

Since everything has gone through QA already, I have repaired this and
pushed.

Thanks!

Andreas
  
Cayetano Santos April 14, 2025, 9:21 a.m. UTC | #7
>Mon 14 Apr 2025 at 11:02, Andreas Enge <andreas@enge.fr> wrote:

> Hello,
>
> Am Mon, Apr 14, 2025 at 10:50:18AM +0200 schrieb Cayetano Santos:
>> Thanks for noticing about the license. I just sent a v2 to fix it.
>
> you forgot to test whether it works :)
> This version does not even compile, since license:non-copyleft is not a
> license object, but a function that returns one, see the source code
> I copied into my previous message.

Ups, sorry about that ! I’ll be more careful next time.

Thanks again,

C.
  

Patch

diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 09875e4d63..bbd9c03ea9 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -64,7 +64,8 @@  (define-module (gnu packages electronics)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages stb)
-  #:use-module (gnu packages toolkits))
+  #:use-module (gnu packages toolkits)
+  #:use-module (gnu packages version-control))
 
 (define-public libserialport
   (package
@@ -597,3 +598,36 @@  (define-public python-vsg
      "VSG lets you define a VHDL coding style and provides a command-line tool
 to enforce it.")
     (license license:gpl3+)))
+
+(define-public python-surf
+  (package
+    (name "python-surf")
+    (version "2.57.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/slaclab/surf/")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0ncb34mdxaw0m6cnk7kvl7mkhwa6hpcxkc2lgarwcmmnfydr8kg3"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-deps
+            (lambda _
+              (invoke "git" "init") ;expects a git repo
+              ;; fix version
+              (substitute* "setup.py"
+                (("rawVer .*")
+                 (string-append "rawVer = \"v"
+                                #$version "\""))))))))
+    (native-inputs (list python-setuptools python-wheel python-gitpython
+                         git-minimal/pinned))
+    (home-page "https://slaclab.github.io/surf/")
+    (synopsis "SLAC Ultimate RTL Framework")
+    (description "A huge VHDL library for FPGA development.")
+    (license license:bsd-3)))