From fbb0560ef0f72d2b93404db44594b9b77918b6ee Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Tue, 10 Feb 2026 22:28:03 +0000 Subject: [PATCH] gnu: Add go-tools. * gnu/packages/golang-build.scm (go-tools): New variable. Change-Id: I2188eca052ee8b93e6bfc16e3fbad6e64d589a56 --- gnu/packages/golang-build.scm | 73 +++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/gnu/packages/golang-build.scm b/gnu/packages/golang-build.scm index 4215b65162..b0f956b15c 100644 --- a/gnu/packages/golang-build.scm +++ b/gnu/packages/golang-build.scm @@ -1767,6 +1767,79 @@ improved and cleaner API.") ;;; Executables: ;;; +(define-public go-tools + (package/inherit go-golang-org-x-tools + (name "go-tools") + (arguments + (list + #:tests? #f + #:install-source? #f + #:import-path "golang.org/x/tools" + #:phases + #~(modify-phases %standard-phases + (replace 'build + (lambda* (#:key import-path #:allow-other-keys #:rest arguments) + (for-each + (lambda (cmd) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path + ,(string-append import-path "/cmd/" cmd)))) + (list "bisect" "bundle" "callgraph" + "compilebench" "deadcode" "digraph" "eg" "file2fuzz" + "fiximports" "go-contrib-init" "godex" "goimports" + "gomvpkg" "gonew" "goyacc" "html2article" + "present" "present2md" "signature-fuzzer/fuzz-driver" + "signature-fuzzer/fuzz-runner" "splitdwarf" "ssadump" + "stress" "stringer" "toolstash"))))))) + (native-inputs + (package-propagated-inputs go-golang-org-x-tools)) + (propagated-inputs '()) + (inputs '()) + (description + "This package provides a collection Go CLI tools to cover common +development needs. + +@itemize +@item bisect - fnds changes responsible for causing a failure. +@item bundle - creates a single-source-file version of a source package +suitable for inclusion in a particular target package +@item callgraph - a tool for reporting the call graph of a Go program. +@item compilebench - benchmarks the speed of the Go compiler +@item deadcode - reports unreachable functions in Go programs +@item digraph - performs queries over unlabelled directed graphs represented +in text form +@item eg - performs example-based refactoring +@item file2fuzz - converts binary files, such as those used by go-fuzz, to the +Go fuzzing corpus format +@item fiximports - fixes import declarations to use the canonical import path +for packages that have an \"import comment\" as defined by +https://golang.org/s/go14customimport +@item fuzz-driver - emits function-signature test code +@item fuzz-runner - performs test runs using \"fuzz-driver\" +@item go-contrib-init - helps new Go contributors get their development +environment set up for the Go contribution process +@item godex - prints (dumps) exported information of packages or selected +package objects +@item goimports - updates Go import lines, adding missing ones and removing +unreferenced ones +@item gomvpkg - moves go packages, updating import declarations +@item gonew - starts a new Go module by copying a template module +@item goyacc - version of yacc for Go +@item html2article - takes an HTML file and outputs a corresponding article +file in present format +@item present - displays slide presentations and articles +@item present2md - converts legacy-syntax present files to Markdown-syntax +present files +@item splitdwarf - uncompresses and copies the DWARF segment of a Mach-O +executable into the \"dSYM\" file +@item ssadump - displays and interprets the SSA form of Go programs +@item stress - catches sporadic failures +@item stringer - automates the creation of methods that satisfy the +@code{fmt.Stringer} interface +@item toolstash - provides a way to save, run, and restore a known good copy of +the Go toolchain and to compare the object files generated by two toolchains +@end itemize"))) + (define-public govulncheck (package (inherit go-golang-org-x-vuln)