Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2018-11-07 21:09:57 +01:00
commit 55174e668f
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
48 changed files with 1576 additions and 961 deletions

View File

@ -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 \

View File

@ -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.

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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.

View File

@ -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 \

View File

@ -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"

View File

@ -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

View File

@ -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)

View File

@ -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)))

View File

@ -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)))

View File

@ -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

View File

@ -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 Guiles foreign function interface.")
(home-page "https://gitlab.com/mothacehe/guile-newt")
(license license:gpl3+))))
;;; guile.scm ends here

View File

@ -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>")
""))

View File

@ -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)

View File

@ -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")

View File

@ -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")

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -187,22 +187,28 @@ text-based approach to terminal recording.")
(license license:gpl3)))
(define-public libtsm
(let ((commit "f70e37982f382b03c6939dac3d5f814450bda253")
(revision "1"))
(package
(name "libtsm")
(version "3")
(version (git-version "0.0.0" revision commit))
(source (origin
(method url-fetch)
(uri (string-append
"https://freedesktop.org/software/kmscon/releases/"
"libtsm-" version ".tar.xz"))
(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
"01ygwrsxfii0pngfikgqsb4fxp8n1bbs47l7hck81h9b9bc1ah8i"))))
(build-system gnu-build-system)
"0mwn91i5h5d518i1s05y7hzv6bc13vzcvxszpfh77473iwg4wprx"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_TESTING=ON")))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libxkbcommon" ,libxkbcommon)))
`(("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
@ -213,24 +219,33 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
;; 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))))
(license (list license:expat license:lgpl2.1+ license:isc license:bsd-2)))))
(define-public kmscon
(let ((commit "01dd0a231e2125a40ceba5f59fd945ff29bf2cdc")
(revision "1"))
(package
(name "kmscon")
(version "8")
(version (git-version "0.0.0" revision commit))
(source (origin
(method url-fetch)
(uri (string-append
"https://freedesktop.org/software/kmscon/releases/"
"kmscon-" version ".tar.xz"))
(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
"0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a"))
(modules '((guix build utils)))
(snippet
"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.
'(begin
(add-before 'configure 'remove-systemd
(lambda _
(substitute* "configure"
(("libsystemd-daemon libsystemd-login")
"libelogind"))
@ -242,11 +257,12 @@ compatibility to existing emulators like xterm, gnome-terminal, konsole, etc.")
"")
;; Replace the call to 'sd_booted' by the truth value.
(("sd_booted\\(\\)")
"1"))
#t))))
(build-system gnu-build-system)
"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)))
@ -276,7 +292,7 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
(license (list license:expat license:lgpl2.1+ license:bsd-2
license:gpl2+))
(supported-systems (filter (cut string-suffix? "-linux" <>)
%supported-systems))))
%supported-systems)))))
(define-public libtermkey
(package

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)))))

View File

@ -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 ()

View File

@ -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/"

View File

@ -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,20 +161,17 @@ 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
(with-imported-modules (source-module-closure
`((guix build utils)
(guix build union)
(guix build store-copy)
(gnu build install))
#:select? not-config?))
(with-extensions gcrypt-sqlite3&co
#:select? not-config?)
#~(begin
(use-modules (guix build utils)
((guix build union) #:select (relative-file-name))
@ -181,9 +222,7 @@ added to the pack."
(populate-single-profile-directory %root
#:profile #$profile
#:closure "profile"
#:deduplicate? #f
#:register? #$localstatedir?
#:schema #$schema)
#:database #+database)
;; Create SYMLINKS.
(for-each (cut evaluate-populate-directive <> %root)
@ -231,7 +270,7 @@ added to the pack."
((source '-> _)
(string-append "." source))
(_ #f))
directives))))))))))
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,22 +289,27 @@ 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
(with-imported-modules (source-module-closure
'((guix build utils)
(guix build store-copy)
(gnu build install))
#:select? not-config?))
(with-extensions gcrypt-sqlite3&co
#:select? not-config?)
#~(begin
(use-modules (guix build utils)
(gnu build install)
(guix build store-copy)
(gnu build install)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
(define database #+database)
(setenv "PATH" (string-append #$archiver "/bin"))
;; We need an empty file in order to have a valid file argument when
@ -319,7 +362,12 @@ added to the pack."
;; Create empty mount points.
"-p" "/proc d 555 0 0"
"-p" "/sys d 555 0 0"
"-p" "/dev 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)

View File

@ -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?))))))))))))))

View File

@ -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

View File

@ -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)

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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
(let ((guile (package-derivation store %bootstrap-guile)))
(run-with-store store exp
#:guile-for-build (%guile-for-build))))
#:guile-for-build guile))))
(define %gzip-compressor
;; Compressor that uses the bootstrap 'gzip'.
@ -48,15 +54,8 @@
(test-begin "pack")
;; 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
;; dependencies may be already there, or we can get substitutes or build them
;; quite inexpensively; see <https://bugs.gnu.org/32184>.
(with-external-store store
(unless store (test-skip 1))
(test-assertm "self-contained-tarball" store
(unless (network-reachable?) (test-skip 1))
(test-assertm "self-contained-tarball" %store
(mlet* %store-monad
((profile (profile-derivation (packages->manifest
(list %bootstrap-guile))
@ -69,18 +68,147 @@
#:archiver %tar-bootstrap))
(check (gexp->derivation
"check-tarball"
#~(let ((bin (string-append "." #$profile "/bin")))
(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"))))))))
(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
;; dependencies may be already there, or we can get substitutes or build them
;; quite inexpensively; see <https://bugs.gnu.org/32184>.
(with-external-store store
(unless store (test-skip 1))
(test-assertm "self-contained-tarball + localstatedir" store
(mlet* %store-monad
((guile (set-guile-for-build (default-guile)))
(profile (profile-derivation (packages->manifest
(list %bootstrap-guile))
#:hooks '()
#:locales? #f))
(tarball (self-contained-tarball "tar-pack" profile
#:localstatedir? #t))
(check (gexp->derivation
"check-tarball"
#~(let ((bin (string-append "." #$profile "/bin")))
(setenv "PATH"
(string-append #$%tar-bootstrap "/bin"))
(system* "tar" "xvf" #$tarball)
(mkdir #$output)
(exit
(and (file-exists? "var/guix/db/db.sqlite")
(string=? (string-append #$%bootstrap-guile "/bin")
(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)