Merge branch 'master' into staging
commit
7fe962788a
|
@ -184,8 +184,6 @@
|
|||
"77DD AD2D 97F5 31BB C0F3 C7FD DFB5 EB09 AA62 5423")
|
||||
("snape"
|
||||
"F494 72F4 7A59 00D5 C235 F212 89F9 6D48 08F3 59C7")
|
||||
("snape"
|
||||
"F494 72F4 7A59 00D5 C235 F212 89F9 6D48 08F3 59C7")
|
||||
("steap"
|
||||
"4E26 CCE9 578E 0828 9855 BDD4 1C79 95D2 D5A3 8336")
|
||||
("taylanub"
|
||||
|
@ -193,7 +191,8 @@
|
|||
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00826.html
|
||||
("thomasd"
|
||||
"1DD1 681F E285 E07F 11DC 0C59 2E15 A6BC D77D 54FD")
|
||||
;; primary: "1DD1 681F E285 E07F 11DC 0C59 2E15 A6BC D77D 54FD"
|
||||
"3D2C DA58 819C 08C2 A649 D43D 5C3B 064C 724A 5726")
|
||||
("thomasd (old)"
|
||||
"A5C5 92EA 606E 7106 A6A3 BC08 98B2 1575 91E1 2B08")
|
||||
|
||||
|
|
|
@ -1514,4 +1514,5 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/xsane-tighten-default-umask.patch
|
||||
|
||||
MISC_DISTRO_FILES = \
|
||||
%D%/packages/ld-wrapper.in
|
||||
%D%/packages/ld-wrapper.in \
|
||||
%D%/packages/ld-wrapper-next.in
|
||||
|
|
|
@ -1193,7 +1193,7 @@ follower.")
|
|||
(define-public fluidsynth
|
||||
(package
|
||||
(name "fluidsynth")
|
||||
(version "2.1.0")
|
||||
(version "2.1.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1202,7 +1202,7 @@ follower.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jhla1641rx77va4b6n4shn8srj87rpwvp170byj1bg8z8g89ji1"))))
|
||||
"09jq04hrasidf6b5gkk4aba13fq55z3bmn7bq35rdaikz26xiij4"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -35,6 +36,7 @@
|
|||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-science)
|
||||
#:use-module (gnu packages python-xyz)
|
||||
|
@ -231,3 +233,28 @@ This can give a much better understanding of the command's performance.")
|
|||
"Benchmark is a library to benchmark code snippets,
|
||||
similar to unit tests.")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public bonnie++
|
||||
(package
|
||||
(name "bonnie++")
|
||||
(version "1.98")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.coker.com.au/bonnie++/bonnie++-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"010bmlmi0nrlp3aq7p624sfaj5a65lswnyyxk3cnz1bqig0cn2vf"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("perl" ,perl)))
|
||||
(arguments '(#:tests? #f)) ; there are no tests
|
||||
(home-page "https://doc.coker.com.au/projects/bonnie/")
|
||||
(synopsis "Hard drive and file system benchmark suite")
|
||||
(description
|
||||
"Bonnie++ is a benchmark suite that is aimed at performing a number of
|
||||
simple tests of hard drive and file system performance. Bonnie++ allows you to
|
||||
benchmark how your file systems perform with respect to data read and write
|
||||
speed, the number of seeks that can be performed per second, and the number of
|
||||
file metadata operations that can be performed per second.")
|
||||
(license license:gpl2))) ;GPL 2 only, see copyright.txt
|
||||
|
|
|
@ -224,6 +224,30 @@ Finder (TRF mask). Only the AGAPS and AMB masks are \"active\" by default.")
|
|||
1000genomes phase2 reference genome sequence (hs37d5), based on NCBI GRCh37.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-bsgenome-hsapiens-ncbi-grch38
|
||||
(package
|
||||
(name "r-bsgenome-hsapiens-ncbi-grch38")
|
||||
(version "1.3.1000")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "BSgenome.Hsapiens.NCBI.GRCh38"
|
||||
version 'annotation))
|
||||
(sha256
|
||||
(base32
|
||||
"0y75qdq578fh6420vbvsbwmdw8jvr3g06qli2h3vj3pxmjykh9c1"))))
|
||||
(properties `((upstream-name . "BSgenome.Hsapiens.NCBI.GRCh38")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-bsgenome" ,r-bsgenome)))
|
||||
(home-page
|
||||
"https://bioconductor.org/packages/release/data/annotation/html/\
|
||||
BSgenome.Hsapiens.NCBI.GRCh38.html")
|
||||
(synopsis "Full genome sequences for Homo sapiens (GRCh38)")
|
||||
(description
|
||||
"This package provides full genome sequences for Homo sapiens (Human) as
|
||||
provided by NCBI (GRCh38, 2013-12-17) and stored in Biostrings objects.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-bsgenome-hsapiens-ucsc-hg19-masked
|
||||
(package
|
||||
(name "r-bsgenome-hsapiens-ucsc-hg19-masked")
|
||||
|
|
|
@ -2272,23 +2272,23 @@ time.")
|
|||
(define-public crossmap
|
||||
(package
|
||||
(name "crossmap")
|
||||
(version "0.2.9")
|
||||
(version "0.3.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "CrossMap" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1byhclrqnqpvc1rqkfh4jwj6yhn0x9y7jk47i0qcjlhk0pjkw92p"))))
|
||||
"1sb2f2qbxya4fzw3yjl09vbrs8vfmw22zrygrvz004sf9gb1vkan"))))
|
||||
(build-system python-build-system)
|
||||
(arguments `(#:python ,python-2))
|
||||
(inputs
|
||||
`(("python-bx-python" ,python2-bx-python)
|
||||
("python-numpy" ,python2-numpy)
|
||||
("python-pysam" ,python2-pysam)
|
||||
`(("python-bx-python" ,python-bx-python)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-pybigwig" ,python-pybigwig)
|
||||
("python-pysam" ,python-pysam)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("python-cython" ,python2-cython)
|
||||
("python-nose" ,python2-nose)))
|
||||
`(("python-cython" ,python-cython)
|
||||
("python-nose" ,python-nose)))
|
||||
(home-page "http://crossmap.sourceforge.net/")
|
||||
(synopsis "Convert genome coordinates between assemblies")
|
||||
(description
|
||||
|
@ -2578,7 +2578,7 @@ accurately delineate genomic rearrangements throughout the genome.")
|
|||
(define-public diamond
|
||||
(package
|
||||
(name "diamond")
|
||||
(version "0.9.22")
|
||||
(version "0.9.30")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2587,7 +2587,7 @@ accurately delineate genomic rearrangements throughout the genome.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bky78v79g3wmdpsd706cscckgw1v09fg8vdd0z8z0d5b97aj9zl"))))
|
||||
"0k6f3kb6cniw11xw6763kkbs1sl0yack7xsy7q5fl5v170ssphq4"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no "check" target
|
||||
|
@ -4274,19 +4274,30 @@ experiments.")
|
|||
(define-public macs
|
||||
(package
|
||||
(name "macs")
|
||||
(version "2.1.1.20160309")
|
||||
(version "2.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "MACS2" version))
|
||||
;; The PyPi tarball does not contain tests.
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/taoliu/MACS.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"09ixspd1vcqmz1c81ih70xs4m7qml2iy5vyx1y74zww3iy1vl210"))))
|
||||
"1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2 ; only compatible with Python 2.7
|
||||
#:tests? #f)) ; no test target
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'check)
|
||||
(add-after 'install 'check
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(invoke "pytest" "-v"))))))
|
||||
(inputs
|
||||
`(("python-numpy" ,python2-numpy)))
|
||||
`(("python-numpy" ,python-numpy)))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/taoliu/MACS/")
|
||||
(synopsis "Model based analysis for ChIP-Seq data")
|
||||
(description
|
||||
|
@ -4910,20 +4921,26 @@ predicts the locations of structural units in the sequences.")
|
|||
(define-public proteinortho
|
||||
(package
|
||||
(name "proteinortho")
|
||||
(version "5.16b")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"http://www.bioinf.uni-leipzig.de/Software/proteinortho/proteinortho_v"
|
||||
version "_src.tar.gz"))
|
||||
(version "6.0.14")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/paulklemm_PHD/proteinortho.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1wl0dawpssqwfjvr651r4wlww8hhjin8nba6xh71ks7sbypx886j"))))
|
||||
"0pmy617zy2z2w6hjqxjhf3rzikf5n3mpia80ysq8233vfr7wrzff"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; remove pre-built scripts
|
||||
(delete-file-recursively "src/BUILD/")
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:make-flags '("CC=gcc")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
|
@ -4941,15 +4958,23 @@ predicts the locations of structural units in the sequences.")
|
|||
#t))
|
||||
(add-after 'install 'wrap-programs
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((path (getenv "PATH"))
|
||||
(out (assoc-ref outputs "out"))
|
||||
(binary (string-append out "/bin/proteinortho5.pl")))
|
||||
(wrap-program binary `("PATH" ":" prefix (,path))))
|
||||
(let ((path (getenv "PATH"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(for-each (lambda (script)
|
||||
(wrap-script script `("PATH" ":" prefix (,path))))
|
||||
(cons (string-append out "/bin/proteinortho")
|
||||
(find-files out "\\.(pl|py)$"))))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("perl" ,perl)
|
||||
("python" ,python-2)
|
||||
("blast+" ,blast+)))
|
||||
`(("guile" ,guile-3.0) ; for wrap-script
|
||||
("diamond" ,diamond)
|
||||
("perl" ,perl)
|
||||
("python" ,python-wrapper)
|
||||
("blast+" ,blast+)
|
||||
("lapack" ,lapack)
|
||||
("openblas" ,openblas)))
|
||||
(native-inputs
|
||||
`(("which" ,which)))
|
||||
(home-page "http://www.bioinf.uni-leipzig.de/Software/proteinortho")
|
||||
(synopsis "Detect orthologous genes across species")
|
||||
(description
|
||||
|
@ -4957,7 +4982,7 @@ predicts the locations of structural units in the sequences.")
|
|||
species. For doing so, it compares similarities of given gene sequences and
|
||||
clusters them to find significant groups. The algorithm was designed to handle
|
||||
large-scale data and can be applied to hundreds of species at once.")
|
||||
(license license:gpl2+)))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public pyicoteo
|
||||
(package
|
||||
|
@ -12010,23 +12035,6 @@ graphs. This library makes it easy to work with @file{.loom} files for
|
|||
single-cell RNA-seq data.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
;; pigx-scrnaseq does not work with the latest version of loompy.
|
||||
(define-public python-loompy-for-pigx-scrnaseq
|
||||
(package (inherit python-loompy)
|
||||
(name "python-loompy")
|
||||
(version "2.0.3")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/linnarsson-lab/loompy.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pjyl532pl8sbv71yci6h0agchn0naw2qjcwj50n6afrsahbsag3"))))
|
||||
;; There are none.
|
||||
(arguments '(#:tests? #f))))
|
||||
|
||||
;; We cannot use the latest commit because it requires Java 9.
|
||||
(define-public java-forester
|
||||
(let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
|
||||
|
@ -12770,7 +12778,7 @@ methylation and segmentation.")
|
|||
(define-public pigx-scrnaseq
|
||||
(package
|
||||
(name "pigx-scrnaseq")
|
||||
(version "0.0.8")
|
||||
(version "1.1.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
|
||||
|
@ -12778,27 +12786,21 @@ methylation and segmentation.")
|
|||
"/pigx_scrnaseq-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zv0sc5amivxhb95vx2gfx6l9bh7n80fh7h47dalnwxxnfvnzai4"))))
|
||||
"0ga2jr4968qzwml6aycky4603q64lny3y7lzw6dmafch5pydl1qi"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "PICARDJAR=" (assoc-ref %build-inputs "java-picard")
|
||||
"/share/java/picard.jar")
|
||||
(string-append "DROPSEQJAR=" (assoc-ref %build-inputs "dropseq-tools")
|
||||
"/share/java/dropseq.jar"))))
|
||||
(inputs
|
||||
`(("coreutils" ,coreutils)
|
||||
("perl" ,perl)
|
||||
("dropseq-tools" ,dropseq-tools)
|
||||
("fastqc" ,fastqc)
|
||||
("java-picard" ,java-picard-2.10.3) ; same as for dropseq
|
||||
("flexbar" ,flexbar)
|
||||
("java" ,icedtea-8)
|
||||
("jellyfish" ,jellyfish)
|
||||
("python-wrapper" ,python-wrapper)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-pandas" ,python-pandas)
|
||||
("python-magic" ,python-magic)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-loompy" ,python-loompy-for-pigx-scrnaseq)
|
||||
("python-loompy" ,python-loompy)
|
||||
("ghc-pandoc" ,ghc-pandoc)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
|
||||
("samtools" ,samtools)
|
||||
|
@ -12825,6 +12827,7 @@ methylation and segmentation.")
|
|||
("r-rtsne" ,r-rtsne)
|
||||
("r-scater" ,r-scater)
|
||||
("r-scran" ,r-scran)
|
||||
("r-seurat" ,r-seurat)
|
||||
("r-singlecellexperiment" ,r-singlecellexperiment)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-yaml" ,r-yaml)))
|
||||
|
@ -13882,7 +13885,7 @@ absolute GSEA.")
|
|||
(define-public jamm
|
||||
(package
|
||||
(name "jamm")
|
||||
(version "1.0.7.5")
|
||||
(version "1.0.7.6")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -13892,7 +13895,7 @@ absolute GSEA.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ls889jcma1ch9h21jjhnkadgszgqj41842hhcjh6cg88f85qf3i"))))
|
||||
"0bsa5mf9n9q5jz7mmacrra41l7r8rac5vgsn6wv1fb52ya58b970"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are none
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -49,6 +48,7 @@
|
|||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages llvm)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages ninja)
|
||||
#:use-module (gnu packages node)
|
||||
|
@ -70,7 +70,8 @@
|
|||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (ice-9 match))
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define %preserved-third-party-files
|
||||
'("base/third_party/cityhash" ;Expat
|
||||
|
@ -106,10 +107,6 @@
|
|||
"third_party/blink" ;BSD-3, LGPL2+
|
||||
"third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC)
|
||||
"third_party/boringssl/src/third_party/fiat" ;Expat
|
||||
"third_party/boringssl/src/third_party/sike" ;Expat
|
||||
;; XXX: these files are generated by fp-$arch.pl in the above directory.
|
||||
"third_party/boringssl/linux-aarch64/crypto/third_party/sike/asm/fp-armv8.S"
|
||||
"third_party/boringssl/linux-x86_64/crypto/third_party/sike/asm/fp-x86_64.S"
|
||||
"third_party/breakpad" ;BSD-3
|
||||
"third_party/brotli" ;Expat
|
||||
"third_party/cacheinvalidation" ;ASL2.0
|
||||
|
@ -117,11 +114,14 @@
|
|||
"third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
|
||||
"third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
|
||||
"third_party/catapult/third_party/polymer" ;BSD-3
|
||||
;; XXX: This is a minified version of <https://d3js.org/>.
|
||||
"third_party/catapult/tracing/third_party/d3" ;BSD-3
|
||||
"third_party/catapult/tracing/third_party/gl-matrix" ;Expat
|
||||
;; XXX: Minified version of <https://github.com/Stuk/jszip>.
|
||||
"third_party/catapult/tracing/third_party/jszip" ;Expat or GPL3
|
||||
"third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat
|
||||
"third_party/catapult/tracing/third_party/oboe" ;BSD-2
|
||||
;; XXX: Minified version of <https://github.com/nodeca/pako>.
|
||||
"third_party/catapult/tracing/third_party/pako" ;Expat
|
||||
"third_party/ced" ;BSD-3
|
||||
"third_party/cld_3" ;ASL2.0
|
||||
|
@ -134,6 +134,9 @@
|
|||
"third_party/dav1d" ;BSD-2
|
||||
"third_party/dawn" ;ASL2.0
|
||||
"third_party/depot_tools/owners.py" ;BSD-3
|
||||
"third_party/devtools-frontend" ;BSD-3
|
||||
"third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0
|
||||
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
|
||||
"third_party/dom_distiller_js" ;BSD-3
|
||||
"third_party/emoji-segmenter" ;ASL2.0
|
||||
"third_party/flatbuffers" ;ASL2.0
|
||||
|
@ -154,6 +157,7 @@
|
|||
"third_party/libaom" ;BSD-2 or "Alliance for Open Media Patent License 1.0"
|
||||
"third_party/libaom/source/libaom/third_party/vector" ;Expat
|
||||
"third_party/libaom/source/libaom/third_party/x86inc" ;ISC
|
||||
"third_party/libgifcodec" ;MPL1.1/GPL2+/LGPL2.1+, BSD-3, BSD-2
|
||||
"third_party/libjingle_xmpp" ;BSD-3
|
||||
"third_party/libphonenumber" ;ASL2.0
|
||||
"third_party/libsecret" ;LGPL2.1+
|
||||
|
@ -181,6 +185,7 @@
|
|||
"third_party/pdfium/third_party/bigint" ;Public domain, BSD-3
|
||||
"third_party/pdfium/third_party/skia_shared" ;BSD-3
|
||||
"third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType
|
||||
"third_party/perfetto" ;ASL2.0
|
||||
"third_party/pffft" ;the "FFTPACK" license, similar to BSD-3
|
||||
"third_party/ply" ;BSD-3
|
||||
"third_party/polymer" ;BSD-3
|
||||
|
@ -194,7 +199,6 @@
|
|||
"third_party/sfntly" ;ASL2.0
|
||||
"third_party/skia" ;BSD-3
|
||||
"third_party/skia/include/third_party/skcms" ;BSD-3
|
||||
"third_party/skia/third_party/gif" ;MPL1.1/GPL2+/LGPL2.1+
|
||||
"third_party/skia/third_party/skcms" ;BSD-3
|
||||
"third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat
|
||||
"third_party/smhasher" ;Expat, public domain
|
||||
|
@ -243,9 +247,9 @@ from forcing GEXP-PROMISE."
|
|||
#:system system
|
||||
#:guile-for-build guile)))
|
||||
|
||||
(define %chromium-version "79.0.3945.130")
|
||||
(define %ungoogled-revision "e2fae994d786b6716fb473a47b0c880bcfdc2497")
|
||||
(define %debian-revision "debian/79.0.3945.130-2")
|
||||
(define %chromium-version "80.0.3987.122")
|
||||
(define %ungoogled-revision "6056988937ebc32f14293809487dbaaa65939834")
|
||||
(define %debian-revision "debian/80.0.3987.116-1")
|
||||
(define package-revision "0")
|
||||
(define %package-version (string-append %chromium-version "-"
|
||||
package-revision "."
|
||||
|
@ -259,18 +263,21 @@ from forcing GEXP-PROMISE."
|
|||
%chromium-version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"183vz3lf1588cr9s5vlnj65qvbmz36s8cg8k7dvr64cxmcqk86an"))))
|
||||
"0wr487drgd030d7p84rdz1cys0c87wbgh2qg3d7qd98gqbfcpss8"))))
|
||||
|
||||
(define %ungoogled-origin
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference (url "https://github.com/Eloston/ungoogled-chromium")
|
||||
;; XXX: Temporarily download from a third party because the main
|
||||
;; ungoogled-chromium repo is stale. Code taken from this pull
|
||||
;; request: https://github.com/Eloston/ungoogled-chromium/pull/942
|
||||
(uri (git-reference (url "https://github.com/Zoraver/ungoogled-chromium")
|
||||
(commit %ungoogled-revision)))
|
||||
(file-name (git-file-name "ungoogled-chromium"
|
||||
(string-take %ungoogled-revision 7)))
|
||||
(sha256
|
||||
(base32
|
||||
"15vmc07iba1zmzn4j7c5n2hyvyxzwwf9hc3kyym0m4jajlsyxr5f"))))
|
||||
"0s4bfj5lr49hknb6d7vp3zah70w9sq5cdhhlyihnl7f9jlrrnwsi"))))
|
||||
|
||||
(define %debian-origin
|
||||
(origin
|
||||
|
@ -284,7 +291,7 @@ from forcing GEXP-PROMISE."
|
|||
(_ (string-take %debian-revision 7)))))
|
||||
(sha256
|
||||
(base32
|
||||
"1rbzxcwfp7v0c6rkvn9jl9by7p363cnbdyqazwiak1z03kmw3nkz"))))
|
||||
"1cc5sp566dd8f2grgr770xwbxgxf58dk1w7q3s8pmv4js5h3pwq8"))))
|
||||
|
||||
;; This is a "computed" origin that does the following:
|
||||
;; *) Runs the Ungoogled scripts on a pristine Chromium tarball.
|
||||
|
@ -344,7 +351,7 @@ from forcing GEXP-PROMISE."
|
|||
|
||||
(with-directory-excursion chromium-dir
|
||||
|
||||
(format #t "applying Debian patches...~%")
|
||||
(format #t "Applying Debian patches...~%")
|
||||
(force-output)
|
||||
(let* ((debian #+debian-source)
|
||||
(patches (string-append debian "/debian/patches"))
|
||||
|
@ -423,6 +430,18 @@ from forcing GEXP-PROMISE."
|
|||
`(cons "--enable-custom-modes"
|
||||
,flags))))))
|
||||
|
||||
;; Add a custom ld wrapper that supports quoted strings in response files.
|
||||
;; To be merged with 'ld-wrapper' in a future rebuild cycle.
|
||||
(define-public ld-wrapper-next
|
||||
(let ((orig (car (assoc-ref (%final-inputs) "ld-wrapper"))))
|
||||
(package
|
||||
(inherit orig)
|
||||
(name "ld-wrapper-next")
|
||||
(inputs
|
||||
`(("wrapper" ,(search-path %load-path
|
||||
"gnu/packages/ld-wrapper-next.in"))
|
||||
,@(alist-delete "wrapper" (package-inputs orig)))))))
|
||||
|
||||
(define-public ungoogled-chromium
|
||||
(package
|
||||
(name "ungoogled-chromium")
|
||||
|
@ -446,8 +465,10 @@ from forcing GEXP-PROMISE."
|
|||
;; directory for an exhaustive list of supported flags.
|
||||
;; (Note: The 'configure' phase will do that for you.)
|
||||
(list "is_debug=false"
|
||||
"is_cfi=false"
|
||||
"use_gold=false"
|
||||
"use_lld=false"
|
||||
"clang_use_chrome_plugins=false"
|
||||
"linux_use_bundled_binutils=false"
|
||||
"use_custom_libcxx=false"
|
||||
"use_sysroot=false"
|
||||
|
@ -477,18 +498,6 @@ from forcing GEXP-PROMISE."
|
|||
;; friends from the environment.
|
||||
"custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
|
||||
"host_toolchain=\"//build/toolchain/linux/unbundle:default\""
|
||||
;; Don't assume it's clang.
|
||||
"is_clang=false"
|
||||
;; Disable debugging features to save space. These are normally
|
||||
;; pulled in by "is_official_build", but that requires "is_clang".
|
||||
"enable_iterator_debugging=false"
|
||||
"exclude_unwind_tables=true"
|
||||
;; Optimize for building everything at once, as opposed to
|
||||
;; incrementally for development. See "docs/jumbo.md".
|
||||
"use_jumbo_build=true"
|
||||
;; The default file merge limit of 50 requires huge amounts of RAM.
|
||||
;; Cap it to make sure the build succeeds on commodity hardware.
|
||||
"jumbo_file_merge_limit=8"
|
||||
|
||||
;; Prefer system libraries.
|
||||
"use_system_freetype=true"
|
||||
|
@ -584,6 +593,10 @@ from forcing GEXP-PROMISE."
|
|||
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
|
||||
(("#include \"third_party/jsoncpp/") "#include \"json/"))
|
||||
|
||||
(substitute* "gpu/config/gpu_util.cc"
|
||||
(("third_party/vulkan/include/")
|
||||
""))
|
||||
|
||||
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
|
||||
"components/viz/common/resources/resource_format_utils.h")
|
||||
(("third_party/vulkan/include/") ""))
|
||||
|
@ -636,14 +649,19 @@ from forcing GEXP-PROMISE."
|
|||
|
||||
;; Make sure the right build tools are used.
|
||||
(setenv "AR" "ar") (setenv "NM" "nm")
|
||||
(setenv "CC" "gcc") (setenv "CXX" "g++")
|
||||
(setenv "CC" "clang") (setenv "CXX" "clang++")
|
||||
|
||||
;; Prevent GCC from optimizing away null pointer safety checks.
|
||||
;; Do not optimize away null pointer safety checks.
|
||||
(setenv "CXXFLAGS" "-fno-delete-null-pointer-checks")
|
||||
|
||||
;; TODO: pre-compile instead. Avoids a race condition.
|
||||
(setenv "PYTHONDONTWRITEBYTECODE" "1")
|
||||
|
||||
(substitute*
|
||||
;; From Debians 'system/node.patch'.
|
||||
"third_party/devtools-frontend/src/scripts/devtools_paths.py"
|
||||
(("/usr/bin/nodejs") (which "node")))
|
||||
|
||||
;; XXX: How portable is this.
|
||||
(mkdir-p "third_party/node/linux/node-linux-x64")
|
||||
(symlink (string-append (assoc-ref inputs "node") "/bin")
|
||||
|
@ -748,9 +766,10 @@ from forcing GEXP-PROMISE."
|
|||
#t))))))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("gcc" ,gcc-8)
|
||||
("clang" ,clang-9)
|
||||
("gn" ,gn)
|
||||
("gperf" ,gperf)
|
||||
("ld-wrapper" ,ld-wrapper-next)
|
||||
("ninja" ,ninja)
|
||||
("node" ,node)
|
||||
("pkg-config" ,pkg-config)
|
||||
|
@ -852,6 +871,16 @@ disabled in order to protect the users privacy.")
|
|||
,@(package-inputs ungoogled-chromium)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments ungoogled-chromium)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'add-ozone-patch
|
||||
(lambda _
|
||||
;; Add missing include statement required when using libstdc++,
|
||||
;; Clang and Ozone. Fixed in M81.
|
||||
(substitute* "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc"
|
||||
(("#include \"base/logging\\.h" all)
|
||||
(string-append "#include <algorithm>\n" all)))
|
||||
#t))))
|
||||
((#:configure-flags flags)
|
||||
`(append (list "use_ozone=true"
|
||||
"ozone_platform_wayland=true"
|
||||
|
|
|
@ -1629,18 +1629,19 @@ recreates the stored directory structure by default.")
|
|||
(define-public libzip
|
||||
(package
|
||||
(name "libzip")
|
||||
(version "1.5.2")
|
||||
(version "1.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://libzip.org/download/libzip-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d53shcy7nvls5db573bbdlm25lfz1iw2zshng5f00cssi5lvpmk"))))
|
||||
"0h9nsgkw0dk4srsvmz6xy6f9l4h815xn07j8h40l8gqvcxxaqpbh"))))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)))
|
||||
(inputs
|
||||
`(("gnutls" ,gnutls)
|
||||
("liblzma" ,xz)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(build-system cmake-build-system)
|
||||
|
|
|
@ -20238,3 +20238,326 @@ data for the same conditions. Interactivity can improve complex heatmaps by
|
|||
providing tooltips with information about each cell and enabling zooming into
|
||||
interesting features. iheatmapr uses the plotly library for interactivity.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-packrat
|
||||
(package
|
||||
(name "r-packrat")
|
||||
(version "0.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "packrat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1xy5dd2hrpqa07jfl4s7dsrya05mf36ms74j833scdz0zf89586n"))))
|
||||
(properties `((upstream-name . "packrat")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/rstudio/packrat/")
|
||||
(synopsis "Dependency management R projects")
|
||||
(description
|
||||
"This package provides a dependency manager for R projects that allows
|
||||
you to manage the R packages your project depends on in an isolated, portable,
|
||||
and reproducible way.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-rsconnect
|
||||
(package
|
||||
(name "r-rsconnect")
|
||||
(version "0.8.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rsconnect" version))
|
||||
(sha256
|
||||
(base32
|
||||
"05ii0p0p7xpf8z0c1594s5q7wpwcs7lmlddrd67s5p2ka5m8qwiz"))))
|
||||
(properties `((upstream-name . "rsconnect")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-curl" ,r-curl)
|
||||
("r-digest" ,r-digest)
|
||||
("r-jsonlite" ,r-jsonlite)
|
||||
("r-openssl" ,r-openssl)
|
||||
("r-packrat" ,r-packrat)
|
||||
("r-rstudioapi" ,r-rstudioapi)
|
||||
("r-yaml" ,r-yaml)))
|
||||
(home-page "https://github.com/rstudio/rsconnect")
|
||||
(synopsis "Deployment interface for R Markdown documents and Shiny applications")
|
||||
(description
|
||||
"This package provides a programmatic deployment interface for RPubs,
|
||||
shinyapps.io, and RStudio Connect. Supported content types include R Markdown
|
||||
documents, Shiny applications, Plumber APIs, plots, and static web content.")
|
||||
(license license:gpl2)))
|
||||
|
||||
;; This package includes minified JavaScript files. When upgrading please
|
||||
;; check that there are no new minified JavaScript files.
|
||||
(define-public r-dygraphs
|
||||
(package
|
||||
(name "r-dygraphs")
|
||||
(version "1.1.1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dygraphs" version))
|
||||
(sha256
|
||||
(base32
|
||||
"022j007mzfa9k2n31yg4aizcsf571vv3jip092h23rqj03rk3ly3"))))
|
||||
(properties `((upstream-name . "dygraphs")))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils)
|
||||
(guix build r-build-system)
|
||||
(srfi srfi-1)
|
||||
(ice-9 popen))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'process-javascript
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(with-directory-excursion "inst/htmlwidgets/lib/"
|
||||
(call-with-values
|
||||
(lambda ()
|
||||
(unzip2
|
||||
`(("dygraphs/dygraph-combined-dev.js"
|
||||
"dygraph-combined.js")
|
||||
(,(assoc-ref inputs "js-jquery")
|
||||
"jquery/jquery.min.js")
|
||||
(,(assoc-ref inputs "js-fquarter")
|
||||
"fquarter/moment-fquarter.min.js"))))
|
||||
(lambda (sources targets)
|
||||
(for-each (lambda (source target)
|
||||
(format #t "Processing ~a --> ~a~%"
|
||||
source target)
|
||||
(let ((minified (open-pipe* OPEN_READ "uglify-js" source)))
|
||||
(call-with-output-file target
|
||||
(lambda (port)
|
||||
(dump-port minified port)))))
|
||||
sources targets))))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("uglify-js" ,uglify-js)
|
||||
;; They actually use version 1.11.1, but this more recent version
|
||||
;; should be just fine.
|
||||
("js-jquery"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri "https://code.jquery.com/jquery-1.12.4.js")
|
||||
(sha256
|
||||
(base32
|
||||
"0x9mrc1668icvhpwzvgafm8xm11x9lfai9nwr66aw6pjnpwkc3s3"))))
|
||||
("js-fquarter"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/robgallen/"
|
||||
"moment-fquarter/1.0.1/moment-fquarter.js"))
|
||||
(sha256
|
||||
(base32
|
||||
"01mdnsaibm9jy2f1qpbn692hpv309lhj5si9nagib4dawmrkffij"))))))
|
||||
(propagated-inputs
|
||||
`(("r-htmltools" ,r-htmltools)
|
||||
("r-htmlwidgets" ,r-htmlwidgets)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-xts" ,r-xts)
|
||||
("r-zoo" ,r-zoo)))
|
||||
(home-page "https://github.com/rstudio/dygraphs")
|
||||
(synopsis "Interface to Dygraphs interactive time series charting library")
|
||||
(description
|
||||
"This package provides an R interface to the dygraphs JavaScript charting
|
||||
library (a copy of which is included in the package). It provides rich
|
||||
facilities for charting time-series data in R, including highly configurable
|
||||
series- and axis-display and interactive features like zoom/pan and
|
||||
series/point highlighting.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public r-shinystan
|
||||
(package
|
||||
(name "r-shinystan")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "shinystan" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18alf5kiqw7y2l6m5nxxizwc2znsf9frxfsqhvgcad8hld9cbya5"))))
|
||||
(properties `((upstream-name . "shinystan")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-bayesplot" ,r-bayesplot)
|
||||
("r-colourpicker" ,r-colourpicker)
|
||||
("r-dt" ,r-dt)
|
||||
("r-dygraphs" ,r-dygraphs)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-gridextra" ,r-gridextra)
|
||||
("r-gtools" ,r-gtools)
|
||||
("r-markdown" ,r-markdown)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-rsconnect" ,r-rsconnect)
|
||||
("r-rstan" ,r-rstan)
|
||||
("r-shiny" ,r-shiny)
|
||||
("r-shinyjs" ,r-shinyjs)
|
||||
("r-shinythemes" ,r-shinythemes)
|
||||
("r-threejs" ,r-threejs)
|
||||
("r-xtable" ,r-xtable)
|
||||
("r-xts" ,r-xts)))
|
||||
(home-page "https://mc-stan.org/")
|
||||
(synopsis "Interactive visual and numerical analysis for Bayesian models")
|
||||
(description
|
||||
"This package provides a graphical user interface for interactive
|
||||
@dfn{Markov chain Monte Carlo} (MCMC) diagnostics and plots and tables helpful
|
||||
for analyzing a posterior sample. The interface is powered by the Shiny web
|
||||
application framework and works with the output of MCMC programs written in
|
||||
any programming language (and has extended functionality for Stan models fit
|
||||
using the @code{rstan} and @code{rstanarm} packages).")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-rstantools
|
||||
(package
|
||||
(name "r-rstantools")
|
||||
(version "2.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rstantools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1il0pn4ksbdkska5fmhvgaicvwnnc6cs08g6ags9fj1xkjiqmrsa"))))
|
||||
(properties `((upstream-name . "rstantools")))
|
||||
(build-system r-build-system)
|
||||
(inputs `(("pandoc" ,ghc-pandoc)))
|
||||
(propagated-inputs
|
||||
`(("r-desc" ,r-desc)
|
||||
("r-rcpp" ,r-rcpp)))
|
||||
(home-page "https://mc-stan.org/rstantools/")
|
||||
(synopsis "Tools for developing R packages interfacing with Stan")
|
||||
(description
|
||||
"This package provides various tools for developers of R packages
|
||||
interfacing with @url{https://mc-stan.org, Stan}, including functions to set
|
||||
up the required package structure, S3 generics and default methods to unify
|
||||
function naming across Stan-based R packages, and vignettes with
|
||||
recommendations for developers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-loo
|
||||
(package
|
||||
(name "r-loo")
|
||||
(version "2.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "loo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hq1zcj76x55z9kic6cwf7mfq9pzqfbr341jbc9wp7x8ac4zcva6"))))
|
||||
(properties `((upstream-name . "loo")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("pandoc" ,ghc-pandoc)
|
||||
("pandoc-citeproc" ,ghc-pandoc-citeproc)))
|
||||
(propagated-inputs
|
||||
`(("r-checkmate" ,r-checkmate)
|
||||
("r-matrixstats" ,r-matrixstats)))
|
||||
(home-page "https://mc-stan.org/loo/")
|
||||
(synopsis "Leave-One-Out cross-validation and WAIC for Bayesian models")
|
||||
(description
|
||||
"This package provides an implementation of efficient approximate
|
||||
@dfn{leave-one-out} (LOO) cross-validation for Bayesian models fit using
|
||||
Markov chain Monte Carlo, as described in @url{doi:10.1007/s11222-016-9696-4}.
|
||||
The approximation uses @dfn{Pareto smoothed importance sampling} (PSIS), a new
|
||||
procedure for regularizing importance weights. As a byproduct of the
|
||||
calculations, we also obtain approximate standard errors for estimated
|
||||
predictive errors and for the comparison of predictive errors between models.
|
||||
The package also provides methods for using stacking and other model weighting
|
||||
techniques to average Bayesian predictive distributions.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-rstan
|
||||
(package
|
||||
(name "r-rstan")
|
||||
(version "2.19.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rstan" version))
|
||||
(sha256
|
||||
(base32
|
||||
"128ndwjrhf8b1qvvqz4bl13qlm8718z9qs5ryc6gsdr3vk65s0np"))))
|
||||
(properties `((upstream-name . "rstan")))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'set-timezone
|
||||
;; This package is picky about timezones.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "TZ" "UTC+1")
|
||||
(setenv "TZDIR"
|
||||
(string-append (assoc-ref inputs "tzdata")
|
||||
"/share/zoneinfo"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("tzdata" ,tzdata)
|
||||
("pandoc" ,ghc-pandoc)))
|
||||
(propagated-inputs
|
||||
`(("r-bh" ,r-bh)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-gridextra" ,r-gridextra)
|
||||
("r-inline" ,r-inline)
|
||||
("r-loo" ,r-loo)
|
||||
("r-pkgbuild" ,r-pkgbuild)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcppeigen" ,r-rcppeigen)
|
||||
("r-stanheaders" ,r-stanheaders)))
|
||||
(home-page "https://discourse.mc-stan.org/")
|
||||
(synopsis "R interface to Stan")
|
||||
(description
|
||||
"User-facing R functions are provided to parse, compile, test, estimate,
|
||||
and analyze Stan models by accessing the header-only Stan library provided by
|
||||
the StanHeaders package. The Stan project develops a probabilistic
|
||||
programming language that implements full Bayesian statistical inference via
|
||||
Markov Chain Monte Carlo, rough Bayesian inference via 'variational'
|
||||
approximation, and (optionally penalized) maximum likelihood estimation via
|
||||
optimization. In all three cases, automatic differentiation is used to
|
||||
quickly and accurately evaluate gradients without burdening the user with the
|
||||
need to derive the partial derivatives.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-rstanarm
|
||||
(package
|
||||
(name "r-rstanarm")
|
||||
(version "2.19.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rstanarm" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gxjq8bdlvdd8kn3dhp12xlymdab036r7n12lzmd3xlkl4cnxq3s"))))
|
||||
(properties `((upstream-name . "rstanarm")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("pandoc" ,ghc-pandoc)
|
||||
("pandoc-citeproc" ,ghc-pandoc-citeproc)))
|
||||
(propagated-inputs
|
||||
`(("r-bayesplot" ,r-bayesplot)
|
||||
("r-bh" ,r-bh)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-lme4" ,r-lme4)
|
||||
("r-loo" ,r-loo)
|
||||
("r-matrix" ,r-matrix)
|
||||
("r-nlme" ,r-nlme)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcppeigen" ,r-rcppeigen)
|
||||
("r-rcppparallel" ,r-rcppparallel)
|
||||
("r-rstan" ,r-rstan)
|
||||
("r-rstantools" ,r-rstantools)
|
||||
("r-shinystan" ,r-shinystan)
|
||||
("r-stanheaders" ,r-stanheaders)
|
||||
("r-survival" ,r-survival)))
|
||||
(home-page "https://mc-stan.org/rstanarm/")
|
||||
(synopsis "Bayesian applied regression modeling via Stan")
|
||||
(description
|
||||
"This package estimates previously compiled regression models using the
|
||||
@code{rstan} package, which provides the R interface to the Stan C++ library
|
||||
for Bayesian estimation. Users specify models via the customary R syntax with
|
||||
a formula and @code{data.frame} plus some additional arguments for priors.")
|
||||
(license license:gpl3+)))
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,7 +29,7 @@
|
|||
(define-public datamash
|
||||
(package
|
||||
(name "datamash")
|
||||
(version "1.5")
|
||||
(version "1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -37,7 +37,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b91pbdarnfmbhid8aa2f50k0fln8n7pg62782b4y0jlzvaljqi2"))))
|
||||
"1jvqxcyh0aghnqh3m2rk5av1x0038flcmfzd493vasv1k69vgfdr"))))
|
||||
(native-inputs
|
||||
`(("which" ,which) ;for tests
|
||||
("perl" ,perl))) ;for help2man
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
;;; Copyright © 2019 David Wilson <david@daviwil.com>
|
||||
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
|
||||
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -165,7 +166,7 @@
|
|||
(define-public emacs-geiser
|
||||
(package
|
||||
(name "emacs-geiser")
|
||||
(version "0.11")
|
||||
(version "0.11.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -174,7 +175,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0fb2h984hn7bnyiziplp7kgk29zdzc9yainsv0k1li436irlp9dd"))))
|
||||
"1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -19360,7 +19361,7 @@ with passwords for paths matching regexps.")
|
|||
`(("emacs-ivy" ,emacs-ivy)))
|
||||
(home-page "https://github.com/redguardtoo/eacl")
|
||||
(synopsis "Auto-complete lines by using @code{grep} on a project")
|
||||
(description "This package provides auto-completion cammands for single
|
||||
(description "This package provides auto-completion commands for single
|
||||
and multiple lines of code in a project.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
|
@ -20370,7 +20371,7 @@ color. Designed for 256-color terminals. Comes in light and dark!")
|
|||
"https://github.com/elixir-editors/emacs-elixir")
|
||||
(synopsis "Major mode for editing Elixir files")
|
||||
(description
|
||||
"Elixir-Mode Provides font-locking, indentation and navigation support
|
||||
"Elixir-Mode provides font-locking, indentation and navigation support
|
||||
for the Elixir programming language.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
|
@ -21536,3 +21537,26 @@ Values are stored in a directory in @code{user-emacs-directory}, using
|
|||
one file per value. This makes it easy to delete or remove unused
|
||||
variables.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-company-emoji
|
||||
(package
|
||||
(name "emacs-company-emoji")
|
||||
(version "2.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dunn/company-emoji/")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0r9zcbm3nb3zw5cwrkl098v5b49jbga5404bj7j55g6k4rwkjar2"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-company" ,emacs-company)))
|
||||
(home-page "https://github.com/dunn/company-emoji/")
|
||||
(synopsis "Company completion back-end for emoji")
|
||||
(description
|
||||
"This library is a Company back-end providing auto-completion for
|
||||
emoji.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -781,7 +781,7 @@ It contains the following fonts and styles:
|
|||
(define-public font-fantasque-sans
|
||||
(package
|
||||
(name "font-fantasque-sans")
|
||||
(version "1.7.2")
|
||||
(version "1.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -790,26 +790,27 @@ It contains the following fonts and styles:
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gjranq7qf20rfxnpxsckv1hl35nzsal0rjs475nhfbpqy5wmly6"))))
|
||||
(base32 "17l18488qyl9gdj80r8pcym3gp3jkgsdikwalnrp5rgvwidqx507"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("ttfautohint" ,ttfautohint)
|
||||
("woff-tools" ,woff-tools)
|
||||
("fontforge" ,fontforge)
|
||||
("woff2" ,woff2)
|
||||
("ttf2eot" ,ttf2eot)
|
||||
("zip" ,zip)))
|
||||
(arguments
|
||||
`(#:tests? #f ;test target intended for visual inspection
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure) ;no configuration
|
||||
(add-before 'build 'xrange->range
|
||||
;; Rather than use a python2 fontforge, just replace the
|
||||
;; offending function.
|
||||
(add-before 'build 'support-python@3
|
||||
;; Rather than use a Python 2 fontforge, replace Python-2-
|
||||
;; specific code with a passable Python 3 equivalent.
|
||||
(lambda _
|
||||
(substitute* "Scripts/fontbuilder.py"
|
||||
(("xrange") "range"))
|
||||
(substitute* "Scripts/features.py"
|
||||
(("f\\.write\\(fea_code\\)")
|
||||
"f.write(str.encode(fea_code))"))
|
||||
#t))
|
||||
(replace 'install
|
||||
;; 'make install' wants to install to ~/.fonts, install to
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com>
|
||||
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
|
||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -88,6 +89,7 @@
|
|||
#:use-module (gnu packages sphinx)
|
||||
#:use-module (gnu packages stb)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages web)
|
||||
|
@ -2114,3 +2116,75 @@ computer games, 3D authoring tools and simulation tools.")
|
|||
(description "Chipmunk is a simple, lightweight, fast and portable 2D
|
||||
rigid body physics library written in C.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public libtcod
|
||||
(package
|
||||
(name "libtcod")
|
||||
(version "1.15.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/libtcod/libtcod.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pzr8ajmbqvh43ldjajx962xirj3rf8ayh344p6mqlrmb8gxrfr5"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet '(begin
|
||||
(delete-file-recursively "src/vendor/utf8proc")
|
||||
(delete-file-recursively "src/vendor/zlib")
|
||||
(delete-file "src/vendor/stb_truetype.h")
|
||||
(delete-file "src/vendor/stb_sprintf.h")
|
||||
(delete-file "src/vendor/lodepng.cpp")
|
||||
(delete-file "src/vendor/lodepng.h")
|
||||
|
||||
(substitute* "buildsys/autotools/sources.am"
|
||||
(("\\.\\./\\.\\./src/vendor/lodepng\\.cpp \\\\\n") "")
|
||||
(("\\.\\./\\.\\./src/vendor/stb\\.c \\\\")
|
||||
"../../src/vendor/stb.c")
|
||||
(("\\.\\./\\.\\./src/vendor/utf8proc/utf8proc\\.c") ""))
|
||||
|
||||
(substitute* "src/libtcod/sys_sdl_img_png.cpp"
|
||||
(("\\.\\./vendor/") ""))
|
||||
|
||||
(substitute* '("src/libtcod/color/canvas.cpp"
|
||||
"src/libtcod/sys_sdl_img_png.cpp"
|
||||
"src/libtcod/tileset/truetype.cpp"
|
||||
"src/libtcod/tileset/tilesheet.cpp")
|
||||
(("\\.\\./\\.\\./vendor/") ""))
|
||||
|
||||
(substitute* "src/libtcod/console/printing.cpp"
|
||||
(("\\.\\./\\.\\./vendor/utf8proc/") ""))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-gnu-ld"
|
||||
"LIBS=-lutf8proc -llodepng")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'change-to-build-dir
|
||||
(lambda _
|
||||
(chdir "buildsys/autotools")
|
||||
(patch-shebang "get_version.py")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("python" ,python)
|
||||
("pkg-config" ,pkg-config)
|
||||
("stb-sprintf" ,stb-sprintf)
|
||||
("stb-truetype" ,stb-truetype)))
|
||||
(inputs
|
||||
`(("lodepng" ,lodepng)
|
||||
("sdl2" ,sdl2)
|
||||
("utf8proc" ,utf8proc)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://github.com/libtcod/libtcod")
|
||||
(synopsis "Library specifically designed for writing roguelikes")
|
||||
(description
|
||||
"libtcod is a fast, portable and uncomplicated API for roguelike
|
||||
developers providing an advanced true color console, input, and lots of other
|
||||
utilities frequently used in roguelikes.")
|
||||
(license license:bsd-3)))
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
|
||||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -1844,3 +1845,58 @@ using only text tools.
|
|||
SNG is implemented by a compiler/decompiler called sng that
|
||||
losslessly translates between SNG and PNG.")
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public lodepng
|
||||
;; There are no tags in the repository, so we take the version as defined in
|
||||
;; lodepng.cpp.
|
||||
(let ((commit "48e5364ef48ec2408f44c727657ac1b6703185f8")
|
||||
(revision "1")
|
||||
(version "20200215"))
|
||||
(package
|
||||
(name "lodepng")
|
||||
(version (git-version version revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/lvandeve/lodepng")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1a1x8ag2scanzb2066jm9hg2y9kaa3wmpgmz10l1x9bkpik612lw"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(setenv "CXXFLAGS" "-fPIC")
|
||||
(invoke "make" "lodepng.o")
|
||||
(invoke "make" "lodepng_util.o")
|
||||
(invoke "g++" "-fPIC" "-O3"
|
||||
"-o" "liblodepng.so"
|
||||
"-shared" "lodepng.o" "lodepng_util.o")
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "make" "unittest")
|
||||
(invoke "./unittest")
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (string-append out "/share/doc"))
|
||||
(lib (string-append out "/lib"))
|
||||
(include (string-append out "/include")))
|
||||
(install-file "lodepng.h" include)
|
||||
(install-file "lodepng_util.h" include)
|
||||
(install-file "liblodepng.so" lib)
|
||||
(install-file "README.md" doc)
|
||||
#t))))))
|
||||
(home-page "https://lodev.org/lodepng/")
|
||||
(synopsis "PNG encoder and decoder in C and C++, without dependencies")
|
||||
(description "LodePNG is a PNG image decoder and encoder, all in one,
|
||||
no dependency or linkage required. It's made for C (ISO C90), and has a C++
|
||||
wrapper with a more convenient interface on top.")
|
||||
(license license:zlib))))
|
||||
|
|
|
@ -0,0 +1,305 @@
|
|||
#!@BASH@
|
||||
# -*- mode: scheme; coding: utf-8; -*-
|
||||
|
||||
# XXX: We have to go through Bash because there's no command-line switch to
|
||||
# augment %load-compiled-path, and because of the silly 127-byte limit for
|
||||
# the shebang line in Linux.
|
||||
# Use `load-compiled' because `load' (and `-l') doesn't otherwise load our
|
||||
# .go file (see <http://bugs.gnu.org/12519>).
|
||||
# Unset 'GUILE_LOAD_COMPILED_PATH' to make sure we do not stumble upon
|
||||
# incompatible .go files. See
|
||||
# <https://lists.gnu.org/archive/html/guile-devel/2016-03/msg00000.html>.
|
||||
|
||||
unset GUILE_LOAD_COMPILED_PATH
|
||||
main="(@ (gnu build-support ld-wrapper) ld-wrapper)"
|
||||
exec @GUILE@ -c "(load-compiled \"@SELF@.go\") (apply $main (cdr (command-line)))" "$@"
|
||||
!#
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build-support ld-wrapper)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:autoload (ice-9 rdelim) (read-delimited)
|
||||
#:export (ld-wrapper))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This is a wrapper for the linker. Its purpose is to inspect the -L and
|
||||
;;; -l switches passed to the linker, add corresponding -rpath arguments, and
|
||||
;;; invoke the actual linker with this new set of arguments.
|
||||
;;;
|
||||
;;; The alternatives to this hack would be:
|
||||
;;;
|
||||
;;; 1. Using $LD_RUN_PATH. However, that would tend to include more than
|
||||
;;; needed in the RPATH; for instance, given a package with `libfoo' as
|
||||
;;; an input, all its binaries would have libfoo in their RPATH,
|
||||
;;; regardless of whether they actually NEED it.
|
||||
;;;
|
||||
;;; 2. Use a GCC "lib" spec string such as `%{L*:-rpath %*}', which adds a
|
||||
;;; `-rpath LIBDIR' argument for each occurrence of `-L LIBDIR'.
|
||||
;;; However, this doesn't work when $LIBRARY_PATH is used, because the
|
||||
;;; additional `-L' switches are not matched by the above rule, because
|
||||
;;; the rule only matches explicit user-provided switches. See
|
||||
;;; <http://gcc.gnu.org/ml/gcc-help/2012-09/msg00110.html> for details.
|
||||
;;;
|
||||
;;; As a bonus, this wrapper checks for "impurities"--i.e., references to
|
||||
;;; libraries outside the store.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %real-ld
|
||||
;; Name of the linker that we wrap.
|
||||
"@LD@")
|
||||
|
||||
(define %store-directory
|
||||
;; File name of the store.
|
||||
(or (getenv "NIX_STORE") "/gnu/store"))
|
||||
|
||||
(define %temporary-directory
|
||||
;; Temporary directory.
|
||||
(or (getenv "TMPDIR") "/tmp"))
|
||||
|
||||
(define %build-directory
|
||||
;; Top build directory when run from a builder.
|
||||
(getenv "NIX_BUILD_TOP"))
|
||||
|
||||
(define %allow-impurities?
|
||||
;; Whether to allow references to libraries outside the store.
|
||||
;; Allow them by default for convenience.
|
||||
(let ((value (getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES")))
|
||||
(or (not value)
|
||||
(let ((value (string-downcase value)))
|
||||
(cond ((member value '("yes" "y" "t" "true" "1"))
|
||||
#t)
|
||||
((member value '("no" "n" "f" "false" "0"))
|
||||
#f)
|
||||
(else
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: ~s: invalid value for \
|
||||
'GUIX_LD_WRAPPER_ALLOW_IMPURITIES'~%"
|
||||
value)))))))
|
||||
|
||||
(define %debug?
|
||||
;; Whether to emit debugging output.
|
||||
(getenv "GUIX_LD_WRAPPER_DEBUG"))
|
||||
|
||||
(define %disable-rpath?
|
||||
;; Whether to disable automatic '-rpath' addition.
|
||||
(getenv "GUIX_LD_WRAPPER_DISABLE_RPATH"))
|
||||
|
||||
(define (readlink* file)
|
||||
;; Call 'readlink' until the result is not a symlink.
|
||||
(define %max-symlink-depth 50)
|
||||
|
||||
(let loop ((file file)
|
||||
(depth 0))
|
||||
(define (absolute target)
|
||||
(if (absolute-file-name? target)
|
||||
target
|
||||
(string-append (dirname file) "/" target)))
|
||||
|
||||
(if (>= depth %max-symlink-depth)
|
||||
file
|
||||
(call-with-values
|
||||
(lambda ()
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(values #t (readlink file)))
|
||||
(lambda args
|
||||
(let ((errno (system-error-errno args)))
|
||||
(if (or (= errno EINVAL) (= errno ENOENT))
|
||||
(values #f file)
|
||||
(apply throw args))))))
|
||||
(lambda (success? target)
|
||||
(if success?
|
||||
(loop (absolute target) (+ depth 1))
|
||||
file))))))
|
||||
|
||||
(define (pure-file-name? file)
|
||||
;; Return #t when FILE is the name of a file either within the store
|
||||
;; (possibly via a symlink) or within the build directory.
|
||||
(let ((file (readlink* file)))
|
||||
(or (not (string-prefix? "/" file))
|
||||
(string-prefix? %store-directory file)
|
||||
(string-prefix? %temporary-directory file)
|
||||
(and %build-directory
|
||||
(string-prefix? %build-directory file)))))
|
||||
|
||||
(define (store-file-name? file)
|
||||
;; Return #t when FILE is a store file, possibly indirectly.
|
||||
(string-prefix? %store-directory (readlink* file)))
|
||||
|
||||
(define (shared-library? file)
|
||||
;; Return #t when FILE denotes a shared library.
|
||||
(or (string-suffix? ".so" file)
|
||||
(let ((index (string-contains file ".so.")))
|
||||
;; Since we cannot use regexps during bootstrap, roll our own.
|
||||
(and index
|
||||
(string-every (char-set-union (char-set #\.) char-set:digit)
|
||||
(string-drop file (+ index 3)))))))
|
||||
|
||||
(define (library-search-path args)
|
||||
;; Return the library search path as a list of directory names. The GNU ld
|
||||
;; manual notes that "[a]ll `-L' options apply to all `-l' options,
|
||||
;; regardless of the order in which the options appear", so we must compute
|
||||
;; the search path independently of the -l options.
|
||||
(let loop ((args args)
|
||||
(path '()))
|
||||
(match args
|
||||
(()
|
||||
(reverse path))
|
||||
(("-L" directory . rest)
|
||||
(loop rest (cons directory path)))
|
||||
((argument . rest)
|
||||
(if (string-prefix? "-L" argument) ;augment the search path
|
||||
(loop rest
|
||||
(cons (string-drop argument 2) path))
|
||||
(loop rest path))))))
|
||||
|
||||
(define (library-files-linked args library-path)
|
||||
;; Return the absolute file names of shared libraries explicitly linked
|
||||
;; against via `-l' or with an absolute file name in ARGS, looking them up
|
||||
;; in LIBRARY-PATH.
|
||||
(define files+args
|
||||
(fold (lambda (argument result)
|
||||
(match result
|
||||
((library-files ((and flag
|
||||
(or "-dynamic-linker" "-plugin"))
|
||||
. rest))
|
||||
;; When passed '-dynamic-linker ld.so', ignore 'ld.so'; when
|
||||
;; passed '-plugin liblto_plugin.so', ignore
|
||||
;; 'liblto_plugin.so'. See <http://bugs.gnu.org/20102>.
|
||||
(list library-files
|
||||
(cons* argument flag rest)))
|
||||
((library-files previous-args)
|
||||
(cond ((string-prefix? "-l" argument) ;add library
|
||||
(let* ((lib (string-append "lib"
|
||||
(string-drop argument 2)
|
||||
".so"))
|
||||
(full (search-path library-path lib)))
|
||||
(list (if full
|
||||
(cons full library-files)
|
||||
library-files)
|
||||
(cons argument previous-args))))
|
||||
((and (string-prefix? %store-directory argument)
|
||||
(shared-library? argument)) ;add library
|
||||
(list (cons argument library-files)
|
||||
(cons argument previous-args)))
|
||||
(else
|
||||
(list library-files
|
||||
(cons argument previous-args)))))))
|
||||
(list '() '())
|
||||
args))
|
||||
|
||||
(match files+args
|
||||
((files arguments)
|
||||
(reverse files))))
|
||||
|
||||
(define (rpath-arguments library-files)
|
||||
;; Return the `-rpath' argument list for each of LIBRARY-FILES, a list of
|
||||
;; absolute file names.
|
||||
(fold-right (lambda (file args)
|
||||
;; Add '-rpath' if and only if FILE is in the store; we don't
|
||||
;; want to add '-rpath' for files under %BUILD-DIRECTORY or
|
||||
;; %TEMPORARY-DIRECTORY because that could leak to installed
|
||||
;; files.
|
||||
(cond ((and (not %disable-rpath?)
|
||||
(store-file-name? file))
|
||||
(cons* "-rpath" (dirname file) args))
|
||||
((or %allow-impurities?
|
||||
(pure-file-name? file))
|
||||
args)
|
||||
(else
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: error: attempt to use \
|
||||
library outside of ~a: ~s~%"
|
||||
%store-directory file)
|
||||
(exit 1)))))
|
||||
'()
|
||||
library-files))
|
||||
|
||||
(define (expand-arguments args)
|
||||
;; Expand ARGS such that "response file" arguments, such as "@args.txt", are
|
||||
;; expanded (info "(gcc) Overall Options").
|
||||
(define (response-file-arguments file)
|
||||
(define (tokenize port)
|
||||
;; Return a list of all strings found in PORT. Quote characters are removed,
|
||||
;; but whitespaces within quoted strings are preserved.
|
||||
(let loop ((words '()))
|
||||
(let* ((word (read-delimited " '\"" port 'split))
|
||||
(token (car word))
|
||||
(delim (cdr word)))
|
||||
(if (eof-object? delim)
|
||||
(reverse words)
|
||||
(case delim
|
||||
((#\") (loop (cons (read-delimited "\"" port) words)))
|
||||
((#\') (loop (cons (read-delimited "'" port) words)))
|
||||
((#\ ) (if (> 0 (string-length token))
|
||||
(loop (cons token words))
|
||||
(loop words)))
|
||||
(else (loop words)))))))
|
||||
|
||||
(when %debug?
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: attempting to read arguments from '~a'~%" file))
|
||||
|
||||
(call-with-input-file file tokenize))
|
||||
|
||||
(define result
|
||||
(fold-right (lambda (arg result)
|
||||
(if (string-prefix? "@" arg)
|
||||
(let ((file (string-drop arg 1)))
|
||||
(append (catch 'system-error
|
||||
(lambda ()
|
||||
(response-file-arguments file))
|
||||
(lambda args
|
||||
;; FILE doesn't exist or cannot be read so
|
||||
;; leave ARG as is.
|
||||
(list arg)))
|
||||
result))
|
||||
(cons arg result)))
|
||||
'()
|
||||
args))
|
||||
|
||||
;; If there are "@" arguments in RESULT *and* we can expand them (they don't
|
||||
;; refer to nonexistent files), then recurse.
|
||||
(if (equal? result args)
|
||||
result
|
||||
(expand-arguments result)))
|
||||
|
||||
(define (ld-wrapper . args)
|
||||
;; Invoke the real `ld' with ARGS, augmented with `-rpath' switches.
|
||||
(let* ((args (expand-arguments args))
|
||||
(path (library-search-path args))
|
||||
(libs (library-files-linked args path))
|
||||
(args (append args (rpath-arguments libs))))
|
||||
(when %debug?
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: library search path: ~s~%" path)
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: libraries linked: ~s~%" libs)
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: invoking `~a' with ~s~%"
|
||||
%real-ld args)
|
||||
(force-output (current-error-port)))
|
||||
(apply execl %real-ld (basename %real-ld) args)))
|
||||
|
||||
;;; ld-wrapper.scm ends here
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2015, 2017 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2017, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
|
@ -130,6 +130,20 @@ resolution, asynchronous file system operations, and threading primitives.")
|
|||
;; details. Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-docs'.
|
||||
(license (list expat cc-by4.0))))
|
||||
|
||||
;; This newer version of LibUV is required by 'node'. Package it separately
|
||||
;; to avoid massive rebuilds.
|
||||
(define-public libuv/latest
|
||||
(package/inherit
|
||||
libuv
|
||||
(version "1.34.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.libuv.org/dist/v" version
|
||||
"/libuv-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0inzk8qpw78im3fiazrc54qi1gcapbs8dhf0hk3kwpzg0i2kpnb5"))))))
|
||||
|
||||
(define-public perl-anyevent
|
||||
(package
|
||||
(name "perl-anyevent")
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages c)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
|
@ -10718,3 +10719,234 @@ approach to templating.")
|
|||
|
||||
(define-public ecl-lquery
|
||||
(sbcl-package->ecl-package sbcl-lquery))
|
||||
|
||||
(define-public sbcl-cl-mysql
|
||||
(let ((commit "ab56c279c1815aec6ca0bfe85164ff7e85cfb6f9")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-cl-mysql")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/hackinghat/cl-mysql.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0dg5ynx2ww94d0qfwrdrm7plkn43h64hs4iiq9mj2s1s4ixnp3lr"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(native-inputs
|
||||
`(("stefil" ,sbcl-stefil)))
|
||||
(inputs
|
||||
`(("cffi" ,sbcl-cffi)
|
||||
("mariadb-lib" ,mariadb "lib")))
|
||||
(arguments
|
||||
`(#:tests? #f ; TODO: Tests require a running server
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "system.lisp"
|
||||
(("libmysqlclient_r" all)
|
||||
(string-append (assoc-ref inputs "mariadb-lib")
|
||||
"/lib/"
|
||||
all)))
|
||||
#t)))))
|
||||
(synopsis "Common Lisp wrapper for MySQL")
|
||||
(description
|
||||
"@code{cl-mysql} is a Common Lisp implementation of a MySQL wrapper.")
|
||||
(home-page "http://www.hackinghat.com/index.php/cl-mysql")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public cl-mysql
|
||||
(sbcl-package->cl-source-package sbcl-cl-mysql))
|
||||
|
||||
(define-public sbcl-simple-date
|
||||
(let ((commit "74469b25bbda990ec9b77e0d0eccdba0cd7e721a")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "sbcl-simple-date")
|
||||
(version (git-version "1.19" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/marijnh/Postmodern.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0im7ymnyxjhn2w74jfg76k5gpr0gl33n31akx33hl28722ljd0hd"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(native-inputs
|
||||
`(("fiveam" ,sbcl-fiveam)))
|
||||
(synopsis "Basic date and time objects for Common Lisp")
|
||||
(description
|
||||
"@code{simple-date} is a very basic implementation of date and time
|
||||
objects, used to support storing and retrieving time-related SQL types.")
|
||||
(home-page "https://marijnhaverbeke.nl/postmodern/")
|
||||
(license license:zlib))))
|
||||
|
||||
(define-public cl-simple-date
|
||||
(sbcl-package->cl-source-package sbcl-simple-date))
|
||||
|
||||
(define-public ecl-simple-date
|
||||
(sbcl-package->ecl-package sbcl-simple-date))
|
||||
|
||||
(define-public sbcl-cl-postgres
|
||||
(package
|
||||
(inherit sbcl-simple-date)
|
||||
(name "sbcl-cl-postgres")
|
||||
(native-inputs
|
||||
`(("fiveam" ,sbcl-fiveam)
|
||||
("simple-date" ,sbcl-simple-date)))
|
||||
(inputs
|
||||
`(("md5" ,sbcl-md5)
|
||||
("split-sequence" ,sbcl-split-sequence)
|
||||
("usocket" ,sbcl-usocket)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; TODO: Break simple-date/postgres-glue circular dependency
|
||||
(synopsis "Common Lisp interface for PostgreSQL")
|
||||
(description
|
||||
"@code{cl-postgres} is a low-level library used for interfacing with
|
||||
a PostgreSQL server over a socket.")))
|
||||
|
||||
(define-public cl-postgres
|
||||
(sbcl-package->cl-source-package sbcl-cl-postgres))
|
||||
|
||||
(define-public sbcl-simple-date-postgres-glue
|
||||
(package
|
||||
(inherit sbcl-simple-date)
|
||||
(name "sbcl-simple-date-postgres-glue")
|
||||
(inputs
|
||||
`(("cl-postgres" ,sbcl-cl-postgres)
|
||||
("simple-date" ,sbcl-simple-date)))
|
||||
(arguments
|
||||
`(#:asd-file "simple-date.asd"
|
||||
#:asd-system-name "simple-date/postgres-glue"))))
|
||||
|
||||
(define-public cl-simple-date-postgres-glue
|
||||
(sbcl-package->cl-source-package sbcl-simple-date-postgres-glue))
|
||||
|
||||
(define-public sbcl-s-sql
|
||||
(package
|
||||
(inherit sbcl-simple-date)
|
||||
(name "sbcl-s-sql")
|
||||
(inputs
|
||||
`(("alexandria" ,sbcl-alexandria)
|
||||
("cl-postgres" ,sbcl-cl-postgres)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; TODO: Break postmodern circular dependency
|
||||
(synopsis "Lispy DSL for SQL")
|
||||
(description
|
||||
"@code{s-sql} is a Common Lisp library that can be used to compile
|
||||
s-expressions to strings of SQL code, escaping any Lisp values inside, and
|
||||
doing as much as possible of the work at compile time.")))
|
||||
|
||||
(define-public cl-s-sql
|
||||
(sbcl-package->cl-source-package sbcl-s-sql))
|
||||
|
||||
(define-public sbcl-postmodern
|
||||
(package
|
||||
(inherit sbcl-simple-date)
|
||||
(name "sbcl-postmodern")
|
||||
(native-inputs
|
||||
`(("fiveam" ,sbcl-fiveam)
|
||||
("simple-date" ,sbcl-simple-date)
|
||||
("simple-date-postgres-glue" ,sbcl-simple-date-postgres-glue)))
|
||||
(inputs
|
||||
`(("alexandria" ,sbcl-alexandria)
|
||||
("bordeaux-threads" ,sbcl-bordeaux-threads)
|
||||
("cl-postgres" ,sbcl-cl-postgres)
|
||||
("closer-mop" ,sbcl-closer-mop)
|
||||
("global-vars" ,sbcl-global-vars)
|
||||
("s-sql" ,sbcl-s-sql)
|
||||
("split-sequence" ,sbcl-split-sequence)))
|
||||
(arguments
|
||||
;; TODO: Fix missing dependency errors for simple-date/postgres-glue,
|
||||
;; cl-postgres/tests and s-sql/tests.
|
||||
`(#:tests? #f))
|
||||
(synopsis "Common Lisp library for interacting with PostgreSQL")
|
||||
(description
|
||||
"@code{postmodern} is a Common Lisp library for interacting with
|
||||
PostgreSQL databases. It provides the following features:
|
||||
|
||||
@itemize
|
||||
@item Efficient communication with the database server without need for
|
||||
foreign libraries.
|
||||
@item Support for UTF-8 on Unicode-aware Lisp implementations.
|
||||
@item A syntax for mixing SQL and Lisp code.
|
||||
@item Convenient support for prepared statements and stored procedures.
|
||||
@item A metaclass for simple database-access objects.
|
||||
@end itemize\n")))
|
||||
|
||||
(define-public cl-postmodern
|
||||
(sbcl-package->cl-source-package sbcl-postmodern))
|
||||
|
||||
(define-public sbcl-dbi
|
||||
(package
|
||||
(name "sbcl-dbi")
|
||||
(version "0.9.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fukamachi/cl-dbi.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0m1fsravfaizamdak84adh3jxc4j91maqnrb4m08bfbmb04cdqhs"))))
|
||||
(build-system asdf-build-system/sbcl)
|
||||
(inputs
|
||||
`(("bordeaux-threads" ,sbcl-bordeaux-threads)
|
||||
("closer-mop" ,sbcl-closer-mop)
|
||||
("split-sequence" ,sbcl-split-sequence)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; TODO: Break circular dependency with dbd-*
|
||||
(synopsis "Database independent interface for Common Lisp")
|
||||
(description
|
||||
"@code{dbi} is a Common Lisp library providing a database independent
|
||||
interface for MySQL, PostgreSQL and SQLite.")
|
||||
(home-page "https://github.com/fukamachi/cl-dbi")
|
||||
(license license:llgpl)))
|
||||
|
||||
(define-public cl-dbi
|
||||
(sbcl-package->cl-source-package sbcl-dbi))
|
||||
|
||||
(define-public sbcl-dbd-mysql
|
||||
(package
|
||||
(inherit sbcl-dbi)
|
||||
(name "sbcl-dbd-mysql")
|
||||
(inputs
|
||||
`(("cl-mysql" ,sbcl-cl-mysql)
|
||||
("dbi" ,sbcl-dbi)))
|
||||
(synopsis "Database driver for MySQL")))
|
||||
|
||||
(define-public cl-dbd-mysql
|
||||
(sbcl-package->cl-source-package sbcl-dbd-mysql))
|
||||
|
||||
(define-public sbcl-dbd-postgres
|
||||
(package
|
||||
(inherit sbcl-dbi)
|
||||
(name "sbcl-dbd-postgres")
|
||||
(inputs
|
||||
`(("cl-postgres" ,sbcl-cl-postgres)
|
||||
("dbi" ,sbcl-dbi)
|
||||
("trivial-garbage" ,sbcl-trivial-garbage)))
|
||||
(synopsis "Database driver for PostgreSQL")))
|
||||
|
||||
(define-public cl-dbd-postgres
|
||||
(sbcl-package->cl-source-package sbcl-dbd-postgres))
|
||||
|
||||
(define-public sbcl-dbd-sqlite3
|
||||
(package
|
||||
(inherit sbcl-dbi)
|
||||
(name "sbcl-dbd-sqlite3")
|
||||
(inputs
|
||||
`(("cl-sqlite" ,sbcl-cl-sqlite)
|
||||
("dbi" ,sbcl-dbi)
|
||||
("trivial-garbage" ,sbcl-trivial-garbage)))
|
||||
(synopsis "Database driver for SQLite3")))
|
||||
|
||||
(define-public cl-dbd-sqlite3
|
||||
(sbcl-package->cl-source-package sbcl-dbd-sqlite3))
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com>
|
||||
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
|
@ -48,6 +48,7 @@
|
|||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages onc-rpc)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -207,18 +208,32 @@ compiler. In LLVM this library is called \"compiler-rt\".")
|
|||
#:build-type "Release"
|
||||
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after
|
||||
'unpack 'set-glibc-file-names
|
||||
(add-after 'unpack 'add-missing-triplets
|
||||
(lambda _
|
||||
;; Clang iterates through known triplets to search for
|
||||
;; GCC's headers, but does not recognize some of the
|
||||
;; triplets that are used in Guix.
|
||||
(substitute* ,@(if (version>=? version "6.0")
|
||||
'("lib/Driver/ToolChains/Gnu.cpp")
|
||||
'("lib/Driver/ToolChains.cpp"))
|
||||
(("\"aarch64-linux-gnu\"," all)
|
||||
(string-append "\"aarch64-unknown-linux-gnu\", "
|
||||
all))
|
||||
(("\"arm-linux-gnueabihf\"," all)
|
||||
(string-append all
|
||||
" \"arm-unknown-linux-gnueabihf\","))
|
||||
(("\"i686-pc-linux-gnu\"," all)
|
||||
(string-append "\"i686-unknown-linux-gnu\", "
|
||||
all)))
|
||||
#t))
|
||||
(add-after 'unpack 'set-glibc-file-names
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(compiler-rt (assoc-ref inputs "clang-runtime"))
|
||||
(gcc (assoc-ref inputs "gcc"))
|
||||
(version
|
||||
(string->number
|
||||
,(version-major (package-version clang-runtime)))))
|
||||
(cond
|
||||
((> version 3)
|
||||
;; Link to libclang_rt files from clang-runtime.
|
||||
(gcc (assoc-ref inputs "gcc")))
|
||||
,@(cond
|
||||
((version>=? version "6.0")
|
||||
`(;; Link to libclang_rt files from clang-runtime.
|
||||
(substitute* "lib/Driver/ToolChain.cpp"
|
||||
(("getDriver\\(\\)\\.ResourceDir")
|
||||
(string-append "\"" compiler-rt "\"")))
|
||||
|
@ -233,14 +248,15 @@ compiler. In LLVM this library is called \"compiler-rt\".")
|
|||
;; location.
|
||||
(("LibStdCXXIncludePathCandidates\\[\\] = \\{")
|
||||
(string-append
|
||||
"LibStdCXXIncludePathCandidates[] = { \"" gcc "/include/c++\","))
|
||||
"LibStdCXXIncludePathCandidates[] = { \"" gcc
|
||||
"/include/c++\","))
|
||||
|
||||
;; Make sure libc's libdir is on the search path, to
|
||||
;; allow crt1.o & co. to be found.
|
||||
(("@GLIBC_LIBDIR@")
|
||||
(string-append libc "/lib"))))
|
||||
(string-append libc "/lib")))))
|
||||
(else
|
||||
(substitute* "lib/Driver/Tools.cpp"
|
||||
`((substitute* "lib/Driver/Tools.cpp"
|
||||
;; Patch the 'getLinuxDynamicLinker' function so that
|
||||
;; it uses the right dynamic linker file name.
|
||||
(("/lib64/ld-linux-x86-64.so.2")
|
||||
|
@ -249,21 +265,19 @@ compiler. In LLVM this library is called \"compiler-rt\".")
|
|||
|
||||
;; Link to libclang_rt files from clang-runtime.
|
||||
;; This substitution needed slight adjustment in 3.8.
|
||||
(if (< 3.8 (string->number ,(version-major+minor
|
||||
(package-version
|
||||
clang-runtime))))
|
||||
(substitute* "lib/Driver/Tools.cpp"
|
||||
,@(if (version>=? version "3.8")
|
||||
'((substitute* "lib/Driver/Tools.cpp"
|
||||
(("TC\\.getDriver\\(\\)\\.ResourceDir")
|
||||
(string-append "\"" compiler-rt "\"")))
|
||||
(substitute* "lib/Driver/ToolChain.cpp"
|
||||
(("getDriver\\(\\)\\.ResourceDir")
|
||||
(string-append "\"" compiler-rt "\""))))
|
||||
'((substitute* "lib/Driver/ToolChain.cpp"
|
||||
(("getDriver\\(\\)\\.ResourceDir")
|
||||
(string-append "\"" compiler-rt "\"")))))
|
||||
|
||||
;; Make sure libc's libdir is on the search path, to
|
||||
;; allow crt1.o & co. to be found.
|
||||
(substitute* "lib/Driver/ToolChains.cpp"
|
||||
(("@GLIBC_LIBDIR@")
|
||||
(string-append libc "/lib")))))
|
||||
(string-append libc "/lib"))))))
|
||||
#t)))
|
||||
(add-after 'install 'install-clean-up-/share/clang
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
@ -553,11 +567,33 @@ output), and Binutils.")
|
|||
"0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4"))))))
|
||||
|
||||
(define-public clang-runtime-3.5
|
||||
(clang-runtime-from-llvm
|
||||
(let ((runtime (clang-runtime-from-llvm
|
||||
llvm-3.5
|
||||
"1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal"
|
||||
'("clang-runtime-asan-build-fixes.patch"
|
||||
"clang-3.5-libsanitizer-ustat-fix.patch")))
|
||||
"clang-3.5-libsanitizer-ustat-fix.patch"))))
|
||||
(package
|
||||
(inherit runtime)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments runtime)
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
;; glibc no longer includes rpc/xdr.h, so we use the headers from
|
||||
;; libtirpc.
|
||||
(add-after 'unpack 'find-rpc-includes
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "CPATH"
|
||||
(string-append (assoc-ref inputs "libtirpc")
|
||||
"/include/tirpc/:"
|
||||
(or (getenv "CPATH") "")))
|
||||
(setenv "CPLUS_INCLUDE_PATH"
|
||||
(string-append (assoc-ref inputs "libtirpc")
|
||||
"/include/tirpc/:"
|
||||
(or (getenv "CPLUS_INCLUDE_PATH") "")))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("libtirpc" ,libtirpc)
|
||||
("llvm" ,llvm-3.5))))))
|
||||
|
||||
(define-public clang-3.5
|
||||
(clang-from-llvm llvm-3.5 clang-runtime-3.5
|
||||
|
|
|
@ -5138,7 +5138,7 @@ and as an LV2 plugin.")
|
|||
(define-public zrythm
|
||||
(package
|
||||
(name "zrythm")
|
||||
(version "0.7.474")
|
||||
(version "0.7.573")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5146,7 +5146,7 @@ and as an LV2 plugin.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qq9v8y27zhamcb7nq7pl76874ws8x8cxhp5r685b8binvl9p0az"))))
|
||||
"075gq478xbzz5ql4fsrgfzhgxi7z26k6034lhlkmm0klfcb8j9mg"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:glib-or-gtk? #t
|
||||
|
@ -5171,6 +5171,7 @@ and as an LV2 plugin.")
|
|||
("gettext" ,gettext-minimal)
|
||||
("glibc" ,glibc)
|
||||
("gtk+" ,gtk+)
|
||||
("libcyaml" ,libcyaml)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("libsndfile" ,libsndfile)
|
||||
("libyaml" ,libyaml)
|
||||
|
|
|
@ -28,14 +28,14 @@
|
|||
(define-public musl
|
||||
(package
|
||||
(name "musl")
|
||||
(version "1.1.24")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.musl-libc.org/releases/"
|
||||
"musl-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18r2a00k82hz0mqdvgm7crzc7305l36109c0j9yjmkxj2alcjw0k"))))
|
||||
"1s6lix02k1ijm4nmhzpmwzk5w6xfkhn70nvvk8zjs51r24cpppn6"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; musl has no tests
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -45,14 +45,14 @@
|
|||
(define-public node
|
||||
(package
|
||||
(name "node")
|
||||
(version "10.16.0")
|
||||
(version "10.19.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nodejs.org/dist/v" version
|
||||
"/node-v" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0236jlb1hxhzqjlmmlxipcycrndiq92c8434iyy7zshh3n4pzqqq"))
|
||||
"0sginvcsf7lrlzsnpahj4bj1f673wfvby8kaxgvzlrbb7sy229v2"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
`(begin
|
||||
|
@ -74,8 +74,7 @@
|
|||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; TODO: Purge the bundled copies from the source.
|
||||
'(#:configure-flags '("--shared-cares"
|
||||
`(#:configure-flags '("--shared-cares"
|
||||
"--shared-http-parser"
|
||||
"--shared-libuv"
|
||||
"--shared-nghttp2"
|
||||
|
@ -121,6 +120,20 @@
|
|||
;; https://github.com/nodejs/node/issues/31213
|
||||
(delete-file "test/parallel/test-net-listen-after-destroying-stdin.js")
|
||||
|
||||
;; FIXME: These tests fail on armhf-linux:
|
||||
;; https://github.com/nodejs/node/issues/31970
|
||||
,@(if (string-prefix? "arm" (%current-system))
|
||||
'((for-each delete-file
|
||||
'("test/parallel/test-zlib.js"
|
||||
"test/parallel/test-zlib-brotli.js"
|
||||
"test/parallel/test-zlib-brotli-flush.js"
|
||||
"test/parallel/test-zlib-brotli-from-brotli.js"
|
||||
"test/parallel/test-zlib-brotli-from-string.js"
|
||||
"test/parallel/test-zlib-convenience-methods.js"
|
||||
"test/parallel/test-zlib-random-byte-pipes.js"
|
||||
"test/parallel/test-zlib-write-after-flush.js")))
|
||||
'())
|
||||
|
||||
;; These tests have an expiry date: they depend on the validity of
|
||||
;; TLS certificates that are bundled with the source. We want this
|
||||
;; package to be reproducible forever, so remove those.
|
||||
|
@ -170,8 +183,8 @@
|
|||
`(("c-ares" ,c-ares)
|
||||
("http-parser" ,http-parser)
|
||||
("icu4c" ,icu4c)
|
||||
("libuv" ,libuv)
|
||||
("nghttp2" ,nghttp2 "lib")
|
||||
("libuv" ,libuv/latest)
|
||||
("nghttp2" ,nghttp2-1.40 "lib")
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(synopsis "Evented I/O for V8 JavaScript")
|
||||
|
|
|
@ -315,7 +315,7 @@ back-end for the LLVM compiler framework.")
|
|||
(inputs
|
||||
`(("clang" ,clang)
|
||||
("hwloc" ,hwloc-2 "lib")
|
||||
("llvm" ,llvm-8)
|
||||
("llvm" ,llvm)
|
||||
("ocl-icd" ,ocl-icd)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -133,14 +133,14 @@ data as produced by digital cameras.")
|
|||
(define-public libgphoto2
|
||||
(package
|
||||
(name "libgphoto2")
|
||||
(version "2.5.23")
|
||||
(version "2.5.24")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
|
||||
version "/libgphoto2-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bc5x2bkqbfi4hbkz8ab5xc0bkks9vvks1vygxhdh3x498v27byq"))))
|
||||
"0cgvsk06c4kcfj16plc27nm7g16r9ci0y4k83sf3iyphd63mfg7x"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
|
||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -1601,14 +1602,14 @@ supports url redirection and retries, and also gzip and deflate decoding.")
|
|||
(define-public awscli
|
||||
(package
|
||||
(name "awscli")
|
||||
(version "1.14.41")
|
||||
(version "1.18.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0sispclx263lybbk19zp1n9yhg8xxx4jddypzgi24vpjaqnsbwlc"))))
|
||||
"0p479mfs9r0m82a217pap8156ijwvhv6r3kqa4k267gd05wgvygm"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; FIXME: The 'pypi' release does not contain tests.
|
||||
|
@ -1630,7 +1631,7 @@ supports url redirection and retries, and also gzip and deflate decoding.")
|
|||
("python-docutils" ,python-docutils)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-rsa" ,python-rsa)))
|
||||
(inputs
|
||||
(native-inputs
|
||||
`(("groff" ,groff)))
|
||||
(home-page "https://aws.amazon.com/cli/")
|
||||
(synopsis "Command line client for AWS")
|
||||
|
|
|
@ -49,14 +49,14 @@
|
|||
(define-public xapian
|
||||
(package
|
||||
(name "xapian")
|
||||
(version "1.4.14")
|
||||
(version "1.4.15")
|
||||
;; Note: When updating Xapian, remember to update xapian-bindings below.
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://oligarchy.co.uk/xapian/" version
|
||||
"/xapian-core-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0ja95vn0lkf6qkjhg2blkx306i10hg4fr8wlrhalmly93307lnlp"))))
|
||||
(base32 "1sjhz6vgql801rdgl6vrsjj0vy1mwlkcxjx6nr7h27m031cyjs5i"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("zlib" ,zlib)
|
||||
("util-linux" ,util-linux)))
|
||||
|
@ -94,7 +94,7 @@ rich set of boolean query operators.")
|
|||
"/xapian-bindings-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qb17cw8n0g5gcg8dq5b3hs6i16w74rgxcryd0ja9n2h0rlda2an"))))
|
||||
"0364nalvh13c7wzx52mz4gaf8wg1rm17lw75cs8a813rv091ci38"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-python3")
|
||||
|
|
|
@ -858,7 +858,7 @@ then ported to the GNU / Linux environment.")
|
|||
(define-public mbedtls-apache
|
||||
(package
|
||||
(name "mbedtls-apache")
|
||||
(version "2.16.4")
|
||||
(version "2.16.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -868,7 +868,7 @@ then ported to the GNU / Linux environment.")
|
|||
version "-apache.tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yxj5wahaj87xhdi89zbk78ig77b166h464yrj5gb3lwv8mz6h9l"))))
|
||||
"0kdhwy241xsk4isbadqx6z80m8sf76da5sbmqv8qy11yr37cdd35"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -30,14 +30,14 @@
|
|||
(define-public plantuml
|
||||
(package
|
||||
(name "plantuml")
|
||||
(version "1.2019.3")
|
||||
(version "1.2020.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/plantuml/"
|
||||
version "/plantuml-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0p2mqav0qfc6kmkhb2n1vjysffnvpsx4yal68nl0yrh5vd3bnmza"))))
|
||||
"1mywv4m6v1y2wpfz9vqriw6cdq1d2md5k2vf244ldbd9s6j45467"))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
|
@ -49,7 +49,7 @@
|
|||
(substitute* "build.xml"
|
||||
(("1.6") "1.7")
|
||||
(("<attribute name=\"Class-Path\"") "<!--")
|
||||
(("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->"))
|
||||
(("ditaa0_9.jar\" />") "-->"))
|
||||
#t))
|
||||
(add-after 'delete-extra-from-classpath 'patch-usr-bin-dot
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2019 HiPhish <hiphish@posteo.de>
|
||||
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2019, 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -84,12 +85,6 @@
|
|||
#:parallel-tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-CoW
|
||||
;; Disable copy-on-write (CoW) in the build directory. Tests fail on
|
||||
;; btrfs (and possibly other CoW file systems) for unclear reasons.
|
||||
;; This needs to be run early as it only affects newly-created files.
|
||||
(lambda _
|
||||
(invoke "chattr" "-R" "+C" ".")))
|
||||
(add-after 'configure 'patch-config-files
|
||||
(lambda _
|
||||
(substitute* "runtime/tools/mve.awk"
|
||||
|
@ -134,10 +129,11 @@
|
|||
`(("libtool" ,libtool)
|
||||
|
||||
;; For tests.
|
||||
("e2fsprogs" ,e2fsprogs) ; for chattr in disable-CoW above
|
||||
("tzdata" ,tzdata-for-tests)))
|
||||
(home-page "https://www.vim.org/")
|
||||
(synopsis "Text editor based on vi")
|
||||
;; The description shares language with the vim-full package. When making
|
||||
;; changes, check if the other description also needs to be updated.
|
||||
(description
|
||||
"Vim is a highly configurable text editor built to enable efficient text
|
||||
editing. It is an improved version of the vi editor distributed with most UNIX
|
||||
|
@ -261,7 +257,21 @@ with the editor vim.")))
|
|||
("python-3" ,python)
|
||||
("ruby" ,ruby)
|
||||
("tcl" ,tcl)
|
||||
,@(package-inputs vim)))))
|
||||
,@(package-inputs vim)))
|
||||
;; The description shares language with the vim package. When making
|
||||
;; changes, check if the other description also needs to be updated.
|
||||
(description "Vim is a highly configurable text editor built to enable efficient text
|
||||
editing. It is an improved version of the vi editor distributed with most UNIX
|
||||
systems.
|
||||
|
||||
Vim is often called a \"programmer's editor,\" and so useful for programming
|
||||
that many consider it an entire IDE. It's not just for programmers, though.
|
||||
Vim is perfect for all kinds of text editing, from composing email to editing
|
||||
configuration files.
|
||||
|
||||
This package provides a version of Vim with many optional features enabled.
|
||||
It includes a graphical interface, @command{gvim}, and support for plugins
|
||||
written in the Python 3, Perl, Ruby, Tcl, and Lua programming languages.")))
|
||||
|
||||
(define-public vim-neocomplete
|
||||
(package
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org>
|
||||
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017, 2018, 2020 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2017 Petter <petter@mykolab.ch>
|
||||
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
|
||||
|
@ -7027,6 +7027,20 @@ compressed JSON header blocks.
|
|||
(base32
|
||||
"12yfsjghbaypp4w964d45ih9vs38g6anih80wbsflaxx192idlm2"))))))
|
||||
|
||||
;; 'Node' requires this newer version, to be removed on the next rebuild cycle.
|
||||
(define-public nghttp2-1.40
|
||||
(package/inherit
|
||||
nghttp2
|
||||
(version "1.40.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/nghttp2/nghttp2/"
|
||||
"releases/download/v" version "/"
|
||||
"nghttp2-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wwhwv7cvi1vxpdjwvg0kpa4jzhszclpnwrwfcw728zz53a47z09"))))))
|
||||
|
||||
(define-public hpcguix-web
|
||||
(let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508")
|
||||
(revision "4"))
|
||||
|
|
|
@ -2108,7 +2108,7 @@ libxml2 and libxslt.")
|
|||
(define-public python-xmlschema
|
||||
(package
|
||||
(name "python-xmlschema")
|
||||
(version "1.1.0")
|
||||
(version "1.1.1")
|
||||
(source (origin
|
||||
;; Unit tests are not distributed with the PyPI archive.
|
||||
(method git-fetch)
|
||||
|
@ -2118,7 +2118,7 @@ libxml2 and libxslt.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1h8321jb6q3dhlh3608y3f3sbbzfd3jg1psyirxkrm4w5xs3lbvy"))))
|
||||
"0nqhqbvp0kpd1bz11b6gpkc0mkg068mqs56ww4k5ang1cl9d8gd6"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -60,15 +60,18 @@
|
|||
;; part.
|
||||
(define* (install #:key inputs native-inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(moddir (string-append out "/lib/modules"))
|
||||
(kmod (assoc-ref (or native-inputs inputs) "kmod")))
|
||||
(moddir (string-append out "/lib/modules")))
|
||||
;; Install kernel modules
|
||||
(mkdir-p moddir)
|
||||
(invoke "make" "-C"
|
||||
(string-append (assoc-ref inputs "linux-module-builder")
|
||||
"/lib/modules/build")
|
||||
(string-append "M=" (getcwd))
|
||||
(string-append "DEPMOD=" kmod "/bin/depmod")
|
||||
;; Disable depmod because the Guix system's module directory
|
||||
;; is an union of potentially multiple packages. It is not
|
||||
;; possible to use depmod to usefully calculate a dependency
|
||||
;; graph while building only one of those packages.
|
||||
"DEPMOD=true"
|
||||
(string-append "MODULE_DIR=" moddir)
|
||||
(string-append "INSTALL_PATH=" out)
|
||||
(string-append "INSTALL_MOD_PATH=" out)
|
||||
|
|
|
@ -133,10 +133,7 @@ the @file{bin} directory."
|
|||
(symlink (string-append target "/node_modules/" modulename "/"
|
||||
value)
|
||||
(string-append binaries "/" key))))))
|
||||
binary-configuration))
|
||||
(else
|
||||
(symlink (string-append target "/node_modules/" modulename "/bin")
|
||||
binaries)))
|
||||
binary-configuration)))
|
||||
(when dependencies
|
||||
(mkdir-p
|
||||
(string-append target "/node_modules/" modulename "/node_modules"))
|
||||
|
|
|
@ -181,32 +181,69 @@ Show what and how will/would be built."
|
|||
(newline (guix-warning-port))))
|
||||
|
||||
(define %disk-space-warning
|
||||
;; The fraction (between 0 and 1) of free disk space below which a warning
|
||||
;; is emitted.
|
||||
(make-parameter (match (and=> (getenv "GUIX_DISK_SPACE_WARNING")
|
||||
string->number)
|
||||
(#f .05) ;5%
|
||||
(threshold (/ threshold 100.)))))
|
||||
;; Return a pair of absolute threshold (number of bytes) and relative
|
||||
;; threshold (fraction between 0 and 1) for the free disk space below which
|
||||
;; a warning is emitted.
|
||||
;; GUIX_DISK_SPACE_WARNING can contain both thresholds. A value in [0;100)
|
||||
;; is a relative threshold, otherwise it's absolute. The following
|
||||
;; example values are valid:
|
||||
;; - 1GiB;10% ;1 GiB absolute, and 10% relative.
|
||||
;; - 15G ;15 GiB absolute, and default relative.
|
||||
;; - 99% ;99% relative, and default absolute.
|
||||
;; - 99 ;Same.
|
||||
;; - 100 ;100 absolute, and default relative.
|
||||
(let* ((default-absolute-threshold (size->number "5GiB"))
|
||||
(default-relative-threshold 0.05)
|
||||
(percentage->float (lambda (percentage)
|
||||
(or (and=> (string->number
|
||||
(car (string-split percentage #\%)))
|
||||
(lambda (n) (/ n 100.0)))
|
||||
default-relative-threshold)))
|
||||
(size->number* (lambda (size)
|
||||
(or (false-if-exception (size->number size))
|
||||
default-absolute-threshold)))
|
||||
(absolute? (lambda (size)
|
||||
(not (or (string-suffix? "%" size)
|
||||
(false-if-exception (< (size->number size) 100)))))))
|
||||
(make-parameter
|
||||
(match (getenv "GUIX_DISK_SPACE_WARNING")
|
||||
(#f (list default-absolute-threshold
|
||||
default-relative-threshold))
|
||||
(env-string (match (string-split env-string #\;)
|
||||
((threshold)
|
||||
(if (absolute? threshold)
|
||||
(list (size->number* threshold)
|
||||
default-relative-threshold)
|
||||
(list default-absolute-threshold
|
||||
(percentage->float threshold))))
|
||||
((threshold1 threshold2)
|
||||
(if (absolute? threshold1)
|
||||
(list (size->number* threshold1)
|
||||
(percentage->float threshold2))
|
||||
(list (size->number* threshold2)
|
||||
(percentage->float threshold1))))))))))
|
||||
|
||||
(define* (warn-about-disk-space #:optional profile
|
||||
#:key
|
||||
(threshold (%disk-space-warning)))
|
||||
(thresholds (%disk-space-warning)))
|
||||
"Display a hint about 'guix gc' if less than THRESHOLD of /gnu/store is
|
||||
available."
|
||||
available.
|
||||
THRESHOLD is a pair of (ABSOLUTE-THRESHOLD RELATIVE-THRESHOLD)."
|
||||
(let* ((stats (statfs (%store-prefix)))
|
||||
(block-size (file-system-block-size stats))
|
||||
(available (* block-size (file-system-blocks-available stats)))
|
||||
(total (* block-size (file-system-block-count stats)))
|
||||
(ratio (/ available total 1.)))
|
||||
(when (< ratio threshold)
|
||||
(warning (G_ "only ~,1f% of free space available on ~a~%")
|
||||
(* ratio 100) (%store-prefix))
|
||||
(relative-threshold-in-bytes (* total (cadr thresholds)))
|
||||
(absolute-threshold-in-bytes (* 1024 1024 1024 (car thresholds))))
|
||||
(when (< available (min relative-threshold-in-bytes
|
||||
absolute-threshold-in-bytes))
|
||||
(warning (G_ "only ~,1f GiB of free space available on ~a~%")
|
||||
available (%store-prefix))
|
||||
(display-hint (format #f (G_ "Consider deleting old profile
|
||||
generations and collecting garbage, along these lines:
|
||||
|
||||
@example
|
||||
guix gc --delete-generations=1m
|
||||
@end example\n")
|
||||
profile)))))
|
||||
@end example\n"))))))
|
||||
|
||||
;;; scripts.scm ends here
|
||||
|
|
|
@ -581,15 +581,27 @@ void LocalStore::removeUnusedLinks(const GCState & state)
|
|||
#ifdef HAVE_STATX
|
||||
# define st_size stx_size
|
||||
# define st_nlink stx_nlink
|
||||
static int statx_flags = AT_SYMLINK_NOFOLLOW | AT_STATX_DONT_SYNC;
|
||||
struct statx st;
|
||||
if (statx(AT_FDCWD, path.c_str(),
|
||||
AT_SYMLINK_NOFOLLOW | AT_STATX_DONT_SYNC,
|
||||
|
||||
if (statx(AT_FDCWD, path.c_str(), statx_flags,
|
||||
STATX_SIZE | STATX_NLINK, &st) == -1) {
|
||||
if (errno == EINVAL) {
|
||||
/* Old 3.10 kernels (CentOS 7) don't support
|
||||
AT_STATX_DONT_SYNC, so try again without it. */
|
||||
statx_flags &= ~AT_STATX_DONT_SYNC;
|
||||
if (statx(AT_FDCWD, path.c_str(), statx_flags,
|
||||
STATX_SIZE | STATX_NLINK, &st) == -1)
|
||||
throw SysError(format("statting `%1%'") % path);
|
||||
} else {
|
||||
throw SysError(format("statting `%1%'") % path);
|
||||
}
|
||||
}
|
||||
#else
|
||||
struct stat st;
|
||||
if (lstat(path.c_str(), &st) == -1)
|
||||
#endif
|
||||
throw SysError(format("statting `%1%'") % path);
|
||||
#endif
|
||||
|
||||
if (st.st_nlink != 1) {
|
||||
actualSize += st.st_size;
|
||||
|
|
Reference in New Issue