Message ID | 20220710015832.129472-1-paul@apatience.com |
---|---|
State | New |
Headers | show |
Series | [bug#56474] gnu: Add goawk. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git-branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
cbaines/issue | success | View issue |
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
Hi, "Paul A. Patience" <paul@apatience.com> skribis: > 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’.
On 10-07-2022 03:58, Paul A. Patience wrote: > * 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 ... > +(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.
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)))