[PATCH] gnu: Add goawk.

  • Open
  • quality assurance status badge
Details
3 participants
  • Ludovic Courtès
  • Maxime Devos
  • Paul A. Patience
Owner
unassigned
Submitted by
Paul A. Patience
Severity
normal
P
P
Paul A. Patience wrote on 10 Jul 2022 03:58
(address . guix-patches@gnu.org)(name . Paul A. Patience)(address . paul@apatience.com)
20220710015832.129472-1-paul@apatience.com
* gnu/packages/gawk.scm (goawk): New variable.
---
gnu/packages/gawk.scm | 41 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 40 insertions(+), 1 deletion(-)

Toggle diff (56 lines)
diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
index 9feaf059fb..9bc96d87e7 100644
--- a/gnu/packages/gawk.scm
+++ b/gnu/packages/gawk.scm
@@ -33,7 +33,8 @@ (define-module (gnu packages gawk)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system copy)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go))

(define-public gawk
(package
@@ -245,3 +246,41 @@ (define-public cppawk-egawk
(delete "gawk-mpfr")
(prepend egawk-next)))
(synopsis "cppawk that calls Enhanced GNU Awk by default")))
+
+(define-public goawk
+ (package
+ (name "goawk")
+ (version "1.19.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/benhoyt/goawk")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12z7nzrqyx0y18bsc95i1vp251jw3ik2xj5g8bc12vybndw5x0j0"))))
+ (build-system go-build-system)
+ (arguments
+ '(#:import-path "github.com/benhoyt/goawk"
+ #:install-source? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-paths
+ (lambda _
+ (substitute* "src/github.com/benhoyt/goawk/interp/interp.go"
+ (("/bin/sh") (which "sh")))
+ (substitute* "src/github.com/benhoyt/goawk/goawk_test.go"
+ (("/bin/sh") (which "sh")))))
+ (add-after 'fix-paths 'fix-tests
+ (lambda _
+ (substitute* "src/github.com/benhoyt/goawk/goawk_test.go"
+ ;; Don't write test output; it is compared with expected
+ ;; results anyway.
+ (("\"writegoawk\", true") "\"writegoawk\", false")))))))
+ (home-page "https://github.com/benhoyt/goawk")
+ (synopsis "Awk interpreter with CSV support")
+ (description
+ "GoAWK is a POSIX-compatible version of Awk that also has a CSV mode for
+reading and writing CSV and TSV files.")
+ (license license:expat)))
--
2.36.1
P
P
Paul A. Patience wrote on 11 Jul 2022 14:17
(address . 56474@debbugs.gnu.org)
874jzn4zgk.fsf@apatience.com
Don't merge this yet, I need to apply some changes.

GoAWK also exposes a Go package, so I need to remove the
‘#:install-source #f’ line.
However, how should I go about naming the package (or packages)?

The Go library should be go-github-com-benhoyt-goawk (in
gnu/packages/golang.scm), but should there be an additional package
named just goawk for the command itself that goes in
gnu/packages/gawk.scm?

Thanks,
Paul
L
L
Ludovic Courtès wrote on 19 Jul 2022 23:03
(name . Paul A. Patience)(address . paul@apatience.com)(address . 56474@debbugs.gnu.org)
87a694rf1f.fsf_-_@gnu.org
Hi,

"Paul A. Patience" <paul@apatience.com> skribis:

Toggle quote (11 lines)
> Don't merge this yet, I need to apply some changes.
>
> GoAWK also exposes a Go package, so I need to remove the
> ‘#:install-source #f’ line.
> However, how should I go about naming the package (or packages)?
>
> The Go library should be go-github-com-benhoyt-goawk (in
> gnu/packages/golang.scm), but should there be an additional package
> named just goawk for the command itself that goes in
> gnu/packages/gawk.scm?

Maybe leave ‘goawk’ in golang.scm so that gawk.scm doesn’t pull in all
of Go?

Thanks,
Ludo’.
M
M
Maxime Devos wrote on 20 Jul 2022 15:34
Re: [bug#56474] [PATCH] gnu: Add goawk.
f3c3d5c3-d4b0-de6e-fab3-42ce27b55834@telenet.be
On 10-07-2022 03:58, Paul A. Patience wrote:
Toggle quote (23 lines)
> * gnu/packages/gawk.scm (goawk): New variable.
> ---
> gnu/packages/gawk.scm | 41 ++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 40 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm
> index 9feaf059fb..9bc96d87e7 100644
> --- a/gnu/packages/gawk.scm
> +++ b/gnu/packages/gawk.scm
> @@ -33,7 +33,8 @@ (define-module (gnu packages gawk)
> #:use-module (guix git-download)
> #:use-module (guix utils)
> #:use-module (guix build-system copy)
> - #:use-module (guix build-system gnu))
> + #:use-module (guix build-system gnu)
> + #:use-module (guix build-system go))
>
> (define-public gawk
> (package
> @@ -245,3 +246,41 @@ (define-public cppawk-egawk
> (delete "gawk-mpfr")
> (prepend egawk-next)))
> (synopsis "cppawk that calls Enhanced GNU Awk by default")))
What Ludo wrote about not making the module graph more cyclic than it
already is with all that entails, and ...
Toggle quote (25 lines)
> +(define-public goawk
> + (package
> + (name "goawk")
> + (version "1.19.0")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/benhoyt/goawk")
> + (commit (string-append "v" version))))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "12z7nzrqyx0y18bsc95i1vp251jw3ik2xj5g8bc12vybndw5x0j0"))))
> + (build-system go-build-system)
> + (arguments
> + '(#:import-path "github.com/benhoyt/goawk"
> + #:install-source? #f
> + #:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'fix-paths
> + (lambda _
> + (substitute* "src/github.com/benhoyt/goawk/interp/interp.go"
> + (("/bin/sh") (which "sh")))
> + (substitute* "src/github.com/benhoyt/goawk/goawk_test.go"
> + (("/bin/sh") (which "sh")))))
... these two can be combined, substitute* accepts a list of files, it's
not restricted to a single file.
Also, this which seems incorrect when cross-compiling, do
(search-input-file inputs "bin/sh") instead and add 'bash-minimal' (or
'bash'?) to inputs, so you get the cross-compiled bash instead of the
native bash (for the goawk_test.go, it probably doesn't matter, but it's
important for interp.go).
Greetings,
Maxime.
Attachment: OpenPGP_signature
L
L
Ludovic Courtès wrote on 3 Aug 2022 12:05
control message for bug #56474
(address . control@debbugs.gnu.org)
878ro5vdzh.fsf@gnu.org
tags 56474 + moreinfo
quit
?