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") |      "77DD AD2D 97F5 31BB C0F3  C7FD DFB5 EB09 AA62 5423") | ||||||
|     ("snape" |     ("snape" | ||||||
|      "F494 72F4 7A59 00D5 C235  F212 89F9 6D48 08F3 59C7") |      "F494 72F4 7A59 00D5 C235  F212 89F9 6D48 08F3 59C7") | ||||||
|     ("snape" |  | ||||||
|      "F494 72F4 7A59 00D5 C235  F212 89F9 6D48 08F3 59C7") |  | ||||||
|     ("steap" |     ("steap" | ||||||
|      "4E26 CCE9 578E 0828 9855  BDD4 1C79 95D2 D5A3 8336") |      "4E26 CCE9 578E 0828 9855  BDD4 1C79 95D2 D5A3 8336") | ||||||
|     ("taylanub" |     ("taylanub" | ||||||
|  | @ -193,7 +191,8 @@ | ||||||
| 
 | 
 | ||||||
|     ;; https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00826.html |     ;; https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00826.html | ||||||
|     ("thomasd" |     ("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)" |     ("thomasd (old)" | ||||||
|      "A5C5 92EA 606E 7106 A6A3  BC08 98B2 1575 91E1 2B08") |      "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 |   %D%/packages/patches/xsane-tighten-default-umask.patch | ||||||
| 
 | 
 | ||||||
| MISC_DISTRO_FILES =				\
 | 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 | (define-public fluidsynth | ||||||
|   (package |   (package | ||||||
|     (name "fluidsynth") |     (name "fluidsynth") | ||||||
|     (version "2.1.0") |     (version "2.1.1") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method git-fetch) |               (method git-fetch) | ||||||
|               (uri (git-reference |               (uri (git-reference | ||||||
|  | @ -1202,7 +1202,7 @@ follower.") | ||||||
|               (file-name (git-file-name name version)) |               (file-name (git-file-name name version)) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0jhla1641rx77va4b6n4shn8srj87rpwvp170byj1bg8z8g89ji1")))) |                 "09jq04hrasidf6b5gkk4aba13fq55z3bmn7bq35rdaikz26xiij4")))) | ||||||
|     (build-system cmake-build-system) |     (build-system cmake-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      '(#:tests? #f                      ; no check target |      '(#:tests? #f                      ; no check target | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> | ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> | ||||||
| ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com> | ;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com> | ||||||
| ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> | ;;; Copyright © 2019 Ludovic Courtès <ludo@gnu.org> | ||||||
|  | ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -35,6 +36,7 @@ | ||||||
|   #:use-module (gnu packages linux) |   #:use-module (gnu packages linux) | ||||||
|   #:use-module (gnu packages maths) |   #:use-module (gnu packages maths) | ||||||
|   #:use-module (gnu packages mpi) |   #:use-module (gnu packages mpi) | ||||||
|  |   #:use-module (gnu packages perl) | ||||||
|   #:use-module (gnu packages python) |   #:use-module (gnu packages python) | ||||||
|   #:use-module (gnu packages python-science) |   #:use-module (gnu packages python-science) | ||||||
|   #:use-module (gnu packages python-xyz) |   #: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, |      "Benchmark is a library to benchmark code snippets, | ||||||
| similar to unit tests.") | similar to unit tests.") | ||||||
|     (license license:asl2.0))) |     (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.") | 1000genomes phase2 reference genome sequence (hs37d5), based on NCBI GRCh37.") | ||||||
|     (license license:artistic2.0))) |     (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 | (define-public r-bsgenome-hsapiens-ucsc-hg19-masked | ||||||
|   (package |   (package | ||||||
|     (name "r-bsgenome-hsapiens-ucsc-hg19-masked") |     (name "r-bsgenome-hsapiens-ucsc-hg19-masked") | ||||||
|  |  | ||||||
|  | @ -2272,23 +2272,23 @@ time.") | ||||||
| (define-public crossmap | (define-public crossmap | ||||||
|   (package |   (package | ||||||
|     (name "crossmap") |     (name "crossmap") | ||||||
|     (version "0.2.9") |     (version "0.3.8") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (pypi-uri "CrossMap" version)) |               (uri (pypi-uri "CrossMap" version)) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "1byhclrqnqpvc1rqkfh4jwj6yhn0x9y7jk47i0qcjlhk0pjkw92p")))) |                 "1sb2f2qbxya4fzw3yjl09vbrs8vfmw22zrygrvz004sf9gb1vkan")))) | ||||||
|     (build-system python-build-system) |     (build-system python-build-system) | ||||||
|     (arguments `(#:python ,python-2)) |  | ||||||
|     (inputs |     (inputs | ||||||
|      `(("python-bx-python" ,python2-bx-python) |      `(("python-bx-python" ,python-bx-python) | ||||||
|        ("python-numpy" ,python2-numpy) |        ("python-numpy" ,python-numpy) | ||||||
|        ("python-pysam" ,python2-pysam) |        ("python-pybigwig" ,python-pybigwig) | ||||||
|  |        ("python-pysam" ,python-pysam) | ||||||
|        ("zlib" ,zlib))) |        ("zlib" ,zlib))) | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("python-cython" ,python2-cython) |      `(("python-cython" ,python-cython) | ||||||
|        ("python-nose" ,python2-nose))) |        ("python-nose" ,python-nose))) | ||||||
|     (home-page "http://crossmap.sourceforge.net/") |     (home-page "http://crossmap.sourceforge.net/") | ||||||
|     (synopsis "Convert genome coordinates between assemblies") |     (synopsis "Convert genome coordinates between assemblies") | ||||||
|     (description |     (description | ||||||
|  | @ -2578,7 +2578,7 @@ accurately delineate genomic rearrangements throughout the genome.") | ||||||
| (define-public diamond | (define-public diamond | ||||||
|   (package |   (package | ||||||
|     (name "diamond") |     (name "diamond") | ||||||
|     (version "0.9.22") |     (version "0.9.30") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method git-fetch) |               (method git-fetch) | ||||||
|               (uri (git-reference |               (uri (git-reference | ||||||
|  | @ -2587,7 +2587,7 @@ accurately delineate genomic rearrangements throughout the genome.") | ||||||
|               (file-name (git-file-name name version)) |               (file-name (git-file-name name version)) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0bky78v79g3wmdpsd706cscckgw1v09fg8vdd0z8z0d5b97aj9zl")))) |                 "0k6f3kb6cniw11xw6763kkbs1sl0yack7xsy7q5fl5v170ssphq4")))) | ||||||
|     (build-system cmake-build-system) |     (build-system cmake-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      '(#:tests? #f ; no "check" target |      '(#:tests? #f ; no "check" target | ||||||
|  | @ -4274,19 +4274,30 @@ experiments.") | ||||||
| (define-public macs | (define-public macs | ||||||
|   (package |   (package | ||||||
|     (name "macs") |     (name "macs") | ||||||
|     (version "2.1.1.20160309") |     (version "2.2.6") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               ;; The PyPi tarball does not contain tests. | ||||||
|               (uri (pypi-uri "MACS2" version)) |               (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 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "09ixspd1vcqmz1c81ih70xs4m7qml2iy5vyx1y74zww3iy1vl210")))) |                 "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15")))) | ||||||
|     (build-system python-build-system) |     (build-system python-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:python ,python-2 ; only compatible with Python 2.7 |      `(#:phases | ||||||
|        #:tests? #f)) ; no test target |        (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 |     (inputs | ||||||
|      `(("python-numpy" ,python2-numpy))) |      `(("python-numpy" ,python-numpy))) | ||||||
|  |     (native-inputs | ||||||
|  |      `(("python-pytest" ,python-pytest))) | ||||||
|     (home-page "https://github.com/taoliu/MACS/") |     (home-page "https://github.com/taoliu/MACS/") | ||||||
|     (synopsis "Model based analysis for ChIP-Seq data") |     (synopsis "Model based analysis for ChIP-Seq data") | ||||||
|     (description |     (description | ||||||
|  | @ -4910,20 +4921,26 @@ predicts the locations of structural units in the sequences.") | ||||||
| (define-public proteinortho | (define-public proteinortho | ||||||
|   (package |   (package | ||||||
|     (name "proteinortho") |     (name "proteinortho") | ||||||
|     (version "5.16b") |     (version "6.0.14") | ||||||
|     (source |     (source (origin | ||||||
|      (origin |               (method git-fetch) | ||||||
|       (method url-fetch) |               (uri (git-reference | ||||||
|       (uri |                     (url "https://gitlab.com/paulklemm_PHD/proteinortho.git") | ||||||
|        (string-append |                     (commit (string-append "v" version)))) | ||||||
|         "http://www.bioinf.uni-leipzig.de/Software/proteinortho/proteinortho_v" |               (file-name (git-file-name name version)) | ||||||
|         version "_src.tar.gz")) |               (sha256 | ||||||
|       (sha256 |                (base32 | ||||||
|        (base32 |                 "0pmy617zy2z2w6hjqxjhf3rzikf5n3mpia80ysq8233vfr7wrzff")) | ||||||
|         "1wl0dawpssqwfjvr651r4wlww8hhjin8nba6xh71ks7sbypx886j")))) |               (modules '((guix build utils))) | ||||||
|  |               (snippet | ||||||
|  |                '(begin | ||||||
|  |                   ;; remove pre-built scripts | ||||||
|  |                   (delete-file-recursively "src/BUILD/") | ||||||
|  |                   #t)))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:test-target "test" |      `(#:test-target "test" | ||||||
|  |        #:make-flags '("CC=gcc") | ||||||
|        #:phases |        #:phases | ||||||
|        (modify-phases %standard-phases |        (modify-phases %standard-phases | ||||||
|          (replace 'configure |          (replace 'configure | ||||||
|  | @ -4941,15 +4958,23 @@ predicts the locations of structural units in the sequences.") | ||||||
|              #t)) |              #t)) | ||||||
|          (add-after 'install 'wrap-programs |          (add-after 'install 'wrap-programs | ||||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) |            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||||
|              (let* ((path (getenv "PATH")) |              (let ((path (getenv "PATH")) | ||||||
|                     (out (assoc-ref outputs "out")) |                    (out (assoc-ref outputs "out"))) | ||||||
|                     (binary (string-append out "/bin/proteinortho5.pl"))) |                (for-each (lambda (script) | ||||||
|                (wrap-program binary `("PATH" ":" prefix (,path)))) |                            (wrap-script script `("PATH" ":" prefix (,path)))) | ||||||
|  |                          (cons (string-append out "/bin/proteinortho") | ||||||
|  |                                (find-files out "\\.(pl|py)$")))) | ||||||
|              #t))))) |              #t))))) | ||||||
|     (inputs |     (inputs | ||||||
|      `(("perl" ,perl) |      `(("guile" ,guile-3.0) ; for wrap-script | ||||||
|        ("python" ,python-2) |        ("diamond" ,diamond) | ||||||
|        ("blast+" ,blast+))) |        ("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") |     (home-page "http://www.bioinf.uni-leipzig.de/Software/proteinortho") | ||||||
|     (synopsis "Detect orthologous genes across species") |     (synopsis "Detect orthologous genes across species") | ||||||
|     (description |     (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 | species.  For doing so, it compares similarities of given gene sequences and | ||||||
| clusters them to find significant groups.  The algorithm was designed to handle | 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.") | large-scale data and can be applied to hundreds of species at once.") | ||||||
|     (license license:gpl2+))) |     (license license:gpl3+))) | ||||||
| 
 | 
 | ||||||
| (define-public pyicoteo | (define-public pyicoteo | ||||||
|   (package |   (package | ||||||
|  | @ -12010,23 +12035,6 @@ graphs.  This library makes it easy to work with @file{.loom} files for | ||||||
| single-cell RNA-seq data.") | single-cell RNA-seq data.") | ||||||
|     (license license:bsd-3))) |     (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. | ;; We cannot use the latest commit because it requires Java 9. | ||||||
| (define-public java-forester | (define-public java-forester | ||||||
|   (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6") |   (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6") | ||||||
|  | @ -12770,7 +12778,7 @@ methylation and segmentation.") | ||||||
| (define-public pigx-scrnaseq | (define-public pigx-scrnaseq | ||||||
|   (package |   (package | ||||||
|     (name "pigx-scrnaseq") |     (name "pigx-scrnaseq") | ||||||
|     (version "0.0.8") |     (version "1.1.3") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/" |               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/" | ||||||
|  | @ -12778,27 +12786,21 @@ methylation and segmentation.") | ||||||
|                                   "/pigx_scrnaseq-" version ".tar.gz")) |                                   "/pigx_scrnaseq-" version ".tar.gz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0zv0sc5amivxhb95vx2gfx6l9bh7n80fh7h47dalnwxxnfvnzai4")))) |                 "0ga2jr4968qzwml6aycky4603q64lny3y7lzw6dmafch5pydl1qi")))) | ||||||
|     (build-system gnu-build-system) |     (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 |     (inputs | ||||||
|      `(("coreutils" ,coreutils) |      `(("coreutils" ,coreutils) | ||||||
|        ("perl" ,perl) |        ("perl" ,perl) | ||||||
|        ("dropseq-tools" ,dropseq-tools) |  | ||||||
|        ("fastqc" ,fastqc) |        ("fastqc" ,fastqc) | ||||||
|        ("java-picard" ,java-picard-2.10.3) ; same as for dropseq |        ("flexbar" ,flexbar) | ||||||
|        ("java" ,icedtea-8) |        ("java" ,icedtea-8) | ||||||
|  |        ("jellyfish" ,jellyfish) | ||||||
|        ("python-wrapper" ,python-wrapper) |        ("python-wrapper" ,python-wrapper) | ||||||
|        ("python-pyyaml" ,python-pyyaml) |        ("python-pyyaml" ,python-pyyaml) | ||||||
|        ("python-pandas" ,python-pandas) |        ("python-pandas" ,python-pandas) | ||||||
|        ("python-magic" ,python-magic) |        ("python-magic" ,python-magic) | ||||||
|        ("python-numpy" ,python-numpy) |        ("python-numpy" ,python-numpy) | ||||||
|        ("python-loompy" ,python-loompy-for-pigx-scrnaseq) |        ("python-loompy" ,python-loompy) | ||||||
|        ("ghc-pandoc" ,ghc-pandoc) |        ("ghc-pandoc" ,ghc-pandoc) | ||||||
|        ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) |        ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc) | ||||||
|        ("samtools" ,samtools) |        ("samtools" ,samtools) | ||||||
|  | @ -12825,6 +12827,7 @@ methylation and segmentation.") | ||||||
|        ("r-rtsne" ,r-rtsne) |        ("r-rtsne" ,r-rtsne) | ||||||
|        ("r-scater" ,r-scater) |        ("r-scater" ,r-scater) | ||||||
|        ("r-scran" ,r-scran) |        ("r-scran" ,r-scran) | ||||||
|  |        ("r-seurat" ,r-seurat) | ||||||
|        ("r-singlecellexperiment" ,r-singlecellexperiment) |        ("r-singlecellexperiment" ,r-singlecellexperiment) | ||||||
|        ("r-stringr" ,r-stringr) |        ("r-stringr" ,r-stringr) | ||||||
|        ("r-yaml" ,r-yaml))) |        ("r-yaml" ,r-yaml))) | ||||||
|  | @ -13882,7 +13885,7 @@ absolute GSEA.") | ||||||
| (define-public jamm | (define-public jamm | ||||||
|   (package |   (package | ||||||
|     (name "jamm") |     (name "jamm") | ||||||
|     (version "1.0.7.5") |     (version "1.0.7.6") | ||||||
|     (source |     (source | ||||||
|      (origin |      (origin | ||||||
|        (method git-fetch) |        (method git-fetch) | ||||||
|  | @ -13892,7 +13895,7 @@ absolute GSEA.") | ||||||
|        (file-name (git-file-name name version)) |        (file-name (git-file-name name version)) | ||||||
|        (sha256 |        (sha256 | ||||||
|         (base32 |         (base32 | ||||||
|          "0ls889jcma1ch9h21jjhnkadgszgqj41842hhcjh6cg88f85qf3i")))) |          "0bsa5mf9n9q5jz7mmacrra41l7r8rac5vgsn6wv1fb52ya58b970")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:tests? #f ; there are none |      `(#:tests? #f ; there are none | ||||||
|  |  | ||||||
|  | @ -37,7 +37,6 @@ | ||||||
|   #:use-module (gnu packages curl) |   #:use-module (gnu packages curl) | ||||||
|   #:use-module (gnu packages fontutils) |   #:use-module (gnu packages fontutils) | ||||||
|   #:use-module (gnu packages freedesktop) |   #:use-module (gnu packages freedesktop) | ||||||
|   #:use-module (gnu packages gcc) |  | ||||||
|   #:use-module (gnu packages ghostscript) |   #:use-module (gnu packages ghostscript) | ||||||
|   #:use-module (gnu packages gl) |   #:use-module (gnu packages gl) | ||||||
|   #:use-module (gnu packages glib) |   #:use-module (gnu packages glib) | ||||||
|  | @ -49,6 +48,7 @@ | ||||||
|   #:use-module (gnu packages libevent) |   #:use-module (gnu packages libevent) | ||||||
|   #:use-module (gnu packages libffi) |   #:use-module (gnu packages libffi) | ||||||
|   #:use-module (gnu packages linux) |   #:use-module (gnu packages linux) | ||||||
|  |   #:use-module (gnu packages llvm) | ||||||
|   #:use-module (gnu packages kerberos) |   #:use-module (gnu packages kerberos) | ||||||
|   #:use-module (gnu packages ninja) |   #:use-module (gnu packages ninja) | ||||||
|   #:use-module (gnu packages node) |   #:use-module (gnu packages node) | ||||||
|  | @ -70,7 +70,8 @@ | ||||||
|   #:use-module (gnu packages xml) |   #:use-module (gnu packages xml) | ||||||
|   #:use-module (gnu packages xdisorg) |   #:use-module (gnu packages xdisorg) | ||||||
|   #:use-module (gnu packages xorg) |   #: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 | (define %preserved-third-party-files | ||||||
|   '("base/third_party/cityhash" ;Expat |   '("base/third_party/cityhash" ;Expat | ||||||
|  | @ -106,10 +107,6 @@ | ||||||
|     "third_party/blink" ;BSD-3, LGPL2+ |     "third_party/blink" ;BSD-3, LGPL2+ | ||||||
|     "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC) |     "third_party/boringssl" ;OpenSSL/ISC (Google additions are ISC) | ||||||
|     "third_party/boringssl/src/third_party/fiat" ;Expat |     "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/breakpad" ;BSD-3 | ||||||
|     "third_party/brotli" ;Expat |     "third_party/brotli" ;Expat | ||||||
|     "third_party/cacheinvalidation" ;ASL2.0 |     "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/rcssmin" ;ASL2.0 | ||||||
|     "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0 |     "third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0 | ||||||
|     "third_party/catapult/third_party/polymer" ;BSD-3 |     "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/d3" ;BSD-3 | ||||||
|     "third_party/catapult/tracing/third_party/gl-matrix" ;Expat |     "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/jszip" ;Expat or GPL3 | ||||||
|     "third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat |     "third_party/catapult/tracing/third_party/mannwhitneyu" ;Expat | ||||||
|     "third_party/catapult/tracing/third_party/oboe" ;BSD-2 |     "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/catapult/tracing/third_party/pako" ;Expat | ||||||
|     "third_party/ced" ;BSD-3 |     "third_party/ced" ;BSD-3 | ||||||
|     "third_party/cld_3" ;ASL2.0 |     "third_party/cld_3" ;ASL2.0 | ||||||
|  | @ -134,6 +134,9 @@ | ||||||
|     "third_party/dav1d" ;BSD-2 |     "third_party/dav1d" ;BSD-2 | ||||||
|     "third_party/dawn" ;ASL2.0 |     "third_party/dawn" ;ASL2.0 | ||||||
|     "third_party/depot_tools/owners.py" ;BSD-3 |     "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/dom_distiller_js" ;BSD-3 | ||||||
|     "third_party/emoji-segmenter" ;ASL2.0 |     "third_party/emoji-segmenter" ;ASL2.0 | ||||||
|     "third_party/flatbuffers" ;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" ;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/vector" ;Expat | ||||||
|     "third_party/libaom/source/libaom/third_party/x86inc" ;ISC |     "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/libjingle_xmpp" ;BSD-3 | ||||||
|     "third_party/libphonenumber" ;ASL2.0 |     "third_party/libphonenumber" ;ASL2.0 | ||||||
|     "third_party/libsecret" ;LGPL2.1+ |     "third_party/libsecret" ;LGPL2.1+ | ||||||
|  | @ -181,6 +185,7 @@ | ||||||
|     "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3 |     "third_party/pdfium/third_party/bigint" ;Public domain, BSD-3 | ||||||
|     "third_party/pdfium/third_party/skia_shared" ;BSD-3 |     "third_party/pdfium/third_party/skia_shared" ;BSD-3 | ||||||
|     "third_party/pdfium/third_party/freetype/include/pstables.h" ;FreeType |     "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/pffft" ;the "FFTPACK" license, similar to BSD-3 | ||||||
|     "third_party/ply" ;BSD-3 |     "third_party/ply" ;BSD-3 | ||||||
|     "third_party/polymer" ;BSD-3 |     "third_party/polymer" ;BSD-3 | ||||||
|  | @ -194,7 +199,6 @@ | ||||||
|     "third_party/sfntly" ;ASL2.0 |     "third_party/sfntly" ;ASL2.0 | ||||||
|     "third_party/skia" ;BSD-3 |     "third_party/skia" ;BSD-3 | ||||||
|     "third_party/skia/include/third_party/skcms" ;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/skcms" ;BSD-3 | ||||||
|     "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat |     "third_party/skia/third_party/vulkanmemoryallocator" ;BSD-3, Expat | ||||||
|     "third_party/smhasher" ;Expat, public domain |     "third_party/smhasher" ;Expat, public domain | ||||||
|  | @ -243,9 +247,9 @@ from forcing GEXP-PROMISE." | ||||||
|                       #:system system |                       #:system system | ||||||
|                       #:guile-for-build guile))) |                       #:guile-for-build guile))) | ||||||
| 
 | 
 | ||||||
| (define %chromium-version "79.0.3945.130") | (define %chromium-version "80.0.3987.122") | ||||||
| (define %ungoogled-revision "e2fae994d786b6716fb473a47b0c880bcfdc2497") | (define %ungoogled-revision "6056988937ebc32f14293809487dbaaa65939834") | ||||||
| (define %debian-revision "debian/79.0.3945.130-2") | (define %debian-revision "debian/80.0.3987.116-1") | ||||||
| (define package-revision "0") | (define package-revision "0") | ||||||
| (define %package-version (string-append %chromium-version "-" | (define %package-version (string-append %chromium-version "-" | ||||||
|                                         package-revision "." |                                         package-revision "." | ||||||
|  | @ -259,18 +263,21 @@ from forcing GEXP-PROMISE." | ||||||
|                         %chromium-version ".tar.xz")) |                         %chromium-version ".tar.xz")) | ||||||
|     (sha256 |     (sha256 | ||||||
|      (base32 |      (base32 | ||||||
|       "183vz3lf1588cr9s5vlnj65qvbmz36s8cg8k7dvr64cxmcqk86an")))) |       "0wr487drgd030d7p84rdz1cys0c87wbgh2qg3d7qd98gqbfcpss8")))) | ||||||
| 
 | 
 | ||||||
| (define %ungoogled-origin | (define %ungoogled-origin | ||||||
|   (origin |   (origin | ||||||
|     (method git-fetch) |     (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))) |                         (commit %ungoogled-revision))) | ||||||
|     (file-name (git-file-name "ungoogled-chromium" |     (file-name (git-file-name "ungoogled-chromium" | ||||||
|                               (string-take %ungoogled-revision 7))) |                               (string-take %ungoogled-revision 7))) | ||||||
|     (sha256 |     (sha256 | ||||||
|      (base32 |      (base32 | ||||||
|       "15vmc07iba1zmzn4j7c5n2hyvyxzwwf9hc3kyym0m4jajlsyxr5f")))) |       "0s4bfj5lr49hknb6d7vp3zah70w9sq5cdhhlyihnl7f9jlrrnwsi")))) | ||||||
| 
 | 
 | ||||||
| (define %debian-origin | (define %debian-origin | ||||||
|   (origin |   (origin | ||||||
|  | @ -284,7 +291,7 @@ from forcing GEXP-PROMISE." | ||||||
|                                 (_ (string-take %debian-revision 7))))) |                                 (_ (string-take %debian-revision 7))))) | ||||||
|     (sha256 |     (sha256 | ||||||
|      (base32 |      (base32 | ||||||
|       "1rbzxcwfp7v0c6rkvn9jl9by7p363cnbdyqazwiak1z03kmw3nkz")))) |       "1cc5sp566dd8f2grgr770xwbxgxf58dk1w7q3s8pmv4js5h3pwq8")))) | ||||||
| 
 | 
 | ||||||
| ;; This is a "computed" origin that does the following: | ;; This is a "computed" origin that does the following: | ||||||
| ;; *) Runs the Ungoogled scripts on a pristine Chromium tarball. | ;; *) Runs the Ungoogled scripts on a pristine Chromium tarball. | ||||||
|  | @ -344,7 +351,7 @@ from forcing GEXP-PROMISE." | ||||||
| 
 | 
 | ||||||
|                    (with-directory-excursion chromium-dir |                    (with-directory-excursion chromium-dir | ||||||
| 
 | 
 | ||||||
|                      (format #t "applying Debian patches...~%") |                      (format #t "Applying Debian patches...~%") | ||||||
|                      (force-output) |                      (force-output) | ||||||
|                      (let* ((debian  #+debian-source) |                      (let* ((debian  #+debian-source) | ||||||
|                             (patches (string-append debian "/debian/patches")) |                             (patches (string-append debian "/debian/patches")) | ||||||
|  | @ -423,6 +430,18 @@ from forcing GEXP-PROMISE." | ||||||
|         `(cons "--enable-custom-modes" |         `(cons "--enable-custom-modes" | ||||||
|                ,flags)))))) |                ,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 | (define-public ungoogled-chromium | ||||||
|   (package |   (package | ||||||
|     (name "ungoogled-chromium") |     (name "ungoogled-chromium") | ||||||
|  | @ -446,8 +465,10 @@ from forcing GEXP-PROMISE." | ||||||
|        ;; directory for an exhaustive list of supported flags. |        ;; directory for an exhaustive list of supported flags. | ||||||
|        ;; (Note: The 'configure' phase will do that for you.) |        ;; (Note: The 'configure' phase will do that for you.) | ||||||
|        (list "is_debug=false" |        (list "is_debug=false" | ||||||
|  |              "is_cfi=false" | ||||||
|              "use_gold=false" |              "use_gold=false" | ||||||
|              "use_lld=false" |              "use_lld=false" | ||||||
|  |              "clang_use_chrome_plugins=false" | ||||||
|              "linux_use_bundled_binutils=false" |              "linux_use_bundled_binutils=false" | ||||||
|              "use_custom_libcxx=false" |              "use_custom_libcxx=false" | ||||||
|              "use_sysroot=false" |              "use_sysroot=false" | ||||||
|  | @ -477,18 +498,6 @@ from forcing GEXP-PROMISE." | ||||||
|              ;; friends from the environment. |              ;; friends from the environment. | ||||||
|              "custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" |              "custom_toolchain=\"//build/toolchain/linux/unbundle:default\"" | ||||||
|              "host_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. |              ;; Prefer system libraries. | ||||||
|              "use_system_freetype=true" |              "use_system_freetype=true" | ||||||
|  | @ -584,6 +593,10 @@ from forcing GEXP-PROMISE." | ||||||
|              (substitute* "third_party/webrtc/rtc_base/strings/json.h" |              (substitute* "third_party/webrtc/rtc_base/strings/json.h" | ||||||
|                (("#include \"third_party/jsoncpp/") "#include \"json/")) |                (("#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" |              (substitute* '("components/viz/common/gpu/vulkan_context_provider.h" | ||||||
|                             "components/viz/common/resources/resource_format_utils.h") |                             "components/viz/common/resources/resource_format_utils.h") | ||||||
|                (("third_party/vulkan/include/") "")) |                (("third_party/vulkan/include/") "")) | ||||||
|  | @ -636,14 +649,19 @@ from forcing GEXP-PROMISE." | ||||||
| 
 | 
 | ||||||
|              ;; Make sure the right build tools are used. |              ;; Make sure the right build tools are used. | ||||||
|              (setenv "AR" "ar") (setenv "NM" "nm") |              (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") |              (setenv "CXXFLAGS" "-fno-delete-null-pointer-checks") | ||||||
| 
 | 
 | ||||||
|              ;; TODO: pre-compile instead. Avoids a race condition. |              ;; TODO: pre-compile instead. Avoids a race condition. | ||||||
|              (setenv "PYTHONDONTWRITEBYTECODE" "1") |              (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. |              ;; XXX: How portable is this. | ||||||
|              (mkdir-p "third_party/node/linux/node-linux-x64") |              (mkdir-p "third_party/node/linux/node-linux-x64") | ||||||
|              (symlink (string-append (assoc-ref inputs "node") "/bin") |              (symlink (string-append (assoc-ref inputs "node") "/bin") | ||||||
|  | @ -748,9 +766,10 @@ from forcing GEXP-PROMISE." | ||||||
|                #t)))))) |                #t)))))) | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("bison" ,bison) |      `(("bison" ,bison) | ||||||
|        ("gcc" ,gcc-8) |        ("clang" ,clang-9) | ||||||
|        ("gn" ,gn) |        ("gn" ,gn) | ||||||
|        ("gperf" ,gperf) |        ("gperf" ,gperf) | ||||||
|  |        ("ld-wrapper" ,ld-wrapper-next) | ||||||
|        ("ninja" ,ninja) |        ("ninja" ,ninja) | ||||||
|        ("node" ,node) |        ("node" ,node) | ||||||
|        ("pkg-config" ,pkg-config) |        ("pkg-config" ,pkg-config) | ||||||
|  | @ -852,6 +871,16 @@ disabled in order to protect the users privacy.") | ||||||
|        ,@(package-inputs ungoogled-chromium))) |        ,@(package-inputs ungoogled-chromium))) | ||||||
|     (arguments |     (arguments | ||||||
|      (substitute-keyword-arguments (package-arguments ungoogled-chromium) |      (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) |        ((#:configure-flags flags) | ||||||
|         `(append (list "use_ozone=true" |         `(append (list "use_ozone=true" | ||||||
|                        "ozone_platform_wayland=true" |                        "ozone_platform_wayland=true" | ||||||
|  |  | ||||||
|  | @ -1629,18 +1629,19 @@ recreates the stored directory structure by default.") | ||||||
| (define-public libzip | (define-public libzip | ||||||
|   (package |   (package | ||||||
|     (name "libzip") |     (name "libzip") | ||||||
|     (version "1.5.2") |     (version "1.6.1") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append |               (uri (string-append | ||||||
|                     "https://libzip.org/download/libzip-" version ".tar.xz")) |                     "https://libzip.org/download/libzip-" version ".tar.xz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "1d53shcy7nvls5db573bbdlm25lfz1iw2zshng5f00cssi5lvpmk")))) |                 "0h9nsgkw0dk4srsvmz6xy6f9l4h815xn07j8h40l8gqvcxxaqpbh")))) | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("perl" ,perl))) |      `(("perl" ,perl))) | ||||||
|     (inputs |     (inputs | ||||||
|      `(("gnutls" ,gnutls) |      `(("gnutls" ,gnutls) | ||||||
|  |        ("liblzma" ,xz) | ||||||
|        ("openssl" ,openssl) |        ("openssl" ,openssl) | ||||||
|        ("zlib" ,zlib))) |        ("zlib" ,zlib))) | ||||||
|     (build-system cmake-build-system) |     (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 | providing tooltips with information about each cell and enabling zooming into | ||||||
| interesting features. iheatmapr uses the plotly library for interactivity.") | interesting features. iheatmapr uses the plotly library for interactivity.") | ||||||
|     (license license:expat))) |     (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 | ;;; GNU Guix --- Functional package management for GNU | ||||||
| ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org> | ;;; 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. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -29,7 +29,7 @@ | ||||||
| (define-public datamash | (define-public datamash | ||||||
|   (package |   (package | ||||||
|     (name "datamash") |     (name "datamash") | ||||||
|     (version "1.5") |     (version "1.6") | ||||||
|     (source |     (source | ||||||
|      (origin |      (origin | ||||||
|       (method url-fetch) |       (method url-fetch) | ||||||
|  | @ -37,7 +37,7 @@ | ||||||
|                           version ".tar.gz")) |                           version ".tar.gz")) | ||||||
|       (sha256 |       (sha256 | ||||||
|        (base32 |        (base32 | ||||||
|         "1b91pbdarnfmbhid8aa2f50k0fln8n7pg62782b4y0jlzvaljqi2")))) |         "1jvqxcyh0aghnqh3m2rk5av1x0038flcmfzd493vasv1k69vgfdr")))) | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("which" ,which)                 ;for tests |      `(("which" ,which)                 ;for tests | ||||||
|        ("perl" ,perl)))                 ;for help2man |        ("perl" ,perl)))                 ;for help2man | ||||||
|  |  | ||||||
|  | @ -59,6 +59,7 @@ | ||||||
| ;;; Copyright © 2019 David Wilson <david@daviwil.com> | ;;; Copyright © 2019 David Wilson <david@daviwil.com> | ||||||
| ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> | ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> | ||||||
| ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> | ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> | ||||||
|  | ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -165,7 +166,7 @@ | ||||||
| (define-public emacs-geiser | (define-public emacs-geiser | ||||||
|   (package |   (package | ||||||
|     (name "emacs-geiser") |     (name "emacs-geiser") | ||||||
|     (version "0.11") |     (version "0.11.2") | ||||||
|     (source (origin |     (source (origin | ||||||
|              (method git-fetch) |              (method git-fetch) | ||||||
|              (uri (git-reference |              (uri (git-reference | ||||||
|  | @ -174,7 +175,7 @@ | ||||||
|              (file-name (git-file-name name version)) |              (file-name (git-file-name name version)) | ||||||
|              (sha256 |              (sha256 | ||||||
|               (base32 |               (base32 | ||||||
|                "0fb2h984hn7bnyiziplp7kgk29zdzc9yainsv0k1li436irlp9dd")))) |                "1khi1bghsjx6cs5acizmlbw9z19s4qycnji9krdbn42cbpv0rysv")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      '(#:phases |      '(#:phases | ||||||
|  | @ -19360,7 +19361,7 @@ with passwords for paths matching regexps.") | ||||||
|      `(("emacs-ivy" ,emacs-ivy))) |      `(("emacs-ivy" ,emacs-ivy))) | ||||||
|     (home-page "https://github.com/redguardtoo/eacl") |     (home-page "https://github.com/redguardtoo/eacl") | ||||||
|     (synopsis "Auto-complete lines by using @code{grep} on a project") |     (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.") | and multiple lines of code in a project.") | ||||||
|     (license license:gpl3+))) |     (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") |      "https://github.com/elixir-editors/emacs-elixir") | ||||||
|     (synopsis "Major mode for editing Elixir files") |     (synopsis "Major mode for editing Elixir files") | ||||||
|     (description |     (description | ||||||
|      "Elixir-Mode Provides font-locking, indentation and navigation support |      "Elixir-Mode provides font-locking, indentation and navigation support | ||||||
|  for the Elixir programming language.") |  for the Elixir programming language.") | ||||||
|     (license license:gpl3+))) |     (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 | one file per value.  This makes it easy to delete or remove unused | ||||||
| variables.") | variables.") | ||||||
|     (license license:gpl3+))) |     (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 | (define-public font-fantasque-sans | ||||||
|   (package |   (package | ||||||
|     (name "font-fantasque-sans") |     (name "font-fantasque-sans") | ||||||
|     (version "1.7.2") |     (version "1.8.0") | ||||||
|     (source |     (source | ||||||
|      (origin |      (origin | ||||||
|        (method git-fetch) |        (method git-fetch) | ||||||
|  | @ -790,26 +790,27 @@ It contains the following fonts and styles: | ||||||
|              (commit (string-append "v" version)))) |              (commit (string-append "v" version)))) | ||||||
|        (file-name (git-file-name name version)) |        (file-name (git-file-name name version)) | ||||||
|        (sha256 |        (sha256 | ||||||
|         (base32 |         (base32 "17l18488qyl9gdj80r8pcym3gp3jkgsdikwalnrp5rgvwidqx507")))) | ||||||
|          "1gjranq7qf20rfxnpxsckv1hl35nzsal0rjs475nhfbpqy5wmly6")))) |  | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (native-inputs |     (native-inputs | ||||||
|      `(("ttfautohint" ,ttfautohint) |      `(("ttfautohint" ,ttfautohint) | ||||||
|        ("woff-tools" ,woff-tools) |        ("woff-tools" ,woff-tools) | ||||||
|        ("fontforge" ,fontforge) |        ("fontforge" ,fontforge) | ||||||
|        ("woff2" ,woff2) |        ("woff2" ,woff2) | ||||||
|        ("ttf2eot" ,ttf2eot) |  | ||||||
|        ("zip" ,zip))) |        ("zip" ,zip))) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:tests? #f                 ;test target intended for visual inspection |      `(#:tests? #f                 ;test target intended for visual inspection | ||||||
|        #:phases (modify-phases %standard-phases |        #:phases (modify-phases %standard-phases | ||||||
|                   (delete 'configure)   ;no configuration |                   (delete 'configure)   ;no configuration | ||||||
|                   (add-before 'build 'xrange->range |                   (add-before 'build 'support-python@3 | ||||||
|                     ;; Rather than use a python2 fontforge, just replace the |                     ;; Rather than use a Python 2 fontforge, replace Python-2- | ||||||
|                     ;; offending function. |                     ;; specific code with a passable Python 3 equivalent. | ||||||
|                     (lambda _ |                     (lambda _ | ||||||
|                       (substitute* "Scripts/fontbuilder.py" |                       (substitute* "Scripts/fontbuilder.py" | ||||||
|                         (("xrange") "range")) |                         (("xrange") "range")) | ||||||
|  |                       (substitute* "Scripts/features.py" | ||||||
|  |                         (("f\\.write\\(fea_code\\)") | ||||||
|  |                          "f.write(str.encode(fea_code))")) | ||||||
|                       #t)) |                       #t)) | ||||||
|                   (replace 'install |                   (replace 'install | ||||||
|                     ;; 'make install' wants to install to ~/.fonts, install to |                     ;; 'make install' wants to install to ~/.fonts, install to | ||||||
|  |  | ||||||
|  | @ -19,6 +19,7 @@ | ||||||
| ;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com> | ;;; Copyright © 2019 Jethro Cao <jethrocao@gmail.com> | ||||||
| ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> | ||||||
| ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> | ;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si> | ||||||
|  | ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -88,6 +89,7 @@ | ||||||
|   #:use-module (gnu packages sphinx) |   #:use-module (gnu packages sphinx) | ||||||
|   #:use-module (gnu packages stb) |   #:use-module (gnu packages stb) | ||||||
|   #:use-module (gnu packages texinfo) |   #:use-module (gnu packages texinfo) | ||||||
|  |   #:use-module (gnu packages textutils) | ||||||
|   #:use-module (gnu packages tls) |   #:use-module (gnu packages tls) | ||||||
|   #:use-module (gnu packages video) |   #:use-module (gnu packages video) | ||||||
|   #:use-module (gnu packages web) |   #: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 |     (description "Chipmunk is a simple, lightweight, fast and portable 2D | ||||||
| rigid body physics library written in C.") | rigid body physics library written in C.") | ||||||
|     (license license:expat))) |     (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 Pierre-Antoine Rouby <contact@parouby.fr> | ||||||
| ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> | ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> | ||||||
| ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> | ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> | ||||||
|  | ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; 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 | SNG is implemented by a compiler/decompiler called sng that | ||||||
| losslessly translates between SNG and PNG.") | losslessly translates between SNG and PNG.") | ||||||
|     (license license:zlib))) |     (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, 2017 Mark H Weaver <mhw@netris.org> | ||||||
| ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> | ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> | ||||||
| ;;; Copyright © 2016 David Thompson <davet@gnu.org> | ;;; 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 © 2017 Efraim Flashner <efraim@flashner.co.il> | ||||||
| ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | ||||||
| ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> | ;;; 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'. |     ;; details.  Documentation is CC-BY 4.0 as of 1.12.0; see 'LICENSE-docs'. | ||||||
|     (license (list expat cc-by4.0)))) |     (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 | (define-public perl-anyevent | ||||||
|   (package |   (package | ||||||
|     (name "perl-anyevent") |     (name "perl-anyevent") | ||||||
|  |  | ||||||
|  | @ -51,6 +51,7 @@ | ||||||
|   #:use-module (guix build-system trivial) |   #:use-module (guix build-system trivial) | ||||||
|   #:use-module (gnu packages c) |   #:use-module (gnu packages c) | ||||||
|   #:use-module (gnu packages compression) |   #:use-module (gnu packages compression) | ||||||
|  |   #:use-module (gnu packages databases) | ||||||
|   #:use-module (gnu packages glib) |   #:use-module (gnu packages glib) | ||||||
|   #:use-module (gnu packages gtk) |   #:use-module (gnu packages gtk) | ||||||
|   #:use-module (gnu packages imagemagick) |   #:use-module (gnu packages imagemagick) | ||||||
|  | @ -10718,3 +10719,234 @@ approach to templating.") | ||||||
| 
 | 
 | ||||||
| (define-public ecl-lquery | (define-public ecl-lquery | ||||||
|   (sbcl-package->ecl-package sbcl-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 Mark H Weaver <mhw@netris.org> | ||||||
| ;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> | ;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> | ||||||
| ;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> | ;;; 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 © 2017 Roel Janssen <roel@gnu.org> | ||||||
| ;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com> | ;;; Copyright © 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com> | ||||||
| ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> | ||||||
|  | @ -48,6 +48,7 @@ | ||||||
|   #:use-module (gnu packages compression) |   #:use-module (gnu packages compression) | ||||||
|   #:use-module (gnu packages libffi) |   #:use-module (gnu packages libffi) | ||||||
|   #:use-module (gnu packages mpi) |   #:use-module (gnu packages mpi) | ||||||
|  |   #:use-module (gnu packages onc-rpc) | ||||||
|   #:use-module (gnu packages perl) |   #:use-module (gnu packages perl) | ||||||
|   #:use-module (gnu packages pkg-config) |   #:use-module (gnu packages pkg-config) | ||||||
|   #:use-module (gnu packages python) |   #:use-module (gnu packages python) | ||||||
|  | @ -207,64 +208,77 @@ compiler.  In LLVM this library is called \"compiler-rt\".") | ||||||
|        #:build-type "Release" |        #:build-type "Release" | ||||||
| 
 | 
 | ||||||
|        #:phases (modify-phases %standard-phases |        #:phases (modify-phases %standard-phases | ||||||
|                   (add-after |                   (add-after 'unpack 'add-missing-triplets | ||||||
|                    'unpack 'set-glibc-file-names |                     (lambda _ | ||||||
|                    (lambda* (#:key inputs #:allow-other-keys) |                       ;; Clang iterates through known triplets to search for | ||||||
|                      (let ((libc (assoc-ref inputs "libc")) |                       ;; GCC's headers, but does not recognize some of the | ||||||
|                            (compiler-rt (assoc-ref inputs "clang-runtime")) |                       ;; triplets that are used in Guix. | ||||||
|                            (gcc (assoc-ref inputs "gcc")) |                       (substitute* ,@(if (version>=? version "6.0") | ||||||
|                            (version |                                          '("lib/Driver/ToolChains/Gnu.cpp") | ||||||
|                             (string->number |                                          '("lib/Driver/ToolChains.cpp")) | ||||||
|                              ,(version-major (package-version clang-runtime))))) |                         (("\"aarch64-linux-gnu\"," all) | ||||||
|                        (cond |                          (string-append "\"aarch64-unknown-linux-gnu\", " | ||||||
|                          ((> version 3) |                                         all)) | ||||||
|                           ;; Link to libclang_rt files from clang-runtime. |                         (("\"arm-linux-gnueabihf\"," all) | ||||||
|                           (substitute* "lib/Driver/ToolChain.cpp" |                          (string-append all | ||||||
|                             (("getDriver\\(\\)\\.ResourceDir") |                                         " \"arm-unknown-linux-gnueabihf\",")) | ||||||
|                              (string-append "\"" compiler-rt "\""))) |                         (("\"i686-pc-linux-gnu\"," all) | ||||||
| 
 |                          (string-append "\"i686-unknown-linux-gnu\", " | ||||||
|                           ;; Make "LibDir" refer to <glibc>/lib so that it |                                         all))) | ||||||
|                           ;; uses the right dynamic linker file name. |                       #t)) | ||||||
|                           (substitute* "lib/Driver/ToolChains/Linux.cpp" |                   (add-after 'unpack 'set-glibc-file-names | ||||||
|                             (("(^[[:blank:]]+LibDir = ).*" _ declaration) |                     (lambda* (#:key inputs #:allow-other-keys) | ||||||
|                              (string-append declaration "\"" libc "/lib\";\n")) |                       (let ((libc (assoc-ref inputs "libc")) | ||||||
| 
 |                             (compiler-rt (assoc-ref inputs "clang-runtime")) | ||||||
|                             ;; Make clang look for libstdc++ in the right |                             (gcc (assoc-ref inputs "gcc"))) | ||||||
|                             ;; location. |                         ,@(cond | ||||||
|                             (("LibStdCXXIncludePathCandidates\\[\\] = \\{") |                            ((version>=? version "6.0") | ||||||
|                              (string-append |                             `(;; Link to libclang_rt files from clang-runtime. | ||||||
|                               "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 "\""))) |  | ||||||
|                               (substitute* "lib/Driver/ToolChain.cpp" |                               (substitute* "lib/Driver/ToolChain.cpp" | ||||||
|                                 (("getDriver\\(\\)\\.ResourceDir") |                                 (("getDriver\\(\\)\\.ResourceDir") | ||||||
|                                  (string-append "\"" compiler-rt "\"")))) |                                  (string-append "\"" compiler-rt "\""))) | ||||||
| 
 | 
 | ||||||
|                           ;; Make sure libc's libdir is on the search path, to |                               ;; Make "LibDir" refer to <glibc>/lib so that it | ||||||
|                           ;; allow crt1.o & co. to be found. |                               ;; uses the right dynamic linker file name. | ||||||
|                           (substitute* "lib/Driver/ToolChains.cpp" |                               (substitute* "lib/Driver/ToolChains/Linux.cpp" | ||||||
|                             (("@GLIBC_LIBDIR@") |                                 (("(^[[:blank:]]+LibDir = ).*" _ declaration) | ||||||
|                              (string-append libc "/lib"))))) |                                  (string-append declaration "\"" libc "/lib\";\n")) | ||||||
|                        #t))) | 
 | ||||||
|  |                                 ;; 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 |                   (add-after 'install 'install-clean-up-/share/clang | ||||||
|                     (lambda* (#:key outputs #:allow-other-keys) |                     (lambda* (#:key outputs #:allow-other-keys) | ||||||
|                       (let* ((out (assoc-ref outputs "out")) |                       (let* ((out (assoc-ref outputs "out")) | ||||||
|  | @ -553,11 +567,33 @@ output), and Binutils.") | ||||||
|          "0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4")))))) |          "0xf5q17kkxsrm2gsi93h4pwlv663kji73r2g4asb97klsmb626a4")))))) | ||||||
| 
 | 
 | ||||||
| (define-public clang-runtime-3.5 | (define-public clang-runtime-3.5 | ||||||
|   (clang-runtime-from-llvm |   (let ((runtime (clang-runtime-from-llvm | ||||||
|    llvm-3.5 |                   llvm-3.5 | ||||||
|    "1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal" |                   "1hsdnzzdr5kglz6fnv3lcsjs222zjsy14y8ax9dy6zqysanplbal" | ||||||
|    '("clang-runtime-asan-build-fixes.patch" |                   '("clang-runtime-asan-build-fixes.patch" | ||||||
|      "clang-3.5-libsanitizer-ustat-fix.patch"))) |                     "clang-3.5-libsanitizer-ustat-fix.patch")))) | ||||||
|  |     (package | ||||||
|  |       (inherit runtime) | ||||||
|  |       (arguments | ||||||
|  |        (substitute-keyword-arguments (package-arguments runtime) | ||||||
|  |          ((#:phases phases '%standard-phases) | ||||||
|  |           `(modify-phases ,phases | ||||||
|  |              ;; glibc no longer includes rpc/xdr.h, so we use the headers from | ||||||
|  |              ;; libtirpc. | ||||||
|  |              (add-after 'unpack 'find-rpc-includes | ||||||
|  |                (lambda* (#:key inputs #:allow-other-keys) | ||||||
|  |                  (setenv "CPATH" | ||||||
|  |                          (string-append (assoc-ref inputs "libtirpc") | ||||||
|  |                                         "/include/tirpc/:" | ||||||
|  |                                         (or (getenv "CPATH") ""))) | ||||||
|  |                  (setenv "CPLUS_INCLUDE_PATH" | ||||||
|  |                          (string-append (assoc-ref inputs "libtirpc") | ||||||
|  |                                         "/include/tirpc/:" | ||||||
|  |                                         (or (getenv "CPLUS_INCLUDE_PATH") ""))) | ||||||
|  |                  #t)))))) | ||||||
|  |       (inputs | ||||||
|  |        `(("libtirpc" ,libtirpc) | ||||||
|  |          ("llvm" ,llvm-3.5)))))) | ||||||
| 
 | 
 | ||||||
| (define-public clang-3.5 | (define-public clang-3.5 | ||||||
|   (clang-from-llvm llvm-3.5 clang-runtime-3.5 |   (clang-from-llvm llvm-3.5 clang-runtime-3.5 | ||||||
|  |  | ||||||
|  | @ -5138,7 +5138,7 @@ and as an LV2 plugin.") | ||||||
| (define-public zrythm | (define-public zrythm | ||||||
|   (package |   (package | ||||||
|     (name "zrythm") |     (name "zrythm") | ||||||
|     (version "0.7.474") |     (version "0.7.573") | ||||||
|     (source |     (source | ||||||
|       (origin |       (origin | ||||||
|         (method url-fetch) |         (method url-fetch) | ||||||
|  | @ -5146,7 +5146,7 @@ and as an LV2 plugin.") | ||||||
|                             version ".tar.xz")) |                             version ".tar.xz")) | ||||||
|         (sha256 |         (sha256 | ||||||
|           (base32 |           (base32 | ||||||
|             "0qq9v8y27zhamcb7nq7pl76874ws8x8cxhp5r685b8binvl9p0az")))) |             "075gq478xbzz5ql4fsrgfzhgxi7z26k6034lhlkmm0klfcb8j9mg")))) | ||||||
|    (build-system meson-build-system) |    (build-system meson-build-system) | ||||||
|    (arguments |    (arguments | ||||||
|     `(#:glib-or-gtk? #t |     `(#:glib-or-gtk? #t | ||||||
|  | @ -5164,24 +5164,25 @@ and as an LV2 plugin.") | ||||||
|    (inputs |    (inputs | ||||||
|     `(("alsa-lib" ,alsa-lib) |     `(("alsa-lib" ,alsa-lib) | ||||||
|       ("jack" ,jack-1) |       ("jack" ,jack-1) | ||||||
|       ("font-dseg", font-dseg) |       ("font-dseg" ,font-dseg) | ||||||
|       ("ffmpeg", ffmpeg) |       ("ffmpeg" ,ffmpeg) | ||||||
|       ("fftw", fftw) |       ("fftw" ,fftw) | ||||||
|       ("fftwf", fftwf) |       ("fftwf" ,fftwf) | ||||||
|       ("gettext", gettext-minimal) |       ("gettext" ,gettext-minimal) | ||||||
|       ("glibc", glibc) |       ("glibc" ,glibc) | ||||||
|       ("gtk+", gtk+) |       ("gtk+" ,gtk+) | ||||||
|  |       ("libcyaml" ,libcyaml) | ||||||
|       ("libsamplerate" ,libsamplerate) |       ("libsamplerate" ,libsamplerate) | ||||||
|       ("libsndfile" ,libsndfile) |       ("libsndfile" ,libsndfile) | ||||||
|       ("libyaml" ,libyaml) |       ("libyaml" ,libyaml) | ||||||
|       ("lilv", lilv) |       ("lilv" ,lilv) | ||||||
|       ("xdg-utils", xdg-utils) |       ("xdg-utils" ,xdg-utils) | ||||||
|       ("rubberband", rubberband))) |       ("rubberband" ,rubberband))) | ||||||
|    (native-inputs |    (native-inputs | ||||||
|      `(("pkg-config", pkg-config) |      `(("pkg-config" ,pkg-config) | ||||||
|        ("help2man", help2man) |        ("help2man" ,help2man) | ||||||
|        ("libaudec" ,libaudec) |        ("libaudec" ,libaudec) | ||||||
|        ("lv2", lv2) |        ("lv2" ,lv2) | ||||||
|        ("glib" ,glib "bin"))) ;for 'glib-compile-resources' |        ("glib" ,glib "bin"))) ;for 'glib-compile-resources' | ||||||
|    (synopsis "Digital audio workstation focusing on usability") |    (synopsis "Digital audio workstation focusing on usability") | ||||||
|    (description "Zrythm is a digital audio workstation designed to be |    (description "Zrythm is a digital audio workstation designed to be | ||||||
|  |  | ||||||
|  | @ -28,14 +28,14 @@ | ||||||
| (define-public musl | (define-public musl | ||||||
|   (package |   (package | ||||||
|     (name "musl") |     (name "musl") | ||||||
|     (version "1.1.24") |     (version "1.2.0") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append "https://www.musl-libc.org/releases/" |               (uri (string-append "https://www.musl-libc.org/releases/" | ||||||
|                                   "musl-" version ".tar.gz")) |                                   "musl-" version ".tar.gz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "18r2a00k82hz0mqdvgm7crzc7305l36109c0j9yjmkxj2alcjw0k")))) |                 "1s6lix02k1ijm4nmhzpmwzk5w6xfkhn70nvvk8zjs51r24cpppn6")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:tests? #f                      ; musl has no tests |      `(#:tests? #f                      ; musl has no tests | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ | ||||||
| ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> | ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> | ||||||
| ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> | ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> | ||||||
| ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> | ;;; 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. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -45,14 +45,14 @@ | ||||||
| (define-public node | (define-public node | ||||||
|   (package |   (package | ||||||
|     (name "node") |     (name "node") | ||||||
|     (version "10.16.0") |     (version "10.19.0") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append "https://nodejs.org/dist/v" version |               (uri (string-append "https://nodejs.org/dist/v" version | ||||||
|                                   "/node-v" version ".tar.xz")) |                                   "/node-v" version ".tar.xz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0236jlb1hxhzqjlmmlxipcycrndiq92c8434iyy7zshh3n4pzqqq")) |                 "0sginvcsf7lrlzsnpahj4bj1f673wfvby8kaxgvzlrbb7sy229v2")) | ||||||
|               (modules '((guix build utils))) |               (modules '((guix build utils))) | ||||||
|               (snippet |               (snippet | ||||||
|                `(begin |                `(begin | ||||||
|  | @ -74,8 +74,7 @@ | ||||||
|                   #t)))) |                   #t)))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      ;; TODO: Purge the bundled copies from the source. |      `(#:configure-flags '("--shared-cares" | ||||||
|      '(#:configure-flags '("--shared-cares" |  | ||||||
|                            "--shared-http-parser" |                            "--shared-http-parser" | ||||||
|                            "--shared-libuv" |                            "--shared-libuv" | ||||||
|                            "--shared-nghttp2" |                            "--shared-nghttp2" | ||||||
|  | @ -121,6 +120,20 @@ | ||||||
|              ;; https://github.com/nodejs/node/issues/31213 |              ;; https://github.com/nodejs/node/issues/31213 | ||||||
|              (delete-file "test/parallel/test-net-listen-after-destroying-stdin.js") |              (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 |              ;; These tests have an expiry date: they depend on the validity of | ||||||
|              ;; TLS certificates that are bundled with the source.  We want this |              ;; TLS certificates that are bundled with the source.  We want this | ||||||
|              ;; package to be reproducible forever, so remove those. |              ;; package to be reproducible forever, so remove those. | ||||||
|  | @ -170,8 +183,8 @@ | ||||||
|      `(("c-ares" ,c-ares) |      `(("c-ares" ,c-ares) | ||||||
|        ("http-parser" ,http-parser) |        ("http-parser" ,http-parser) | ||||||
|        ("icu4c" ,icu4c) |        ("icu4c" ,icu4c) | ||||||
|        ("libuv" ,libuv) |        ("libuv" ,libuv/latest) | ||||||
|        ("nghttp2" ,nghttp2 "lib") |        ("nghttp2" ,nghttp2-1.40 "lib") | ||||||
|        ("openssl" ,openssl) |        ("openssl" ,openssl) | ||||||
|        ("zlib" ,zlib))) |        ("zlib" ,zlib))) | ||||||
|     (synopsis "Evented I/O for V8 JavaScript") |     (synopsis "Evented I/O for V8 JavaScript") | ||||||
|  |  | ||||||
|  | @ -315,7 +315,7 @@ back-end for the LLVM compiler framework.") | ||||||
|     (inputs |     (inputs | ||||||
|      `(("clang" ,clang) |      `(("clang" ,clang) | ||||||
|        ("hwloc" ,hwloc-2 "lib") |        ("hwloc" ,hwloc-2 "lib") | ||||||
|        ("llvm" ,llvm-8) |        ("llvm" ,llvm) | ||||||
|        ("ocl-icd" ,ocl-icd))) |        ("ocl-icd" ,ocl-icd))) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:configure-flags |      `(#:configure-flags | ||||||
|  |  | ||||||
|  | @ -133,14 +133,14 @@ data as produced by digital cameras.") | ||||||
| (define-public libgphoto2 | (define-public libgphoto2 | ||||||
|   (package |   (package | ||||||
|     (name "libgphoto2") |     (name "libgphoto2") | ||||||
|     (version "2.5.23") |     (version "2.5.24") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" |               (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" | ||||||
|                                   version "/libgphoto2-" version ".tar.bz2")) |                                   version "/libgphoto2-" version ".tar.bz2")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0bc5x2bkqbfi4hbkz8ab5xc0bkks9vvks1vygxhdh3x498v27byq")))) |                 "0cgvsk06c4kcfj16plc27nm7g16r9ci0y4k83sf3iyphd63mfg7x")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (native-inputs `(("pkg-config" ,pkg-config))) |     (native-inputs `(("pkg-config" ,pkg-config))) | ||||||
|     (inputs |     (inputs | ||||||
|  |  | ||||||
|  | @ -32,6 +32,7 @@ | ||||||
| ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> | ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> | ||||||
| ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> | ;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org> | ||||||
| ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> | ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net> | ||||||
|  | ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; 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 | (define-public awscli | ||||||
|   (package |   (package | ||||||
|    (name "awscli") |     (name "awscli") | ||||||
|    (version "1.14.41") |     (version "1.18.6") | ||||||
|    (source |     (source | ||||||
|     (origin |      (origin | ||||||
|      (method url-fetch) |        (method url-fetch) | ||||||
|      (uri (pypi-uri name version)) |        (uri (pypi-uri name version)) | ||||||
|      (sha256 |        (sha256 | ||||||
|       (base32 |         (base32 | ||||||
|        "0sispclx263lybbk19zp1n9yhg8xxx4jddypzgi24vpjaqnsbwlc")))) |          "0p479mfs9r0m82a217pap8156ijwvhv6r3kqa4k267gd05wgvygm")))) | ||||||
|    (build-system python-build-system) |     (build-system python-build-system) | ||||||
|    (arguments |     (arguments | ||||||
|     ;; FIXME: The 'pypi' release does not contain tests. |      ;; FIXME: The 'pypi' release does not contain tests. | ||||||
|     '(#:tests? #f |      '(#:tests? #f | ||||||
|       #:phases |        #:phases | ||||||
|       (modify-phases %standard-phases |        (modify-phases %standard-phases | ||||||
|         (add-after 'unpack 'fix-reference-to-groff |          (add-after 'unpack 'fix-reference-to-groff | ||||||
|           (lambda _ |            (lambda _ | ||||||
|             (substitute* "awscli/help.py" |              (substitute* "awscli/help.py" | ||||||
|               (("if not self._exists_on_path\\('groff'\\):") "") |                (("if not self._exists_on_path\\('groff'\\):") "") | ||||||
|               (("raise ExecutableNotFoundError\\('groff'\\)") "") |                (("raise ExecutableNotFoundError\\('groff'\\)") "") | ||||||
|               (("cmdline = \\['groff'") |                (("cmdline = \\['groff'") | ||||||
|                (string-append "cmdline = ['" (which "groff") "'"))) |                 (string-append "cmdline = ['" (which "groff") "'"))) | ||||||
|             #t))))) |              #t))))) | ||||||
|    (propagated-inputs |     (propagated-inputs | ||||||
|     `(("python-colorama" ,python-colorama) |      `(("python-colorama" ,python-colorama) | ||||||
|       ("python-botocore" ,python-botocore) |        ("python-botocore" ,python-botocore) | ||||||
|       ("python-s3transfer" ,python-s3transfer) |        ("python-s3transfer" ,python-s3transfer) | ||||||
|       ("python-docutils" ,python-docutils) |        ("python-docutils" ,python-docutils) | ||||||
|       ("python-pyyaml" ,python-pyyaml) |        ("python-pyyaml" ,python-pyyaml) | ||||||
|       ("python-rsa" ,python-rsa))) |        ("python-rsa" ,python-rsa))) | ||||||
|    (inputs |     (native-inputs | ||||||
|     `(("groff" ,groff))) |      `(("groff" ,groff))) | ||||||
|    (home-page "https://aws.amazon.com/cli/") |     (home-page "https://aws.amazon.com/cli/") | ||||||
|    (synopsis "Command line client for AWS") |     (synopsis "Command line client for AWS") | ||||||
|    (description "AWS CLI provides a unified command line interface to the |     (description "AWS CLI provides a unified command line interface to the | ||||||
| Amazon Web Services (AWS) API.") | Amazon Web Services (AWS) API.") | ||||||
|    (license license:asl2.0))) |     (license license:asl2.0))) | ||||||
| 
 | 
 | ||||||
| (define-public python-wsgiproxy2 | (define-public python-wsgiproxy2 | ||||||
|   (package |   (package | ||||||
|  |  | ||||||
|  | @ -49,14 +49,14 @@ | ||||||
| (define-public xapian | (define-public xapian | ||||||
|   (package |   (package | ||||||
|     (name "xapian") |     (name "xapian") | ||||||
|     (version "1.4.14") |     (version "1.4.15") | ||||||
|     ;; Note: When updating Xapian, remember to update xapian-bindings below. |     ;; Note: When updating Xapian, remember to update xapian-bindings below. | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append "https://oligarchy.co.uk/xapian/" version |               (uri (string-append "https://oligarchy.co.uk/xapian/" version | ||||||
|                                   "/xapian-core-" version ".tar.xz")) |                                   "/xapian-core-" version ".tar.xz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 "0ja95vn0lkf6qkjhg2blkx306i10hg4fr8wlrhalmly93307lnlp")))) |                (base32 "1sjhz6vgql801rdgl6vrsjj0vy1mwlkcxjx6nr7h27m031cyjs5i")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (inputs `(("zlib" ,zlib) |     (inputs `(("zlib" ,zlib) | ||||||
|               ("util-linux" ,util-linux))) |               ("util-linux" ,util-linux))) | ||||||
|  | @ -94,7 +94,7 @@ rich set of boolean query operators.") | ||||||
|                                   "/xapian-bindings-" version ".tar.xz")) |                                   "/xapian-bindings-" version ".tar.xz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0qb17cw8n0g5gcg8dq5b3hs6i16w74rgxcryd0ja9n2h0rlda2an")))) |                 "0364nalvh13c7wzx52mz4gaf8wg1rm17lw75cs8a813rv091ci38")))) | ||||||
|     (build-system gnu-build-system) |     (build-system gnu-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:configure-flags '("--with-python3") |      `(#:configure-flags '("--with-python3") | ||||||
|  |  | ||||||
|  | @ -858,7 +858,7 @@ then ported to the GNU / Linux environment.") | ||||||
| (define-public mbedtls-apache | (define-public mbedtls-apache | ||||||
|   (package |   (package | ||||||
|     (name "mbedtls-apache") |     (name "mbedtls-apache") | ||||||
|     (version "2.16.4") |     (version "2.16.5") | ||||||
|     (source |     (source | ||||||
|      (origin |      (origin | ||||||
|        (method url-fetch) |        (method url-fetch) | ||||||
|  | @ -868,7 +868,7 @@ then ported to the GNU / Linux environment.") | ||||||
|                            version "-apache.tgz")) |                            version "-apache.tgz")) | ||||||
|        (sha256 |        (sha256 | ||||||
|         (base32 |         (base32 | ||||||
|          "1yxj5wahaj87xhdi89zbk78ig77b166h464yrj5gb3lwv8mz6h9l")))) |          "0kdhwy241xsk4isbadqx6z80m8sf76da5sbmqv8qy11yr37cdd35")))) | ||||||
|     (build-system cmake-build-system) |     (build-system cmake-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:configure-flags |      `(#:configure-flags | ||||||
|  |  | ||||||
|  | @ -30,14 +30,14 @@ | ||||||
| (define-public plantuml | (define-public plantuml | ||||||
|   (package |   (package | ||||||
|     (name "plantuml") |     (name "plantuml") | ||||||
|     (version "1.2019.3") |     (version "1.2020.1") | ||||||
|     (source (origin |     (source (origin | ||||||
|               (method url-fetch) |               (method url-fetch) | ||||||
|               (uri (string-append "mirror://sourceforge/plantuml/" |               (uri (string-append "mirror://sourceforge/plantuml/" | ||||||
|                                   version "/plantuml-" version ".tar.gz")) |                                   version "/plantuml-" version ".tar.gz")) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "0p2mqav0qfc6kmkhb2n1vjysffnvpsx4yal68nl0yrh5vd3bnmza")))) |                 "1mywv4m6v1y2wpfz9vqriw6cdq1d2md5k2vf244ldbd9s6j45467")))) | ||||||
|     (build-system ant-build-system) |     (build-system ant-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      `(#:tests? #f                      ; no tests |      `(#:tests? #f                      ; no tests | ||||||
|  | @ -49,7 +49,7 @@ | ||||||
|              (substitute* "build.xml" |              (substitute* "build.xml" | ||||||
|                (("1.6") "1.7") |                (("1.6") "1.7") | ||||||
|                (("<attribute name=\"Class-Path\"") "<!--") |                (("<attribute name=\"Class-Path\"") "<!--") | ||||||
|                (("j2v8_macosx_x86_64-3.1.7.jar\" />") "-->")) |                (("ditaa0_9.jar\" />") "-->")) | ||||||
|              #t)) |              #t)) | ||||||
|          (add-after 'delete-extra-from-classpath 'patch-usr-bin-dot |          (add-after 'delete-extra-from-classpath 'patch-usr-bin-dot | ||||||
|            (lambda* (#:key inputs #:allow-other-keys) |            (lambda* (#:key inputs #:allow-other-keys) | ||||||
|  |  | ||||||
|  | @ -8,6 +8,7 @@ | ||||||
| ;;; Copyright © 2019 HiPhish <hiphish@posteo.de> | ;;; Copyright © 2019 HiPhish <hiphish@posteo.de> | ||||||
| ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> | ;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu> | ||||||
| ;;; Copyright © 2019, 2020 Jakub Kądziołka <kuba@kadziolka.net> | ;;; Copyright © 2019, 2020 Jakub Kądziołka <kuba@kadziolka.net> | ||||||
|  | ;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us> | ||||||
| ;;; | ;;; | ||||||
| ;;; This file is part of GNU Guix. | ;;; This file is part of GNU Guix. | ||||||
| ;;; | ;;; | ||||||
|  | @ -84,12 +85,6 @@ | ||||||
|        #:parallel-tests? #f |        #:parallel-tests? #f | ||||||
|        #:phases |        #:phases | ||||||
|        (modify-phases %standard-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 |          (add-after 'configure 'patch-config-files | ||||||
|            (lambda _ |            (lambda _ | ||||||
|              (substitute* "runtime/tools/mve.awk" |              (substitute* "runtime/tools/mve.awk" | ||||||
|  | @ -134,10 +129,11 @@ | ||||||
|      `(("libtool" ,libtool) |      `(("libtool" ,libtool) | ||||||
| 
 | 
 | ||||||
|        ;; For tests. |        ;; For tests. | ||||||
|        ("e2fsprogs" ,e2fsprogs)         ; for chattr in disable-CoW above |  | ||||||
|        ("tzdata" ,tzdata-for-tests))) |        ("tzdata" ,tzdata-for-tests))) | ||||||
|     (home-page "https://www.vim.org/") |     (home-page "https://www.vim.org/") | ||||||
|     (synopsis "Text editor based on vi") |     (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 |     (description | ||||||
|      "Vim is a highly configurable text editor built to enable efficient text |      "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 | 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) |        ("python-3" ,python) | ||||||
|        ("ruby" ,ruby) |        ("ruby" ,ruby) | ||||||
|        ("tcl" ,tcl) |        ("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 | (define-public vim-neocomplete | ||||||
|   (package |   (package | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ | ||||||
| ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> | ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> | ||||||
| ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> | ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> | ||||||
| ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> | ;;; 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 Kei Kebreau <kkebreau@posteo.net> | ||||||
| ;;; Copyright © 2017 Petter <petter@mykolab.ch> | ;;; Copyright © 2017 Petter <petter@mykolab.ch> | ||||||
| ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> | ;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com> | ||||||
|  | @ -7027,6 +7027,20 @@ compressed JSON header blocks. | ||||||
|                (base32 |                (base32 | ||||||
|                 "12yfsjghbaypp4w964d45ih9vs38g6anih80wbsflaxx192idlm2")))))) |                 "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 | (define-public hpcguix-web | ||||||
|   (let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508") |   (let ((commit "f39c90b35e99e4122b0866ec4337020d61c81508") | ||||||
|         (revision "4")) |         (revision "4")) | ||||||
|  |  | ||||||
|  | @ -2108,7 +2108,7 @@ libxml2 and libxslt.") | ||||||
| (define-public python-xmlschema | (define-public python-xmlschema | ||||||
|   (package |   (package | ||||||
|     (name "python-xmlschema") |     (name "python-xmlschema") | ||||||
|     (version "1.1.0") |     (version "1.1.1") | ||||||
|     (source (origin |     (source (origin | ||||||
|               ;; Unit tests are not distributed with the PyPI archive. |               ;; Unit tests are not distributed with the PyPI archive. | ||||||
|               (method git-fetch) |               (method git-fetch) | ||||||
|  | @ -2118,7 +2118,7 @@ libxml2 and libxslt.") | ||||||
|               (file-name (git-file-name name version)) |               (file-name (git-file-name name version)) | ||||||
|               (sha256 |               (sha256 | ||||||
|                (base32 |                (base32 | ||||||
|                 "1h8321jb6q3dhlh3608y3f3sbbzfd3jg1psyirxkrm4w5xs3lbvy")))) |                 "0nqhqbvp0kpd1bz11b6gpkc0mkg068mqs56ww4k5ang1cl9d8gd6")))) | ||||||
|     (build-system python-build-system) |     (build-system python-build-system) | ||||||
|     (arguments |     (arguments | ||||||
|      '(#:phases |      '(#:phases | ||||||
|  |  | ||||||
|  | @ -60,15 +60,18 @@ | ||||||
| ;; part. | ;; part. | ||||||
| (define* (install #:key inputs native-inputs outputs #:allow-other-keys) | (define* (install #:key inputs native-inputs outputs #:allow-other-keys) | ||||||
|   (let* ((out (assoc-ref outputs "out")) |   (let* ((out (assoc-ref outputs "out")) | ||||||
|          (moddir (string-append out "/lib/modules")) |          (moddir (string-append out "/lib/modules"))) | ||||||
|          (kmod (assoc-ref (or native-inputs inputs) "kmod"))) |  | ||||||
|     ;; Install kernel modules |     ;; Install kernel modules | ||||||
|     (mkdir-p moddir) |     (mkdir-p moddir) | ||||||
|     (invoke "make" "-C" |     (invoke "make" "-C" | ||||||
|             (string-append (assoc-ref inputs "linux-module-builder") |             (string-append (assoc-ref inputs "linux-module-builder") | ||||||
|                            "/lib/modules/build") |                            "/lib/modules/build") | ||||||
|             (string-append "M=" (getcwd)) |             (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 "MODULE_DIR=" moddir) | ||||||
|             (string-append "INSTALL_PATH=" out) |             (string-append "INSTALL_PATH=" out) | ||||||
|             (string-append "INSTALL_MOD_PATH=" out) |             (string-append "INSTALL_MOD_PATH=" out) | ||||||
|  |  | ||||||
|  | @ -133,10 +133,7 @@ the @file{bin} directory." | ||||||
|                 (symlink (string-append target "/node_modules/" modulename "/" |                 (symlink (string-append target "/node_modules/" modulename "/" | ||||||
| 					value) | 					value) | ||||||
|                          (string-append binaries "/" key)))))) |                          (string-append binaries "/" key)))))) | ||||||
|          binary-configuration)) |          binary-configuration))) | ||||||
|       (else |  | ||||||
|         (symlink (string-append target "/node_modules/" modulename "/bin") |  | ||||||
| 		 binaries))) |  | ||||||
|     (when dependencies |     (when dependencies | ||||||
|       (mkdir-p |       (mkdir-p | ||||||
|         (string-append target "/node_modules/" modulename "/node_modules")) |         (string-append target "/node_modules/" modulename "/node_modules")) | ||||||
|  |  | ||||||
|  | @ -181,32 +181,69 @@ Show what and how will/would be built." | ||||||
|     (newline (guix-warning-port)))) |     (newline (guix-warning-port)))) | ||||||
| 
 | 
 | ||||||
| (define %disk-space-warning | (define %disk-space-warning | ||||||
|   ;; The fraction (between 0 and 1) of free disk space below which a warning |   ;; Return a pair of absolute threshold (number of bytes) and relative | ||||||
|   ;; is emitted. |   ;; threshold (fraction between 0 and 1) for the free disk space below which | ||||||
|   (make-parameter (match (and=> (getenv "GUIX_DISK_SPACE_WARNING") |   ;; a warning is emitted. | ||||||
|                                 string->number) |   ;; GUIX_DISK_SPACE_WARNING can contain both thresholds.  A value in [0;100) | ||||||
|                     (#f        .05)               ;5% |   ;; is a relative threshold, otherwise it's absolute.  The following | ||||||
|                     (threshold (/ threshold 100.))))) |   ;; 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 | (define* (warn-about-disk-space #:optional profile | ||||||
|                                 #:key |                                 #:key | ||||||
|                                 (threshold (%disk-space-warning))) |                                 (thresholds (%disk-space-warning))) | ||||||
|   "Display a hint about 'guix gc' if less than THRESHOLD of /gnu/store is |   "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))) |   (let* ((stats      (statfs (%store-prefix))) | ||||||
|          (block-size (file-system-block-size stats)) |          (block-size (file-system-block-size stats)) | ||||||
|          (available  (* block-size (file-system-blocks-available stats))) |          (available  (* block-size (file-system-blocks-available stats))) | ||||||
|          (total      (* block-size (file-system-block-count stats))) |          (total      (* block-size (file-system-block-count stats))) | ||||||
|          (ratio      (/ available total 1.))) |          (relative-threshold-in-bytes (* total (cadr thresholds))) | ||||||
|     (when (< ratio threshold) |          (absolute-threshold-in-bytes (* 1024 1024 1024 (car thresholds)))) | ||||||
|       (warning (G_ "only ~,1f% of free space available on ~a~%") |     (when (< available (min relative-threshold-in-bytes | ||||||
|                (* ratio 100) (%store-prefix)) |                             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 |       (display-hint (format #f (G_ "Consider deleting old profile | ||||||
| generations and collecting garbage, along these lines: | generations and collecting garbage, along these lines: | ||||||
| 
 | 
 | ||||||
| @example | @example | ||||||
| guix gc --delete-generations=1m | guix gc --delete-generations=1m | ||||||
| @end example\n") | @end example\n")))))) | ||||||
|                             profile))))) |  | ||||||
| 
 | 
 | ||||||
| ;;; scripts.scm ends here | ;;; scripts.scm ends here | ||||||
|  |  | ||||||
|  | @ -581,15 +581,27 @@ void LocalStore::removeUnusedLinks(const GCState & state) | ||||||
| #ifdef HAVE_STATX | #ifdef HAVE_STATX | ||||||
| # define st_size stx_size | # define st_size stx_size | ||||||
| # define st_nlink stx_nlink | # define st_nlink stx_nlink | ||||||
|  | 	static int statx_flags = AT_SYMLINK_NOFOLLOW | AT_STATX_DONT_SYNC; | ||||||
| 	struct statx st; | 	struct statx st; | ||||||
| 	if (statx(AT_FDCWD, path.c_str(), | 
 | ||||||
| 		  AT_SYMLINK_NOFOLLOW | AT_STATX_DONT_SYNC, | 	if (statx(AT_FDCWD, path.c_str(), statx_flags, | ||||||
| 		  STATX_SIZE | STATX_NLINK, &st) == -1) | 		  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 | #else | ||||||
|         struct stat st; |         struct stat st; | ||||||
|         if (lstat(path.c_str(), &st) == -1) |         if (lstat(path.c_str(), &st) == -1) | ||||||
| #endif |  | ||||||
|             throw SysError(format("statting `%1%'") % path); |             throw SysError(format("statting `%1%'") % path); | ||||||
|  | #endif | ||||||
| 
 | 
 | ||||||
|         if (st.st_nlink != 1) { |         if (st.st_nlink != 1) { | ||||||
|             actualSize += st.st_size; |             actualSize += st.st_size; | ||||||
|  |  | ||||||
		Reference in a new issue