Merge branch 'master' into staging
This commit is contained in:
		
						commit
						7fe962788a
					
				
					 35 changed files with 2985 additions and 305 deletions
				
			
		|  | @ -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")) | ||||
|       (sha256 | ||||
|        (base32 | ||||
|         "1wl0dawpssqwfjvr651r4wlww8hhjin8nba6xh71ks7sbypx886j")))) | ||||
|     (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 | ||||
|                 "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)))) | ||||
|  |  | |||
							
								
								
									
										305
									
								
								gnu/packages/ld-wrapper-next.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								gnu/packages/ld-wrapper-next.in
									
										
									
									
									
										Normal file
									
								
							|  | @ -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,64 +208,77 @@ compiler.  In LLVM this library is called \"compiler-rt\".") | |||
|        #:build-type "Release" | ||||
| 
 | ||||
|        #:phases (modify-phases %standard-phases | ||||
|                   (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. | ||||
|                           (substitute* "lib/Driver/ToolChain.cpp" | ||||
|                             (("getDriver\\(\\)\\.ResourceDir") | ||||
|                              (string-append "\"" compiler-rt "\""))) | ||||
| 
 | ||||
|                           ;; Make "LibDir" refer to <glibc>/lib so that it | ||||
|                           ;; uses the right dynamic linker file name. | ||||
|                           (substitute* "lib/Driver/ToolChains/Linux.cpp" | ||||
|                             (("(^[[:blank:]]+LibDir = ).*" _ declaration) | ||||
|                              (string-append declaration "\"" libc "/lib\";\n")) | ||||
| 
 | ||||
|                             ;; Make clang look for libstdc++ in the right | ||||
|                             ;; location. | ||||
|                             (("LibStdCXXIncludePathCandidates\\[\\] = \\{") | ||||
|                              (string-append | ||||
|                               "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")))) | ||||
|                          (else | ||||
|                           (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") | ||||
|                              (string-append libc | ||||
|                                             ,(glibc-dynamic-linker)))) | ||||
| 
 | ||||
|                           ;; 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" | ||||
|                                 (("TC\\.getDriver\\(\\)\\.ResourceDir") | ||||
|                                  (string-append "\"" compiler-rt "\""))) | ||||
|                   (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"))) | ||||
|                         ,@(cond | ||||
|                            ((version>=? version "6.0") | ||||
|                             `(;; Link to libclang_rt files from clang-runtime. | ||||
|                               (substitute* "lib/Driver/ToolChain.cpp" | ||||
|                                 (("getDriver\\(\\)\\.ResourceDir") | ||||
|                                  (string-append "\"" compiler-rt "\"")))) | ||||
|                                  (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"))))) | ||||
|                        #t))) | ||||
|                               ;; Make "LibDir" refer to <glibc>/lib so that it | ||||
|                               ;; uses the right dynamic linker file name. | ||||
|                               (substitute* "lib/Driver/ToolChains/Linux.cpp" | ||||
|                                 (("(^[[:blank:]]+LibDir = ).*" _ declaration) | ||||
|                                  (string-append declaration "\"" libc "/lib\";\n")) | ||||
| 
 | ||||
|                                 ;; Make clang look for libstdc++ in the right | ||||
|                                 ;; location. | ||||
|                                 (("LibStdCXXIncludePathCandidates\\[\\] = \\{") | ||||
|                                  (string-append | ||||
|                                   "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"))))) | ||||
|                            (else | ||||
|                             `((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") | ||||
|                                  (string-append libc | ||||
|                                                 ,(glibc-dynamic-linker)))) | ||||
| 
 | ||||
|                               ;; Link to libclang_rt files from clang-runtime. | ||||
|                               ;; This substitution needed slight adjustment in 3.8. | ||||
|                               ,@(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 "\""))))) | ||||
| 
 | ||||
|                               ;; 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")))))) | ||||
|                         #t))) | ||||
|                   (add-after 'install 'install-clean-up-/share/clang | ||||
|                     (lambda* (#:key outputs #:allow-other-keys) | ||||
|                       (let* ((out (assoc-ref outputs "out")) | ||||
|  | @ -553,11 +567,33 @@ output), and Binutils.") | |||
|          "0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4")))))) | ||||
| 
 | ||||
| (define-public clang-runtime-3.5 | ||||
|   (clang-runtime-from-llvm | ||||
|    llvm-3.5 | ||||
|    "1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal" | ||||
|    '("clang-runtime-asan-build-fixes.patch" | ||||
|      "clang-3.5-libsanitizer-ustat-fix.patch"))) | ||||
|   (let ((runtime (clang-runtime-from-llvm | ||||
|                   llvm-3.5 | ||||
|                   "1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal" | ||||
|                   '("clang-runtime-asan-build-fixes.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 | ||||
|  | @ -5164,24 +5164,25 @@ and as an LV2 plugin.") | |||
|    (inputs | ||||
|     `(("alsa-lib" ,alsa-lib) | ||||
|       ("jack" ,jack-1) | ||||
|       ("font-dseg", font-dseg) | ||||
|       ("ffmpeg", ffmpeg) | ||||
|       ("fftw", fftw) | ||||
|       ("fftwf", fftwf) | ||||
|       ("gettext", gettext-minimal) | ||||
|       ("glibc", glibc) | ||||
|       ("gtk+", gtk+) | ||||
|       ("font-dseg" ,font-dseg) | ||||
|       ("ffmpeg" ,ffmpeg) | ||||
|       ("fftw" ,fftw) | ||||
|       ("fftwf" ,fftwf) | ||||
|       ("gettext" ,gettext-minimal) | ||||
|       ("glibc" ,glibc) | ||||
|       ("gtk+" ,gtk+) | ||||
|       ("libcyaml" ,libcyaml) | ||||
|       ("libsamplerate" ,libsamplerate) | ||||
|       ("libsndfile" ,libsndfile) | ||||
|       ("libyaml" ,libyaml) | ||||
|       ("lilv", lilv) | ||||
|       ("xdg-utils", xdg-utils) | ||||
|       ("rubberband", rubberband))) | ||||
|       ("lilv" ,lilv) | ||||
|       ("xdg-utils" ,xdg-utils) | ||||
|       ("rubberband" ,rubberband))) | ||||
|    (native-inputs | ||||
|      `(("pkg-config", pkg-config) | ||||
|        ("help2man", help2man) | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|        ("help2man" ,help2man) | ||||
|        ("libaudec" ,libaudec) | ||||
|        ("lv2", lv2) | ||||
|        ("lv2" ,lv2) | ||||
|        ("glib" ,glib "bin"))) ;for 'glib-compile-resources' | ||||
|    (synopsis "Digital audio workstation focusing on usability") | ||||
|    (description "Zrythm is a digital audio workstation designed to be | ||||
|  |  | |||
|  | @ -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. | ||||
| ;;; | ||||
|  | @ -1600,43 +1601,43 @@ supports url redirection and retries, and also gzip and deflate decoding.") | |||
| 
 | ||||
| (define-public awscli | ||||
|   (package | ||||
|    (name "awscli") | ||||
|    (version "1.14.41") | ||||
|    (source | ||||
|     (origin | ||||
|      (method url-fetch) | ||||
|      (uri (pypi-uri name version)) | ||||
|      (sha256 | ||||
|       (base32 | ||||
|        "0sispclx263lybbk19zp1n9yhg8xxx4jddypzgi24vpjaqnsbwlc")))) | ||||
|    (build-system python-build-system) | ||||
|    (arguments | ||||
|     ;; FIXME: The 'pypi' release does not contain tests. | ||||
|     '(#:tests? #f | ||||
|       #:phases | ||||
|       (modify-phases %standard-phases | ||||
|         (add-after 'unpack 'fix-reference-to-groff | ||||
|           (lambda _ | ||||
|             (substitute* "awscli/help.py" | ||||
|               (("if not self._exists_on_path\\('groff'\\):") "") | ||||
|               (("raise ExecutableNotFoundError\\('groff'\\)") "") | ||||
|               (("cmdline = \\['groff'") | ||||
|                (string-append "cmdline = ['" (which "groff") "'"))) | ||||
|             #t))))) | ||||
|    (propagated-inputs | ||||
|     `(("python-colorama" ,python-colorama) | ||||
|       ("python-botocore" ,python-botocore) | ||||
|       ("python-s3transfer" ,python-s3transfer) | ||||
|       ("python-docutils" ,python-docutils) | ||||
|       ("python-pyyaml" ,python-pyyaml) | ||||
|       ("python-rsa" ,python-rsa))) | ||||
|    (inputs | ||||
|     `(("groff" ,groff))) | ||||
|    (home-page "https://aws.amazon.com/cli/") | ||||
|    (synopsis "Command line client for AWS") | ||||
|    (description "AWS CLI provides a unified command line interface to the | ||||
|     (name "awscli") | ||||
|     (version "1.18.6") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (pypi-uri name version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0p479mfs9r0m82a217pap8156ijwvhv6r3kqa4k267gd05wgvygm")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      ;; FIXME: The 'pypi' release does not contain tests. | ||||
|      '(#:tests? #f | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'fix-reference-to-groff | ||||
|            (lambda _ | ||||
|              (substitute* "awscli/help.py" | ||||
|                (("if not self._exists_on_path\\('groff'\\):") "") | ||||
|                (("raise ExecutableNotFoundError\\('groff'\\)") "") | ||||
|                (("cmdline = \\['groff'") | ||||
|                 (string-append "cmdline = ['" (which "groff") "'"))) | ||||
|              #t))))) | ||||
|     (propagated-inputs | ||||
|      `(("python-colorama" ,python-colorama) | ||||
|        ("python-botocore" ,python-botocore) | ||||
|        ("python-s3transfer" ,python-s3transfer) | ||||
|        ("python-docutils" ,python-docutils) | ||||
|        ("python-pyyaml" ,python-pyyaml) | ||||
|        ("python-rsa" ,python-rsa))) | ||||
|     (native-inputs | ||||
|      `(("groff" ,groff))) | ||||
|     (home-page "https://aws.amazon.com/cli/") | ||||
|     (synopsis "Command line client for AWS") | ||||
|     (description "AWS CLI provides a unified command line interface to the | ||||
| Amazon Web Services (AWS) API.") | ||||
|    (license license:asl2.0))) | ||||
|     (license license:asl2.0))) | ||||
| 
 | ||||
| (define-public python-wsgiproxy2 | ||||
|   (package | ||||
|  |  | |||
|  | @ -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, | ||||
| 		  STATX_SIZE | STATX_NLINK, &st) == -1) | ||||
| 
 | ||||
| 	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 a new issue