aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner2020-03-12 05:46:04 -0500
committerEfraim Flashner2020-03-12 05:46:04 -0500
commit7e7a8a4c59ba52bea1ecd285361dae89cf29376b (patch)
tree51e55ae64d1eb0b45cc4a9fe7b0f067007a42399
parent165e12f94388ee02f7924c39681ffacb81d23f68 (diff)
downloadguix-bioinformatics-7e7a8a4c59ba52bea1ecd285361dae89cf29376b.tar.gz
gn: edirect-gn: Build go packages from source.
-rw-r--r--gn/packages/bioinformatics.scm56
-rw-r--r--gn/packages/golang.scm268
2 files changed, 324 insertions, 0 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 86e2657..6a38499 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -10,10 +10,12 @@
#:use-module (guix build-system ant)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix build-system waf)
#:use-module (gnu packages)
+ #:use-module (gn packages golang)
#:use-module (gn packages python)
#:use-module (gnu packages bioconductor)
#:use-module (gnu packages bioinformatics)
@@ -24,6 +26,7 @@
#:use-module (gnu packages datastructures)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages golang)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages jemalloc)
@@ -510,6 +513,59 @@ reads.")
;; Due to the precompiled binaries we download:
(supported-systems '("x86_64-linux"))))
+(define-public edirect-go-programs
+ (package
+ (inherit edirect)
+ (name "edirect-go-programs")
+ (build-system go-build-system)
+ (arguments
+ `(#:install-source? #f
+ #:tests? #f ; No tests.
+ #:import-path "ncbi.nlm.nih.gov/entrez/edirect"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'replace-go-dependency
+ ;; This go library does not have any license.
+ ;; TODO: This should move to a source snippet.
+ (lambda* (#:key import-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (substitute* "rchive.go"
+ (("github.com/fiam/gounidecode/unidecode")
+ "golang.org/rainycape/unidecode"))
+ #t)))
+ (replace 'build
+ (lambda* (#:key import-path #:allow-other-keys)
+ (with-directory-excursion (string-append "src/" import-path)
+ (invoke "go" "build" "-v" "-x" "j2x.go")
+ (invoke "go" "build" "-v" "-x" "t2x.go")
+ (invoke "go" "build" "-v" "-x" "-o"
+ "xtract.Linux" "xtract.go" "common.go")
+ (invoke "go" "build" "-v" "-x" "-o"
+ "rchive.Linux" "rchive.go" "common.go")
+ (invoke "go" "build" "-v" "-x" "-o" "symbols.Linux" "s2p.go"))))
+ (replace 'install
+ (lambda* (#:key outputs import-path #:allow-other-keys)
+ (let ((dest (string-append (assoc-ref outputs "out") "/bin"))
+ (source (string-append "src/" import-path "/")))
+ (for-each (lambda (file)
+ (format #t "installing ~a~%" file)
+ (install-file (string-append source file) dest))
+ '("j2x" "t2x" "symbols.Linux" "xtract.Linux" "rchive.Linux"))
+ #t))))))
+ (native-inputs '())
+ (propagated-inputs '())
+ (inputs
+ `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
+ ("go-github-com-fogleman-gg" ,go-github-com-fogleman-gg)
+ ("go-github-com-gedex-inflector" ,go-github-com-gedex-inflector)
+ ("go-github-com-golang-freetype" ,go-github-com-golang-freetype)
+ ("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)
+ ("go-github-com-pbnjay-memory" ,go-github-com-pbnjay-memory)
+ ("go-github-com-surgebase-porter2" ,go-github-com-surgebase-porter2)
+ ("go-golang-org-rainycape-unidecode" ,go-golang-org-rainycape-unidecode)
+ ("go-golang-org-x-image" ,go-golang-org-x-image)
+ ("go-golang-org-x-text" ,go-golang-org-x-text)))))
+
;; TODO: Unbundle zlib, bamtools, tclap
(define-public sniffles
(package
diff --git a/gn/packages/golang.scm b/gn/packages/golang.scm
new file mode 100644
index 0000000..56eed66
--- /dev/null
+++ b/gn/packages/golang.scm
@@ -0,0 +1,268 @@
+(define-module (gn packages golang)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module (guix build-system go)
+ #:use-module (gnu packages golang)
+ )
+
+(define-public go-golang-org-x-image
+ (let ((commit "58c23975cae11f062d4b3b0c143fe248faac195d")
+ (revision "1"))
+ (package
+ (name "go-golang-org-x-image")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://go.googlesource.com/image")
+ (commit commit)))
+ (file-name (string-append "go.googlesource.com-image-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "0i2p2girc1sfcic6xs6vrq0fp3szfx057xppksb67kliywjjrm5x"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/x/image"
+ ; Source-only package
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'build))))
+ (home-page "https://go.googlesource.com/image")
+ (synopsis "Supplemental Go image libraries")
+ (description "This package provides supplemental Go libraries for image
+processing.")
+ (license license:bsd-3))))
+
+(define-public go-github-com-fiam-gounidecode
+ (let ((commit "311ebb7422d3ff70cc1d064c5a297520ff5f304a")
+ (revision "1"))
+ (package
+ (name "go-github-com-fiam-gounidecode")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fiam/gounidecode")
+ (commit commit)))
+ (file-name (string-append "go-github-com-fiam-gounidecode-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "107c2qnlgl9d55pww3kh3x5m5pqw7ijzzqbpsrpxnzn5jls44xbs"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:unpack-path "github.com/fiam/gounidecode"
+ #:import-path "github.com/fiam/gounidecode/unidecode"))
+ (home-page "https://github.com/fiam/gounidecode/")
+ (synopsis "Unicode transliterator for Go")
+ (description "Unicode transliterator for Go.")
+ (license #f)))) ; No license listed.
+
+(define-public go-golang-org-rainycape-unidecode
+ (let ((commit "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c")
+ (revision "1"))
+ (package
+ (name "go-golang-org-rainycape-unidecode")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rainycape/unidecode")
+ (commit commit)))
+ (file-name (string-append "go-golang-org-rainycape-unidecode-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "golang.org/rainycape/unidecode"))
+ (home-page "https://github.com/rainycape/unidecode")
+ (synopsis "Unicode transliterator in Golang")
+ (description "Unicode transliterator in Golang - Replaces non-ASCII
+characters with their ASCII approximations.")
+ (license license:asl2.0))))
+
+(define-public go-github-com-golang-freetype
+ (let ((commit "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4")
+ (revision "1"))
+ (package
+ (name "go-github-com-golang-freetype")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/golang/freetype")
+ (commit commit)))
+ (file-name (string-append "go-github-com-golang-freetype-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/golang/freetype"))
+ (propagated-inputs
+ `(("go-golang-org-x-image" ,go-golang-org-x-image)))
+ (home-page "https://github.com/golang/freetype")
+ (synopsis "Freetype font rasterizer in the Go programming language")
+ (description "The Freetype font rasterizer in the Go programming language.")
+ (license (list license:freetype
+ license:gpl2+)))))
+
+(define-public go-github-com-fogleman-gg
+ (package
+ (name "go-github-com-fogleman-gg")
+ (version "1.3.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fogleman/gg")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1nkldjghbqnzj2djfaxhiv35kk341xhcrj9m2dwq65v684iqkk8n"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:tests? #f ; Issue with test flags.
+ #:import-path "github.com/fogleman/gg"))
+ (propagated-inputs
+ `(("go-github-com-golang-freetype" ,go-github-com-golang-freetype)))
+ (home-page "https://github.com/fogleman/gg")
+ (synopsis "2D rendering in Go")
+ (description "@code{gg} is a library for rendering 2D graphics in pure Go.")
+ (license license:expat)))
+
+(define-public go-github-com-gedex-inflector
+ (let ((commit "16278e9db8130ac7ec405dc174cfb94344f16325")
+ (revision "1"))
+ (package
+ (name "go-github-com-gedex-inflector")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/gedex/inflector")
+ (commit commit)))
+ (file-name (string-append "go-github-com-gedex-inflector-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "05hjqw1m71vww4914d9h6nqa9jw3lgjzwsy7qaffl02s2lh1amks"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/gedex/inflector"))
+ (home-page "https://github.com/gedex/inflector")
+ (synopsis "Go library that pluralizes and singularizes English nouns")
+ (description "Go library that pluralizes and singularizes English nouns.")
+ (license license:bsd-2))))
+
+(define-public go-github-com-klauspost-cpuid
+ (package
+ (name "go-github-com-klauspost-cpuid")
+ (version "1.2.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/klauspost/cpuid")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1s510210wdj5dkamii1qrk7v87k4qpdcrrjzflp5ha9iscw6b06l"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/klauspost/cpuid"))
+ (home-page "https://github.com/klauspost/cpuid")
+ (synopsis "CPU feature identification for Go")
+ (description "@code{cpuid} provides information about the CPU running the
+current program. CPU features are detected on startup, and kept for fast access
+through the life of the application. Currently x86 / x64 (AMD64) is supported,
+and no external C (cgo) code is used, which should make the library very eas
+to use.")
+ (license license:expat)))
+
+(define-public go-github-com-pbnjay-memory
+ (let ((commit "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510")
+ (revision "1"))
+ (package
+ (name "go-github-com-pbnjay-memory")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pbnjay/memory")
+ (commit commit)))
+ (file-name (string-append "go-github-com-pbnjay-memory-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/pbnjay/memory"))
+ (home-page "https://github.com/gedex/inflector")
+ (synopsis "Go library to report total system memory")
+ (description "@code{memory} provides a single method reporting total
+physical system memory accessible to the kernel. It does not account for memory
+used by other processes.")
+ (license license:bsd-3))))
+
+(define-public go-github-com-surgebase-porter2
+ (let ((commit "56e4718818e8dc4ea5ba6348402fc7661863732a")
+ (revision "1"))
+ (package
+ (name "go-github-com-surgebase-porter2")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/surgebase/porter2")
+ (commit commit)))
+ (file-name (string-append "go-github-com-surgebase-porter2-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "1ivcf83jlj9s7q5y9dfbpyl0br35cz8fcp0dm8sxxvqh54py06v2"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/surgebase/porter2"))
+ (native-inputs
+ `(("go-github-com-stretchr-testify" ,go-github-com-stretchr-testify)
+ ("go-github-com-surge-glog" ,go-github-com-surge-glog)))
+ (home-page "https://github.com/surgebase/porter2")
+ (synopsis "Go library implementing english Porter2 stemmer")
+ (description "Porter2 implements the
+@url{http://snowball.tartarus.org/algorithms/english/stemmer.html, english
+Porter2 stemmer}. It is written completely using finite state machines to do
+suffix comparison, rather than the string-based or tree-based approaches.")
+ (license license:asl2.0))))
+
+(define-public go-github-com-surge-glog
+ (let ((commit "2578deb2b95c665e6b1ebabf304ce2085c9e1985")
+ (revision "1"))
+ (package
+ (name "go-github-com-surge-glog")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/surge/glog")
+ (commit commit)))
+ (file-name (string-append "go-github-com-surge-glog-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "1bxcwxvsvr2hfpjz9hrrn0wrgykwmrbyk567102k3vafw9xdcwk4"))))
+ (build-system go-build-system)
+ (arguments
+ `(#:import-path "github.com/surge/glog"))
+ (home-page "https://github.com/surge/glog")
+ (synopsis "Leveled execution logs for Go")
+ (description "Leveled execution logs for Go.")
+ (license license:asl2.0))))