summary refs log tree commit diff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2024-09-22 21:41:18 +0100
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-11-09 21:33:54 +0000
commit8bf88c582a36b7d5593001663903a52c1f836a8d (patch)
treed9594ebb95e950a105c3339eb9740f0d5a14c487
parent82425471571d541fb55030856efb689d001cf6a6 (diff)
downloadguix-8bf88c582a36b7d5593001663903a52c1f836a8d.tar.gz
gnu: Add go-github-com-cretz-bine.
* gnu/packages/golang-web.scm (go-github-com-cretz-bine): New variable.

Change-Id: I2c3e8bc8ba22e6b76c26412f332d90f29e6ec76a
-rw-r--r--gnu/packages/golang-web.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/golang-web.scm b/gnu/packages/golang-web.scm
index c442e8ddad..e4c0054539 100644
--- a/gnu/packages/golang-web.scm
+++ b/gnu/packages/golang-web.scm
@@ -973,6 +973,54 @@ Any}.")
            go-golang-org-x-net
            go-golang-org-x-oauth2))))
 
+(define-public go-github-com-cretz-bine
+  (package
+    ;; This package can be used with CGO to statically compile Tor.  This
+    ;; package expects <https://github.com/cretz/tor-static> to be cloned at
+    ;; $GOPATH/src/github.com/cretz/tor-static as if it was fetched with go
+    ;; get.  If you use go modules the expected path would be
+    ;; $GOPATH/pkg/mod/github.com/cretz/tor-static libs.  See
+    ;; <https://github.com/cretz/bine/blob/v0.2.0/process/embedded/process.go#L7>.
+    (name "go-github-com-cretz-bine")
+    (version "0.2.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/cretz/bine")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "16h7j7v4qbwb7zjsbc1p3b67xji7hgis95znz9cj8fw3rqxwvkcs"))))
+    (build-system go-build-system)
+    (arguments
+     (list
+      #:import-path "github.com/cretz/bine"
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'remove-examples
+            (lambda* (#:key import-path #:allow-other-keys)
+              (with-directory-excursion (string-append "src/" import-path)
+                (delete-file-recursively "examples")))))))
+    (native-inputs
+     (list go-github-com-stretchr-testify))
+    (propagated-inputs
+     (list go-golang-org-x-crypto
+           go-golang-org-x-net))
+    (home-page "https://github.com/cretz/bine")
+    (synopsis "Accessing and embedding Tor clients and servers from Golang")
+    (description
+     "Bine is a toolkit to assist in creating Tor clients and servers.
+Features:
+@itemize
+@item full support for the Tor controller API
+@item support for @code{net.Conn} and @code{net.Listen} style APIs
+@item supports statically compiled Tor to embed Tor into the binary
+@item supports v3 onion services
+@item support for embedded control socket in Tor >= 0.3.5
+@end itemize")
+    (license license:expat)))
+
 (define-public go-github-com-datadog-datadog-go
   (package
     (name "go-github-com-datadog-datadog-go")