aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.guix-channel2
-rw-r--r--gn/packages/bioinformatics.scm272
-rw-r--r--gn/packages/crates-io.scm36
-rw-r--r--gn/packages/genenetwork.scm84
-rw-r--r--gn/packages/guile.scm44
-rw-r--r--gn/packages/javascript.scm250
-rw-r--r--gn/packages/python-web.scm49
-rw-r--r--gn/packages/python.scm72
-rw-r--r--gn/packages/web.scm20
-rw-r--r--gn/services/databases.scm6
10 files changed, 606 insertions, 229 deletions
diff --git a/.guix-channel b/.guix-channel
index 4bbc28a..3913b23 100644
--- a/.guix-channel
+++ b/.guix-channel
@@ -14,7 +14,7 @@
(name guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(branch "master")
- (commit "2394a7f5fbf60dd6adc0a870366adb57166b6d8b")
+ (commit "61428ccf41f21f5ea1e4f1eec722ef9b1efc3a0e")
(introduction
(channel-introduction
(version 0)
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 3f89abe..ef30d23 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -41,6 +41,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages cran)
+ #:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages curl)
@@ -2163,6 +2164,7 @@ suitable for long reads, but works also well with short reads.")
(build-system cmake-build-system)
(arguments
(list
+ #:tests? #f ;; FIXME: tests are broken
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-gnuinstalldirs-macros
@@ -2580,121 +2582,159 @@ multiple sequence alignment.")
license:zlib ; deps/sonLib/externalTools/cutest
license:boost1.0)))) ; catch.hpp
+(define-public wfmash-0.14
+ (package
+ (inherit wfmash)
+ (version "0.14.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/waveygang/wfmash/releases/download/v"
+ version "/wfmash-v" version ".tar.gz"))
+ (sha256
+ (base32
+ "1mk3jschn3hdr45glds65g3hxk7v6nc3plkvxmfbd5pr4kyzlf13"))
+ (snippet
+ #~(begin
+ (use-modules (guix build utils))
+ ;; Unbundle atomic-queue.
+ (delete-file-recursively "src/common/atomic_queue")
+ (substitute* "src/align/include/computeAlignments.hpp"
+ (("\"common/atomic_queue/atomic_queue.h\"")
+ "<atomic_queue/atomic_queue.h>"))
+ ;; Remove compiler optimizations.
+ (substitute* (find-files "." "CMakeLists\\.txt")
+ (("-march=native ") ""))))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments wfmash)
+ ((#:tests? tests? #f) #f)
+ ((#:phases phases #~%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'build-check-prerequisites
+ (lambda _
+ (let ((wfa2-lib #$(string-append "../wfmash-v"
+ version
+ "/src/common/wflign/deps/WFA2-lib")))
+ (substitute* (string-append wfa2-lib "/Makefile")
+ ;; Remove architecture-specific flags.
+ (("-march=x86-64-v3") ""))
+ (substitute* (string-append wfa2-lib "/tests/wfa.utest.sh")
+ ;; Fix time command.
+ (("\\\\time -v") "time"))
+ ;; Build wfa2-lib.
+ (invoke "make" "-C" wfa2-lib
+ #$(string-append "CC=" (cc-for-target))))))))))
+ (inputs
+ (modify-inputs (package-inputs wfmash)
+ (prepend jemalloc)
+ (delete "libdeflate")))))
+
(define-public pggb
- (let ((commit "9ebff27320382e470ed38a85b4448402e1e7c353")
- (revision "1"))
- (package
- (name "pggb")
- (version (git-version "0.5.1" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/pangenome/pggb")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0rgpj52q3ai7f1saqbilgx5gz4f403x3427wq649qwv84ivmi1sf"))))
- (build-system copy-build-system)
- (arguments
- (list
- #:install-plan
- #~'(("pggb" "bin/")
- ("partition-before-pggb" "bin/")
- ("scripts/" "bin/")
- ("scripts" "bin/scripts"))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'force-python3
- (lambda _
- (substitute* (find-files "scripts" "\\.py$")
- (("/usr/bin/python") "/usr/bin/python3"))))
- (add-before 'install 'patch-and-wrap-scripts
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "scripts/vcf_preprocess.sh"
- (("bcftools ")
- (string-append (search-input-file inputs "/bin/bcftools") " ")))
- (wrap-script "scripts/net2communities.py"
- `("GUIX_PYTHONPATH" ":" prefix
- (,(getenv "GUIX_PYTHONPATH"))))))
- (add-after 'install 'wrap-scripts
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (for-each
- (lambda (file)
- (wrap-script file
- `("R_LIBS_SITE" ":" prefix
- (,(getenv "R_LIBS_SITE")))
- `("PATH" ":" prefix
- ,(map (lambda (input) (string-append input "/bin"))
- '#$(map (lambda (label)
- (or (this-package-input (string-append label "-hwcaps"))
- (this-package-input label)))
- (list "bc"
- "bcftools"
- "bedtools"
- "gfaffix"
- "htslib"
- "fastix"
- "multiqc"
- "mummer"
- "odgi"
- "pafplot"
- "parallel"
- "pigz"
- "python"
- "r-data-table"
- "r-minimal"
- "rtg-tools"
- "samtools"
- "seqwish"
- "smoothxg"
- "time"
- "vcfbub"
- "vcflib"
- "vg"
- "wfmash"))))))
- (list (string-append out "/bin/pggb")
- (string-append out "/bin/partition-before-pggb")
- (string-append out "/bin/gfa2evaluation.sh")
- (string-append out "/bin/scripts/gfa2evaluation.sh"))))))
- (add-after 'install 'substitute-file-paths
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* (string-append out "/bin/gfa2evaluation.sh")
- (("/usr/local/bin/vcf_preprocess.sh")
- (string-append out "/bin/vcf_preprocess.sh"))
- (("/usr/local/bin/nucmer2vcf.R")
- (string-append out "/bin/nucmer2vcf.R")))))))))
- (inputs
- (list bc
- bcftools
- bedtools
- gfaffix
- guile-3.0 ; for wrap-script
- htslib ; tabix
- fastix
- multiqc
- mummer
- odgi
- pafplot
- parallel
- pigz
- python
- python-igraph
- r-data-table
- r-minimal
- rtg-tools
- samtools
- seqwish
- smoothxg
- time
- vcfbub
- vcflib
- vg
- wfmash))
- (home-page "https://doi.org/10.1101/2023.04.05.535718")
- (synopsis "PanGenome Graph Builder")
- (description "@command{pggb} builds
+ (package
+ (name "pggb")
+ (version "0.7.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pangenome/pggb")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1k3ffl5h5jqnz9k9y5cjqr8z6hh0gyjfj4szggz11lncp5wkskgv"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~'(("pggb" "bin/")
+ ("partition-before-pggb" "bin/")
+ ("scripts/" "bin/")
+ ("scripts" "bin/scripts"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'force-python3
+ (lambda _
+ (substitute* (find-files "scripts" "\\.py$")
+ (("/usr/bin/python") "/usr/bin/python3"))))
+ (add-before 'install 'patch-and-wrap-scripts
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "scripts/vcf_preprocess.sh"
+ (("bcftools ")
+ (string-append (search-input-file inputs "/bin/bcftools") " ")))
+ (wrap-script "scripts/net2communities.py"
+ `("GUIX_PYTHONPATH" ":" prefix
+ (,(getenv "GUIX_PYTHONPATH"))))))
+ (add-after 'install 'wrap-scripts
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (file)
+ (wrap-script file
+ `("R_LIBS_SITE" ":" prefix
+ (,(getenv "R_LIBS_SITE")))
+ `("PATH" ":" prefix
+ ,(map (lambda (input) (string-append input "/bin"))
+ '#$(map (lambda (label)
+ (or (this-package-input (string-append label "-hwcaps"))
+ (this-package-input label)))
+ (list "bc"
+ "bcftools"
+ "bedtools"
+ "gfaffix"
+ "htslib"
+ "multiqc"
+ "odgi"
+ "parallel"
+ "pigz"
+ "python"
+ "r-data-table"
+ "r-minimal"
+ "rtg-tools"
+ "samtools"
+ "seqwish"
+ "smoothxg"
+ "time"
+ "vcfbub"
+ "vg"
+ "wfmash"))))))
+ (list (string-append out "/bin/pggb")
+ (string-append out "/bin/partition-before-pggb")
+ (string-append out "/bin/gfa2evaluation.sh")
+ (string-append out "/bin/scripts/gfa2evaluation.sh"))))))
+ (add-after 'install 'substitute-file-paths
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* (string-append out "/bin/gfa2evaluation.sh")
+ (("/usr/local/bin/vcf_preprocess.sh")
+ (string-append out "/bin/vcf_preprocess.sh"))
+ (("/usr/local/bin/nucmer2vcf.R")
+ (string-append out "/bin/nucmer2vcf.R")))))))))
+ (inputs
+ (list bc
+ bcftools
+ bedtools
+ gfaffix
+ guile-3.0 ; for wrap-script
+ htslib ; tabix
+ multiqc
+ odgi
+ parallel
+ pigz
+ python
+ python-igraph
+ r-data-table
+ r-minimal
+ rtg-tools
+ samtools
+ seqwish
+ smoothxg
+ time
+ vcfbub
+ vg
+ wfmash-0.14))
+ (home-page "https://doi.org/10.1101/2023.04.05.535718")
+ (synopsis "PanGenome Graph Builder")
+ (description "@command{pggb} builds
@url{https://doi.org/10.1146%2Fannurev-genom-120219-080406, pangenome}
@url{https://doi.org/10.1038/nbt.4227, variation graphs} from a set of input
sequences.
@@ -2719,7 +2759,7 @@ such as the @url{https://github.com/vgteam/vg, vg} and
@command{pggb} has been tested at scale in the @acronym{Human Pangenome
Reference Consortium, HPRC} as a method to build a graph from the
@url{https://doi.org/10.1101/2022.07.09.499321, draft human pangenome}.")
- (license license:expat))))
+ (license license:expat)))
(define use-glibc-hwcaps
(package-input-rewriting/spec
@@ -4445,7 +4485,7 @@ automatically vectorize for different architectures without adapting the code.")
(define-public r-rrbgen
(package
- (name "r-stitch")
+ (name "r-rrbgen")
(version "0.0.6")
(source
(origin
diff --git a/gn/packages/crates-io.scm b/gn/packages/crates-io.scm
index 4cebb33..276b713 100644
--- a/gn/packages/crates-io.scm
+++ b/gn/packages/crates-io.scm
@@ -5,6 +5,8 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cargo)
+ #:use-module (gnu packages crates-check)
+ #:use-module (gnu packages crates-compression)
#:use-module (gnu packages crates-graphics)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages crates-windows)
@@ -688,32 +690,28 @@ or any combination.")
(license license:gpl3+)))
(define-public gn-rust-correlation
- (let ((commit "a22381e9830bac9a6848449279d258397217e251")
+ (let ((commit "d7b1fd65814511890a4e606e6e610379b6d89393")
(revision "0"))
(package
(name "gn-rust-correlation")
(version (git-version "0.1.4" revision commit))
(source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/Alexanderlacuna/correlation_rust.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1cb197p8zmgxymzs9b7bygs0kg67809z6gc2svza909sxr9ac5ps"))))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Alexanderlacuna/correlation_rust.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1z5p9pjja6a697l558axnp1hr5376b6ng3yl3vxcp2h1skfrykvq"))))
(build-system cargo-build-system)
- (native-inputs
- (list gsl))
+ (native-inputs (list gsl))
(arguments
- `(#:cargo-inputs
- (("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("GSL" ,rust-gsl)
- ("rust-assert-approx-eq" ,rust-assert-approx-eq-1))
- #:cargo-development-inputs
- (("rust-criterion" ,rust-criterion-0.3))))
+ `(#:cargo-inputs (("rust-serde" ,rust-serde-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("GSL" ,rust-gsl)
+ ("rust-assert-approx-eq" ,rust-assert-approx-eq-1))
+ #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.3))))
(home-page "https://github.com/Alexanderlacuna/correlation_rust")
(synopsis "Re-implementation of genenetwork/correlation in Rust")
(description "Re-implementation of genenetwork/correlation in Rust")
diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm
index 4e21d7a..82dd30e 100644
--- a/gn/packages/genenetwork.scm
+++ b/gn/packages/genenetwork.scm
@@ -49,6 +49,7 @@
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
+ #:use-module (gnu packages serialization)
#:use-module (gn packages bioinformatics)
#:use-module (gn packages crates-io)
#:use-module (gn packages gemma)
@@ -115,7 +116,7 @@
((#:tests? _ #f) #f)))))
(define-public genenetwork3
- (let ((commit "f9f752152e9e00dbfb756d8a08c10e1892685104")
+ (let ((commit "4e9bfd1b134eae4de365d1c2b22a97dd676b45b9")
(revision "5"))
(package
(name "genenetwork3")
@@ -129,7 +130,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1ggc597xqj280qdp5gzlk745ldgx54k5sgn1w865ini6ph3i18zr"))))
+ "0xn8gfsjd41afpgkp1hjyfvx241q47b8ri200fc7kx1kb8vyyhm6"))))
(inputs
(list python-click))
(native-inputs
@@ -138,7 +139,8 @@
python-mypy-extensions
python-pylint))
(propagated-inputs
- (list csvdiff
+ (list gn-libs
+ csvdiff
coreutils-minimal
diffutils
nss-certs
@@ -190,8 +192,39 @@
(description "GeneNetwork3 API for data science and machine learning.")
(license license:agpl3+))))
+
+(define-public temporary-python-flask-session
+ ;; This is a stop-gap to get the applications building with the guix channel
+ ;; set to 61428cc.
+ ;; Remove this as soon as the applications are building with mainline
+ ;; python-flask-session.
+ (package
+ (name "temporary-python-flask-session")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "flask_session" version))
+ (sha256
+ (base32
+ "1zs20zpq6gxz9gsccbd2jrrbbcfvh0x9z9741gkr8dhh07mlbq10"))))
+ (build-system pyproject-build-system)
+ (arguments
+ '(#:tests? #f)) ; Tests require the various storage backends to be present
+ (inputs
+ (list python-flit-core))
+ (propagated-inputs
+ (list python-cachelib python-flask python-msgspec))
+ (home-page "https://github.com/fengsp/flask-session")
+ (synopsis "Adds server-side session support to your Flask application")
+ (description
+ "Flask-Session is an extension for Flask that adds support for
+Server-side sessions, with a variety of different backends for session
+storage.")
+ (license license:bsd-3)))
+
(define-public genenetwork2
- (let ((commit "c4508901027a2d3ea98e1e9b3f8767a455cad02f")
+ (let ((commit "9c0ddee595e6d67a042296dd9933c92418f87917")
(revision "4"))
(package
(name "genenetwork2")
@@ -204,7 +237,7 @@
(file-name (string-append name "-" version))
(sha256
(base32
- "0ndqb32vn1d7ab3ng8849sg1sg7b2a29mmmyr6rm7qj7m4vs1nck"))))
+ "1vq1vkwwbw5z6rg96hbiir8b0rr9wrx3izsh7s1j1xchbghfk5bi"))))
(native-inputs
(list graphviz))
(propagated-inputs
@@ -266,6 +299,8 @@
javascript-uikit
javascript-underscore-string
javascript-zxcvbn
+ javascript-xterm
+ javascript-xterm-style
js-jstat
js-md5
js-parsley
@@ -283,7 +318,8 @@
python-cssselect
python-flask
python-flask-debugtoolbar
- python-flask-session
+ ;;python-flask-session
+ temporary-python-flask-session
python-htmlgen
python-ijson
python-jinja2
@@ -293,7 +329,6 @@
python-mysqlclient
python-numpy
python-pandas
- python-pillow
python-pylint
python-pymonad
python-pytest
@@ -305,9 +340,9 @@
python-scipy
python-setuptools
python-simplejson
- python-sqlalchemy
python-wrapper
python-xlsxwriter
+ python-pillow-9
r
r-ctl
r-qtl
@@ -315,8 +350,6 @@
redis
rust-qtlreaper
which
- ; javascript-xterm -- disabled until we know what to do with it, not working on production
- ; javascript-xterm-style
; javascript-xterm-addon-fit
))
(inputs
@@ -435,8 +468,8 @@
))))))
(define-public gn-uploader
- (let ((commit "60fde66e02dba842b20fa126ff3b2ed9ec2638e6")
- (version "0.0.1"))
+ (let ((commit "5c6ccf6f176b5da4dd7ecde1e4d43d815521de98")
+ (version "0.1.1"))
(package
(name "gn-uploader")
(version (string-append version "-" (string-take commit 8)))
@@ -446,10 +479,11 @@
(uri (git-reference
(url "https://git.genenetwork.org/gn-uploader")
(commit commit)))
+ (file-name (git-file-name name version))
(hash
(content-hash
(base32
- "1q04viyf7d0q30k3424hrzsh9wxhhgs7hywlhzl3m68jki4zq1i7")))))
+ "0pd5hw6dv3p4y7sgv0jxrclh6lxvs39589nbpnhg9xazpa29j8pj")))))
(build-system python-build-system)
(arguments
(list
@@ -475,9 +509,14 @@
python-pymonad
python-jsonpickle
python-mysqlclient
- python-flask-session
- javascript-jquery
- javascript-bootstrap
+ ;;python-flask-session
+ temporary-python-flask-session
+ web-bootstrap-5
+ javascript-jquery-1
+ javascript-datatables-bootstrap5
+ javascript-datatables-select
+ javascript-datatables-buttons-3
+ javascript-datatables-scroller-2
node-resumablejs))
(synopsis "GeneNetwork Quality Control Application")
(description
@@ -488,7 +527,7 @@
(license license:agpl3+))))
(define-public gn-auth
- (let ((commit "877a7a3d7862c3b7e3a4aeae5f4ca69b6c880807")
+ (let ((commit "8ff5d551633177d5ff07544348b2e04c4de5654e")
(revision "01"))
(package
(name "gn-auth")
@@ -502,7 +541,7 @@
(hash
(content-hash
(base32
- "17srcxk5zwnsx97jqmg1csarmjsny8z8k7q435kq19p472f27yv7")))))
+ "1pjcbrvmqipbni65ffq808gxzh2ywdwi28pm3gfqwq1z1jf627sx")))))
(build-system python-build-system)
(arguments
(list
@@ -540,7 +579,7 @@
(define-public gn-libs
- (let ((commit "66bac3df1748ff263c991e121b3ce80599807998")
+ (let ((commit "72a95f8ffa5401649f70978e863dd3f21900a611")
(revision "01"))
(package
(name "gn-libs")
@@ -554,7 +593,7 @@
(hash
(content-hash
(base32
- "11qpz6x4hgi13j1wznlxyl9fxh1la4f3s9vand34zmxk1diqisbb")))))
+ "1jvlz85pn10cx2icjxk0klz1g8k8vn1f8vp6kb4xyjskb1228yrx")))))
(build-system pyproject-build-system)
(arguments
(list
@@ -566,11 +605,14 @@
(invoke "pytest" "-k" "unit_test")))))))
(native-inputs
(list python-mypy
+ python-wheel
python-pylint
- python-pytest))
+ python-pytest
+ python-setuptools))
(propagated-inputs
(list python-authlib
python-pymonad
+ python-requests
python-mysqlclient))
(home-page "https://github.com/genenetwork/gn-libs")
(synopsis "Tools/utilities for GeneNetwork projects.")
diff --git a/gn/packages/guile.scm b/gn/packages/guile.scm
index 7328397..3587b00 100644
--- a/gn/packages/guile.scm
+++ b/gn/packages/guile.scm
@@ -19,7 +19,7 @@
#:use-module ((gnu packages bioinformatics) #:select (gemma))
#:use-module ((gnu packages certs) #:select (nss-certs))
#:use-module ((gnu packages guile) #:select (guile-json-4 guile-3.0 guile-2.2 guile-readline))
- #:use-module ((gnu packages guile-xyz) #:select (guile-dbi guile-dbd-mysql guile-fibers guile-redis guile-hashing guile-commonmark))
+ #:use-module ((gnu packages guile-xyz) #:select (guile-dbi guile-dbd-mysql guile-fibers guile-redis guile-hashing guile-commonmark guile-lmdb guile-lib))
#:use-module ((gnu packages parallel) #:select (parallel))
#:use-module ((gnu packages perl) #:select (perl))
#:use-module ((gnu packages tls) #:select (guile-gnutls openssl)))
@@ -43,9 +43,9 @@
(arguments
`(#:modules (((guix build guile-build-system)
#:select (target-guile-effective-version))
- ,@%gnu-build-system-modules)
+ ,@%default-gnu-imported-modules)
#:imported-modules ((guix build guile-build-system)
- ,@%gnu-build-system-modules)
+ ,@%default-gnu-imported-modules)
#:configure-flags
(list (string-append
"--with-guile-site-dir=" %output "/share/guile/site/"
@@ -119,7 +119,7 @@ for MySQL.")
(license license:gpl2+)))
(define-public gn-guile
- (let ((commit "99cf7800246f6af0df8407f7595641933891ad85")
+ (let ((commit "169d26710c978484f8e9464a95be6eaa47fa704e")
(revision "0"))
(package
(name "gn-guile")
@@ -132,13 +132,13 @@ for MySQL.")
(file-name (string-append name "-" version))
(sha256
(base32
- "0sxg3cd69g2sik1x4di20b4da2qn64d82ikmfkas5w2x1nq3r6pj"))))
+ "10f6icsg9ifyvmg544xqb1ggzzvd4hdbbni7vhlz9xj5vyf9bih2"))))
(build-system guile-build-system)
(native-inputs (list guile-3.0))
- (inputs
+ (propagated-inputs
(list guile-3.0 guile3-dbi guile3-dbd-mysql guile-fibers guile-gnutls guile-readline
guile-commonmark guile-redis openssl nss-certs gemma parallel guile-hashing
- guile-json-4 bash-minimal git-minimal))
+ guile-json-4 bash-minimal git-minimal guile-lmdb guile-lib))
(arguments
(list
#:not-compiled-file-regexp "(guix|guix/.*)[.]scm$"
@@ -171,6 +171,8 @@ for MySQL.")
(guile-redis #$(this-package-input "guile-redis"))
(guile-hashing #$(this-package-input "guile-hashing"))
(guile-json-4 #$(this-package-input "guile-json"))
+ (guile-lmdb #$(this-package-input "guile-lmdb"))
+ (guile-lib #$(this-package-input "guile-lib"))
(out #$output)
(bin (string-append out "/bin"))
(effective (read
@@ -186,6 +188,8 @@ for MySQL.")
(scm-dir (string-append "/share/guile/site/" effective))
(guile-inputs (list guile3-dbi
guile3-dbd-mysql
+ guile-lmdb
+ guile-lib
guile-fibers
guile-gnutls
guile-readline
@@ -203,18 +207,28 @@ for MySQL.")
(cons* out guile-inputs))))
(mkdir-p "bin")
(copy-file "gn-guile.sh" "bin/gn-guile")
+ (copy-file "scripts/lmdb-publishdata-export.scm"
+ "bin/lmdb-publishdata-export")
(substitute* "bin/gn-guile"
- (("@SHELL@") bash)
- (("guile") guile)
- (("web/webserver.scm") webserver))
+ (("@SHELL@") bash)
+ (("guile") guile)
+ (("web/webserver.scm") webserver))
(chmod "bin/gn-guile" #o755)
+ (chmod "bin/lmdb-publishdata-export" #o755)
(install-file "bin/gn-guile" bin)
+ (install-file "bin/lmdb-publishdata-export" bin)
(wrap-script
- (string-append out "/bin/gn-guile")
- `("PATH" ":" prefix ,path)
- `("GUILE_AUTO_COMPILE" ":" = ("0"))
- `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
- `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path))))))))
+ (string-append out "/bin/gn-guile")
+ `("PATH" ":" prefix ,path)
+ `("GUILE_AUTO_COMPILE" ":" = ("0"))
+ `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path))
+ (wrap-program
+ (string-append out "/bin/lmdb-publishdata-export")
+ `("PATH" ":" prefix ,path)
+ `("GUILE_AUTO_COMPILE" ":" = ("0"))
+ `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
+ `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path))))))))
(home-page "https://git.genenetwork.com/gn-guile")
(synopsis "Next generation GN code in guile")
(description "Use of guile.")
diff --git a/gn/packages/javascript.scm b/gn/packages/javascript.scm
index a70dccd..e4bf803 100644
--- a/gn/packages/javascript.scm
+++ b/gn/packages/javascript.scm
@@ -373,6 +373,107 @@ Javascript library, adding sorting, paging and filtering abilities to plain HTML
tables with minimal effort.")
(license license:expat)))
+
+(define-public javascript-datatables-2.2.2
+ (package
+ (name "javascript-datatables-2.2.2")
+ (version "2.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DataTables/Dist-DataTables.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1pzpkpybcf9p81j8afyhrmq11l9lskzxhikdv7h7sb55vx98xn9s"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (targetdir (string-append out "/share/genenetwork2/javascript/DataTables"))
+ (source (assoc-ref %build-inputs "source")))
+ (copy-recursively source targetdir)))))
+ (propagated-inputs (list javascript-jquery-1))
+ (home-page "https://www.datatables.net/")
+ (synopsis "Tables plug-in for jQuery")
+ (description "DataTables is a table enhancing plug-in for the jQuery
+Javascript library, adding sorting, paging and filtering abilities to plain HTML
+tables with minimal effort.")
+ (license license:expat)))
+
+(define-public javascript-datatables-2.2 javascript-datatables-2.2.2)
+
+(define-public javascript-datatables-2 javascript-datatables-2.2)
+
+(define-public javascript-datatables-bootstrap5
+ (package
+ (name "javascript-datatables-bootstrap5")
+ (version "2.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DataTables/Dist-DataTables-Bootstrap5.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hx4m0fs0qkb73f1h3z4436dq8agrm67nib2lzac7pn8hfl09lll"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (targetdir (string-append out "/share/genenetwork2/javascript/DataTables"))
+ (source (assoc-ref %build-inputs "source")))
+ (copy-recursively source targetdir)))))
+ (propagated-inputs (list javascript-jquery-1))
+ (home-page "https://www.datatables.net/")
+ (synopsis "Tables plug-in for jQuery")
+ (description "DataTables is a table enhancing plug-in for the jQuery
+Javascript library, adding sorting, paging and filtering abilities to plain HTML
+tables with minimal effort. This package comes with Bootstrap5 integration
+ files for styling.")
+ (license license:expat)))
+
+(define-public javascript-datatables-select
+ (package
+ (name "javascript-datatables-select")
+ (version "3.0.0") ; November 12, 2024
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DataTables/Dist-DataTables-Select.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "15czp4fhvijwc9jl961nmn8ad6ms30p3c8dgpda7l542aadca45x"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (targetdir (string-append out "/share/genenetwork2/javascript/DataTablesExtensions/select/"))
+ (source (assoc-ref %build-inputs "source")))
+ (copy-recursively source targetdir)))))
+ (propagated-inputs (list javascript-datatables-2))
+ (home-page "https://datatables.net/extensions/select/")
+ (synopsis "Select adds item selection capabilities to a DataTable.")
+ (description "Select adds item selection capabilities to a DataTable. Items
+ can be rows, columns or cells, which can be selected independently, or together.
+ Item selection can be particularly useful in interactive tables where users
+ can perform some action on the table, such as editing rows or marking items to
+ perform an action on.")
+ (license license:expat)))
+
(define-public javascript-datatables-scroller-style
(package
(name "javascript-datatables-scroller-style")
@@ -402,6 +503,32 @@ tables with minimal effort.")
(description "Scroller is a virtual rendering plug-in for DataTables which allows large datasets to be drawn on screen very quickly. Virtual rendering means is that only the visible portion of the table is drawn, while the scrolling container gives the visual impression that the whole table is visible, allowing excellent browser performance.")
(license license:expat)))
+
+(define-public javascript-datatables-scroller-style-2.4.3
+ (package
+ (inherit javascript-datatables-scroller-style)
+ (name "javascript-datatables-scroller-style-2.4.3")
+ (version "2.4.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DataTables/Dist-DataTables-Scroller-DataTables.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1b7m8xwbr05hglfy00kzv1vmqvvp9y8n1kyb3ka95gf7sllihhf9"))))
+ (propagated-inputs
+ (modify-inputs
+ (package-propagated-inputs javascript-datatables-scroller-style)
+ (delete "javascript-datatables")))))
+
+(define-public javascript-datatables-scroller-style-2.4
+ javascript-datatables-scroller-style-2.4.3)
+
+(define-public javascript-datatables-scroller-style-2
+ javascript-datatables-scroller-style-2.4)
+
(define-public javascript-datatables-scroller
(package
(name "javascript-datatables-scroller")
@@ -434,10 +561,37 @@ tables with minimal effort.")
(license license:expat)))
+(define-public javascript-datatables-scroller-2.4.3
+ (package
+ (inherit javascript-datatables-scroller)
+ (name "javascript-datatables-scroller-2.4.3")
+ (version "2.4.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DataTables/Dist-DataTables-Scroller.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ziwnwc0xbf8rsm6ibikc3a49hyq18l8ya0wmrwyba24pixhajxn"))))
+ (propagated-inputs
+ (modify-inputs
+ (package-propagated-inputs javascript-datatables-scroller-style)
+ (delete "javascript-datatables")
+ (delete "javascript-datatables-scroller-style")))))
+
+(define-public javascript-datatables-scroller-2.4
+ javascript-datatables-scroller-2.4.3)
+
+(define-public javascript-datatables-scroller-2
+ javascript-datatables-scroller-2.4)
+
+
(define-public javascript-xterm
(package
(name "javascript-xterm")
- (version "4.9.0") ; Jan 08 2021
+ (version "5.3.0") ; Feb 18 2024
(source
(origin
(method url-fetch)
@@ -445,23 +599,24 @@ tables with minimal effort.")
"/lib/xterm.min.js"))
(file-name (string-append "xterm.min" version ".js"))
(sha256
- (base32
- "1ipk8l837pinl9151qcb39hfrjy5d7zzyf19nsfhv4wgavy8fcar"))))
+ (base32 "0pb5f3rjbpg7zz1zkd72vkwsma3pnj07mq46jj95yghy48dx67gw"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let* ((out (assoc-ref %outputs "out"))
- (targetdir
- (string-append out "/share/genenetwork2/javascript/xterm"))
- (source (assoc-ref %build-inputs "source")))
- (mkdir-p targetdir)
- (copy-file source (string-append targetdir "/xterm.min.js"))))))
- (propagated-inputs `(("source" ,source)))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (targetdir (string-append
+ out
+ "/share/genenetwork2/javascript/xterm"))
+ (source (assoc-ref %build-inputs "source")))
+ (mkdir-p targetdir)
+ (copy-file source
+ (string-append targetdir "/xterm.min.js"))))))
+ (native-inputs `(("source" ,source)))
(home-page "https://xtermjs.org/")
- (synopsis "Javascript library that allows apps to bring fully-featured terminals in browsers.")
+ (synopsis
+ "Javascript library that allows apps to bring fully-featured terminals in browsers.")
(description
"Xterm.js is a front-end component written in TypeScript that lets applications bring fully-featured terminals to their users in the browser. It's used by popular projects such as VS Code, Hyper and Theia.")
(license license:expat)))
@@ -470,7 +625,7 @@ tables with minimal effort.")
(package
(inherit javascript-xterm)
(name "javascript-xterm-style")
- (version "4.9.0") ; Jan 08 2021
+ (version "5.3.0") ; Feb 18 2024
(source
(origin
(method url-fetch)
@@ -478,19 +633,19 @@ tables with minimal effort.")
"/css/xterm.min.css"))
(file-name (string-append "xterm.min" version ".css"))
(sha256
- (base32
- "0nc7ysmfngzy1q1x4sasgnd5x91pqc00lgkajynz2gdan1rwsfk3"))))
+ (base32 "0qhfll6g9vfamicw6kccmdgzrz6m7jz97whydwbzj10qsyv8npr7"))))
(arguments
`(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (let* ((out (assoc-ref %outputs "out"))
- (targetdir
- (string-append out "/share/genenetwork2/javascript/xterm"))
- (source (assoc-ref %build-inputs "source")))
- (mkdir-p targetdir)
- (copy-file source (string-append targetdir "/xterm.min.css"))))))
+ #:builder (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (targetdir (string-append
+ out
+ "/share/genenetwork2/javascript/xterm"))
+ (source (assoc-ref %build-inputs "source")))
+ (mkdir-p targetdir)
+ (copy-file source
+ (string-append targetdir "/xterm.min.css"))))))
(native-inputs `(("source" ,source)))
(synopsis "Style sheets for xtermjs")
(description "Style sheets for xtermjs")
@@ -555,6 +710,30 @@ tables with minimal effort.")
(description "The Buttons extension for DataTables provides a common set of options, API methods and styling to display buttons on a page that will interact with a DataTable. It also provides plug-ins for file export (HTML5 and Flash), print view and column visibility. Other libraries, such as Editor and Select also provide buttons specific to their use cases.")
(license license:expat)))
+(define-public javascript-datatables-buttons-3.2.2
+ (package
+ (inherit javascript-datatables-buttons)
+ (name "javascript-datatables-buttons-3.2.2")
+ (version "3.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/DataTables/Dist-DataTables-Buttons.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1186xxj6yhjqh0p13nczj25pc3c15n1f5nirl6fy649rhp4q26xc"))))
+ (propagated-inputs
+ (modify-inputs (package-propagated-inputs javascript-datatables-buttons)
+ (delete "javascript-datatables")))))
+
+(define-public javascript-datatables-buttons-3.2
+ javascript-datatables-buttons-3.2.2)
+
+(define-public javascript-datatables-buttons-3
+ javascript-datatables-buttons-3.2)
+
(define-public javascript-datatables-buttons-styles
(package
(name "javascript-datatables-buttons-styles")
@@ -867,6 +1046,25 @@ visualization components and a data-driven approach to DOM manipulation.")
(dist (string-append source "/dist")))
(copy-recursively dist targetdir)))))))
+(define-public javascript-jquery-1.12.4
+ (package
+ (inherit javascript-jquery)
+ (name "javascript-jquery-1.12.4")
+ (version "1.12.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/jquery/jquery.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "02qgvwsyvvr6liijj1xyypq02svbwjlk8m9yr9dgd4hzfs50rlhq"))))))
+
+(define-public javascript-jquery-1.12 javascript-jquery-1.12.4)
+
+(define-public javascript-jquery-1 javascript-jquery-1.12)
+
(define-public javascript-d3js-4
(package
(inherit javascript-d3js)
diff --git a/gn/packages/python-web.scm b/gn/packages/python-web.scm
index 88478a5..e0bfacf 100644
--- a/gn/packages/python-web.scm
+++ b/gn/packages/python-web.scm
@@ -12,29 +12,30 @@
(define-public python-authlib
(package
- (name "python-authlib")
- (version "1.2.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "Authlib" version))
- (sha256
- (base32
- "178ycfypdv1hy4zjm09rmysxakmwch2n6a5wypwmx4d5hc4fi8sg"))))
- (build-system python-build-system)
- (native-inputs (list python-httpx
- python-flask
- python-django
- python-werkzeug
- python-starlette
- python-sqlalchemy
- python-pycryptodomex))
- (propagated-inputs (list python-cryptography))
- (arguments `(#:tests? #f)) ;; temporarily deactivate tests
- (home-page "https://authlib.org/")
- (synopsis
- "The ultimate Python library in building OAuth and OpenID Connect servers and clients.")
- (description
- "The ultimate Python library in building OAuth and OpenID Connect servers and
+ (name "python-authlib")
+ (version "1.5.0")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "authlib" version))
+ (sha256
+ (base32 "08slfa8qm4ycjpwp8qcmixl59kw2k5bpp89rmhrab1b4h27vvn4g"))))
+ (build-system python-build-system)
+ (native-inputs
+ (list python-httpx
+ python-flask
+ python-django
+ python-werkzeug
+ python-starlette
+ python-sqlalchemy
+ python-pycryptodomex))
+ (propagated-inputs
+ (list python-cryptography))
+ (arguments `(#:tests? #f)) ;; temporarily deactivate tests
+ (home-page "https://authlib.org/")
+ (synopsis
+ "The ultimate Python library in building OAuth and OpenID Connect servers and clients.")
+ (description
+ "The ultimate Python library in building OAuth and OpenID Connect servers and
clients. It is designed from low level specifications implementations to high
level frameworks integrations, to meet the needs of everyone.")
- (license license:bsd-3)))
+ (license license:bsd-3)))
diff --git a/gn/packages/python.scm b/gn/packages/python.scm
index e7cfdd7..7cb5d77 100644
--- a/gn/packages/python.scm
+++ b/gn/packages/python.scm
@@ -1703,19 +1703,26 @@ window to get to RStudio for example.")
(define-public python-flask-debugtoolbar
(package
(name "python-flask-debugtoolbar")
- (version "0.11.0")
+ (version "0.16.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "Flask-DebugToolbar" version))
+ (uri (string-append
+ "https://github.com/pallets-eco/flask-debugtoolbar/archive/refs/tags/"
+ version
+ ".tar.gz"))
(sha256
(base32
- "1d5asdnk8bmh6m46pzg3i7677cjgdm9mlm3wcpk19q7dak9pjkiw"))))
- (build-system python-build-system)
+ "1qk8kga6gjlwc0c0hr1i500rhm1qfa4gqq3djy40j95fiz1idkgy"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ `(("python-pytest" ,python-pytest)))
(propagated-inputs
`(("python-blinker" ,python-blinker)
("python-flask" ,python-flask)
+ ("python-flit-core" ,python-flit-core)
("python-itsdangerous" ,python-itsdangerous)
+ ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)
("python-werkzeug" ,python-werkzeug)))
(home-page
"https://flask-debugtoolbar.readthedocs.io/")
@@ -1955,3 +1962,60 @@ and messages in larger desktop or server-based applications.")
implementation of the built-in float which supports formatted output with
SI (decimal) and IEC (binary) prefixes.")
(license license:mpl2.0)))
+
+
+(define-public python-pillow-9
+ (package
+ (name "python-pillow-9")
+ (version "9.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Pillow" version))
+ (sha256
+ (base32 "011wgm1mssjchpva9wsi2a07im9czyjvik137xlp5f0g7vykdrkm"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ (delete-file-recursively "src/thirdparty")))
+ (patches (search-patches "python-pillow-CVE-2022-45199.patch"
+ ;; Included in 10.1.0.
+ "python-pillow-use-zlib-1.3.patch"))))
+ (build-system python-build-system)
+ (native-inputs (list python-pytest))
+ (inputs (list freetype
+ lcms
+ libjpeg-turbo
+ libtiff
+ libwebp
+ openjpeg
+ zlib))
+ (propagated-inputs (list python-olefile))
+ (arguments
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-ldconfig
+ (lambda _
+ (substitute* "setup.py"
+ (("\\['/sbin/ldconfig', '-p'\\]")
+ "['true']"))))
+ (replace 'check
+ (lambda* (#:key outputs inputs tests? #:allow-other-keys)
+ (when tests?
+ (setenv "HOME"
+ (getcwd))
+ (add-installed-pythonpath inputs outputs)
+ (invoke "python" "selftest.py" "--installed")
+ (invoke "python" "-m" "pytest" "-vv")))))))
+ (home-page "https://python-pillow.org")
+ (synopsis "Fork of the Python Imaging Library")
+ (description
+ "The Python Imaging Library adds image processing capabilities to your
+Python interpreter. This library provides extensive file format support, an
+efficient internal representation, and fairly powerful image processing
+capabilities. The core image library is designed for fast access to data
+stored in a few basic pixel formats. It should provide a solid foundation for
+a general image processing tool.")
+ (properties `((cpe-name . "pillow")))
+ (license (license:x11-style
+ "http://www.pythonware.com/products/pil/license.htm"
+ "The PIL Software License"))))
diff --git a/gn/packages/web.scm b/gn/packages/web.scm
index 9290a64..734cbe1 100644
--- a/gn/packages/web.scm
+++ b/gn/packages/web.scm
@@ -76,6 +76,26 @@ entire app with our Sass variables and mixins, responsive grid system,
extensive prebuilt components, and powerful plugins built on jQuery.")
(license license:expat)))
+(define-public web-bootstrap-5.3.3
+ (package
+ (inherit web-bootstrap)
+ (name "web-bootstrap-5.3.3")
+ (version "5.3.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/twbs/bootstrap.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zzfmvfps13329wyqlf453rvzfxq9zl4jva83jw695bacfdmax9c"))))
+ (native-inputs (list source))))
+
+(define-public web-bootstrap-5.3 web-bootstrap-5.3.3)
+
+(define-public web-bootstrap-5 web-bootstrap-5.3)
+
(define-public web-bootstrap-3
(package
(inherit web-bootstrap)
diff --git a/gn/services/databases.scm b/gn/services/databases.scm
index 91ac166..4cbbb5e 100644
--- a/gn/services/databases.scm
+++ b/gn/services/databases.scm
@@ -34,7 +34,7 @@
(server-port virtuoso-configuration-server-port
(default 1111))
(dirs-allowed virtuoso-dirs-allowed
- (default "/var/genenetwork/virtuoso-data"))
+ (default (list "/var/genenetwork/virtuoso-data")))
(number-of-buffers virtuoso-configuration-number-of-buffers
(default #f))
(maximum-dirty-buffers virtuoso-configuration-maximum-dirty-buffers
@@ -100,9 +100,9 @@
(format port "ServerPort = ~a:~a~%"
#$(virtuoso-configuration-server-ip config)
#$(virtuoso-configuration-server-port config)))
- (when #$(virtuoso-dirs-allowed config)
+ (when #$(>= (length (virtuoso-dirs-allowed config)) 1)
(format port "DirsAllowed = ~a~%"
- #$(virtuoso-dirs-allowed config)))
+ #$(string-join (virtuoso-dirs-allowed config) ",")))
(when #$(virtuoso-configuration-number-of-buffers config)
(format port "NumberOfBuffers = ~a~%"
#$(virtuoso-configuration-number-of-buffers config)))