Merge branch 'master' into core-updates
This commit is contained in:
commit
55174e668f
|
@ -406,6 +406,7 @@ SH_TESTS = \
|
|||
tests/guix-gc.sh \
|
||||
tests/guix-hash.sh \
|
||||
tests/guix-pack.sh \
|
||||
tests/guix-pack-relocatable.sh \
|
||||
tests/guix-package.sh \
|
||||
tests/guix-package-net.sh \
|
||||
tests/guix-system.sh \
|
||||
|
@ -462,8 +463,8 @@ check-system: $(GOBJECTS)
|
|||
|
||||
# Public key used to sign substitutes from hydra.gnu.org & co.
|
||||
dist_pkgdata_DATA = \
|
||||
hydra.gnu.org.pub \
|
||||
berlin.guixsd.org.pub
|
||||
etc/substitutes/hydra.gnu.org.pub \
|
||||
etc/substitutes/berlin.guixsd.org.pub
|
||||
|
||||
# Bash completion file.
|
||||
dist_bashcompletion_DATA = etc/completion/bash/guix \
|
||||
|
|
|
@ -31,7 +31,7 @@ Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@*
|
|||
Copyright @copyright{} 2016 Julien Lepiller@*
|
||||
Copyright @copyright{} 2016 Alex ter Weele@*
|
||||
Copyright @copyright{} 2017, 2018 Clément Lassieur@*
|
||||
Copyright @copyright{} 2017 Mathieu Othacehe@*
|
||||
Copyright @copyright{} 2017, 2018 Mathieu Othacehe@*
|
||||
Copyright @copyright{} 2017 Federico Beffa@*
|
||||
Copyright @copyright{} 2017, 2018 Carlo Zancanaro@*
|
||||
Copyright @copyright{} 2017 Thomas Danckaert@*
|
||||
|
@ -2844,9 +2844,6 @@ The @command{guix pull} command is usually invoked with no arguments,
|
|||
but it supports the following options:
|
||||
|
||||
@table @code
|
||||
@item --verbose
|
||||
Produce verbose output, writing build logs to the standard error output.
|
||||
|
||||
@item --url=@var{url}
|
||||
@itemx --commit=@var{commit}
|
||||
@itemx --branch=@var{branch}
|
||||
|
@ -2880,6 +2877,14 @@ current generation only.
|
|||
@itemx -p @var{profile}
|
||||
Use @var{profile} instead of @file{~/.config/guix/current}.
|
||||
|
||||
@item --dry-run
|
||||
@itemx -n
|
||||
Show which channel commit(s) would be used and what would be built or
|
||||
substituted but do not actually do it.
|
||||
|
||||
@item --verbose
|
||||
Produce verbose output, writing build logs to the standard error output.
|
||||
|
||||
@item --bootstrap
|
||||
Use the bootstrap Guile to build the latest Guix. This option is only
|
||||
useful to Guix developers.
|
||||
|
@ -10934,6 +10939,10 @@ A gexp denoting the name of the log-in program. The default log-in program is
|
|||
@item @code{login-arguments} (default: @code{'("-p")})
|
||||
A list of arguments to pass to @command{login}.
|
||||
|
||||
@item @code{auto-login} (default: @code{#f})
|
||||
When passed a login name, as a string, the specified user will be logged
|
||||
in automatically without prompting for their login name or password.
|
||||
|
||||
@item @code{hardware-acceleration?} (default: #f)
|
||||
Whether to use hardware acceleration.
|
||||
|
||||
|
@ -18663,6 +18672,11 @@ Cuirass jobs.
|
|||
Location of sqlite database which contains the build results and previously
|
||||
added specifications.
|
||||
|
||||
@item @code{ttl} (default: @code{(* 30 24 3600)})
|
||||
Specifies the time-to-live (TTL) in seconds of garbage collector roots that
|
||||
are registered for build results. This means that build results are protected
|
||||
from garbage collection for at least @var{ttl} seconds.
|
||||
|
||||
@item @code{port} (default: @code{8081})
|
||||
Port number used by the HTTP server.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -172,6 +172,8 @@ _guix_complete ()
|
|||
if _guix_is_dash_L
|
||||
then
|
||||
_guix_complete_file
|
||||
else
|
||||
_guix_complete_available_package "$word_at_point"
|
||||
fi
|
||||
elif _guix_is_command "download"
|
||||
then
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu build install)
|
||||
#:use-module (guix store database)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build store-copy)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
@ -27,6 +26,7 @@
|
|||
evaluate-populate-directive
|
||||
populate-root-file-system
|
||||
register-closure
|
||||
install-database-and-gc-roots
|
||||
populate-single-profile-directory))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -141,34 +141,45 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
|
|||
(try))
|
||||
(apply throw args)))))))
|
||||
|
||||
(define* (register-closure prefix closure
|
||||
#:key
|
||||
(deduplicate? #t) (reset-timestamps? #t)
|
||||
(schema (sql-schema)))
|
||||
"Register CLOSURE in PREFIX, where PREFIX is the directory name of the
|
||||
target store and CLOSURE is the name of a file containing a reference graph as
|
||||
produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
|
||||
true, reset timestamps on store files and, if DEDUPLICATE? is true,
|
||||
deduplicates files common to CLOSURE and the rest of PREFIX."
|
||||
(let ((items (call-with-input-file closure read-reference-graph)))
|
||||
(register-items items
|
||||
#:prefix prefix
|
||||
#:deduplicate? deduplicate?
|
||||
#:reset-timestamps? reset-timestamps?
|
||||
#:registration-time %epoch
|
||||
#:schema schema)))
|
||||
(define %root-profile
|
||||
"/var/guix/profiles/per-user/root")
|
||||
|
||||
(define* (install-database-and-gc-roots root database profile
|
||||
#:key (profile-name "guix-profile"))
|
||||
"Install DATABASE, the store database, under directory ROOT. Create
|
||||
PROFILE-NAME and have it link to PROFILE, a store item."
|
||||
(define (scope file)
|
||||
(string-append root "/" file))
|
||||
|
||||
(define (mkdir-p* dir)
|
||||
(mkdir-p (scope dir)))
|
||||
|
||||
(define (symlink* old new)
|
||||
(symlink old (scope new)))
|
||||
|
||||
(install-file database (scope "/var/guix/db/"))
|
||||
(chmod (scope "/var/guix/db/db.sqlite") #o644)
|
||||
(mkdir-p* "/var/guix/profiles")
|
||||
(mkdir-p* "/var/guix/gcroots")
|
||||
(symlink* "/var/guix/profiles" "/var/guix/gcroots/profiles")
|
||||
|
||||
;; Make root's profile, which makes it a GC root.
|
||||
(mkdir-p* %root-profile)
|
||||
(symlink* profile
|
||||
(string-append %root-profile "/" profile-name "-1-link"))
|
||||
(symlink* (string-append profile-name "-1-link")
|
||||
(string-append %root-profile "/" profile-name)))
|
||||
|
||||
(define* (populate-single-profile-directory directory
|
||||
#:key profile closure
|
||||
(profile-name "guix-profile")
|
||||
deduplicate?
|
||||
register? schema)
|
||||
database)
|
||||
"Populate DIRECTORY with a store containing PROFILE, whose closure is given
|
||||
in the file called CLOSURE (as generated by #:references-graphs.) DIRECTORY
|
||||
is initialized to contain a single profile under /root pointing to PROFILE.
|
||||
When REGISTER? is true, initialize DIRECTORY/var/guix/db to reflect the
|
||||
contents of the store; DEDUPLICATE? determines whether to deduplicate files in
|
||||
the store.
|
||||
|
||||
When DATABASE is true, copy it to DIRECTORY/var/guix/db and create
|
||||
DIRECTORY/var/guix/gcroots and friends.
|
||||
|
||||
PROFILE-NAME is the name of the profile being created under
|
||||
/var/guix/profiles, typically either \"guix-profile\" or \"current-guix\".
|
||||
|
@ -177,9 +188,6 @@ This is used to create the self-contained tarballs with 'guix pack'."
|
|||
(define (scope file)
|
||||
(string-append directory "/" file))
|
||||
|
||||
(define %root-profile
|
||||
"/var/guix/profiles/per-user/root")
|
||||
|
||||
(define (mkdir-p* dir)
|
||||
(mkdir-p (scope dir)))
|
||||
|
||||
|
@ -189,22 +197,9 @@ This is used to create the self-contained tarballs with 'guix pack'."
|
|||
;; Populate the store.
|
||||
(populate-store (list closure) directory)
|
||||
|
||||
(when register?
|
||||
(register-closure (canonicalize-path directory) closure
|
||||
#:deduplicate? deduplicate?
|
||||
#:schema schema)
|
||||
|
||||
(mkdir-p* "/var/guix/profiles")
|
||||
(mkdir-p* "/var/guix/gcroots")
|
||||
(symlink* "/var/guix/profiles"
|
||||
"/var/guix/gcroots/profiles"))
|
||||
|
||||
;; Make root's profile, which makes it a GC root.
|
||||
(mkdir-p* %root-profile)
|
||||
(symlink* profile
|
||||
(string-append %root-profile "/" profile-name "-1-link"))
|
||||
(symlink* (string-append profile-name "-1-link")
|
||||
(string-append %root-profile "/" profile-name))
|
||||
(when database
|
||||
(install-database-and-gc-roots directory database profile
|
||||
#:profile-name profile-name))
|
||||
|
||||
(match profile-name
|
||||
("guix-profile"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -139,6 +139,12 @@ REFERENCES-GRAPHS."
|
|||
|
||||
(write-cpio-archive output "." #:gzip gzip))
|
||||
|
||||
;; Make sure directories are writable so we can delete files.
|
||||
(for-each make-file-writable
|
||||
(find-files "contents"
|
||||
(lambda (file stat)
|
||||
(eq? 'directory (stat:type stat)))
|
||||
#:directories? #t))
|
||||
(delete-file-recursively "contents"))
|
||||
|
||||
;;; linux-initrd.scm ends here
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#:use-module (guix build utils)
|
||||
#:use-module (guix build store-copy)
|
||||
#:use-module (guix build syscalls)
|
||||
#:use-module ((guix store database) #:select (reset-timestamps))
|
||||
#:use-module (guix store database)
|
||||
#:use-module (gnu build linux-boot)
|
||||
#:use-module (gnu build install)
|
||||
#:use-module (gnu system uuid)
|
||||
|
@ -191,6 +191,23 @@ the #:references-graphs parameter of 'derivation'."
|
|||
(mkdir output)
|
||||
(copy-recursively "xchg" output)))))
|
||||
|
||||
(define* (register-closure prefix closure
|
||||
#:key
|
||||
(deduplicate? #t) (reset-timestamps? #t)
|
||||
(schema (sql-schema)))
|
||||
"Register CLOSURE in PREFIX, where PREFIX is the directory name of the
|
||||
target store and CLOSURE is the name of a file containing a reference graph as
|
||||
produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
|
||||
true, reset timestamps on store files and, if DEDUPLICATE? is true,
|
||||
deduplicates files common to CLOSURE and the rest of PREFIX."
|
||||
(let ((items (call-with-input-file closure read-reference-graph)))
|
||||
(register-items items
|
||||
#:prefix prefix
|
||||
#:deduplicate? deduplicate?
|
||||
#:reset-timestamps? reset-timestamps?
|
||||
#:registration-time %epoch
|
||||
#:schema schema)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Partitions.
|
||||
|
|
|
@ -726,7 +726,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/gd-fix-tests-on-i686.patch \
|
||||
%D%/packages/patches/gd-freetype-test-failure.patch \
|
||||
%D%/packages/patches/gdm-CVE-2018-14424.patch \
|
||||
%D%/packages/patches/gemma-intel-compat.patch \
|
||||
%D%/packages/patches/geoclue-config.patch \
|
||||
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
||||
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
|
||||
|
@ -838,7 +837,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/java-xerces-xjavac_taskdef.patch \
|
||||
%D%/packages/patches/jbig2dec-ignore-testtest.patch \
|
||||
%D%/packages/patches/json-glib-fix-tests-32bit.patch \
|
||||
%D%/packages/patches/jq-CVE-2015-8863.patch \
|
||||
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
|
||||
%D%/packages/patches/khmer-use-libraries.patch \
|
||||
%D%/packages/patches/libziparchive-add-includes.patch \
|
||||
|
@ -882,6 +880,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libexif-CVE-2017-7544.patch \
|
||||
%D%/packages/patches/libgcrypt-make-yat2m-reproducible.patch \
|
||||
%D%/packages/patches/libgit2-mtime-0.patch \
|
||||
%D%/packages/patches/libgit2-oom-test.patch \
|
||||
%D%/packages/patches/libgdata-fix-tests.patch \
|
||||
%D%/packages/patches/libgdata-glib-duplicate-tests.patch \
|
||||
%D%/packages/patches/libgnome-encoding.patch \
|
||||
|
|
|
@ -35,14 +35,14 @@
|
|||
(define-public fio
|
||||
(package
|
||||
(name "fio")
|
||||
(version "3.7")
|
||||
(version "3.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://brick.kernel.dk/snaps/"
|
||||
"fio-" version ".tar.gz"))
|
||||
"fio-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0rw9jf2ikm19lq4jizavdvvp3vfvlm3annq7jsxl2y5nf1pi2qr7"))))
|
||||
"0s8m0wcz5j6sa1hblj80wk3syy5b4shg7y3gabvm9xa3wj0lzasa"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:test-target "test"
|
||||
|
|
|
@ -201,14 +201,14 @@ genomes and gene ID formats, largely based on the UCSC table browser.")
|
|||
(define-public r-hpar
|
||||
(package
|
||||
(name "r-hpar")
|
||||
(version "1.22.2")
|
||||
(version "1.24.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "hpar" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1b72hvzasf6q739gmx6jblbzzyq22l7crrkbbfkihv3v7s94g388"))))
|
||||
"1pm3k8apgynmdzv2d0chca3b636kcai3b1x861fyv1m3xs6msgxn"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://bioconductor.org/packages/hpar/")
|
||||
(synopsis "Human Protein Atlas in R")
|
||||
|
@ -219,23 +219,24 @@ the Human Protein Atlas project.")
|
|||
(define-public r-regioner
|
||||
(package
|
||||
(name "r-regioner")
|
||||
(version "1.12.0")
|
||||
(version "1.14.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "regioneR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09bzlaqdgy7wmzly3zc9y2da50d07mlixlnpaxdxpiwdk8qmhxsb"))))
|
||||
"19la74swgzxp90z2nr3pzsgkxd7wp70zl6i2ipv3plg841f6k5zd"))))
|
||||
(properties `((upstream-name . "regioneR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-memoise" ,r-memoise)
|
||||
("r-genomicranges" ,r-genomicranges)
|
||||
`(("r-biostrings" ,r-biostrings)
|
||||
("r-bsgenome" ,r-bsgenome)
|
||||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-genomeinfodb" ,r-genomeinfodb)
|
||||
("r-genomicranges" ,r-genomicranges)
|
||||
("r-iranges" ,r-iranges)
|
||||
("r-memoise" ,r-memoise)
|
||||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-s4vectors" ,r-s4vectors)))
|
||||
(home-page "https://bioconductor.org/packages/regioneR/")
|
||||
(synopsis "Association analysis of genomic regions")
|
||||
|
@ -247,14 +248,14 @@ region sets and other genomic features.")
|
|||
(define-public r-diffbind
|
||||
(package
|
||||
(name "r-diffbind")
|
||||
(version "2.8.0")
|
||||
(version "2.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DiffBind" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1w1hybzd732ccg3q8zhirwfilq8sx3frv1x98zfyj3svzw98fish"))))
|
||||
"0j8pal40lr1gv8sss96hhkj7l1qn9sy4q4l2kqd4rfwl7qrcnfw5"))))
|
||||
(properties `((upstream-name . "DiffBind")))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
|
@ -292,14 +293,14 @@ occupancy (overlap) analysis and plotting functions.")
|
|||
(define-public r-ripseeker
|
||||
(package
|
||||
(name "r-ripseeker")
|
||||
(version "1.20.0")
|
||||
(version "1.22.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "RIPSeeker" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0y9cvzqslfxj3z9mnp47mknff0pky2g5x8x1z1s5yjcx35q89xfi"))))
|
||||
"1x2n1iyik4s67bxq0fl6fpf602k51g4pxjpjpxkgx1a5fsk61f2i"))))
|
||||
(properties `((upstream-name . "RIPSeeker")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -325,14 +326,14 @@ processing to visualization and annotation.")
|
|||
(define-public r-multtest
|
||||
(package
|
||||
(name "r-multtest")
|
||||
(version "2.36.0")
|
||||
(version "2.38.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "multtest" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11949h2kglw13x8haaj4clg4jim1mwh5n98n9zxp9mmgn01z1lp0"))))
|
||||
"0lq62jw81hz9k840969n5byj57pwd0jqga3hqvhb6abb3g10yz7k"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-survival" ,r-survival)
|
||||
|
@ -363,13 +364,13 @@ expressed genes in DNA microarray experiments.")
|
|||
(define-public r-graph
|
||||
(package
|
||||
(name "r-graph")
|
||||
(version "1.58.2")
|
||||
(version "1.60.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "graph" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07smbb3c30pr5r425g181xsg0rs5jx6x2q6xpwb5dqgicxrz30ga"))))
|
||||
"1kgnsm6f0vmb9qbkmmrnvxbwqc0gar17dq5gv1v10hrksw6mh64i"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)))
|
||||
|
@ -410,18 +411,19 @@ determining dependencies between variables, code improvement suggestions.")
|
|||
(define-public r-chippeakanno
|
||||
(package
|
||||
(name "r-chippeakanno")
|
||||
(version "3.14.2")
|
||||
(version "3.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ChIPpeakAnno" version))
|
||||
(sha256
|
||||
(base32
|
||||
"13rksc65lxxzyw11galh6xzvgzp5ii0gwiwpvrm395v2r17rhwsc"))))
|
||||
"09fhh1355diip3v3c0skmp1336vclipkm5nv02qvp5902v4262y3"))))
|
||||
(properties `((upstream-name . "ChIPpeakAnno")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)
|
||||
("r-biocmanager" ,r-biocmanager)
|
||||
("r-biostrings" ,r-biostrings)
|
||||
("r-delayedarray" ,r-delayedarray)
|
||||
("r-go-db" ,r-go-db)
|
||||
|
@ -437,7 +439,6 @@ determining dependencies between variables, code improvement suggestions.")
|
|||
("r-multtest" ,r-multtest)
|
||||
("r-rbgl" ,r-rbgl)
|
||||
("r-graph" ,r-graph)
|
||||
("r-biocinstaller" ,r-biocinstaller)
|
||||
("r-regioner" ,r-regioner)
|
||||
("r-dbi" ,r-dbi)
|
||||
("r-ensembldb" ,r-ensembldb)
|
||||
|
@ -465,12 +466,12 @@ enrichedGO (addGeneIDs).")
|
|||
(define-public r-marray
|
||||
(package
|
||||
(name "r-marray")
|
||||
(version "1.58.0")
|
||||
(version "1.60.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "marray" version))
|
||||
(sha256
|
||||
(base32 "0539flh3y1qy5b1bamkfwbskis765c5s33v1y9j51n33mxb9h08d"))))
|
||||
(base32 "1sh7l3c28x6zhdv99c9x05ii2yxmh9alkazp98kdi4fdb23rlzky"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-limma" ,r-limma)))
|
||||
|
@ -484,12 +485,12 @@ normalization and quality checking.")
|
|||
(define-public r-cghbase
|
||||
(package
|
||||
(name "r-cghbase")
|
||||
(version "1.40.0")
|
||||
(version "1.42.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "CGHbase" version))
|
||||
(sha256
|
||||
(base32 "1hf44vma3kgwr61kjbszvfxkava8bjqnam1mdncqvczbypb2xwaq"))))
|
||||
(base32 "0ghxp49xdi09p3f2qwrdrq2p4qjafj4z1rr08ycgbf11gb22h1sc"))))
|
||||
(properties `((upstream-name . "CGHbase")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -504,12 +505,12 @@ the @code{arrayCGH} packages.")
|
|||
(define-public r-cghcall
|
||||
(package
|
||||
(name "r-cghcall")
|
||||
(version "2.42.0")
|
||||
(version "2.44.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "CGHcall" version))
|
||||
(sha256
|
||||
(base32 "0y71vfxv9x0am3xvv520yr95cb7m7y92dhdx1vkqki80jrmf12dz"))))
|
||||
(base32 "1k65kaiqvjyllzbpa2367n6f6kkmsy463kpflzs66hqhx2fshsmi"))))
|
||||
(properties `((upstream-name . "CGHcall")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -527,12 +528,12 @@ the @code{arrayCGH} packages.")
|
|||
(define-public r-qdnaseq
|
||||
(package
|
||||
(name "r-qdnaseq")
|
||||
(version "1.16.0")
|
||||
(version "1.18.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "QDNAseq" version))
|
||||
(sha256
|
||||
(base32 "1pj69mfyxwfd0d7h4kls9xq96sdc55y3rv20qpla50hw9libcwwd"))))
|
||||
(base32 "04ff9nbckzrlb45mr2j0c3mlh1wcggq5bbl81zklhq203c5x1wc2"))))
|
||||
(properties `((upstream-name . "QDNAseq")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -559,14 +560,14 @@ respectively.")
|
|||
(define-public r-bayseq
|
||||
(package
|
||||
(name "r-bayseq")
|
||||
(version "2.14.0")
|
||||
(version "2.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "baySeq" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hbmm01a8libara9mbxknpk0wzarwfngnfwlmhpww91a0cmy5klg"))))
|
||||
"0f6yckihm5cwh3dycv2g54hf7nddhcqya4yrqwbir96y5k1d1km5"))))
|
||||
(properties `((upstream-name . "baySeq")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -585,14 +586,14 @@ more complex hypotheses) via empirical Bayesian methods.")
|
|||
(define-public r-chipcomp
|
||||
(package
|
||||
(name "r-chipcomp")
|
||||
(version "1.10.0")
|
||||
(version "1.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ChIPComp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0j9nif7z33qdxf347r9wa62hhz8qs09r2p96x3hg5yz30a10ahqs"))))
|
||||
"1sypdsvwzssraanlhddhzpf9p0xs3qlflc0hp7yfbp0aplsifx85"))))
|
||||
(properties `((upstream-name . "ChIPComp")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -619,14 +620,14 @@ datasets.")
|
|||
(define-public r-riboprofiling
|
||||
(package
|
||||
(name "r-riboprofiling")
|
||||
(version "1.10.0")
|
||||
(version "1.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "RiboProfiling" version))
|
||||
(sha256
|
||||
(base32
|
||||
"04yjklqdjkim7yxyk3cyvf0mmwyxyfvw2mmfzgwaaqbiyg29sli0"))))
|
||||
"1njvkd1khmf3rbp3dkz5z63wp79z4wmk4kzd3p3amky3w5by070z"))))
|
||||
(properties `((upstream-name . "RiboProfiling")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -658,14 +659,14 @@ assessment, principal component analysis on codon coverage.")
|
|||
(define-public r-riboseqr
|
||||
(package
|
||||
(name "r-riboseqr")
|
||||
(version "1.14.0")
|
||||
(version "1.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "riboSeqR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xavd1cdhi8qfjn9a1hjhflyg6jq1ydvv56z12gjz572pwz2knvn"))))
|
||||
"1nacsbsz77fw4a10nqj2ncsf25q3aaa0gd5w1q0ray2prx7qmlqb"))))
|
||||
(properties `((upstream-name . "riboSeqR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -686,14 +687,14 @@ parsing of genetic sequencing data from ribosome profiling experiments.")
|
|||
(define-public r-interactionset
|
||||
(package
|
||||
(name "r-interactionset")
|
||||
(version "1.8.0")
|
||||
(version "1.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "InteractionSet" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xngraq7ic80jr98i1wqp8bxdgidq6py60m2wfk82n1ixpcdck8n"))))
|
||||
"0wirfhmpmkmnmhbqslw4bzvi2msqyqpjy1rrwr5qbd9k5rhx3bzb"))))
|
||||
(properties
|
||||
`((upstream-name . "InteractionSet")))
|
||||
(build-system r-build-system)
|
||||
|
@ -718,14 +719,14 @@ experiments.")
|
|||
(define-public r-genomicinteractions
|
||||
(package
|
||||
(name "r-genomicinteractions")
|
||||
(version "1.14.0")
|
||||
(version "1.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicInteractions" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cnagprxj0b7p6s29iyhqwxj7hgmrh75gj52y4dlil790d1bmq2q"))))
|
||||
"0zy5isp2lqpjm0n0n1gly5bs4izn22yciibyqrnlrr60rmn5s67q"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicInteractions")))
|
||||
(build-system r-build-system)
|
||||
|
@ -757,14 +758,14 @@ information and producing various plots and statistics.")
|
|||
(define-public r-ctc
|
||||
(package
|
||||
(name "r-ctc")
|
||||
(version "1.54.0")
|
||||
(version "1.56.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ctc" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0sadplm4n9n3z6inmn6y3d6qbr4hllljqh700x5fygrnfacnckk9"))))
|
||||
"0yp7c0abk48jx1wf8n1gawh7dm15idahqc8va24v8cm0bzxgnmh2"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-amap" ,r-amap)))
|
||||
(home-page "https://bioconductor.org/packages/ctc/")
|
||||
|
@ -777,14 +778,14 @@ trees and clusters to other programs.")
|
|||
(define-public r-goseq
|
||||
(package
|
||||
(name "r-goseq")
|
||||
(version "1.32.0")
|
||||
(version "1.34.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "goseq" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xmbb8ma32lrfy810r82y34gkspq4fqiqxykic9j4rq9rg9n9x2l"))))
|
||||
"1401x0jn5f8hqc12r3gd1wammp1nxir3is1k5ldd03ln97x00i7a"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-annotationdbi" ,r-annotationdbi)
|
||||
|
@ -803,14 +804,14 @@ defined categories which are over/under represented in RNA-seq data.")
|
|||
(define-public r-glimma
|
||||
(package
|
||||
(name "r-glimma")
|
||||
(version "1.8.2")
|
||||
(version "1.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Glimma" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kfia60vrlys6amdchdix01iwbkwyb7nfjqn5hczsxp8rhmbg25s"))))
|
||||
"0cbsi6g8k1whkh21jxfn22sj7wry2g3rshiracf5nyvrl2fnl947"))))
|
||||
(properties `((upstream-name . "Glimma")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -830,14 +831,14 @@ information.")
|
|||
(define-public r-rots
|
||||
(package
|
||||
(name "r-rots")
|
||||
(version "1.8.0")
|
||||
(version "1.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ROTS" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12jvdqanyk86ihpcylp105zip22y0gkbksmyxy00q7iad0jhaqp3"))))
|
||||
"137c06g5w7mjw3b1mly7b7n9iix4fcy23c7a9ym9iz8dazwhzwn5"))))
|
||||
(properties `((upstream-name . "ROTS")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -854,14 +855,14 @@ in omics data.")
|
|||
(define-public r-inspect
|
||||
(package
|
||||
(name "r-inspect")
|
||||
(version "1.10.0")
|
||||
(version "1.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "INSPEcT" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gk0pwyimkswrvgb2xr3c2zy4myi448a2shr5ap65rq9pcpp0l8p"))))
|
||||
"0b671x5v2wyq5np2flq2m1fnjz32f303yjlw64a1inwc9k2w2pz2"))))
|
||||
(properties `((upstream-name . "INSPEcT")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -890,14 +891,14 @@ modeling the rates that determines changes in mature mRNA levels.")
|
|||
(define-public r-dnabarcodes
|
||||
(package
|
||||
(name "r-dnabarcodes")
|
||||
(version "1.10.0")
|
||||
(version "1.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DNABarcodes" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xhna7f0kr7pp2hqwara5i57m9mdr65shflfxiyw6yy3g90pgb5x"))))
|
||||
"0g6j7ish0fk9jcib94wssjgp1m8ldcp42hyyg1ypr945fa3xghx0"))))
|
||||
(properties `((upstream-name . "DNABarcodes")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -917,14 +918,14 @@ demultiplexed, i.e. assigned to their original reference barcode.")
|
|||
(define-public r-ruvseq
|
||||
(package
|
||||
(name "r-ruvseq")
|
||||
(version "1.14.0")
|
||||
(version "1.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "RUVSeq" version))
|
||||
(sha256
|
||||
(base32
|
||||
"16i5sm5af761k4zvspfi8jknsgln48bn538hxqqmlaq7wvlfxqxj"))))
|
||||
"0xb3bj3n06cb9xddkv77a8svhg4fl1azlfmibwrm9mq9464kgf0m"))))
|
||||
(properties `((upstream-name . "RUVSeq")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -939,3 +940,32 @@ demultiplexed, i.e. assigned to their original reference barcode.")
|
|||
of Risso et al. (2014) for the normalization of RNA-Seq read counts between
|
||||
samples.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-biocneighbors
|
||||
(package
|
||||
(name "r-biocneighbors")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "BiocNeighbors" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1fsb96acidlxwf0h65xv7fnwdi58ckmq00gmwykrlawh88wgn1ll"))))
|
||||
(properties `((upstream-name . "BiocNeighbors")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocparallel" ,r-biocparallel)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcppannoy" ,r-rcppannoy)
|
||||
("r-s4vectors" ,r-s4vectors)))
|
||||
(home-page "https://bioconductor.org/packages/BiocNeighbors")
|
||||
(synopsis "Nearest Neighbor Detection for Bioconductor packages")
|
||||
(description
|
||||
"This package implements exact and approximate methods for nearest
|
||||
neighbor detection, in a framework that allows them to be easily switched
|
||||
within Bioconductor packages or workflows. The exact algorithm is implemented
|
||||
using pre-clustering with the k-means algorithm. Functions are also provided
|
||||
to search for all neighbors within a given distance. Parallelization is
|
||||
achieved for all methods using the BiocParallel framework.")
|
||||
(license license:gpl3)))
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -186,8 +186,8 @@ their dependencies.")
|
|||
(license l:gpl3+))))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "fe2b73c2353d106431ed0659345391f14ed64600")
|
||||
(revision "20"))
|
||||
(let ((commit "0b40dca734468e8b12b3ff58e3e779679f17d38e")
|
||||
(revision "21"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
|
@ -199,7 +199,7 @@ their dependencies.")
|
|||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00ldbig2p14qpwrl2i2hnhb9idgbbf0kqnlh4n79rmz96blm7463"))))
|
||||
"1kdxs8dzdyldfs4wsz5hb64hprkbrnq5ljdll631f3bj8pbvvvc1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
|
|
|
@ -492,13 +492,13 @@ print, summary, plot, update, etc.
|
|||
(define-public r-ps
|
||||
(package
|
||||
(name "r-ps")
|
||||
(version "1.2.0")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ps" version))
|
||||
(sha256
|
||||
(base32 "0ai8igdkysmks1ihbp3h3s552da2hskxqwrvp4cx7vwn91x9f3wd"))))
|
||||
(base32 "1zxylcb0nr4qb5v6j199mc2pfgf2bpf00jrw47jajmv59qb0fwmx"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://ps.r-lib.org")
|
||||
(synopsis "List, query, and manipulate system processes")
|
||||
|
@ -539,14 +539,14 @@ is configured appropriately so R can use them.")
|
|||
(define-public r-pkgload
|
||||
(package
|
||||
(name "r-pkgload")
|
||||
(version "1.0.1")
|
||||
(version "1.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "pkgload" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mm0avvan528zbrcrxigl5fkd7za01fb0qhlqrqvm3ar0115cqa8"))))
|
||||
"0z7jvharafahi2gv5547mk1n499isjzw06kfwymmxc0gd575d1ii"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-desc" ,r-desc)
|
||||
|
@ -891,14 +891,14 @@ in main memory.")
|
|||
(define-public r-ffbase
|
||||
(package
|
||||
(name "r-ffbase")
|
||||
(version "0.12.5")
|
||||
(version "0.12.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ffbase" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1h5x6rbb1nrpzf4ywkizn8ij0bz3mlz46byh46ylxhicg1ribi24"))))
|
||||
"04kxx2f3f0743c5nvpb7x1x0pcd220dazpd5ag1pidxbz3xa85nw"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-bit" ,r-bit)
|
||||
|
@ -1762,14 +1762,14 @@ provided.")
|
|||
(define-public r-ipred
|
||||
(package
|
||||
(name "r-ipred")
|
||||
(version "0.9-7")
|
||||
(version "0.9-8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ipred" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0q53cqs46501wsd4cmfsmr78l8nv1hkbamk9m0ns5qy02df5r254"))))
|
||||
"01xcg3c121ndfpz9dirqxszknh4yb1p222p7f1wbwwhdrg1i27cw"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-class" ,r-class)
|
||||
|
@ -1789,14 +1789,14 @@ problems as well as resampling based estimators of prediction error.")
|
|||
(define-public r-psych
|
||||
(package
|
||||
(name "r-psych")
|
||||
(version "1.8.4")
|
||||
(version "1.8.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "psych" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1kzv9nc7rwn1sj1zxd8xrbs6c7qlka7j2c8lsr4f20znkd3qx8gf"))))
|
||||
"0n3frgzsfmnan6cp3yyq5h6c28v5pd7q5a42pp6byaa7n7d1v478"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-foreign" ,r-foreign)
|
||||
|
@ -2319,14 +2319,14 @@ training models for classification or ranking.")
|
|||
(define-public r-xts
|
||||
(package
|
||||
(name "r-xts")
|
||||
(version "0.11-1")
|
||||
(version "0.11-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "xts" version))
|
||||
(sha256
|
||||
(base32
|
||||
"17d3g14xkxa1a5z5gd3gk1xjqfkjg1ik3i12q0arina8frql3jhd"))))
|
||||
"1f0kxrvn13py3hk2gh2m56cqm39x3bqp1i350r5viddacrm2yxqj"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs `(("r-zoo" ,r-zoo)))
|
||||
(home-page "https://github.com/joshuaulrich/xts")
|
||||
|
@ -4814,14 +4814,14 @@ vice versa), or to deal with multiple declared missing values.")
|
|||
(define-public r-sjmisc
|
||||
(package
|
||||
(name "r-sjmisc")
|
||||
(version "2.7.5")
|
||||
(version "2.7.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "sjmisc" version))
|
||||
(sha256
|
||||
(base32
|
||||
"05fjqfr2rfk11065zqkzb9mbqd6mgdkw9jdhq3by425a7f8m2dcg"))))
|
||||
"1jhrigikjpkdar3jxvi7qhqsg6lgjkjqhqll9vaay98b88rfc2im"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-broom" ,r-broom)
|
||||
|
@ -4829,15 +4829,12 @@ vice versa), or to deal with multiple declared missing values.")
|
|||
("r-dplyr" ,r-dplyr)
|
||||
("r-haven" ,r-haven)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-pillar" ,r-pillar)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-sjlabelled" ,r-sjlabelled)
|
||||
("r-stringdist" ,r-stringdist)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyr" ,r-tidyr)
|
||||
("r-tidyselect" ,r-tidyselect)))
|
||||
("r-tidyr" ,r-tidyr)))
|
||||
(home-page "https://github.com/strengejacke/sjmisc")
|
||||
(synopsis "Data and variable transformation functions")
|
||||
(description
|
||||
|
@ -4899,14 +4896,14 @@ functions.")
|
|||
(define-public r-flextable
|
||||
(package
|
||||
(name "r-flextable")
|
||||
(version "0.4.5")
|
||||
(version "0.4.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "flextable" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09j2y0z7rkc0w1cl9pp1cpk6fnzzfr6245mxa3ca42z9k2cy2jfl"))))
|
||||
"0fa42dvf0wyl91w4v0rywm3xgw9n03cfyl28ficrv8iabz4k4382"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-gdtools" ,r-gdtools)
|
||||
|
@ -6823,14 +6820,14 @@ Rcpp, RStudio projects, and more.")
|
|||
(define-public r-sessioninfo
|
||||
(package
|
||||
(name "r-sessioninfo")
|
||||
(version "1.1.0")
|
||||
(version "1.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "sessioninfo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01c0m8yzadpwd825hky6as0f8ka4xyz7zfy0ih2iy7qqw11w6qn5"))))
|
||||
"0j5f3l58fynxx3v0w62vqpii7miabszgljpja36xx9s8hikh8sqn"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cli" ,r-cli)
|
||||
|
@ -6846,14 +6843,14 @@ more information about packages, and where they were installed from.")
|
|||
(define-public r-remotes
|
||||
(package
|
||||
(name "r-remotes")
|
||||
(version "2.0.1")
|
||||
(version "2.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "remotes" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1xkzlciv68jyf4j8hads0i47nxbgsy1kv7258c6zzyq66z0amhss"))))
|
||||
"0rsjxmhwpr51ilsdjfqn06mj8yr2d7nckcn3arv1ljn23qfkpcxa"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/r-lib/remotes#readme")
|
||||
(synopsis "R package installation from remote repositories")
|
||||
|
@ -6888,14 +6885,14 @@ directories or URLs with their associated programs.")
|
|||
(define-public r-rcmdcheck
|
||||
(package
|
||||
(name "r-rcmdcheck")
|
||||
(version "1.3.0")
|
||||
(version "1.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rcmdcheck" version))
|
||||
(sha256
|
||||
(base32
|
||||
"13liz9lmx9xgc0f7pjiz3sp8ygvazx2zslbiwz3p9fimfsx1yfsg"))))
|
||||
"1ga19jqix0zs7xyz2j155zyagwbv22r6dgv55g6wdjigc67qfsix"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-callr" ,r-callr)
|
||||
|
@ -6907,6 +6904,7 @@ directories or URLs with their associated programs.")
|
|||
("r-prettyunits" ,r-prettyunits)
|
||||
("r-r6" ,r-r6)
|
||||
("r-rprojroot" ,r-rprojroot)
|
||||
("r-sessioninfo" ,r-sessioninfo)
|
||||
("r-withr" ,r-withr)
|
||||
("r-xopen" ,r-xopen)))
|
||||
(home-page "https://github.com/r-Lib/rcmdcheck#readme")
|
||||
|
@ -6943,14 +6941,14 @@ quick reporting.")
|
|||
(define-public r-pander
|
||||
(package
|
||||
(name "r-pander")
|
||||
(version "0.6.2")
|
||||
(version "0.6.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "pander" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0gd7rqkpbraznip8jmri9lqa8ajg1sryyplhd6m633wg91whiipi"))))
|
||||
"1bd9sdghlsppmff18k5fg3i0visq9f4wc82rlhwq5m82bmgdgnyi"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-digest" ,r-digest)
|
||||
|
@ -7225,3 +7223,105 @@ R squared measure from L. J. Edwards et al. (2008) is extended to the GLMM
|
|||
using @dfn{penalized quasi-likelihood} (PQL) estimation (see Jaeger et
|
||||
al. (2016)).")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public r-weights
|
||||
(package
|
||||
(name "r-weights")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "weights" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0186bfpkhxngrshac6bpg37alp6slwhwd43inrm8hqg0vhpfgc4c"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-gdata" ,r-gdata)
|
||||
("r-hmisc" ,r-hmisc)
|
||||
("r-mice" ,r-mice)))
|
||||
(home-page
|
||||
"https://cran.r-project.org/web/packages/weights/")
|
||||
(synopsis "Weighting and weighted statistics")
|
||||
(description "This package Provides a variety of functions for producing
|
||||
simple weighted statistics, such as weighted Pearson's correlations, partial
|
||||
correlations, Chi-Squared statistics, histograms, and t-tests. Also now
|
||||
includes some software for quickly recoding survey data and plotting point
|
||||
estimates from interaction terms in regressions (and multiply imputed
|
||||
regressions). NOTE: Weighted partial correlation calculations pulled to
|
||||
address a bug.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-rcppannoy
|
||||
(package
|
||||
(name "r-rcppannoy")
|
||||
(version "0.0.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppAnnoy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ik50ancfgcvh03n4jsqwjk8lf056rbgd70q4l4didmvh5kcyjd1"))))
|
||||
(properties `((upstream-name . "RcppAnnoy")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "https://cran.r-project.org/web/packages/RcppAnnoy/")
|
||||
(synopsis "Rcpp bindings for Annoy, a library for Approximate Nearest Neighbors")
|
||||
(description
|
||||
"Annoy is a small C++ library for Approximate Nearest Neighbors written
|
||||
for efficient memory usage as well an ability to load from and save to disk.
|
||||
This package provides an R interface.")
|
||||
;; Annoy is released under ASL 2.0, but this wrapper is released under
|
||||
;; GPLv2+.
|
||||
(license (list license:gpl2+ license:asl2.0))))
|
||||
|
||||
(define-public r-ncdf4
|
||||
(package
|
||||
(name "r-ncdf4")
|
||||
(version "1.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ncdf4" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lwjjis0b83c4l3xvqai4ckzrskd6mychck1iwxcxgjvh0d77mgd"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("netcdf" ,netcdf)
|
||||
("zlib" ,zlib)))
|
||||
(home-page "https://cran.r-project.org/web/packages/ncdf4/index.html")
|
||||
(synopsis "R interface to Unidata netCDF format data files")
|
||||
(description
|
||||
"This package provides a high-level R interface to data files written
|
||||
using Unidata's netCDF library (version 4 or earlier), which are binary data
|
||||
files that are portable across platforms and include metadata information in
|
||||
addition to the data sets. Using this package, netCDF files can be opened and
|
||||
data sets read in easily. It is also easy to create new netCDF dimensions,
|
||||
variables, and files, in either version 3 or 4 format, and manipulate existing
|
||||
netCDF files.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-biocmanager
|
||||
(package
|
||||
(name "r-biocmanager")
|
||||
(version "1.30.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "BiocManager" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mfvx1xzsgiag9p42kdyqg8fvajyakrdy3z2smhdlaawzbi0qmax"))))
|
||||
(properties `((upstream-name . "BiocManager")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/BiocManager/")
|
||||
(synopsis "Access the Bioconductor project package repository")
|
||||
(description
|
||||
"This package provides a convenient tool to install and update
|
||||
Bioconductor packages.")
|
||||
(license license:artistic2.0)))
|
||||
|
|
|
@ -221,14 +221,14 @@ compatible to GNU Pth.")
|
|||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.2.10")
|
||||
(version "2.2.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"05f9804g72pffdxgvxjmjzkfcpjg1x221g9rwcr8fi51hrxd77br"))))
|
||||
"1ncwqjhcxh46fgkp84g2lhf91amcha7abk6wdm1kagzm7q93wv29"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -156,14 +156,14 @@ model.")
|
|||
(define-public r-rgraphviz
|
||||
(package
|
||||
(name "r-rgraphviz")
|
||||
(version "2.24.0")
|
||||
(version "2.26.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rgraphviz" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1037hzfxxcn46w6y88wm3kk2nixj0s8bk0hkmnshpxih3kmnvqby"))))
|
||||
"0bp6517xsih0wng2rgkh9z4r1afqhwl3h04z6ssm7p4cdj0ahm4y"))))
|
||||
(properties `((upstream-name . "Rgraphviz")))
|
||||
(build-system r-build-system)
|
||||
;; FIXME: Rgraphviz bundles the sources of an older variant of
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2017 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
|
@ -68,6 +68,7 @@
|
|||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages slang)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages networking)
|
||||
|
@ -1112,7 +1113,7 @@ Guile's foreign function interface.")
|
|||
(package
|
||||
(name "guile-sqlite3")
|
||||
(version "0.1.0")
|
||||
(home-page "https://notabug.org/civodul/guile-sqlite3.git")
|
||||
(home-page "https://notabug.org/guile-sqlite3/guile-sqlite3.git")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2243,4 +2244,39 @@ using S-expressions.")
|
|||
tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
;; There has not been any release yet.
|
||||
(define-public guile-newt
|
||||
(let ((commit "596ad760bee1be419d71271732f0f30eaee55143")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "guile-newt")
|
||||
(version (string-append "0-" revision "." (string-take commit 9)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/mothacehe/guile-newt")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"18qqbi0bc7vp2vlrhib3p3wwgn7wrlv5728dn0avirhw4fxxivnf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags
|
||||
'("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
("newt" ,newt)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "Guile bindings to Newt")
|
||||
(description
|
||||
"This package provides bindings for Newt, a programming library for
|
||||
color text mode, widget based user interfaces. The bindings are written in pure
|
||||
Scheme by using Guile’s foreign function interface.")
|
||||
(home-page "https://gitlab.com/mothacehe/guile-newt")
|
||||
(license license:gpl3+))))
|
||||
|
||||
;;; guile.scm ends here
|
||||
|
|
|
@ -317,8 +317,8 @@ generator library for C++.")
|
|||
(string-append (assoc-ref inputs "tzdata")
|
||||
"/share/zoneinfo")))
|
||||
|
||||
;; Don't phone home to check for updates.¬
|
||||
(substitute* "system/addon-manifest.xml"¬
|
||||
;; Don't phone home to check for updates.
|
||||
(substitute* "system/addon-manifest.xml"
|
||||
(("<addon optional=\\\"true\\\">service.xbmc.versioncheck</addon>")
|
||||
""))
|
||||
|
||||
|
|
|
@ -939,7 +939,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
|
|||
(define-public libreoffice
|
||||
(package
|
||||
(name "libreoffice")
|
||||
(version "6.1.2.1")
|
||||
(version "6.1.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -949,7 +949,7 @@ converting QuarkXPress file format. It supports versions 3.1 to 4.1.")
|
|||
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"149ziasibplihfxlzafzcm4737ns30hg9175967b43c81yv5f335"))
|
||||
"0i4gf3qi16fg7dxq2l4vhkwh4f5lx7xd1ilpzcw26vccqkv3hvyl"))
|
||||
(patches (search-patches "libreoffice-icu.patch"
|
||||
"libreoffice-glm.patch"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
|
|
|
@ -884,6 +884,25 @@ extremely large and complex data collections.")
|
|||
(license (license:x11-style
|
||||
"http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))
|
||||
|
||||
(define-public hdf5-1.10
|
||||
(package (inherit hdf5)
|
||||
(version "1.10.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "https://support.hdfgroup.org/ftp/HDF5/releases/"
|
||||
"hdf5-" (version-major+minor version)
|
||||
"/hdf5-" version "/src/hdf5-"
|
||||
version ".tar.bz2")
|
||||
(string-append "https://support.hdfgroup.org/ftp/HDF5/"
|
||||
"current"
|
||||
(apply string-append
|
||||
(take (string-split version #\.) 2))
|
||||
"/src/hdf5-" version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32 "1pr85fa1sh2ky6ai2hs3f21lp252grl2cq3wbyi4rh7dm83gyrqj"))
|
||||
(patches (list (search-patch "hdf5-config-date.patch")))))))
|
||||
|
||||
(define-public hdf-java
|
||||
(package
|
||||
(name "hdf-java")
|
||||
|
|
|
@ -284,7 +284,7 @@ score, keyboard, guitar, drum and controller views.")
|
|||
("pulseaudio" ,pulseaudio)
|
||||
("qtbase" ,qtbase)
|
||||
("qtx11extras" ,qtx11extras)
|
||||
("sqlite" ,sqlite)
|
||||
("sqlite" ,sqlite-with-column-metadata)
|
||||
("sparsehash" ,sparsehash)
|
||||
("taglib" ,taglib)))
|
||||
(home-page "http://clementine-player.org")
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
From da1ed24209121f7b0f03f360b1029d7125a38e70 Mon Sep 17 00:00:00 2001
|
||||
From: Efraim Flashner <efraim@flashner.co.il>
|
||||
Date: Tue, 4 Jul 2017 12:44:53 +0300
|
||||
Subject: [PATCH] Add NO_INTEL_COMPAT flag to Makefile.
|
||||
|
||||
see also: https://github.com/xiangzhou/GEMMA/pull/47
|
||||
|
||||
---
|
||||
Makefile | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 5bb8748..712b1ad 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -11,6 +11,7 @@
|
||||
SYS = LNX
|
||||
# Leave blank after "=" to disable; put "= 1" to enable
|
||||
WITH_LAPACK = 1
|
||||
+NO_INTEL_COMPAT =
|
||||
FORCE_32BIT =
|
||||
FORCE_DYNAMIC =
|
||||
DIST_NAME = gemma-0.96
|
||||
@@ -64,10 +65,13 @@ endif
|
||||
HDR += $(SRC_DIR)/lapack.h
|
||||
endif
|
||||
|
||||
-ifdef FORCE_32BIT
|
||||
- CPPFLAGS += -m32
|
||||
-else
|
||||
- CPPFLAGS += -m64
|
||||
+ifdef NO_INTEL_COMPAT
|
||||
+ else
|
||||
+ ifdef FORCE_32BIT
|
||||
+ CPPFLAGS += -m32
|
||||
+ else
|
||||
+ CPPFLAGS += -m64
|
||||
+ endif
|
||||
endif
|
||||
|
||||
ifdef FORCE_DYNAMIC
|
||||
--
|
||||
2.13.2
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
Fix CVE-2015-8863 (Off-by-one error in the tokenadd function in
|
||||
jv_parse.c in jq allows remote attackers to cause a denial of service
|
||||
(crash) via a long JSON-encoded number, which triggers a heap-based
|
||||
buffer overflow):
|
||||
|
||||
<https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8863>
|
||||
|
||||
Copied from upstream code repository:
|
||||
|
||||
<https://github.com/stedolan/jq/commit/8eb1367ca44e772963e704a700ef72ae2e12babd>
|
||||
|
||||
From 8eb1367ca44e772963e704a700ef72ae2e12babd Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Williams <nico@cryptonector.com>
|
||||
Date: Sat, 24 Oct 2015 17:24:57 -0500
|
||||
Subject: [PATCH] Heap buffer overflow in tokenadd() (fix #105)
|
||||
|
||||
This was an off-by one: the NUL terminator byte was not allocated on
|
||||
resize. This was triggered by JSON-encoded numbers longer than 256
|
||||
bytes.
|
||||
---
|
||||
jv_parse.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/jv_parse.c b/jv_parse.c
|
||||
index 3102ed4..84245b8 100644
|
||||
--- a/jv_parse.c
|
||||
+++ b/jv_parse.c
|
||||
@@ -383,7 +383,7 @@ static pfunc stream_token(struct jv_parser* p, char ch) {
|
||||
|
||||
static void tokenadd(struct jv_parser* p, char c) {
|
||||
assert(p->tokenpos <= p->tokenlen);
|
||||
- if (p->tokenpos == p->tokenlen) {
|
||||
+ if (p->tokenpos >= (p->tokenlen - 1)) {
|
||||
p->tokenlen = p->tokenlen*2 + 256;
|
||||
p->tokenbuf = jv_mem_realloc(p->tokenbuf, p->tokenlen);
|
||||
}
|
||||
@@ -485,7 +485,7 @@ static pfunc check_literal(struct jv_parser* p) {
|
||||
TRY(value(p, v));
|
||||
} else {
|
||||
// FIXME: better parser
|
||||
- p->tokenbuf[p->tokenpos] = 0; // FIXME: invalid
|
||||
+ p->tokenbuf[p->tokenpos] = 0;
|
||||
char* end = 0;
|
||||
double d = jvp_strtod(&p->dtoa, p->tokenbuf, &end);
|
||||
if (end == 0 || *end != 0)
|
|
@ -0,0 +1,62 @@
|
|||
Fix a test failure on 32-bit platforms as reported
|
||||
at <https://github.com/libgit2/libgit2/issues/4868>.
|
||||
|
||||
From 415a8ae9c9b6ac18f0524b6af8e58408b426457d Mon Sep 17 00:00:00 2001
|
||||
From: Edward Thomson <ethomson@edwardthomson.com>
|
||||
Date: Thu, 13 Sep 2018 13:27:07 +0100
|
||||
Subject: [PATCH] tests: don't run buf::oom on 32-bit systems
|
||||
|
||||
On a 32-bit Linux systems, the value large enough to make malloc
|
||||
guarantee a failure is also large enough that valgrind considers it
|
||||
"fishy". Skip this test on those systems entirely.
|
||||
---
|
||||
tests/buf/oom.c | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/buf/oom.c b/tests/buf/oom.c
|
||||
index 2741a8ddf2..ec3bad9979 100644
|
||||
--- a/tests/buf/oom.c
|
||||
+++ b/tests/buf/oom.c
|
||||
@@ -11,12 +11,8 @@
|
||||
*/
|
||||
#if defined(GIT_ARCH_64) && defined(__linux__)
|
||||
# define TOOBIG 0x0fffffffffffffff
|
||||
-#elif defined(__linux__)
|
||||
-# define TOOBIG 0x0fffffff
|
||||
#elif defined(GIT_ARCH_64)
|
||||
# define TOOBIG 0xffffffffffffff00
|
||||
-#else
|
||||
-# define TOOBIG 0xffffff00
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -25,13 +21,18 @@
|
||||
* will fail. And because the git_buf_grow() wrapper always
|
||||
* sets mark_oom, the code in git_buf_try_grow() will free
|
||||
* the internal buffer and set it to git_buf__oom.
|
||||
- *
|
||||
+ *
|
||||
* We initialized the internal buffer to (the static variable)
|
||||
* git_buf__initbuf. The purpose of this test is to make sure
|
||||
* that we don't try to free the static buffer.
|
||||
+ *
|
||||
+ * Skip this test entirely on 32-bit platforms; a buffer large enough
|
||||
+ * to guarantee malloc failures is so large that valgrind considers
|
||||
+ * it likely to be an error.
|
||||
*/
|
||||
void test_buf_oom__grow(void)
|
||||
{
|
||||
+#ifdef GIT_ARCH_64
|
||||
git_buf buf = GIT_BUF_INIT;
|
||||
|
||||
git_buf_clear(&buf);
|
||||
@@ -40,6 +41,9 @@ void test_buf_oom__grow(void)
|
||||
cl_assert(git_buf_oom(&buf));
|
||||
|
||||
git_buf_free(&buf);
|
||||
+#else
|
||||
+ cl_skip();
|
||||
+#endif
|
||||
}
|
||||
|
||||
void test_buf_oom__grow_by(void)
|
|
@ -50,13 +50,21 @@
|
|||
'(begin
|
||||
(substitute* "src/Makefile.in"
|
||||
(("/bin/ln") "ln"))
|
||||
(substitute* "configure"
|
||||
(("-ltermcap") ""))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:parallel-tests? #f
|
||||
#:parallel-build? #f)) ; there's at least one race
|
||||
#:parallel-build? #f ; there's at least one race
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'substitute-before-config
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((ncurses (assoc-ref inputs "ncurses")))
|
||||
(substitute* "configure"
|
||||
(("MISC_TERMINFO_DIRS=\"\"")
|
||||
(string-append "MISC_TERMINFO_DIRS="
|
||||
"\"" ncurses "/share/terminfo" "\"")))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("readline" ,readline)
|
||||
("zlib" ,zlib)
|
||||
|
|
|
@ -339,14 +339,14 @@ D.V. Hinkley (1997, CUP), originally written by Angelo Canty for S.")
|
|||
(define-public r-mass
|
||||
(package
|
||||
(name "r-mass")
|
||||
(version "7.3-51")
|
||||
(version "7.3-51.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "MASS" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0yp5ssfm9mahrp30y1hkqgjg70mzs6w065ba8h7j5ky1z6msdsdy"))))
|
||||
"14907ia8418mp3p1rs1i2f1x5b6kk5z998dk353a29j3xqf3ybyq"))))
|
||||
(properties `((upstream-name . "MASS")))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://www.stats.ox.ac.uk/pub/MASS4/")
|
||||
|
@ -467,13 +467,13 @@ estimation) corresponding to the book: Wand, M.P. and Jones, M.C. (1995)
|
|||
(define-public r-lattice
|
||||
(package
|
||||
(name "r-lattice")
|
||||
(version "0.20-35")
|
||||
(version "0.20-38")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "lattice" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pcnmaz3lr62ly0dcy5hnnqxshc4yqd43hrvlz3almgc9l7sna88"))))
|
||||
"0b8abkz7syscq883mrgv63pkwaqkcpwfx8rgbqy9vgfva0z5xszx"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://lattice.r-forge.r-project.org/")
|
||||
(synopsis "High-level data visualization system")
|
||||
|
@ -487,14 +487,14 @@ also flexible enough to handle most nonstandard requirements.")
|
|||
(define-public r-matrix
|
||||
(package
|
||||
(name "r-matrix")
|
||||
(version "1.2-14")
|
||||
(version "1.2-15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "Matrix" version))
|
||||
(sha256
|
||||
(base32
|
||||
"15hknim84nj3f54vkchca5ac0c3ip15v1by18k5parmn8wsl19j9"))))
|
||||
"1mshhyia6imh939p8labxi0wv21lal7csmccxi42klpgdh1j89kv"))))
|
||||
(properties `((upstream-name . "Matrix")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -614,14 +614,14 @@ analysis.")
|
|||
(define-public r-survival
|
||||
(package
|
||||
(name "r-survival")
|
||||
(version "2.42-6")
|
||||
(version "2.43-1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "survival" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1bsxc2fir9pbvdzy9n474fkl7har606h9zhspp0z67wnjpp48g73"))))
|
||||
"0220fjsq4ycx1n5zc5h39wdbj5j6xr8rzqbcixx2p25akzdn7kqk"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-matrix" ,r-matrix)))
|
||||
|
@ -2233,13 +2233,13 @@ tables, autolinks and strikethrough text.")
|
|||
(define-public r-roxygen2
|
||||
(package
|
||||
(name "r-roxygen2")
|
||||
(version "6.1.0")
|
||||
(version "6.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "roxygen2" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0ji9k4s1bvfbl8wimfqj1lqr33h1claaz30vb5pgksxyg77j5xaa"))))
|
||||
"0wq29ilqas8yn2z8v49fk0hbgchg29nmyyhwczgdipz0cbhbfipd"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-brew" ,r-brew)
|
||||
|
@ -3085,13 +3085,13 @@ using the multicore functionality of the parallel package.")
|
|||
(define-public r-dt
|
||||
(package
|
||||
(name "r-dt")
|
||||
(version "0.4")
|
||||
(version "0.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "DT" version))
|
||||
(sha256
|
||||
(base32
|
||||
"06gsqz7p2fv6hc3fm3759gaa50krcfrqrmy7qbxyam6a36w9daix"))))
|
||||
"1s5d3sld4l8zygpkvprvlbqa0pm2cv1bm7h7p999wxlap28vnnqf"))))
|
||||
(properties
|
||||
`((upstream-name . "DT")))
|
||||
(build-system r-build-system)
|
||||
|
@ -3099,7 +3099,8 @@ using the multicore functionality of the parallel package.")
|
|||
`(("r-crosstalk" ,r-crosstalk)
|
||||
("r-htmltools" ,r-htmltools)
|
||||
("r-htmlwidgets" ,r-htmlwidgets)
|
||||
("r-magrittr" ,r-magrittr)))
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-promises" ,r-promises)))
|
||||
(home-page "http://rstudio.github.io/DT")
|
||||
(synopsis "R wrapper of the DataTables JavaScript library")
|
||||
(description
|
||||
|
@ -3665,14 +3666,14 @@ selection.")
|
|||
(define-public r-tidyr
|
||||
(package
|
||||
(name "r-tidyr")
|
||||
(version "0.8.1")
|
||||
(version "0.8.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "tidyr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0485f19mkkglc4bv57y6bm6l9rfgd878hsz2xdg1nwgbqchjhgix"))))
|
||||
"03s9dv6c2dj65a769h8fgy9878y46rdq7x65i53kd44kag80i9cr"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-dplyr" ,r-dplyr)
|
||||
|
@ -4031,14 +4032,14 @@ hierarchical clustering dendrograms.")
|
|||
(define-public r-preprocesscore
|
||||
(package
|
||||
(name "r-preprocesscore")
|
||||
(version "1.42.0")
|
||||
(version "1.44.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "preprocessCore" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1afar1z7959v7mbzsqa77vqfh0yc7y3nv5ayx71485a8scwsfwbk"))))
|
||||
"0ijyjqi8mxxf350dhvgp36swwww5ag7ac9a6r6ymihc5syjr4w4j"))))
|
||||
(properties
|
||||
`((upstream-name . "preprocessCore")))
|
||||
(build-system r-build-system)
|
||||
|
@ -5016,14 +5017,14 @@ decompositions of such matrices, and solutions of linear systems.")
|
|||
(define-public r-modelmetrics
|
||||
(package
|
||||
(name "r-modelmetrics")
|
||||
(version "1.2.0")
|
||||
(version "1.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ModelMetrics" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1sgdyrf6fbsn18gk8slir4a1yhv133kfhyg2crfs759nff4aw89h"))))
|
||||
"158ddbw2snlyzd2q6mdaif5i67kq4qfvadylwjxgv1w2cmszrmk6"))))
|
||||
(properties `((upstream-name . "ModelMetrics")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(define-public syncthing
|
||||
(package
|
||||
(name "syncthing")
|
||||
(version "0.14.51")
|
||||
(version "0.14.52")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/syncthing/syncthing"
|
||||
|
@ -38,7 +38,7 @@
|
|||
"/syncthing-source-v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17phn8l2afhgzh0q9ambi28awj2m905sr1bicq2wc7ghypk5vgqh"))
|
||||
"1hhn72l74vb9l32i1a54ry2l85ji78cq6isd20lxxdk0bjqc4m29"))
|
||||
(modules '((guix build utils)))
|
||||
;; Delete bundled ("vendored") free software source code.
|
||||
(snippet '(begin
|
||||
|
|
|
@ -187,96 +187,112 @@ text-based approach to terminal recording.")
|
|||
(license license:gpl3)))
|
||||
|
||||
(define-public libtsm
|
||||
(package
|
||||
(name "libtsm")
|
||||
(version "3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://freedesktop.org/software/kmscon/releases/"
|
||||
"libtsm-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01ygwrsxfii0pngfikgqsb4fxp8n1bbs47l7hck81h9b9bc1ah8i"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libxkbcommon" ,libxkbcommon)))
|
||||
(synopsis "Xterm state machine library")
|
||||
(description "TSM is a state machine for DEC VT100-VT520 compatible
|
||||
(let ((commit "f70e37982f382b03c6939dac3d5f814450bda253")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "libtsm")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
;; The freedesktop repository is no longer maintained.
|
||||
(uri (git-reference
|
||||
(url (string-append "https://github.com/Aetf/" name))
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0mwn91i5h5d518i1s05y7hzv6bc13vzcvxszpfh77473iwg4wprx"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DBUILD_TESTING=ON")))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libxkbcommon" ,libxkbcommon)
|
||||
("check" ,check)))
|
||||
(synopsis "Xterm state machine library")
|
||||
(description "TSM is a state machine for DEC VT100-VT520 compatible
|
||||
terminal emulators. It tries to support all common standards while keeping
|
||||
compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/libtsm")
|
||||
;; Hash table implementation is lgpl2.1+ licensed.
|
||||
;; The wcwidth implementation in external/wcwidth.{h,c} uses a license
|
||||
;; derived from ISC.
|
||||
;; UCS-4 to UTF-8 encoding is copied from "terminology" which is released
|
||||
;; under the bsd 2 license.
|
||||
(license (list license:expat license:lgpl2.1+ license:isc license:bsd-2))))
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/libtsm")
|
||||
;; Hash table implementation is lgpl2.1+ licensed.
|
||||
;; The wcwidth implementation in external/wcwidth.{h,c} uses a license
|
||||
;; derived from ISC.
|
||||
;; UCS-4 to UTF-8 encoding is copied from "terminology" which is released
|
||||
;; under the bsd 2 license.
|
||||
(license (list license:expat license:lgpl2.1+ license:isc license:bsd-2)))))
|
||||
|
||||
(define-public kmscon
|
||||
(package
|
||||
(name "kmscon")
|
||||
(version "8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://freedesktop.org/software/kmscon/releases/"
|
||||
"kmscon-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Use elogind instead of systemd.
|
||||
'(begin
|
||||
(substitute* "configure"
|
||||
(("libsystemd-daemon libsystemd-login")
|
||||
"libelogind"))
|
||||
(substitute* "src/uterm_systemd.c"
|
||||
(("#include <systemd/sd-login.h>")
|
||||
"#include <elogind/sd-login.h>")
|
||||
;; We don't have this header.
|
||||
(("#include <systemd/sd-daemon\\.h>")
|
||||
"")
|
||||
;; Replace the call to 'sd_booted' by the truth value.
|
||||
(("sd_booted\\(\\)")
|
||||
"1"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("libxslt" ,libxslt) ;to build the man page
|
||||
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
|
||||
("docbook-xsl" ,docbook-xsl)))
|
||||
(inputs
|
||||
`(("libdrm" ,libdrm)
|
||||
("libtsm" ,libtsm)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("logind" ,elogind)
|
||||
("mesa" ,mesa)
|
||||
("pango" ,pango)
|
||||
("udev" ,eudev)))
|
||||
(synopsis "Linux KMS-based terminal emulator")
|
||||
(description "Kmscon is a terminal emulator based on Linux's @dfn{kernel
|
||||
(let ((commit "01dd0a231e2125a40ceba5f59fd945ff29bf2cdc")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "kmscon")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
;; The freedesktop repository is no longer maintained.
|
||||
(uri (git-reference
|
||||
(url (string-append "https://github.com/Aetf/" name))
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0q62kjsvy2iwy8adfiygx2bfwlh83rphgxbis95ycspqidg9py87"))
|
||||
(modules '((guix build utils)))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen.sh
|
||||
(lambda _
|
||||
(zero? (system* "sh" "autogen.sh"))))
|
||||
;; Use elogind instead of systemd.
|
||||
(add-before 'configure 'remove-systemd
|
||||
(lambda _
|
||||
(substitute* "configure"
|
||||
(("libsystemd-daemon libsystemd-login")
|
||||
"libelogind"))
|
||||
(substitute* "src/uterm_systemd.c"
|
||||
(("#include <systemd/sd-login.h>")
|
||||
"#include <elogind/sd-login.h>")
|
||||
;; We don't have this header.
|
||||
(("#include <systemd/sd-daemon\\.h>")
|
||||
"")
|
||||
;; Replace the call to 'sd_booted' by the truth value.
|
||||
(("sd_booted\\(\\)")
|
||||
"1")))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("libxslt" ,libxslt) ;to build the man page
|
||||
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
|
||||
("docbook-xsl" ,docbook-xsl)))
|
||||
(inputs
|
||||
`(("libdrm" ,libdrm)
|
||||
("libtsm" ,libtsm)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("logind" ,elogind)
|
||||
("mesa" ,mesa)
|
||||
("pango" ,pango)
|
||||
("udev" ,eudev)))
|
||||
(synopsis "Linux KMS-based terminal emulator")
|
||||
(description "Kmscon is a terminal emulator based on Linux's @dfn{kernel
|
||||
mode setting} (KMS). It can replace the in-kernel virtual terminal (VT)
|
||||
implementation with a user-space console. Compared to the Linux console,
|
||||
kmscon provides enhanced features including XKB-compatible internationalized
|
||||
keyboard support, UTF-8 input/font support, hardware-accelerated rendering,
|
||||
multi-seat support, a replacement for @command{mingetty}, and more.")
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/kmscon")
|
||||
;; Hash table implementation is lgpl2.1+ licensed.
|
||||
;; The wcwidth implementation in external/wcwidth.{h,c} uses a license
|
||||
;; derived from ISC.
|
||||
;; UCS-4 to UTF-8 encoding is copied from "terminology" which is released
|
||||
;; under the bsd 2 license.
|
||||
;; Unifont-Font is from http://unifoundry.com/unifont.html and licensed
|
||||
;; under the terms of the GNU GPL.
|
||||
(license (list license:expat license:lgpl2.1+ license:bsd-2
|
||||
license:gpl2+))
|
||||
(supported-systems (filter (cut string-suffix? "-linux" <>)
|
||||
%supported-systems))))
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/kmscon")
|
||||
;; Hash table implementation is lgpl2.1+ licensed.
|
||||
;; The wcwidth implementation in external/wcwidth.{h,c} uses a license
|
||||
;; derived from ISC.
|
||||
;; UCS-4 to UTF-8 encoding is copied from "terminology" which is released
|
||||
;; under the bsd 2 license.
|
||||
;; Unifont-Font is from http://unifoundry.com/unifont.html and licensed
|
||||
;; under the terms of the GNU GPL.
|
||||
(license (list license:expat license:lgpl2.1+ license:bsd-2
|
||||
license:gpl2+))
|
||||
(supported-systems (filter (cut string-suffix? "-linux" <>)
|
||||
%supported-systems)))))
|
||||
|
||||
(define-public libtermkey
|
||||
(package
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -21,13 +22,12 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (gnu packages golang))
|
||||
#:use-module (guix build-system go))
|
||||
|
||||
(define-public terraform-docs
|
||||
(package
|
||||
(name "terraform-docs")
|
||||
(version "0.3.0")
|
||||
(version "0.5.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -36,11 +36,8 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xchpik32ab8m89s6jv671vswg8xhprfvh6s5md0zd36482d2nmm"))))
|
||||
"12w2yr669hk5kxdb9rrzsn8hwvx8rzrc1rmn8hs9l8z1bkfhr4gg"))))
|
||||
(build-system go-build-system)
|
||||
(native-inputs
|
||||
`(("go-github-com-hashicorp-hcl" ,go-github-com-hashicorp-hcl)
|
||||
("go-github-com-tj-docopt" ,go-github-com-tj-docopt)))
|
||||
(arguments
|
||||
'(#:import-path "github.com/segmentio/terraform-docs"))
|
||||
(synopsis "Generate documentation from Terraform modules")
|
||||
|
|
|
@ -469,7 +469,8 @@ everything from small to very large projects with speed and efficiency.")
|
|||
(sha256
|
||||
(base32
|
||||
"15kp4sq72kh762bm7dgspyrk0a6siarvll3k7nrhs0xy77idf80g"))
|
||||
(patches (search-patches "libgit2-mtime-0.patch"))
|
||||
(patches (search-patches "libgit2-mtime-0.patch"
|
||||
"libgit2-oom-test.patch"))
|
||||
|
||||
;; Remove bundled software.
|
||||
(snippet '(begin
|
||||
|
|
|
@ -614,14 +614,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
|
|||
(define-public ffmpeg
|
||||
(package
|
||||
(name "ffmpeg")
|
||||
(version "4.0.3")
|
||||
(version "4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vg229mxcrm415cq6q1nfm891hm4x56mb5p4cqjnlqnky7ikfg15"))))
|
||||
"150rrm549fy1x71c9whmyi5knyd9sliwvmcsm438bdgg4v8c93m3"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("fontconfig" ,fontconfig)
|
||||
|
@ -1269,7 +1269,7 @@ access to mpv's powerful playback capabilities.")
|
|||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2018.10.05")
|
||||
(version "2018.11.03")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://yt-dl.org/downloads/"
|
||||
|
@ -1277,7 +1277,7 @@ access to mpv's powerful playback capabilities.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1iq02kwxdgh07bf0w0fvbsjbdshs4kja35gy8m70ji9cj10l1mbw"))))
|
||||
"11phhwhr1g050h4625d5jsgcsjnnv7jc6xcrbn7zdzd32f6gy2lj"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; The problem here is that the directory for the man page and completion
|
||||
|
|
|
@ -195,14 +195,14 @@ Interface} specification.")
|
|||
(name "nginx")
|
||||
;; Consider updating the nginx-documentation package if the nginx package is
|
||||
;; updated.
|
||||
(version "1.14.0")
|
||||
(version "1.14.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nginx.org/download/nginx-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d9c0avfpbwvzyg53b59ks8shpnrxnbnshcd7ziizflsyv5vw5ax"))))
|
||||
"19542jxcjf4dvrqvgb5vr36mhbzcjrxc3v0xh451rm60610rf2dz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("openssl" ,openssl)
|
||||
("pcre" ,pcre)
|
||||
|
@ -4166,19 +4166,15 @@ It uses the uwsgi protocol for all the networking/interprocess communications.")
|
|||
(define-public jq
|
||||
(package
|
||||
(name "jq")
|
||||
(version "1.5")
|
||||
(version "1.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/stedolan/" name
|
||||
"/releases/download/" name "-" version
|
||||
"/" name "-" version ".tar.gz"))
|
||||
(uri (string-append "https://github.com/stedolan/jq"
|
||||
"/releases/download/jq-" version
|
||||
"/jq-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"))
|
||||
;; This patch has been pushed and the vulnerability will be
|
||||
;; fixed in the next release after 1.5.
|
||||
;; https://github.com/stedolan/jq/issues/995
|
||||
(patches (search-patches "jq-CVE-2015-8863.patch"))))
|
||||
"1a76f46a652i2g333kfvrl6mp2w7whf6h1yly519izg4y967h9cn"))))
|
||||
(inputs
|
||||
`(("oniguruma" ,oniguruma)))
|
||||
(native-inputs
|
||||
|
|
|
@ -5453,6 +5453,58 @@ The XCB util module provides the following libraries:
|
|||
"file://COPYING"
|
||||
"See COPYING in the distribution."))))
|
||||
|
||||
(define-public xcb-util-errors
|
||||
(let ((commit "5d660ebe872cadcdc85de9d6f9afe05de629c030")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "xcb-util-errors")
|
||||
(version (git-version "1.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://anongit.freedesktop.org/git/xcb/util-errors.git")
|
||||
(commit commit)
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"12bah0iz5k6b9hwlc5zffyfg2gnrajll3gn5s8zmazgynvw72ahg"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"))
|
||||
(inputs
|
||||
`(("util-macros" ,util-macros)
|
||||
("xcb-proto" ,xcb-proto)))
|
||||
(propagated-inputs
|
||||
`(("libxcb" ,libxcb)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("python-2" ,python-2)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
;; The default 'bootstrap' phase would run 'autogen.sh', which
|
||||
;; would try to run ./configure and fail due to unpatched
|
||||
;; shebangs.
|
||||
(invoke "autoreconf" "-v" "--install"))))))
|
||||
(home-page "https://cgit.freedesktop.org/xcb/util-errors/")
|
||||
(synopsis "XCB helper library for printing information about X11 errors")
|
||||
(description
|
||||
"The XCB util module provides a number of libraries which sit on
|
||||
top of libxcb, the core X protocol library, and some of the extension
|
||||
libraries. These experimental libraries provide convenience functions
|
||||
and interfaces which make the raw X protocol more usable. Some of the
|
||||
libraries also provide client-side code which is not strictly part of
|
||||
the X protocol but which has traditionally been provided by Xlib.
|
||||
|
||||
The XCB util-errors module provides a utility library that gives human
|
||||
readable names to error codes, event codes, and also to major and minor
|
||||
numbers.")
|
||||
(license license:x11))))
|
||||
|
||||
(define-public xcb-util-image
|
||||
(package
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -2040,6 +2041,8 @@ This service is not part of @var{%base-services}."
|
|||
(default (file-append shadow "/bin/login")))
|
||||
(login-arguments kmscon-configuration-login-arguments
|
||||
(default '("-p")))
|
||||
(auto-login kmscon-configuration-auto-login
|
||||
(default #f))
|
||||
(hardware-acceleration? kmscon-configuration-hardware-acceleration?
|
||||
(default #f))) ; #t causes failure
|
||||
|
||||
|
@ -2051,14 +2054,20 @@ This service is not part of @var{%base-services}."
|
|||
(virtual-terminal (kmscon-configuration-virtual-terminal config))
|
||||
(login-program (kmscon-configuration-login-program config))
|
||||
(login-arguments (kmscon-configuration-login-arguments config))
|
||||
(auto-login (kmscon-configuration-auto-login config))
|
||||
(hardware-acceleration? (kmscon-configuration-hardware-acceleration? config)))
|
||||
|
||||
(define kmscon-command
|
||||
#~(list
|
||||
#$(file-append kmscon "/bin/kmscon") "--login"
|
||||
"--vt" #$virtual-terminal
|
||||
"--no-switchvt" ;Prevent a switch to the virtual terminal.
|
||||
#$@(if hardware-acceleration? '("--hwaccel") '())
|
||||
"--" #$login-program #$@login-arguments))
|
||||
"--login" "--"
|
||||
#$login-program #$@login-arguments
|
||||
#$@(if auto-login
|
||||
#~(#$auto-login)
|
||||
#~())))
|
||||
|
||||
(shepherd-service
|
||||
(documentation "kmscon virtual terminal")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -54,6 +54,8 @@
|
|||
(default "/var/log/cuirass.log"))
|
||||
(cache-directory cuirass-configuration-cache-directory ;string (dir-name)
|
||||
(default "/var/cache/cuirass"))
|
||||
(ttl cuirass-configuration-ttl ;integer
|
||||
(default (* 30 24 3600)))
|
||||
(user cuirass-configuration-user ;string
|
||||
(default "cuirass"))
|
||||
(group cuirass-configuration-group ;string
|
||||
|
@ -86,6 +88,7 @@
|
|||
(group (cuirass-configuration-group config))
|
||||
(interval (cuirass-configuration-interval config))
|
||||
(database (cuirass-configuration-database config))
|
||||
(ttl (cuirass-configuration-ttl config))
|
||||
(port (cuirass-configuration-port config))
|
||||
(host (cuirass-configuration-host config))
|
||||
(specs (cuirass-configuration-specifications config))
|
||||
|
@ -102,6 +105,7 @@
|
|||
"--specifications"
|
||||
#$(scheme-file "cuirass-specs.scm" specs)
|
||||
"--database" #$database
|
||||
"--ttl" #$(string-append (number->string ttl) "s")
|
||||
"--port" #$(number->string port)
|
||||
"--listen" #$host
|
||||
"--interval" #$(number->string interval)
|
||||
|
|
|
@ -763,9 +763,9 @@ manually.")
|
|||
(use-modules (guix build utils)
|
||||
(ice-9 rdelim))
|
||||
(let ((ddclient-user
|
||||
#$(passwd:uid (getpw (ddclient-configuration-user config))))
|
||||
(passwd:uid (getpw #$(ddclient-configuration-user config))))
|
||||
(ddclient-group
|
||||
#$(passwd:gid (getpw (ddclient-configuration-group config))))
|
||||
(passwd:gid (getpw #$(ddclient-configuration-group config))))
|
||||
(ddclient-secret-file
|
||||
#$(ddclient-configuration-secret-file config)))
|
||||
;; 'ddclient' complains about ddclient.conf file permissions, which
|
||||
|
|
|
@ -53,7 +53,7 @@ release corresponding to NAME and VERSION."
|
|||
(list (string-append "https://bioconductor.org/packages/release/bioc/src/contrib/"
|
||||
name "_" version ".tar.gz")
|
||||
;; TODO: use %bioconductor-version from (guix import cran)
|
||||
(string-append "https://bioconductor.org/packages/3.7/bioc/src/contrib/Archive/"
|
||||
(string-append "https://bioconductor.org/packages/3.8/bioc/src/contrib/Archive/"
|
||||
name "_" version ".tar.gz")))
|
||||
|
||||
(define %r-build-system-modules
|
||||
|
|
|
@ -168,6 +168,28 @@ REFERENCE-GRAPHS, a list of reference-graph files."
|
|||
|
||||
(reduce + 0 (map file-size items)))
|
||||
|
||||
(define (reset-permissions file)
|
||||
"Reset the permissions on FILE and its sub-directories so that they are all
|
||||
read-only."
|
||||
;; XXX: This procedure exists just to work around the inability of
|
||||
;; 'copy-recursively' to preserve permissions.
|
||||
(file-system-fold (const #t) ;enter?
|
||||
(lambda (file stat _) ;leaf
|
||||
(unless (eq? 'symlink (stat:type stat))
|
||||
(chmod file
|
||||
(if (zero? (logand (stat:mode stat)
|
||||
#o100))
|
||||
#o444
|
||||
#o555))))
|
||||
(const #t) ;down
|
||||
(lambda (directory stat _) ;up
|
||||
(chmod directory #o555))
|
||||
(const #f) ;skip
|
||||
(const #f) ;error
|
||||
#t
|
||||
file
|
||||
lstat))
|
||||
|
||||
(define* (populate-store reference-graphs target
|
||||
#:key (log-port (current-error-port)))
|
||||
"Populate the store under directory TARGET with the items specified in
|
||||
|
@ -197,7 +219,13 @@ REFERENCE-GRAPHS, a list of reference-graph files."
|
|||
(for-each (lambda (thing)
|
||||
(copy-recursively thing
|
||||
(string-append target thing)
|
||||
#:keep-mtime? #t
|
||||
#:log (%make-void-port "w"))
|
||||
|
||||
;; XXX: Since 'copy-recursively' doesn't allow us to
|
||||
;; preserve permissions, we have to traverse TARGET to
|
||||
;; make sure everything is read-only.
|
||||
(reset-permissions (string-append target thing))
|
||||
(report))
|
||||
things)))))
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
delete-file-recursively
|
||||
with-directory-excursion
|
||||
invoke))
|
||||
#:use-module (gnu build install)
|
||||
#:use-module (json) ;guile-json
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
@ -108,11 +109,15 @@ return \"a\"."
|
|||
(symlinks '())
|
||||
(transformations '())
|
||||
(system (utsname:machine (uname)))
|
||||
database
|
||||
compressor
|
||||
(creation-time (current-time time-utc)))
|
||||
"Write to IMAGE a Docker image archive containing the given PATHS. PREFIX
|
||||
must be a store path that is a prefix of any store paths in PATHS.
|
||||
|
||||
When DATABASE is true, copy it to /var/guix/db in the image and create
|
||||
/var/guix/gcroots and friends.
|
||||
|
||||
SYMLINKS must be a list of (SOURCE -> TARGET) tuples describing symlinks to be
|
||||
created in the image, where each TARGET is relative to PREFIX.
|
||||
TRANSFORMATIONS must be a list of (OLD -> NEW) tuples describing how to
|
||||
|
@ -188,10 +193,15 @@ SRFI-19 time-utc object, as the creation time in metadata."
|
|||
source))))
|
||||
symlinks)
|
||||
|
||||
(when database
|
||||
;; Initialize /var/guix, assuming PREFIX points to a profile.
|
||||
(install-database-and-gc-roots "." database prefix))
|
||||
|
||||
(apply invoke "tar" "-cf" "layer.tar"
|
||||
`(,@transformation-options
|
||||
,@%tar-determinism-options
|
||||
,@paths
|
||||
,@(if database '("var") '())
|
||||
,@(map symlink-source symlinks)))
|
||||
;; It is possible for "/" to show up in the archive, especially when
|
||||
;; applying transformations. For example, the transformation
|
||||
|
@ -203,7 +213,11 @@ SRFI-19 time-utc object, as the creation time in metadata."
|
|||
(system* "tar" "--delete" "/" "-f" "layer.tar")
|
||||
(for-each delete-file-recursively
|
||||
(map (compose topmost-component symlink-source)
|
||||
symlinks)))
|
||||
symlinks))
|
||||
|
||||
;; Delete /var/guix.
|
||||
(when database
|
||||
(delete-file-recursively "var")))
|
||||
|
||||
(with-output-to-file "config.json"
|
||||
(lambda ()
|
||||
|
|
|
@ -127,9 +127,9 @@ package definition."
|
|||
(define %cran-url "http://cran.r-project.org/web/packages/")
|
||||
(define %bioconductor-url "https://bioconductor.org/packages/")
|
||||
|
||||
;; The latest Bioconductor release is 3.7. Bioconductor packages should be
|
||||
;; The latest Bioconductor release is 3.8. Bioconductor packages should be
|
||||
;; updated together.
|
||||
(define %bioconductor-version "3.7")
|
||||
(define %bioconductor-version "3.8")
|
||||
|
||||
(define %bioconductor-packages-list-url
|
||||
(string-append "https://bioconductor.org/packages/"
|
||||
|
|
|
@ -52,6 +52,9 @@
|
|||
#:export (compressor?
|
||||
lookup-compressor
|
||||
self-contained-tarball
|
||||
docker-image
|
||||
squashfs-image
|
||||
|
||||
guix-pack))
|
||||
|
||||
;; Type of a compression tool.
|
||||
|
@ -103,6 +106,47 @@ found."
|
|||
(package-transitive-propagated-inputs package)))
|
||||
(list guile-gcrypt guile-sqlite3)))
|
||||
|
||||
(define (store-database items)
|
||||
"Return a directory containing a store database where all of ITEMS and their
|
||||
dependencies are registered."
|
||||
(define schema
|
||||
(local-file (search-path %load-path
|
||||
"guix/store/schema.sql")))
|
||||
|
||||
|
||||
(define labels
|
||||
(map (lambda (n)
|
||||
(string-append "closure" (number->string n)))
|
||||
(iota (length items))))
|
||||
|
||||
(define build
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
;; XXX: Adding (gnu build install) just to work around
|
||||
;; <https://bugs.gnu.org/15602>: that way, (guix build store-copy) is
|
||||
;; copied last and the 'store-info-XXX' macros are correctly expanded.
|
||||
(with-imported-modules (source-module-closure
|
||||
'((guix build store-copy)
|
||||
(guix store database)
|
||||
(gnu build install)))
|
||||
#~(begin
|
||||
(use-modules (guix store database)
|
||||
(guix build store-copy)
|
||||
(srfi srfi-1))
|
||||
|
||||
(define (read-closure closure)
|
||||
(call-with-input-file closure read-reference-graph))
|
||||
|
||||
(let ((items (append-map read-closure '#$labels)))
|
||||
(register-items items
|
||||
#:state-directory #$output
|
||||
#:deduplicate? #f
|
||||
#:reset-timestamps? #f
|
||||
#:registration-time %epoch
|
||||
#:schema #$schema))))))
|
||||
|
||||
(computed-file "store-database" build
|
||||
#:options `(#:references-graphs ,(zip labels items))))
|
||||
|
||||
(define* (self-contained-tarball name profile
|
||||
#:key target
|
||||
deduplicate?
|
||||
|
@ -117,121 +161,116 @@ with a properly initialized store database.
|
|||
|
||||
SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be
|
||||
added to the pack."
|
||||
(define schema
|
||||
(define database
|
||||
(and localstatedir?
|
||||
(local-file (search-path %load-path
|
||||
"guix/store/schema.sql"))))
|
||||
(file-append (store-database (list profile))
|
||||
"/db/db.sqlite")))
|
||||
|
||||
(define build
|
||||
(with-imported-modules `(((guix config) => ,(make-config.scm))
|
||||
,@(source-module-closure
|
||||
`((guix build utils)
|
||||
(guix build union)
|
||||
(guix build store-copy)
|
||||
(gnu build install))
|
||||
#:select? not-config?))
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
((guix build union) #:select (relative-file-name))
|
||||
(gnu build install)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
(with-imported-modules (source-module-closure
|
||||
`((guix build utils)
|
||||
(guix build union)
|
||||
(gnu build install))
|
||||
#:select? not-config?)
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
((guix build union) #:select (relative-file-name))
|
||||
(gnu build install)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
|
||||
(define %root "root")
|
||||
(define %root "root")
|
||||
|
||||
(define symlink->directives
|
||||
;; Return "populate directives" to make the given symlink and its
|
||||
;; parent directories.
|
||||
(match-lambda
|
||||
((source '-> target)
|
||||
(let ((target (string-append #$profile "/" target))
|
||||
(parent (dirname source)))
|
||||
;; Never add a 'directory' directive for "/" so as to
|
||||
;; preserve its ownnership when extracting the archive (see
|
||||
;; below), and also because this would lead to adding the
|
||||
;; same entries twice in the tarball.
|
||||
`(,@(if (string=? parent "/")
|
||||
'()
|
||||
`((directory ,parent)))
|
||||
(,source
|
||||
-> ,(relative-file-name parent target)))))))
|
||||
(define symlink->directives
|
||||
;; Return "populate directives" to make the given symlink and its
|
||||
;; parent directories.
|
||||
(match-lambda
|
||||
((source '-> target)
|
||||
(let ((target (string-append #$profile "/" target))
|
||||
(parent (dirname source)))
|
||||
;; Never add a 'directory' directive for "/" so as to
|
||||
;; preserve its ownnership when extracting the archive (see
|
||||
;; below), and also because this would lead to adding the
|
||||
;; same entries twice in the tarball.
|
||||
`(,@(if (string=? parent "/")
|
||||
'()
|
||||
`((directory ,parent)))
|
||||
(,source
|
||||
-> ,(relative-file-name parent target)))))))
|
||||
|
||||
(define directives
|
||||
;; Fully-qualified symlinks.
|
||||
(append-map symlink->directives '#$symlinks))
|
||||
(define directives
|
||||
;; Fully-qualified symlinks.
|
||||
(append-map symlink->directives '#$symlinks))
|
||||
|
||||
;; The --sort option was added to GNU tar in version 1.28, released
|
||||
;; 2014-07-28. For testing, we use the bootstrap tar, which is
|
||||
;; older and doesn't support it.
|
||||
(define tar-supports-sort?
|
||||
(zero? (system* (string-append #+archiver "/bin/tar")
|
||||
"cf" "/dev/null" "--files-from=/dev/null"
|
||||
"--sort=name")))
|
||||
;; The --sort option was added to GNU tar in version 1.28, released
|
||||
;; 2014-07-28. For testing, we use the bootstrap tar, which is
|
||||
;; older and doesn't support it.
|
||||
(define tar-supports-sort?
|
||||
(zero? (system* (string-append #+archiver "/bin/tar")
|
||||
"cf" "/dev/null" "--files-from=/dev/null"
|
||||
"--sort=name")))
|
||||
|
||||
;; Add 'tar' to the search path.
|
||||
(setenv "PATH" #+(file-append archiver "/bin"))
|
||||
;; Add 'tar' to the search path.
|
||||
(setenv "PATH" #+(file-append archiver "/bin"))
|
||||
|
||||
;; Note: there is not much to gain here with deduplication and there
|
||||
;; is the overhead of the '.links' directory, so turn it off.
|
||||
;; Furthermore GNU tar < 1.30 sometimes fails to extract tarballs
|
||||
;; with hard links:
|
||||
;; <http://lists.gnu.org/archive/html/bug-tar/2017-11/msg00009.html>.
|
||||
(populate-single-profile-directory %root
|
||||
#:profile #$profile
|
||||
#:closure "profile"
|
||||
#:deduplicate? #f
|
||||
#:register? #$localstatedir?
|
||||
#:schema #$schema)
|
||||
;; Note: there is not much to gain here with deduplication and there
|
||||
;; is the overhead of the '.links' directory, so turn it off.
|
||||
;; Furthermore GNU tar < 1.30 sometimes fails to extract tarballs
|
||||
;; with hard links:
|
||||
;; <http://lists.gnu.org/archive/html/bug-tar/2017-11/msg00009.html>.
|
||||
(populate-single-profile-directory %root
|
||||
#:profile #$profile
|
||||
#:closure "profile"
|
||||
#:database #+database)
|
||||
|
||||
;; Create SYMLINKS.
|
||||
(for-each (cut evaluate-populate-directive <> %root)
|
||||
directives)
|
||||
;; Create SYMLINKS.
|
||||
(for-each (cut evaluate-populate-directive <> %root)
|
||||
directives)
|
||||
|
||||
;; Create the tarball. Use GNU format so there's no file name
|
||||
;; length limitation.
|
||||
(with-directory-excursion %root
|
||||
(exit
|
||||
(zero? (apply system* "tar"
|
||||
#+@(if (compressor-command compressor)
|
||||
#~("-I"
|
||||
(string-join
|
||||
'#+(compressor-command compressor)))
|
||||
#~())
|
||||
"--format=gnu"
|
||||
;; Create the tarball. Use GNU format so there's no file name
|
||||
;; length limitation.
|
||||
(with-directory-excursion %root
|
||||
(exit
|
||||
(zero? (apply system* "tar"
|
||||
#+@(if (compressor-command compressor)
|
||||
#~("-I"
|
||||
(string-join
|
||||
'#+(compressor-command compressor)))
|
||||
#~())
|
||||
"--format=gnu"
|
||||
|
||||
;; Avoid non-determinism in the archive. Use
|
||||
;; mtime = 1, not zero, because that is what the
|
||||
;; daemon does for files in the store (see the
|
||||
;; 'mtimeStore' constant in local-store.cc.)
|
||||
(if tar-supports-sort? "--sort=name" "--mtime=@1")
|
||||
"--mtime=@1" ;for files in /var/guix
|
||||
"--owner=root:0"
|
||||
"--group=root:0"
|
||||
;; Avoid non-determinism in the archive. Use
|
||||
;; mtime = 1, not zero, because that is what the
|
||||
;; daemon does for files in the store (see the
|
||||
;; 'mtimeStore' constant in local-store.cc.)
|
||||
(if tar-supports-sort? "--sort=name" "--mtime=@1")
|
||||
"--mtime=@1" ;for files in /var/guix
|
||||
"--owner=root:0"
|
||||
"--group=root:0"
|
||||
|
||||
"--check-links"
|
||||
"-cvf" #$output
|
||||
;; Avoid adding / and /var to the tarball, so
|
||||
;; that the ownership and permissions of those
|
||||
;; directories will not be overwritten when
|
||||
;; extracting the archive. Do not include /root
|
||||
;; because the root account might have a
|
||||
;; different home directory.
|
||||
#$@(if localstatedir?
|
||||
'("./var/guix")
|
||||
'())
|
||||
"--check-links"
|
||||
"-cvf" #$output
|
||||
;; Avoid adding / and /var to the tarball, so
|
||||
;; that the ownership and permissions of those
|
||||
;; directories will not be overwritten when
|
||||
;; extracting the archive. Do not include /root
|
||||
;; because the root account might have a
|
||||
;; different home directory.
|
||||
#$@(if localstatedir?
|
||||
'("./var/guix")
|
||||
'())
|
||||
|
||||
(string-append "." (%store-directory))
|
||||
(string-append "." (%store-directory))
|
||||
|
||||
(delete-duplicates
|
||||
(filter-map (match-lambda
|
||||
(('directory directory)
|
||||
(string-append "." directory))
|
||||
((source '-> _)
|
||||
(string-append "." source))
|
||||
(_ #f))
|
||||
directives))))))))))
|
||||
(delete-duplicates
|
||||
(filter-map (match-lambda
|
||||
(('directory directory)
|
||||
(string-append "." directory))
|
||||
((source '-> _)
|
||||
(string-append "." source))
|
||||
(_ #f))
|
||||
directives)))))))))
|
||||
|
||||
(gexp->derivation (string-append name ".tar"
|
||||
(compressor-extension compressor))
|
||||
|
@ -240,7 +279,6 @@ added to the pack."
|
|||
|
||||
(define* (squashfs-image name profile
|
||||
#:key target
|
||||
deduplicate?
|
||||
(compressor (first %compressors))
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
|
@ -251,75 +289,85 @@ points for virtual file systems (like procfs), and optional symlinks.
|
|||
|
||||
SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be
|
||||
added to the pack."
|
||||
(define database
|
||||
(and localstatedir?
|
||||
(file-append (store-database (list profile))
|
||||
"/db/db.sqlite")))
|
||||
|
||||
(define build
|
||||
(with-imported-modules `(((guix config) => ,(make-config.scm))
|
||||
,@(source-module-closure
|
||||
'((guix build utils)
|
||||
(guix build store-copy)
|
||||
(gnu build install))
|
||||
#:select? not-config?))
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(gnu build install)
|
||||
(guix build store-copy)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
(with-imported-modules (source-module-closure
|
||||
'((guix build utils)
|
||||
(guix build store-copy)
|
||||
(gnu build install))
|
||||
#:select? not-config?)
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(guix build store-copy)
|
||||
(gnu build install)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
|
||||
(setenv "PATH" (string-append #$archiver "/bin"))
|
||||
(define database #+database)
|
||||
|
||||
;; We need an empty file in order to have a valid file argument when
|
||||
;; we reparent the root file system. Read on for why that's
|
||||
;; necessary.
|
||||
(with-output-to-file ".empty" (lambda () (display "")))
|
||||
(setenv "PATH" (string-append #$archiver "/bin"))
|
||||
|
||||
;; Create the squashfs image in several steps.
|
||||
;; Add all store items. Unfortunately mksquashfs throws away all
|
||||
;; ancestor directories and only keeps the basename. We fix this
|
||||
;; in the following invocations of mksquashfs.
|
||||
(apply invoke "mksquashfs"
|
||||
`(,@(map store-info-item
|
||||
(call-with-input-file "profile"
|
||||
read-reference-graph))
|
||||
,#$output
|
||||
;; We need an empty file in order to have a valid file argument when
|
||||
;; we reparent the root file system. Read on for why that's
|
||||
;; necessary.
|
||||
(with-output-to-file ".empty" (lambda () (display "")))
|
||||
|
||||
;; Do not perform duplicate checking because we
|
||||
;; don't have any dupes.
|
||||
"-no-duplicates"
|
||||
"-comp"
|
||||
,#+(compressor-name compressor)))
|
||||
;; Create the squashfs image in several steps.
|
||||
;; Add all store items. Unfortunately mksquashfs throws away all
|
||||
;; ancestor directories and only keeps the basename. We fix this
|
||||
;; in the following invocations of mksquashfs.
|
||||
(apply invoke "mksquashfs"
|
||||
`(,@(map store-info-item
|
||||
(call-with-input-file "profile"
|
||||
read-reference-graph))
|
||||
,#$output
|
||||
|
||||
;; Here we reparent the store items. For each sub-directory of
|
||||
;; the store prefix we need one invocation of "mksquashfs".
|
||||
(for-each (lambda (dir)
|
||||
(apply invoke "mksquashfs"
|
||||
`(".empty"
|
||||
,#$output
|
||||
"-root-becomes" ,dir)))
|
||||
(reverse (string-tokenize (%store-directory)
|
||||
(char-set-complement (char-set #\/)))))
|
||||
;; Do not perform duplicate checking because we
|
||||
;; don't have any dupes.
|
||||
"-no-duplicates"
|
||||
"-comp"
|
||||
,#+(compressor-name compressor)))
|
||||
|
||||
;; Add symlinks and mount points.
|
||||
(apply invoke "mksquashfs"
|
||||
`(".empty"
|
||||
,#$output
|
||||
;; Create SYMLINKS via pseudo file definitions.
|
||||
,@(append-map
|
||||
(match-lambda
|
||||
((source '-> target)
|
||||
(list "-p"
|
||||
(string-join
|
||||
;; name s mode uid gid symlink
|
||||
(list source
|
||||
"s" "777" "0" "0"
|
||||
(string-append #$profile "/" target))))))
|
||||
'#$symlinks)
|
||||
;; Here we reparent the store items. For each sub-directory of
|
||||
;; the store prefix we need one invocation of "mksquashfs".
|
||||
(for-each (lambda (dir)
|
||||
(apply invoke "mksquashfs"
|
||||
`(".empty"
|
||||
,#$output
|
||||
"-root-becomes" ,dir)))
|
||||
(reverse (string-tokenize (%store-directory)
|
||||
(char-set-complement (char-set #\/)))))
|
||||
|
||||
;; Create empty mount points.
|
||||
"-p" "/proc d 555 0 0"
|
||||
"-p" "/sys d 555 0 0"
|
||||
"-p" "/dev d 555 0 0"))))))
|
||||
;; Add symlinks and mount points.
|
||||
(apply invoke "mksquashfs"
|
||||
`(".empty"
|
||||
,#$output
|
||||
;; Create SYMLINKS via pseudo file definitions.
|
||||
,@(append-map
|
||||
(match-lambda
|
||||
((source '-> target)
|
||||
(list "-p"
|
||||
(string-join
|
||||
;; name s mode uid gid symlink
|
||||
(list source
|
||||
"s" "777" "0" "0"
|
||||
(string-append #$profile "/" target))))))
|
||||
'#$symlinks)
|
||||
|
||||
;; Create empty mount points.
|
||||
"-p" "/proc d 555 0 0"
|
||||
"-p" "/sys d 555 0 0"
|
||||
"-p" "/dev d 555 0 0"))
|
||||
|
||||
(when database
|
||||
;; Initialize /var/guix.
|
||||
(install-database-and-gc-roots "var-etc" database #$profile)
|
||||
(invoke "mksquashfs" "var-etc" #$output)))))
|
||||
|
||||
(gexp->derivation (string-append name
|
||||
(compressor-extension compressor)
|
||||
|
@ -329,7 +377,6 @@ added to the pack."
|
|||
|
||||
(define* (docker-image name profile
|
||||
#:key target
|
||||
deduplicate?
|
||||
(compressor (first %compressors))
|
||||
localstatedir?
|
||||
(symlinks '())
|
||||
|
@ -339,6 +386,11 @@ image is a tarball conforming to the Docker Image Specification, compressed
|
|||
with COMPRESSOR. It can be passed to 'docker load'. If TARGET is true, it
|
||||
must a be a GNU triplet and it is used to derive the architecture metadata in
|
||||
the image."
|
||||
(define database
|
||||
(and localstatedir?
|
||||
(file-append (store-database (list profile))
|
||||
"/db/db.sqlite")))
|
||||
|
||||
(define defmod 'define-module) ;trick Geiser
|
||||
|
||||
(define build
|
||||
|
@ -357,6 +409,7 @@ the image."
|
|||
(call-with-input-file "profile"
|
||||
read-reference-graph))
|
||||
#$profile
|
||||
#:database #+database
|
||||
#:system (or #$target (utsname:machine (uname)))
|
||||
#:symlinks '#$symlinks
|
||||
#:compressor '#$(compressor-command compressor)
|
||||
|
|
|
@ -86,6 +86,8 @@ Download and deploy the latest version of Guix.\n"))
|
|||
list generations matching PATTERN"))
|
||||
(display (G_ "
|
||||
-p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current"))
|
||||
(display (G_ "
|
||||
-n, --dry-run show what would be pulled and built"))
|
||||
(display (G_ "
|
||||
--bootstrap use the bootstrap Guile to build the new Guix"))
|
||||
(newline)
|
||||
|
@ -164,15 +166,18 @@ Download and deploy the latest version of Guix.\n"))
|
|||
(_ #t)))
|
||||
|
||||
(define* (build-and-install instances profile
|
||||
#:key verbose?)
|
||||
"Build the tool from SOURCE, and install it in PROFILE."
|
||||
#:key verbose? dry-run?)
|
||||
"Build the tool from SOURCE, and install it in PROFILE. When DRY-RUN? is
|
||||
true, display what would be built without actually building it."
|
||||
(define update-profile
|
||||
(store-lift build-and-use-profile))
|
||||
|
||||
(mlet %store-monad ((manifest (channel-instances->manifest instances)))
|
||||
(mbegin %store-monad
|
||||
(update-profile profile manifest)
|
||||
(return (display-profile-news profile)))))
|
||||
(update-profile profile manifest
|
||||
#:dry-run? dry-run?)
|
||||
(munless dry-run?
|
||||
(display-profile-news profile)))))
|
||||
|
||||
(define (honor-lets-encrypt-certificates! store)
|
||||
"Tell Guile-Git to use the Let's Encrypt certificates."
|
||||
|
@ -497,8 +502,6 @@ Use '~/.config/guix/channels.scm' instead."))
|
|||
(ensure-default-profile)
|
||||
(cond ((assoc-ref opts 'query)
|
||||
(process-query opts profile))
|
||||
((assoc-ref opts 'dry-run?)
|
||||
#t) ;XXX: not very useful
|
||||
(else
|
||||
(with-store store
|
||||
(with-status-report print-build-event
|
||||
|
@ -531,6 +534,8 @@ Use '~/.config/guix/channels.scm' instead."))
|
|||
(canonical-package guile-2.2)))))
|
||||
(run-with-store store
|
||||
(build-and-install instances profile
|
||||
#:dry-run?
|
||||
(assoc-ref opts 'dry-run?)
|
||||
#:verbose?
|
||||
(assoc-ref opts 'verbose?))))))))))))))
|
||||
|
||||
|
|
|
@ -206,21 +206,22 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
|
|||
(local-file file #:recursive? #t)))
|
||||
(find-files (string-append directory "/" sub-directory) pred)))
|
||||
|
||||
(define* (sub-directory item sub-directory)
|
||||
"Return SUB-DIRECTORY within ITEM, which may be a file name or a file-like
|
||||
object."
|
||||
(define* (file-append* item file #:key (recursive? #t))
|
||||
"Return FILE within ITEM, which may be a file name or a file-like object.
|
||||
When ITEM is a plain file name (a string), simply return a 'local-file'
|
||||
record with the new file name."
|
||||
(match item
|
||||
((? string?)
|
||||
;; This is the optimal case: we return a new "source". Thus, a
|
||||
;; derivation that depends on this sub-directory does not depend on ITEM
|
||||
;; itself.
|
||||
(local-file (string-append item "/" sub-directory)
|
||||
#:recursive? #t))
|
||||
(local-file (string-append item "/" file)
|
||||
#:recursive? recursive?))
|
||||
;; TODO: Add 'local-file?' case.
|
||||
(_
|
||||
;; In this case, anything that refers to the result also depends on ITEM,
|
||||
;; which isn't great.
|
||||
(file-append item "/" sub-directory))))
|
||||
(file-append item "/" file))))
|
||||
|
||||
(define* (locale-data source domain
|
||||
#:optional (directory domain))
|
||||
|
@ -238,7 +239,7 @@ DOMAIN, a gettext domain."
|
|||
(ice-9 match) (ice-9 ftw))
|
||||
|
||||
(define po-directory
|
||||
#+(sub-directory source (string-append "po/" directory)))
|
||||
#+(file-append* source (string-append "po/" directory)))
|
||||
|
||||
(define (compile language)
|
||||
(let ((gmo (string-append #$output "/" language "/LC_MESSAGES/"
|
||||
|
@ -273,10 +274,10 @@ DOMAIN, a gettext domain."
|
|||
'graphviz))
|
||||
|
||||
(define documentation
|
||||
(sub-directory source "doc"))
|
||||
(file-append* source "doc"))
|
||||
|
||||
(define examples
|
||||
(sub-directory source "gnu/system/examples"))
|
||||
(file-append* source "gnu/system/examples"))
|
||||
|
||||
(define build
|
||||
(with-imported-modules '((guix build utils))
|
||||
|
@ -290,7 +291,7 @@ DOMAIN, a gettext domain."
|
|||
;; doesn't change at each commit?
|
||||
(call-with-output-file "version.texi"
|
||||
(lambda (port)
|
||||
(let ((version "0.0-git)"))
|
||||
(let ((version "0.0-git"))
|
||||
(format port "
|
||||
@set UPDATED 1 January 1970
|
||||
@set UPDATED-MONTH January 1970
|
||||
|
@ -404,11 +405,29 @@ load path."
|
|||
(apply guix-main (command-line))))
|
||||
#:guile guile))
|
||||
|
||||
(define (miscellaneous-files source)
|
||||
"Return data files taken from SOURCE."
|
||||
(file-mapping "guix-misc"
|
||||
`(("etc/bash_completion.d/guix"
|
||||
,(file-append* source "/etc/completion/bash/guix"))
|
||||
("etc/bash_completion.d/guix-daemon"
|
||||
,(file-append* source "/etc/completion/bash/guix-daemon"))
|
||||
("share/zsh/site-functions/_guix"
|
||||
,(file-append* source "/etc/completion/zsh/_guix"))
|
||||
("share/fish/vendor_completions.d/guix.fish"
|
||||
,(file-append* source "/etc/completion/fish/guix.fish"))
|
||||
("share/guix/hydra.gnu.org.pub"
|
||||
,(file-append* source
|
||||
"/etc/substitutes/hydra.gnu.org.pub"))
|
||||
("share/guix/berlin.guixsd.org.pub"
|
||||
,(file-append* source "/etc/substitutes/berlin.guixsd.org.pub")))))
|
||||
|
||||
(define* (whole-package name modules dependencies
|
||||
#:key
|
||||
(guile-version (effective-version))
|
||||
compiled-modules
|
||||
info daemon guile
|
||||
info daemon miscellany
|
||||
guile
|
||||
(command (guix-command modules
|
||||
#:dependencies dependencies
|
||||
#:guile guile
|
||||
|
@ -422,6 +441,7 @@ assumed to be part of MODULES."
|
|||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(mkdir-p (string-append #$output "/bin"))
|
||||
(symlink #$command
|
||||
(string-append #$output "/bin/guix"))
|
||||
|
@ -441,6 +461,10 @@ assumed to be part of MODULES."
|
|||
(string-append #$output
|
||||
"/share/info"))))
|
||||
|
||||
(when #$miscellany
|
||||
(copy-recursively #$miscellany #$output
|
||||
#:log (%make-void-port "w")))
|
||||
|
||||
;; Object files.
|
||||
(when #$compiled-modules
|
||||
(let ((modules (string-append #$output "/lib/guile/"
|
||||
|
@ -666,6 +690,7 @@ assumed to be part of MODULES."
|
|||
'guix-daemon)
|
||||
|
||||
#:info (info-manual source)
|
||||
#:miscellany (miscellaneous-files source)
|
||||
#:guile-version guile-version)))
|
||||
((= 0 pull-version)
|
||||
;; Legacy 'guix pull': return the .scm and .go files as one
|
||||
|
|
|
@ -161,7 +161,7 @@ Throw an error on failure."
|
|||
"/var/guix/daemon-socket/socket"))
|
||||
"Connect to the remote build daemon listening on SOCKET-NAME over SESSION,
|
||||
an SSH session. Return a <nix-server> object."
|
||||
(open-connection #:port (remote-daemon-channel session)))
|
||||
(open-connection #:port (remote-daemon-channel session socket-name)))
|
||||
|
||||
|
||||
(define (store-import-channel session)
|
||||
|
|
|
@ -9,7 +9,7 @@ msgstr ""
|
|||
"Project-Id-Version: guix 0.15.0\n"
|
||||
"Report-Msgid-Bugs-To: ludo@gnu.org\n"
|
||||
"POT-Creation-Date: 2018-06-22 14:08+0200\n"
|
||||
"PO-Revision-Date: 2018-08-24 20:57+0200\n"
|
||||
"PO-Revision-Date: 2018-10-27 02:22+0200\n"
|
||||
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
|
||||
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
|
||||
"Language: de\n"
|
||||
|
@ -437,7 +437,7 @@ msgid ""
|
|||
" --no-build-hook do not attempt to offload builds via the build hook"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" --no-build-hook nicht versuchen, Erstellungen über den »build hook«\n"
|
||||
" --no-build-hook nicht versuchen, Erstellungen über den »Build-Hook«\n"
|
||||
" auszulagern"
|
||||
|
||||
#: guix/scripts/build.scm:362
|
||||
|
@ -497,7 +497,7 @@ msgstr ""
|
|||
#: guix/scripts/build.scm:479 guix/scripts/build.scm:486
|
||||
#, scheme-format
|
||||
msgid "not a number: '~a' option argument: ~a~%"
|
||||
msgstr "Keine Zahl: Kommandozeilenargument von »~a«: ~a~%"
|
||||
msgstr "Keine Zahl: Befehlszeilenargument von »~a«: ~a~%"
|
||||
|
||||
#: guix/scripts/build.scm:505
|
||||
msgid ""
|
||||
|
@ -658,7 +658,7 @@ msgid ""
|
|||
"invalid argument: '~a' option argument: ~a, ~\n"
|
||||
"must be one of 'package', 'all', or 'transitive'~%"
|
||||
msgstr ""
|
||||
"Ungültiges Argument der Kommandozeilenoption »~a«: ~a, ~\n"
|
||||
"Ungültiges Argument der Befehlszeilenoption »~a«: ~a, ~\n"
|
||||
"muss entweder »package«, »all« oder »transitive« sein~%"
|
||||
|
||||
#: guix/scripts/build.scm:621
|
||||
|
@ -1018,7 +1018,7 @@ msgstr ""
|
|||
msgid "upgrade regexp '~a' looks like a command-line option~%"
|
||||
msgstr ""
|
||||
"--upgrade: Der reguläre Ausdruck »~a«\n"
|
||||
"sieht wie eine Kommandozeilenoption aus"
|
||||
"sieht wie eine Befehlszeilenoption aus"
|
||||
|
||||
#: guix/scripts/package.scm:443
|
||||
#, scheme-format
|
||||
|
@ -1183,7 +1183,7 @@ msgstr "Es sind bereits ~h Bytes verfügbar auf ~a, nichts zu tun~%"
|
|||
|
||||
#: guix/scripts/gc.scm:205
|
||||
msgid "freeing ~h bytes~%"
|
||||
msgstr "Gebe ~h Bytes frei~%"
|
||||
msgstr "~h Bytes werden freigegeben~%"
|
||||
|
||||
#: guix/scripts/gc.scm:217
|
||||
#, scheme-format
|
||||
|
@ -1192,7 +1192,7 @@ msgstr "Zusätzliche Argumente: ~{~a ~}~%"
|
|||
|
||||
#: guix/scripts/gc.scm:237 guix/scripts/gc.scm:240
|
||||
msgid "freed ~h bytes~%"
|
||||
msgstr "~h Bytes freigegeben"
|
||||
msgstr "~h Bytes wurden freigegeben"
|
||||
|
||||
#: guix/scripts/hash.scm:47
|
||||
msgid ""
|
||||
|
@ -2885,7 +2885,7 @@ msgid ""
|
|||
" -R, --relocatable produce relocatable executables"
|
||||
msgstr ""
|
||||
"\n"
|
||||
" -R, --relocatable »portable« ausführbare Datei erzeugen"
|
||||
" -R, --relocatable pfad-agnostische ausführbare Datei erzeugen"
|
||||
|
||||
#: guix/scripts/pack.scm:650
|
||||
msgid ""
|
||||
|
@ -3331,7 +3331,7 @@ msgstr "Generation ~a des Profils »~a« existiert nicht~%"
|
|||
#: guix/ui.scm:628
|
||||
#, scheme-format
|
||||
msgid " ... propagated from ~a@~a~%"
|
||||
msgstr " … propagatiert von ~a@~a~%"
|
||||
msgstr " … propagiert von ~a@~a~%"
|
||||
|
||||
#: guix/ui.scm:638
|
||||
#, scheme-format
|
||||
|
@ -3703,7 +3703,7 @@ msgstr "URLS als die vorgegebene Liste von Substitutsanbietern nutzen"
|
|||
|
||||
#: nix/nix-daemon/guix-daemon.cc:117
|
||||
msgid "do not use the 'build hook'"
|
||||
msgstr "den »build hook« nicht benutzen"
|
||||
msgstr "den »Build-Hook« nicht benutzen"
|
||||
|
||||
#: nix/nix-daemon/guix-daemon.cc:119
|
||||
msgid "cache build failures"
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
#
|
||||
# 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/>.
|
||||
|
||||
#
|
||||
# Test the 'guix pack --relocatable' using the external store, if any.
|
||||
#
|
||||
|
||||
guix pack --version
|
||||
|
||||
# 'guix pack --relocatable' requires a C compiler and libc.a, which our
|
||||
# bootstrap binaries don't provide. To make the test relatively inexpensive,
|
||||
# run it on the user's global store if possible, on the grounds that binaries
|
||||
# may already be there or can be built or downloaded inexpensively.
|
||||
|
||||
NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`"
|
||||
localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`"
|
||||
GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket"
|
||||
export NIX_STORE_DIR GUIX_DAEMON_SOCKET
|
||||
|
||||
if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))'
|
||||
then
|
||||
exit 77
|
||||
fi
|
||||
|
||||
STORE_PARENT="`dirname $NIX_STORE_DIR`"
|
||||
export STORE_PARENT
|
||||
if test "$STORE_PARENT" = "/"; then exit 77; fi
|
||||
|
||||
# This test requires user namespaces and associated command-line tools.
|
||||
if ! unshare -mrf sh -c 'mount -t tmpfs none "$STORE_PARENT"'
|
||||
then
|
||||
exit 77
|
||||
fi
|
||||
|
||||
test_directory="`mktemp -d`"
|
||||
export test_directory
|
||||
trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
|
||||
|
||||
tarball="`guix pack -R -S /Bin=bin sed`"
|
||||
(cd "$test_directory"; tar xvf "$tarball")
|
||||
|
||||
# Run that relocatable 'sed' in a user namespace where we "erase" the store by
|
||||
# mounting an empty file system on top of it. That way, we exercise the
|
||||
# wrapper code that creates the user namespace and bind-mounts the store.
|
||||
unshare -mrf sh -c 'mount -t tmpfs none "$STORE_PARENT"; echo "$STORE_PARENT"/*; "$test_directory/Bin/sed" --version > "$test_directory/output"'
|
||||
grep 'GNU sed' "$test_directory/output"
|
|
@ -29,39 +29,27 @@ fi
|
|||
|
||||
guix pack --version
|
||||
|
||||
# Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa, 'guix pack'
|
||||
# produces derivations that refer to guile-sqlite3 and libgcrypt. To make
|
||||
# that relatively inexpensive, run the test in the user's global store if
|
||||
# possible, on the grounds that binaries may already be there or can be built
|
||||
# or downloaded inexpensively.
|
||||
|
||||
NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`"
|
||||
localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`"
|
||||
GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket"
|
||||
export NIX_STORE_DIR GUIX_DAEMON_SOCKET
|
||||
|
||||
if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))'
|
||||
then
|
||||
exit 77
|
||||
fi
|
||||
# Use --no-substitutes because we need to verify we can do this ourselves.
|
||||
GUIX_BUILD_OPTIONS="--no-substitutes"
|
||||
export GUIX_BUILD_OPTIONS
|
||||
|
||||
# Build a tarball with no compression.
|
||||
guix pack --compression=none guile-bootstrap
|
||||
guix pack --compression=none --bootstrap guile-bootstrap
|
||||
|
||||
# Build a tarball (with compression). Check that '-e' works as well.
|
||||
out1="`guix pack guile-bootstrap`"
|
||||
out2="`guix pack -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`"
|
||||
out1="`guix pack --bootstrap guile-bootstrap`"
|
||||
out2="`guix pack --bootstrap -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`"
|
||||
test -n "$out1"
|
||||
test "$out1" = "$out2"
|
||||
|
||||
# Build a tarball with a symlink.
|
||||
the_pack="`guix pack -S /opt/gnu/bin=bin guile-bootstrap`"
|
||||
the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`"
|
||||
|
||||
# Try to extract it. Note: we cannot test whether /opt/gnu/bin/guile itself
|
||||
# exists because /opt/gnu/bin may be an absolute symlink to a store item that
|
||||
# has been GC'd.
|
||||
test_directory="`mktemp -d`"
|
||||
trap 'rm -rf "$test_directory"' EXIT
|
||||
trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
|
||||
cd "$test_directory"
|
||||
tar -xf "$the_pack"
|
||||
test -L opt/gnu/bin
|
||||
|
|
156
tests/pack.scm
156
tests/pack.scm
|
@ -22,20 +22,26 @@
|
|||
#:use-module (guix store)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix grafts)
|
||||
#:use-module (guix tests)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages bootstrap)
|
||||
#:use-module ((gnu packages compression) #:select (squashfs-tools-next))
|
||||
#:use-module (srfi srfi-64))
|
||||
|
||||
(define %store
|
||||
(open-connection-for-tests))
|
||||
|
||||
;; Globally disable grafts because they can trigger early builds.
|
||||
(%graft? #f)
|
||||
|
||||
(define-syntax-rule (test-assertm name store exp)
|
||||
(test-assert name
|
||||
(run-with-store store exp
|
||||
#:guile-for-build (%guile-for-build))))
|
||||
(let ((guile (package-derivation store %bootstrap-guile)))
|
||||
(run-with-store store exp
|
||||
#:guile-for-build guile))))
|
||||
|
||||
(define %gzip-compressor
|
||||
;; Compressor that uses the bootstrap 'gzip'.
|
||||
|
@ -48,6 +54,58 @@
|
|||
|
||||
(test-begin "pack")
|
||||
|
||||
(unless (network-reachable?) (test-skip 1))
|
||||
(test-assertm "self-contained-tarball" %store
|
||||
(mlet* %store-monad
|
||||
((profile (profile-derivation (packages->manifest
|
||||
(list %bootstrap-guile))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(tarball (self-contained-tarball "pack" profile
|
||||
#:symlinks '(("/bin/Guile"
|
||||
-> "bin/guile"))
|
||||
#:compressor %gzip-compressor
|
||||
#:archiver %tar-bootstrap))
|
||||
(check (gexp->derivation
|
||||
"check-tarball"
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(srfi srfi-1))
|
||||
|
||||
(define store
|
||||
;; The unpacked store.
|
||||
(string-append "." (%store-directory) "/"))
|
||||
|
||||
(define (canonical? file)
|
||||
;; Return #t if FILE is read-only and its mtime is 1.
|
||||
(let ((st (lstat file)))
|
||||
(or (not (string-prefix? store file))
|
||||
(eq? 'symlink (stat:type st))
|
||||
(and (= 1 (stat:mtime st))
|
||||
(zero? (logand #o222
|
||||
(stat:mode st)))))))
|
||||
|
||||
(define bin
|
||||
(string-append "." #$profile "/bin"))
|
||||
|
||||
(setenv "PATH"
|
||||
(string-append #$%tar-bootstrap "/bin"))
|
||||
(system* "tar" "xvf" #$tarball)
|
||||
(mkdir #$output)
|
||||
(exit
|
||||
(and (file-exists? (string-append bin "/guile"))
|
||||
(file-exists? store)
|
||||
(every canonical?
|
||||
(find-files "." (const #t)
|
||||
#:directories? #t))
|
||||
(string=? (string-append #$%bootstrap-guile "/bin")
|
||||
(readlink bin))
|
||||
(string=? (string-append ".." #$profile
|
||||
"/bin/guile")
|
||||
(readlink "bin/Guile")))))))))
|
||||
(built-derivations (list check))))
|
||||
|
||||
;; The following test needs guile-sqlite3, libgcrypt, etc. as a consequence of
|
||||
;; commit c45477d2a1a651485feede20fe0f3d15aec48b39 and related changes. Thus,
|
||||
;; run it on the user's store, if it's available, on the grounds that these
|
||||
|
@ -56,17 +114,15 @@
|
|||
|
||||
(with-external-store store
|
||||
(unless store (test-skip 1))
|
||||
(test-assertm "self-contained-tarball" store
|
||||
(test-assertm "self-contained-tarball + localstatedir" store
|
||||
(mlet* %store-monad
|
||||
((profile (profile-derivation (packages->manifest
|
||||
((guile (set-guile-for-build (default-guile)))
|
||||
(profile (profile-derivation (packages->manifest
|
||||
(list %bootstrap-guile))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(tarball (self-contained-tarball "pack" profile
|
||||
#:symlinks '(("/bin/Guile"
|
||||
-> "bin/guile"))
|
||||
#:compressor %gzip-compressor
|
||||
#:archiver %tar-bootstrap))
|
||||
(tarball (self-contained-tarball "tar-pack" profile
|
||||
#:localstatedir? #t))
|
||||
(check (gexp->derivation
|
||||
"check-tarball"
|
||||
#~(let ((bin (string-append "." #$profile "/bin")))
|
||||
|
@ -75,12 +131,84 @@
|
|||
(system* "tar" "xvf" #$tarball)
|
||||
(mkdir #$output)
|
||||
(exit
|
||||
(and (file-exists? (string-append bin "/guile"))
|
||||
(and (file-exists? "var/guix/db/db.sqlite")
|
||||
(string=? (string-append #$%bootstrap-guile "/bin")
|
||||
(readlink bin))
|
||||
(string=? (string-append ".." #$profile
|
||||
"/bin/guile")
|
||||
(readlink "bin/Guile"))))))))
|
||||
(readlink bin))))))))
|
||||
(built-derivations (list check))))
|
||||
|
||||
(unless store (test-skip 1))
|
||||
(test-assertm "docker-image + localstatedir" store
|
||||
(mlet* %store-monad
|
||||
((guile (set-guile-for-build (default-guile)))
|
||||
(profile (profile-derivation (packages->manifest
|
||||
(list %bootstrap-guile))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(tarball (docker-image "docker-pack" profile
|
||||
#:symlinks '(("/bin/Guile" -> "bin/guile"))
|
||||
#:localstatedir? #t))
|
||||
(check (gexp->derivation
|
||||
"check-tarball"
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 match))
|
||||
|
||||
(define bin
|
||||
(string-append "." #$profile "/bin"))
|
||||
|
||||
(setenv "PATH" (string-append #$%tar-bootstrap "/bin"))
|
||||
(mkdir "base")
|
||||
(with-directory-excursion "base"
|
||||
(invoke "tar" "xvf" #$tarball))
|
||||
|
||||
(match (find-files "base" "layer.tar")
|
||||
((layer)
|
||||
(invoke "tar" "xvf" layer)))
|
||||
|
||||
(when
|
||||
(and (file-exists? (string-append bin "/guile"))
|
||||
(file-exists? "var/guix/db/db.sqlite")
|
||||
(string=? (string-append #$%bootstrap-guile "/bin")
|
||||
(pk 'binlink (readlink bin)))
|
||||
(string=? (string-append #$profile "/bin/guile")
|
||||
(pk 'guilelink (readlink "bin/Guile"))))
|
||||
(mkdir #$output)))))))
|
||||
(built-derivations (list check))))
|
||||
|
||||
(unless store (test-skip 1))
|
||||
(test-assertm "squashfs-image + localstatedir" store
|
||||
(mlet* %store-monad
|
||||
((guile (set-guile-for-build (default-guile)))
|
||||
(profile (profile-derivation (packages->manifest
|
||||
(list %bootstrap-guile))
|
||||
#:hooks '()
|
||||
#:locales? #f))
|
||||
(image (squashfs-image "squashfs-pack" profile
|
||||
#:symlinks '(("/bin" -> "bin"))
|
||||
#:localstatedir? #t))
|
||||
(check (gexp->derivation
|
||||
"check-tarball"
|
||||
(with-imported-modules '((guix build utils))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 match))
|
||||
|
||||
(define bin
|
||||
(string-append "." #$profile "/bin"))
|
||||
|
||||
(setenv "PATH"
|
||||
(string-append #$squashfs-tools-next "/bin"))
|
||||
(invoke "unsquashfs" #$image)
|
||||
(with-directory-excursion "squashfs-root"
|
||||
(when (and (file-exists? (string-append bin
|
||||
"/guile"))
|
||||
(file-exists? "var/guix/db/db.sqlite")
|
||||
(string=? (string-append #$%bootstrap-guile "/bin")
|
||||
(pk 'binlink (readlink bin)))
|
||||
(string=? (string-append #$profile "/bin")
|
||||
(pk 'guilelink (readlink "bin"))))
|
||||
(mkdir #$output))))))))
|
||||
(built-derivations (list check)))))
|
||||
|
||||
(test-end)
|
||||
|
|
Loading…
Reference in New Issue