gnu: Add go-golang-org-x-crypto-union.

* gnu/packages/syncthing.scm (go-golang-org-x-crypto-union): New variable.
This commit is contained in:
Leo Famulari 2017-10-11 20:24:56 -04:00
parent 3d86b557c6
commit cca22eb31a
No known key found for this signature in database
GPG Key ID: 2646FA30BACA7F08
1 changed files with 38 additions and 0 deletions

View File

@ -19,6 +19,7 @@
(define-module (gnu packages syncthing) (define-module (gnu packages syncthing)
#:use-module (guix build-system go) #:use-module (guix build-system go)
#:use-module (guix build-system trivial)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix licenses)) #:use-module (guix licenses))
@ -688,6 +689,43 @@ generation.")
(home-page "https://github.com/vitrun/qart") (home-page "https://github.com/vitrun/qart")
(license bsd-3)))) (license bsd-3))))
;; Go searches for library modules by looking in the GOPATH environment
;; variable. This variable is a list of paths. However, Go does not
;; keep searching on GOPATH if it tries and fails to import a module.
;; So, we use a union for packages sharing a namespace.
(define* (go-golang-org-x-crypto-union #:optional
(packages (list go-golang-org-x-crypto-blowfish
go-golang-org-x-crypto-bcrypt
go-golang-org-x-crypto-tea
go-golang-org-x-crypto-xtea
go-golang-org-x-crypto-pbkdf2
go-golang-org-x-crypto-twofish
go-golang-org-x-crypto-cast5
go-golang-org-x-crypto-salsa20)))
(package
(name "go-golang-org-x-crypto")
(version (package-version go-golang-org-x-crypto-bcrypt))
(source #f)
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build union))
#:builder (begin
(use-modules (ice-9 match)
(guix build union))
(match %build-inputs
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
directories))))))
(inputs (map (lambda (package)
(list (package-name package) package))
packages))
(synopsis "Union of the Go x crypto libraries")
(description "A union of the Golang cryptographic libraries. A
union is required because `go build` assumes that all of the headers and
libraries are in the same directory.")
(home-page (package-home-page go-golang-org-x-crypto-bcrypt))
(license (package-license go-golang-org-x-crypto-bcrypt))))
(define-public go-golang-org-x-crypto-bcrypt (define-public go-golang-org-x-crypto-bcrypt
(let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd") (let ((commit "c78caca803c95773f48a844d3dcab04b9bc4d6dd")
(revision "0")) (revision "0"))