Subject: [bug#49576] [PATCH] Add sterm

From: phodina <[email-masked]>
Date: Sat, 17 Jul 2021 10:50:10 +0000

Hi iyzsong!

here is the patch with the changes as you suggested.

> Doesn't the builtin Makefile works? It also install a man page and
>
> shell completion files.

Unfortunately, the Makefile tries to install the binary under /usr

> I think "PREFIX=$out" is no effect here, also instead of 'gcc' you can
>
> use 'cc-for-target' for cross-compile support, examples can be found in
>
> suckless.scm:

I made the changes as you suggested but now I get the error due to 'cc-for-target':

/gnu/store/gqp3fqgb9h5l7ibzvsnqkv6gahy3r97i-sterm-20200306-guile-builder:1:2534: unquote: expression not valid outside of quasiquote in form (unquote (cc-for-target))

Could you help me fix that? Thanks

---
index 4429a2b75a..4ffb6060fe 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -1297,6 +1297,36 @@ replacement for the OpenDWG libraries.")
     (description "@code{minicom} is a serial terminal emulator.")
     (license license:gpl2+)))

+(define-public sterm
+(package
+  (name "sterm")
+  (version "20200306")
+  (source (origin
+            (method git-fetch)
+            (uri (git-reference
+		  (url "https://github.com/wentasah/sterm")
+		  (commit version)))
+	    (file-name (git-file-name name version))
+            (sha256
+             (base32
+              "031pd8yz2bfzqbari6za1c3xcqmw94ap4vbrjzb3v6izjcrca58c"))))
+  (build-system gnu-build-system)
+  (arguments
+    '(#:tests? #f ; no tests
+      #:make-flags
+       (list (string-append "CC=" ,(cc-for-target))
+             (string-append "PREFIX=" %output))
+      #:phases
+      (modify-phases %standard-phases (delete 'configure))))
+  (synopsis "Simple serial terminal")
+  (description "This is a minimalist terminal program like minicom or cu.
+The only thing it does is creating a bidirectional connection between
+stdin/stdout and a terminal device (e.g. serial line).
+It can also set serial line baudrate, manipulate DTR/RTS modem lines,
+send break and throttle transmission speed.")
+  (home-page "https://github.com/wentasah/sterm")
+  (license license:gpl3+)))
+
 (define-public harminv
   (package
     (name "harminv")
--
2.31.1

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Friday, July 16th, 2021 at 3:03 PM, 宋文武 <[email-masked]> wrote:

> Hello!
>
> phodina [email-masked] writes:
>
> > index 4429a2b75a..a6f866cbea 100644
> >
> > --- a/gnu/packages/engineering.scm
> >
> > +++ b/gnu/packages/engineering.scm
> >
> > @@ -24,6 +24,7 @@
> >
> > ;;; Copyright © 2021 qblade [email-masked]
> >
> > ;;; Copyright © 2021 Gerd Heber [email-masked]
> >
> > ;;; Copyright © 2021 Guillaume Le Vaillant [email-masked]
> >
> > +;;; Copyright © 2021 Petr Hodina [email-masked]
> >
> > ;;;
> >
> > ;;; This file is part of GNU Guix.
> >
> > ;;;
> >
> > @@ -1297,6 +1298,35 @@ replacement for the OpenDWG libraries.")
> >
> > (description "@code{minicom} is a serial terminal emulator.")
> >
> > (license license:gpl2+)))
> >
> > +(define-public sterm
> >
> > +(package
> >
> > -   (name "sterm")
> > -   (version "20200306")
> > -   (source (origin
> > -              (method git-fetch)
> >
> >
> > -              (uri
> >
> >
> > -         (git-reference
> >
> >
> > -       (url "https://github.com/wentasah/sterm")
> >
> >
> > -       (commit version)))
> >
> >
>
> The indention seems wrong here, we usually use:
>
> --8<---------------cut here---------------start------------->8---
>
>     (source (origin
>               (method git-fetch)
>               (uri (git-reference
>                     (url "...")
>                     (commit ...)))
>               (file-name (git-file-name name version))
>               (sha256
>                (base32
>                 "..."))))
>
>
> --8<---------------cut here---------------end--------------->8---
>
> Also a 'file-name' field is needed to get a better store directory name
>
> for the checkout.
>
> > -              (sha256
> >
> >
> > -               (base32
> >
> >
> > -                "031pd8yz2bfzqbari6za1c3xcqmw94ap4vbrjzb3v6izjcrca58c"))))
> >
> >
> > -   (build-system gnu-build-system)
> > -   (arguments
> > -   '(#:tests? #f
>
> When disable tests, we should add a comment, a simple "no tests" will
>
> do.
>
> > -        #:make-flags (list "PREFIX=$out" "CC=gcc")
> >
> >
>
> I think "PREFIX=$out" is no effect here, also instead of 'gcc' you can
>
> use 'cc-for-target' for cross-compile support, examples can be found in
>
> suckless.scm:
>
> --8<---------------cut here---------------start------------->8---
>
>        #:make-flags
>        (list (string-append "CC=" ,(cc-for-target))
>              (string-append "PREFIX=" %output))
>
>
> --8<---------------cut here---------------end--------------->8---
>
> > -        #:phases (modify-phases %standard-phases
> >
> >
> > -       (delete 'configure)
> >
> >
> > -       (replace 'install
> >
> >
> > -         (lambda* (#:key outputs #:allow-other-keys)
> >
> >
> > -       	  (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> >
> >
> > -       	    (install-file "sterm" bin)
> >
> >
> > -       	    #t))))))
> >
> >
>
> Doesn't the builtin Makefile works? It also install a man page and
>
> shell completion files.
>
> > -   (synopsis "Simple serial terminal")
> > -   (description "This is a minimalist terminal program like minicom or cu. The only thing it does is creating a bidirectional connection between stdin/stdout and a terminal device (e.g. serial line). It can also set serial line baudrate, manipulate DTR/RTS modem lines, send break and throttle transmission speed.")
>
> Please keep lines below 80 characters, and use two spaces between
>
> the two sentences.
>
> > -   (home-page "https://github.com/wentasah/sterm")
> > -   (license #f)))
>
> According to the files, the license is GPLv3+.
>
> Could you send an update patch? Thank you!