[-- Attachment #1.1: Type: text/plain, Size: 172 bytes --] Hello Guix! I am opening this thread for patch-series for packaging Bitmask VPN and its dependencies. Jorge (jgart) and I, are working on this. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1.1: Type: text/plain, Size: 307 bytes --] Hello Guix! This v1 patch-series is *not* complete. It has following issues: [1] Last patch has to be finished. [2] Failing tests has to be re-visited. [3] Trailing `#t` in phases has to be removed. [4] Synopsis and Description requires revision. [5] Some lines are too long. Regards, RG. [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 2649 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c3c81ceda..7aac8ec4a8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.31.1
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7aac8ec4a8..7412153e76 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 7412153e76..982cee390e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (synopsis "Go library to run a command after login") + (description "Go library to run a command after login.") + (home-page "https://github.com/emersion/go-autostart") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 982cee390e..5e5791b5d4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,85 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t))))) + (synopsis "Go client library for OpenVPN's management protocol") + (description "This package implements a client for the OpenVPN management +interface. It can be used to monitor and control an OpenVPN process running with +its management port enabled.") + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): New variable. --- gnu/packages/golang.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5e5791b5d4..3cb2d0d9d4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,43 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append (assoc-ref inputs "coreutils") + "/bin/sleep"))) + #t))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Process List Library") + (description "go-ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (home-page "https://github.com/keybase/go-ps") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 3cb2d0d9d4..773f844bcd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "go-daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.31.1
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 773f844bcd..3caaf1816c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Library for writing Tor Pluggable-Transports") + (description "goptlib is a library for writing Tor pluggable transports in Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 3caaf1816c..03ad22d385 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (synopsis "A golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay.") + (home-page "https://github.com/willscott/goturn") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 03ad22d385..b145a9c09b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,157 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "The Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@The handshake uses the Tor Project's ntor handshake with public keys obfuscated +via the Elligator 2 mapping. +@The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b145a9c09b..1f44f36665 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,83 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 1f44f36665..b30ea32a26 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "go-logging is a logging library for Go.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 122 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b30ea32a26..d7f1d90231 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,128 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 d7f1d90231..93295bd3c7 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "golang-set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 93295bd3c7..c1d9610f95 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Go library for working with byte sequences") + (description "monolith-go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-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 c1d9610f95..0bd61749df 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "opentracing-go is a Go platform API for OpenTracing.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 0bd61749df..3360b7e51b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (synopsis "Convert interface into any data type") + (description "Convert interface into any data type.") + (home-page "https://github.com/mufti1/interconv") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.31.1
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3360b7e51b..ee3b73304b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (home-page "https://github.com/aead/chacha20") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 ee3b73304b..41342b3961 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (synopsis "Bloom filter in Go") + (description "Bloom Filter using double hashing.") + (home-page "https://github.com/riobard/go-bloom") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 41342b3961..d7a4e6de81 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks in Go") + (description "Implementation of Shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 d7a4e6de81..48a5350f6e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 48a5350f6e..e281ed373c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Level-based logger") + (description "GoLog is a logging foundation for Go Applications.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 155 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e281ed373c..4fdedafdae 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,161 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3" + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")) + #t))))) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.31.1
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 4fdedafdae..75f9cd7313 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -67,6 +67,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (synopsis "Network Obfuscater") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (home-page "https://0xacab.org/leap/shapeshifter") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.31.1
* gnu/packages/vpn.scm (bitmask-vpn): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/vpn.scm | 114 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..d2edac06ec 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -38,6 +38,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) #:use-module (guix utils) @@ -52,6 +53,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -69,6 +71,118 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask-vpn + (package + (name "bitmask-vpn") + (version "0.21.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0cdgh4mqvalvknck1zjy7dhmjfyhbmn9knya6ymx8dqan308sr")))) + (build-system go-build-system) + (arguments + `(#:tests? #f + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/gui" + "0xacab.org/leap/bitmask-vpn/pkg/backend" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/pickle" + "0xacab.org/leap/bitmask-vpn/pkg/pid" + "0xacab.org/leap/bitmask-vpn/pkg/vpn")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/gui" + "0xacab.org/leap/bitmask-vpn/pkg/backend" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/pickle" + "0xacab.org/leap/bitmask-vpn/pkg/pid" + "0xacab.org/leap/bitmask-vpn/pkg/vpn")) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative))) + (propagated-inputs + `(("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-dchest-siphash" + ,go-github-com-dchest-siphash) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-kardianos-osext" + ,go-github-com-kardianos-osext) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-github-com-rakyll-statik" + ,go-github-com-rakyll-statik) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter))) + (synopsis "Bitmask VPN Client") + (description "Bitmask-VPN is LEAP’s very own VPN client. It allows you to +select from a variety of trusted service provider all from one app. Current +providers include Riseup Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.31.1
[-- Attachment #1.1: Type: text/plain, Size: 295 bytes --] Hello Guix! This version of patch-set still has following issues: [1] Last patch has to be finished. [2] Failing tests has to be re-visited. [3] Trailing `#t` in phases has to be removed. [4] Synopsis and Description requires revision. [5] Some lines are too long. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c3c81ceda..fcfb1fc715 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,8 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.31.1
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fcfb1fc715..4ebef21140 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 4ebef21140..4fcb5cd01a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (synopsis "Go library to run a command after login") + (description "Go library to run a command after login.") + (home-page "https://github.com/emersion/go-autostart") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4fcb5cd01a..7b0f656ada 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,85 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t))))) + (synopsis "Go client library for OpenVPN's management protocol") + (description "This package implements a client for the OpenVPN management +interface. It can be used to monitor and control an OpenVPN process running with +its management port enabled.") + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): New variable. --- gnu/packages/golang.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7b0f656ada..c7d29fc235 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,43 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append (assoc-ref inputs "coreutils") + "/bin/sleep"))) + #t))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Process List Library") + (description "go-ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (home-page "https://github.com/keybase/go-ps") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 c7d29fc235..acc0c1bb49 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "go-daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.31.1
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 acc0c1bb49..3594138169 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Library for writing Tor Pluggable-Transports") + (description "goptlib is a library for writing Tor pluggable transports in Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 3594138169..2539863770 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (synopsis "A golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay.") + (home-page "https://github.com/willscott/goturn") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2539863770..e2d5dfc4e4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,157 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "The Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@The handshake uses the Tor Project's ntor handshake with public keys obfuscated +via the Elligator 2 mapping. +@The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e2d5dfc4e4..19741b4be4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,83 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 19741b4be4..52e6318019 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "go-logging is a logging library for Go.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 122 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 52e6318019..58883dc891 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,128 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 58883dc891..2aaee00080 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "golang-set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2aaee00080..6780ade28c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Go library for working with byte sequences") + (description "monolith-go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-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 6780ade28c..f6db72054e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "opentracing-go is a Go platform API for OpenTracing.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 f6db72054e..9d2d092269 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (synopsis "Convert interface into any data type") + (description "Convert interface into any data type.") + (home-page "https://github.com/mufti1/interconv") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.31.1
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9d2d092269..8554b32fef 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (home-page "https://github.com/aead/chacha20") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 8554b32fef..46b902b70c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (synopsis "Bloom filter in Go") + (description "Bloom Filter using double hashing.") + (home-page "https://github.com/riobard/go-bloom") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 46b902b70c..6805113e05 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks in Go") + (description "Implementation of Shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 6805113e05..6ca92576d2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 6ca92576d2..ef0c35d50b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Level-based logger") + (description "GoLog is a logging foundation for Go Applications.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 155 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ef0c35d50b..cde1627477 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,161 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3" + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")) + #t))))) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.31.1
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 cde1627477..d541b696be 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (synopsis "Network Obfuscater") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (home-page "https://0xacab.org/leap/shapeshifter") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-jezek-xgb): 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 d541b696be..d06a617ebd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-jezek-xgb + (let ((commit "0e0f116e1240ae19099324c3b2632003082841b7") + (revision "155")) + (package + (name "go-github-com-jezek-xgb") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jezek/xgb") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwy88ksh896i78h0k038s5fmg9bgxbphkiznqq5525137m6w7gz")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/jezek/xgb")) + (synopsis "X Go Binding") + (description "XGB is the X Go Binding, which is a low-level API to +communicate with the core X protocol and many of the X extensions. It is +closely modeled after XCB and xpyb.") + (home-page "https://github.com/jezek/xgb") + (license license:bsd-3)))) + (define-public go-0xacab-org-leap-shapeshifter (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") (revision "12")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-burntsushi-xgbutil): New variable. --- gnu/packages/golang.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d06a617ebd..9c182bba3c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,46 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-burntsushi-xgbutil + (let ((commit "ad855c7130460fb6cf40af9302c649a69082a4ee") + (revision "335")) + (package + (name "go-github-com-burntsushi-xgbutil") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/BurntSushi/xgbutil") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zyqinxjgd7w3qzl2jhc8ipyyg1rh7xjxpd85p88m213ak5865bq")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/BurntSushi/xgbutil" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Use 'jezek/xgb' instead of 'BurntSushi/xgb', + ;; as the latter is unmaintained. + (("github.com/BurntSushi/xgb") + "github.com/jezek/xgb")) + #t))))) + (propagated-inputs + `(("go-github-com-jezek-xgb" ,go-github-com-jezek-xgb))) + (synopsis "Utility Library for X Go Binding") + (description "Xgbutil is a utility library designed to work with the X Go +Binding. This project's main goal is to make various X related tasks easier. +For example, binding keys, using the EWMH or ICCCM specs with the window manager, +moving/resizing windows, assigning function callbacks to particular events, +drawing images to a window, etc.") + (home-page "https://github.com/BurntSushi/xgbutil") + (license license:wtfpl2)))) + (define-public go-github-com-jezek-xgb (let ((commit "0e0f116e1240ae19099324c3b2632003082841b7") (revision "155")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-context): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9c182bba3c..7ccb085587 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-context + (let ((commit "c447772a6520c1a3ae6294a7df725ee08230f14e") + (revision "30")) + (package + (name "go-github-com-getlantern-context") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/context") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s1m1pqkwppvvc6biccyxs7wqzmgjyhyqdgfzwm9vp0c6vzr2sg")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/context")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Goroutine-based Context State") + (description "This package provides a stack abstraction that allows nested +contexts similar to jtolds' library, but using Enter() and Exit() instead of +callback functions.") + (home-page "https://github.com/getlantern/context") + (license license:asl2.0)))) + (define-public go-github-com-burntsushi-xgbutil (let ((commit "ad855c7130460fb6cf40af9302c649a69082a4ee") (revision "335")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-ops): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7ccb085587..9e94c8e43d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-ops + (let ((commit "8476b16edcd6719b2399ae70bca5cff3a1547a44") + (revision "21")) + (package + (name "go-github-com-getlantern-ops") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/ops") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mh2xp48x9im4l736l5zxz38kghxa5624nlyfaxmj18xn0jxr8nn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; circular-dependency with 'getlantern/errors' + #:import-path "github.com/getlantern/ops")) + (propagated-inputs + `(("go-github-com-getlantern-context" + ,go-github-com-getlantern-context))) + (synopsis "Track success or failure of operations in code") + (description "Track success or failure of operations in code.") + (home-page "https://github.com/getlantern/ops") + (license license:asl2.0)))) + (define-public go-github-com-getlantern-context (let ((commit "c447772a6520c1a3ae6294a7df725ee08230f14e") (revision "30")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-hex): 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 9e94c8e43d..376cce1fc9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-hex + (let ((commit "c6586a6fe0b7c95eef767657ab1031cbcfc7af66") + (revision "4")) + (package + (name "go-github-com-getlantern-hex") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/hex") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09vbm93y88b8hwv15rqkzrmrjqzl5zj8bijllzh8npibqhh84qsq")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/hex")) + (synopsis "Configurable hex encoding") + (description "Configurable hex encoding.") + (home-page "https://github.com/getlantern/hex") + (license license:bsd-3)))) + (define-public go-github-com-getlantern-ops (let ((commit "8476b16edcd6719b2399ae70bca5cff3a1547a44") (revision "21")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-hidden): 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 376cce1fc9..b780b98d2b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-hidden + (let ((commit "e66e7f8787308d0d5a87a2ebe170f19d43bece78") + (revision "5")) + (package + (name "go-github-com-getlantern-hidden") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/hidden") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zk6ynzaqyif3h61mb8n3qdz1ncbhq1fbfppdaqkzgqjkb1b53iv")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/hidden")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-getlantern-hex" + ,go-github-com-getlantern-hex))) + (synopsis "Hide text in text") + (description "Hide text in text.") + (home-page "https://github.com/getlantern/hidden") + (license license:asl2.0)))) + (define-public go-github-com-getlantern-hex (let ((commit "c6586a6fe0b7c95eef767657ab1031cbcfc7af66") (revision "4")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-go-stack-stack): 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 b780b98d2b..0bd8792c10 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-go-stack-stack + (package + (name "go-github-com-go-stack-stack") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/go-stack/stack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/go-stack/stack")) + (home-page "https://github.com/go-stack/stack") + (synopsis "Stack Utilities for Go") + (description "Stack implements utilities to capture, manipulate, and format +call stacks. It provides a simpler API than package runtime.") + (license license:expat))) + (define-public go-github-com-getlantern-hidden (let ((commit "e66e7f8787308d0d5a87a2ebe170f19d43bece78") (revision "5")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-errors): 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 0bd8792c10..4886a0d326 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-errors + (package + (name "go-github-com-getlantern-errors") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/errors") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ymz5nb9dplrim9sgfb523iqx1x08bxvbv9383ry2zbsfgqkc966")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/errors")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-getlantern-context" + ,go-github-com-getlantern-context) + ("go-github-com-getlantern-hidden" + ,go-github-com-getlantern-hidden) + ("go-github-com-getlantern-ops" + ,go-github-com-getlantern-ops) + ("go-github-com-go-stack-stack" + ,go-github-com-go-stack-stack))) + (home-page "https://github.com/getlantern/errors") + (synopsis "Structured errors for Go") + (description "Structured errors for Go.") + (license license:asl2.0))) + (define-public go-github-com-go-stack-stack (package (name "go-github-com-go-stack-stack") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-oxtoacart-bpool): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4886a0d326..eaca6b9351 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-oxtoacart-bpool + (let ((commit "03653db5a59cd88b481403d312d7c324b56af377") + (revision "18")) + (package + (name "go-github-com-oxtoacart-bpool") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/oxtoacart/bpool") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1crdgm5w6kvcnvdglrrnrfkh5h60ldafwvrv00q97lz3790kgb15")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/oxtoacart/bpool")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Buffer/Byte pool for Go") + (description "Bpool implements leaky pools of byte arrays and buffers as +bounded channels. It is based on the leaky buffer example from the Effective Go +documentation.") + (home-page "https://github.com/oxtoacart/bpool") + (license license:asl2.0)))) + (define-public go-github-com-getlantern-errors (package (name "go-github-com-getlantern-errors") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-golog): New variable. --- gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index eaca6b9351..3e7366f60f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,41 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-golog + (let ((commit "9586b8bde3a95f71c84d9ee2a1a3f778759a76ab") + (revision "25")) + (package + (name "go-github-com-getlantern-golog") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/golog") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pqmvjqh5lv5ldc93srvlq9nwianxyjfvmjzxx4xmncbxgqsxgli")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/golog")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-getlantern-errors" + ,go-github-com-getlantern-errors) + ("go-github-com-getlantern-hidden" + ,go-github-com-getlantern-hidden) + ("go-github-com-getlantern-ops" + ,go-github-com-getlantern-ops) + ("go-github-com-oxtoacart-bpool" + ,go-github-com-oxtoacart-bpool))) + (synopsis "Basic logging for Go") + (description "GoLog provides logging used in many getlantern components.") + (home-page "https://github.com/getlantern/golog") + (license license:asl2.0)))) + (define-public go-github-com-oxtoacart-bpool (let ((commit "03653db5a59cd88b481403d312d7c324b56af377") (revision "18")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-systray): New variable. --- gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3e7366f60f..e9611b6f67 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -55,8 +55,10 @@ #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages base) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) #:use-module (gnu packages pcre) @@ -69,6 +71,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-systray + (package + (name "go-github-com-getlantern-systray") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/systray") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m2n29jmks8rwcwixgmmd5dhpzqw1f7mqyjgyqyycml5w6da2m7z")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/systray")) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+) + ("libappindicator" ,libappindicator))) + (propagated-inputs + `(("go-github-com-getlantern-golog" + ,go-github-com-getlantern-golog) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/getlantern/systray") + (synopsis "System Tray library for Go") + (description "SysTray is a cross-platform Go library to place an icon and +menu in the notification area.") + (license license:asl2.0))) + (define-public go-github-com-getlantern-golog (let ((commit "9586b8bde3a95f71c84d9ee2a1a3f778759a76ab") (revision "25")) -- 2.31.1
* gnu/packages/goloang.scm (go-github-com-gotk3-gotk3): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 110 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e9611b6f67..ad0ba57b78 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -68,9 +68,119 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages web) + #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-gotk3-gotk3 + (package + (name "go-github-com-gotk3-gotk3") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/gotk3/gotk3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d5b4nrf4fwdwv0w2h7m0jh65fcvm3xmjv3aypylzaa4fg8wi4cc")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/gotk3/gotk3" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/gotk3/gotk3/cairo" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gio" + "github.com/gotk3/gotk3/glib" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango")) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/gotk3/gotk3/cairo" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gio" + "github.com/gotk3/gotk3/glib" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/gotk3/gotk3/cairo" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gio" + "github.com/gotk3/gotk3/glib" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango")) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("pango" ,pango))) + (home-page "https://github.com/gotk3/gotk3") + (synopsis "Go bindings for GTK3") + (description "Gotk3 provides Go bindings for GTK 3 and dependent projects.") + (license license:isc))) + (define-public go-github-com-getlantern-systray (package (name "go-github-com-getlantern-systray") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-jmshal-go-locale): 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 ad0ba57b78..d9a2f40285 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -72,6 +72,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-jmshal-go-locale + (let ((commit "eb00fb25cc61bca7a5331ae576ae4a3d5572a1e4") + (revision "8")) + (package + (name "go-github-com-jmshal-go-locale") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jmshal/go-locale") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05lyrcsrj0vzk30laa9zyy574ijh6f0ybzdv65w4l6n5yibjgnwa")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/jmshal/go-locale")) + (synopsis "User locale detection for Go") + (description "User locale detection for Go.") + (home-page "https://github.com/jmshal/go-locale") + (license license:expat)))) + (define-public go-github-com-gotk3-gotk3 (package (name "go-github-com-gotk3-gotk3") -- 2.31.1
* gnu/packages/gnome.scm (gtkglarea): New variable. --- gnu/packages/gnome.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index be458c07bb..6cbe219102 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -218,6 +218,37 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public gtkglarea + (package + (name "gtkglarea") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "1pl2vdj6l64j864ilhkq1bcggb3hrlxjwk5m029i7xfjfxc587lf")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags + (list + "--disable-static"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("mesa" ,mesa))) + (propagated-inputs + `(("gtk+" ,gtk+-2))) + (synopsis "OpenGL widget for GTK+") + (description "GtkGLArea is an OpenGL widget for GTK+ GUI toolkit. + Just as GTK+ is build on top of GDK, GtkGLArea is built on top of gdkgl which + is basically wrapper around GLX functions.") + (home-page "https://developer.gnome.org/gtk3/stable/GtkGLArea.html") + (license license:lgpl2.0+))) + (define-public gupnp-igd (package (name "gupnp-igd") -- 2.31.1
* gnu/packages/gtk.scm (gtkspell2): New variable. --- gnu/packages/gtk.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index e64dc69798..1ab8d57f30 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1914,6 +1914,33 @@ glass artworks done by Venicians glass blowers.") misspelled words in a GtkTextView widget.") (license license:gpl2+))) +(define-public gtkspell2 + (package + (inherit gtkspell3) + (name "gtkspell2") + (version "2.0.16") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/gtkspell/" + version "/gtkspell-" version ".tar.gz")) + (sha256 + (base32 "00hdv28bp72kg1mq2jdz1sdw2b8mb9iclsp7jdqwpck705bdriwg")))) + (arguments + `(#:configure-flags + (list + "--disable-static"))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2))) + (inputs + `(("enchant" ,enchant-1.6) + ("pango" ,pango))) + (propagated-inputs + `(("gtk+" ,gtk+-2))))) + (define-public clipit (package (name "clipit") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mattn-go-gtk): New variable. --- gnu/packages/golang.scm | 135 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d9a2f40285..691a5fed00 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -58,6 +58,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) @@ -72,6 +73,140 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mattn-go-gtk + (let ((commit "af2e013261f57706ec683a61f85e8759a3faf6be") + (revision "1134")) + (package + (name "go-github-com-mattn-go-gtk") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mattn/go-gtk") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zcvxz45iinamxnpvwf5ij9f6dk62bdbjg1vaggvyz79z5y9llk2")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mattn/go-gtk" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gdkpixbuf" + "github.com/mattn/go-gtk/gio" + "github.com/mattn/go-gtk/glib" + "github.com/mattn/go-gtk/gtk" + "github.com/mattn/go-gtk/gtkgl" + "github.com/mattn/go-gtk/gtksourceview" + "github.com/mattn/go-gtk/gtkspell" + "github.com/mattn/go-gtk/pango" + "github.com/mattn/go-gtk/tools/gogtkinfo" + "github.com/mattn/go-gtk/tools/make_inline_pixbuf")) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gdkpixbuf" + "github.com/mattn/go-gtk/gio" + "github.com/mattn/go-gtk/glib" + "github.com/mattn/go-gtk/gtk" + "github.com/mattn/go-gtk/gtkgl" + "github.com/mattn/go-gtk/gtksourceview" + "github.com/mattn/go-gtk/gtkspell" + "github.com/mattn/go-gtk/pango" + "github.com/mattn/go-gtk/tools/gogtkinfo")) + ;; ERROR: Println arg list ends with redundant newline. + ;;"github.com/mattn/go-gtk/tools/make_inline_pixbuf")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gdkpixbuf" + "github.com/mattn/go-gtk/gio" + "github.com/mattn/go-gtk/glib" + "github.com/mattn/go-gtk/gtk" + "github.com/mattn/go-gtk/gtkgl" + "github.com/mattn/go-gtk/gtksourceview" + "github.com/mattn/go-gtk/gtkspell" + "github.com/mattn/go-gtk/pango" + "github.com/mattn/go-gtk/tools/gogtkinfo" + "github.com/mattn/go-gtk/tools/make_inline_pixbuf")) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify) + ("gtk+:bin" ,gtk+-2 "bin") + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("gdk-pixbuf" ,gdk-pixbuf+svg) + ("glib" ,glib) + ("gtk+" ,gtk+-2) + ("gtkgl" ,gtkglarea) + ("gtksourceview" ,gtksourceview-2) + ("gtkspell" ,gtkspell2) + ("pango" ,pango))) + (propagated-inputs + `(("go-github-com-mattn-go-pointer" + ,go-github-com-mattn-go-pointer))) + (home-page "https://github.com/mattn/go-gtk") + (synopsis "Go bindings for GTK") + (description "Go bindings for GTK.") + (license license:bsd-3)))) + (define-public go-github-com-jmshal-go-locale (let ((commit "eb00fb25cc61bca7a5331ae576ae4a3d5572a1e4") (revision "8")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-grd-glfw3): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 691a5fed00..7661813489 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -57,6 +57,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) @@ -73,6 +74,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-grd-glfw3 + (let ((commit "55390ea70f0d427a7ed40c26ea19e82fce17c927") + (revision "100")) + (package + (name "go-github-com-grd-glfw3") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/grd/glfw3") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15avw38mgx54a3rmlz97ryczpcbibn00rd8486w2si6f1zcawpxw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/grd/glfw3")) + (inputs + `(("glfw" ,glfw))) + (home-page "https://github.com/grd/glfw3") + (synopsis "Go bindings for GLFW3") + (description "Go bindings for GLFW3.") + (license license:bsd-3)))) + (define-public go-github-com-mattn-go-gtk (let ((commit "af2e013261f57706ec683a61f85e8759a3faf6be") (revision "1134")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-go-gl-glow): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7661813489..3a632b0705 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-go-gl-glow + (let ((commit "640349a6105e64eb9e5085d2afee1ab2ec67d2dc") + (revision "300")) + (package + (name "go-github-com-go-gl-glow") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/go-gl/glow") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lzibraqjkzibvxw1lagrlzpjsqbp5pd4fcyi6ygqhgja0ik3zd7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/go-gl/glow")) + (propagated-inputs + `(("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (home-page "https://github.com/go-gl/glow") + (synopsis "Go binding generator for OpenGL") + (description "Glow is an OpenGL binding generator for Go. It parses the +OpenGL XML API registry and the EGL XML API registry to produce a +machine-generated cgo bridge between Go functions and native OpenGL functions.") + (license license:expat)))) + (define-public go-github-com-grd-glfw3 (let ((commit "55390ea70f0d427a7ed40c26ea19e82fce17c927") (revision "100")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-go-gl-gl): New variable. --- gnu/packages/golang.scm | 134 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3a632b0705..074e8e6bdf 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,140 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-go-gl-gl + (let ((commit "69f74958bac0960e82e8ac5977ff073af29381ba") + (revision "87")) + (package + (name "go-github-com-go-gl-gl") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/go-gl/gl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15bqz4dax3b5ha9qcc855aczsa89qa65p578dnjrbww53q31s5w0")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/go-gl/gl" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/go-gl/gl/all-core/gl" + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/gl/v3.1/gles2" + "github.com/go-gl/gl/v3.2-compatibility/gl" + "github.com/go-gl/gl/v3.2-core/gl" + "github.com/go-gl/gl/v3.3-compatibility/gl" + "github.com/go-gl/gl/v3.3-core/gl" + "github.com/go-gl/gl/v4.1-compatibility/gl" + "github.com/go-gl/gl/v4.1-core/gl" + "github.com/go-gl/gl/v4.2-compatibility/gl" + "github.com/go-gl/gl/v4.2-core/gl" + "github.com/go-gl/gl/v4.3-compatibility/gl" + "github.com/go-gl/gl/v4.3-core/gl" + "github.com/go-gl/gl/v4.4-compatibility/gl" + "github.com/go-gl/gl/v4.4-core/gl" + "github.com/go-gl/gl/v4.5-compatibility/gl" + "github.com/go-gl/gl/v4.5-core/gl" + "github.com/go-gl/gl/v4.6-compatibility/gl" + "github.com/go-gl/gl/v4.6-core/gl")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/go-gl/gl/all-core/gl" + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/gl/v3.1/gles2" + "github.com/go-gl/gl/v3.2-compatibility/gl" + "github.com/go-gl/gl/v3.2-core/gl" + "github.com/go-gl/gl/v3.3-compatibility/gl" + "github.com/go-gl/gl/v3.3-core/gl" + "github.com/go-gl/gl/v4.1-compatibility/gl" + "github.com/go-gl/gl/v4.1-core/gl" + "github.com/go-gl/gl/v4.2-compatibility/gl" + "github.com/go-gl/gl/v4.2-core/gl" + "github.com/go-gl/gl/v4.3-compatibility/gl" + "github.com/go-gl/gl/v4.3-core/gl" + "github.com/go-gl/gl/v4.4-compatibility/gl" + "github.com/go-gl/gl/v4.4-core/gl" + "github.com/go-gl/gl/v4.5-compatibility/gl" + "github.com/go-gl/gl/v4.5-core/gl" + "github.com/go-gl/gl/v4.6-compatibility/gl" + "github.com/go-gl/gl/v4.6-core/gl")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/go-gl/gl/all-core/gl" + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/gl/v3.1/gles2" + "github.com/go-gl/gl/v3.2-compatibility/gl" + "github.com/go-gl/gl/v3.2-core/gl" + "github.com/go-gl/gl/v3.3-compatibility/gl" + "github.com/go-gl/gl/v3.3-core/gl" + "github.com/go-gl/gl/v4.1-compatibility/gl" + "github.com/go-gl/gl/v4.1-core/gl" + "github.com/go-gl/gl/v4.2-compatibility/gl" + "github.com/go-gl/gl/v4.2-core/gl" + "github.com/go-gl/gl/v4.3-compatibility/gl" + "github.com/go-gl/gl/v4.3-core/gl" + "github.com/go-gl/gl/v4.4-compatibility/gl" + "github.com/go-gl/gl/v4.4-core/gl" + "github.com/go-gl/gl/v4.5-compatibility/gl" + "github.com/go-gl/gl/v4.5-core/gl" + "github.com/go-gl/gl/v4.6-compatibility/gl" + "github.com/go-gl/gl/v4.6-core/gl")) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("mesa" ,mesa))) + (propagated-inputs + `(("go-github-com-go-gl-glow" ,go-github-com-go-gl-glow))) + (home-page "https://github.com/go-gl/gl") + (synopsis "Go bindings for OpenGL") + (description "Go-GL holds Go bindings to various OpenGL versions.") + (license license:expat)))) + (define-public go-github-com-go-gl-glow (let ((commit "640349a6105e64eb9e5085d2afee1ab2ec67d2dc") (revision "300")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-skelterjohn-go-wde): New variable. --- gnu/packages/golang.scm | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 074e8e6bdf..e5e3098e97 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,49 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-skelterjohn-go-wde + (let ((commit "adc3f78cdb457e9db21bfff010c85ed97315d8d7") + (revision "203")) + (package + (name "go-github-com-skelterjohn-go-wde") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/skelterjohn/go.wde") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zxdilxd7iyv367xv7qx7ca0v6fkw5l8gy1bv8s762akx0vqbd85")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/skelterjohn/go.wde" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Use 'jezek/xgb' instead of 'BurntSushi/xgb', + ;; as the latter is unmaintained. + (("github.com/BurntSushi/xgb") + "github.com/jezek/xgb")) + #t))))) + (propagated-inputs + `(("go-github-com-go-gl-gl" + ,go-github-com-go-gl-gl) + ("go-github-com-grd-glfw3" + ,go-github-com-grd-glfw3) + ("go-github-com-jezek-xgb" + ,go-github-com-jezek-xgb) + ("go-github-com-burntsushi-xgbutil" + ,go-github-com-burntsushi-xgbutil))) + (home-page "https://github.com/skelterjohn/go.wde") + (synopsis "Windows, drawing and events for Go") + (description "Go-WDE provides (W)indows, (D)rawing and (E)vents for Go.") + (license license:asl2.0)))) + (define-public go-github-com-go-gl-gl (let ((commit "69f74958bac0960e82e8ac5977ff073af29381ba") (revision "87")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-skratchdot-open-golang): New variable. --- gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e5e3098e97..d6e54c9d8b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,41 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-skratchdot-open-golang + (let ((commit "eef8423979666925a58eb77f9db583e54320d5a4") + (revision "28")) + (package + (name "go-github-com-skratchdot-open-golang") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/skratchdot/open-golang") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n6387csjn024db8wldadsiy8ljz7lk7szl6ls28fcbkax7rw86y")) + (modules '((guix build utils))) + (snippet + `(begin + (delete-file-recursively "vendor") + #t)))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; requires networking + #:unpack-path "github.com/skratchdot/open-golang" + #:import-path "github.com/skratchdot/open-golang/open")) + (inputs + `(("xdg-open" ,xdg-utils))) + (home-page "https://github.com/skratchdot/open-golang") + (synopsis "Proxy for XDG-Open") + (description "Open-GoLang provides a module to open a file, directory, or +URI using the OS's default application for that object type. Optionally, you can +specify an application to use.") + (license license:expat)))) + (define-public go-github-com-skelterjohn-go-wde (let ((commit "adc3f78cdb457e9db21bfff010c85ed97315d8d7") (revision "203")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-sqweek-dialog): 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 d6e54c9d8b..f92e14ad28 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sqweek-dialog + (let ((commit "8a3d98e8211d6ee4351f31eb597043631002144b") + (revision "30")) + (package + (name "go-github-com-sqweek-dialog") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sqweek/dialog") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sdb4nddjyx1dkddk7cga71ymv1fd69pzdf4nywvfb33nfqqbvl1")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sqweek/dialog")) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (home-page "https://github.com/sqweek/dialog") + (synopsis "Dialog API for Go") + (description "Dialog is a simple cross-platform dialog API for go-lang.") + (license license:isc)))) + (define-public go-github-com-skratchdot-open-golang (let ((commit "eef8423979666925a58eb77f9db583e54320d5a4") (revision "28")) -- 2.31.1
* gnu/packages/golang.scm (go-0xacab-org-leap-go-dialog): 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 f92e14ad28..96bf6e6551 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,38 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-go-dialog + (let ((commit "0ee8438431a0dca8f25ea788d74bfe7e88078b7a") + (revision "25")) + (package + (name "go-0xacab-org-leap-go-dialog") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/go-dialog") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn2dxpg6162f7vyr66vnwhy31wnjj7f14bqdcs7q0wk890kfh21")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/go-dialog")) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (propagated-inputs + `(("go-github-com-gotk3-gotk3" + ,go-github-com-gotk3-gotk3))) + (home-page "https://0xacab.org/leap/go-dialog") + (synopsis "Dialog API for Go") + (description "Dialog is a simple cross-platform dialog API for go-lang.") + (license license:isc)))) + (define-public go-github-com-sqweek-dialog (let ((commit "8a3d98e8211d6ee4351f31eb597043631002144b") (revision "30")) -- 2.31.1
* gnu/packages/vpn.scm (bitmask-vpn): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/vpn.scm | 150 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..12d2b6edd2 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -15,6 +15,8 @@ ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +40,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) #:use-module (guix utils) @@ -52,6 +55,8 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) + #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -69,6 +74,151 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask-vpn + (package + (name "bitmask-vpn") + (version "0.20.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04sh69m5fq3gml4xgzv92z8i3hay98n9llq9p7p6q9q81s8q8849")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "0xacab.org/leap/bitmask-vpn" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + #t)) + (add-after 'setup-go-environment 'insert-shapeshifter + ;; For some reason these packages are left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((go-dialog (assoc-ref inputs "go-0xacab-org-leap-go-dialog")) + (go-dialog-src (string-append go-dialog "/src")) + (shapeshifter (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively go-dialog-src "src") + (copy-recursively shapeshifter-src "src")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t))))) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper))) + (inputs + `(("gtk+" ,gtk+) + ("libappindicator" ,libappindicator))) + (propagated-inputs + `(("go-0xacab-org-leap-go-dialog" + ,go-0xacab-org-leap-go-dialog) + ("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-getlantern-systray" + ,go-github-com-getlantern-systray) + ("go-github-com-jmshal-go-locale" + ,go-github-com-jmshal-go-locale) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-github-com-skratchdot-open-golang" + ,go-github-com-skratchdot-open-golang) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (synopsis "Bitmask VPN Client") + (description "Bitmask-VPN is LEAP’s very own VPN client. It allows you to +select from a variety of trusted service provider all from one app. Current +providers include Riseup Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.31.1
[-- Attachment #1: Type: text/plain, Size: 1306 bytes --] One comment about this patch. Raghav Gururajan via Guix-patches via schreef op do 03-06-2021 om 16:51 [-0400]: > > + (replace 'build > + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) > + (for-each > + (lambda (directory) > + ((assoc-ref %standard-phases 'build) > + #:source source > + #:system system > + #:outputs outputs > + #:search-paths search-paths > + #:build-flags build-flags > + #:unpack-path unpack-path > + #:inputs inputs > + #:import-path directory)) > + (list [...] This can be done a bit simpler, and less prone to breakage if/when a new keyword argument is introduced at some poit in the future (untested): (replace 'build (lambda arguments (lambda (directory) (apply (assoc-ref %standard-phases 'build) `(,@arguments #:directory ,directory))))) WDYT? Likewise in other places. Also, trailing #t in phases aren't required anymore (but harmless), though you probably know that already. (The warning should disappear when core-updates is merged.) Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1: Type: text/plain, Size: 936 bytes --] Raghav Gururajan via Guix-patches via schreef op do 03-06-2021 om 05:57 [-0400]: > + (modify-phases %standard-phases > + (add-after 'unpack 'fix-tests > + (lambda* (#:key inputs #:allow-other-keys) > + (substitute* (find-files "." ".*test\\.go") > + (("/bin/sleep") > + (string-append (assoc-ref inputs "coreutils") > + "/bin/sleep"))) When cross-compiling, coreutils is not in 'inputs', but in 'native-inputs', right? So this would lead to a build error when cross-compiling. (assoc-ref inputs "coreutils") would return #f, thus you'd get an exception ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure string-append: Wrong type (expecting string): #f I would make this (untested): (sring-append (assoc-ref (or native-inputs inputs) "coreutils") "/bin/sleep") Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 259 bytes --] Hello Guix! This version of patch-set still has following issues: [1] Failing tests has to be re-visited. [2] Trailing `#t` in phases has to be removed. [3] Synopsis and Description requires revision. [4] Some lines are too long. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c3c81ceda..fcfb1fc715 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,8 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.31.1
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fcfb1fc715..4ebef21140 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 4ebef21140..4fcb5cd01a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (synopsis "Go library to run a command after login") + (description "Go library to run a command after login.") + (home-page "https://github.com/emersion/go-autostart") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4fcb5cd01a..7b0f656ada 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,85 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")) + #t))))) + (synopsis "Go client library for OpenVPN's management protocol") + (description "This package implements a client for the OpenVPN management +interface. It can be used to monitor and control an OpenVPN process running with +its management port enabled.") + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): New variable. --- gnu/packages/golang.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7b0f656ada..c7d29fc235 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,43 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append (assoc-ref inputs "coreutils") + "/bin/sleep"))) + #t))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Process List Library") + (description "go-ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (home-page "https://github.com/keybase/go-ps") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 c7d29fc235..acc0c1bb49 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "go-daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.31.1
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 acc0c1bb49..3594138169 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Library for writing Tor Pluggable-Transports") + (description "goptlib is a library for writing Tor pluggable transports in Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 3594138169..2539863770 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (synopsis "A golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay.") + (home-page "https://github.com/willscott/goturn") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2539863770..e2d5dfc4e4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,157 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")) + #t))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "The Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@The handshake uses the Tor Project's ntor handshake with public keys obfuscated +via the Elligator 2 mapping. +@The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e2d5dfc4e4..19741b4be4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,83 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")) + #t))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 19741b4be4..52e6318019 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "go-logging is a logging library for Go.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 122 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 52e6318019..58883dc891 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,128 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")) + #t))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 58883dc891..2aaee00080 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "golang-set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2aaee00080..6780ade28c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Go library for working with byte sequences") + (description "monolith-go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-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 6780ade28c..f6db72054e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "opentracing-go is a Go platform API for OpenTracing.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 f6db72054e..9d2d092269 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (synopsis "Convert interface into any data type") + (description "Convert interface into any data type.") + (home-page "https://github.com/mufti1/interconv") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.31.1
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9d2d092269..8554b32fef 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (home-page "https://github.com/aead/chacha20") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 8554b32fef..46b902b70c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (synopsis "Bloom filter in Go") + (description "Bloom Filter using double hashing.") + (home-page "https://github.com/riobard/go-bloom") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 46b902b70c..6805113e05 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks in Go") + (description "Implementation of Shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 6805113e05..6ca92576d2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 6ca92576d2..ef0c35d50b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Level-based logger") + (description "GoLog is a logging foundation for Go Applications.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 155 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ef0c35d50b..cde1627477 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,161 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3" + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")) + #t))))) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.31.1
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 cde1627477..d541b696be 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (synopsis "Network Obfuscater") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (home-page "https://0xacab.org/leap/shapeshifter") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-jezek-xgb): 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 d541b696be..d06a617ebd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-jezek-xgb + (let ((commit "0e0f116e1240ae19099324c3b2632003082841b7") + (revision "155")) + (package + (name "go-github-com-jezek-xgb") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jezek/xgb") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwy88ksh896i78h0k038s5fmg9bgxbphkiznqq5525137m6w7gz")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/jezek/xgb")) + (synopsis "X Go Binding") + (description "XGB is the X Go Binding, which is a low-level API to +communicate with the core X protocol and many of the X extensions. It is +closely modeled after XCB and xpyb.") + (home-page "https://github.com/jezek/xgb") + (license license:bsd-3)))) + (define-public go-0xacab-org-leap-shapeshifter (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") (revision "12")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-burntsushi-xgbutil): New variable. --- gnu/packages/golang.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d06a617ebd..9c182bba3c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,46 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-burntsushi-xgbutil + (let ((commit "ad855c7130460fb6cf40af9302c649a69082a4ee") + (revision "335")) + (package + (name "go-github-com-burntsushi-xgbutil") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/BurntSushi/xgbutil") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zyqinxjgd7w3qzl2jhc8ipyyg1rh7xjxpd85p88m213ak5865bq")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/BurntSushi/xgbutil" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Use 'jezek/xgb' instead of 'BurntSushi/xgb', + ;; as the latter is unmaintained. + (("github.com/BurntSushi/xgb") + "github.com/jezek/xgb")) + #t))))) + (propagated-inputs + `(("go-github-com-jezek-xgb" ,go-github-com-jezek-xgb))) + (synopsis "Utility Library for X Go Binding") + (description "Xgbutil is a utility library designed to work with the X Go +Binding. This project's main goal is to make various X related tasks easier. +For example, binding keys, using the EWMH or ICCCM specs with the window manager, +moving/resizing windows, assigning function callbacks to particular events, +drawing images to a window, etc.") + (home-page "https://github.com/BurntSushi/xgbutil") + (license license:wtfpl2)))) + (define-public go-github-com-jezek-xgb (let ((commit "0e0f116e1240ae19099324c3b2632003082841b7") (revision "155")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-context): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9c182bba3c..7ccb085587 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-context + (let ((commit "c447772a6520c1a3ae6294a7df725ee08230f14e") + (revision "30")) + (package + (name "go-github-com-getlantern-context") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/context") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s1m1pqkwppvvc6biccyxs7wqzmgjyhyqdgfzwm9vp0c6vzr2sg")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/context")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Goroutine-based Context State") + (description "This package provides a stack abstraction that allows nested +contexts similar to jtolds' library, but using Enter() and Exit() instead of +callback functions.") + (home-page "https://github.com/getlantern/context") + (license license:asl2.0)))) + (define-public go-github-com-burntsushi-xgbutil (let ((commit "ad855c7130460fb6cf40af9302c649a69082a4ee") (revision "335")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-ops): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7ccb085587..9e94c8e43d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-ops + (let ((commit "8476b16edcd6719b2399ae70bca5cff3a1547a44") + (revision "21")) + (package + (name "go-github-com-getlantern-ops") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/ops") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1mh2xp48x9im4l736l5zxz38kghxa5624nlyfaxmj18xn0jxr8nn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; circular-dependency with 'getlantern/errors' + #:import-path "github.com/getlantern/ops")) + (propagated-inputs + `(("go-github-com-getlantern-context" + ,go-github-com-getlantern-context))) + (synopsis "Track success or failure of operations in code") + (description "Track success or failure of operations in code.") + (home-page "https://github.com/getlantern/ops") + (license license:asl2.0)))) + (define-public go-github-com-getlantern-context (let ((commit "c447772a6520c1a3ae6294a7df725ee08230f14e") (revision "30")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-hex): 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 9e94c8e43d..376cce1fc9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-hex + (let ((commit "c6586a6fe0b7c95eef767657ab1031cbcfc7af66") + (revision "4")) + (package + (name "go-github-com-getlantern-hex") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/hex") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "09vbm93y88b8hwv15rqkzrmrjqzl5zj8bijllzh8npibqhh84qsq")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/hex")) + (synopsis "Configurable hex encoding") + (description "Configurable hex encoding.") + (home-page "https://github.com/getlantern/hex") + (license license:bsd-3)))) + (define-public go-github-com-getlantern-ops (let ((commit "8476b16edcd6719b2399ae70bca5cff3a1547a44") (revision "21")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-hidden): 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 376cce1fc9..b780b98d2b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-hidden + (let ((commit "e66e7f8787308d0d5a87a2ebe170f19d43bece78") + (revision "5")) + (package + (name "go-github-com-getlantern-hidden") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/hidden") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zk6ynzaqyif3h61mb8n3qdz1ncbhq1fbfppdaqkzgqjkb1b53iv")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/hidden")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-getlantern-hex" + ,go-github-com-getlantern-hex))) + (synopsis "Hide text in text") + (description "Hide text in text.") + (home-page "https://github.com/getlantern/hidden") + (license license:asl2.0)))) + (define-public go-github-com-getlantern-hex (let ((commit "c6586a6fe0b7c95eef767657ab1031cbcfc7af66") (revision "4")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-go-stack-stack): 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 b780b98d2b..0bd8792c10 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-go-stack-stack + (package + (name "go-github-com-go-stack-stack") + (version "1.8.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/go-stack/stack") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/go-stack/stack")) + (home-page "https://github.com/go-stack/stack") + (synopsis "Stack Utilities for Go") + (description "Stack implements utilities to capture, manipulate, and format +call stacks. It provides a simpler API than package runtime.") + (license license:expat))) + (define-public go-github-com-getlantern-hidden (let ((commit "e66e7f8787308d0d5a87a2ebe170f19d43bece78") (revision "5")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-errors): 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 0bd8792c10..4886a0d326 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-errors + (package + (name "go-github-com-getlantern-errors") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/errors") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ymz5nb9dplrim9sgfb523iqx1x08bxvbv9383ry2zbsfgqkc966")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/errors")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-getlantern-context" + ,go-github-com-getlantern-context) + ("go-github-com-getlantern-hidden" + ,go-github-com-getlantern-hidden) + ("go-github-com-getlantern-ops" + ,go-github-com-getlantern-ops) + ("go-github-com-go-stack-stack" + ,go-github-com-go-stack-stack))) + (home-page "https://github.com/getlantern/errors") + (synopsis "Structured errors for Go") + (description "Structured errors for Go.") + (license license:asl2.0))) + (define-public go-github-com-go-stack-stack (package (name "go-github-com-go-stack-stack") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-oxtoacart-bpool): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4886a0d326..eaca6b9351 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-oxtoacart-bpool + (let ((commit "03653db5a59cd88b481403d312d7c324b56af377") + (revision "18")) + (package + (name "go-github-com-oxtoacart-bpool") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/oxtoacart/bpool") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1crdgm5w6kvcnvdglrrnrfkh5h60ldafwvrv00q97lz3790kgb15")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/oxtoacart/bpool")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (synopsis "Buffer/Byte pool for Go") + (description "Bpool implements leaky pools of byte arrays and buffers as +bounded channels. It is based on the leaky buffer example from the Effective Go +documentation.") + (home-page "https://github.com/oxtoacart/bpool") + (license license:asl2.0)))) + (define-public go-github-com-getlantern-errors (package (name "go-github-com-getlantern-errors") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-golog): New variable. --- gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index eaca6b9351..3e7366f60f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,41 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-golog + (let ((commit "9586b8bde3a95f71c84d9ee2a1a3f778759a76ab") + (revision "25")) + (package + (name "go-github-com-getlantern-golog") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/golog") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pqmvjqh5lv5ldc93srvlq9nwianxyjfvmjzxx4xmncbxgqsxgli")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/golog")) + (native-inputs + `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-getlantern-errors" + ,go-github-com-getlantern-errors) + ("go-github-com-getlantern-hidden" + ,go-github-com-getlantern-hidden) + ("go-github-com-getlantern-ops" + ,go-github-com-getlantern-ops) + ("go-github-com-oxtoacart-bpool" + ,go-github-com-oxtoacart-bpool))) + (synopsis "Basic logging for Go") + (description "GoLog provides logging used in many getlantern components.") + (home-page "https://github.com/getlantern/golog") + (license license:asl2.0)))) + (define-public go-github-com-oxtoacart-bpool (let ((commit "03653db5a59cd88b481403d312d7c324b56af377") (revision "18")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-getlantern-systray): New variable. --- gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3e7366f60f..e9611b6f67 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -55,8 +55,10 @@ #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages base) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) #:use-module (gnu packages pcre) @@ -69,6 +71,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-getlantern-systray + (package + (name "go-github-com-getlantern-systray") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/getlantern/systray") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m2n29jmks8rwcwixgmmd5dhpzqw1f7mqyjgyqyycml5w6da2m7z")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/getlantern/systray")) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+) + ("libappindicator" ,libappindicator))) + (propagated-inputs + `(("go-github-com-getlantern-golog" + ,go-github-com-getlantern-golog) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/getlantern/systray") + (synopsis "System Tray library for Go") + (description "SysTray is a cross-platform Go library to place an icon and +menu in the notification area.") + (license license:asl2.0))) + (define-public go-github-com-getlantern-golog (let ((commit "9586b8bde3a95f71c84d9ee2a1a3f778759a76ab") (revision "25")) -- 2.31.1
* gnu/packages/goloang.scm (go-github-com-gotk3-gotk3): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 110 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e9611b6f67..ad0ba57b78 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -68,9 +68,119 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages web) + #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-gotk3-gotk3 + (package + (name "go-github-com-gotk3-gotk3") + (version "0.5.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/gotk3/gotk3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1d5b4nrf4fwdwv0w2h7m0jh65fcvm3xmjv3aypylzaa4fg8wi4cc")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/gotk3/gotk3" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/gotk3/gotk3/cairo" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gio" + "github.com/gotk3/gotk3/glib" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango")) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/gotk3/gotk3/cairo" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gio" + "github.com/gotk3/gotk3/glib" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/gotk3/gotk3/cairo" + "github.com/gotk3/gotk3/gdk" + "github.com/gotk3/gotk3/gio" + "github.com/gotk3/gotk3/glib" + "github.com/gotk3/gotk3/gtk" + "github.com/gotk3/gotk3/pango")) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("pango" ,pango))) + (home-page "https://github.com/gotk3/gotk3") + (synopsis "Go bindings for GTK3") + (description "Gotk3 provides Go bindings for GTK 3 and dependent projects.") + (license license:isc))) + (define-public go-github-com-getlantern-systray (package (name "go-github-com-getlantern-systray") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-jmshal-go-locale): 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 ad0ba57b78..d9a2f40285 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -72,6 +72,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-jmshal-go-locale + (let ((commit "eb00fb25cc61bca7a5331ae576ae4a3d5572a1e4") + (revision "8")) + (package + (name "go-github-com-jmshal-go-locale") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/jmshal/go-locale") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "05lyrcsrj0vzk30laa9zyy574ijh6f0ybzdv65w4l6n5yibjgnwa")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/jmshal/go-locale")) + (synopsis "User locale detection for Go") + (description "User locale detection for Go.") + (home-page "https://github.com/jmshal/go-locale") + (license license:expat)))) + (define-public go-github-com-gotk3-gotk3 (package (name "go-github-com-gotk3-gotk3") -- 2.31.1
* gnu/packages/gnome.scm (gtkglarea): New variable. --- gnu/packages/gnome.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2f579a2f82..837ab3564b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -219,6 +219,37 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public gtkglarea + (package + (name "gtkglarea") + (version "2.1.0") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 "1pl2vdj6l64j864ilhkq1bcggb3hrlxjwk5m029i7xfjfxc587lf")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags + (list + "--disable-static"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("mesa" ,mesa))) + (propagated-inputs + `(("gtk+" ,gtk+-2))) + (synopsis "OpenGL widget for GTK+") + (description "GtkGLArea is an OpenGL widget for GTK+ GUI toolkit. + Just as GTK+ is build on top of GDK, GtkGLArea is built on top of gdkgl which + is basically wrapper around GLX functions.") + (home-page "https://developer.gnome.org/gtk3/stable/GtkGLArea.html") + (license license:lgpl2.0+))) + (define-public gupnp-igd (package (name "gupnp-igd") -- 2.31.1
* gnu/packages/gtk.scm (gtkspell2): New variable. --- gnu/packages/gtk.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 138fa7c314..c8c7d1e718 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -1914,6 +1914,33 @@ glass artworks done by Venicians glass blowers.") misspelled words in a GtkTextView widget.") (license license:gpl2+))) +(define-public gtkspell2 + (package + (inherit gtkspell3) + (name "gtkspell2") + (version "2.0.16") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/gtkspell/" + version "/gtkspell-" version ".tar.gz")) + (sha256 + (base32 "00hdv28bp72kg1mq2jdz1sdw2b8mb9iclsp7jdqwpck705bdriwg")))) + (arguments + `(#:configure-flags + (list + "--disable-static"))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2))) + (inputs + `(("enchant" ,enchant-1.6) + ("pango" ,pango))) + (propagated-inputs + `(("gtk+" ,gtk+-2))))) + (define-public clipit (package (name "clipit") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mattn-go-gtk): New variable. --- gnu/packages/golang.scm | 135 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d9a2f40285..691a5fed00 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -58,6 +58,7 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) #:use-module (gnu packages lua) #:use-module (gnu packages mp3) @@ -72,6 +73,140 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mattn-go-gtk + (let ((commit "af2e013261f57706ec683a61f85e8759a3faf6be") + (revision "1134")) + (package + (name "go-github-com-mattn-go-gtk") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mattn/go-gtk") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zcvxz45iinamxnpvwf5ij9f6dk62bdbjg1vaggvyz79z5y9llk2")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mattn/go-gtk" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gdkpixbuf" + "github.com/mattn/go-gtk/gio" + "github.com/mattn/go-gtk/glib" + "github.com/mattn/go-gtk/gtk" + "github.com/mattn/go-gtk/gtkgl" + "github.com/mattn/go-gtk/gtksourceview" + "github.com/mattn/go-gtk/gtkspell" + "github.com/mattn/go-gtk/pango" + "github.com/mattn/go-gtk/tools/gogtkinfo" + "github.com/mattn/go-gtk/tools/make_inline_pixbuf")) + #t)) + (add-before 'check 'pre-check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; Tests write to $HOME. + (setenv "HOME" (getcwd)) + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getcwd)) + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gdkpixbuf" + "github.com/mattn/go-gtk/gio" + "github.com/mattn/go-gtk/glib" + "github.com/mattn/go-gtk/gtk" + "github.com/mattn/go-gtk/gtkgl" + "github.com/mattn/go-gtk/gtksourceview" + "github.com/mattn/go-gtk/gtkspell" + "github.com/mattn/go-gtk/pango" + "github.com/mattn/go-gtk/tools/gogtkinfo")) + ;; ERROR: Println arg list ends with redundant newline. + ;;"github.com/mattn/go-gtk/tools/make_inline_pixbuf")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gdkpixbuf" + "github.com/mattn/go-gtk/gio" + "github.com/mattn/go-gtk/glib" + "github.com/mattn/go-gtk/gtk" + "github.com/mattn/go-gtk/gtkgl" + "github.com/mattn/go-gtk/gtksourceview" + "github.com/mattn/go-gtk/gtkspell" + "github.com/mattn/go-gtk/pango" + "github.com/mattn/go-gtk/tools/gogtkinfo" + "github.com/mattn/go-gtk/tools/make_inline_pixbuf")) + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify) + ("gtk+:bin" ,gtk+-2 "bin") + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server-for-tests))) + (inputs + `(("gdk-pixbuf" ,gdk-pixbuf+svg) + ("glib" ,glib) + ("gtk+" ,gtk+-2) + ("gtkgl" ,gtkglarea) + ("gtksourceview" ,gtksourceview-2) + ("gtkspell" ,gtkspell2) + ("pango" ,pango))) + (propagated-inputs + `(("go-github-com-mattn-go-pointer" + ,go-github-com-mattn-go-pointer))) + (home-page "https://github.com/mattn/go-gtk") + (synopsis "Go bindings for GTK") + (description "Go bindings for GTK.") + (license license:bsd-3)))) + (define-public go-github-com-jmshal-go-locale (let ((commit "eb00fb25cc61bca7a5331ae576ae4a3d5572a1e4") (revision "8")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-grd-glfw3): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 691a5fed00..7661813489 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -57,6 +57,7 @@ #:use-module (gnu packages base) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) @@ -73,6 +74,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-grd-glfw3 + (let ((commit "55390ea70f0d427a7ed40c26ea19e82fce17c927") + (revision "100")) + (package + (name "go-github-com-grd-glfw3") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/grd/glfw3") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15avw38mgx54a3rmlz97ryczpcbibn00rd8486w2si6f1zcawpxw")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/grd/glfw3")) + (inputs + `(("glfw" ,glfw))) + (home-page "https://github.com/grd/glfw3") + (synopsis "Go bindings for GLFW3") + (description "Go bindings for GLFW3.") + (license license:bsd-3)))) + (define-public go-github-com-mattn-go-gtk (let ((commit "af2e013261f57706ec683a61f85e8759a3faf6be") (revision "1134")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-go-gl-glow): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 7661813489..3a632b0705 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-go-gl-glow + (let ((commit "640349a6105e64eb9e5085d2afee1ab2ec67d2dc") + (revision "300")) + (package + (name "go-github-com-go-gl-glow") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/go-gl/glow") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lzibraqjkzibvxw1lagrlzpjsqbp5pd4fcyi6ygqhgja0ik3zd7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/go-gl/glow")) + (propagated-inputs + `(("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (home-page "https://github.com/go-gl/glow") + (synopsis "Go binding generator for OpenGL") + (description "Glow is an OpenGL binding generator for Go. It parses the +OpenGL XML API registry and the EGL XML API registry to produce a +machine-generated cgo bridge between Go functions and native OpenGL functions.") + (license license:expat)))) + (define-public go-github-com-grd-glfw3 (let ((commit "55390ea70f0d427a7ed40c26ea19e82fce17c927") (revision "100")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-go-gl-gl): New variable. --- gnu/packages/golang.scm | 134 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3a632b0705..074e8e6bdf 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,140 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-go-gl-gl + (let ((commit "69f74958bac0960e82e8ac5977ff073af29381ba") + (revision "87")) + (package + (name "go-github-com-go-gl-gl") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/go-gl/gl") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "15bqz4dax3b5ha9qcc855aczsa89qa65p578dnjrbww53q31s5w0")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/go-gl/gl" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/go-gl/gl/all-core/gl" + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/gl/v3.1/gles2" + "github.com/go-gl/gl/v3.2-compatibility/gl" + "github.com/go-gl/gl/v3.2-core/gl" + "github.com/go-gl/gl/v3.3-compatibility/gl" + "github.com/go-gl/gl/v3.3-core/gl" + "github.com/go-gl/gl/v4.1-compatibility/gl" + "github.com/go-gl/gl/v4.1-core/gl" + "github.com/go-gl/gl/v4.2-compatibility/gl" + "github.com/go-gl/gl/v4.2-core/gl" + "github.com/go-gl/gl/v4.3-compatibility/gl" + "github.com/go-gl/gl/v4.3-core/gl" + "github.com/go-gl/gl/v4.4-compatibility/gl" + "github.com/go-gl/gl/v4.4-core/gl" + "github.com/go-gl/gl/v4.5-compatibility/gl" + "github.com/go-gl/gl/v4.5-core/gl" + "github.com/go-gl/gl/v4.6-compatibility/gl" + "github.com/go-gl/gl/v4.6-core/gl")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/go-gl/gl/all-core/gl" + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/gl/v3.1/gles2" + "github.com/go-gl/gl/v3.2-compatibility/gl" + "github.com/go-gl/gl/v3.2-core/gl" + "github.com/go-gl/gl/v3.3-compatibility/gl" + "github.com/go-gl/gl/v3.3-core/gl" + "github.com/go-gl/gl/v4.1-compatibility/gl" + "github.com/go-gl/gl/v4.1-core/gl" + "github.com/go-gl/gl/v4.2-compatibility/gl" + "github.com/go-gl/gl/v4.2-core/gl" + "github.com/go-gl/gl/v4.3-compatibility/gl" + "github.com/go-gl/gl/v4.3-core/gl" + "github.com/go-gl/gl/v4.4-compatibility/gl" + "github.com/go-gl/gl/v4.4-core/gl" + "github.com/go-gl/gl/v4.5-compatibility/gl" + "github.com/go-gl/gl/v4.5-core/gl" + "github.com/go-gl/gl/v4.6-compatibility/gl" + "github.com/go-gl/gl/v4.6-core/gl")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/go-gl/gl/all-core/gl" + "github.com/go-gl/gl/v2.1/gl" + "github.com/go-gl/gl/v3.1/gles2" + "github.com/go-gl/gl/v3.2-compatibility/gl" + "github.com/go-gl/gl/v3.2-core/gl" + "github.com/go-gl/gl/v3.3-compatibility/gl" + "github.com/go-gl/gl/v3.3-core/gl" + "github.com/go-gl/gl/v4.1-compatibility/gl" + "github.com/go-gl/gl/v4.1-core/gl" + "github.com/go-gl/gl/v4.2-compatibility/gl" + "github.com/go-gl/gl/v4.2-core/gl" + "github.com/go-gl/gl/v4.3-compatibility/gl" + "github.com/go-gl/gl/v4.3-core/gl" + "github.com/go-gl/gl/v4.4-compatibility/gl" + "github.com/go-gl/gl/v4.4-core/gl" + "github.com/go-gl/gl/v4.5-compatibility/gl" + "github.com/go-gl/gl/v4.5-core/gl" + "github.com/go-gl/gl/v4.6-compatibility/gl" + "github.com/go-gl/gl/v4.6-core/gl")) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("mesa" ,mesa))) + (propagated-inputs + `(("go-github-com-go-gl-glow" ,go-github-com-go-gl-glow))) + (home-page "https://github.com/go-gl/gl") + (synopsis "Go bindings for OpenGL") + (description "Go-GL holds Go bindings to various OpenGL versions.") + (license license:expat)))) + (define-public go-github-com-go-gl-glow (let ((commit "640349a6105e64eb9e5085d2afee1ab2ec67d2dc") (revision "300")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-skelterjohn-go-wde): New variable. --- gnu/packages/golang.scm | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 074e8e6bdf..e5e3098e97 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,49 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-skelterjohn-go-wde + (let ((commit "adc3f78cdb457e9db21bfff010c85ed97315d8d7") + (revision "203")) + (package + (name "go-github-com-skelterjohn-go-wde") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/skelterjohn/go.wde") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1zxdilxd7iyv367xv7qx7ca0v6fkw5l8gy1bv8s762akx0vqbd85")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/skelterjohn/go.wde" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; Use 'jezek/xgb' instead of 'BurntSushi/xgb', + ;; as the latter is unmaintained. + (("github.com/BurntSushi/xgb") + "github.com/jezek/xgb")) + #t))))) + (propagated-inputs + `(("go-github-com-go-gl-gl" + ,go-github-com-go-gl-gl) + ("go-github-com-grd-glfw3" + ,go-github-com-grd-glfw3) + ("go-github-com-jezek-xgb" + ,go-github-com-jezek-xgb) + ("go-github-com-burntsushi-xgbutil" + ,go-github-com-burntsushi-xgbutil))) + (home-page "https://github.com/skelterjohn/go.wde") + (synopsis "Windows, drawing and events for Go") + (description "Go-WDE provides (W)indows, (D)rawing and (E)vents for Go.") + (license license:asl2.0)))) + (define-public go-github-com-go-gl-gl (let ((commit "69f74958bac0960e82e8ac5977ff073af29381ba") (revision "87")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-skratchdot-open-golang): New variable. --- gnu/packages/golang.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e5e3098e97..d6e54c9d8b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,41 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-skratchdot-open-golang + (let ((commit "eef8423979666925a58eb77f9db583e54320d5a4") + (revision "28")) + (package + (name "go-github-com-skratchdot-open-golang") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/skratchdot/open-golang") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n6387csjn024db8wldadsiy8ljz7lk7szl6ls28fcbkax7rw86y")) + (modules '((guix build utils))) + (snippet + `(begin + (delete-file-recursively "vendor") + #t)))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; requires networking + #:unpack-path "github.com/skratchdot/open-golang" + #:import-path "github.com/skratchdot/open-golang/open")) + (inputs + `(("xdg-open" ,xdg-utils))) + (home-page "https://github.com/skratchdot/open-golang") + (synopsis "Proxy for XDG-Open") + (description "Open-GoLang provides a module to open a file, directory, or +URI using the OS's default application for that object type. Optionally, you can +specify an application to use.") + (license license:expat)))) + (define-public go-github-com-skelterjohn-go-wde (let ((commit "adc3f78cdb457e9db21bfff010c85ed97315d8d7") (revision "203")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-sqweek-dialog): 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 d6e54c9d8b..f92e14ad28 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,35 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sqweek-dialog + (let ((commit "8a3d98e8211d6ee4351f31eb597043631002144b") + (revision "30")) + (package + (name "go-github-com-sqweek-dialog") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sqweek/dialog") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sdb4nddjyx1dkddk7cga71ymv1fd69pzdf4nywvfb33nfqqbvl1")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sqweek/dialog")) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (home-page "https://github.com/sqweek/dialog") + (synopsis "Dialog API for Go") + (description "Dialog is a simple cross-platform dialog API for go-lang.") + (license license:isc)))) + (define-public go-github-com-skratchdot-open-golang (let ((commit "eef8423979666925a58eb77f9db583e54320d5a4") (revision "28")) -- 2.31.1
* gnu/packages/golang.scm (go-0xacab-org-leap-go-dialog): 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 f92e14ad28..96bf6e6551 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -74,6 +74,38 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-go-dialog + (let ((commit "0ee8438431a0dca8f25ea788d74bfe7e88078b7a") + (revision "25")) + (package + (name "go-0xacab-org-leap-go-dialog") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/go-dialog") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn2dxpg6162f7vyr66vnwhy31wnjj7f14bqdcs7q0wk890kfh21")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/go-dialog")) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (propagated-inputs + `(("go-github-com-gotk3-gotk3" + ,go-github-com-gotk3-gotk3))) + (home-page "https://0xacab.org/leap/go-dialog") + (synopsis "Dialog API for Go") + (description "Dialog is a simple cross-platform dialog API for go-lang.") + (license license:isc)))) + (define-public go-github-com-sqweek-dialog (let ((commit "8a3d98e8211d6ee4351f31eb597043631002144b") (revision "30")) -- 2.31.1
* gnu/packages/vpn.scm (bitmask-vpn): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/vpn.scm | 220 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..3bc990c613 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -15,6 +15,8 @@ ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,6 +40,7 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) #:use-module (guix utils) @@ -52,6 +55,8 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) + #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -69,6 +74,221 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.20.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04sh69m5fq3gml4xgzv92z8i3hay98n9llq9p7p6q9q81s8q8849")))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build copy-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + (guix build go-build-system) + (guix build utils)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason these packages are left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((go-dialog (assoc-ref inputs "go-0xacab-org-leap-go-dialog")) + (go-dialog-src (string-append go-dialog "/src")) + (shapeshifter (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively go-dialog-src "src") + (copy-recursively shapeshifter-src "src")) + #t)) + (add-after 'unpack 'patch-source + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; To use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; To use absolute paths for referenced programs. + (let* ((ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/sbin/openvpn") + openvpn) + (("/usr/sbin/bitmask-root") + bitmask-root) + (("/usr/local/sbin/bitmask-root") + bitmask-root))) + #t)) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/icon" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/icon" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + "0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn" + "0xacab.org/leap/bitmask-vpn/icon" + "0xacab.org/leap/bitmask-vpn/pkg/bitmask" + "0xacab.org/leap/bitmask-vpn/pkg/bitmaskd" + "0xacab.org/leap/bitmask-vpn/pkg/config" + "0xacab.org/leap/bitmask-vpn/pkg/helper" + "0xacab.org/leap/bitmask-vpn/pkg/standalone" + "0xacab.org/leap/bitmask-vpn/pkg/systray" + "0xacab.org/leap/bitmask-vpn/tools/transifex")) + #t)) + (add-after 'install 'install-continued + ;; To install bitmask-root script and polkit policy. + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + '(("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; To make bitmask-root script executable. + (chmod bitmask-root #o555) + ;; To wrap bitmask-root script with $PYTHONPATH. + (wrap-program bitmask-root + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))) + #t))))) + (native-inputs + `(("gtk+:bin" ,gtk+ "bin") + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+) + ("iproute" ,iproute) + ("iptables" ,iptables) + ("libappindicator" ,libappindicator) + ("openvpn" ,openvpn) + ("procps" ,procps) + ("python" ,python))) + (propagated-inputs + `(("go-0xacab-org-leap-go-dialog" + ,go-0xacab-org-leap-go-dialog) + ("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-getlantern-systray" + ,go-github-com-getlantern-systray) + ("go-github-com-jmshal-go-locale" + ,go-github-com-jmshal-go-locale) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-github-com-skratchdot-open-golang" + ,go-github-com-skratchdot-open-golang) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text) + ("go-golang-org-x-tools" ,go-golang-org-x-tools))) + (synopsis "Bitmask VPN Client") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.31.1
[-- Attachment #1.1.1: Type: text/plain, Size: 718 bytes --] Hi Maxime! > This can be done a bit simpler, and less prone to breakage > if/when a new keyword argument is introduced at some poit > in the future (untested): Good point. > (replace 'build > (lambda arguments > (lambda (directory) > (apply (assoc-ref %standard-phases 'build) > `(,@arguments #:directory ,directory))))) > > WDYT? Likewise in other places. I tried to use this snippet, but how do I insert `for-each` here? > Also, trailing #t in phases aren't required anymore > (but harmless), though you probably know that already. > (The warning should disappear when core-updates is merged.) Yes, I'll remove them in the final patch-set. Regards, RG. [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 2649 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1.1: Type: text/plain, Size: 762 bytes --] Hi Maxime! > When cross-compiling, coreutils is not in 'inputs', but in 'native-inputs', right? > So this would lead to a build error when cross-compiling. > (assoc-ref inputs "coreutils") would return #f, thus you'd get an exception > > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > In procedure string-append: Wrong type (expecting string): #f I am confused. It is used only during check phase (which is build-time), so when cross-compiling, the arch for build machine is used for native-inputs right? I wonder how other native-inputs like gettext etc doesn't give this error. > I would make this (untested): > > (sring-append (assoc-ref (or native-inputs inputs) "coreutils") "/bin/sleep") Thanks! Regards, RG. [-- Attachment #1.1.2: OpenPGP public key --] [-- Type: application/pgp-keys, Size: 2649 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2417 bytes --] Raghav Gururajan schreef op vr 11-06-2021 om 00:17 [-0400]: > Hi Maxime! > > > When cross-compiling, coreutils is not in 'inputs', but in 'native-inputs', right? > > So this would lead to a build error when cross-compiling. > > (assoc-ref inputs "coreutils") would return #f, thus you'd get an exception > > > > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > > In procedure string-append: Wrong type (expecting string): #f > > I am confused. It is used only during check phase (which is build-time), > so when cross-compiling, the arch for build machine is used for > native-inputs right? The Go build system doesn't support cross-compilation currently. So, for explanation, let's assume gnu-build-system instead. The issue is that, when cross-compiling, 'inputs' consists solely of the packages listed in the 'inputs' field of the package definition (When compiling natively, 'native-inputs' is merged into 'inputs'.) As "coreutils" is not in "inputs", it follows that that (assoc-ref inputs "coreutils") returns #f. Thus, when (string-append (assoc-ref inputs "coreutils") "/bin/sleep") is executed, it raises an exception, as string-append expects strings only. Now, about: > I am confused. It is used only during check phase (which is build-time), > so when cross-compiling, [...] The [...]/bin/sleep binary is only used during the check phase (and therefore ignored when cross-compiling), yes, but the (string-append [...]) is _always_ executed! > so when cross-compiling, the arch for build machine is used for native-inputs, > right? Yes. > I wonder how other native-inputs like gettext etc doesn't give this error. There's very little code doing (assoc-ref inputs "gettext"), (assoc-ref native-inputs "gettext") or (assoc-ref native-inputs "gettext") in Guix. The only case I found: # cargo-build-system (when (assoc-ref inputs "gettext") (setenv "GETTEXT_SYSTEM" (assoc-ref inputs "gettext"))) So, I'm not sure what you're referring to. Simply including gettext in native-inputs doesn't cause an error. It it trying to (string-append (assoc-ref inputs "gettext") "stuff") that raises an error when 'gettext' is not in 'inputs' or 'native-inputs' when compiling natively, or when 'gettext' is not in 'inputs' when cross-compiling, as in these cases, (assoc-ref inputs "gettext") returns #f. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c3c81ceda..fcfb1fc715 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,8 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.31.1
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fcfb1fc715..4ebef21140 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 4ebef21140..b4599850b0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (home-page "https://github.com/emersion/go-autostart") + (synopsis "Autostart library in Go") + (description "Go-Autostart is a Go library to run a command after login.") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b4599850b0..3cc3ff520e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,85 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))))) + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (synopsis "Go client library for OpenVPN's management protocol") + (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN +management interface. It can be used to monitor and control an OpenVPN process +running with its management port enabled.") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): New variable. --- gnu/packages/golang.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 3cc3ff520e..c319fd5faf 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,43 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append (assoc-ref inputs "coreutils") + "/bin/sleep")))))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/keybase/go-ps") + (synopsis "Process List Library for Go") + (description "Go-Ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 c319fd5faf..28667ec988 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "Go-Daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.31.1
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 28667ec988..a2e74dced4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 a2e74dced4..d091c8002a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (home-page "https://github.com/willscott/goturn") + (synopsis "Golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay. It provides +parsing and encoding support for STUN and TURN protocols.") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 152 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d091c8002a..a86ae5bb75 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,158 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path + inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports"))))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" + ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" + ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "Network Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@item The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@item The handshake uses the Tor Project's ntor handshake with public keys +obfuscated via the Elligator 2 mapping. +@item The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a86ae5bb75..67cc7e495c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,83 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path + inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter-IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 67cc7e495c..f34272ac0a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "Go-Logging implements a logging infrastructure for Go. Its +output format is customizable and supports different logging backends like +syslog, file and memory. Multiple backends can be utilized with different log +levels per backend and logger.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 123 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index f34272ac0a..491f60ce4a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,129 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path + inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping"))))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" + ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "https://github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 491f60ce4a..e3cd022920 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "Golang-Set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index e3cd022920..995675db1c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Byte sequences library") + (description "Monolith-Go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-go): 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 995675db1c..99ccc44e5f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "OpenTracing-Go is a Go implementation of OpenTracing API.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 99ccc44e5f..4f99df04a2 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (home-page "https://github.com/mufti1/interconv") + (synopsis "Data Type Converter") + (description "InterConv is for convert interface into any data type.") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.31.1
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4f99df04a2..cfe6dea9fd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/aead/chacha20") + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 cfe6dea9fd..ff3683884b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (home-page "https://github.com/riobard/go-bloom") + (synopsis "Bloom Filter in Go") + (description "Go-Bloom implements Boom Filter using double hashing.") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 ff3683884b..3db4603ccd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,36 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" + ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks Suite") + (description "Go-ShadowSocks is an implementation of shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 3db4603ccd..58a88ad00a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 58a88ad00a..c285f710af 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" + ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Logging foundation for Go applications") + (description "GoLog is a level-based logger written in Go.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.31.1
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 158 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c285f710af..1cfb5aa16b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,164 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")))) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))))) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter-Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification. +Each transport implements a different method of shapeshifting network traffic. +The goal is for application traffic to be sent over the network in a shapeshifted +form that bypasses network filtering, allowing the application to work on +networks where it would otherwise be blocked or heavily throttled.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.31.1
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 1cfb5aa16b..0ab06eb935 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.31.1
* gnu/packages/vpn.scm (bitmask): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/vpn.scm | 199 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..f001093e57 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -15,6 +15,8 @@ ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,7 +39,9 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) #:use-module (guix utils) @@ -51,7 +55,9 @@ #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -59,6 +65,7 @@ #:use-module (gnu packages nss) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) @@ -69,6 +76,198 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.21.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0cdgh4mqvalvknck1zjy7dhmjfyhbmn9knya6ymx8dqan308sr")) + (modules + '((guix build utils))) + (snippet + `(begin + ;; To remove bundled thirdparty sources. + (delete-file-recursively "branding/thirdparty") + ;; To generate version.go file. + (call-with-output-file "pkg/config/version/version.go" + (lambda (port) + (format port "package version\n") + (format port "\n") + (format port (string-append "var VERSION = \"" ,version "\"")))) + #t)))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build copy-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + (guix build go-build-system) + (guix build utils)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:import-path "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason this package is left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((shapeshifter + (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively shapeshifter-src "src")))) + (add-after 'unpack 'patch + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + ;; To use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; To use correct paths for referenced items. + (let* ((out (assoc-ref outputs "out")) + (policy-dir (string-append out "/share/polkit-1/actions")) + (policy-file "se.leap.bitmask.policy") + (policy-path (string-append policy-dir "/" policy-file)) + (ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (pkttyagent (string-append (assoc-ref inputs "polkit") + "/bin/pkttyagent")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/.*(kit|agent|agent-1)") pkttyagent) + (("fingerprint-polkit-agent") "pkttyagent") + (("/usr/sbin/openvpn") openvpn) + (("/usr/sbin/bitmask-root") bitmask-root) + (("/usr/local/sbin/bitmask-root") bitmask-root) + (("/usr/share.*policy") policy-path))) + (substitute* (find-files "." "\\.pro$") + ;; To use correct path for goshim files, + ;; which are generated in 'build-continued phase. + (("-L.*/lib") "-L./lib") + ;; FIXME: Unable to build i18n files. + (("TRANSLATIONS.*i18n.*$") "") + (("RESOURCES.*i18n.*$") ""))))) + (add-after 'build 'build-continued + (lambda _ + ;; To generate goshim library and header files. + (let* ((dir "src/0xacab.org/leap/bitmask-vpn") + (source (string-append dir "/gui/backend.go")) + (target (string-append dir "/lib/libgoshim.a"))) + (mkdir-p (string-append dir "/lib")) + (invoke "go" "build" "-buildmode=c-archive" "-o" target source)) + ;; To build bitmask application. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "bitmask.pro") + (invoke "make" "release/bitmask")))) + (add-after 'check 'check-continued + (lambda _ + ;; To run bitmask test. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "test.pro") + ;; Tests require display-server. + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")) + ;; Tests write to $HOME. + (setenv "HOME" (getenv "TEMP")) + (invoke "make" "check")))) + (add-after 'install 'install-continued + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + ;; To install bitmask program. + '(("src/0xacab.org/leap/bitmask-vpn/release" + "bin" + #:include ("bitmask")) + ;; To install bitmask-root script. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ;; To install polkit policy. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask (string-append out "/bin/bitmask")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; To make bitmask-root script executable. + (chmod bitmask-root #o755) + ;; To wrap bitmask program with qml and qt paths. + (wrap-program bitmask + `("QML2_IMPORT_PATH" ":" prefix (,(getenv "QML2_IMPORT_PATH"))) + `("QT_PLUGIN_PATH" ":" prefix (,(getenv "QT_PLUGIN_PATH")))) + ;; To wrap bitmask-root script with python path. + (wrap-program bitmask-root + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))))))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("iproute" ,iproute) + ("iptables" ,iptables) + ("mesa" ,mesa) + ("openvpn" ,openvpn) + ("polkit" ,polkit) + ("procps" ,procps) + ("python" ,python) + ("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols) + ("qtquickcontrols2" ,qtquickcontrols2))) + (propagated-inputs + `(("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-rakyll-statik" + ,go-github-com-rakyll-statik) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "White-label VPN client by LEAP") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.31.1
[-- Attachment #1.1: Type: text/plain, Size: 2164 bytes --] Hi Maxime! >> I am confused. It is used only during check phase (which is build-time), >> so when cross-compiling, the arch for build machine is used for >> native-inputs right? > > The Go build system doesn't support cross-compilation currently. > So, for explanation, let's assume gnu-build-system instead. > > The issue is that, when cross-compiling, 'inputs' consists solely > of the packages listed in the 'inputs' field of the package definition > (When compiling natively, 'native-inputs' is merged into 'inputs'.) > > As "coreutils" is not in "inputs", it follows that that (assoc-ref inputs "coreutils") > returns #f. Thus, when (string-append (assoc-ref inputs "coreutils") "/bin/sleep") > is executed, it raises an exception, as string-append expects strings only. > Now, about: > >> I am confused. It is used only during check phase (which is build-time), >> so when cross-compiling, [...] > > The [...]/bin/sleep binary is only used during the check phase (and therefore > ignored when cross-compiling), yes, but the (string-append [...]) is _always_ > executed! > >> so when cross-compiling, the arch for build machine is used for native-inputs, >> right? > > Yes. > >> I wonder how other native-inputs like gettext etc doesn't give this error. > > There's very little code doing (assoc-ref inputs "gettext"), > (assoc-ref native-inputs "gettext") or (assoc-ref native-inputs "gettext") > in Guix. The only case I found: > > # cargo-build-system > (when (assoc-ref inputs "gettext") > (setenv "GETTEXT_SYSTEM" (assoc-ref inputs "gettext"))) > > So, I'm not sure what you're referring to. > > Simply including gettext in native-inputs doesn't cause an error. > > It it trying to (string-append (assoc-ref inputs "gettext") "stuff") that > raises an error when 'gettext' is not in 'inputs' or 'native-inputs' when compiling natively, > or when 'gettext' is not in 'inputs' when cross-compiling, > as in these cases, (assoc-ref inputs "gettext") returns #f. Thanks so much for the explanation. I understood it now. :) I have added your suggestion in v5. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c3c81ceda..fcfb1fc715 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,8 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.32.0
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fcfb1fc715..4ebef21140 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 4ebef21140..b4599850b0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (home-page "https://github.com/emersion/go-autostart") + (synopsis "Autostart library in Go") + (description "Go-Autostart is a Go library to run a command after login.") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 79 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b4599850b0..3cc3ff520e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,85 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))))) + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (synopsis "Go client library for OpenVPN's management protocol") + (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN +management interface. It can be used to monitor and control an OpenVPN process +running with its management port enabled.") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): 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 3cc3ff520e..36279f6c00 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,44 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append + (assoc-ref (or native-inputs inputs) "coreutils") + "/bin/sleep")))))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/keybase/go-ps") + (synopsis "Process List Library for Go") + (description "Go-Ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 36279f6c00..71541a8993 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "Go-Daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.32.0
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 71541a8993..9f99198b97 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 9f99198b97..fa181c49cc 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (home-page "https://github.com/willscott/goturn") + (synopsis "Golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay. It provides +parsing and encoding support for STUN and TURN protocols.") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 152 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fa181c49cc..968132c695 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,158 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path + inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports"))))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" + ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" + ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "Network Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@item The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@item The handshake uses the Tor Project's ntor handshake with public keys +obfuscated via the Elligator 2 mapping. +@item The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 77 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 968132c695..214cac5f5e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,83 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path + inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter-IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 214cac5f5e..401b13791c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "Go-Logging implements a logging infrastructure for Go. Its +output format is customizable and supports different logging backends like +syslog, file and memory. Multiple backends can be utilized with different log +levels per backend and logger.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 123 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 401b13791c..abe8b7cf40 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,129 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path + inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping"))))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" + ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "https://github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 abe8b7cf40..ccd78055b7 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "Golang-Set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index ccd78055b7..c0d68a66cb 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Byte sequences library") + (description "Monolith-Go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-go): 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 c0d68a66cb..0dffdea221 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "OpenTracing-Go is a Go implementation of OpenTracing API.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 0dffdea221..922ec32cf8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (home-page "https://github.com/mufti1/interconv") + (synopsis "Data Type Converter") + (description "InterConv is for convert interface into any data type.") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.32.0
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 922ec32cf8..517760c245 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/aead/chacha20") + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 517760c245..5a5f8279dd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (home-page "https://github.com/riobard/go-bloom") + (synopsis "Bloom Filter in Go") + (description "Go-Bloom implements Boom Filter using double hashing.") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 5a5f8279dd..e7fc4b6158 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,36 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" + ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks Suite") + (description "Go-ShadowSocks is an implementation of shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 e7fc4b6158..9050390da8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 9050390da8..012ac4095e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" + ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Logging foundation for Go applications") + (description "GoLog is a level-based logger written in Go.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 158 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 012ac4095e..a8eb735d58 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,164 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda* (#:key source system outputs search-paths build-flags + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'build) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:build-flags build-flags + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'check + (lambda* (#:key source system outputs search-paths tests? unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'check) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:tests? tests? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")))) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'install + (lambda* (#:key source system outputs search-paths install-source? + unpack-path inputs #:allow-other-keys) + (for-each + (lambda (directory) + ((assoc-ref %standard-phases 'install) + #:source source + #:system system + #:outputs outputs + #:search-paths search-paths + #:install-source? install-source? + #:unpack-path unpack-path + #:inputs inputs + #:import-path directory)) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))))) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter-Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification. +Each transport implements a different method of shapeshifting network traffic. +The goal is for application traffic to be sent over the network in a shapeshifted +form that bypasses network filtering, allowing the application to work on +networks where it would otherwise be blocked or heavily throttled.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.32.0
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 a8eb735d58..c00f8ace4e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.32.0
* gnu/packages/vpn.scm (bitmask): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/vpn.scm | 204 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..eb8710fe09 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -15,6 +15,8 @@ ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,9 +39,12 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) @@ -51,7 +56,9 @@ #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -59,6 +66,7 @@ #:use-module (gnu packages nss) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) @@ -69,6 +77,202 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.21.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0cdgh4mqvalvknck1zjy7dhmjfyhbmn9knya6ymx8dqan308sr")) + (modules + '((guix build utils))) + (snippet + `(begin + ;; To remove bundled thirdparty sources. + (delete-file-recursively "branding/thirdparty") + ;; To generate version.go file. + (call-with-output-file "pkg/config/version/version.go" + (lambda (port) + (format port "package version\n") + (format port "\n") + (format port (string-append "var VERSION = \"" ,version "\"")))) + #t)))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build cmake-build-system) + (guix build copy-build-system) + (guix build python-build-system) + (guix build qt-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + ((guix build python-build-system) + #:prefix python:) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils) + (guix build go-build-system)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:import-path "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason this package is left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((shapeshifter + (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively shapeshifter-src "src")))) + (add-after 'unpack 'patch + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + ;; To use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; To use correct paths for referenced items. + (let* ((out (assoc-ref outputs "out")) + (policy-dir (string-append out "/share/polkit-1/actions")) + (policy-file "se.leap.bitmask.policy") + (policy-path (string-append policy-dir "/" policy-file)) + (ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (pkttyagent (string-append (assoc-ref inputs "polkit") + "/bin/pkttyagent")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/.*(kit|agent|agent-1)") pkttyagent) + (("fingerprint-polkit-agent") "pkttyagent") + (("/usr/sbin/openvpn") openvpn) + (("/usr/sbin/bitmask-root") bitmask-root) + (("/usr/local/sbin/bitmask-root") bitmask-root) + (("/usr/share.*\\.policy") policy-path))) + (substitute* (find-files "." "\\.pro$") + ;; To use correct path for goshim files, + ;; which are generated in 'build-continued phase. + (("-L.*/lib") "-L./lib") + ;; FIXME: Unable to build i18n files. + (("TRANSLATIONS.*i18n.*$") "") + (("RESOURCES.*i18n.*$") ""))))) + (add-after 'build 'build-continued + (lambda _ + ;; To generate goshim library and header files. + (let* ((dir "src/0xacab.org/leap/bitmask-vpn") + (source (string-append dir "/gui/backend.go")) + (target (string-append dir "/lib/libgoshim.a"))) + (mkdir-p (string-append dir "/lib")) + (invoke "go" "build" "-buildmode=c-archive" "-o" target source)) + ;; To build bitmask application. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "bitmask.pro") + (invoke "make" "release/bitmask")))) + (add-after 'check 'check-continued + (lambda _ + ;; To run bitmask test. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "test.pro") + ;; Tests require display-server. + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")) + ;; Tests write to $HOME. + (setenv "HOME" (getenv "TEMP")) + (invoke "make" "check")))) + (add-after 'install 'install-continued + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + ;; To install bitmask program. + '(("src/0xacab.org/leap/bitmask-vpn/release" + "bin" + #:include ("bitmask")) + ;; To install bitmask-root script. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ;; To install polkit policy. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask (string-append out "/bin/bitmask")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; To make bitmask-root script executable. + (chmod bitmask-root #o776)))) + (add-after 'post-install 'python-wrap + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'python-wrap 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("iproute" ,iproute) + ("iptables" ,iptables) + ("mesa" ,mesa) + ("openvpn" ,openvpn) + ("polkit" ,polkit) + ("procps" ,procps) + ("python" ,python) + ("qtbase" ,qtbase-5) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols) + ("qtquickcontrols2" ,qtquickcontrols2))) + (propagated-inputs + `(("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-rakyll-statik" + ,go-github-com-rakyll-statik) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "White-label VPN client by LEAP") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.32.0
* gnu/services/vpn.scm (bitmask-service-type): New variable. --- gnu/services/vpn.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 2bcbf76727..b85a764b87 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -23,6 +23,7 @@ (define-module (gnu services vpn) #:use-module (gnu services) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) #:use-module (gnu packages admin) @@ -63,6 +64,22 @@ wireguard-service-type)) +;;; +;;; Bitmask VPN +;;; + +(define-public bitmask-service-type + (service-type + (name 'bitmask) + (description "Setup the @uref{https://bitmask.net, Bitmask} VPN application.") + (default-value bitmask) + (extensions + (list + ;; To configure polkit policy of bitmask. + (service-extension polkit-service-type list) + ;; To add bitmask to the system profile. + (service-extension profile-service-type list))))) + ;;; ;;; OpenVPN. ;;; -- 2.32.0
[-- Attachment #1: Type: text/plain, Size: 806 bytes --] Raghav Gururajan schreef op vr 11-06-2021 om 00:12 [-0400]: > > (replace 'build > > (lambda arguments > > (lambda (directory) > > (apply (assoc-ref %standard-phases 'build) > > `(,@arguments #:directory ,directory))))) > > > > WDYT? Likewise in other places. > > I tried to use this snippet, but how do I insert `for-each` here? The snippet was incorrect. It should have been something like (untested): (replace 'build (lambda arguments (for-each (lambda (directory) (apply (assoc-ref %standard-phases 'build) `(,@arguments #:directory ,directory))) (list "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" ...)))) Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1: Type: text/plain, Size: 988 bytes --] Raghav Gururajan via Guix-patches via schreef op vr 18-06-2021 om 02:54 [-0400]: > + (add-after 'check 'check-continued > + (lambda _ > + ;; To run bitmask test. > + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" > + (delete-file "Makefile") > + (invoke "qmake" "test.pro") > + ;; Tests require display-server. > + (setenv "QT_QPA_PLATFORM" "offscreen") > + ;; Tests look for $XDG_RUNTIME_DIR. > + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")) > + ;; Tests write to $HOME. > + (setenv "HOME" (getenv "TEMP")) > + (invoke "make" "check")))) I'd make this (lambda* (#:key tests? #:allow-other-keys) (when tests? [do-stuff])) That way, the package transformation --without-tests=bitmask should work. (Try "guix build --without-tests=bitmask bitmask".) Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2157 bytes --] Raghav Gururajan via Guix-patches via schreef op vr 18-06-2021 om 02:54 [-0400]: > + (snippet > + `(begin > + ;; To remove bundled thirdparty sources. > + (delete-file-recursively "branding/thirdparty") > + ;; To generate version.go file. > + (call-with-output-file "pkg/config/version/version.go" > + (lambda (port) > + (format port "package version\n") > + (format port "\n") > + (format port (string-append "var VERSION = \"" ,version "\"")))) > + #t)))) Snippets can be G-expressions. Personally, I'd go with a G-expression instead of an S-expression, because * that makes it more obvious it is staged code, and not, say, SXML * G-exps are cool [citation needed] > + (build-system go-build-system) > + (arguments [...]) A bit large, but all the code there seems required Seems ok, though not being able to build i18n files is a bit unfortunate. > + (synopsis "White-label VPN client by LEAP") About ‘White-label’: this seems an odd thing to say about software. Here is a definition, in case we are talking about different things: From Wikipedia (https://en.wikipedia.org/w/index.php?title=White-label_product&oldid=1028825641): ‘A white-label product is a product or service produced by one company (the producer) that other companies (the marketers) rebrand to make it appear as if they had made it.[1][2] The name derives from the image of a white label on the packaging that can be filled in with the marketer's trade dress. White label products are sold by retailers with their own trademark but the products themselves are manufactured by a third party.[3]’ bitmask isn't a product or a service, it's just software. It is also not sold. I don't see how ‘white-label’ can apply to bitmask. Also, I don't see what value adding "White-label" to the synopsis provides to users(*). (*) Here, ‘users’ are all people using Guix. Including people hacking on Guix (‘developers’). I'd drop "White-label" from the synopsis. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2126 bytes --] Raghav Gururajan via Guix-patches via schreef op vr 18-06-2021 om 02:54 [-0400]: > +;;; > +;;; Bitmask VPN > +;;; > + > +(define-public bitmask-service-type > + (service-type > + (name 'bitmask) > + (description "Setup the @uref{https://bitmask.net, Bitmask} VPN application.") > + (default-value bitmask) > + (extensions > + (list > + ;; To configure polkit policy of bitmask. > + (service-extension polkit-service-type list) > + ;; To add bitmask to the system profile. > + (service-extension profile-service-type list))))) Is there any specific reason that bitmask must be added to the profile? On a multi-user system, not all users might be interested in bitmask, and do not need it in their "PATH". I prefer only adding packages that are explicitely in the ‘packages’ field of 'operating-system' to the system profile. One possible reason could be that the polkit policy whitelists a few binaries, say, /gnu/store/aaa-bitmask/sbin/stuff, so "pkexec stuff" (equivalent to "pkexec /gnu/store/aaa-bitmask/sbin/stuff") doesn't require special permissions or a password of any kind. However, if the user has a slightly different version of bitmask in their profile, then the store path will be different (/gnu/store/bbb-bitmask/sbin/stuff), then "pkexec stuff" will try to use the not-authorised version, which will require passwords or such. For example, my current system generation and user profile were made by a different version of Guix, and as a result, have two separate store paths for "mate-power-backlight-helper". If I run pkexec on the store path in /run/current-system/etc/polkit-1/actions/org.mate.power.policy, then it succeeds. But if I simply run "pkexec mate-power-backlight-helper", then it asks for authentication. (Actually, /run/current-system/profile/sbin/mate-power-backlight-helper points to a binary with yet another store path, but that has nothing to do with bitmask-service-type.) (TODO to self: modify "pkexec" to support an --action-id argument, in order to avoid store paths ...) Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 504 bytes --] Hi Maxime! > The snippet was incorrect. It should have been something like (untested): > > (replace 'build > (lambda arguments > (for-each > (lambda (directory) > (apply (assoc-ref %standard-phases 'build) > `(,@arguments #:directory ,directory))) > (list "0xacab.org/leap/bitmask-vpn/cmd/bitmask-connect" > "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" > ...)))) Thanks so much. It worked. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 338 bytes --] Hi Maxime! > I'd make this > > (lambda* (#:key tests? #:allow-other-keys) > (when tests? > [do-stuff])) > > That way, the package transformation --without-tests=bitmask > should work. (Try "guix build --without-tests=bitmask bitmask".) Ah I forgot about this, thanks for reminding me. :) Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 2161 bytes --] Hi Maxime! > Snippets can be G-expressions. Personally, I'd go with a G-expression > instead of an S-expression, because > > * that makes it more obvious it is staged code, and not, say, SXML > * G-exps are cool [citation needed] > >> + (build-system go-build-system) >> + (arguments [...]) I see. Would you be able to illustrate with a snippet please? I haven't used G-exps much. > A bit large, but all the code there seems required > Seems ok, though not being able to build i18n files is a bit > unfortunate. Yeah. TypeScript shenanigans with the i18n. >> + (synopsis "White-label VPN client by LEAP") > > About ‘White-label’: this seems an odd thing to say about software. > Here is a definition, in case we are talking about different things: > > From Wikipedia (https://en.wikipedia.org/w/index.php?title=White-label_product&oldid=1028825641): > > ‘A white-label product is a product or service produced by one company (the producer) > that other companies (the marketers) rebrand to make it appear as if they had made > it.[1][2] The name derives from the image of a white label on the packaging that can > be filled in with the marketer's trade dress. White label products are sold by retailers > with their own trademark but the products themselves are manufactured by a third party.[3]’ > > bitmask isn't a product or a service, it's just software. > It is also not sold. I don't see how ‘white-label’ can apply to bitmask. > > Also, I don't see what value adding "White-label" to the synopsis > provides to users(*). > > (*) Here, ‘users’ are all people using Guix. Including people hacking on Guix > (‘developers’). > > I'd drop "White-label" from the synopsis. I used white-label because bitmask is neither a service provider on its own nor tied-to/developed-for specific provider. Whichever supported provider is chosen the application name, icons, logo etc becomes that of the provider. In other words, the app re-brands itself based on chosen VPN provider. But I'll change the while-label to generic, in the synopsis. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1330 bytes --] Raghav Gururajan schreef op zo 20-06-2021 om 05:52 [-0400]: > I used white-label because bitmask is neither a service provider on its > own nor tied-to/developed-for specific provider. Whichever supported > provider is chosen the application name, icons, logo etc becomes that of > the provider. In other words, the app re-brands itself based on chosen > VPN provider. This seems like a trademark disaster to happen ... except that bitmask seems to have some kind of agreement with the VPN providers (see https://bitmask.net/en#providers), so this ‘rebranding’ is ok I guess. > But I'll change the while-label to generic, in the synopsis. To make sure I got the terminology right: ‘service provider’: gratis or paid provider for a virtual private network? I don't see why one would tie software to a specific service provider? Besides that the software needs to support the network protocols used by the service providers of course. I don't see _why_ bitmask would change the name of the application depending on the service provider, but whatever I guess. I mean, IceCat doesn't rename itself to ‘$ISP's Totally Secure Surfer’, e-mail clients don't rename theirselves to ‘$ISP MyMail’, depending on the Internet service provider. ‘generic’ LGTM. Greetings, Maxime. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1310 bytes --] Raghav Gururajan schreef op zo 20-06-2021 om 05:52 [-0400]: > Hi Maxime! > > > Snippets can be G-expressions. Personally, I'd go with a G-expression > > instead of an S-expression, because > > > > * that makes it more obvious it is staged code, and not, say, SXML > > * G-exps are cool [citation needed] > > > > > + (build-system go-build-system) > > > + (arguments [...]) > > I see. Would you be able to illustrate with a snippet please? I haven't > used G-exps much. Here's an example, from the guile-2.2 package, using a S-exp: (snippet '(begin (for-each delete-file (find-files "prebuilt" "\\.go$")) #t)))) and equivalently, using a G-exp (snippet #~(begin (for-each delete-file (find-files "prebuilt" "\\.go$")) #t)))) Basically, replace the ' with #~. Here, using a G-exp doesn't buy much though, besides making it a bit more obvious the code is staged. G-exps can be useful if, say, 'sed' or 'tar' or something needs to be run during the snippet. (E.g., something like #~(invoke* #+(file-append tar "/bin/tar") args ...)) Greetings, Maxime [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 260 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 1379 bytes --] Hi Maxime! > Is there any specific reason that bitmask must be added to the profile? > On a multi-user system, not all users might be interested in bitmask, > and do not need it in their "PATH". > > I prefer only adding packages that are explicitely in the ‘packages’ > field of 'operating-system' to the system profile. > > One possible reason could be that the polkit policy whitelists a few > binaries, say, /gnu/store/aaa-bitmask/sbin/stuff, so > "pkexec stuff" (equivalent to "pkexec /gnu/store/aaa-bitmask/sbin/stuff") > doesn't require special permissions or a password of any kind. > > However, if the user has a slightly different version of bitmask > in their profile, then the store path will be different > (/gnu/store/bbb-bitmask/sbin/stuff), then "pkexec stuff" will try > to use the not-authorised version, which will require passwords > or such. Yes, that's the reason I am adding it to the profile. I thought of patching the policy file to refer to /run/current-system/profile/sbin/bitmask-root, but that would also require bitmask to be in system profile. Btw, the upstream is planning on removing dependency on polkit. When they get there, I'll remove this service-type. > (TODO to self: modify "pkexec" to support an --action-id argument, > in order to avoid store paths ...) Yeah, good idea. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c3c81ceda..fcfb1fc715 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -25,6 +25,8 @@ ;;; Copyright © 2020 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.32.0
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fcfb1fc715..4ebef21140 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 4ebef21140..b4599850b0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (home-page "https://github.com/emersion/go-autostart") + (synopsis "Autostart library in Go") + (description "Go-Autostart is a Go library to run a command after login.") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index b4599850b0..13d213b213 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,61 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))))) + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (synopsis "Go client library for OpenVPN's management protocol") + (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN +management interface. It can be used to monitor and control an OpenVPN process +running with its management port enabled.") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): 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 13d213b213..a0f9f77e4c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,44 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append + (assoc-ref (or native-inputs inputs) "coreutils") + "/bin/sleep")))))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/keybase/go-ps") + (synopsis "Process List Library for Go") + (description "Go-Ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 a0f9f77e4c..7514543865 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "Go-Daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.32.0
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 7514543865..beff9c4717 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 beff9c4717..2887e1380b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (home-page "https://github.com/willscott/goturn") + (synopsis "Golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay. It provides +parsing and encoding support for STUN and TURN protocols.") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2887e1380b..be21ec69fa 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,134 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports"))))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" + ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" + ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "Network Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@item The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@item The handshake uses the Tor Project's ntor handshake with public keys +obfuscated via the Elligator 2 mapping. +@item The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index be21ec69fa..2c186c8a66 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,59 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter-IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 2c186c8a66..33b2032de1 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "Go-Logging implements a logging infrastructure for Go. Its +output format is customizable and supports different logging backends like +syslog, file and memory. Multiple backends can be utilized with different log +levels per backend and logger.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 99 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 33b2032de1..4332dd6ec4 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,105 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping"))))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" + ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "https://github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 4332dd6ec4..861783caa6 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "Golang-Set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 861783caa6..7a7339253a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Byte sequences library") + (description "Monolith-Go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-go): 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 7a7339253a..de02bad748 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "OpenTracing-Go is a Go implementation of OpenTracing API.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 de02bad748..9eb6a09dad 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (home-page "https://github.com/mufti1/interconv") + (synopsis "Data Type Converter") + (description "InterConv is for convert interface into any data type.") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.32.0
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9eb6a09dad..f9248bce0a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/aead/chacha20") + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 f9248bce0a..5eee6eda81 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (home-page "https://github.com/riobard/go-bloom") + (synopsis "Bloom Filter in Go") + (description "Go-Bloom implements Boom Filter using double hashing.") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 5eee6eda81..6248330162 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,36 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" + ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks Suite") + (description "Go-ShadowSocks is an implementation of shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 6248330162..e3e79b6737 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 e3e79b6737..a09b870ea5 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" + ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Logging foundation for Go applications") + (description "GoLog is a level-based logger written in Go.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 135 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index a09b870ea5..9cad48d3db 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,141 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")))) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))))) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter-Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification. +Each transport implements a different method of shapeshifting network traffic. +The goal is for application traffic to be sent over the network in a shapeshifted +form that bypasses network filtering, allowing the application to work on +networks where it would otherwise be blocked or heavily throttled.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.32.0
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 9cad48d3db..28a2c4b61a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -69,6 +69,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.32.0
* gnu/packages/vpn.scm (bitmask): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/packages/vpn.scm | 205 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a952e3f0db..444681571f 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -15,6 +15,8 @@ ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,9 +39,12 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) @@ -51,7 +56,9 @@ #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -59,6 +66,7 @@ #:use-module (gnu packages nss) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) @@ -69,6 +77,203 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.21.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0cdgh4mqvalvknck1zjy7dhmjfyhbmn9knya6ymx8dqan308sr")) + (modules + '((guix build utils))) + (snippet + `(begin + ;; To remove bundled thirdparty sources. + (delete-file-recursively "branding/thirdparty") + ;; To generate version.go file. + (call-with-output-file "pkg/config/version/version.go" + (lambda (port) + (format port "package version\n") + (format port "\n") + (format port (string-append "var VERSION = \"" ,version "\"")))) + #t)))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build cmake-build-system) + (guix build copy-build-system) + (guix build python-build-system) + (guix build qt-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + ((guix build python-build-system) + #:prefix python:) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils) + (guix build go-build-system)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:import-path "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason this package is left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((shapeshifter + (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively shapeshifter-src "src")))) + (add-after 'unpack 'patch + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + ;; To use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; To use correct paths for referenced items. + (let* ((out (assoc-ref outputs "out")) + (policy-dir (string-append out "/share/polkit-1/actions")) + (policy-file "se.leap.bitmask.policy") + (policy-path (string-append policy-dir "/" policy-file)) + (ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (pkttyagent (string-append (assoc-ref inputs "polkit") + "/bin/pkttyagent")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/(bin|lib|libexec)/.*(kit|agent|agent-1)") pkttyagent) + (("fingerprint-polkit-agent") "pkttyagent") + (("/usr/sbin/openvpn") openvpn) + (("/usr/sbin/bitmask-root") bitmask-root) + (("/usr/local/sbin/bitmask-root") bitmask-root) + (("/usr/share.*\\.policy") policy-path))) + (substitute* (find-files "." "\\.pro$") + ;; To use correct path for goshim files, + ;; which are generated in 'build-continued phase. + (("-L.*/lib") "-L./lib") + ;; FIXME: Unable to build i18n files. + (("TRANSLATIONS.*i18n.*$") "") + (("RESOURCES.*i18n.*$") ""))))) + (add-after 'build 'build-continued + (lambda _ + ;; To generate goshim library and header files. + (let* ((dir "src/0xacab.org/leap/bitmask-vpn") + (source (string-append dir "/gui/backend.go")) + (target (string-append dir "/lib/libgoshim.a"))) + (mkdir-p (string-append dir "/lib")) + (invoke "go" "build" "-buildmode=c-archive" "-o" target source)) + ;; To build bitmask application. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "bitmask.pro") + (invoke "make" "release/bitmask")))) + (add-after 'check 'check-continued + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; To run bitmask test. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "test.pro") + ;; Tests require display-server. + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")) + ;; Tests write to $HOME. + (setenv "HOME" (getenv "TEMP")) + (invoke "make" "check"))))) + (add-after 'install 'install-continued + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + ;; To install bitmask program. + '(("src/0xacab.org/leap/bitmask-vpn/release" + "bin" + #:include ("bitmask")) + ;; To install bitmask-root script. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ;; To install polkit policy. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask (string-append out "/bin/bitmask")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; To make bitmask-root script executable. + (chmod bitmask-root #o776)))) + (add-after 'post-install 'python-wrap + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'python-wrap 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("iproute" ,iproute) + ("iptables" ,iptables) + ("mesa" ,mesa) + ("openvpn" ,openvpn) + ("polkit" ,polkit) + ("procps" ,procps) + ("python" ,python) + ("qtbase" ,qtbase-5) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols) + ("qtquickcontrols2" ,qtquickcontrols2))) + (propagated-inputs + `(("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-rakyll-statik" + ,go-github-com-rakyll-statik) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "White-label VPN client by LEAP") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.32.0
* gnu/services/vpn.scm (bitmask-service-type): New variable. Co-authored-by: Jorge Gomez <jgart@disroot.org> --- gnu/services/vpn.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index 2bcbf76727..085bd2c6e1 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -4,6 +4,8 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 Jorge Gomez <jgart@disroot.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,6 +25,7 @@ (define-module (gnu services vpn) #:use-module (gnu services) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) #:use-module (gnu packages admin) @@ -63,6 +66,22 @@ wireguard-service-type)) +;;; +;;; Bitmask VPN +;;; + +(define-public bitmask-service-type + (service-type + (name 'bitmask) + (description "Setup the @uref{https://bitmask.net, Bitmask} VPN application.") + (default-value bitmask) + (extensions + (list + ;; To configure polkit policy of bitmask. + (service-extension polkit-service-type list) + ;; To add bitmask to the system profile. + (service-extension profile-service-type list))))) + ;;; ;;; OpenVPN. ;;; -- 2.32.0
[-- Attachment #1.1: Type: text/plain, Size: 1903 bytes --] Hi Maxime! > This seems like a trademark disaster to happen ... > except that bitmask seems to have some kind of agreement with the VPN > providers (see https://bitmask.net/en#providers), so this ‘rebranding’ > is ok I guess. Yeah, the VPN provider configuration is done in source-code (i.e. before compilation). The official bitmask source will only come with VPN providers that LEAP (https://leap.se/) trusts and have understanding with. But I'm not sure how it deals with users from modifying source-code with custom VPN provider's branding. Since Guix distributes the official source-code, we should be fine. > To make sure I got the terminology right: > > ‘service provider’: gratis or paid provider for a virtual private network? Yes. > I don't see why one would tie software to a specific service provider? > Besides that the software needs to support the network protocols used > by the service providers of course. Bitmask is tied to, not one but multiple-providers. Current tie-ups include RiseupVPN (https://riseup.net/en/vpn), CalyxVPN (https://calyx.net/), and LibraryVPN (https://libraryvpn.org/). > I don't see _why_ bitmask would change the name of the application > depending on the service provider, but whatever I guess. I mean, > IceCat doesn't rename itself to ‘$ISP's Totally Secure Surfer’, > e-mail clients don't rename theirselves to ‘$ISP MyMail’, > depending on the Internet service provider. I had the same thought. Usually VPN providers have their own client. But VPN providers who are non-profit/collective/etc, do not have dev-resources to develop and maintain app. So the providers I mentioned above, collaborate with bitmask. The bitmask project provides them the opportunity to re-brand the client as if it was developed by the them. This is white-labelling in a sense. :) Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 507 bytes --] Hi Maxime! > Basically, replace the ' with #~. > Here, using a G-exp doesn't buy much though, besides making it > a bit more obvious the code is staged. G-exps can be useful > if, say, 'sed' or 'tar' or something needs to be run during > the snippet. (E.g., something like > #~(invoke* #+(file-append tar "/bin/tar") args ...)) Thanks for the explanation. Since g-exp doesn't do much here, I'd like to keep the s-exp. :) Btw, I have sent v6. Let me know your thoughts. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index aedb5d4f69..8c53a02aa3 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -27,6 +27,8 @@ ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@mgail.com> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,6 +73,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.32.0
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8c53a02aa3..b1c909ac53 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 b1c909ac53..fc5d161b39 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "39")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (home-page "https://github.com/emersion/go-autostart") + (synopsis "Autostart library in Go") + (description "Go-Autostart is a Go library to run a command after login.") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fc5d161b39..93bdc1c7da 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,61 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "14")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))))) + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (synopsis "Go client library for OpenVPN's management protocol") + (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN +management interface. It can be used to monitor and control an OpenVPN process +running with its management port enabled.") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "39")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): 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 93bdc1c7da..ac48b41f97 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,44 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "45")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep") + (string-append + (assoc-ref (or native-inputs inputs) "coreutils") + "/bin/sleep")))))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/keybase/go-ps") + (synopsis "Process List Library for Go") + (description "Go-Ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a platform-safe way.") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "14")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 ac48b41f97..d715c76a7f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "Go-Daemon is a library for writing system daemons in golang.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "45")) -- 2.32.0
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 d715c76a7f..2feefe68c3 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 2feefe68c3..2e17d680a0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "68")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (home-page "https://github.com/willscott/goturn") + (synopsis "Golang TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay. It provides +parsing and encoding support for STUN and TURN protocols.") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 2e17d680a0..9c1119159d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,134 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports"))))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" + ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" + ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "Network Obfourscator") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@item The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@item The handshake uses the Tor Project's ntor handshake with public keys +obfuscated via the Elligator 2 mapping. +@item The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "68")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 9c1119159d..ffcb88e1c7 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,59 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of IPC protocol") + (description "Shapeshifter-IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 ffcb88e1c7..787a28c812 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Golang logging library") + (description "Go-Logging implements a logging infrastructure for Go. Its +output format is customizable and supports different logging backends like +syslog, file and memory. Multiple backends can be utilized with different log +levels per backend and logger.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 99 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 787a28c812..05c74f2719 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,105 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping"))))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" + ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "https://github.com/blanu/Dust") + (synopsis "Censorship-Resistant Internet Transport Protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security are observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 05c74f2719..5438f358f5 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "Golang-Set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 5438f358f5..0e9c0f3a8c 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Byte sequences library") + (description "Monolith-Go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-go): 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 0e9c0f3a8c..be5e40a67a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "OpenTracing-Go is a Go implementation of OpenTracing API.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 be5e40a67a..766e945a7a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "28")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (home-page "https://github.com/mufti1/interconv") + (synopsis "Data Type Converter") + (description "InterConv is for convert interface into any data type.") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.32.0
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 766e945a7a..b034cbd037 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "114")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/aead/chacha20") + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "28")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 b034cbd037..71fd68e2df 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "15")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (home-page "https://github.com/riobard/go-bloom") + (synopsis "Bloom Filter in Go") + (description "Go-Bloom implements Boom Filter using double hashing.") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "114")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): 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 71fd68e2df..c57de865f9 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,36 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" + ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks Suite") + (description "Go-ShadowSocks is an implementation of shadowsocks in Go.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "15")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 c57de865f9..0cf2f22642 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 0cf2f22642..d378e1feaa 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" + ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Logging foundation for Go applications") + (description "GoLog is a level-based logger written in Go.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 135 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d378e1feaa..16fb75d8bf 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,141 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")))) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))))) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter-Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification. +Each transport implements a different method of shapeshifting network traffic. +The goal is for application traffic to be sent over the network in a shapeshifted +form that bypasses network filtering, allowing the application to work on +networks where it would otherwise be blocked or heavily throttled.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.32.0
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 16fb75d8bf..6c2467b09e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.32.0
* gnu/packages/vpn.scm (bitmask): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/vpn.scm | 205 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index aecf9831ca..b38d989d8c 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -16,6 +16,8 @@ ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> ;;; Copyright © 2021 Domagoj Stolfa <ds815@gmx.com> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,9 +40,12 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) @@ -54,7 +59,9 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) + #:use-module (gnu packages gl) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -63,6 +70,7 @@ #:use-module (gnu packages nss) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) @@ -73,6 +81,203 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.21.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0cdgh4mqvalvknck1zjy7dhmjfyhbmn9knya6ymx8dqan308sr")) + (modules + '((guix build utils))) + (snippet + `(begin + ;; To remove bundled thirdparty sources. + (delete-file-recursively "branding/thirdparty") + ;; To generate version.go file. + (call-with-output-file "pkg/config/version/version.go" + (lambda (port) + (format port "package version\n") + (format port "\n") + (format port (string-append "var VERSION = \"" ,version "\"")))) + #t)))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build cmake-build-system) + (guix build copy-build-system) + (guix build python-build-system) + (guix build qt-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + ((guix build python-build-system) + #:prefix python:) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils) + (guix build go-build-system)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:import-path "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason this package is left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((shapeshifter + (assoc-ref inputs "go-0xacab-org-leap-shapeshifter")) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively shapeshifter-src "src")))) + (add-after 'unpack 'patch + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + ;; To use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; To use correct paths for referenced items. + (let* ((out (assoc-ref outputs "out")) + (policy-dir (string-append out "/share/polkit-1/actions")) + (policy-file "se.leap.bitmask.policy") + (policy-path (string-append policy-dir "/" policy-file)) + (ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (pkttyagent (string-append (assoc-ref inputs "polkit") + "/bin/pkttyagent")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/(bin|lib|libexec)/.*(kit|agent|agent-1)") pkttyagent) + (("fingerprint-polkit-agent") "pkttyagent") + (("/usr/sbin/openvpn") openvpn) + (("/usr/sbin/bitmask-root") bitmask-root) + (("/usr/local/sbin/bitmask-root") bitmask-root) + (("/usr/share.*\\.policy") policy-path))) + (substitute* (find-files "." "\\.pro$") + ;; To use correct path for goshim files, + ;; which are generated in 'build-continued phase. + (("-L.*/lib") "-L./lib") + ;; FIXME: Unable to build i18n files. + (("TRANSLATIONS.*i18n.*$") "") + (("RESOURCES.*i18n.*$") ""))))) + (add-after 'build 'build-continued + (lambda _ + ;; To generate goshim library and header files. + (let* ((dir "src/0xacab.org/leap/bitmask-vpn") + (source (string-append dir "/gui/backend.go")) + (target (string-append dir "/lib/libgoshim.a"))) + (mkdir-p (string-append dir "/lib")) + (invoke "go" "build" "-buildmode=c-archive" "-o" target source)) + ;; To build bitmask application. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "bitmask.pro") + (invoke "make" "release/bitmask")))) + (add-after 'check 'check-continued + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; To run bitmask test. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "test.pro") + ;; Tests require display-server. + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")) + ;; Tests write to $HOME. + (setenv "HOME" (getenv "TEMP")) + (invoke "make" "check"))))) + (add-after 'install 'install-continued + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + ;; To install bitmask program. + '(("src/0xacab.org/leap/bitmask-vpn/release" + "bin" + #:include ("bitmask")) + ;; To install bitmask-root script. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ;; To install polkit policy. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask (string-append out "/bin/bitmask")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; To make bitmask-root script executable. + (chmod bitmask-root #o776)))) + (add-after 'post-install 'python-wrap + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'python-wrap 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("iproute" ,iproute) + ("iptables" ,iptables) + ("mesa" ,mesa) + ("openvpn" ,openvpn) + ("polkit" ,polkit) + ("procps" ,procps) + ("python" ,python) + ("qtbase" ,qtbase-5) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols) + ("qtquickcontrols2" ,qtquickcontrols2))) + (propagated-inputs + `(("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-rakyll-statik" + ,go-github-com-rakyll-statik) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "White-label VPN client by LEAP") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.32.0
* gnu/services/vpn.scm (bitmask-service-type): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/services/vpn.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index a51dda3873..55b4bd0b16 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -6,6 +6,8 @@ ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw> ;;; Copyright © 2021 Domagoj Stolfa <ds815@gmx.com> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +27,7 @@ (define-module (gnu services vpn) #:use-module (gnu services) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) #:use-module (gnu packages admin) @@ -69,6 +72,22 @@ wireguard-service-type)) +;;; +;;; Bitmask VPN +;;; + +(define-public bitmask-service-type + (service-type + (name 'bitmask) + (description "Setup the @uref{https://bitmask.net, Bitmask} VPN application.") + (default-value bitmask) + (extensions + (list + ;; To configure polkit policy of bitmask. + (service-extension polkit-service-type list) + ;; To add bitmask to the system profile. + (service-extension profile-service-type list))))) + ;;; ;;; OpenVPN. ;;; -- 2.32.0
[-- Attachment #1: Type: text/plain, Size: 189 bytes --] Raghav Gururajan via Guix-patches via 写道: > +your Go binary to be later served from an http.") ‘HTTP’, and it sounds like the sentence got cut off? Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 490 bytes --] Raghav Gururajan via Guix-patches via 写道: > +(define-public go-github-com-emersion-go-autostart > + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") > + (revision "39")) Just use 0 here. I suspect you counted the number of commits (some distros do this), but we don't care: it's just a number that gets incremented by 1 every time someone bumps the commit by however many. This applies to all similar patches in the series. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 805 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (lambda arguments > + (for-each > + (lambda (directory) > + (apply (assoc-ref %standard-phases 'build) > + `(,@arguments #:import-path > ,directory))) Nice! > + (list > + > "github.com/apparentlymart/go-openvpn-mgmt/demux" > + > "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) …wow, this whole package is screaming for just a little more metaprogramming, isn't it. :-) Just FYI, I think you could further abstract away the repitition if you feel like flexing your Scheme muscles. But I understand if not, and I don't think this patch series should be greatly delayed on that account. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1167 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (substitute* (find-files "." ".*test\\.go") I think this should be ".*test\\.go$" to match only extensions, unless you want to match test.gosomethinglikethis as well? Note that ".*test" is simply equivalent to "test", but some people find it clearer. I personally don't! Both are fine. > + (("/bin/sleep") > + (string-append > + (assoc-ref (or native-inputs inputs) > "coreutils") > + "/bin/sleep")))))))) This is fine, but you could also write + (substitute* (find-files "." ".*test\\.go") + (("/bin/sleep" command) + (string-append + (assoc-ref (or native-inputs inputs) "coreutils") + command)))))))) > + (synopsis "Process List Library for Go") ‘list library’. > + (description "Go-Ps is a library for Go that implements > OS-specific APIs > +to list and manipulate processes in a platform-safe way.") I'm nitpicking upstream here: s/platform-safe/safe/ . Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 211 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (description "Go-Daemon is a library for writing system > daemons in golang.") s/golang/Go/ anywhere, any time, any place. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 355 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (url > "https://git.torproject.org/pluggable-transports/goptlib") This works… > + (home-page > "https://gitweb.torproject.org/pluggable-transports/goptlib") …but doesn't load in my Web browser. Did it work for you? Is it really the home page? Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 236 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (synopsis "Network Obfourscator") Heh. I mean, I get it, but it's not very descriptive. Maybe add ‘to scramble network traffic’ if you agree? Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 175 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (synopsis "Go implementation of IPC protocol") s/of IPC/of the Pluggable Transports IPC/ Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 456 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (synopsis "Censorship-Resistant Internet Transport > Protocol") Drop all but the first capital. > + (description "Dust is an Internet protocol designed to > resist a number of > +attacks currently in active use to censor Internet > communication. While > +adherence to the theoretical maxims of cryptographic security > are observed where s/are/is/. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 315 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (description "OpenTracing-Go is a Go implementation of > OpenTracing API.") ‘the Opentracing’ (I tried reading their Web page for more specific info but it tries hard to be unspecific and unreadable, so this is fine.) Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 276 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (synopsis "Data Type Converter") Nocaps. > + (description "InterConv is for convert interface into any > data type.") s/is for convert interface/converts interfaces/ I guess. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 243 bytes --] Raghav Gururajan via Guix-patches via 写道: > + (synopsis "Bloom Filter in Go") > + (description "Go-Bloom implements Boom Filter using > double hashing.") Uncapitalised ‘filters’. No Boom. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 501 bytes --] Raghav Gururajan via Guix-patches via 写道: > + ;; Version > 0.1.3 requires go-toolchain v1.16. Damn, I was looking forward to a non-spelling-related nitpick but you got me. OK. > + (synopsis "Shadowsocks Suite") Back to saying things like ‘s/suite/tunnel proxy/’, then, I guess. Sigh. > + (description "Go-ShadowSocks is an implementation of > shadowsocks in Go.") …is a Go implementation of the Shadowsocks tunnel proxy protocol. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 2497 bytes --] Thanks for this series, jgart and Rhagav! I'd hoped to do more than mere proofreading no the next two patches, but my Guix refuses to build bitmask complaining about no code for module (guix build qt-utils). I'm rebuilding my checkout but will have to leave before it completes. Sorry: more surface level readings for now. Raghav Gururajan via Guix-patches via 写道: > + ;; To remove bundled thirdparty sources. > + (delete-file-recursively "branding/thirdparty") > + ;; To generate version.go file. > + (call-with-output-file > "pkg/config/version/version.go" Your code is sufficiently clear not to need these comments. > + ;; For some reason this package is left out. > + (lambda* (#:key inputs #:allow-other-keys) > + (let* ((shapeshifter > + (assoc-ref inputs > "go-0xacab-org-leap-shapeshifter")) > + (shapeshifter-src (string-append > shapeshifter "/src"))) > + (copy-recursively shapeshifter-src "src")))) That's interesting. Did you see any upstream acknowledgment of this? > + (add-after 'install 'install-continued > + (lambda args > + (apply (assoc-ref copy:%standard-phases 'install) > + #:install-plan > + ;; To install bitmask program. > + > '(("src/0xacab.org/leap/bitmask-vpn/release" > + "bin" > + #:include ("bitmask")) > + ;; To install bitmask-root script. > + > ("src/0xacab.org/leap/bitmask-vpn/helpers" > + "sbin" > + #:include ("bitmask-root")) > + ;; To install polkit policy. > + > ("src/0xacab.org/leap/bitmask-vpn/helpers" > + "share/polkit-1/actions" > + #:include ("se.leap.bitmask.policy"))) > + args))) OK, good exercise :-) > + ;; To make bitmask-root script executable. > + (chmod bitmask-root #o776)))) Just write #o777. > + (synopsis "White-label VPN client by LEAP") I read your explanation, but I still agree with Maxime: > I'd drop "White-label" from the synopsis. It's not that it's *wrong*, but there are less metaphorical ways to say the same thing, for example ‘VPN client that supports multiple providers’. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1: Type: text/plain, Size: 565 bytes --] Raghav Gururajan via Guix-patches via 写道: > +(define-public bitmask-service-type > + (service-type > + (name 'bitmask) > + (description "Setup the @uref{https://bitmask.net, Bitmask} > VPN application.") …so this is an odd service, in that the polkit thing is apparently only a temporary hack, and the only other action is a trend I quite dislike: services assuming they may install random packages. I understand if it's a necessary evil for now to keep things in sync. Is that why it's undocumented? :-) Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
* gnu/packages/golang.scm (go-github-com-rakyll-statik): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/golang.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index aedb5d4f69..8f6f79be1f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -27,6 +27,8 @@ ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@mgail.com> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -71,6 +73,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-rakyll-statik + (package + (name "go-github-com-rakyll-statik") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/rakyll/statik") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y0kbzma55vmyqhyrw9ssgvxn6nw7d0zg72a7nz8vp1zly4hs6va")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/rakyll/statik")) + (home-page "https://github.com/rakyll/statik/") + (synopsis "Embed files into a Go executable") + (description "Statik allows you to embed a directory of static files into +your Go binary to be later served from an http.FileSystem.") + (license license:asl2.0))) + ;; According to https://golang.org/doc/install/gccgo, gccgo-4.8.2 includes a ;; complete go-1.1.2 implementation, gccgo-4.9 includes a complete go-1.2 ;; implementation, and gccgo-5 a complete implementation of go-1.4. Ultimately -- 2.32.0
* gnu/packages/golang.scm (go-github-com-dchest-siphash): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/golang.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 8f6f79be1f..3d8a5a4d86 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-dchest-siphash + (package + (name "go-github-com-dchest-siphash") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/dchest/siphash") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08s076y7vmjqnq7jz0762hkm896r6r31v8b31a3gy0n8rfa01k8k")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/dchest/siphash")) + (home-page "https://github.com/dchest/siphash") + (synopsis "Go library for pseudorandom functions") + (description "SipHash is a family of pseudorandom functions (PRFs) optimized +for speed on short messages.") + (license license:cc0))) + (define-public go-github-com-rakyll-statik (package (name "go-github-com-rakyll-statik") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-emersion-go-autostart): 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 3d8a5a4d86..d8fa00930d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-emersion-go-autostart + (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") + (revision "0")) + (package + (name "go-github-com-emersion-go-autostart") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/emersion/go-autostart") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0cqqvbzn32xv5lknfygrx01rx2sc6pi833k7008nlk9lsfgry06v")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/emersion/go-autostart")) + (home-page "https://github.com/emersion/go-autostart") + (synopsis "Autostart library in Go") + (description "Go-Autostart is a Go library to run a command after login.") + (license license:expat)))) + (define-public go-github-com-dchest-siphash (package (name "go-github-com-dchest-siphash") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-apparentlymart-go-openvpn-mgmt): New variable. --- gnu/packages/golang.scm | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d8fa00930d..0e485b6ab7 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,61 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-apparentlymart-go-openvpn-mgmt + (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") + (revision "0")) + (package + (name "go-github-com-apparentlymart-go-openvpn-mgmt") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/apparentlymart/go-openvpn-mgmt") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dn431jnswg5ns1ah10wswnw6wiv48zq21zr5xp1178l4waswj7k")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/apparentlymart/go-openvpn-mgmt" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/apparentlymart/go-openvpn-mgmt/demux" + "github.com/apparentlymart/go-openvpn-mgmt/openvpn"))))))) + (home-page "https://github.com/apparentlymart/go-openvpn-mgmt") + (synopsis "Go client library for OpenVPN's management protocol") + (description "Go-OpenVPN-Mgmt implements a client for the OpenVPN +management interface. It can be used to monitor and control an OpenVPN process +running with its management port enabled.") + (license license:expat)))) + (define-public go-github-com-emersion-go-autostart (let ((commit "00ed301c8e9ae79e82878c6361c709983ac5dd2c") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-keybase-go-ps): 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 0e485b6ab7..141b2160b0 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,44 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-keybase-go-ps + (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") + (revision "0")) + (package + (name "go-github-com-keybase-go-ps") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/keybase/go-ps") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1la7m9pd1rrij727g34k9d2iapqwrkwdkqwpkbsbcq8ig0fg634h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/keybase/go-ps" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (substitute* (find-files "." "test\\.go") + (("/bin/sleep" command) + (string-append + (assoc-ref (or native-inputs inputs) "coreutils") + command)))))))) + (native-inputs + `(("coreutils" ,coreutils) + ("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/keybase/go-ps") + (synopsis "Process list library for Go") + (description "Go-Ps is a library for Go that implements OS-specific APIs +to list and manipulate processes in a safe way.") + (license license:expat)))) + (define-public go-github-com-apparentlymart-go-openvpn-mgmt (let ((commit "4d2ce95ae600ee04eeb020ee0997aabb82752210") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-sevlyar-go-daemon): 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 141b2160b0..6166b7d20a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-sevlyar-go-daemon + (package + (name "go-github-com-sevlyar-go-daemon") + (version "0.1.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/sevlyar/go-daemon") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1y3gnxaifykcjcbzx91lz9bc93b95w3xj4rjxjbii26pm3j7gqyk")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/sevlyar/go-daemon")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/sevlyar/go-daemon") + (synopsis "Library for writing system daemons") + (description "Go-Daemon is a library for writing system daemons in Go.") + (license license:expat))) + (define-public go-github-com-keybase-go-ps (let ((commit "91aafc93ba19d1988cff338c1929d35b6c6f5b50") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-torproject-org-pluggable-transports-goptlib): 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 6166b7d20a..2a0e49e4ad 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,29 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-torproject-org-pluggable-transports-goptlib + (package + (name "go-torproject-org-pluggable-transports-goptlib") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://git.torproject.org/pluggable-transports/goptlib") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lh938194hvkf8pqgnxwf6hvjv9rv0j3kasi07r2ckrj8sxzk4jc")))) + (build-system go-build-system) + (arguments + `(#:import-path "git.torproject.org/pluggable-transports/goptlib")) + (home-page "https://gitweb.torproject.org/pluggable-transports/goptlib.git/") + (synopsis "Go pluggable transports library") + (description "GoPtLib is a library for writing Tor pluggable transports in +Go.") + (license license:cc0))) + (define-public go-github-com-sevlyar-go-daemon (package (name "go-github-com-sevlyar-go-daemon") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-willscott-goturn): 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 2a0e49e4ad..96e62ed75a 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-willscott-goturn + (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") + (revision "0")) + (package + (name "go-github-com-willscott-goturn") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/willscott/goturn") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zwvhfznr84ayzknn9flh65nvqjsixisgy9fkhz2jlahl1ldqcq7")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/willscott/goturn")) + (home-page "https://github.com/willscott/goturn") + (synopsis "Go TURN dialer") + (description "GoTURN is a library providing a Go interface compatible with +the golang proxy package which connects through a TURN relay. It provides +parsing and encoding support for STUN and TURN protocols.") + (license license:bsd-3)))) + (define-public go-torproject-org-pluggable-transports-goptlib (package (name "go-torproject-org-pluggable-transports-goptlib") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-obfs4): New variable. --- gnu/packages/golang.scm | 128 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 96e62ed75a..58312194dd 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,134 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-obfs4 + (package + (name "go-github-com-operatorfoundation-obfs4") + (version "1.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/obfs4") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s730xagdxs66wfh65hb5v9a5h01q5ncic3pyij0a043scagizgr")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/obfs4" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + ;; ERROR: Println arg dialFn is a func value, not called. + ;;"github.com/OperatorFoundation/obfs4/modes/pt_socks5" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn. + ;;"github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + ;; ERROR: Infof format %s has arg ln of wrong type *net.UDPConn + ;;"github.com/OperatorFoundation/obfs4/modes/transparent_udp" + ;; ERROR: Println call has possible formatting directive %s. + ;;"github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/obfs4/common/csrand" + "github.com/OperatorFoundation/obfs4/common/drbg" + "github.com/OperatorFoundation/obfs4/common/log" + "github.com/OperatorFoundation/obfs4/common/ntor" + "github.com/OperatorFoundation/obfs4/common/probdist" + "github.com/OperatorFoundation/obfs4/common/pt_extras" + "github.com/OperatorFoundation/obfs4/common/replayfilter" + "github.com/OperatorFoundation/obfs4/common/socks5" + "github.com/OperatorFoundation/obfs4/common/termmon" + "github.com/OperatorFoundation/obfs4/common/uniformdh" + "github.com/OperatorFoundation/obfs4/modes/pt_socks5" + "github.com/OperatorFoundation/obfs4/modes/stun_udp" + "github.com/OperatorFoundation/obfs4/modes/transparent_tcp" + "github.com/OperatorFoundation/obfs4/modes/transparent_udp" + "github.com/OperatorFoundation/obfs4/obfs4proxy" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_http" + "github.com/OperatorFoundation/obfs4/proxy_dialers/proxy_socks4" + "github.com/OperatorFoundation/obfs4/transports"))))))) + (propagated-inputs + `(("go-github-com-dchest-siphash" + ,go-github-com-dchest-siphash) + ("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-willscott-goturn" + ,go-github-com-willscott-goturn) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/obfs4") + (synopsis "Network obfourscator to scramble network traffic") + (description "Obfs4 is a look-like nothing obfuscation protocol that +incorporates ideas and concepts from Philipp Winter's ScrambleSuit protocol. +The notable differences between ScrambleSuit and obfs4 are: +@itemize +@item The handshake always does a full key exchange (no such thing as a Session +Ticket Handshake). +@item The handshake uses the Tor Project's ntor handshake with public keys +obfuscated via the Elligator 2 mapping. +@item The link layer encryption uses NaCl secret boxes (Poly1305/XSalsa20). +@end itemize") + (license license:bsd-2))) + (define-public go-github-com-willscott-goturn (let ((commit "19f41278d0c9251d64e0ee29f37d51e87a24a97b") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-ipc): New variable. --- gnu/packages/golang.scm | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 58312194dd..e5c097dd2b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,59 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-ipc + (package + (name "go-github-com-operatorfoundation-shapeshifter-ipc") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-ipc") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1q1fcnllg462nfca16s5mr0n2jh92x3hj946qnaqc682phjz04lg")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: undefined: Args. + #:unpack-path "github.com/OperatorFoundation/shapeshifter-ipc" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-ipc/v2" + "github.com/OperatorFoundation/shapeshifter-ipc/v3"))))))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-ipc") + (synopsis "Go implementation of the Pluggable Transports IPC protocol") + (description "Shapeshifter-IPC is a library for Go implementing the IPC +protocol from the Pluggable Transports 2.0 specification.") + (license license:expat))) + (define-public go-github-com-operatorfoundation-obfs4 (package (name "go-github-com-operatorfoundation-obfs4") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-op-go-logging): 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 e5c097dd2b..656b0ad715 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,32 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-op-go-logging + (package + (name "go-github-com-op-go-logging") + (version "0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/op/go-logging") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "01a6lkpj5p82gplddh55az194s9y3014p4j8x4zc8yv886z9c8gn")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: incorrect callpath: String.rec...a.b.c.Info. + #:import-path "github.com/op/go-logging")) + (home-page "https://github.com/op/go-logging") + (synopsis "Go logging library") + (description "Go-Logging implements a logging infrastructure for Go. Its +output format is customizable and supports different logging backends like +syslog, file and memory. Multiple backends can be utilized with different log +levels per backend and logger.") + (license license:bsd-3))) + (define-public go-github-com-operatorfoundation-shapeshifter-ipc (package (name "go-github-com-operatorfoundation-shapeshifter-ipc") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-blanu-dust): New variable. --- gnu/packages/golang.scm | 99 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 656b0ad715..7f0cf554a1 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,105 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-blanu-dust + (package + (name "go-github-com-blanu-dust") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/blanu/Dust") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1lya21w06ramq37af5hdiafbrv5k1csjm7k7m00v0bfxg3ni01bs")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/blanu/Dust" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + ;; Repository is missing test files directory. + ;;"github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/blanu/Dust/go/buf" + "github.com/blanu/Dust/go/dist" + "github.com/blanu/Dust/go/huffman" + "github.com/blanu/Dust/go/model1" + "github.com/blanu/Dust/go/prim1" + "github.com/blanu/Dust/go/proc" + "github.com/blanu/Dust/go/sillyHex" + "github.com/blanu/Dust/go/skein" + "github.com/blanu/Dust/go/v2/Dust2_proxy" + "github.com/blanu/Dust/go/v2/Dust2_tool" + "github.com/blanu/Dust/go/v2/crypting" + "github.com/blanu/Dust/go/v2/interface" + "github.com/blanu/Dust/go/v2/shaping"))))))) + (propagated-inputs + `(("go-github-com-operatorfoundation-ed25519" + ,go-github-com-operatorfoundation-ed25519) + ("go-github-com-op-go-logging" + ,go-github-com-op-go-logging) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto))) + (home-page "https://github.com/blanu/Dust") + (synopsis "Censorship-resistant internet transport protocol") + (description "Dust is an Internet protocol designed to resist a number of +attacks currently in active use to censor Internet communication. While +adherence to the theoretical maxims of cryptographic security is observed where +possible, the focus of Dust is on real solutions to real attacks.") + (license + (list + ;; Skein. + license:bsd-2 + ;; Others. + license:expat)))) + (define-public go-github-com-op-go-logging (package (name "go-github-com-op-go-logging") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-deckarep-golang-set): 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 7f0cf554a1..77f4916f3f 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,28 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-deckarep-golang-set + (package + (name "go-github-com-deckarep-golang-set") + (version "1.7.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/deckarep/golang-set") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0y64c0p6a7ww5jp6adm6fm97vsni86njw8wkwxfmciy466vhl0lf")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/deckarep/golang-set")) + (home-page "https://github.com/deckarep/golang-set") + (synopsis "Set type for Go") + (description "Set is the set collection for the Go language.") + (license license:expat))) + (define-public go-github-com-blanu-dust (package (name "go-github-com-blanu-dust") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-monolith-go): New variable. --- gnu/packages/golang.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 77f4916f3f..1646e0f6e1 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-monolith-go + (package + (name "go-github-com-operatorfoundation-monolith-go") + (version "1.0.4") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/monolith-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "066bqlgw5h7a3kxswqlv734asb7nw2y6snsn09yqk0ixj23qw22s")))) + (build-system go-build-system) + (arguments + `(#:tests? #f ; ERROR: Generated bytes do not match correct answer. + #:unpack-path "github.com/OperatorFoundation/monolith-go" + #:import-path "github.com/OperatorFoundation/monolith-go/monolith")) + (propagated-inputs + `(("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set))) + (home-page "https://github.com/OperatorFoundation/monolith-go") + (synopsis "Byte sequences library") + (description "Monolith-Go is a Go library for working with byte sequences.") + (license license:expat))) + (define-public go-github-com-deckarep-golang-set (package (name "go-github-com-deckarep-golang-set") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-opentracing-opentracing-go): 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 1646e0f6e1..62e4a94271 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-opentracing-opentracing-go + (package + (name "go-github-com-opentracing-opentracing-go") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/opentracing/opentracing-go") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04rgdwl29kimp2wnm4dycnzp7941hvpj6wym85x23c6fclacm94h")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/opentracing/opentracing-go")) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (home-page "https://github.com/opentracing/opentracing-go") + (synopsis "OpenTracing API for Go") + (description "OpenTracing-Go is a Go implementation of the OpenTracing API.") + (license license:asl2.0))) + (define-public go-github-com-operatorfoundation-monolith-go (package (name "go-github-com-operatorfoundation-monolith-go") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-mufti1-interconv): 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 62e4a94271..4c11fce7fe 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-mufti1-interconv + (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") + (revision "0")) + (package + (name "go-github-com-mufti1-interconv") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/mufti1/interconv") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13f5pvr74afa28pbpmgvjzjx68vv5zmrwlvxp7hr5bl5625zlxmy")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/mufti1/interconv" + #:import-path "github.com/mufti1/interconv/package")) + (home-page "https://github.com/mufti1/interconv") + (synopsis "Data type converter") + (description "InterConv converts interfaces into any data type.") + (license license:expat)))) + (define-public go-github-com-opentracing-opentracing-go (package (name "go-github-com-opentracing-opentracing-go") -- 2.32.0
* gnu/packages/golang.org (go-github-com-aead-chacha20): New variable. --- gnu/packages/golang.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4c11fce7fe..8309cda81b 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,34 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-aead-chacha20 + (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") + (revision "0")) + (package + (name "go-github-com-aead-chacha20") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/aead/chacha20") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0gbmgq5kbqmbyrsav57ql4jzbvqvp1q7yvcd5fl3wf5g94iyv56r")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/aead/chacha20")) + (propagated-inputs + `(("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (home-page "https://github.com/aead/chacha20") + (synopsis "ChaCha20 and XChaCha20 stream ciphers") + (description "ChaCha is a stream cipher family created by Daniel Bernstein. +The most common ChaCha variant is ChaCha20 (20 rounds). ChaCha20 is +standardized in RFC 7539.") + (license license:expat)))) + (define-public go-github-com-mufti1-interconv (let ((commit "d7c72925c6568d60d361757bb9f2d252dcca745c") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-riobard-go-bloom): 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 8309cda81b..6b09b227ab 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-riobard-go-bloom + (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") + (revision "0")) + (package + (name "go-github-com-riobard-go-bloom") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/riobard/go-bloom") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10a8ixh6zw52df2imxrzgxi82zc1j5hqnv5smjp818qwdn1a1rhj")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/riobard/go-bloom")) + (home-page "https://github.com/riobard/go-bloom") + (synopsis "Bloom filter in Go") + (description "Go-Bloom implements bloom filter using double hashing.") + (license license:asl2.0)))) + (define-public go-github-com-aead-chacha20 (let ((commit "8b13a72661dae6e9e5dea04f344f0dc95ea29547") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-shadowsocks-go-shadowsocks2): New variable. --- gnu/packages/golang.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 6b09b227ab..cb43eed46e 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,37 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-shadowsocks-go-shadowsocks2 + (package + (name "go-github-com-shadowsocks-go-shadowsocks2") + ;; Version > 0.1.3 requires go-toolchain v1.16. + (version "0.1.3") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/shadowsocks/go-shadowsocks2") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wzy3ml4ld83iawcl6p313bskzs6zjhz8vlg8kpwgn71cnbv4pvi")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/shadowsocks/go-shadowsocks2")) + (propagated-inputs + `(("go-github-com-riobard-go-bloom" + ,go-github-com-riobard-go-bloom) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-golang-org-x-sys" ,go-golang-org-x-sys) + ("go-golang-org-x-text" ,go-golang-org-x-text))) + (home-page "https://github.com/shadowsocks/go-shadowsocks2") + (synopsis "Shadowsocks tunnel proxy") + (description "Go-ShadowSocks is a Go implementation of the Shadowsocks tunnel +proxy protocol.") + (license license:asl2.0))) + (define-public go-github-com-riobard-go-bloom (let ((commit "cdc8013cb5b3eb0efebec85f0e904efccac42df9") (revision "0")) -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-pio): 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 cb43eed46e..e37b2758ff 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,30 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-pio + (package + (name "go-github-com-kataras-pio") + (version "0.0.10") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/pio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "11d2jy9xz4airicgmjcy4nb80kwv22jp140wzn2l5412jdr4jmkp")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/pio")) + (home-page "https://github.com/kataras/pio") + (synopsis "Pill for Input/Output") + (description "PIO is a low-level package that provides a way to centralize +different output targets. Supports colors and text decoration to all popular +terminals.") + (license license:bsd-3))) + (define-public go-github-com-shadowsocks-go-shadowsocks2 (package (name "go-github-com-shadowsocks-go-shadowsocks2") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-kataras-golog): 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 e37b2758ff..4884c36c50 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,31 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-kataras-golog + (package + (name "go-github-com-kataras-golog") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/kataras/golog") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1ll24g50j48wqikzf67cyaq0m0f57v1ap24nbz3cmv3yzqi6wdl9")))) + (build-system go-build-system) + (arguments + `(#:import-path "github.com/kataras/golog")) + (propagated-inputs + `(("go-github-com-kataras-pio" + ,go-github-com-kataras-pio))) + (home-page "https://github.com/kataras/golog") + (synopsis "Logging foundation for Go applications") + (description "GoLog is a level-based logger written in Go.") + (license license:bsd-3))) + (define-public go-github-com-kataras-pio (package (name "go-github-com-kataras-pio") -- 2.32.0
* gnu/packages/golang.scm (go-github-com-operatorfoundation-shapeshifter-transports): New variable. --- gnu/packages/golang.scm | 135 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 4884c36c50..f5a6faee7d 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,141 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-github-com-operatorfoundation-shapeshifter-transports + (package + (name "go-github-com-operatorfoundation-shapeshifter-transports") + (version "3.0.12") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/OperatorFoundation/shapeshifter-transports") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0f1hzhk3q2fgqdg14zlg3z0s0ib1y9xwj89qnjk95b37zbgqjgsb")))) + (build-system go-build-system) + (arguments + `(#:unpack-path "github.com/OperatorFoundation/shapeshifter-transports" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda _ + (substitute* (find-files "." "\\.go$") + ;; To drop '.git' suffix in import path of goptlib. + (("goptlib\\.git") "goptlib")))) + (replace 'build + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'build) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'check + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'check) + `(,@arguments #:import-path ,directory))) + (list + ;;; ERROR: invalid memory address or nil pointer dereference. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + ;;; ERROR: bind: permission denied. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3")))) + ;;; ERROR: failed with status 1. + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + ;;"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3")))) + (replace 'install + (lambda arguments + (for-each + (lambda (directory) + (apply (assoc-ref %standard-phases 'install) + `(,@arguments #:import-path ,directory))) + (list + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Optimizer/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/meekserver/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4/v3" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v2" + "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow/v3"))))))) + (native-inputs + `(("go-github-com-stretchr-testify" + ,go-github-com-stretchr-testify))) + (propagated-inputs + `(("go-github-com-aead-chacha20" + ,go-github-com-aead-chacha20) + ("go-github-com-blanu-dust" + ,go-github-com-blanu-dust) + ("go-github-com-deckarep-golang-set" + ,go-github-com-deckarep-golang-set) + ("go-github-com-kataras-golog" + ,go-github-com-kataras-golog) + ("go-github-com-mufti1-interconv" + ,go-github-com-mufti1-interconv) + ("go-github-com-opentracing-opentracing-go" + ,go-github-com-opentracing-opentracing-go) + ("go-github-com-operatorfoundation-monolith-go" + ,go-github-com-operatorfoundation-monolith-go) + ("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-ipc" + ,go-github-com-operatorfoundation-shapeshifter-ipc) + ("go-github-com-shadowsocks-go-shadowsocks2" + ,go-github-com-shadowsocks-go-shadowsocks2) + ("go-golang-org-x-crypto" ,go-golang-org-x-crypto) + ("go-golang-org-x-net" ,go-golang-org-x-net) + ("go-torproject-org-pluggable-transports-goptlib" + ,go-torproject-org-pluggable-transports-goptlib))) + (home-page "https://github.com/OperatorFoundation/shapeshifter-transports") + (synopsis "Go implementation of Pluggable Transports") + (description "Shapeshifter-Transports is a set of Pluggable Transports +implementing the Go API from the Pluggable Transports 2.0 specification. +Each transport implements a different method of shapeshifting network traffic. +The goal is for application traffic to be sent over the network in a shapeshifted +form that bypasses network filtering, allowing the application to work on +networks where it would otherwise be blocked or heavily throttled.") + (license license:expat))) + (define-public go-github-com-kataras-golog (package (name "go-github-com-kataras-golog") -- 2.32.0
* gnu/packages/golang.scm (go-0xacab-org-leap-shapeshifter): 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 f5a6faee7d..add336f9b8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -73,6 +73,39 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public go-0xacab-org-leap-shapeshifter + (let ((commit "0aa6226582efb8e563540ec1d3c5cfcd19200474") + (revision "12")) + (package + (name "go-0xacab-org-leap-shapeshifter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/shapeshifter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m4fla9ppl53k9syms4dsad92wakr74cdvids3xxv3amdh4d1w4i")))) + (build-system go-build-system) + (arguments + `(#:import-path "0xacab.org/leap/shapeshifter")) + (propagated-inputs + `(("go-github-com-operatorfoundation-obfs4" + ,go-github-com-operatorfoundation-obfs4) + ("go-github-com-operatorfoundation-shapeshifter-transports" + ,go-github-com-operatorfoundation-shapeshifter-transports) + ("go-golang-org-x-net" ,go-golang-org-x-net))) + (home-page "https://0xacab.org/leap/shapeshifter") + (synopsis "Shapeshifter Dispatcher Library") + (description "Shapeshifter provides network protocol shapeshifting +technology. The purpose of this technology is to change the characteristics of +network traffic so that it is not identified and subsequently blocked by network +filtering devices.") + (license license:bsd-2)))) + (define-public go-github-com-operatorfoundation-shapeshifter-transports (package (name "go-github-com-operatorfoundation-shapeshifter-transports") -- 2.32.0
* gnu/packages/vpn.scm (bitmask): New variable. Co-authored-by: jgart <jgart@dismail.de> --- gnu/packages/vpn.scm | 203 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index aecf9831ca..29acc903e8 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -16,6 +16,8 @@ ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> ;;; Copyright © 2020 David Dashyan <mail@davie.li> ;;; Copyright © 2021 Domagoj Stolfa <ds815@gmx.com> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,9 +40,12 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cmake) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system go) #:use-module (guix build-system linux-module) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages admin) @@ -54,7 +59,9 @@ #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages gnome) + #:use-module (gnu packages gl) #:use-module (gnu packages gnupg) + #:use-module (gnu packages golang) #:use-module (gnu packages guile) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -63,6 +70,7 @@ #:use-module (gnu packages nss) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages python-build) #:use-module (gnu packages python-crypto) @@ -73,6 +81,201 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xml)) +(define-public bitmask + (package + (name "bitmask") + (version "0.21.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://0xacab.org/leap/bitmask-vpn") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0cdgh4mqvalvknck1zjy7dhmjfyhbmn9knya6ymx8dqan308sr")) + (modules + '((guix build utils))) + (snippet + `(begin + (delete-file-recursively "branding/thirdparty") + (call-with-output-file "pkg/config/version/version.go" + (lambda (port) + (format port "package version\n") + (format port "\n") + (format port (string-append "var VERSION = \"" ,version "\"")))) + #t)))) + (build-system go-build-system) + (arguments + `(#:imported-modules + ((guix build cmake-build-system) + (guix build copy-build-system) + (guix build python-build-system) + (guix build qt-build-system) + ,@%go-build-system-modules) + #:modules + (((guix build copy-build-system) + #:prefix copy:) + ((guix build python-build-system) + #:prefix python:) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils) + (guix build go-build-system)) + #:unpack-path "0xacab.org/leap/bitmask-vpn" + #:import-path "0xacab.org/leap/bitmask-vpn/cmd/bitmask-helper" + #:phases + (modify-phases %standard-phases + (add-after 'setup-go-environment 'insert-missing-sources + ;; For some reason this package is left out. + (lambda* (#:key inputs #:allow-other-keys) + (let* ((name "go-0xacab-org-leap-shapeshifter") + (shapeshifter (assoc-ref inputs name)) + (shapeshifter-src (string-append shapeshifter "/src"))) + (copy-recursively shapeshifter-src "src")))) + (add-after 'unpack 'patch + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + ;; Use 'emersion/go-autostart', + ;; instead of 'ProtonMail/go-autostart', + ;; as the latter no longer exists. + (substitute* (find-files "." "\\.go$") + (("github.com/ProtonMail/go-autostart") + "github.com/emersion/go-autostart")) + ;; Use correct paths for referenced items. + (let* ((out (assoc-ref outputs "out")) + (policy-dir (string-append out "/share/polkit-1/actions")) + (policy-file "se.leap.bitmask.policy") + (policy-path (string-append policy-dir "/" policy-file)) + (ip (string-append (assoc-ref inputs "iproute") + "/sbin/ip")) + (iptables (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (ip6tables (string-append (assoc-ref inputs "iptables") + "/sbin/ip6tables")) + (sysctl (string-append (assoc-ref inputs "procps") + "/sbin/sysctl")) + (pkttyagent (string-append (assoc-ref inputs "polkit") + "/bin/pkttyagent")) + (openvpn (string-append (assoc-ref inputs "openvpn") + "/sbin/openvpn")) + (bitmask-root (string-append (assoc-ref outputs "out") + "/sbin/bitmask-root"))) + (substitute* (find-files "." "(\\.go$|\\.policy$|bitmask-root)") + (("swhich\\(\"ip\"\\)") + (string-append "\"" ip "\"")) + (("swhich\\(\"iptables\"\\)") + (string-append "\"" iptables "\"")) + (("swhich\\(\"ip6tables\"\\)") + (string-append "\"" ip6tables "\"")) + (("swhich\\(\"sysctl\"\\)") + (string-append "\"" sysctl "\"")) + (("/usr/(bin|lib|libexec)/.*(kit|agent|agent-1)") pkttyagent) + (("fingerprint-polkit-agent") "pkttyagent") + (("/usr/sbin/openvpn") openvpn) + (("/usr/sbin/bitmask-root") bitmask-root) + (("/usr/local/sbin/bitmask-root") bitmask-root) + (("/usr/share.*\\.policy") policy-path))) + (substitute* (find-files "." "\\.pro$") + ;; Use correct path for goshim files, + ;; which are generated in 'build-continued phase. + (("-L.*/lib") "-L./lib") + ;; FIXME: Unable to build i18n files. + (("TRANSLATIONS.*i18n.*$") "") + (("RESOURCES.*i18n.*$") ""))))) + (add-after 'build 'build-continued + (lambda _ + ;; Generate goshim library and header files. + (let* ((dir "src/0xacab.org/leap/bitmask-vpn") + (source (string-append dir "/gui/backend.go")) + (target (string-append dir "/lib/libgoshim.a"))) + (mkdir-p (string-append dir "/lib")) + (invoke "go" "build" "-buildmode=c-archive" "-o" target source)) + ;; Build bitmask application. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "bitmask.pro") + (invoke "make" "release/bitmask")))) + (add-after 'check 'check-continued + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; Run bitmask test-suite. + (with-directory-excursion "src/0xacab.org/leap/bitmask-vpn" + (delete-file "Makefile") + (invoke "qmake" "test.pro") + ;; Tests require display-server. + (setenv "QT_QPA_PLATFORM" "offscreen") + ;; Tests look for $XDG_RUNTIME_DIR. + (setenv "XDG_RUNTIME_DIR" (getenv "TEMP")) + ;; Tests write to $HOME. + (setenv "HOME" (getenv "TEMP")) + (invoke "make" "check"))))) + (add-after 'install 'install-continued + (lambda args + (apply (assoc-ref copy:%standard-phases 'install) + #:install-plan + ;; Install bitmask program. + '(("src/0xacab.org/leap/bitmask-vpn/release" + "bin" + #:include ("bitmask")) + ;; Install bitmask-root script. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "sbin" + #:include ("bitmask-root")) + ;; Install polkit-policy. + ("src/0xacab.org/leap/bitmask-vpn/helpers" + "share/polkit-1/actions" + #:include ("se.leap.bitmask.policy"))) + args))) + (add-after 'install-continued 'post-install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bitmask (string-append out "/bin/bitmask")) + (bitmask-root (string-append out "/sbin/bitmask-root"))) + ;; Make bitmask-root script executable. + (chmod bitmask-root #o777)))) + (add-after 'post-install 'python-wrap + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'python-wrap 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("iproute" ,iproute) + ("iptables" ,iptables) + ("mesa" ,mesa) + ("openvpn" ,openvpn) + ("polkit" ,polkit) + ("procps" ,procps) + ("python" ,python) + ("qtbase" ,qtbase-5) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols) + ("qtquickcontrols2" ,qtquickcontrols2))) + (propagated-inputs + `(("go-0xacab-org-leap-shapeshifter" + ,go-0xacab-org-leap-shapeshifter) + ("go-github-com-apparentlymart-go-openvpn-mgmt" + ,go-github-com-apparentlymart-go-openvpn-mgmt) + ("go-github-com-emersion-go-autostart" + ,go-github-com-emersion-go-autostart) + ("go-github-com-keybase-go-ps" + ,go-github-com-keybase-go-ps) + ("go-github-com-rakyll-statik" + ,go-github-com-rakyll-statik) + ("go-github-com-sevlyar-go-daemon" + ,go-github-com-sevlyar-go-daemon) + ("go-golang-org-x-sys" ,go-golang-org-x-sys))) + (synopsis "Generic VPN client by LEAP") + (description "Bitmask, by @acronym{LEAP, LEAP Encryption Access Project}, +is an application to provide easy and secure encrypted communication with a +@acronym{VPN, Virtual Private Network}. It allows you to select from a variety +of trusted service provider all from one app. Current providers include Riseup +Networks and The Calyx Institute, where the former is default.") + (home-page "https://bitmask.net/") + (license license:gpl3+))) + (define-public gvpe (package (name "gvpe") -- 2.32.0
* gnu/services/vpn.scm (bitmask-service-type): New variable. * doc/guix.texi: Document it. Co-authored-by: jgart <jgart@dismail.de> --- doc/guix.texi | 7 +++++++ gnu/services/vpn.scm | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 8681645021..d06ad1635c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -26769,6 +26769,13 @@ Defaults to @samp{()}. The @code{(gnu services vpn)} module provides services related to @dfn{virtual private networks} (VPNs). +@subsubheading Bitmask + +@defvr {Scheme Variable} bitmask-service-type +A service type for the @uref{https://bitmask.net, Bitmask} VPN application. +It makes the application ready for use. +@end defvr + @subsubheading OpenVPN It provides a @emph{client} service for your machine to connect to a diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm index a51dda3873..df84905eb3 100644 --- a/gnu/services/vpn.scm +++ b/gnu/services/vpn.scm @@ -6,6 +6,8 @@ ;;; Copyright © 2021 Solene Rapenne <solene@perso.pw> ;;; Copyright © 2021 Domagoj Stolfa <ds815@gmx.com> ;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> +;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +27,7 @@ (define-module (gnu services vpn) #:use-module (gnu services) #:use-module (gnu services configuration) + #:use-module (gnu services dbus) #:use-module (gnu services shepherd) #:use-module (gnu system shadow) #:use-module (gnu packages admin) @@ -69,6 +72,22 @@ wireguard-service-type)) +;;; +;;; Bitmask. +;;; + +(define-public bitmask-service-type + (service-type + (name 'bitmask) + (description "Setup the @uref{https://bitmask.net, Bitmask} VPN application.") + (default-value bitmask) + (extensions + (list + ;; Add bitmask to the system profile. + (service-extension profile-service-type list) + ;; Configure polkit policy of bitmask. + (service-extension polkit-service-type list))))) + ;;; ;;; OpenVPN. ;;; -- 2.32.0
[-- Attachment #1.1.1: Type: text/plain, Size: 186 bytes --] Hi Tobias! Thanks so much for taking time to go over this patch series. I have applied your suggestions. Please find the v9 patch-set attached with this email. Regards, RG. [-- Attachment #1.1.2: bitmask-patches-v9.tar.gz --] [-- Type: application/gzip, Size: 13672 bytes --] [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 264 bytes --] Hi Tobias! > I'd hoped to do more than mere proofreading no the next two patches, but > my Guix refuses to build bitmask complaining about no code for module > (guix build qt-utils). Ah, I got this too after a git pull. Fixed it in v9. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 455 bytes --] Hi Tobias! > …so this is an odd service, in that the polkit thing is apparently only > a temporary hack, and the only other action is a trend I quite dislike: > services assuming they may install random packages. > > I understand if it's a necessary evil for now to keep things in sync. Yeah, it is only needed until polkit dependency is dropped by upstream. > Is that why it's undocumented? :-) Added it in v9. Regards, RG. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]
[-- Attachment #1: Type: text/plain, Size: 1505 bytes --] Hi Raghav, I spent an embarrasingly long time trying to get this to work under Sway (I'm sure it works fine under a GNOME VM, that's not the point :-p) but had to give up. It's not a blocker. And with that, I think only have two more remarks! You don't need to send a new revision to review. > @subsubheading Bitmask > + > +@defvr {Scheme Variable} bitmask-service-type > +A service type for the @uref{https://bitmask.net, Bitmask} VPN > application. > +It makes the application ready for use. > +@end defvr Thanks for adding some docs! Unfortunately I learnt nothing :-) Documentation should teach something new, for example: “This service type makes the @uref{https://bitmask.net, Bitmask} VPN client available to all users as a system package, and installs the global system Polkit permission rules currently required for users to run it. It will @emph{not} start a Polkit agent for you, as most desktop environments provide their own. Users who don't use such a desktop environment must run their own agent in order to use Bitmask.” > + (default-value bitmask) That's OK if there's no way this service will need to be extended in future, which IIRC was the case, since eventually it should even be removed. *Otherwise* I'd recommend wrapping this in an extensible (bitmask-configuration (bitmask PACKAGE)) record. Thanks, again, to you both for all your effort. Kind regards, T G-R [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 1135 bytes --] Hi Tobias! > I spent an embarrasingly long time trying to get this to work under Sway > (I'm sure it works fine under a GNOME VM, that's not the point :-p) but > had to give up. It's not a blocker. Sorry to hear that. I appreciate the help with the testing. > Documentation should teach something new, for example: > > “This service type makes the @uref{https://bitmask.net, Bitmask} VPN > client available to all users as a system package, and installs the > global system Polkit permission rules currently required for users > to run it. > > It will @emph{not} start a Polkit agent for you, as most desktop > environments provide their own. Users who don't use such a desktop > environment must run their own agent in order to use Bitmask.” Made the change. :) >> + (default-value bitmask) > > That's OK if there's no way this service will need to be extended in > future, which IIRC was the case, since eventually it should even be > removed. Yep, that's the plan. Regards, RG. P.S: Pushed as a329bc7e0c..02562e2f1e. Closing. [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 236 bytes --]