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

From: 宋文武 <[email-masked]>
Date: Fri, 16 Jul 2021 21:03:15 +0800

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!