This patchset adds the 'gh' package, a CLI interface to GitHub. The Go importer did most of the work. :) Some things to note: - When building'gh', I couldn't get 'go-github-com-charmbracelet-glamour' to build without moving some native-inputs to propagated-inputs, though, if I was only building 'go-github-com-charmbracelet-glamour' it would build without moving things to propagated-inputs. I am not sure why this happens. - I found that (gnu packages syncthing) contained quite a few Go packages, I think it would make sense to move those packages to (gnu packages golang), and move the Syncthing package to (gnu packages sync). This would be done in a separate commit though. - The patch marked with 'D' adds a package which has been deprecated by upstream, but it is still needed by one of the packages that 'gh' depend on. I have marked it as a hidden package, let me know if this is the right decision. - The patch marked with 'W' adds a package which is needed by 'gh', but only used on Windows. It is still Free Software (BSD-2), but I have also marked it as hidden. Xinglu Chen (28): gnu: go-github-com-charmbracelet-glamour: Move some inputs to propagated-inputs. gnu: Add go-github-com-hinshun-vt10x. gnu: Add go-github-com-creack-pty. D gnu: Add go-github-com-kr-pty. gnu: Add go-github-com-netflix-go-expect. gnu: Add go-github-com-alecaivazis-survey-v2. gnu: Add go-github-com-makenowjust-heredoc. gnu: Add go-github-com-briandowns-spinner. gnu: Add go-github-com-cli-browser. gnu: Add go-github-com-cli-oauth. W gnu: Add go-github-com-cli-safeexec. gnu: Add go-github-com-russross-blackfriday-v2. gnu: Add go-github-com-shurcool-sanitized-anchor-name. gnu: Add go-github-com-cpuguy83-go-md2man-v2. gnu: Add go-github-com-enescakir-emoji. gnu: Add go-github-com-gabriel-vasile-mimetype. gnu: Add go-github-com-google-shlex. gnu: Add go-github-com-henvic-httpretty. gnu: Add go-github-com-itchyny-go-flags. gnu: Add go-github-com-itchyny-timefmt-go. gnu: Add go-github-com-itchyny-gojq. gnu: Add go-github-com-mattn-go-runewidth. gnu: Add go-github-com-rivo-uniseg. gnu: Add go-github-com-shurcool-githubv4. gnu: Add go-gopkg-in-yaml-v3. gnu: Add go-github-com-shurcool-graphql. gnu: Add go-github-com-cli-shurcool-graphql. gnu: Add gh. gnu/packages/golang.scm | 745 ++++++++++++++++++++++++++++++- gnu/packages/version-control.scm | 92 ++++ 2 files changed, 826 insertions(+), 11 deletions(-) base-commit: 94c77c9a0f7a1a4d7665d8fe566547016d2588d9 -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-timefmt-go): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2750443484..285622c5a0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7546,3 +7546,27 @@ provides more options and uses reflection to provide a convenient and succinct way of specifying command line options.") (license license:bsd-3))) +(define-public go-github-com-itchyny-timefmt-go + (package + (name "go-github-com-itchyny-timefmt-go") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/timefmt-go.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hfpvmbmzp5zbzz84p030jzd00jclnf4zr16f9r5bbq7xlhncj0z")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/itchyny/timefmt-go")) + (home-page + "https://github.com/itchyny/timefmt-go") + (synopsis "Efficient time formatting library for Go") + (description "This package provides functions for formatting and parsing +date time strings.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-gojq): New variable. --- gnu/packages/golang.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 285622c5a0..3738e207b4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7570,3 +7570,41 @@ way of specifying command line options.") date time strings.") (license license:expat))) +(define-public go-github-com-itchyny-gojq + (package + (name "go-github-com-itchyny-gojq") + (version "0.12.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/gojq.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pxm341sgqkscwifpxlkvchz8ix3wivp80p59dv257kaa9diymgz")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/itchyny/gojq")) + (native-inputs + `(("go-gopkg-in-yaml-v3" ,go-gopkg-in-yaml-v3) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-github-com-mattn-go-runewidth" + ,go-github-com-mattn-go-runewidth) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-itchyny-go-flags" + ,go-github-com-itchyny-go-flags) + ("go-github-com-google-go-cmp-cmp" + ,go-github-com-google-go-cmp-cmp))) + (propagated-inputs + `(("go-github-com-itchyny-timefmt-go" + ,go-github-com-itchyny-timefmt-go))) + (home-page "https://github.com/itchyny/gojq") + (synopsis "Pure Go implementation of jq") + (description "This package provides an implementation of @command{jq} +command written in Go language. It is also embedable as a library to other Go +projects.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3738e207b4..a9ab18c77c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7608,3 +7608,29 @@ command written in Go language. It is also embedable as a library to other Go projects.") (license license:expat))) +(define-public go-github-com-mattn-go-runewidth + (package + (name "go-github-com-mattn-go-runewidth") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-runewidth.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jh9552ppqvkdfni7x623n0x5mbiaqqhjhmr0zkh28x56k4ysii4")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/mattn/go-runewidth")) + (native-inputs + `(("go-github-com-rivo-uniseg" + ,go-github-com-rivo-uniseg))) + (home-page "https://github.com/mattn/go-runewidth") + (synopsis "Functions to get fixed width of the character or string") + (description "This package provides functions to get fixed width of the +character or string.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-rivo-uniseg): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a9ab18c77c..64a9a764be 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7634,3 +7634,26 @@ projects.") character or string.") (license license:expat))) +(define-public go-github-com-rivo-uniseg + (package + (name "go-github-com-rivo-uniseg") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rivo/uniseg.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/rivo/uniseg")) + (home-page "https://github.com/rivo/uniseg") + (synopsis "Unicode Text Segmentation for Go") + (description "This package implements Unicode Text Segmentation according +to @url{https://unicode.org/reports/tr29/,Unicode Standard Annex #29}.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-githubv4): New variable. --- gnu/packages/golang.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 64a9a764be..ef0287ff29 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7657,3 +7657,35 @@ character or string.") to @url{https://unicode.org/reports/tr29/,Unicode Standard Annex #29}.") (license license:expat))) +(define-public go-github-com-shurcool-githubv4 + (package + (name "go-github-com-shurcool-githubv4") + (version "0.0.0-20201206200315-234843c633fa") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/githubv4.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jmmjv95vcm9vl5zpvwv77pq3mhf2j2vxc7pj75yfniymp2dh5mi")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/shurcooL/githubv4")) + (native-inputs + `(("go-github-com-shurcooL-graphql" ,go-github-com-shurcool-graphql) + ("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2))) + (home-page "https://github.com/shurcooL/githubv4") + (synopsis "Client library for accessing the GitHub GraphQL API v4") + (description "This package is a client library for accessing the GitHub +GraphQL API v4. It focuses on the following things: + +@itemize +@item Friendly, simple and powerful API. +@item Correctness, high performance and efficiency. +@item Support for all of GitHub GraphQL API v4 via code generation from schema. +@end itemize") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-gopkg-in-yaml-v3): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ef0287ff29..5217bc383d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7689,3 +7689,29 @@ GraphQL API v4. It focuses on the following things: @end itemize") (license license:expat))) +(define-public go-gopkg-in-yaml-v3 + (package + (name "go-gopkg-in-yaml-v3") + (version "3.0.0-20210107192922-496545a6307b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v3") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06f4lnrp494wqaygv09dggr2dwf3z2bawqhnlnnwiamg5y787k4g")))) + (build-system go-build-system) + (arguments '(#:import-path "gopkg.in/yaml.v3")) + (native-inputs + `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) + (home-page "https://gopkg.in/yaml.v3") + (synopsis "YAML support for the Go language") + (description "This library enables Go programs to comfortably encode and +decode YAML values. It is based on a pure Go port of the well-known libyaml C +library to parse and generate YAML data quickly and reliably.") + (license (list license:expat + license:asl2.0)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-graphql): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5217bc383d..d6e5494c79 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7715,3 +7715,27 @@ library to parse and generate YAML data quickly and reliably.") (license (list license:expat license:asl2.0)))) +(define-public go-github-com-shurcool-graphql + (package + (name "go-github-com-shurcool-graphql") + (version "0.0.0-20200928012149-18c5c3165e3a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/graphql.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0psxc2q3qsh1lfag11m2gz54fzzvlss5znyf34aars94igsjywzx")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/shurcooL/graphql")) + (native-inputs + `(("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://github.com/shurcooL/graphql") + (synopsis "GraphQL client implementation") + (description "This package provides a GraphQL client implementation.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-shurcool-graphql): New variable. --- gnu/packages/golang.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d6e5494c79..870a9628df 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7739,3 +7739,21 @@ library to parse and generate YAML data quickly and reliably.") (description "This package provides a GraphQL client implementation.") (license license:expat))) +;; GitHub's fork of go-github-com-shurcool-graphql, used by the 'gh' CLI tool +(define-public go-github-com-cli-shurcool-graphql + (package + (inherit go-github-com-shurcool-graphql) + (name "go-github-com-cli-shurcool-graphql") + ;; Use the commit from the 'named-queries' branch + (version "0.0.0-20200707151639-0f7232a2bf7e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/shurcooL-graphql.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19dv1zprs9zv5gnwql29r7lym08gh2jwkz0w0f62823b57m1rjp6")))) + (home-page "https://github.com/cli/shurcooL-graphql"))) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-charmbracelet-glamour)[native-inputs]: Move some packages from here... [propagated-inputs]: ...to here. --- gnu/packages/golang.scm | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d9988cd7ad..05103e790f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -5805,25 +5805,27 @@ which produce colorized output using github.com/fatih/color.") (arguments `(#:import-path "github.com/charmbracelet/glamour")) (native-inputs + `(("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth) + ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv) + ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty))) + ;; Needed for 'gh' to build + (propagated-inputs `(("go-github-com-alecthomas-chroma" ,go-github-com-alecthomas-chroma) + ("go-github-com-google-goterm" ,go-github-com-google-goterm) + ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur) ("go-github-com-danwakefield-fnmatch" ,go-github-com-danwakefield-fnmatch) - ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2) - ("go-github-com-microcosm-cc-bluemonday" ,go-github-com-microcosm-cc-bluemonday) ("go-github-com-chris-ramon-douceur" ,go-github-com-chris-ramon-douceur) - ("go-github-com-aymerick-douceur" ,go-github-com-aymerick-douceur) ("go-github-com-gorilla-css" ,go-github-com-gorilla-css) + ("go-golang-org-colorful" ,go-golang-org-colorful) + ("go-golang-org-x-net" ,go-golang-org-x-net) ("go-github-com-muesli-reflow-ansi" ,go-github-com-muesli-reflow-ansi) + ("go-github-com-microcosm-cc-bluemonday" ,go-github-com-microcosm-cc-bluemonday) ("go-github-com-muesli-reflow-wordwrap" ,go-github-com-muesli-reflow-wordwrap) + ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark) + ("go-github-com-dlclark-regexp2" ,go-github-com-dlclark-regexp2) ("go-github-com-muesli-reflow-indent" ,go-github-com-muesli-reflow-indent) ("go-github-com-muesli-reflow-padding" ,go-github-com-muesli-reflow-padding) - ("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth) - ("go-github-com-muesli-termenv" ,go-github-com-muesli-termenv) - ("go-github-com-google-goterm" ,go-github-com-google-goterm) - ("go-golang-org-colorful" ,go-golang-org-colorful) - ("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty) - ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter) - ("go-github-com-yuin-goldmark" ,go-github-com-yuin-goldmark) - ("go-golang-org-x-net" ,go-golang-org-x-net))) + ("go-github-com-olekukonko-tablewriter" ,go-github-com-olekukonko-tablewriter))) (home-page "https://github.com/charmbracelet/glamour/") (synopsis "Write handsome command-line tools with glamour") (description "@code{glamour} lets you render markdown documents and -- 2.31.1
* gnu/packages/golang.scm (go-github-com-hinshun-vt10x): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 05103e790f..52eb6e4882 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7036,3 +7036,27 @@ simplifications, and enforces style rules.") "This package provides a library for fast, structured, leveled logging in Go.") (license license:expat))) + +(define-public go-github-com-hinshun-vt10x + (package + (name "go-github-com-hinshun-vt10x") + (version "0.0.0-20180809195222-d55458df857c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hinshun/vt10x.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vwsp5iii7pf4na8pkd7cn3bawkwnsimkv1sysy7bslclg5jm370")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hinshun/vt10x")) + (home-page "https://github.com/hinshun/vt10x") + (synopsis "vt10x terminal emulation backend") + (description "This package is a vt10x terminal emulation backend. It has +larged been influenced by st, rxvt, xterm, and iTerm as reference.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kr-pty): New variable. --- This has been deprecated by upstream, but is needed to build 'gh'. gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 60257ff84e..19b4d69bf7 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7082,3 +7082,28 @@ larged been influenced by st, rxvt, xterm, and iTerm as reference.") (description "Pty is a Go package for using Unix pseudo-terminals.") (license license:expat))) +;; Deprecated in favor of 'go-github-com-creack-pty', but needed by 'gh' +(define-public go-github-com-kr-pty + (hidden-package + (package + (name "go-github-com-kr-pty") + (version "1.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kr/pty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name "go-github-com-kr-pty" version)) + (sha256 + (base32 + "1vcl6f90n0f8s8b4fyh0832ilybjqcypqyj233lqj1hx62fvgdbk")))) + (build-system go-build-system) + (arguments '(#:import-path "github.com/kr/pty")) + (propagated-inputs + `(("go-github-com-creack-pty" ,go-github-com-creack-pty))) + (home-page "https://github.com/kr/pty") + (synopsis "PTY interface for Go") + (description "Pty is a Go package for using Unix pseudo-terminals.") + (license license:expat)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-creack-pty): New variable. --- gnu/packages/golang.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 52eb6e4882..60257ff84e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7060,3 +7060,25 @@ Go.") larged been influenced by st, rxvt, xterm, and iTerm as reference.") (license license:expat))) +(define-public go-github-com-creack-pty + (package + (name "go-github-com-creack-pty") + (version "1.1.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creack/pty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dwhch53vqxpnbiqvfa27cliabx9ma2m4dax4adlrz8rami4sakw")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/creack/pty")) + (home-page "https://github.com/creack/pty") + (synopsis "PTY interface for Go") + (description "Pty is a Go package for using Unix pseudo-terminals.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-netflix-go-expect): New variable. --- gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 19b4d69bf7..e2ab99a334 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7107,3 +7107,33 @@ larged been influenced by st, rxvt, xterm, and iTerm as reference.") (description "Pty is a Go package for using Unix pseudo-terminals.") (license license:expat)))) +(define-public go-github-com-netflix-go-expect + (package + (name "go-github-com-netflix-go-expect") + (version "0.0.0-20201125194554-85d881c3777e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Netflix/go-expect.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01s59hsdwy2nngngcgzyhncys56pdgzr6lff7k8kjrh26zk6pdv5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/Netflix/go-expect")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-kr-pty" ,go-github-com-kr-pty))) + (home-page + "https://github.com/Netflix/go-expect") + (synopsis "Expect-like library to automate control of terminal programs") + (description "This package provides an expect-like interface to automate +control of applications. It is unlike expect in that it does not spawn or +manage process lifecycle. This package only focuses on expecting output and +sending input through it's pseudoterminal.") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-alecaivazis-survey-v2): New variable. --- gnu/packages/golang.scm | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e2ab99a334..80befc8c45 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages textutils) + #:use-module ((gnu packages syncthing) #:select (go-github-com-kballard-go-shellquote)) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (ice-9 match) @@ -7137,3 +7138,51 @@ manage process lifecycle. This package only focuses on expecting output and sending input through it's pseudoterminal.") (license license:asl2.0))) +(define-public go-github-com-alecaivazis-survey-v2 + (package + (name "go-github-com-alecaivazis-survey-v2") + (version "2.2.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AlecAivazis/survey.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jw4ka44q7a2885fil4qnb56mdlixmy5ysd68i5h5dblbq4r61l1")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AlecAivazis/survey")) + (native-inputs + `(("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-crypto" + ,go-golang-org-x-crypto) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-pmezard-go-difflib" + ,go-github-com-pmezard-go-difflib) + ("go-github-com-mgutz-ansi" + ,go-github-com-mgutz-ansi) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-kr-pty" ,go-github-com-kr-pty) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-hinshun-vt10x" + ,go-github-com-hinshun-vt10x) + ("go-github-com-davecgh-go-spew" + ,go-github-com-davecgh-go-spew) + ("go-github-com-netflix-go-expect" + ,go-github-com-netflix-go-expect))) + (home-page + "https://github.com/AlecAivazis/survey") + (synopsis "Build interactive prompts on terminals") + (description "This is a library for building interactive prompts on +terminals supporting ANSI escape sequences.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-makenowjust-heredoc): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 80befc8c45..9f8037218f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7186,3 +7186,27 @@ sending input through it's pseudoterminal.") terminals supporting ANSI escape sequences.") (license license:expat))) +(define-public go-github-com-makenowjust-heredoc + (package + (name "go-github-com-makenowjust-heredoc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MakeNowJust/heredoc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18f21zm8n2wlnkz1ylw8rcxmqxyv2rlz8749yfqggm2m0m2884pj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/MakeNowJust/heredoc")) + (home-page + "https://github.com/MakeNowJust/heredoc") + (synopsis "Here-documents with keeping indent") + (description "This package provides the Here-document with keeping +indent.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-briandowns-spinner): New variable. --- gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9f8037218f..26cbd7edad 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7210,3 +7210,32 @@ terminals supporting ANSI escape sequences.") indent.") (license license:expat))) +(define-public go-github-com-briandowns-spinner + (package + (name "go-github-com-briandowns-spinner") + (version "1.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/briandowns/spinner.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n6h2iqq5anqg9p2pwz684vhfjx0944rrw53x2cn5m1dybp6rbwx")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/briandowns/spinner")) + (native-inputs + `(("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-fatih-color" + ,go-github-com-fatih-color))) + (home-page + "https://github.com/briandowns/spinner") + (synopsis "Progress indicator for any terminal application") + (description "This is a simple package to add a spinner or progress +indicator to any terminal application. ") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-browser): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 26cbd7edad..92ec492cc6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7239,3 +7239,28 @@ indent.") indicator to any terminal application. ") (license license:asl2.0))) +(define-public go-github-com-cli-browser + (package + (name "go-github-com-cli-browser") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/browser.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13z27cc0a184bhprspwclzbvrzsrfd5qyk5r2djfx5nm85igxr0n")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/browser")) + (native-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/cli/browser") + (synopsis "Helpers to open URLs, or files in the default web browser") + (description "This library provides helpers to open URLs, readers, or +files in the system default web browser.") + (license license:bsd-2))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-oauth): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 92ec492cc6..a2c203dafa 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7264,3 +7264,29 @@ indicator to any terminal application. ") files in the system default web browser.") (license license:bsd-2))) +(define-public go-github-com-cli-oauth + (package + (name "go-github-com-cli-oauth") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/oauth.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b96cl53qc40xsgpxpy9qkrib4a4g02a4sq442qp8749qab5ljhs")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/oauth")) + (native-inputs + `(("go-github-com-cli-browser" + ,go-github-com-cli-browser))) + (home-page "https://github.com/cli/oauth") + (synopsis "Perform OAuth Device flow and Web application flow in Go") + (description "This is a library for performing OAuth Device flow and Web +application flow in Go client apps.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-safeexec): New variable. --- This is only used on Windows, but is needed by the 'gh' package so it is marked as hidden. gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a2c203dafa..9265083978 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7290,3 +7290,28 @@ files in the system default web browser.") application flow in Go client apps.") (license license:expat))) +;; Needed by the 'gh' GitHub CLI tool +(define-public go-github-com-cli-safeexec + (hidden-package + (package + (name "go-github-com-cli-safeexec") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/safeexec.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q80va3721dyw33lrnv7x3gd66kcnbsm38dv3lk7xqhii2adawmk")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/safeexec")) + (home-page "https://github.com/cli/safeexec") + (synopsis "Safer alternative to exec.LookPath() on Windows") + (description "This library provides a safer alternative to +@code{exec.LookPath()} on Windows.") + (license license:bsd-2)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-russross-blackfriday-v2): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9265083978..c7f2cd7083 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7315,3 +7315,29 @@ application flow in Go client apps.") @code{exec.LookPath()} on Windows.") (license license:bsd-2)))) +(define-public go-github-com-russross-blackfriday-v2 + (package + (name "go-github-com-russross-blackfriday-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/russross/blackfriday.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0d1rg1drrfmabilqjjayklsz5d0n3hkf979sr3wsrw92bfbkivs7")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/russross/blackfriday")) + (home-page + "https://github.com/russross/blackfriday") + (synopsis "Markdown processor implemented in Go") + (description "Blackfriday is a Markdown processor implemented in Go. It +is paranoid about its input (so you can safely feed it user-supplied data), it +is fast, it supports common extensions (tables, smart punctuation +substitutions, etc.), and it is safe for all utf-8 (unicode) input.") + (license license:bsd-2))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-sanitized-anchor-name): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c7f2cd7083..adeaa7e88d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7341,3 +7341,29 @@ is fast, it supports common extensions (tables, smart punctuation substitutions, etc.), and it is safe for all utf-8 (unicode) input.") (license license:bsd-2))) +(define-public go-github-com-shurcool-sanitized-anchor-name + (package + (name "go-github-com-shurcool-sanitized-anchor-name") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/sanitized_anchor_name.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/shurcooL/sanitized_anchor_name")) + (home-page + "https://github.com/shurcooL/sanitized_anchor_name") + (synopsis "Create sanitized anchor names") + (description "This package provides a function to create sanitized anchor +names. Its logic can be reused by multiple packages to create interoperable +anchor names and links to those anchors.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cpuguy83-go-md2man-v2): New variable. --- gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index adeaa7e88d..1ba938715e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7367,3 +7367,33 @@ names. Its logic can be reused by multiple packages to create interoperable anchor names and links to those anchors.") (license license:expat))) +(define-public go-github-com-cpuguy83-go-md2man-v2 + (package + (name "go-github-com-cpuguy83-go-md2man-v2") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cpuguy83/go-md2man.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cpuguy83/go-md2man")) + (native-inputs + `(("go-github-com-shurcool-sanitized-anchor-name" + ,go-github-com-shurcool-sanitized-anchor-name) + ("go-github-com-russross-blackfriday-v2" + ,go-github-com-russross-blackfriday-v2) + ("go-github-com-pmezard-go-difflib" + ,go-github-com-pmezard-go-difflib))) + (home-page + "https://github.com/cpuguy83/go-md2man") + (synopsis "Convert Markdown into Man pages") + (description "This package converts Markdown into Roff Man pages.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-gabriel-vasile-mimetype): New variable. --- gnu/packages/golang.scm | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 11eb330d6d..8e942fa955 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7420,3 +7420,50 @@ anchor names and links to those anchors.") Go. It lets you use emoji characters in strings.") (license license:expat))) +(define-public go-github-com-gabriel-vasile-mimetype + (package + (name "go-github-com-gabriel-vasile-mimetype") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gabriel-vasile/mimetype.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ysb0pjhyr9b7q2y39b5hpwsaidgfl42gd07yj34mgmb9wfjb7ch")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/gabriel-vasile/mimetype" + ;; FIXME: Cannot open 'supported_mimes.md' + #:tests? #f + #:phases + (modify-phases %standard-phases + ;; The files are read-only + (add-before 'reset-gzip-timestamps 'make-gz-files-writable + (lambda* (#:key outputs #:allow-other-keys) + (for-each make-file-writable + (find-files (string-append (assoc-ref outputs "out")) + ".*\\.gz$")) + #t))))) + + (home-page + "https://github.com/gabriel-vasile/mimetype") + (synopsis "A fast golang library for MIME type and file extension detection") + (description "This is a package for detecting MIME types and extensions +based on magic numbers. Features include + +@itemize +@item fast and precise MIME type and file extension detection +@item long list of supported MIME types +@item common file formats are prioritized +@item small and simple API +@item handles MIME type aliases +@item thread safe +@item low memory usage, besides the file header +@end itemize") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-enescakir-emoji): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 1ba938715e..11eb330d6d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7397,3 +7397,26 @@ anchor names and links to those anchors.") (description "This package converts Markdown into Roff Man pages.") (license license:expat))) +(define-public go-github-com-enescakir-emoji + (package + (name "go-github-com-enescakir-emoji") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/enescakir/emoji.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xnisfsn94izcjhl4xywd971av4b5v1n67figp16wh443lhihxky")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/enescakir/emoji")) + (home-page "https://github.com/enescakir/emoji") + (synopsis "Minimalistic emoji package for Go") + (description "This package provides a minimalistic emoji library for +Go. It lets you use emoji characters in strings.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-google-shlex): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8e942fa955..fafe3fc226 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7467,3 +7467,26 @@ based on magic numbers. Features include @end itemize") (license license:expat))) +(define-public go-github-com-google-shlex + (package + (name "go-github-com-google-shlex") + (version "0.0.0-20191202100458-e7afc7fbc510") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/shlex.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14z8hqyik910wk2qwnzgz8mjsmiamxa0pj55ahbv0jx6j3dgvzfm")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/shlex")) + (home-page "https://github.com/google/shlex") + (synopsis "Simple lexer for Go") + (description "This library provides is a simple lexer for Go that supports +shell-style quoting, commenting, and escaping.") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-henvic-httpretty): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fafe3fc226..7a2abc92f9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7490,3 +7490,26 @@ based on magic numbers. Features include shell-style quoting, commenting, and escaping.") (license license:asl2.0))) +(define-public go-github-com-henvic-httpretty + (package + (name "go-github-com-henvic-httpretty") + (version "0.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/henvic/httpretty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jbnj1x8wribayx65ssxigs9p88pi0cxg36h8qhqvqz1pqiygksa")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/henvic/httpretty")) + (home-page "https://github.com/henvic/httpretty") + (synopsis "Print the HTTP requests you make on your terminal") + (description "This packages prints the HTTP requests you make with Go +pretty on your terminal.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-go-flags): New variable. --- gnu/packages/golang.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7a2abc92f9..2750443484 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7513,3 +7513,36 @@ shell-style quoting, commenting, and escaping.") pretty on your terminal.") (license license:expat))) +(define-public go-github-com-itchyny-go-flags + (package + (name "go-github-com-itchyny-go-flags") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/go-flags.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qfh7gn95aldlsigk72jl87npmwvx15kb7df1100d6j0nbakd8b5")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/itchyny/go-flags" + ;; Unable to find man page + #:tests? #f)) + (native-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/itchyny/go-flags") + (synopsis "Go library for parsing command line arguments") + (description "This library provides similar functionality to the builtin +flag library of Go, but provides much more functionality. + +Package flags provides an extensive command line option parser. The flags +package is similar in functionality to the go builtin flag package but +provides more options and uses reflection to provide a convenient and succinct +way of specifying command line options.") + (license license:bsd-3))) + -- 2.31.1
* gnu/packages/version-control.scm (gh): New variable. --- gnu/packages/version-control.scm | 92 ++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e7fa6e6777..1d3f8d1b7c 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -118,6 +118,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages swig) #:use-module (gnu packages sync) + #:use-module ((gnu packages syncthing) #:select (go-github-com-kballard-go-shellquote)) #:use-module (gnu packages tcl) #:use-module (gnu packages textutils) #:use-module (gnu packages time) @@ -3021,6 +3022,97 @@ commit message side by side If several repos are related, it helps to see their status together.") (license license:expat)))) +(define-public gh + (package + (name "gh") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/cli.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "009jh1i1ji7d773ismifdw4qvwlb8s1zn14d0n84j9h3n0hyynbc")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/cli/cli/cmd/gh" + #:unpack-path + "github.com/cli/cli")) + (native-inputs + `(("go" ,go))) + (inputs + `(("go-github-com-cli-shurcool-graphql" + ,go-github-com-cli-shurcool-graphql) + ("go-gopkg-in-yaml-v3" ,go-gopkg-in-yaml-v3) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-sync" ,go-golang-org-x-sync) + ("go-golang-org-x-crypto" + ,go-golang-org-x-crypto) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-spf13-pflag" + ,go-github-com-spf13-pflag) + ("go-github-com-spf13-cobra" + ,go-github-com-spf13-cobra) + ("go-github-com-shurcool-githubv4" + ,go-github-com-shurcool-githubv4) + ("go-github-com-rivo-uniseg" + ,go-github-com-rivo-uniseg) + ("go-github-com-muesli-termenv" + ,go-github-com-muesli-termenv) + ("go-github-com-mitchellh-go-homedir" + ,go-github-com-mitchellh-go-homedir) + ("go-github-com-mgutz-ansi" + ,go-github-com-mgutz-ansi) + ("go-github-com-mattn-go-runewidth" + ,go-github-com-mattn-go-runewidth) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-itchyny-gojq" + ,go-github-com-itchyny-gojq) + ("go-github-com-henvic-httpretty" + ,go-github-com-henvic-httpretty) + ("go-github-com-hashicorp-go-version" + ,go-github-com-hashicorp-go-version) + ("go-github-com-google-shlex" + ,go-github-com-google-shlex) + ("go-github-com-google-go-cmp-cmp" + ,go-github-com-google-go-cmp-cmp) + ("go-github-com-gabriel-vasile-mimetype" + ,go-github-com-gabriel-vasile-mimetype) + ("go-github-com-enescakir-emoji" + ,go-github-com-enescakir-emoji) + ("go-github-com-cpuguy83-go-md2man-v2" + ,go-github-com-cpuguy83-go-md2man-v2) + ("go-github-com-cli-safeexec" + ,go-github-com-cli-safeexec) + ("go-github-com-cli-oauth" + ,go-github-com-cli-oauth) + ("go-github-com-cli-browser" + ,go-github-com-cli-browser) + ("go-github-com-briandowns-spinner" + ,go-github-com-briandowns-spinner) + ("go-github-com-makenowjust-heredoc" + ,go-github-com-makenowjust-heredoc) + ("go-github-com-alecaivazis-survey-v2" + ,go-github-com-alecaivazis-survey-v2) + ("go-github-com-charmbracelet-glamour" + ,go-github-com-charmbracelet-glamour))) + (home-page "https://github.com/cli/cli") + (synopsis "GitHub CLI tool") + (description "@command{gh} is GitHub on the command line. It brings pull +requests, issues, and other GitHub concepts to the terminal next to where you +are already working with Git and your code.") + (license license:expat))) + (define-public ghq (package (name "ghq") -- 2.31.1
Hi, Am Donnerstag, den 01.04.2021, 09:51 +0200 schrieb Xinglu Chen: > This patchset adds the 'gh' package, a CLI interface to GitHub. The > Go > importer did most of the work. :) I am not experienced with Go, so I can't comment on the rest too much, but I wanted to point out, that single, double and triple letter packages are (imo rightly) frowned upon in the Guix project. Considering, that this is the *official* Github CLI tool, a name like "github-cli" would probably make more sense here. > Some things to note: > > - When building'gh', I couldn't get > 'go-github-com-charmbracelet-glamour' to build without moving some > native-inputs to propagated-inputs, though, if I was only building > 'go-github-com-charmbracelet-glamour' it would build without moving > things to propagated-inputs. I am not sure why this happens. Perhaps you need to add those native inputs as native inputs to gh as well? Try adding its native inputs to gh and see whether that changes something. > - I found that (gnu packages syncthing) contained quite a few Go > packages, I think it would make sense to move those packages to > (gnu > packages golang), and move the Syncthing package to (gnu packages > sync). This would be done in a separate commit though. Indeed, that should probably done in a separate set. > - The patch marked with 'D' adds a package which has been deprecated > by > upstream, but it is still needed by one of the packages that 'gh' > depend on. I have marked it as a hidden package, let me know if > this > is the right decision. Yes, we do so for other packages as well, that require outdated or otherwise modified versions, that should not show up in user profiles unless they really, really want to and use manifests to achieve their goals. > - The patch marked with 'W' adds a package which is needed by 'gh', > but > only used on Windows. It is still Free Software (BSD-2), but I > have > also marked it as hidden. This is at least in some sense an acceptable workaround, but how large would the effort be to outright drop references to this package, given that it's already not "actively" being used? Regards, Leo
On Thu, Apr 01 2021, Leo Prikler wrote: > Hi, > > Am Donnerstag, den 01.04.2021, 09:51 +0200 schrieb Xinglu Chen: >> This patchset adds the 'gh' package, a CLI interface to GitHub. The >> Go importer did most of the work. :) > I am not experienced with Go, so I can't comment on the rest too much, > but I wanted to point out, that single, double and triple letter > packages are (imo rightly) frowned upon in the Guix project. > Considering, that this is the *official* Github CLI tool, a name like > "github-cli" would probably make more sense here. Oh yeah, I saw the thread on guix-devel, I should have thought of this. >> - When building'gh', I couldn't get >> 'go-github-com-charmbracelet-glamour' to build without moving some >> native-inputs to propagated-inputs, though, if I was only building >> 'go-github-com-charmbracelet-glamour' it would build without moving >> things to propagated-inputs. I am not sure why this happens. > Perhaps you need to add those native inputs as native inputs to gh as > well? Try adding its native inputs to gh and see whether that changes > something. I will try and report back. >> - The patch marked with 'D' adds a package which has been deprecated >> by upstream, but it is still needed by one of the packages that 'gh' >> depend on. I have marked it as a hidden package, let me know if this >> is the right decision. > Yes, we do so for other packages as well, that require outdated or > otherwise modified versions, that should not show up in user profiles > unless they really, really want to and use manifests to achieve their > goals. Good to know, I will have to mark 'go-github-com-cli-shurcool-graphql' as hidden as well since it's GitHubs' fork of 'go-github-com-shurcool-graphql' and most likely only used by 'gh'. >> - The patch marked with 'W' adds a package which is needed by 'gh', >> but only used on Windows. It is still Free Software (BSD-2), but I >> have also marked it as hidden. > This is at least in some sense an acceptable workaround, but how large > would the effort be to outright drop references to this package, given > that it's already not "actively" being used? I am not familiar with the Go ecosystem so I don't know if this will be possible, but I will look into it. Thank you for the rewiew!
Hi,
Am Donnerstag, den 01.04.2021, 16:49 +0200 schrieb Xinglu Chen:
> > > - The patch marked with 'D' adds a package which has been
> > > deprecated
> > > by upstream, but it is still needed by one of the packages that
> > > 'gh'
> > > depend on. I have marked it as a hidden package, let me know
> > > if this
> > > is the right decision.
> > Yes, we do so for other packages as well, that require outdated or
> > otherwise modified versions, that should not show up in user
> > profiles
> > unless they really, really want to and use manifests to achieve
> > their
> > goals.
>
> Good to know, I will have to mark 'go-github-com-cli-shurcool-
> graphql'
> as hidden as well since it's GitHubs' fork of
> 'go-github-com-shurcool-graphql' and most likely only used by 'gh'.
Just to clarify, I don't think that hiding will be necessary for this
package (since it differs by name), but it might still be a good idea
to hide it if you have a justification for doing so. That said, your
judgement on this matter is probably going to be better than mine.
Regards,
Leo
On Thu, Apr 01 2021, Xinglu Chen wrote: >>> - When building'gh', I couldn't get >>> 'go-github-com-charmbracelet-glamour' to build without moving some >>> native-inputs to propagated-inputs, though, if I was only building >>> 'go-github-com-charmbracelet-glamour' it would build without moving >>> things to propagated-inputs. I am not sure why this happens. >> Perhaps you need to add those native inputs as native inputs to gh as >> well? Try adding its native inputs to gh and see whether that changes >> something. > > I will try and report back. Adding the packages as native-inputs for github-cli fixed the problem. Thank you! >>> - The patch marked with 'W' adds a package which is needed by 'gh', >>> but only used on Windows. It is still Free Software (BSD-2), but I >>> have also marked it as hidden. >> This is at least in some sense an acceptable workaround, but how large >> would the effort be to outright drop references to this package, given >> that it's already not "actively" being used? > > I am not familiar with the Go ecosystem so I don't know if this will be > possible, but I will look into it. Compiling github-cli without the package doesn't work, and the package is used in multiple places in the source code. I don't really know what we can do here. Should I open an issue on their GitHub page, or just leave it as is?
Am Donnerstag, den 01.04.2021, 18:25 +0200 schrieb Xinglu Chen: > On Thu, Apr 01 2021, Xinglu Chen wrote: > > > > > - When building'gh', I couldn't get > > > > 'go-github-com-charmbracelet-glamour' to build without moving > > > > some > > > > native-inputs to propagated-inputs, though, if I was only > > > > building > > > > 'go-github-com-charmbracelet-glamour' it would build without > > > > moving > > > > things to propagated-inputs. I am not sure why this happens. > > > Perhaps you need to add those native inputs as native inputs to > > > gh as > > > well? Try adding its native inputs to gh and see whether that > > > changes > > > something. > > > > I will try and report back. > > Adding the packages as native-inputs for github-cli fixed the > problem. > Thank you! You're welcome. > > > > - The patch marked with 'W' adds a package which is needed by > > > > 'gh', > > > > but only used on Windows. It is still Free Software (BSD-2), > > > > but I > > > > have also marked it as hidden. > > > This is at least in some sense an acceptable workaround, but how > > > large > > > would the effort be to outright drop references to this package, > > > given > > > that it's already not "actively" being used? > > > > I am not familiar with the Go ecosystem so I don't know if this > > will be > > possible, but I will look into it. > > Compiling github-cli without the package doesn't work, and the > package > is used in multiple places in the source code. I don't really know > what > we can do here. Should I open an issue on their GitHub page, or just > leave it as is? For now, I don't think this is going to be a blocking issue, as long as the package and the input are appropriately marked, e.g. with comments, and we make sure not to endorse the Microsoft OS through them. As to how we might handle this, we could do our own investigations into dropping the dependency, but asking a question (make sure to tag it as such) should work as well. Also be clear, that the goal is not necessarily to remove the dependency altogether, but rather make it an optional one. After doing some quick investigations myself, I think the following pair of substitute*s might work: (("github.com/cli/safeexec") "os/exec") (("safeexec") "exec") Regards, Leo
On Thu, 1 Apr 2021, Leo Prikler wrote: > After doing some quick investigations myself, I think the following > pair of substitute*s might work: > (("github.com/cli/safeexec") "os/exec") > (("safeexec") "exec") I happened to be reading the Go blog post about command path security [0]. I haven't looked at it very closely, but I'm hopeful that future gh versions may be able to get safeexec-like behavior from the Go standard library. [0] https://blog.golang.org/path-security Best, Jack
On Thu, Apr 01 2021, Leo Prikler wrote: >> Compiling github-cli without the package doesn't work, and the >> package is used in multiple places in the source code. I don't >> really know what we can do here. Should I open an issue on their >> GitHub page, or just leave it as is? > For now, I don't think this is going to be a blocking issue, as long as > the package and the input are appropriately marked, e.g. with comments, > and we make sure not to endorse the Microsoft OS through them. > As to how we might handle this, we could do our own investigations into > dropping the dependency, but asking a question (make sure to tag it as > such) should work as well. Also be clear, that the goal is not > necessarily to remove the dependency altogether, but rather make it an > optional one. > > After doing some quick investigations myself, I think the following > pair of substitute*s might work: > (("github.com/cli/safeexec") "os/exec") > (("safeexec") "exec") Thank you for the pointer, I managed to get it to work with the following snippet: #+begin_src scheme (add-after 'unpack 'remove-safeexec (lambda* (#:key outputs #:allow-other-keys) (let ((prefix-file (lambda (file) (string-append "src/github.com/cli/cli/" file)))) ;; 'github.com/cli/safeexec' is only used for Windows, we ;; replace it with the regular 'os/exec'. See ;; <https://issues.guix.gnu.org/47539> for discussion. (substitute* (map prefix-file '("pkg/cmd/alias/expand/expand.go" "script/build.go")) (("github.com/cli/safeexec") "os/exec") (("safeexec") "exec")) ;; These files have already imported 'os/exec', meaning that ;; 'os/exec' would get imported twice, causing an error. ;; Instead, we just remove the 'github.com/cli/safeexec'. (substitute* (map prefix-file '("cmd/gh/main.go" "git/git.go" "pkg/iostreams/iostreams.go" "pkg/cmd/auth/shared/ssh_keys.go" "pkg/cmd/pr/checkout/checkout.go" "pkg/cmdutil/web_browser.go" "pkg/surveyext/editor_manual.go")) (("\"github.com/cli/safeexec\"") "") (("safeexec") "exec"))))) #+end_src I also used it to open an issue and everything worked as expected.
Am Donnerstag, den 01.04.2021, 20:05 +0200 schrieb Xinglu Chen:
> On Thu, Apr 01 2021, Leo Prikler wrote:
>
> > > Compiling github-cli without the package doesn't work, and the
> > > package is used in multiple places in the source code. I don't
> > > really know what we can do here. Should I open an issue on their
> > > GitHub page, or just leave it as is?
> > For now, I don't think this is going to be a blocking issue, as
> > long as
> > the package and the input are appropriately marked, e.g. with
> > comments,
> > and we make sure not to endorse the Microsoft OS through them.
> > As to how we might handle this, we could do our own investigations
> > into
> > dropping the dependency, but asking a question (make sure to tag it
> > as
> > such) should work as well. Also be clear, that the goal is not
> > necessarily to remove the dependency altogether, but rather make it
> > an
> > optional one.
> >
> > After doing some quick investigations myself, I think the following
> > pair of substitute*s might work:
> > (("github.com/cli/safeexec") "os/exec")
> > (("safeexec") "exec")
>
> Thank you for the pointer, I managed to get it to work with the
> following snippet:
>
> #+begin_src scheme
> (add-after 'unpack 'remove-safeexec
> (lambda* (#:key outputs #:allow-other-keys)
> (let ((prefix-file (lambda (file)
> (string-append "src/github.com/cli/cli/"
> file))))
> ;; 'github.com/cli/safeexec' is only used for Windows,
> we
> ;; replace it with the regular 'os/exec'. See
> ;; <https://issues.guix.gnu.org/47539> for discussion.
> (substitute* (map prefix-file
> '("pkg/cmd/alias/expand/expand.go"
> "script/build.go"))
> (("github.com/cli/safeexec") "os/exec")
> (("safeexec") "exec"))
> ;; These files have already imported 'os/exec',
> meaning that
> ;; 'os/exec' would get imported twice, causing an
> error.
> ;; Instead, we just remove the
> 'github.com/cli/safeexec'.
> (substitute* (map prefix-file
> '("cmd/gh/main.go"
> "git/git.go"
> "pkg/iostreams/iostreams.go"
> "pkg/cmd/auth/shared/ssh_keys.go"
> "pkg/cmd/pr/checkout/checkout.go"
> "pkg/cmdutil/web_browser.go"
> "pkg/surveyext/editor_manual.go"))
> (("\"github.com/cli/safeexec\"") "")
> (("safeexec") "exec")))))
> #+end_src
This should probably be implemented with directory excursions, but
other than that if it works for you, then LGTM :)
On Thu, Apr 01 2021, Leo Prikler wrote:
> Am Donnerstag, den 01.04.2021, 20:05 +0200 schrieb Xinglu Chen:
>>
>> Thank you for the pointer, I managed to get it to work with the
>> following snippet:
>>
>> #+begin_src scheme
>> (add-after 'unpack 'remove-safeexec
>> (lambda* (#:key outputs #:allow-other-keys)
>> (let ((prefix-file (lambda (file)
>> (string-append "src/github.com/cli/cli/"
>> file))))
>> ;; 'github.com/cli/safeexec' is only used for Windows,
>> we
>> ;; replace it with the regular 'os/exec'. See
>> ;; <https://issues.guix.gnu.org/47539> for discussion.
>> (substitute* (map prefix-file
>> '("pkg/cmd/alias/expand/expand.go"
>> "script/build.go"))
>> (("github.com/cli/safeexec") "os/exec")
>> (("safeexec") "exec"))
>> ;; These files have already imported 'os/exec',
>> meaning that
>> ;; 'os/exec' would get imported twice, causing an
>> error.
>> ;; Instead, we just remove the
>> 'github.com/cli/safeexec'.
>> (substitute* (map prefix-file
>> '("cmd/gh/main.go"
>> "git/git.go"
>> "pkg/iostreams/iostreams.go"
>> "pkg/cmd/auth/shared/ssh_keys.go"
>> "pkg/cmd/pr/checkout/checkout.go"
>> "pkg/cmdutil/web_browser.go"
>> "pkg/surveyext/editor_manual.go"))
>> (("\"github.com/cli/safeexec\"") "")
>> (("safeexec") "exec")))))
>> #+end_src
> This should probably be implemented with directory excursions, but
> other than that if it works for you, then LGTM :)
Ah, I didn't know about that. Thanks for pointing this out. :)
* gnu/packages/golang.scm (go-github-com-itchyny-timefmt-go): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6707b15273..9023816f59 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7519,3 +7519,27 @@ provides more options and uses reflection to provide a convenient and succinct way of specifying command line options.") (license license:bsd-3))) +(define-public go-github-com-itchyny-timefmt-go + (package + (name "go-github-com-itchyny-timefmt-go") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/timefmt-go.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hfpvmbmzp5zbzz84p030jzd00jclnf4zr16f9r5bbq7xlhncj0z")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/itchyny/timefmt-go")) + (home-page + "https://github.com/itchyny/timefmt-go") + (synopsis "Efficient time formatting library for Go") + (description "This package provides functions for formatting and parsing +date time strings.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-gojq): New variable. --- gnu/packages/golang.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9023816f59..35187a9bb8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7543,3 +7543,41 @@ way of specifying command line options.") date time strings.") (license license:expat))) +(define-public go-github-com-itchyny-gojq + (package + (name "go-github-com-itchyny-gojq") + (version "0.12.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/gojq.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pxm341sgqkscwifpxlkvchz8ix3wivp80p59dv257kaa9diymgz")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/itchyny/gojq")) + (native-inputs + `(("go-gopkg-in-yaml-v3" ,go-gopkg-in-yaml-v3) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-github-com-mattn-go-runewidth" + ,go-github-com-mattn-go-runewidth) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-itchyny-go-flags" + ,go-github-com-itchyny-go-flags) + ("go-github-com-google-go-cmp-cmp" + ,go-github-com-google-go-cmp-cmp))) + (propagated-inputs + `(("go-github-com-itchyny-timefmt-go" + ,go-github-com-itchyny-timefmt-go))) + (home-page "https://github.com/itchyny/gojq") + (synopsis "Pure Go implementation of jq") + (description "This package provides an implementation of @command{jq} +command written in Go language. It is also embedable as a library to other Go +projects.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 35187a9bb8..c86a78cc98 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7581,3 +7581,29 @@ command written in Go language. It is also embedable as a library to other Go projects.") (license license:expat))) +(define-public go-github-com-mattn-go-runewidth + (package + (name "go-github-com-mattn-go-runewidth") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-runewidth.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jh9552ppqvkdfni7x623n0x5mbiaqqhjhmr0zkh28x56k4ysii4")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/mattn/go-runewidth")) + (native-inputs + `(("go-github-com-rivo-uniseg" + ,go-github-com-rivo-uniseg))) + (home-page "https://github.com/mattn/go-runewidth") + (synopsis "Functions to get fixed width of the character or string") + (description "This package provides functions to get fixed width of the +character or string.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-rivo-uniseg): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c86a78cc98..1e6e5e7aa5 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7607,3 +7607,26 @@ projects.") character or string.") (license license:expat))) +(define-public go-github-com-rivo-uniseg + (package + (name "go-github-com-rivo-uniseg") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rivo/uniseg.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/rivo/uniseg")) + (home-page "https://github.com/rivo/uniseg") + (synopsis "Unicode Text Segmentation for Go") + (description "This package implements Unicode Text Segmentation according +to @url{https://unicode.org/reports/tr29/,Unicode Standard Annex #29}.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-githubv4): New variable. --- gnu/packages/golang.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 1e6e5e7aa5..1ee6728a4f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7630,3 +7630,35 @@ character or string.") to @url{https://unicode.org/reports/tr29/,Unicode Standard Annex #29}.") (license license:expat))) +(define-public go-github-com-shurcool-githubv4 + (package + (name "go-github-com-shurcool-githubv4") + (version "0.0.0-20201206200315-234843c633fa") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/githubv4.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jmmjv95vcm9vl5zpvwv77pq3mhf2j2vxc7pj75yfniymp2dh5mi")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/shurcooL/githubv4")) + (native-inputs + `(("go-github-com-shurcooL-graphql" ,go-github-com-shurcool-graphql) + ("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2))) + (home-page "https://github.com/shurcooL/githubv4") + (synopsis "Client library for accessing the GitHub GraphQL API v4") + (description "This package is a client library for accessing the GitHub +GraphQL API v4. It focuses on the following things: + +@itemize +@item Friendly, simple and powerful API. +@item Correctness, high performance and efficiency. +@item Support for all of GitHub GraphQL API v4 via code generation from schema. +@end itemize") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-gopkg-in-yaml-v3): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 1ee6728a4f..2186e023ea 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7662,3 +7662,29 @@ GraphQL API v4. It focuses on the following things: @end itemize") (license license:expat))) +(define-public go-gopkg-in-yaml-v3 + (package + (name "go-gopkg-in-yaml-v3") + (version "3.0.0-20210107192922-496545a6307b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v3") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06f4lnrp494wqaygv09dggr2dwf3z2bawqhnlnnwiamg5y787k4g")))) + (build-system go-build-system) + (arguments '(#:import-path "gopkg.in/yaml.v3")) + (native-inputs + `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) + (home-page "https://gopkg.in/yaml.v3") + (synopsis "YAML support for the Go language") + (description "This library enables Go programs to comfortably encode and +decode YAML values. It is based on a pure Go port of the well-known libyaml C +library to parse and generate YAML data quickly and reliably.") + (license (list license:expat + license:asl2.0)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-graphql): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2186e023ea..f220eca4ac 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7688,3 +7688,27 @@ library to parse and generate YAML data quickly and reliably.") (license (list license:expat license:asl2.0)))) +(define-public go-github-com-shurcool-graphql + (package + (name "go-github-com-shurcool-graphql") + (version "0.0.0-20200928012149-18c5c3165e3a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/graphql.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0psxc2q3qsh1lfag11m2gz54fzzvlss5znyf34aars94igsjywzx")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/shurcooL/graphql")) + (native-inputs + `(("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://github.com/shurcooL/graphql") + (synopsis "GraphQL client implementation") + (description "This package provides a GraphQL client implementation.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-shurcool-graphql): New variable. --- gnu/packages/golang.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index f220eca4ac..4ca2f280f9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7712,3 +7712,22 @@ library to parse and generate YAML data quickly and reliably.") (description "This package provides a GraphQL client implementation.") (license license:expat))) +;; GitHub's fork of go-github-com-shurcool-graphql, used by the 'github-cli' +(define-public go-github-com-cli-shurcool-graphql + (hidden-package + (package + (inherit go-github-com-shurcool-graphql) + (name "go-github-com-cli-shurcool-graphql") + ;; Use the commit from the 'named-queries' branch + (version "0.0.0-20200707151639-0f7232a2bf7e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/shurcooL-graphql.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19dv1zprs9zv5gnwql29r7lym08gh2jwkz0w0f62823b57m1rjp6")))) + (home-page "https://github.com/cli/shurcooL-graphql")))) -- 2.31.1
Changes since v1: - Renamed 'gh' to 'github-cli' to avoid short two or three letter names. - Added a phase in 'github-cli' to remove its dependence on the 'go-github-com-cli-safeexec' package, and I also removed 'go-github-com-cli-safeexec' itself since it is only used on Windows. - Removed 'go-github-com-shurcool-sanitized-anchor-name' because it already existed. Upstream uses '_' instead of '-' in the name, the Go importer didn't convert '_' to '-' so I had to fix it myself without realizing that the package already existed. - Marked 'go-github-com-cli-shurcool-graphql' as a hidden package because it is GitHub's own fork of 'go-github-com-shurcool-graphql', and is only used by 'github-cli'. Xinglu Chen (26): gnu: Add go-github-com-hinshun-vt10x. gnu: Add go-github-com-creack-pty. gnu: Add go-github-com-kr-pty. gnu: Add go-github-com-netflix-go-expect. gnu: Add go-github-com-alecaivazis-survey-v2. gnu: Add go-github-com-makenowjust-heredoc. gnu: Add go-github-com-briandowns-spinner. gnu: Add go-github-com-cli-browser. gnu: Add go-github-com-cli-oauth. gnu: Add go-github-com-cli-safeexec. gnu: Add go-github-com-russross-blackfriday-v2. gnu: Add go-github-com-cpuguy83-go-md2man-v2. gnu: Add go-github-com-enescakir-emoji. gnu: Add go-github-com-gabriel-vasile-mimetype. gnu: Add go-github-com-google-shlex. gnu: Add go-github-com-henvic-httpretty. gnu: Add go-github-com-itchyny-go-flags. gnu: Add go-github-com-itchyny-timefmt-go. gnu: Add go-github-com-itchyny-gojq. gnu: Add go-github-com-mattn-go-runewidth. gnu: Add go-github-com-rivo-uniseg. gnu: Add go-github-com-shurcool-githubv4. gnu: Add go-gopkg-in-yaml-v3. gnu: Add go-github-com-shurcool-graphql. gnu: Add go-github-com-cli-shurcool-graphql. gnu: Add github-cli. gnu/packages/golang.scm | 697 +++++++++++++++++++++++++++++++ gnu/packages/version-control.scm | 145 +++++++ 2 files changed, 842 insertions(+) base-commit: 9c9a36de732ea8485e47e84b888e121233f68452 -- 2.31.1
* gnu/packages/golang.scm (go-github-com-hinshun-vt10x): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d9988cd7ad..5e0526184f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -7034,3 +7035,27 @@ simplifications, and enforces style rules.") "This package provides a library for fast, structured, leveled logging in Go.") (license license:expat))) + +(define-public go-github-com-hinshun-vt10x + (package + (name "go-github-com-hinshun-vt10x") + (version "0.0.0-20180809195222-d55458df857c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hinshun/vt10x.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vwsp5iii7pf4na8pkd7cn3bawkwnsimkv1sysy7bslclg5jm370")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hinshun/vt10x")) + (home-page "https://github.com/hinshun/vt10x") + (synopsis "vt10x terminal emulation backend") + (description "This package is a vt10x terminal emulation backend. It has +larged been influenced by st, rxvt, xterm, and iTerm as reference.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-creack-pty): New variable. --- gnu/packages/golang.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5e0526184f..e6f834e7af 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7059,3 +7059,25 @@ Go.") larged been influenced by st, rxvt, xterm, and iTerm as reference.") (license license:expat))) +(define-public go-github-com-creack-pty + (package + (name "go-github-com-creack-pty") + (version "1.1.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creack/pty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dwhch53vqxpnbiqvfa27cliabx9ma2m4dax4adlrz8rami4sakw")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/creack/pty")) + (home-page "https://github.com/creack/pty") + (synopsis "PTY interface for Go") + (description "Pty is a Go package for using Unix pseudo-terminals.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kr-pty): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e6f834e7af..6664e28e8f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7081,3 +7081,28 @@ larged been influenced by st, rxvt, xterm, and iTerm as reference.") (description "Pty is a Go package for using Unix pseudo-terminals.") (license license:expat))) +;; Deprecated in favor of 'go-github-com-creack-pty', but needed by github-cli +(define-public go-github-com-kr-pty + (hidden-package + (package + (name "go-github-com-kr-pty") + (version "1.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kr/pty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name "go-github-com-kr-pty" version)) + (sha256 + (base32 + "1vcl6f90n0f8s8b4fyh0832ilybjqcypqyj233lqj1hx62fvgdbk")))) + (build-system go-build-system) + (arguments '(#:import-path "github.com/kr/pty")) + (propagated-inputs + `(("go-github-com-creack-pty" ,go-github-com-creack-pty))) + (home-page "https://github.com/kr/pty") + (synopsis "PTY interface for Go") + (description "Pty is a Go package for using Unix pseudo-terminals.") + (license license:expat)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-netflix-go-expect): New variable. --- gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6664e28e8f..57ae6e3210 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7106,3 +7106,33 @@ larged been influenced by st, rxvt, xterm, and iTerm as reference.") (description "Pty is a Go package for using Unix pseudo-terminals.") (license license:expat)))) +(define-public go-github-com-netflix-go-expect + (package + (name "go-github-com-netflix-go-expect") + (version "0.0.0-20201125194554-85d881c3777e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Netflix/go-expect.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01s59hsdwy2nngngcgzyhncys56pdgzr6lff7k8kjrh26zk6pdv5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/Netflix/go-expect")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-kr-pty" ,go-github-com-kr-pty))) + (home-page + "https://github.com/Netflix/go-expect") + (synopsis "Expect-like library to automate control of terminal programs") + (description "This package provides an expect-like interface to automate +control of applications. It is unlike expect in that it does not spawn or +manage process lifecycle. This package only focuses on expecting output and +sending input through it's pseudoterminal.") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-alecaivazis-survey-v2): New variable. --- gnu/packages/golang.scm | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 57ae6e3210..268a88e15b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages textutils) + #:use-module ((gnu packages syncthing) #:select (go-github-com-kballard-go-shellquote)) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (ice-9 match) @@ -7136,3 +7137,51 @@ manage process lifecycle. This package only focuses on expecting output and sending input through it's pseudoterminal.") (license license:asl2.0))) +(define-public go-github-com-alecaivazis-survey-v2 + (package + (name "go-github-com-alecaivazis-survey-v2") + (version "2.2.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AlecAivazis/survey.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jw4ka44q7a2885fil4qnb56mdlixmy5ysd68i5h5dblbq4r61l1")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AlecAivazis/survey")) + (native-inputs + `(("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-crypto" + ,go-golang-org-x-crypto) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-pmezard-go-difflib" + ,go-github-com-pmezard-go-difflib) + ("go-github-com-mgutz-ansi" + ,go-github-com-mgutz-ansi) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-kr-pty" ,go-github-com-kr-pty) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-hinshun-vt10x" + ,go-github-com-hinshun-vt10x) + ("go-github-com-davecgh-go-spew" + ,go-github-com-davecgh-go-spew) + ("go-github-com-netflix-go-expect" + ,go-github-com-netflix-go-expect))) + (home-page + "https://github.com/AlecAivazis/survey") + (synopsis "Build interactive prompts on terminals") + (description "This is a library for building interactive prompts on +terminals supporting ANSI escape sequences.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-makenowjust-heredoc): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 268a88e15b..b1e9baf85b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7185,3 +7185,27 @@ sending input through it's pseudoterminal.") terminals supporting ANSI escape sequences.") (license license:expat))) +(define-public go-github-com-makenowjust-heredoc + (package + (name "go-github-com-makenowjust-heredoc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MakeNowJust/heredoc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18f21zm8n2wlnkz1ylw8rcxmqxyv2rlz8749yfqggm2m0m2884pj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/MakeNowJust/heredoc")) + (home-page + "https://github.com/MakeNowJust/heredoc") + (synopsis "Here-documents with keeping indent") + (description "This package provides the Here-document with keeping +indent.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-briandowns-spinner): New variable. --- gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b1e9baf85b..11312227ff 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7209,3 +7209,32 @@ terminals supporting ANSI escape sequences.") indent.") (license license:expat))) +(define-public go-github-com-briandowns-spinner + (package + (name "go-github-com-briandowns-spinner") + (version "1.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/briandowns/spinner.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n6h2iqq5anqg9p2pwz684vhfjx0944rrw53x2cn5m1dybp6rbwx")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/briandowns/spinner")) + (native-inputs + `(("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-fatih-color" + ,go-github-com-fatih-color))) + (home-page + "https://github.com/briandowns/spinner") + (synopsis "Progress indicator for any terminal application") + (description "This is a simple package to add a spinner or progress +indicator to any terminal application. ") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-browser): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 11312227ff..1cdc04bde6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7238,3 +7238,28 @@ indent.") indicator to any terminal application. ") (license license:asl2.0))) +(define-public go-github-com-cli-browser + (package + (name "go-github-com-cli-browser") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/browser.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13z27cc0a184bhprspwclzbvrzsrfd5qyk5r2djfx5nm85igxr0n")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/browser")) + (native-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/cli/browser") + (synopsis "Helpers to open URLs, or files in the default web browser") + (description "This library provides helpers to open URLs, readers, or +files in the system default web browser.") + (license license:bsd-2))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-oauth): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 1cdc04bde6..8d0a44c06c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7263,3 +7263,29 @@ indicator to any terminal application. ") files in the system default web browser.") (license license:bsd-2))) +(define-public go-github-com-cli-oauth + (package + (name "go-github-com-cli-oauth") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/oauth.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b96cl53qc40xsgpxpy9qkrib4a4g02a4sq442qp8749qab5ljhs")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/oauth")) + (native-inputs + `(("go-github-com-cli-browser" + ,go-github-com-cli-browser))) + (home-page "https://github.com/cli/oauth") + (synopsis "Perform OAuth Device flow and Web application flow in Go") + (description "This is a library for performing OAuth Device flow and Web +application flow in Go client apps.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-safeexec): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8d0a44c06c..1d5c99e08a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7289,3 +7289,28 @@ files in the system default web browser.") application flow in Go client apps.") (license license:expat))) +;; Needed by the 'github-cli' +(define-public go-github-com-cli-safeexec + (hidden-package + (package + (name "go-github-com-cli-safeexec") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/safeexec.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q80va3721dyw33lrnv7x3gd66kcnbsm38dv3lk7xqhii2adawmk")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/safeexec")) + (home-page "https://github.com/cli/safeexec") + (synopsis "Safer alternative to exec.LookPath() on Windows") + (description "This library provides a safer alternative to +@code{exec.LookPath()} on Windows.") + (license license:bsd-2)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-russross-blackfriday-v2): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 1d5c99e08a..cbfc5c7706 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7314,3 +7314,29 @@ application flow in Go client apps.") @code{exec.LookPath()} on Windows.") (license license:bsd-2)))) +(define-public go-github-com-russross-blackfriday-v2 + (package + (name "go-github-com-russross-blackfriday-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/russross/blackfriday.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0d1rg1drrfmabilqjjayklsz5d0n3hkf979sr3wsrw92bfbkivs7")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/russross/blackfriday")) + (home-page + "https://github.com/russross/blackfriday") + (synopsis "Markdown processor implemented in Go") + (description "Blackfriday is a Markdown processor implemented in Go. It +is paranoid about its input (so you can safely feed it user-supplied data), it +is fast, it supports common extensions (tables, smart punctuation +substitutions, etc.), and it is safe for all utf-8 (unicode) input.") + (license license:bsd-2))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cpuguy83-go-md2man-v2): New variable. --- gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index cbfc5c7706..13ce1a4e4e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7340,3 +7340,32 @@ is fast, it supports common extensions (tables, smart punctuation substitutions, etc.), and it is safe for all utf-8 (unicode) input.") (license license:bsd-2))) +(define-public go-github-com-cpuguy83-go-md2man-v2 + (package + (name "go-github-com-cpuguy83-go-md2man-v2") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cpuguy83/go-md2man.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cpuguy83/go-md2man")) + (native-inputs + `(("go-github-com-shurcool-sanitized-anchor-name" + ,go-github-com-shurcool-sanitized-anchor-name) + ("go-github-com-russross-blackfriday-v2" + ,go-github-com-russross-blackfriday-v2) + ("go-github-com-pmezard-go-difflib" + ,go-github-com-pmezard-go-difflib))) + (home-page + "https://github.com/cpuguy83/go-md2man") + (synopsis "Convert Markdown into Man pages") + (description "This package converts Markdown into Roff Man pages.") + (license license:expat))) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-enescakir-emoji): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 13ce1a4e4e..231f1babc6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7369,3 +7369,27 @@ substitutions, etc.), and it is safe for all utf-8 (unicode) input.") (synopsis "Convert Markdown into Man pages") (description "This package converts Markdown into Roff Man pages.") (license license:expat))) + +(define-public go-github-com-enescakir-emoji + (package + (name "go-github-com-enescakir-emoji") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/enescakir/emoji.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xnisfsn94izcjhl4xywd971av4b5v1n67figp16wh443lhihxky")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/enescakir/emoji")) + (home-page "https://github.com/enescakir/emoji") + (synopsis "Minimalistic emoji package for Go") + (description "This package provides a minimalistic emoji library for +Go. It lets you use emoji characters in strings.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-gabriel-vasile-mimetype): New variable. --- gnu/packages/golang.scm | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 231f1babc6..5d05c383c6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7393,3 +7393,50 @@ substitutions, etc.), and it is safe for all utf-8 (unicode) input.") Go. It lets you use emoji characters in strings.") (license license:expat))) +(define-public go-github-com-gabriel-vasile-mimetype + (package + (name "go-github-com-gabriel-vasile-mimetype") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gabriel-vasile/mimetype.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ysb0pjhyr9b7q2y39b5hpwsaidgfl42gd07yj34mgmb9wfjb7ch")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/gabriel-vasile/mimetype" + ;; FIXME: Cannot open 'supported_mimes.md' + #:tests? #f + #:phases + (modify-phases %standard-phases + ;; The files are read-only + (add-before 'reset-gzip-timestamps 'make-gz-files-writable + (lambda* (#:key outputs #:allow-other-keys) + (for-each make-file-writable + (find-files (string-append (assoc-ref outputs "out")) + ".*\\.gz$")) + #t))))) + + (home-page + "https://github.com/gabriel-vasile/mimetype") + (synopsis "A fast golang library for MIME type and file extension detection") + (description "This is a package for detecting MIME types and extensions +based on magic numbers. Features include + +@itemize +@item fast and precise MIME type and file extension detection +@item long list of supported MIME types +@item common file formats are prioritized +@item small and simple API +@item handles MIME type aliases +@item thread safe +@item low memory usage, besides the file header +@end itemize") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-google-shlex): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5d05c383c6..e8712b22d5 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7440,3 +7440,26 @@ based on magic numbers. Features include @end itemize") (license license:expat))) +(define-public go-github-com-google-shlex + (package + (name "go-github-com-google-shlex") + (version "0.0.0-20191202100458-e7afc7fbc510") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/shlex.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14z8hqyik910wk2qwnzgz8mjsmiamxa0pj55ahbv0jx6j3dgvzfm")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/shlex")) + (home-page "https://github.com/google/shlex") + (synopsis "Simple lexer for Go") + (description "This library provides is a simple lexer for Go that supports +shell-style quoting, commenting, and escaping.") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-henvic-httpretty): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e8712b22d5..0234522408 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7463,3 +7463,26 @@ based on magic numbers. Features include shell-style quoting, commenting, and escaping.") (license license:asl2.0))) +(define-public go-github-com-henvic-httpretty + (package + (name "go-github-com-henvic-httpretty") + (version "0.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/henvic/httpretty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jbnj1x8wribayx65ssxigs9p88pi0cxg36h8qhqvqz1pqiygksa")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/henvic/httpretty")) + (home-page "https://github.com/henvic/httpretty") + (synopsis "Print the HTTP requests you make on your terminal") + (description "This packages prints the HTTP requests you make with Go +pretty on your terminal.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-go-flags): New variable. --- gnu/packages/golang.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 0234522408..6707b15273 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7486,3 +7486,36 @@ shell-style quoting, commenting, and escaping.") pretty on your terminal.") (license license:expat))) +(define-public go-github-com-itchyny-go-flags + (package + (name "go-github-com-itchyny-go-flags") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/go-flags.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qfh7gn95aldlsigk72jl87npmwvx15kb7df1100d6j0nbakd8b5")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/itchyny/go-flags" + ;; Unable to find man page + #:tests? #f)) + (native-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/itchyny/go-flags") + (synopsis "Go library for parsing command line arguments") + (description "This library provides similar functionality to the builtin +flag library of Go, but provides much more functionality. + +Package flags provides an extensive command line option parser. The flags +package is similar in functionality to the go builtin flag package but +provides more options and uses reflection to provide a convenient and succinct +way of specifying command line options.") + (license license:bsd-3))) + -- 2.31.1
* gnu/packages/version-control.scm (github-cli): New variable. --- gnu/packages/version-control.scm | 145 +++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index e7fa6e6777..6e66897806 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -118,6 +118,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages swig) #:use-module (gnu packages sync) + #:use-module ((gnu packages syncthing) #:select (go-github-com-kballard-go-shellquote)) #:use-module (gnu packages tcl) #:use-module (gnu packages textutils) #:use-module (gnu packages time) @@ -3021,6 +3022,150 @@ commit message side by side If several repos are related, it helps to see their status together.") (license license:expat)))) +(define-public github-cli + (package + (name "github-cli") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/cli.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "009jh1i1ji7d773ismifdw4qvwlb8s1zn14d0n84j9h3n0hyynbc")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/cli/cli/cmd/gh" + #:unpack-path + "github.com/cli/cli" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-safeexec + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/github.com/cli/cli/" + ;; 'github.com/cli/safeexec' is only used for Windows, we + ;; replace it with the regular 'os/exec'. See + ;; <https://issues.guix.gnu.org/47539> for discussion. + (substitute* '("pkg/cmd/alias/expand/expand.go" + "script/build.go") + (("github.com/cli/safeexec") "os/exec") + (("safeexec") "exec")) + ;; These files have already imported 'os/exec', meaning that + ;; 'os/exec' would get imported twice, causing an error. + ;; Instead, we just remove the 'github.com/cli/safeexec'. + (substitute* '("cmd/gh/main.go" + "git/git.go" + "pkg/iostreams/iostreams.go" + "pkg/cmd/auth/shared/ssh_keys.go" + "pkg/cmd/pr/checkout/checkout.go" + "pkg/cmdutil/web_browser.go" + "pkg/surveyext/editor_manual.go") + (("\"github.com/cli/safeexec\"") "") + (("safeexec") "exec")))))))) + (native-inputs + `(("go-github-com-cli-shurcool-graphql" + ,go-github-com-cli-shurcool-graphql) + ("go-gopkg-in-yaml-v3" ,go-gopkg-in-yaml-v3) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-sync" ,go-golang-org-x-sync) + ("go-golang-org-x-crypto" + ,go-golang-org-x-crypto) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-spf13-pflag" + ,go-github-com-spf13-pflag) + ("go-github-com-spf13-cobra" + ,go-github-com-spf13-cobra) + ("go-github-com-shurcool-githubv4" + ,go-github-com-shurcool-githubv4) + ("go-github-com-rivo-uniseg" + ,go-github-com-rivo-uniseg) + ("go-github-com-muesli-termenv" + ,go-github-com-muesli-termenv) + ("go-github-com-mitchellh-go-homedir" + ,go-github-com-mitchellh-go-homedir) + ("go-github-com-mgutz-ansi" + ,go-github-com-mgutz-ansi) + ("go-github-com-mattn-go-runewidth" + ,go-github-com-mattn-go-runewidth) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-itchyny-gojq" + ,go-github-com-itchyny-gojq) + ("go-github-com-henvic-httpretty" + ,go-github-com-henvic-httpretty) + ("go-github-com-hashicorp-go-version" + ,go-github-com-hashicorp-go-version) + ("go-github-com-google-shlex" + ,go-github-com-google-shlex) + ("go-github-com-google-go-cmp-cmp" + ,go-github-com-google-go-cmp-cmp) + ("go-github-com-gabriel-vasile-mimetype" + ,go-github-com-gabriel-vasile-mimetype) + ("go-github-com-enescakir-emoji" + ,go-github-com-enescakir-emoji) + ("go-github-com-cpuguy83-go-md2man-v2" + ,go-github-com-cpuguy83-go-md2man-v2) + ("go-github-com-cli-oauth" + ,go-github-com-cli-oauth) + ("go-github-com-cli-browser" + ,go-github-com-cli-browser) + ("go-github-com-briandowns-spinner" + ,go-github-com-briandowns-spinner) + ("go-github-com-makenowjust-heredoc" + ,go-github-com-makenowjust-heredoc) + ("go-github-com-alecaivazis-survey-v2" + ,go-github-com-alecaivazis-survey-v2) + ("go-github-com-charmbracelet-glamour" + ,go-github-com-charmbracelet-glamour) + ("go-github-com-alecthomas-chroma" + ,go-github-com-alecthomas-chroma) + ("go-github-com-google-goterm" + ,go-github-com-google-goterm) + ("go-github-com-aymerick-douceur" + ,go-github-com-aymerick-douceur) + ("go-github-com-danwakefield-fnmatch" + ,go-github-com-danwakefield-fnmatch) + ("go-github-com-chris-ramon-douceur" + ,go-github-com-chris-ramon-douceur) + ("go-github-com-gorilla-css" + ,go-github-com-gorilla-css) + ("go-golang-org-colorful" + ,go-golang-org-colorful) + ("go-golang-org-x-net" + ,go-golang-org-x-net) + ("go-github-com-muesli-reflow-ansi" + ,go-github-com-muesli-reflow-ansi) + ("go-github-com-microcosm-cc-bluemonday" + ,go-github-com-microcosm-cc-bluemonday) + ("go-github-com-muesli-reflow-wordwrap" + ,go-github-com-muesli-reflow-wordwrap) + ("go-github-com-yuin-goldmark" + ,go-github-com-yuin-goldmark) + ("go-github-com-dlclark-regexp2" + ,go-github-com-dlclark-regexp2) + ("go-github-com-muesli-reflow-indent" + ,go-github-com-muesli-reflow-indent) + ("go-github-com-muesli-reflow-padding" + ,go-github-com-muesli-reflow-padding) + ("go-github-com-olekukonko-tablewriter" + ,go-github-com-olekukonko-tablewriter))) + (home-page "https://github.com/cli/cli") + (synopsis "CLI interface to GitHub") + (description "This package provides the @command{gh} command, an interface +to GitHub on the command line. It brings pull requests, issues, and other +GitHub concepts to the terminal next to where you are already working with Git +and your code.") + (license license:expat))) + (define-public ghq (package (name "ghq") -- 2.31.1
Friendly ping! :)
Am Montag, den 19.04.2021, 15:24 +0200 schrieb Xinglu Chen: > Friendly ping! :) I think you fixed most of my concerns from the previous run, but looking at Patchwork, there appear to still be a few issues: 1. Some patches don't seem to apply correctly over at Patchwork [1]. This can perhaps be ignored, as it seems to be an issue with patches being received out of order and the last one applies cleanly. 2. The corresponding revision fails to build [2]. 3. The patch for safeexec still seems to be part of the series even though it's unused. Didn't you mean to exclude that one? Again, I'm not really familiar with the Go side of things, so while as a reviewer I can point out stuff, that is not aesthetically pleasing, as a committer I'm somewhat forced to trust what the CI tells me. I would personally feel more reassured if someone with a bit of Go experience had a look at this patch set, but judging from the 2 weeks of silence, it seems they are all sleeping or silently trusting me to do a good job. Regards, Leo [1] https://patches.guix-patches.cbaines.net/project/guix-patches/list/?series=7514 [2] https://data.guix-patches.cbaines.net/job/12256
On Mon, Apr 19 2021, Leo Prikler wrote: > Am Montag, den 19.04.2021, 15:24 +0200 schrieb Xinglu Chen: >> Friendly ping! :) > I think you fixed most of my concerns from the previous run, but > looking at Patchwork, there appear to still be a few issues: > > 1. Some patches don't seem to apply correctly over at Patchwork [1]. > This can perhaps be ignored, as it seems to be an issue with patches > being received out of order and the last one applies cleanly. Hmm, they applied on my local checkout, maybe it’s something to do with the order. > 2. The corresponding revision fails to build [2]. I will look into that. > 3. The patch for safeexec still seems to be part of the series even > though it's unused. Didn't you mean to exclude that one? Oops, not sure what I did there, it should be removed. > Again, I'm not really familiar with the Go side of things, so while as > a reviewer I can point out stuff, that is not aesthetically pleasing, > as a committer I'm somewhat forced to trust what the CI tells me. I > would personally feel more reassured if someone with a bit of Go > experience had a look at this patch set, but judging from the 2 weeks > of silence, it seems they are all sleeping or silently trusting me to > do a good job. Understood, thanks for taking a look!
Changes since v2: - Actually remove go-github-com-cli-safeexec Xinglu Chen (25): gnu: Add go-github-com-hinshun-vt10x. gnu: Add go-github-com-creack-pty. gnu: Add go-github-com-kr-pty. gnu: Add go-github-com-netflix-go-expect. gnu: Add go-github-com-alecaivazis-survey-v2. gnu: Add go-github-com-makenowjust-heredoc. gnu: Add go-github-com-briandowns-spinner. gnu: Add go-github-com-cli-browser. gnu: Add go-github-com-cli-oauth. gnu: Add go-github-com-russross-blackfriday-v2. gnu: Add go-github-com-cpuguy83-go-md2man-v2. gnu: Add go-github-com-enescakir-emoji. gnu: Add go-github-com-gabriel-vasile-mimetype. gnu: Add go-github-com-google-shlex. gnu: Add go-github-com-henvic-httpretty. gnu: Add go-github-com-itchyny-go-flags. gnu: Add go-github-com-itchyny-timefmt-go. gnu: Add go-github-com-itchyny-gojq. gnu: Add go-github-com-mattn-go-runewidth. gnu: Add go-github-com-rivo-uniseg. gnu: Add go-github-com-shurcool-githubv4. gnu: Add go-gopkg-in-yaml-v3. gnu: Add go-github-com-shurcool-graphql. gnu: Add go-github-com-cli-shurcool-graphql. gnu: Add github-cli. gnu/packages/golang.scm | 672 +++++++++++++++++++++++++++++++ gnu/packages/version-control.scm | 145 +++++++ 2 files changed, 817 insertions(+) base-commit: 1eb26d0e07ad439c935b324c1ed858f50e9dcccd -- 2.31.1
* gnu/packages/golang.scm (go-github-com-hinshun-vt10x): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6502740220..b08f0ababc 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -7033,3 +7034,27 @@ simplifications, and enforces style rules.") "This package provides a library for fast, structured, leveled logging in Go.") (license license:expat))) + +(define-public go-github-com-hinshun-vt10x + (package + (name "go-github-com-hinshun-vt10x") + (version "0.0.0-20180809195222-d55458df857c") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hinshun/vt10x.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0vwsp5iii7pf4na8pkd7cn3bawkwnsimkv1sysy7bslclg5jm370")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hinshun/vt10x")) + (home-page "https://github.com/hinshun/vt10x") + (synopsis "vt10x terminal emulation backend") + (description "This package is a vt10x terminal emulation backend. It has +larged been influenced by st, rxvt, xterm, and iTerm as reference.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-creack-pty): New variable. --- gnu/packages/golang.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b08f0ababc..f1a6783215 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7058,3 +7058,25 @@ Go.") larged been influenced by st, rxvt, xterm, and iTerm as reference.") (license license:expat))) +(define-public go-github-com-creack-pty + (package + (name "go-github-com-creack-pty") + (version "1.1.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/creack/pty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dwhch53vqxpnbiqvfa27cliabx9ma2m4dax4adlrz8rami4sakw")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/creack/pty")) + (home-page "https://github.com/creack/pty") + (synopsis "PTY interface for Go") + (description "Pty is a Go package for using Unix pseudo-terminals.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kr-pty): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index f1a6783215..0ff2d61740 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7080,3 +7080,28 @@ larged been influenced by st, rxvt, xterm, and iTerm as reference.") (description "Pty is a Go package for using Unix pseudo-terminals.") (license license:expat))) +;; Deprecated in favor of 'go-github-com-creack-pty', but needed by github-cli +(define-public go-github-com-kr-pty + (hidden-package + (package + (name "go-github-com-kr-pty") + (version "1.1.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kr/pty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name "go-github-com-kr-pty" version)) + (sha256 + (base32 + "1vcl6f90n0f8s8b4fyh0832ilybjqcypqyj233lqj1hx62fvgdbk")))) + (build-system go-build-system) + (arguments '(#:import-path "github.com/kr/pty")) + (propagated-inputs + `(("go-github-com-creack-pty" ,go-github-com-creack-pty))) + (home-page "https://github.com/kr/pty") + (synopsis "PTY interface for Go") + (description "Pty is a Go package for using Unix pseudo-terminals.") + (license license:expat)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-netflix-go-expect): New variable. --- gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 0ff2d61740..91f853c105 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7105,3 +7105,33 @@ larged been influenced by st, rxvt, xterm, and iTerm as reference.") (description "Pty is a Go package for using Unix pseudo-terminals.") (license license:expat)))) +(define-public go-github-com-netflix-go-expect + (package + (name "go-github-com-netflix-go-expect") + (version "0.0.0-20201125194554-85d881c3777e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Netflix/go-expect.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01s59hsdwy2nngngcgzyhncys56pdgzr6lff7k8kjrh26zk6pdv5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/Netflix/go-expect")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-kr-pty" ,go-github-com-kr-pty))) + (home-page + "https://github.com/Netflix/go-expect") + (synopsis "Expect-like library to automate control of terminal programs") + (description "This package provides an expect-like interface to automate +control of applications. It is unlike expect in that it does not spawn or +manage process lifecycle. This package only focuses on expecting output and +sending input through it's pseudoterminal.") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-alecaivazis-survey-v2): New variable. --- gnu/packages/golang.scm | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 91f853c105..64740316cb 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -63,6 +63,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages textutils) + #:use-module ((gnu packages syncthing) #:select (go-github-com-kballard-go-shellquote)) #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (ice-9 match) @@ -7135,3 +7136,51 @@ manage process lifecycle. This package only focuses on expecting output and sending input through it's pseudoterminal.") (license license:asl2.0))) +(define-public go-github-com-alecaivazis-survey-v2 + (package + (name "go-github-com-alecaivazis-survey-v2") + (version "2.2.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AlecAivazis/survey.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jw4ka44q7a2885fil4qnb56mdlixmy5ysd68i5h5dblbq4r61l1")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/AlecAivazis/survey")) + (native-inputs + `(("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-crypto" + ,go-golang-org-x-crypto) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-pmezard-go-difflib" + ,go-github-com-pmezard-go-difflib) + ("go-github-com-mgutz-ansi" + ,go-github-com-mgutz-ansi) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-kr-pty" ,go-github-com-kr-pty) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-hinshun-vt10x" + ,go-github-com-hinshun-vt10x) + ("go-github-com-davecgh-go-spew" + ,go-github-com-davecgh-go-spew) + ("go-github-com-netflix-go-expect" + ,go-github-com-netflix-go-expect))) + (home-page + "https://github.com/AlecAivazis/survey") + (synopsis "Build interactive prompts on terminals") + (description "This is a library for building interactive prompts on +terminals supporting ANSI escape sequences.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-makenowjust-heredoc): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 64740316cb..650844fcbf 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7184,3 +7184,27 @@ sending input through it's pseudoterminal.") terminals supporting ANSI escape sequences.") (license license:expat))) +(define-public go-github-com-makenowjust-heredoc + (package + (name "go-github-com-makenowjust-heredoc") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/MakeNowJust/heredoc.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18f21zm8n2wlnkz1ylw8rcxmqxyv2rlz8749yfqggm2m0m2884pj")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/MakeNowJust/heredoc")) + (home-page + "https://github.com/MakeNowJust/heredoc") + (synopsis "Here-documents with keeping indent") + (description "This package provides the Here-document with keeping +indent.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-briandowns-spinner): New variable. --- gnu/packages/golang.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 650844fcbf..968166df75 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7208,3 +7208,32 @@ terminals supporting ANSI escape sequences.") indent.") (license license:expat))) +(define-public go-github-com-briandowns-spinner + (package + (name "go-github-com-briandowns-spinner") + (version "1.12.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/briandowns/spinner.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n6h2iqq5anqg9p2pwz684vhfjx0944rrw53x2cn5m1dybp6rbwx")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/briandowns/spinner")) + (native-inputs + `(("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-fatih-color" + ,go-github-com-fatih-color))) + (home-page + "https://github.com/briandowns/spinner") + (synopsis "Progress indicator for any terminal application") + (description "This is a simple package to add a spinner or progress +indicator to any terminal application. ") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-browser): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 968166df75..17ea7dc210 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7237,3 +7237,28 @@ indent.") indicator to any terminal application. ") (license license:asl2.0))) +(define-public go-github-com-cli-browser + (package + (name "go-github-com-cli-browser") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/browser.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13z27cc0a184bhprspwclzbvrzsrfd5qyk5r2djfx5nm85igxr0n")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/browser")) + (native-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/cli/browser") + (synopsis "Helpers to open URLs, or files in the default web browser") + (description "This library provides helpers to open URLs, readers, or +files in the system default web browser.") + (license license:bsd-2))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-oauth): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 17ea7dc210..f250571c38 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7262,3 +7262,29 @@ indicator to any terminal application. ") files in the system default web browser.") (license license:bsd-2))) +(define-public go-github-com-cli-oauth + (package + (name "go-github-com-cli-oauth") + (version "0.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/oauth.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1b96cl53qc40xsgpxpy9qkrib4a4g02a4sq442qp8749qab5ljhs")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cli/oauth")) + (native-inputs + `(("go-github-com-cli-browser" + ,go-github-com-cli-browser))) + (home-page "https://github.com/cli/oauth") + (synopsis "Perform OAuth Device flow and Web application flow in Go") + (description "This is a library for performing OAuth Device flow and Web +application flow in Go client apps.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-russross-blackfriday-v2): New variable. --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index f250571c38..88b944b25a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7288,3 +7288,28 @@ files in the system default web browser.") application flow in Go client apps.") (license license:expat))) +(define-public go-github-com-russross-blackfriday-v2 + (package + (name "go-github-com-russross-blackfriday-v2") + (version "2.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/russross/blackfriday.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0d1rg1drrfmabilqjjayklsz5d0n3hkf979sr3wsrw92bfbkivs7")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/russross/blackfriday")) + (home-page + "https://github.com/russross/blackfriday") + (synopsis "Markdown processor implemented in Go") + (description "Blackfriday is a Markdown processor implemented in Go. It +is paranoid about its input (so you can safely feed it user-supplied data), it +is fast, it supports common extensions (tables, smart punctuation +substitutions, etc.), and it is safe for all utf-8 (unicode) input.") + (license license:bsd-2))) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cpuguy83-go-md2man-v2): New variable. --- gnu/packages/golang.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 88b944b25a..ee4a94c613 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7313,3 +7313,33 @@ is paranoid about its input (so you can safely feed it user-supplied data), it is fast, it supports common extensions (tables, smart punctuation substitutions, etc.), and it is safe for all utf-8 (unicode) input.") (license license:bsd-2))) + +(define-public go-github-com-cpuguy83-go-md2man-v2 + (package + (name "go-github-com-cpuguy83-go-md2man-v2") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cpuguy83/go-md2man.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/cpuguy83/go-md2man")) + (native-inputs + `(("go-github-com-shurcool-sanitized-anchor-name" + ,go-github-com-shurcool-sanitized-anchor-name) + ("go-github-com-russross-blackfriday-v2" + ,go-github-com-russross-blackfriday-v2) + ("go-github-com-pmezard-go-difflib" + ,go-github-com-pmezard-go-difflib))) + (home-page + "https://github.com/cpuguy83/go-md2man") + (synopsis "Convert Markdown into Man pages") + (description "This package converts Markdown into Roff Man pages.") + (license license:expat))) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-enescakir-emoji): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ee4a94c613..289685ef4c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7343,3 +7343,27 @@ substitutions, etc.), and it is safe for all utf-8 (unicode) input.") (synopsis "Convert Markdown into Man pages") (description "This package converts Markdown into Roff Man pages.") (license license:expat))) + +(define-public go-github-com-enescakir-emoji + (package + (name "go-github-com-enescakir-emoji") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/enescakir/emoji.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1xnisfsn94izcjhl4xywd971av4b5v1n67figp16wh443lhihxky")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/enescakir/emoji")) + (home-page "https://github.com/enescakir/emoji") + (synopsis "Minimalistic emoji package for Go") + (description "This package provides a minimalistic emoji library for +Go. It lets you use emoji characters in strings.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-gabriel-vasile-mimetype): New variable. --- gnu/packages/golang.scm | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 289685ef4c..7dfc098480 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7367,3 +7367,50 @@ substitutions, etc.), and it is safe for all utf-8 (unicode) input.") Go. It lets you use emoji characters in strings.") (license license:expat))) +(define-public go-github-com-gabriel-vasile-mimetype + (package + (name "go-github-com-gabriel-vasile-mimetype") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gabriel-vasile/mimetype.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ysb0pjhyr9b7q2y39b5hpwsaidgfl42gd07yj34mgmb9wfjb7ch")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/gabriel-vasile/mimetype" + ;; FIXME: Cannot open 'supported_mimes.md' + #:tests? #f + #:phases + (modify-phases %standard-phases + ;; The files are read-only + (add-before 'reset-gzip-timestamps 'make-gz-files-writable + (lambda* (#:key outputs #:allow-other-keys) + (for-each make-file-writable + (find-files (string-append (assoc-ref outputs "out")) + ".*\\.gz$")) + #t))))) + + (home-page + "https://github.com/gabriel-vasile/mimetype") + (synopsis "A fast golang library for MIME type and file extension detection") + (description "This is a package for detecting MIME types and extensions +based on magic numbers. Features include + +@itemize +@item fast and precise MIME type and file extension detection +@item long list of supported MIME types +@item common file formats are prioritized +@item small and simple API +@item handles MIME type aliases +@item thread safe +@item low memory usage, besides the file header +@end itemize") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-google-shlex): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7dfc098480..857a524e69 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7414,3 +7414,26 @@ based on magic numbers. Features include @end itemize") (license license:expat))) +(define-public go-github-com-google-shlex + (package + (name "go-github-com-google-shlex") + (version "0.0.0-20191202100458-e7afc7fbc510") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/shlex.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "14z8hqyik910wk2qwnzgz8mjsmiamxa0pj55ahbv0jx6j3dgvzfm")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/google/shlex")) + (home-page "https://github.com/google/shlex") + (synopsis "Simple lexer for Go") + (description "This library provides is a simple lexer for Go that supports +shell-style quoting, commenting, and escaping.") + (license license:asl2.0))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-henvic-httpretty): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 857a524e69..31f7ead170 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7437,3 +7437,26 @@ based on magic numbers. Features include shell-style quoting, commenting, and escaping.") (license license:asl2.0))) +(define-public go-github-com-henvic-httpretty + (package + (name "go-github-com-henvic-httpretty") + (version "0.0.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/henvic/httpretty.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jbnj1x8wribayx65ssxigs9p88pi0cxg36h8qhqvqz1pqiygksa")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/henvic/httpretty")) + (home-page "https://github.com/henvic/httpretty") + (synopsis "Print the HTTP requests you make on your terminal") + (description "This packages prints the HTTP requests you make with Go +pretty on your terminal.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-go-flags): New variable. --- gnu/packages/golang.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 31f7ead170..720b9111bc 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7460,3 +7460,36 @@ shell-style quoting, commenting, and escaping.") pretty on your terminal.") (license license:expat))) +(define-public go-github-com-itchyny-go-flags + (package + (name "go-github-com-itchyny-go-flags") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/go-flags.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0qfh7gn95aldlsigk72jl87npmwvx15kb7df1100d6j0nbakd8b5")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/itchyny/go-flags" + ;; Unable to find man page + #:tests? #f)) + (native-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/itchyny/go-flags") + (synopsis "Go library for parsing command line arguments") + (description "This library provides similar functionality to the builtin +flag library of Go, but provides much more functionality. + +Package flags provides an extensive command line option parser. The flags +package is similar in functionality to the go builtin flag package but +provides more options and uses reflection to provide a convenient and succinct +way of specifying command line options.") + (license license:bsd-3))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-timefmt-go): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 720b9111bc..24867cebb2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7493,3 +7493,27 @@ provides more options and uses reflection to provide a convenient and succinct way of specifying command line options.") (license license:bsd-3))) +(define-public go-github-com-itchyny-timefmt-go + (package + (name "go-github-com-itchyny-timefmt-go") + (version "0.1.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/timefmt-go.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1hfpvmbmzp5zbzz84p030jzd00jclnf4zr16f9r5bbq7xlhncj0z")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/itchyny/timefmt-go")) + (home-page + "https://github.com/itchyny/timefmt-go") + (synopsis "Efficient time formatting library for Go") + (description "This package provides functions for formatting and parsing +date time strings.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-itchyny-gojq): New variable. --- gnu/packages/golang.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 24867cebb2..8327e328a0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7517,3 +7517,41 @@ way of specifying command line options.") date time strings.") (license license:expat))) +(define-public go-github-com-itchyny-gojq + (package + (name "go-github-com-itchyny-gojq") + (version "0.12.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/itchyny/gojq.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1pxm341sgqkscwifpxlkvchz8ix3wivp80p59dv257kaa9diymgz")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/itchyny/gojq")) + (native-inputs + `(("go-gopkg-in-yaml-v3" ,go-gopkg-in-yaml-v3) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-github-com-mattn-go-runewidth" + ,go-github-com-mattn-go-runewidth) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-itchyny-go-flags" + ,go-github-com-itchyny-go-flags) + ("go-github-com-google-go-cmp-cmp" + ,go-github-com-google-go-cmp-cmp))) + (propagated-inputs + `(("go-github-com-itchyny-timefmt-go" + ,go-github-com-itchyny-timefmt-go))) + (home-page "https://github.com/itchyny/gojq") + (synopsis "Pure Go implementation of jq") + (description "This package provides an implementation of @command{jq} +command written in Go language. It is also embedable as a library to other Go +projects.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mattn-go-runewidth): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8327e328a0..9e3d9174c1 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7555,3 +7555,29 @@ command written in Go language. It is also embedable as a library to other Go projects.") (license license:expat))) +(define-public go-github-com-mattn-go-runewidth + (package + (name "go-github-com-mattn-go-runewidth") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mattn/go-runewidth.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jh9552ppqvkdfni7x623n0x5mbiaqqhjhmr0zkh28x56k4ysii4")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/mattn/go-runewidth")) + (native-inputs + `(("go-github-com-rivo-uniseg" + ,go-github-com-rivo-uniseg))) + (home-page "https://github.com/mattn/go-runewidth") + (synopsis "Functions to get fixed width of the character or string") + (description "This package provides functions to get fixed width of the +character or string.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-rivo-uniseg): New variable. --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9e3d9174c1..d66ee2050e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7581,3 +7581,26 @@ projects.") character or string.") (license license:expat))) +(define-public go-github-com-rivo-uniseg + (package + (name "go-github-com-rivo-uniseg") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rivo/uniseg.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0j7h22vfmjj562vr8gpsyrkrwp1pq9ayh5fylv24skxb467g9f0q")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/rivo/uniseg")) + (home-page "https://github.com/rivo/uniseg") + (synopsis "Unicode Text Segmentation for Go") + (description "This package implements Unicode Text Segmentation according +to @url{https://unicode.org/reports/tr29/,Unicode Standard Annex #29}.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-githubv4): New variable. --- gnu/packages/golang.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d66ee2050e..a2f2bf45c9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7604,3 +7604,35 @@ character or string.") to @url{https://unicode.org/reports/tr29/,Unicode Standard Annex #29}.") (license license:expat))) +(define-public go-github-com-shurcool-githubv4 + (package + (name "go-github-com-shurcool-githubv4") + (version "0.0.0-20201206200315-234843c633fa") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/githubv4.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1jmmjv95vcm9vl5zpvwv77pq3mhf2j2vxc7pj75yfniymp2dh5mi")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/shurcooL/githubv4")) + (native-inputs + `(("go-github-com-shurcooL-graphql" ,go-github-com-shurcool-graphql) + ("go-golang-org-x-oauth2" ,go-golang-org-x-oauth2))) + (home-page "https://github.com/shurcooL/githubv4") + (synopsis "Client library for accessing the GitHub GraphQL API v4") + (description "This package is a client library for accessing the GitHub +GraphQL API v4. It focuses on the following things: + +@itemize +@item Friendly, simple and powerful API. +@item Correctness, high performance and efficiency. +@item Support for all of GitHub GraphQL API v4 via code generation from schema. +@end itemize") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-gopkg-in-yaml-v3): New variable. --- gnu/packages/golang.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a2f2bf45c9..9182fb183f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7636,3 +7636,29 @@ GraphQL API v4. It focuses on the following things: @end itemize") (license license:expat))) +(define-public go-gopkg-in-yaml-v3 + (package + (name "go-gopkg-in-yaml-v3") + (version "3.0.0-20210107192922-496545a6307b") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gopkg.in/yaml.v3") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06f4lnrp494wqaygv09dggr2dwf3z2bawqhnlnnwiamg5y787k4g")))) + (build-system go-build-system) + (arguments '(#:import-path "gopkg.in/yaml.v3")) + (native-inputs + `(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1))) + (home-page "https://gopkg.in/yaml.v3") + (synopsis "YAML support for the Go language") + (description "This library enables Go programs to comfortably encode and +decode YAML values. It is based on a pure Go port of the well-known libyaml C +library to parse and generate YAML data quickly and reliably.") + (license (list license:expat + license:asl2.0)))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shurcool-graphql): New variable. --- gnu/packages/golang.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9182fb183f..b4195d1c6f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7662,3 +7662,27 @@ library to parse and generate YAML data quickly and reliably.") (license (list license:expat license:asl2.0)))) +(define-public go-github-com-shurcool-graphql + (package + (name "go-github-com-shurcool-graphql") + (version "0.0.0-20200928012149-18c5c3165e3a") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/shurcooL/graphql.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0psxc2q3qsh1lfag11m2gz54fzzvlss5znyf34aars94igsjywzx")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/shurcooL/graphql")) + (native-inputs + `(("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://github.com/shurcooL/graphql") + (synopsis "GraphQL client implementation") + (description "This package provides a GraphQL client implementation.") + (license license:expat))) + -- 2.31.1
* gnu/packages/golang.scm (go-github-com-cli-shurcool-graphql): New variable. --- gnu/packages/golang.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b4195d1c6f..642b364bcd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -7686,3 +7686,22 @@ library to parse and generate YAML data quickly and reliably.") (description "This package provides a GraphQL client implementation.") (license license:expat))) +;; GitHub's fork of go-github-com-shurcool-graphql, used by the 'github-cli' +(define-public go-github-com-cli-shurcool-graphql + (hidden-package + (package + (inherit go-github-com-shurcool-graphql) + (name "go-github-com-cli-shurcool-graphql") + ;; Use the commit from the 'named-queries' branch + (version "0.0.0-20200707151639-0f7232a2bf7e") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/shurcooL-graphql.git") + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19dv1zprs9zv5gnwql29r7lym08gh2jwkz0w0f62823b57m1rjp6")))) + (home-page "https://github.com/cli/shurcooL-graphql")))) -- 2.31.1
* gnu/packages/version-control.scm (github-cli): New variable. --- gnu/packages/version-control.scm | 145 +++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index ebddd9522a..da6f71ccfe 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -118,6 +118,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages swig) #:use-module (gnu packages sync) + #:use-module ((gnu packages syncthing) #:select (go-github-com-kballard-go-shellquote)) #:use-module (gnu packages tcl) #:use-module (gnu packages textutils) #:use-module (gnu packages time) @@ -3021,6 +3022,150 @@ commit message side by side If several repos are related, it helps to see their status together.") (license license:expat)))) +(define-public github-cli + (package + (name "github-cli") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cli/cli.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "009jh1i1ji7d773ismifdw4qvwlb8s1zn14d0n84j9h3n0hyynbc")))) + (build-system go-build-system) + (arguments + '(#:import-path + "github.com/cli/cli/cmd/gh" + #:unpack-path + "github.com/cli/cli" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-safeexec + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion "src/github.com/cli/cli/" + ;; 'github.com/cli/safeexec' is only used for Windows, we + ;; replace it with the regular 'os/exec'. See + ;; <https://issues.guix.gnu.org/47539> for discussion. + (substitute* '("pkg/cmd/alias/expand/expand.go" + "script/build.go") + (("github.com/cli/safeexec") "os/exec") + (("safeexec") "exec")) + ;; These files have already imported 'os/exec', meaning that + ;; 'os/exec' would get imported twice, causing an error. + ;; Instead, we just remove the 'github.com/cli/safeexec'. + (substitute* '("cmd/gh/main.go" + "git/git.go" + "pkg/iostreams/iostreams.go" + "pkg/cmd/auth/shared/ssh_keys.go" + "pkg/cmd/pr/checkout/checkout.go" + "pkg/cmdutil/web_browser.go" + "pkg/surveyext/editor_manual.go") + (("\"github.com/cli/safeexec\"") "") + (("safeexec") "exec")))))))) + (native-inputs + `(("go-github-com-cli-shurcool-graphql" + ,go-github-com-cli-shurcool-graphql) + ("go-gopkg-in-yaml-v3" ,go-gopkg-in-yaml-v3) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-sync" ,go-golang-org-x-sync) + ("go-golang-org-x-crypto" + ,go-golang-org-x-crypto) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify) + ("go-github-com-spf13-pflag" + ,go-github-com-spf13-pflag) + ("go-github-com-spf13-cobra" + ,go-github-com-spf13-cobra) + ("go-github-com-shurcool-githubv4" + ,go-github-com-shurcool-githubv4) + ("go-github-com-rivo-uniseg" + ,go-github-com-rivo-uniseg) + ("go-github-com-muesli-termenv" + ,go-github-com-muesli-termenv) + ("go-github-com-mitchellh-go-homedir" + ,go-github-com-mitchellh-go-homedir) + ("go-github-com-mgutz-ansi" + ,go-github-com-mgutz-ansi) + ("go-github-com-mattn-go-runewidth" + ,go-github-com-mattn-go-runewidth) + ("go-github-com-mattn-go-isatty" + ,go-github-com-mattn-go-isatty) + ("go-github-com-mattn-go-colorable" + ,go-github-com-mattn-go-colorable) + ("go-github-com-kballard-go-shellquote" + ,go-github-com-kballard-go-shellquote) + ("go-github-com-itchyny-gojq" + ,go-github-com-itchyny-gojq) + ("go-github-com-henvic-httpretty" + ,go-github-com-henvic-httpretty) + ("go-github-com-hashicorp-go-version" + ,go-github-com-hashicorp-go-version) + ("go-github-com-google-shlex" + ,go-github-com-google-shlex) + ("go-github-com-google-go-cmp-cmp" + ,go-github-com-google-go-cmp-cmp) + ("go-github-com-gabriel-vasile-mimetype" + ,go-github-com-gabriel-vasile-mimetype) + ("go-github-com-enescakir-emoji" + ,go-github-com-enescakir-emoji) + ("go-github-com-cpuguy83-go-md2man-v2" + ,go-github-com-cpuguy83-go-md2man-v2) + ("go-github-com-cli-oauth" + ,go-github-com-cli-oauth) + ("go-github-com-cli-browser" + ,go-github-com-cli-browser) + ("go-github-com-briandowns-spinner" + ,go-github-com-briandowns-spinner) + ("go-github-com-makenowjust-heredoc" + ,go-github-com-makenowjust-heredoc) + ("go-github-com-alecaivazis-survey-v2" + ,go-github-com-alecaivazis-survey-v2) + ("go-github-com-charmbracelet-glamour" + ,go-github-com-charmbracelet-glamour) + ("go-github-com-alecthomas-chroma" + ,go-github-com-alecthomas-chroma) + ("go-github-com-google-goterm" + ,go-github-com-google-goterm) + ("go-github-com-aymerick-douceur" + ,go-github-com-aymerick-douceur) + ("go-github-com-danwakefield-fnmatch" + ,go-github-com-danwakefield-fnmatch) + ("go-github-com-chris-ramon-douceur" + ,go-github-com-chris-ramon-douceur) + ("go-github-com-gorilla-css" + ,go-github-com-gorilla-css) + ("go-golang-org-colorful" + ,go-golang-org-colorful) + ("go-golang-org-x-net" + ,go-golang-org-x-net) + ("go-github-com-muesli-reflow-ansi" + ,go-github-com-muesli-reflow-ansi) + ("go-github-com-microcosm-cc-bluemonday" + ,go-github-com-microcosm-cc-bluemonday) + ("go-github-com-muesli-reflow-wordwrap" + ,go-github-com-muesli-reflow-wordwrap) + ("go-github-com-yuin-goldmark" + ,go-github-com-yuin-goldmark) + ("go-github-com-dlclark-regexp2" + ,go-github-com-dlclark-regexp2) + ("go-github-com-muesli-reflow-indent" + ,go-github-com-muesli-reflow-indent) + ("go-github-com-muesli-reflow-padding" + ,go-github-com-muesli-reflow-padding) + ("go-github-com-olekukonko-tablewriter" + ,go-github-com-olekukonko-tablewriter))) + (home-page "https://github.com/cli/cli") + (synopsis "CLI interface to GitHub") + (description "This package provides the @command{gh} command, an interface +to GitHub on the command line. It brings pull requests, issues, and other +GitHub concepts to the terminal next to where you are already working with Git +and your code.") + (license license:expat))) + (define-public ghq (package (name "ghq") -- 2.31.1
For the Glang package where version is not defined --8<---------------cut here---------------start------------->8--- +(define-public go-github-com-shurcool-githubv4 + (package+ (name "go-github-com-shurcool-githubv4") + (version "0.0.0-20201206200315-234843c633fa") --8<---------------cut here---------------start------------->8--- It's better to use latest commit (check any of gnu/packages/golang.scm) --8<---------------cut here---------------start------------->8--- (define-public go-golang-org-x-image (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d") (revision "1")) (package (name "go-golang-org-x-image") (version (git-version "0.0.0" revision commit)) --8<---------------cut here---------------start------------->8--- -- … наш разум - превосходная объяснительная машина которая способна найти смысл почти в чем угодно, истолковать любой феномен, но совершенно не в состоянии принять мысль о непредсказуемости.
On Mon, Apr 19 2021, Sharlatan Hellseher wrote: > For the Glang package where version is not defined > > --8<---------------cut here---------------start------------->8--- > +(define-public go-github-com-shurcool-githubv4 > + (package+ (name "go-github-com-shurcool-githubv4") > + (version "0.0.0-20201206200315-234843c633fa") > --8<---------------cut here---------------start------------->8--- > > It's better to use latest commit (check any of gnu/packages/golang.scm) The github-cli package specifies an exact revision for some of its dependencies[1], and thats what the Go importer generated. Should I use the latest commit anyway? [1]: https://github.com/cli/cli/blob/trunk/go.mod
On Tue, Apr 20, 2021 at 07:26:59AM +0200, Xinglu Chen wrote:
> The github-cli package specifies an exact revision for some of its
> dependencies[1], and thats what the Go importer generated. Should I use
> the latest commit anyway?
>
> [1]: https://github.com/cli/cli/blob/trunk/go.mod
You should always use what's specified in go.mod.
Golang software is like that: You should use exact versions of
dependencies.
On Tue, Apr 20 2021, Leo Famulari wrote:
> On Tue, Apr 20, 2021 at 07:26:59AM +0200, Xinglu Chen wrote:
>> The github-cli package specifies an exact revision for some of its
>> dependencies[1], and thats what the Go importer generated. Should I use
>> the latest commit anyway?
>>
>> [1]: https://github.com/cli/cli/blob/trunk/go.mod
>
> You should always use what's specified in go.mod.
>
> Golang software is like that: You should use exact versions of
> dependencies.
Ok, that’s what I did. :)
Am Dienstag, den 20.04.2021, 09:34 +0200 schrieb Xinglu Chen:
> On Tue, Apr 20 2021, Leo Famulari wrote:
>
> > On Tue, Apr 20, 2021 at 07:26:59AM +0200, Xinglu Chen wrote:
> > > The github-cli package specifies an exact revision for some of
> > > its
> > > dependencies[1], and thats what the Go importer
> > > generated. Should I use
> > > the latest commit anyway?
> > >
> > > [1]: https://github.com/cli/cli/blob/trunk/go.mod
> >
> > You should always use what's specified in go.mod.
> >
> > Golang software is like that: You should use exact versions of
> > dependencies.
>
> Ok, that’s what I did. :)
It seems patchwork does not want to process this patch in the way I
want it to process it.
@lfam: Does this patch look good to you? If so, can we apply it?
Regards,
Leo
On Fri, May 21, 2021 at 07:08:49PM +0200, Leo Prikler wrote:
> @lfam: Does this patch look good to you? If so, can we apply it?
I notice that (most of?) the new packages use native-inputs for their
dependencies.
If these dependencies are used at run-time, I would propagate them
instead. This way, they will be available in the build environment of
packages that depend on the package that is using them, which matters
for our go-build-system, where everything is built from scratch in each
package. If I remember correctly, that is...
Otherwise, if they pass `guix lint`, the licenses have been checked, and
the software works, LGTM.
[-- Attachment #1: Type: text/plain, Size: 723 bytes --] On Fri, May 21 2021, Leo Famulari wrote: > On Fri, May 21, 2021 at 07:08:49PM +0200, Leo Prikler wrote: >> @lfam: Does this patch look good to you? If so, can we apply it? > > I notice that (most of?) the new packages use native-inputs for their > dependencies. > > If these dependencies are used at run-time, I would propagate them > instead. This way, they will be available in the build environment of > packages that depend on the package that is using them, which matters > for our go-build-system, where everything is built from scratch in each > package. If I remember correctly, that is... I am not familiar with the Go ecosystem, is there a way to tell if a dependency is used at runtime? Sorry for the delay. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 861 bytes --]
On Sat, Jun 05, 2021 at 09:16:36PM +0200, Xinglu Chen wrote: > On Fri, May 21 2021, Leo Famulari wrote: > > I notice that (most of?) the new packages use native-inputs for their > > dependencies. > > > > If these dependencies are used at run-time, I would propagate them > > instead. This way, they will be available in the build environment of > > packages that depend on the package that is using them, which matters > > for our go-build-system, where everything is built from scratch in each > > package. If I remember correctly, that is... > > I am not familiar with the Go ecosystem, is there a way to tell if a > dependency is used at runtime? Remember, Go uses static compilation, so Guix's concept of "runtime" dependencies doesn't apply to Go like it does for other languages. For Go, you'll know that a dependency was missing, because the build will fail without it. Our current go-build-system implementation rebuilds every dependency from source when it is used while building another package (inefficient!). If foo requires bar, and baz depends on foo, then bar needs to be available when building baz. That is because foo will be rebuilt while building baz. We must either propagate bar from foo, or make baz depend on it. Technically, bar is a dependency of foo, so it is correct to propagate it from foo. You may also check if baz also depends on bar, by checking if baz tries to import bar. Go software imports (or declares?) its dependencies by importing them using "import paths" [0], as shown in this example: https://github.com/syncthing/syncthing/blob/v1.17.0/cmd/strelaypoolsrv/main.go#L5 The external or non-stdlib dependencies are named by what looks like a URL. These URL-like "import paths" are the actual and unique names for Go programs. So, if baz also depends on bar, your grep in the baz source code will return a match for the import path of bar; something like 'github.com/author/bar'. Does that make sense? I'm happy to clarify things until it does :) [0] https://golang.org/doc/code#Organization
[-- Attachment #1: Type: text/plain, Size: 2304 bytes --] On Sun, Jun 06 2021, Leo Famulari wrote: > On Sat, Jun 05, 2021 at 09:16:36PM +0200, Xinglu Chen wrote: >> On Fri, May 21 2021, Leo Famulari wrote: >> > I notice that (most of?) the new packages use native-inputs for their >> > dependencies. >> > >> > If these dependencies are used at run-time, I would propagate them >> > instead. This way, they will be available in the build environment of >> > packages that depend on the package that is using them, which matters >> > for our go-build-system, where everything is built from scratch in each >> > package. If I remember correctly, that is... >> >> I am not familiar with the Go ecosystem, is there a way to tell if a >> dependency is used at runtime? > > Remember, Go uses static compilation, so Guix's concept of "runtime" > dependencies doesn't apply to Go like it does for other languages. > > For Go, you'll know that a dependency was missing, because the build > will fail without it. Everything built fine the last time I was working on this, and I was able to open a GitHub issue using the resulting ‘gh’ binary, so things seem to be OK. > Our current go-build-system implementation rebuilds every dependency > from source when it is used while building another package > (inefficient!). So kinda like what Cargo does? Go doesn’t seem to have the concept of shared libraries, I guess? > If foo requires bar, and baz depends on foo, then bar needs to be > available when building baz. That is because foo will be rebuilt while > building baz. > > We must either propagate bar from foo, or make baz depend on it. > Technically, bar is a dependency of foo, so it is correct to propagate > it from foo. So if A dependes on B which depends on C, and I want to build A, then C has to be a ‘propagated-input’ for B? Did I get that right? But if I just want to build B, should C still be a ‘propagated-input’ for B? > You may also check if baz also depends on bar, by checking if baz tries > to import bar. Go software imports (or declares?) its dependencies by > importing them using "import paths" [0], as shown in this example: Right, but shouldn’t it be enough to just look at the content of the go.mod file, won’t it list all the dependencies of the package? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 861 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1720 bytes --] On Mon, Jun 07 2021, Xinglu Chen wrote: > On Sun, Jun 06 2021, Leo Famulari wrote: > >> On Sat, Jun 05, 2021 at 09:16:36PM +0200, Xinglu Chen wrote: >>> On Fri, May 21 2021, Leo Famulari wrote: >>> > I notice that (most of?) the new packages use native-inputs for their >>> > dependencies. >>> > >>> > If these dependencies are used at run-time, I would propagate them >>> > instead. This way, they will be available in the build environment of >>> > packages that depend on the package that is using them, which matters >>> > for our go-build-system, where everything is built from scratch in each >>> > package. If I remember correctly, that is... >>> >>> I am not familiar with the Go ecosystem, is there a way to tell if a >>> dependency is used at runtime? >> >> If foo requires bar, and baz depends on foo, then bar needs to be >> available when building baz. That is because foo will be rebuilt while >> building baz. >> >> We must either propagate bar from foo, or make baz depend on it. >> Technically, bar is a dependency of foo, so it is correct to propagate >> it from foo. > > So if A dependes on B which depends on C, and I want to build A, then C > has to be a ‘propagated-input’ for B? Did I get that right? > > But if I just want to build B, should C still be a ‘propagated-input’ > for B? Since a new version of the ‘github-cli’ package is out, I ran ‘./pre-inst-env guix import go -r github.com/cli/cli’ to see if it had any new dependencies. I noticed that the Go importer put all the dependencies as ‘propagated-input’ instead of ‘native-input’ (which it did before). My guess is that basically everything should be propagated? [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 861 bytes --]
Am Montag, den 07.06.2021, 15:11 +0200 schrieb Xinglu Chen:
> On Mon, Jun 07 2021, Xinglu Chen wrote:
>
> > On Sun, Jun 06 2021, Leo Famulari wrote:
> >
> > > On Sat, Jun 05, 2021 at 09:16:36PM +0200, Xinglu Chen wrote:
> > > > On Fri, May 21 2021, Leo Famulari wrote:
> > > > > I notice that (most of?) the new packages use native-inputs
> > > > > for their
> > > > > dependencies.
> > > > >
> > > > > If these dependencies are used at run-time, I would propagate
> > > > > them
> > > > > instead. This way, they will be available in the build
> > > > > environment of
> > > > > packages that depend on the package that is using them, which
> > > > > matters
> > > > > for our go-build-system, where everything is built from
> > > > > scratch in each
> > > > > package. If I remember correctly, that is...
> > > >
> > > > I am not familiar with the Go ecosystem, is there a way to tell
> > > > if a
> > > > dependency is used at runtime?
> > >
> > > If foo requires bar, and baz depends on foo, then bar needs to be
> > > available when building baz. That is because foo will be rebuilt
> > > while
> > > building baz.
> > >
> > > We must either propagate bar from foo, or make baz depend on it.
> > > Technically, bar is a dependency of foo, so it is correct to
> > > propagate
> > > it from foo.
> >
> > So if A dependes on B which depends on C, and I want to build A,
> > then C
> > has to be a ‘propagated-input’ for B? Did I get that right?
> >
> > But if I just want to build B, should C still be a ‘propagated-
> > input’
> > for B?
>
> Since a new version of the ‘github-cli’ package is out, I ran
> ‘./pre-inst-env guix import go -r github.com/cli/cli’ to see if it
> had
> any new dependencies. I noticed that the Go importer put all the
> dependencies as ‘propagated-input’ instead of ‘native-input’ (which
> it
> did before).
>
> My guess is that basically everything should be propagated?
Do cross-check with the output of the Go importer. While there were
some modifications that we made (e.g. the safeexec thing), the Go
importer probably does "the right thing™".
Regards,
Leo
On Mon, Jun 07, 2021 at 02:58:54PM +0200, Xinglu Chen wrote: > So kinda like what Cargo does? Go doesn’t seem to have the concept of > shared libraries, I guess? Apparently it has some concept of them, but it seems that it does static compilation by default. This is touted as one of the strengths of Go: it creates fully independent run-anywhere binaries. > So if A dependes on B which depends on C, and I want to build A, then C > has to be a ‘propagated-input’ for B? Did I get that right? Yes, for our go-build-system. > But if I just want to build B, should C still be a ‘propagated-input’ > for B? Yes, unless B is only an end-user executable, such as Syncthing. In that case it doesn't matter if you use inputs or propagated-inputs. > Right, but shouldn’t it be enough to just look at the content of the > go.mod file, won’t it list all the dependencies of the package? Yes, that should work too! But the module imports are the ultimate "source of truth" in terms of what is used. Sometimes you will find a Go program that has extraneous things in go.mod. They are listed in go.mod but not actually imported anywhere, and thus not used. Also, I started learning about Go before Go modules were introduced, so my admittedly weak knowledge is now even weaker. I only learned about Go in order to do Guix packaging. If it sounds like I am wrong about something, I probably am :)
Hi everyone,
Am Montag, den 07.06.2021, 13:19 -0400 schrieb Leo Famulari:
> > So if A dependes on B which depends on C, and I want to build A,
> > then C has to be a ‘propagated-input’ for B? Did I get that right?
>
> Yes, for our go-build-system.
>
> > But if I just want to build B, should C still be a ‘propagated-
> > input’ for B?
>
> Yes, unless B is only an end-user executable, such as Syncthing. In
> that case it doesn't matter if you use inputs or propagated-inputs.
For context, I think github-cli will probably be fine using inputs
instead of propagated inputs, but the rest down the chain might need to
be adjusted.
There has been some time since the last patch was sent and I sadly
doubt cbaines' patchwork will try to build this package. Is v3 good to
go to master? Should Xinglu send a v4? @Xinglu, are you still
interested in merging v3/creating a v4?
Regards,
Leo
[-- Attachment #1: Type: text/plain, Size: 1414 bytes --] On Thu, Jul 15 2021, Leo Prikler wrote: > Hi everyone, > > Am Montag, den 07.06.2021, 13:19 -0400 schrieb Leo Famulari: >> > So if A dependes on B which depends on C, and I want to build A, >> > then C has to be a ‘propagated-input’ for B? Did I get that right? >> >> Yes, for our go-build-system. >> >> > But if I just want to build B, should C still be a ‘propagated- >> > input’ for B? >> >> Yes, unless B is only an end-user executable, such as Syncthing. In >> that case it doesn't matter if you use inputs or propagated-inputs. > For context, I think github-cli will probably be fine using inputs > instead of propagated inputs, but the rest down the chain might need to > be adjusted. > > There has been some time since the last patch was sent and I sadly > doubt cbaines' patchwork will try to build this package. Is v3 good to > go to master? Should Xinglu send a v4? @Xinglu, are you still > interested in merging v3/creating a v4? A few weeks ago I tried to update ‘github-cli’ to the latest version, but it required some new packages to be packaged, and I got stuck trying to package one of them. I don’t really have much interest in packaging it (well, Go packages in general) anymore since I rarely interact with GitHub anyway. Unless someone else would like to pick it up, I am OK with closing the bug. Sorry for not following up on this. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 861 bytes --]