Merge branch 'master' into core-updates

This commit is contained in:
Ludovic Courtès 2016-05-23 14:55:44 +02:00
commit bc73a84398
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
83 changed files with 2764 additions and 811 deletions

View file

@ -24,6 +24,7 @@ Joshua Grant <tadni@riseup.net> <gzg@riseup.net>
Joshua Grant <tadni@riseup.net> <jgrant@parenthetical.io>
Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com>
Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
Kei Kebreau <kei@openmailbox.org>
Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>

View file

@ -509,7 +509,7 @@ hydra-jobs.scm: $(GOBJECTS)
$(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/hydra/evaluate.scm" \
"$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp"
$(AT_V_at)mv "$@.tmp" "$@"
$(AM_V_at)mv "$@.tmp" "$@"
.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go
.PHONY: assert-no-store-file-names assert-binaries-available

View file

@ -4961,6 +4961,19 @@ To view information about a particular vulnerability, visit pages such as:
where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
@code{CVE-2015-7554}.
Package developers can specify in package recipes the
@uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)}
name and version of the package when they differ from the name that Guix
uses, as in this example:
@example
(package
(name "grub")
;; @dots{}
;; CPE calls this package "grub2".
(properties '((cpe-name . "grub2"))))
@end example
@item formatting
Warn about obvious source code formatting issues: trailing white space,
use of tabulations, etc.
@ -5148,6 +5161,12 @@ derivations (@pxref{Derivations}) and plain store items. Compared to
the above representation, many additional nodes are visible, including
build scripts, patches, Guile modules, etc.
For this type of graph, it is also possible to pass a @file{.drv} file
name instead of a package name, as in:
@example
guix graph -t derivation `guix system build -d my-config.scm`
@end example
@end table
All the types above correspond to @emph{build-time dependencies}. The
@ -5160,6 +5179,14 @@ by @command{guix gc --references} (@pxref{Invoking guix gc}).
If the given package output is not available in the store, @command{guix
graph} attempts to obtain dependency information from substitutes.
Here you can also pass a store file name instead of a package name. For
example, the command below produces the reference graph of your profile
(which can be big!):
@example
guix graph -t references `readlink -f ~/.guix-profile`
@end example
@end table
The available options are the following:

View file

@ -4,7 +4,7 @@
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
# Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
# Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
#
# This file is part of GNU Guix.
#
@ -188,6 +188,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/lego.scm \
gnu/packages/less.scm \
gnu/packages/lesstif.scm \
gnu/packages/libbsd.scm \
gnu/packages/libcanberra.scm \
gnu/packages/libdaemon.scm \
gnu/packages/libedit.scm \
@ -303,6 +304,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/search.scm \
gnu/packages/serialization.scm \
gnu/packages/serveez.scm \
gnu/packages/shellutils.scm \
gnu/packages/shishi.scm \
gnu/packages/skarnet.scm \
gnu/packages/skribilo.scm \
@ -465,7 +467,6 @@ dist_patch_DATA = \
gnu/packages/patches/duplicity-test_selection-tmp.patch \
gnu/packages/patches/elfutils-tests-ptrace.patch \
gnu/packages/patches/einstein-build.patch \
gnu/packages/patches/emacs-constants-lisp-like.patch \
gnu/packages/patches/emacs-exec-path.patch \
gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
gnu/packages/patches/emacs-source-date-epoch.patch \
@ -494,6 +495,7 @@ dist_patch_DATA = \
gnu/packages/patches/gcc-libiberty-printf-decl.patch \
gnu/packages/patches/gcc-libvtv-runpath.patch \
gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \
gnu/packages/patches/gd-CVE-2016-3074.patch \
gnu/packages/patches/geoclue-config.patch \
gnu/packages/patches/ghostscript-CVE-2015-3228.patch \
gnu/packages/patches/ghostscript-runpath.patch \
@ -507,6 +509,7 @@ dist_patch_DATA = \
gnu/packages/patches/glibc-versioned-locpath.patch \
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
gnu/packages/patches/gmp-faulty-test.patch \
gnu/packages/patches/gnome-tweak-tool-search-paths.patch \
gnu/packages/patches/gnucash-price-quotes-perl.patch \
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
gnu/packages/patches/gobject-introspection-cc.patch \
@ -613,7 +616,6 @@ dist_patch_DATA = \
gnu/packages/patches/matplotlib-setupext-tk.patch \
gnu/packages/patches/maxima-defsystem-mkdir.patch \
gnu/packages/patches/mcron-install.patch \
gnu/packages/patches/mdadm-gcc-4.9-fix.patch \
gnu/packages/patches/mhash-keygen-test-segfault.patch \
gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \
gnu/packages/patches/mit-krb5-CVE-2015-8630.patch \
@ -700,7 +702,6 @@ dist_patch_DATA = \
gnu/packages/patches/python-paste-remove-website-test.patch \
gnu/packages/patches/python-paste-remove-timing-test.patch \
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \
gnu/packages/patches/qt4-ldflags.patch \
gnu/packages/patches/ratpoison-shell.patch \
gnu/packages/patches/readline-link-ncurses.patch \

View file

@ -1482,7 +1482,7 @@ (define-public deeptools
(define-public diamond
(package
(name "diamond")
(version "0.7.9")
(version "0.8.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -1491,33 +1491,18 @@ (define-public diamond
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0hfkcfv9f76h5brbyw9fyvmc0l9cmbsxrcdqk0fa9xv82zj47p15"))
(snippet '(begin
(delete-file "bin/diamond")
#t))))
(build-system gnu-build-system)
"1dqancz32c2l7w1b2vkvh5zqa2jnf99j1c41djnx1l8pxn044zdc"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ;no "check" target
'(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source-dir
(lambda _
(chdir "src")
#t))
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out")
"/bin")))
(mkdir-p bin)
(copy-file "../bin/diamond"
(string-append bin "/diamond"))
#t))))))
(native-inputs
`(("bc" ,bc)))
(add-after 'unpack 'remove-native-compilation
(lambda _
(substitute* "CMakeLists.txt" (("-march=native") ""))
#t)))))
(inputs
`(("boost" ,boost)
("zlib" ,zlib)))
`(("zlib" ,zlib)))
(home-page "https://github.com/bbuchfink/diamond")
(synopsis "Accelerated BLAST compatible local sequence aligner")
(description
@ -2094,7 +2079,7 @@ (define-public hmmer
(source (origin
(method url-fetch)
(uri (string-append
"http://selab.janelia.org/software/hmmer"
"http://eddylab.org/software/hmmer"
(version-prefix version 1) "/"
version "/hmmer-" version ".tar.gz"))
(sha256
@ -2102,7 +2087,7 @@ (define-public hmmer
"0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(home-page "http://hmmer.janelia.org")
(home-page "http://hmmer.org/")
(synopsis "Biosequence analysis using profile hidden Markov models")
(description
"HMMER is used for searching sequence databases for homologs of protein
@ -3570,7 +3555,7 @@ (define-public snap-aligner
(define-public sortmerna
(package
(name "sortmerna")
(version "2.1")
(version "2.1b")
(source
(origin
(method url-fetch)
@ -3580,7 +3565,7 @@ (define-public sortmerna
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1mc5cf1c7xh0h7xb11vh7gqgzx0qvrfa606cb8ixlfg3f2av58s4"))))
"1ghaghvd82af9j5adavxh77g7hm247d1r69m3fbi6f1jdivj5ldk"))))
(build-system gnu-build-system)
(outputs '("out" ;for binaries
"db")) ;for sequence databases
@ -3600,6 +3585,8 @@ (define-public sortmerna
(install-file file share))
(find-files "rRNA_databases" ".*fasta"))
#t))))))
(inputs
`(("zlib" ,zlib)))
(home-page "http://bioinfo.lifl.fr/RNA/sortmerna")
(synopsis "Biological sequence analysis tool for NGS reads")
(description
@ -3831,7 +3818,7 @@ (define-public vcftools
(define-public vsearch
(package
(name "vsearch")
(version "1.10.0")
(version "1.11.1")
(source
(origin
(method url-fetch)
@ -3841,7 +3828,7 @@ (define-public vsearch
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1i3bad7gnn2y3a1yfixzshd99xdkjc8w5bxzgifpysc6jiljwvb5"))
"1pdvm3znjgq3zryy240yj9gc0bf1z31k6vf9jxrxgdgkvzgw85c7"))
(modules '((guix build utils)))
(snippet
'(begin
@ -4018,13 +4005,13 @@ (define-public r-acsnminer
(define-public r-biocgenerics
(package
(name "r-biocgenerics")
(version "0.16.1")
(version "0.18.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BiocGenerics" version))
(sha256
(base32
"0f16ryy5f012hvksrwlmm33bcl7lw97i2jvhbnwfwl03j4w7nhc1"))))
"1jjp48vbph09w5bmc7368gjjywsa1lmzfybpiwlypr60b51vlkp6"))))
(properties
`((upstream-name . "BiocGenerics")))
(build-system r-build-system)
@ -4038,13 +4025,13 @@ (define-public r-biocgenerics
(define-public r-dnacopy
(package
(name "r-dnacopy")
(version "1.44.0")
(version "1.46.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "DNAcopy" version))
(sha256
(base32
"1c1px4rbr36xx929hp59k7ca9k5ab66qmn8k63fk13278ncm6h66"))))
"0vwv2mndfjpcjp4sybg75abc7xnx8zyw8zjk717k6xh8c33ymcip"))))
(properties
`((upstream-name . "DNAcopy")))
(build-system r-build-system)
@ -4060,13 +4047,13 @@ (define-public r-dnacopy
(define-public r-s4vectors
(package
(name "r-s4vectors")
(version "0.8.11")
(version "0.10.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "S4Vectors" version))
(sha256
(base32
"12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66"))))
"1mi6lf6pnb9l657igy0vj4yz03yawbr2jhk22l757fzbjc7n9q3b"))))
(properties
`((upstream-name . "S4Vectors")))
(build-system r-build-system)
@ -4087,13 +4074,13 @@ (define-public r-s4vectors
(define-public r-iranges
(package
(name "r-iranges")
(version "2.4.8")
(version "2.6.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "IRanges" version))
(sha256
(base32
"0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl"))))
"0dz7z0pk8hq79mcgylw920999s08h6j8xrl31rdxhssmi7l8v6vy"))))
(properties
`((upstream-name . "IRanges")))
(build-system r-build-system)
@ -4116,13 +4103,13 @@ (define-public r-iranges
(define-public r-genomeinfodb
(package
(name "r-genomeinfodb")
(version "1.6.3")
(version "1.8.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version))
(sha256
(base32
"1ggp005n2rlkad00ilzn95y4rd484yr1chdhnd6fwg45rbi94d63"))))
"0k4s6z5qj53zkfnyrmcbn3l2nzgm56bhv58rv321j22qa56cpz7d"))))
(properties
`((upstream-name . "GenomeInfoDb")))
(build-system r-build-system)
@ -4142,13 +4129,13 @@ (define-public r-genomeinfodb
(define-public r-variantannotation
(package
(name "r-variantannotation")
(version "1.16.4")
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "VariantAnnotation" version))
(sha256
(base32
"1z42j3p9b8h725inq8n0230llsdbav3gwcxy1nliypzfkxbzahsb"))))
"1jdpdnp7l81xfprba2ykfnj6i64fd84vxaax0wvrz6qahxvnjzyw"))))
(properties
`((upstream-name . "VariantAnnotation")))
(inputs
@ -4174,13 +4161,13 @@ (define-public r-variantannotation
(define-public r-xvector
(package
(name "r-xvector")
(version "0.10.0")
(version "0.12.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "XVector" version))
(sha256
(base32
"0havwyr6xqk7w0rmbwfj9jq1djz7wzdz7w39adhklwzwz9l4ih3a"))))
"0c9cqjcxxks3an4wiq167h2grxlfyazajn7bmxhbk42zifp8vmqp"))))
(properties
`((upstream-name . "XVector")))
(build-system r-build-system)
@ -4210,13 +4197,13 @@ (define-public r-xvector
(define-public r-genomicranges
(package
(name "r-genomicranges")
(version "1.22.4")
(version "1.24.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicRanges" version))
(sha256
(base32
"02df5683nrpn9d10ws8jz9b55nr9055hh882xp2i154xdddir0k0"))))
"1iyzg1npl3rnnslwq3h759vf0xhshnn5v801rnlj6bnxzhn9yaqh"))))
(properties
`((upstream-name . "GenomicRanges")))
(build-system r-build-system)
@ -4237,13 +4224,13 @@ (define-public r-genomicranges
(define-public r-biobase
(package
(name "r-biobase")
(version "2.30.0")
(version "2.32.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "Biobase" version))
(sha256
(base32
"1qasjpq3kw8h7qw8cin3bjvv1256hqr1mm24fq3v0ymxzlb66szi"))))
"0q4icv9n5rc2qfkv6k1wjhmfcpzcyr8f45m2z3xharbdv912kl1i"))))
(properties
`((upstream-name . "Biobase")))
(build-system r-build-system)
@ -4259,13 +4246,13 @@ (define-public r-biobase
(define-public r-annotationdbi
(package
(name "r-annotationdbi")
(version "1.32.3")
(version "1.34.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "AnnotationDbi" version))
(sha256
(base32
"1v6x62hgys5827yg2xayjrd9xawbayzm6wy0q4vxh1s6yxc9bklj"))))
"0nw6c23098gkjlwlrra4rh1m65azczb31qr01pq81cn5gya1zkr4"))))
(properties
`((upstream-name . "AnnotationDbi")))
(build-system r-build-system)
@ -4286,13 +4273,13 @@ (define-public r-annotationdbi
(define-public r-biomart
(package
(name "r-biomart")
(version "2.26.1")
(version "2.28.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biomaRt" version))
(sha256
(base32
"1s709055abj2gd35g6nnk5d2ai5ii09iir270l2xika6pi62gj3f"))))
"1g0w6an9hkflgyhvq6pmrs92s93qarv23v636b9a4bz771wjvm5v"))))
(properties
`((upstream-name . "biomaRt")))
(build-system r-build-system)
@ -4316,13 +4303,13 @@ (define-public r-biomart
(define-public r-biocparallel
(package
(name "r-biocparallel")
(version "1.4.3")
(version "1.6.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BiocParallel" version))
(sha256
(base32
"1f5mndx66vampcsq0n66afg6x851crl0h3nyv2nyp9bsgzj9cdzq"))))
"0ki5xvb3cwjmlsx81gr8ylk1qy3imlj2dd04mzpvl28x42ay4dqj"))))
(properties
`((upstream-name . "BiocParallel")))
(build-system r-build-system)
@ -4340,13 +4327,13 @@ (define-public r-biocparallel
(define-public r-biostrings
(package
(name "r-biostrings")
(version "2.38.4")
(version "2.40.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "Biostrings" version))
(sha256
(base32
"0cjd7i4bdwabzb02gm753aji5xaihkj5ak8nb0d32cclxbj0hp33"))))
"03gyhiz14xy51nzg0glihk1rv19pq4p1aa3y5g23bzcshs67ggj9"))))
(properties
`((upstream-name . "Biostrings")))
(build-system r-build-system)
@ -4366,13 +4353,13 @@ (define-public r-biostrings
(define-public r-rsamtools
(package
(name "r-rsamtools")
(version "1.22.0")
(version "1.24.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "Rsamtools" version))
(sha256
(base32
"1yc3nzzms3igjwr4l9yd3wdac95glcs08b4cfp7disyly0wcskjd"))))
"0w0drs8cpk8nlazq64ag7nm1w5jd1m8riialivm01hz5zcra7scb"))))
(properties
`((upstream-name . "Rsamtools")))
(build-system r-build-system)
@ -4410,13 +4397,13 @@ (define-public r-rsamtools
(define-public r-summarizedexperiment
(package
(name "r-summarizedexperiment")
(version "1.0.2")
(version "1.2.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "SummarizedExperiment" version))
(sha256
(base32
"1gpmh1mi70m5k5qnyjs1h0qn8ajrzalzic7k3762xchxsmmdvxn4"))))
"1c81acgw3a0ha5fgapfh9xq8yhryqqf8k259n2dz0mgz1k2d9klg"))))
(properties
`((upstream-name . "SummarizedExperiment")))
(build-system r-build-system)
@ -4439,13 +4426,13 @@ (define-public r-summarizedexperiment
(define-public r-genomicalignments
(package
(name "r-genomicalignments")
(version "1.6.3")
(version "1.8.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicAlignments" version))
(sha256
(base32
"02b9j1pfd39bkvb623k5k0ziq9rpw093hifqw65vb954dwj29jhd"))))
"1y4qgqxq8dax9swgl59m6i7ggjpqrjllgx87b9vwls3z0nf1i6xj"))))
(properties
`((upstream-name . "GenomicAlignments")))
(build-system r-build-system)
@ -4472,13 +4459,13 @@ (define-public r-genomicalignments
(define-public r-rtracklayer
(package
(name "r-rtracklayer")
(version "1.30.4")
(version "1.32.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "rtracklayer" version))
(sha256
(base32
"0knjnwywh9k726mq28s3sy013zhw6d6nfa8hfw670720nq18i2p0"))))
"0nrwk1g8b1ymvbgnqniimbvwfq13r01va9rx3b03xj4hpywzy5nv"))))
(build-system r-build-system)
(arguments
`(#:phases
@ -4517,13 +4504,13 @@ (define-public r-rtracklayer
(define-public r-genomicfeatures
(package
(name "r-genomicfeatures")
(version "1.22.13")
(version "1.24.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version))
(sha256
(base32
"0n3rkj66la6wizgcsf2rmwcsyfxz9kv5zak337lmk1raqfnancz4"))))
"0ga5a7w8jnnq2k0kc07mshl6cggmbhzh42pzvhnilgl4x3kpbysl"))))
(properties
`((upstream-name . "GenomicFeatures")))
(build-system r-build-system)
@ -4582,13 +4569,13 @@ (define-public r-go-db
(define-public r-graph
(package
(name "r-graph")
(version "1.48.0")
(version "1.50.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "graph" version))
(sha256
(base32
"16w75rji3kv24gfv44w66y1a2y75ax26rl470y3ypna0ndc3rrcd"))))
"0ys5s19m5r30rlr0fnx2h0z2qw7n2xrad4l2yfb1bbrk8dwyf4pi"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics)))
@ -4601,13 +4588,13 @@ (define-public r-graph
(define-public r-topgo
(package
(name "r-topgo")
(version "2.22.0")
(version "2.24.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "topGO" version))
(sha256
(base32
"029j9nb39b8l9xlzsp83pmjr8ap247aia387yzaa1yyw8klapdaf"))))
"1p4vsl32qhjw15yv9ym01ni63gjg73jaghlf17wc4zfn3iaz2zar"))))
(properties
`((upstream-name . "topGO")))
(build-system r-build-system)
@ -4616,6 +4603,7 @@ (define-public r-topgo
("r-biobase" ,r-biobase)
("r-biocgenerics" ,r-biocgenerics)
("r-go-db" ,r-go-db)
("r-matrixstats" ,r-matrixstats)
("r-graph" ,r-graph)
("r-sparsem" ,r-sparsem)))
(home-page "http://bioconductor.org/packages/topGO")
@ -4631,13 +4619,13 @@ (define-public r-topgo
(define-public r-bsgenome
(package
(name "r-bsgenome")
(version "1.38.0")
(version "1.40.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "BSgenome" version))
(sha256
(base32
"130w0m6q8kkca7gyz1aqj5jjhalwvwi6rk2yvbjrnj4gpnncyrd2"))))
"08g3w47ysbmgj4hclb0x2wsn7pi9cnm3xkkfk4shgrka2g23qz44"))))
(properties
`((upstream-name . "BSgenome")))
(build-system r-build-system)
@ -4661,13 +4649,13 @@ (define-public r-bsgenome
(define-public r-impute
(package
(name "r-impute")
(version "1.44.0")
(version "1.46.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "impute" version))
(sha256
(base32
"0y4x5jk7gsf4xn56jrkdcdnxpcfll4h6ivncd7n4snmzixldvmvw"))))
"0v9ibgv8kp8il52miz7b7z65mv6irqxylx6lfzkxgvxd970dgrz0"))))
(inputs
`(("gfortran" ,gfortran)))
(build-system r-build-system)
@ -4681,13 +4669,13 @@ (define-public r-impute
(define-public r-seqpattern
(package
(name "r-seqpattern")
(version "1.2.0")
(version "1.4.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "seqPattern" version))
(sha256
(base32
"0p9zj6bic7sa0hb2bjm988kkk5n9r1kvlbqkzvy702f642n0j53i"))))
"1dj9hfnbdj11yjxwd8jmxrdkj7n6gmaaj6244g2psgarhjcp4wfb"))))
(properties
`((upstream-name . "seqPattern")))
(build-system r-build-system)
@ -4707,13 +4695,13 @@ (define-public r-seqpattern
(define-public r-genomation
(package
(name "r-genomation")
(version "1.2.2")
(version "1.4.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "genomation" version))
(sha256
(base32
"0kvzwc21zsh2c8d34yn935ncn38bfkpzmknycd8h7b0521x20mi9"))))
"017hxh3yhizlsswd2vw8504arkckrcgq5zraiw67lldq9wzs5qzg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biostrings" ,r-biostrings)
@ -4854,14 +4842,14 @@ (define-public r-org-mm-eg-db
(define-public r-seqlogo
(package
(name "r-seqlogo")
(version "1.36.0")
(version "1.38.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "seqLogo" version))
(sha256
(base32
"0kn1a1nf2j4v9c09vjkz9bmxlln7yhg87bnyrdsxy1m55x56rn5k"))))
"01jddx62nhi3r7czbh9hxy0wwpazbc9ax1fgagfxl6p4kx9xz9rb"))))
(properties `((upstream-name . "seqLogo")))
(build-system r-build-system)
(home-page "http://bioconductor.org/packages/seqLogo")
@ -5001,14 +4989,14 @@ (define-public r-bsgenome-dmelanogaster-ucsc-dm3
(define-public r-motifrg
(package
(name "r-motifrg")
(version "1.14.0")
(version "1.16.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "motifRG" version))
(sha256
(base32
"1v9zm5629k2lcqbbgw8bwflvbircyxkfavbkvmbd212kgwcng8vn"))))
"1ds22paqc0923y6z1fy0arw0wxvvmglfvfgarhywv1qywhq68mbq"))))
(properties `((upstream-name . "motifRG")))
(build-system r-build-system)
(propagated-inputs
@ -5053,13 +5041,13 @@ (define-public r-qtl
(define-public r-zlibbioc
(package
(name "r-zlibbioc")
(version "1.16.0")
(version "1.18.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "zlibbioc" version))
(sha256
(base32
"01wc26ndg4jsn1wyrl6zzq636gxaip5fci0xapym4lh9wryc4wnw"))))
"0m8l7zpx1l3qsk73k3ibkxxzzff938x3qhnwki1ymf3cnsg8cb36"))))
(properties
`((upstream-name . "zlibbioc")))
(build-system r-build-system)
@ -5069,6 +5057,70 @@ (define-public r-zlibbioc
libraries for systems that do not have these available via other means.")
(license license:artistic2.0)))
(define-public piranha
(package
(name "piranha")
(version "1.1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/smithlabcode/piranha"
"/archive/svn/tags/piranha-"
version ".tar.gz"))
(sha256
(base32
"1lczxff01n4139w7xwqamlb36g9hgrcy93gh03nqszhwb8ivsrqd"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'copy-smithlab-cpp
(lambda* (#:key inputs #:allow-other-keys)
(mkdir "src/smithlab_cpp")
(for-each (lambda (file)
(install-file file "./src/smithlab_cpp/"))
(find-files (assoc-ref inputs "smithlab-cpp")))
#t))
(add-after 'install 'install-to-store
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(for-each (lambda (file)
(install-file file bin))
(find-files "bin" ".*")))
#t)))
#:configure-flags
(list (string-append "--with-bam_tools_headers="
(assoc-ref %build-inputs "bamtools") "/include/bamtools")
(string-append "--with-bam_tools_library="
(assoc-ref %build-inputs "bamtools") "/lib/bamtools"))))
(inputs
`(("bamtools" ,bamtools)
("samtools" ,samtools-0.1)
("gsl" ,gsl)
("smithlab-cpp"
,(let ((commit "3723e2d"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/smithlabcode/smithlab_cpp.git")
(commit commit)))
(file-name (string-append "smithlab_cpp-" commit "-checkout"))
(sha256
(base32
"0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g")))))))
(native-inputs
`(("python" ,python-2)))
(home-page "https://github.com/smithlabcode/piranha")
(synopsis "Peak-caller for CLIP-seq and RIP-seq data")
(description
"Piranha is a peak-caller for genomic data produced by CLIP-seq and
RIP-seq experiments. It takes input in BED or BAM format and identifies
regions of statistically significant read enrichment. Additional covariates
may optionally be provided to further inform the peak-calling process.")
(license license:gpl3+)))
(define-public pepr
(package
(name "pepr")

View file

@ -1,7 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -37,7 +38,7 @@ (define-module (gnu packages calendar)
(define-public libical
(package
(name "libical")
(version "1.0.1")
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -45,10 +46,14 @@ (define-public libical
version "/libical-" version ".tar.gz"))
(sha256
(base32
"14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708"))))
"1njn2kr0rrjqv5g3hdhpdzrhankyj4fl1bgn76z3g4n1b7vi2k35"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; test suite appears broken
#:configure-flags
(list (string-append "-DCMAKE_INSTALL_RPATH="
(assoc-ref %outputs "out") "/lib:"
(assoc-ref %outputs "out") "/lib64"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-paths

View file

@ -43,14 +43,14 @@ (define-module (gnu packages code)
(define-public cflow
(package
(name "cflow")
(version "1.4")
(version "1.5")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/cflow/cflow-"
version ".tar.bz2"))
(sha256
(base32
"1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3"))))
"0yq33k5ap1zpnja64n89iai4zh018ffr72wki5a6mzczd880mr3g"))))
(build-system gnu-build-system)
;; Needed to have cflow-mode.el installed.

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,6 +20,8 @@
(define-module (gnu packages crypto)
#:use-module (gnu packages)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages libbsd)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
@ -46,3 +49,42 @@ (define-public libsodium
communication, encryption, decryption, signatures, etc.")
(license isc)
(home-page "http://libsodium.org")))
(define-public signify
(package
(name "signify")
(version "17")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/aperezdc/signify/"
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0kfv2k1fqck31vwlnicavb0h541ilad9zd7j8zz8x2kx36wwqpr7"))))
(build-system gnu-build-system)
;; TODO Build with libwaive (described in README.md), to implement something
;; like OpenBSD's pledge().
(arguments
`(#:tests? #f ; no test suite
#:make-flags
(list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libbsd" ,libbsd)))
(synopsis "Create and verify cryptographic signatures")
(description "The signify utility creates and verifies cryptographic
signatures using the elliptic curve Ed25519. This is a Linux port of the
OpenBSD tool of the same name.")
(home-page "https://github.com/aperezdc/signify")
;; This package includes third-party code that was originally released under
;; various non-copyleft licenses. See the source files for clarification.
(license (list bsd-3 bsd-4 expat isc public-domain
(non-copyleft "file://base64.c"
"See base64.c in the distribution for
the license from IBM.")))))

View file

@ -332,14 +332,14 @@ (define-public mariadb
(define-public postgresql
(package
(name "postgresql")
(version "9.5.2")
(version "9.5.3")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"0hbwwhh0pz0a6vf8j5bskiq7gmz9rwc9ywcqyhg5asshckj35lgq"))))
"1d500d2qsdzysnis6qi84xchnz5xh8kx8sjfmkbsijwaqlfw11bk"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -460,14 +460,14 @@ (define-public sqlite
(define-public tdb
(package
(name "tdb")
(version "1.3.8")
(version "1.3.9")
(source (origin
(method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
version ".tar.gz"))
(sha256
(base32
"1cg6gmpgn36dd4bsp3j9k3hyrm87d8hdigqyyqxw5jga4w2aq186"))))
"1ll4q17scax1arg12faj8p25jq1f7q9irc3pwla0ziymwqkgf0bi"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-replace
@ -822,14 +822,15 @@ (define-public perl-sql-tokenizer
(define-public unixodbc
(package
(name "unixodbc")
(version "2.3.2")
(version "2.3.4")
(source (origin
(method url-fetch)
(uri
(string-append
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-" version ".tar.gz"))
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
version ".tar.gz"))
(sha256
(base32 "16jw5fq7wgfky6ak1h2j2pqx99jivsdl4q8aq6immpr55xs5jd4w"))))
(base32 "0f8y88rcc2akjvjv5y66yx7k0ms9h1s0vbcfy25j93didflhj59f"))))
(build-system gnu-build-system)
(synopsis "Data source abstraction library")
(description "Unixodbc is a library providing an API with which to access

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;

View file

@ -7,6 +7,8 @@
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 humanitiesNerd <catonano@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -252,6 +254,36 @@ (define-public geiser
metadata.")
(license license:bsd-3)))
(define-public geiser-next
;; Geiser's upcoming version supports guile-next, and 0.8.1 does not.
;; When the next Geiser release comes out, we can remove this.
(let ((commit "2e335695fc1a4a0b520b50deb761b958194cbec4"))
(package
(inherit geiser)
(name "geiser-next")
(version (string-append "0.8.1-1"
(string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.sv.gnu.org/geiser.git")
(commit commit)))
(sha256
(base32
"00rmpn8zncq1fiah5m12l26z0s28bh7ql63kxdvksqdgfrisnmgf"))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("texinfo" ,texinfo)
,@(package-native-inputs geiser)))
(arguments
(substitute-keyword-arguments (package-arguments geiser)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'autogen
(lambda _
(zero? (system* "sh" "autogen.sh")))))))))))
(define-public paredit
(package
(name "paredit")
@ -1364,26 +1396,24 @@ (define* (uncompressed-file-fetch url hash-algo hash
(gexp->derivation (or name (basename url))
#~(begin
(mkdir #$output)
(setenv "PATH"
(string-append #$gzip "/bin"))
(chdir #$output)
(copy-file #$drv (basename #$url))))))
(define-public emacs-constants
(package
(name "emacs-constants")
(version "2.2")
(version "2.6")
(home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
(source
(origin
(file-name (string-append name "-" version ".el"))
(method uncompressed-file-fetch)
(uri "https://staff.fnwi.uva.nl/c.dominik/Tools/constants/constants.el")
(patches (search-patches "emacs-constants-lisp-like.patch"))
(method url-fetch)
(uri (string-append "https://github.com/fedeinthemix/emacs-constants"
"/archive/v" version ".tar.gz"))
(sha256
(base32
"14q094aphsjhq8gklv7i5a7byl0ygz63cv3n6b5p8ji2jy0mnnw3"))))
"0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
(build-system emacs-build-system)
(home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
(synopsis "Enter definition of constants into an Emacs buffer")
(description
"This package provides functions for inserting the definition of natural
@ -1551,3 +1581,53 @@ (define-public emacs-ffap-rfc-space
that it correctly finds RFCs even when a space appears before the
number.")
(license license:gpl3+)))
(define-public emacs-zenburn-theme
(package
(name "emacs-zenburn-theme")
(version "2.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/bbatsov/zenburn-emacs/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0lyi84bm8sa7vj40n6zg6rlbsmi53mi1y9xn6gkjj29s5zbcnlg7"))))
(build-system emacs-build-system)
(home-page "http://github.com/bbatsov/zenburn-emacs")
(synopsis "Low contrast color theme for Emacs")
(description
"Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
It is built on top of the custom theme support in Emacs 24 or later.")
(license license:gpl3+)))
(define-public emacs-smartparens
(package
(name "emacs-smartparens")
(version "1.7.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/Fuco1/smartparens/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1b47ppkzsj8j8a2p0bmvq05rhm2d2lsm3wlc0sg542r4zr6nji8s"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-dash" ,emacs-dash)))
(home-page "https://github.com/Fuco1/smartparens")
(synopsis "Paredit-like insertion, wrapping and navigation with user
defined pairs")
(description
"Smartparens is a minor mode for Emacs that deals with parens pairs
and tries to be smart about it. It started as a unification effort to
combine functionality of several existing packages in a single,
compatible and extensible way to deal with parentheses, delimiters, tags
and the like. Some of these packages include autopair, textmate,
wrap-region, electric-pair-mode, paredit and others. With the basic
features found in other packages it also brings many improvements as
well as completely new features.")
(license license:gpl3+)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -23,13 +24,21 @@ (define-module (gnu packages finance)
#:use-module (guix download)
#:use-module (guix build utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages databases)
#:use-module (gnu packages emacs)
#:use-module (gnu packages groff)
#:use-module (gnu packages libedit)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp))
@ -81,3 +90,100 @@ (define-public bitcoin-core
of the bitcoin protocol. This package provides the Bitcoin Core command
line client and a client based on Qt.")
(license license:expat)))
(define-public ledger
(package
(name "ledger")
(version "3.1.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/ledger/ledger/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"12jlv3gsjhrja25q9hrwh73cdacd2l3c2yyn8qnijav9mdhnbw4h"))))
(build-system cmake-build-system)
(arguments
`(#:modules ((guix build cmake-build-system)
(guix build utils)
(guix build emacs-utils))
#:imported-modules (,@%cmake-build-system-modules
(guix build emacs-utils))
#:configure-flags
`("-DBUILD_DOCS:BOOL=ON"
"-DBUILD_WEB_DOCS:BOOL=ON"
"-DBUILD_EMACSLISP:BOOL=ON"
"-DUSE_PYTHON:BOOL=ON"
"-DCMAKE_INSTALL_LIBDIR:PATH=lib"
,(string-append "-DUTFCPP_INCLUDE_DIR:PATH="
(assoc-ref %build-inputs "utfcpp")
"/include"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'install-examples
(lambda* (#:key outputs #:allow-other-keys)
(let ((examples (string-append (assoc-ref outputs "out")
"/share/doc/ledger/examples")))
(install-file "test/input/sample.dat" examples)
(install-file "test/input/demo.ledger" examples))
#t))
(add-after 'build 'build-doc
(lambda _ (zero? (system* "make" "doc"))))
(add-before 'check 'check-setup
;; One test fails if it can't set the timezone.
(lambda* (#:key inputs #:allow-other-keys)
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
#t))
(add-after 'install 'relocate-elisp
(lambda* (#:key outputs #:allow-other-keys)
(let* ((site-dir (string-append (assoc-ref outputs "out")
"/share/emacs/site-lisp"))
(guix-dir (string-append site-dir "/guix.d"))
(orig-dir (string-append site-dir "/ledger-mode"))
(dest-dir (string-append guix-dir "/ledger-mode")))
(mkdir-p guix-dir)
(rename-file orig-dir dest-dir)
(emacs-generate-autoloads ,name dest-dir))
#t)))))
(inputs
`(("boost" ,boost)
("gmp" ,gmp)
("libedit" ,libedit)
("mpfr" ,mpfr)
("python" ,python-2)
("tzdata" ,tzdata)
("utfcpp" ,utfcpp)))
(native-inputs
`(("emacs" ,emacs-no-x)
("groff" ,groff)
("texinfo" ,texinfo)))
(home-page "http://ledger-cli.org/")
(synopsis "Command-line double-entry accounting program")
(description
"Ledger is a powerful, double-entry accounting system that is
accessed from the UNIX command-line. This may put off some users, since
there is no flashy UI, but for those who want unparalleled reporting
access to their data there are few alternatives.
Ledger uses text files for input. It reads the files and generates
reports; there is no other database or stored state. To use Ledger,
you create a file of your account names and transactions, run from the
command line with some options to specify input and requested reports, and
get output. The output is generally plain text, though you could generate
a graph or html instead. Ledger is simple in concept, surprisingly rich
in ability, and easy to use.")
;; There are some extra licenses in files which do not presently get
;; installed when you build this package. Different versions of the GPL
;; are used in the contrib and python subdirectories. The bundled version
;; of utfcpp is under the Boost 1.0 license. Also the file
;; `tools/update_copyright_year` has an Expat license.
(license (list license:bsd-3
license:asl2.0 ; src/strptime.cc
(license:non-copyleft
"file://src/wcwidth.cc"
"See src/wcwidth.cc in the distribution.")
license:gpl2+)))) ; lisp/*

View file

@ -2,7 +2,7 @@
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;

View file

@ -82,14 +82,14 @@ (define-public xdg-utils
(define-public libinput
(package
(name "libinput")
(version "1.2.0")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/"
name "-" version ".tar.xz"))
(sha256
(base32
"0b3f67xsy1s84cvzw22mjfkbcv6pj4p4yns4h3m0fmb7zqbvjm0p"))))
"1sn1s1bz06fa49izqkqf519sjclsvhf42i6slzx1w5hx4vxpb2lr"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -288,7 +288,7 @@ (define-public wayland
(define-public exempi
(package
(name "exempi")
(version "2.2.2")
(version "2.3.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -296,7 +296,7 @@ (define-public exempi
name "-" version ".tar.bz2"))
(sha256
(base32
"01vcd1mfn2s0iiq2cjyzgvnxx6kcq9cwra1iipijhs0vwvjx0yhf"))))
"0jcrv3w8m415cq8xi886hcxfqbrn5dczxbzybx9bhf3dbqsyv6nq"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list (string-append "--with-boost="
@ -448,7 +448,7 @@ (define-public accountsservice
(define-public libmbim
(package
(name "libmbim")
(version "1.12.2")
(version "1.12.4")
(source (origin
(method url-fetch)
(uri (string-append
@ -456,7 +456,7 @@ (define-public libmbim
name "-" version ".tar.xz"))
(sha256
(base32
"0abv0h9c3kbw4bq1b9270sg189jcjj3x3wa91bj836ynwg9m34wl"))))
"0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums
@ -467,7 +467,7 @@ (define-public libmbim
(inputs
`(("libgudev" ,libgudev)))
(synopsis "Library to communicate with MBIM-powered modems")
(home-page "http://www.freedesktop.org/wiki/Software/libmbim/")
(home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
(description
"Libmbim is a GLib-based library for talking to WWAN modems and devices
which speak the Mobile Interface Broadband Model (MBIM) protocol.")
@ -479,7 +479,7 @@ (define-public libmbim
(define-public libqmi
(package
(name "libqmi")
(version "1.12.8")
(version "1.14.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -487,7 +487,7 @@ (define-public libqmi
name "-" version ".tar.xz"))
(sha256
(base32
"19w2zkm5xl6i3vm1xhjjclks4awas17gfbb2k5y66gwnkiykjfnj"))))
"0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -33,15 +34,16 @@ (define-module (gnu packages fvwm)
(define-public fvwm
(package
(name "fvwm")
(version "2.6.5")
(version "2.6.6")
(source (origin
(method url-fetch)
(uri (string-append
"ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-"
version ".tar.bz2"))
"https://github.com/fvwmorg/fvwm/releases/download/"
"version-" (string-join (string-split version #\.) "_")
"/" name "-" version ".tar.gz"))
(sha256
(base32
"1ks8igvmzm0m0sra05k8xzc8vkqy3gv1qskl6davw1irqnarjm11"))))
"0b6w0vk6cpqaz0ws3vl4by0mycv33r42a0m806j2h8avy9ghipn5"))))
(build-system gnu-build-system)
(native-inputs
`(("perl" ,perl)

View file

@ -6,7 +6,7 @@
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -272,14 +272,14 @@ (define-public physfs
(define-public love
(package
(name "love")
(version "0.10.0")
(version "0.10.1")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/rude/love/downloads/"
"love-" version "-linux-src.tar.gz"))
(sha256
(base32
"1r2n1nrw3hcdvy14fjbwz3l9swcy65v3lqwpj2frnkkcwncdz94p"))))
"1ys18m7c4994k5s7avqlf17sc2icx5zgvfplz504q1ka16hwkc52"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu>
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
@ -18,7 +18,7 @@
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
@ -642,7 +642,7 @@ (define-public mars
(define minetest-data
(package
(name "minetest-data")
(version "0.4.13")
(version "0.4.14")
(source (origin
(method url-fetch)
(uri (string-append
@ -651,7 +651,7 @@ (define minetest-data
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"04xnyfap75v3p818kpqb07xshqwqzpws5xjvw5m96qnd9x4725ld"))))
"11fzdh4icx2yvjfz1skdql0d0wxpzdr006k993v33x72s0q2ig7f"))))
(build-system trivial-build-system)
(native-inputs
`(("source" ,source)
@ -683,7 +683,7 @@ (define minetest-data
(define-public minetest
(package
(name "minetest")
(version "0.4.13")
(version "0.4.14")
(source (origin
(method url-fetch)
(uri (string-append
@ -692,7 +692,7 @@ (define-public minetest
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1xzrvsg0fpbj5p4pz6lls11m3ab4y2bnjlsm4gnw68x9006ffznp"))))
"0m3hhk5icx4y4gd970z7ya2013fq4vvqbjljmck62ik03baf8g90"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags

View file

@ -618,6 +618,17 @@ (define-public gcc-objc-4.8
(variable "LIBRARY_PATH")
(files '("lib" "lib64"))))))
(define-public gcc-objc-4.9
(custom-gcc gcc-4.9 "gcc-objc" '("objc")
(list (search-path-specification
(variable "OBJC_INCLUDE_PATH")
(files '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
(files '("lib" "lib64"))))))
(define-public gcc-objc gcc-objc-4.9)
(define-public gcc-objc++-4.8
(custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
(list (search-path-specification
@ -627,6 +638,17 @@ (define-public gcc-objc++-4.8
(variable "LIBRARY_PATH")
(files '("lib" "lib64"))))))
(define-public gcc-objc++-4.9
(custom-gcc gcc-4.9 "gcc-objc++" '("obj-c++")
(list (search-path-specification
(variable "OBJCPLUS_INCLUDE_PATH")
(files '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
(files '("lib" "lib64"))))))
(define-public gcc-objc++ gcc-objc++-4.9)
(define (make-libstdc++-doc gcc)
"Return a package with the libstdc++ documentation for GCC."
(package

View file

@ -1,7 +1,8 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -48,7 +49,8 @@ (define-public gd
"libgd-" version ".tar.xz"))
(sha256
(base32
"11djy9flzxczphigqgp7fbbblbq35gqwwhn9xfcckawlapa1xnls"))))
"11djy9flzxczphigqgp7fbbblbq35gqwwhn9xfcckawlapa1xnls"))
(patches (search-patches "gd-CVE-2016-3074.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -69,7 +71,8 @@ (define-public gd
most anything else, on the fly. While not restricted to use on the web, the
most common applications of GD involve website development.")
(license (non-copyleft "file://COPYING"
"See COPYING file in the distribution."))))
"See COPYING file in the distribution."))
(properties '((cpe-name . "libgd")))))
(define-public perl-gd
(package

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -63,8 +64,9 @@ (define-public geeqie
(version "1.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/geeqie/geeqie-"
version ".tar.gz"))
(uri (string-append "https://github.com/BestImageViewer/geeqie/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1kzy39z9505xkayyx7rjj2wda76xy3ch1s5z35zn8yli54ffhi2m"))))
@ -78,7 +80,7 @@ (define-public geeqie
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "http://geeqie.sourceforge.net")
(home-page "http://www.geeqie.org/")
(synopsis "Lightweight GTK+ based image viewer")
(description
"Geeqie is a lightweight GTK+ based image viewer for Unix like operating

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -33,7 +34,7 @@ (define-public gkrellm
(source
(origin
(method url-fetch)
(uri (string-append "http://members.dslextreme.com/users/billw/gkrellm/gkrellm-"
(uri (string-append "http://gkrellm.srcbox.net/releases/gkrellm-"
version ".tar.bz2"))
(sha256
(base32
@ -57,7 +58,7 @@ (define-public gkrellm
(list (string-append "INSTALLROOT=" out)
"CC=gcc"
"X11_LIBS = -lX11 -lSM -lICE -lgmodule-2.0"))))
(home-page "http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html")
(home-page "http://gkrellm.srcbox.net/")
(synopsis "System monitors")
(description
"GKrellM is a single process stack of system monitors which supports

View file

@ -15,7 +15,9 @@
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -58,6 +60,7 @@ (define-module (gnu packages gnome)
#:use-module (gnu packages flex)
#:use-module (gnu packages docbook)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages game-development)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@ -162,6 +165,55 @@ (define-public brasero
features to enable users to create their discs easily and quickly.")
(license license:gpl2+)))
(define-public dia
;; This version from GNOME's repository includes fixes for compiling with
;; recent versions of the build tools. The latest activity on the
;; pre-GNOME version has been in 2014, while GNOME has continued applying
;; fixes in 2016.
(let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
(package
(name "dia")
(version (string-append "0.97.2-" (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.gnome.org/browse/dia")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
(build-system gnu-build-system)
(inputs
`(("glib" ,glib "bin")
("pango" ,pango)
("gdk-pixbuf" ,gdk-pixbuf)
("gtk+" ,gtk+-2)
("libxml2" ,libxml2)
("freetype" ,freetype)
("libart-lgpl" ,libart-lgpl)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)
("automake" ,automake)
("autoconf" ,autoconf)
("libtool" ,libtool)
("perl" ,perl)
("python-wrapper" ,python-wrapper)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'run-autogen
(lambda _
(system* "sh" "autogen.sh"))))))
(home-page "https://wiki.gnome.org/Apps/Dia")
(synopsis "Diagram creation for GNOME")
(description "Dia can be used to draw different types of diagrams, and
includes support for UML static structure diagrams (class diagrams), entity
relationship modeling, and network diagrams. The program supports various file
formats like PNG, SVG, PDF and EPS.")
(license license:gpl2+))))
(define-public gnome-common
(package
(name "gnome-common")
@ -682,7 +734,8 @@ (define-public libnotify
("libpng" ,libpng)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin")))
("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)))
(home-page "https://developer-next.gnome.org/libnotify/")
(synopsis
"GNOME desktop notification library")
@ -5022,3 +5075,74 @@ (define-public libzapojit
"Libzapojit is a GLib-based library for accessing online service APIs of
Microsoft SkyDrive and Hotmail, using their REST protocols.")
(license license:lgpl2.1+)))
(define-public gnome-calendar
(package
(name "gnome-calendar")
(version "3.20.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1vny8fclwglapdyxd2g9fbwdlk5hhnb993k2hvq3rf0hcgswycpi"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("bdb" ,bdb)
("desktop-file-utils" ,desktop-file-utils)
("evolution-data-server" ,evolution-data-server)
("gnome-online-accounts" ,gnome-online-accounts)))
(home-page "https://wiki.gnome.org/Apps/Calendar")
(synopsis "GNOME's calendar application")
(description
"GNOME Calendar is a simple calendar application designed to fit the GNOME
desktop. It supports multiple calendars, monthly view and yearly view.")
(license license:gpl3+)))
(define-public gnome-tweak-tool
(package
(name "gnome-tweak-tool")
(version "3.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/gnome-tweak-tool/"
(version-major+minor version) "/"
"gnome-tweak-tool-" version ".tar.xz"))
(patches (list
(search-patch "gnome-tweak-tool-search-paths.patch")))
(sha256
(base32
"1fj6wjvnjygzm9br3sw9gya6d18yly1rm69yaiar9spfbkvv4wai"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--localstatedir=/tmp"
"--sysconfdir=/tmp")
#:imported-modules ((guix build python-build-system)
,@%gnu-build-system-modules)
#:phases (modify-phases %standard-phases
(add-after 'install 'wrap
(@@ (guix build python-build-system) wrap)))))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("python" ,python-2)
("python2-pygobject" ,python2-pygobject)))
(propagated-inputs
`(("libnotify" ,libnotify)
("gobject-introspection" ,gobject-introspection)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+)))
(synopsis "Customize advanced GNOME 3 options")
(home-page "https://wiki.gnome.org/action/show/Apps/GnomeTweakTool")
(description
"GNOME Tweak Tool allows adjusting advanced configuration settings in
GNOME 3. This includes things like the fonts used in user interface elements,
alternative user interface themes, changes in window management behavior,
GNOME Shell appearance and extension, etc.")
(license license:gpl3+)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,7 +30,7 @@ (define-module (gnu packages gnu-pw-mgr)
(define-public gnu-pw-mgr
(package
(name "gnu-pw-mgr")
(version "1.6")
(version "2.0")
(source
(origin
(method url-fetch)
@ -37,7 +38,7 @@ (define-public gnu-pw-mgr
version ".tar.xz"))
(sha256
(base32
"141wfm4w420ygrl7qvrc84drzv34jym0d2bxqcgi7n1vimql0slp"))))
"19qvg37snfa8s06q5crx25m1r1n4l0wvfpkbdxz17q7whp0plrl6"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -101,7 +101,15 @@ (define-public wmbattery
version ".orig.tar.gz"))
(sha256
(base32
"0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"))))
"0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"))
(modules '((guix build utils)))
(snippet
;; Fix memory leak:
;; <https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00466.html>.
'(substitute* "upower.c"
(("up = up_client_new\\(\\);")
(string-append "if (!up)\n"
" up = up_client_new();"))))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target

View file

@ -517,4 +517,8 @@ (define-public icecat
software, which does not recommend non-free plugins and addons. It also
features built-in privacy-protecting features.")
(license license:mpl2.0) ;and others, see toolkit/content/license.html
(properties '((ftp-directory . "/gnu/gnuzilla")))))
(properties
`((ftp-directory . "/gnu/gnuzilla")
(cpe-name . "firefox_esr")
(cpe-version . ,(string-drop-right version
(string-length "-gnu1")))))))

View file

@ -295,15 +295,30 @@ (define-public rapicorn
"1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d"))))
(build-system gnu-build-system)
(arguments
`(;; FIXME: At least "testrcore1" fails.
#:tests? #f
#:phases
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'replace-/bin/ls
(add-after 'unpack 'fix-tests
(lambda _
;; Our grep does not support perl regular expressions.
(substitute* "taptool.sh"
(("grep -P") "grep -E"))
;; Disable path tests because we cannot access /bin or /sbin.
(substitute* "rcore/tests/multitest.cc"
(("TCMP \\(Path::equals \\(\"/bin\"") "//"))
#t))
(add-before 'check 'pre-check
(lambda _
;; The test suite requires a running X server (with DISPLAY
;; number 99 or higher).
(system "Xvfb :99 &")
(setenv "DISPLAY" ":99")
#t))
(add-after 'unpack 'replace-fhs-paths
(lambda _
(substitute* (cons "Makefile.decl"
(find-files "." "^Makefile\\.in$"))
(("/bin/ls") (which "ls")))
(("/bin/ls") (which "ls"))
(("/usr/bin/env") (which "env")))
#t)))))
;; These libraries are listed in the "Required" section of the pkg-config
;; file.
@ -311,7 +326,8 @@ (define-public rapicorn
`(("librsvg" ,librsvg)
("cairo" ,cairo)
("pango" ,pango)
("libxml2" ,libxml2)))
("libxml2" ,libxml2)
("python2-enum34" ,python2-enum34)))
(inputs
`(("gdk-pixbuf" ,gdk-pixbuf)
("libpng" ,libpng-1.2)
@ -326,7 +342,8 @@ (define-public rapicorn
("doxygen" ,doxygen)
("graphviz" ,graphviz)
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
("pkg-config" ,pkg-config)
("xvfb" ,xorg-server)))
(home-page "http://rapicorn.org")
(synopsis "Toolkit for rapid development of user interfaces")
(description

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, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;;
@ -132,4 +132,5 @@ (define-public grub
bootloader, GRUB handles the presence of multiple operating systems installed
on the same computer; upon booting the computer, the user is presented with a
menu to select one of the installed operating systems.")
(license gpl3+)))
(license gpl3+)
(properties '((cpe-name . "grub2")))))

View file

@ -10,6 +10,7 @@
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -41,6 +42,7 @@ (define-module (gnu packages gtk)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript)
@ -1244,3 +1246,30 @@ (define-public murrine
"Murrine is a cairo-based GTK+ theming engine. It is named after the
glass artworks done by Venicians glass blowers.")
(license license:gpl2+)))
(define-public gtkspell3
(package
(name "gtkspell3")
(version "3.0.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gtkspell/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1zrz5pz4ryvcssk898liynmy2wyxgj95ak7mp2jv7x62yzihq6h1"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(inputs
`(("enchant" ,enchant)
("gobject-introspection" ,gobject-introspection)
("gtk+" ,gtk+)
("pango" ,pango)))
(home-page "http://gtkspell.sourceforge.net")
(synopsis "Spell-checking addon for GTK's TextView widget")
(description
"GtkSpell provides word-processor-style highlighting and replacement of
misspelled words in a GtkTextView widget.")
(license license:gpl2+)))

View file

@ -566,16 +566,15 @@ (define-public guile-minikanren
(define-public guile-irregex
(package
(name "guile-irregex")
(version "0.9.3")
(version "0.9.4")
(source (origin
(method url-fetch)
(uri (string-append
"http://synthcode.com/scheme/irregex/irregex-"
version
".tar.gz"))
version ".tar.gz"))
(sha256
(base32
"1b8jl7bycyl2ssp6sb1j24pp9hvqyxm85ki9bmwd50glyyjs5zay"))))
"0cmaqvqvyarcnnsyrl2p6vwyv1r3k1q7qw8p9zrlnz1vpbj7vb90"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build utils)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,7 +30,7 @@ (define-public hugs
(source
(origin
(method url-fetch)
(uri (string-append "http://cvs.haskell.org/Hugs/downloads/2006-09/"
(uri (string-append "https://www.haskell.org/hugs/downloads/2006-09/"
name "98-plus-" version ".tar.gz"))
(sha256
(base32
@ -67,7 +68,7 @@ (define-public hugs
(("/bin/cp") (which "cp"))))
%standard-phases)
#:tests? #f)) ; no test target
(home-page "http://haskell.org/hugs")
(home-page "https://www.haskell.org/hugs/")
(synopsis "Functional programming system based on Haskell 98")
(description
"Hugs 98 is an interpreter and programming environment for developing

View file

@ -32,7 +32,7 @@ (define-module (gnu packages hurd)
(define-public gnumach-headers
(package
(name "gnumach-headers")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -40,7 +40,7 @@ (define-public gnumach-headers
version ".tar.gz"))
(sha256
(base32
"1m7xwsrv6x6gk9xi5phs104rdn9q3lr63p348vyv0dzd6r3zyncb"))))
"1vd0bykshf6ilr55792b5lf6yd5ywlkp1wqz00dcsx7fq3rfadz2"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace
@ -66,7 +66,7 @@ (define-public gnumach-headers
(define-public mig
(package
(name "mig")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -74,7 +74,7 @@ (define-public mig
version ".tar.gz"))
(sha256
(base32
"1i9qd6j5g8wsv9k9n6vpdqflyw0284wyayb2s2h7pp4yyi2jsksk"))))
"1hxqd8p14pgamgavmbmziswvd1zvwqx7lgc9qga805q9jrs93q2b"))))
(build-system gnu-build-system)
;; Flex is needed both at build and run time.
(inputs `(("gnumach-headers" ,gnumach-headers)
@ -97,14 +97,14 @@ (define-public mig
(define-public hurd-headers
(package
(name "hurd-headers")
(version "0.7")
(version "0.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/hurd/hurd-"
version ".tar.gz"))
(sha256
(base32
"1q2pyc16vb5plqi8hlwnnc9jk8zlifm91cavz6x7vhbwy0nh2yvh"))))
"1pbc4aqgzxvkgivw80ghp3w755cl0fwxmg357vq7chimj64jk78d"))))
(build-system gnu-build-system)
(native-inputs
`(;; Autoconf shouldn't be necessary but there seems to be a bug in the

View file

@ -392,14 +392,15 @@ (define-public openjpeg-1
(define-public giflib
(package
(name "giflib")
(version "5.1.2")
(version "5.1.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/giflib/giflib-"
(first (string-split version #\.))
".x/giflib-" version ".tar.bz2"))
(sha256
(base32 "0z1adsza46q84chkxwr6x8ph11k117k8nywkzwar6bxhqf2a1h3n"))))
(base32
"1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))))
(build-system gnu-build-system)
(outputs '("bin" ; utility programs
"out")) ; library
@ -408,26 +409,25 @@ (define-public giflib
("libsm" ,libsm)
("perl" ,perl)))
(arguments
`(#:phases (alist-cons-after
'unpack 'disable-html-doc-gen
(lambda _
(substitute* "doc/Makefile.in"
(("^all: allhtml manpages") "")))
(alist-cons-after
'install 'install-manpages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((bin (assoc-ref outputs "bin"))
(man1dir (string-append bin "/share/man/man1")))
(mkdir-p man1dir)
(for-each (lambda (file)
(let ((base (basename file)))
(format #t "installing `~a' to `~a'~%"
base man1dir)
(copy-file file
(string-append
man1dir "/" base))))
(find-files "doc" "\\.1"))))
%standard-phases))))
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-html-doc-gen
(lambda _
(substitute* "doc/Makefile.in"
(("^all: allhtml manpages") ""))))
(add-after 'install 'install-manpages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((bin (assoc-ref outputs "bin"))
(man1dir (string-append bin "/share/man/man1")))
(mkdir-p man1dir)
(for-each (lambda (file)
(let ((base (basename file)))
(format #t "installing `~a' to `~a'~%"
base man1dir)
(copy-file file
(string-append
man1dir "/" base))))
(find-files "doc" "\\.1"))))))))
(synopsis "Tools and library for working with GIF images")
(description
"GIFLIB is a library for reading and writing GIF images. It is API and
@ -501,9 +501,13 @@ (define-public giblib
(version "1.2.4")
(source (origin
(method url-fetch)
(uri (string-append
"http://linuxbrit.co.uk/downloads/giblib-"
version ".tar.gz"))
(uri (list
(string-append
"http://linuxbrit.co.uk/downloads/giblib-"
version ".tar.gz")
(string-append
"https://sourceforge.net/projects/slackbuildsdirectlinks/"
"files/giblib/giblib-" version ".tar.gz")))
(sha256
(base32
"1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))

View file

@ -40,14 +40,14 @@ (define-module (gnu packages imagemagick)
(define-public imagemagick
(package
(name "imagemagick")
(version "6.9.3-10")
(version "6.9.4-4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
"0sik2jl1cywnpr5xm28mjhs1l8kxry65f3v2kqzp0cczhwf04gz3"))))
"005nnp0masv59yfcdip6qld86567zjbz59c9lkcqrxclm27vmx0p"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths")

View file

@ -66,48 +66,41 @@ (define-public java-swt
(sha256
(base32
"03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q"))))
(build-system gnu-build-system)
(build-system ant-build-system)
(arguments
`(#:make-flags '("-f" "make_linux.mak")
`(#:jar-name "swt.jar"
#:tests? #f ; no "check" target
#:phases
(alist-replace
'unpack
(lambda _
(and (mkdir "swt")
(zero? (system* "unzip" (assoc-ref %build-inputs "source") "-d" "swt"))
(chdir "swt")
(mkdir "src")
(zero? (system* "unzip" "src.zip" "-d" "src"))
(chdir "src")))
(alist-replace
'build
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
;; Build shared libraries. Users of SWT have to set the system
;; property swt.library.path to the "lib" directory of this
;; package output.
(mkdir-p lib)
(setenv "OUTPUT_DIR" lib)
(zero? (system* "bash" "build.sh"))
;; build jar
(mkdir "build")
(for-each (lambda (file)
(format #t "Compiling ~s\n" file)
(system* "javac" "-d" "build" file))
(find-files "." "\\.java"))
(zero? (system* "jar" "cvf" "swt.jar" "-C" "build" "."))))
(alist-cons-after
'install 'install-java-files
(lambda* (#:key outputs #:allow-other-keys)
(let ((java (string-append (assoc-ref outputs "out")
"/share/java")))
(install-file "swt.jar" java)
#t))
(alist-delete 'configure %standard-phases))))))
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(and (mkdir "swt")
(zero? (system* "unzip" source "-d" "swt"))
(chdir "swt")
(mkdir "src")
(zero? (system* "unzip" "src.zip" "-d" "src")))))
;; The classpath contains invalid icecat jars. Since we don't need
;; anything other than the JDK on the classpath, we can simply unset
;; it.
(add-after 'configure 'unset-classpath
(lambda _ (unsetenv "CLASSPATH") #t))
(add-before 'build 'build-native
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
;; Build shared libraries. Users of SWT have to set the system
;; property swt.library.path to the "lib" directory of this
;; package output.
(mkdir-p lib)
(setenv "OUTPUT_DIR" lib)
(with-directory-excursion "src"
(zero? (system* "bash" "build.sh"))))))
(add-after 'install 'install-native
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
(for-each (lambda (file)
(install-file file lib))
(find-files "." "\\.so$"))
#t))))))
(inputs
`(("xulrunner" ,icecat)
("gtk" ,gtk+-2)
@ -117,8 +110,7 @@ (define-public java-swt
("glu" ,glu)))
(native-inputs
`(("pkg-config" ,pkg-config)
("unzip" ,unzip)
("jdk" ,icedtea "jdk")))
("unzip" ,unzip)))
(home-page "https://www.eclipse.org/swt/")
(synopsis "Widget toolkit for Java")
(description

View file

@ -27,7 +27,7 @@ (define-module (gnu packages jemalloc)
(define-public jemalloc
(package
(name "jemalloc")
(version "4.1.0")
(version "4.2.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -35,7 +35,7 @@ (define-public jemalloc
name "-" version ".tar.bz2"))
(sha256
(base32
"13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s"))))
"1jvasihaizawz44j02bri47bd905flns03nkigipys81p6pds5mj"))))
(build-system gnu-build-system)
(home-page "http://www.canonware.com/jemalloc/")
(synopsis "General-purpose scalable concurrent malloc implementation")

47
gnu/packages/libbsd.scm Normal file
View file

@ -0,0 +1,47 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages libbsd)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix licenses)
#:use-module (guix packages))
(define-public libbsd
(package
(name "libbsd")
(version "0.8.3")
(source (origin
(method url-fetch)
(uri (string-append "https://libbsd.freedesktop.org/releases/"
"libbsd-" version ".tar.xz"))
(sha256
(base32
"1a1l7afchlvvj2zfi7ajcg26bbkh5i98y2v5h9j5p1px9m7n6jwk"))))
(build-system gnu-build-system)
(synopsis "Utility functions from BSD systems")
(description "This library provides useful functions commonly found on BSD
systems, and lacking on others like GNU systems, thus making it easier to port
projects with strong BSD origins, without needing to embed the same code over
and over again on each project.")
(home-page "https://libbsd.freedesktop.org/wiki/")
;; This package is a collection of third-party functions that were
;; originally released under various non-copyleft licenses.
(license (list bsd-2 bsd-3 bsd-4 expat isc public-domain
(non-copyleft "file://COPYING"
"See COPYING in the distribution.")))))

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,5 +41,7 @@ (define-public libidn
"libidn is a library implementing of the Stringprep, Punycode and IDNA
specifications. These are used to encode and decode internationalized domain
names. It includes native C, C# and Java libraries.")
(license lgpl2.1+)
;; The C code is dual-licensed gpl2+ lgpl3+, the manual is fdl1.3+,
;; the command line tool is gpl3+.
(license (list gpl2+ gpl3+ lgpl3+ fdl1.3+))
(home-page "http://www.gnu.org/software/libidn/")))

View file

@ -12,6 +12,7 @@
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -224,7 +225,7 @@ (define* (kernel-config system #:key variant)
(search-path %load-path file)))
(define-public linux-libre
(let* ((version "4.5.4")
(let* ((version "4.5.5")
(build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Avoid introducing timestamps
@ -302,7 +303,7 @@ (define-public linux-libre
(uri (linux-libre-urls version))
(sha256
(base32
"0c587v03kz5whh82apva6gwqvczdi6djy29gk0gfd9dbkb2518b1"))))
"1zys74hfdi13yyk17x45hvvbx7m97wk7pala3cd8k93xbq8qnai0"))))
(build-system gnu-build-system)
(supported-systems '("x86_64-linux" "i686-linux"))
(native-inputs `(("perl" ,perl)
@ -339,13 +340,13 @@ (define-public linux-libre
(define-public linux-libre-4.4
(package
(inherit linux-libre)
(version "4.4.10")
(version "4.4.11")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
"1k7h632vgh3wlz44qqawy238f4mzn19bm9sz9zqq0ql6wwhkjdkj"))))
"17pb9w72vigdrhm8hnkdyw9kwc2l06nabzygpdkwbvf7fg3j03vc"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
@ -1182,15 +1183,15 @@ (define-public libnl
(define-public iw
(package
(name "iw")
(version "3.17")
(version "4.3")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.kernel.org/pub/software/network/iw/iw-"
"mirror://kernel.org/software/network/iw/iw-"
version ".tar.xz"))
(sha256
(base32
"14zsapqhivk0ws5z21y1ys2c2czi05mzk7bl2yb7qxcfrnsjx9j8"))))
"085jyvrxzarvn5jl0fk618jjxy50nqx7ifngszc4jxk6a4ddibd6"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libnl" ,libnl)))
@ -1198,11 +1199,11 @@ (define-public iw
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc")
#:phases (alist-delete 'configure %standard-phases)))
(home-page "http://wireless.kernel.org/en/users/Documentation/iw")
(home-page "https://wireless.wiki.kernel.org/")
(synopsis "Tool for configuring wireless devices")
(description
"iw is a new nl80211 based CLI configuration utility for wireless
devices. It replaces 'iwconfig', which is deprecated.")
devices. It replaces @code{iwconfig}, which is deprecated.")
(license license:isc)))
(define-public powertop
@ -1827,7 +1828,7 @@ (define-public crda
(define-public wireless-regdb
(package
(name "wireless-regdb")
(version "2015.04.06")
(version "2016.05.02")
(source (origin
(method url-fetch)
(uri (string-append
@ -1835,7 +1836,7 @@ (define-public wireless-regdb
"wireless-regdb-" version ".tar.xz"))
(sha256
(base32
"0czi83k311fp27z42hxjm8vi88fsbc23mhavv96lkb4pmari0jjc"))
"07n6gcwfbddz3awbdflv3dhxjszsqq2lrdwih0a0ahcliac4qry9"))
;; We're building 'regulatory.bin' by ourselves.
(snippet '(delete-file "regulatory.bin"))))
@ -2332,7 +2333,7 @@ (define-public libiec61883
(define-public mdadm
(package
(name "mdadm")
(version "3.3.2")
(version "3.4")
(source (origin
(method url-fetch)
(uri (string-append
@ -2340,8 +2341,7 @@ (define-public mdadm
version ".tar.xz"))
(sha256
(base32
"132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg"))
(patches (search-patches "mdadm-gcc-4.9-fix.patch"))))
"0248v9f28mrbwabl94ck22gfim29sqhkf70wrpfi52nk4x3bxl17"))))
(build-system gnu-build-system)
(inputs
`(("udev" ,eudev)))
@ -2401,18 +2401,41 @@ (define-public libaio
applications.")
(license license:lgpl2.1+)))
(define-public sbc
(package
(name "sbc")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://www.kernel.org/pub/linux/bluetooth/"
name "-" version ".tar.xz"))
(sha256
(base32
"02ckd2z51z0h85qgv7x8vv8ybp5czm9if1z78411j53gaz7j4476"))))
(build-system gnu-build-system)
(inputs
`(("libsndfile" ,libsndfile)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://www.kernel.org/pub/linux/bluetooth/")
(synopsis "Bluetooth subband audio codec")
(description
"The SBC is a digital audio encoder and decoder used to transfer data to
Bluetooth audio output devices like headphones or loudspeakers.")
(license license:gpl2+)))
(define-public bluez
(package
(name "bluez")
(version "5.36")
(version "5.39")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.kernel.org/pub/linux/bluetooth/bluez-"
"mirror://kernel.org/linux/bluetooth/bluez-"
version ".tar.xz"))
(sha256
(base32
"1wkqwmi5krr37mxcqqlp5m2xnw7vw70v3ww7j09vvlskxcdflhx3"))))
"0fsrf9rdmrdyx0vmcpfji4imjsvliawyy5sjb6b64myka28vrl91"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
@ -2542,7 +2565,7 @@ (define-public gpm
(define-public btrfs-progs
(package
(name "btrfs-progs")
(version "4.5.1")
(version "4.5.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
@ -2550,7 +2573,7 @@ (define-public btrfs-progs
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
"1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f"))))
"1lzbw275xgv69v4z8hmsf3jnip38116hxhkpv0madk8wv049drz6"))))
(build-system gnu-build-system)
(outputs '("out"
"static")) ; static versions of binaries in "out" (~16MiB!)
@ -2676,3 +2699,38 @@ (define-public thinkfan
other @code{hwmon} driver that enables temperature reading and fan control
from userspace.")
(license license:gpl3+)))
(define-public ntfs-3g
(package
(name "ntfs-3g")
(version "2016.2.22")
(source (origin
(method url-fetch)
(uri (string-append "https://tuxera.com/opensource/"
"ntfs-3g_ntfsprogs-" version ".tgz"))
(sha256
(base32
"180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp"))
(modules '((guix build utils)))
(snippet
;; Install under $prefix.
'(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in")
(("/sbin")
"@sbindir@")))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)
("fuse" ,fuse))) ;libuuid
(native-inputs `(("pkg-config" ,pkg-config)))
(arguments
'(#:configure-flags (list "--exec-prefix=${prefix}"
"--with-fuse=external" ;use our own FUSE
"--enable-mount-helper"
"--enable-posix-acls"
"--enable-xattr-mappings")))
(home-page "http://www.tuxera.com/community/open-source-ntfs-3g/")
(synopsis "Read-write access to NTFS file systems")
(description
"NTFS-3G provides read-write access to NTFS file systems, which are
commonly found on Microsoft Windows. It is implemented as a FUSE file system.
The package provides additional NTFS tools.")
(license license:gpl2+)))

View file

@ -13,6 +13,7 @@
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -325,19 +326,10 @@ (define-public offlineimap
repository and Maildir/IMAP as LOCAL repository.")
(license gpl2+)))
(define %mu-gtester-patch
;; Ensure tests have unique names, to placate GLib 2.6's gtester.
(origin
(method url-fetch)
(uri "https://github.com/djcb/mu/commit/b44039ed.patch")
(sha256
(base32
"165hryqqhx3wah8a4f5jaq465azx1pm9r4jid7880pys9gd88qlv"))))
(define-public mu
(package
(name "mu")
(version "0.9.13")
(version "0.9.16")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/djcb/mu/archive/v"
@ -345,8 +337,7 @@ (define-public mu
(file-name (string-append "mu-" version ".tar.gz"))
(sha256
(base32
"0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51"))
(patches (list %mu-gtester-patch))))
"0p7hqri1r1x6750x138cc29mh81kdav2dcim26y58s8an206h25g"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
@ -364,18 +355,39 @@ (define-public mu
("gmime" ,gmime)
("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
(arguments
'(#:phases (alist-cons-after
'unpack 'autoreconf
(lambda _
(zero? (system* "autoreconf" "-vi")))
(alist-cons-before
'check 'check-tz-setup
(lambda* (#:key inputs #:allow-other-keys)
;; For mu/test/test-mu-query.c
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo")))
%standard-phases))))
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(guix build emacs-utils))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-configure.ac
;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
;; so our Emacs package can't find it. Setting "--with-lispdir"
;; configure flag doesn't help because "mu4e" will be added to
;; the lispdir anyway, so we have to modify "configure.ac".
(lambda _
(substitute* "configure.ac"
(("^ +lispdir=.*") ""))
#t))
(add-after 'patch-configure.ac 'autoreconf
(lambda _
(zero? (system* "autoreconf" "-vi"))))
(add-before 'check 'check-tz-setup
(lambda* (#:key inputs #:allow-other-keys)
;; For mu/test/test-mu-query.c
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
#t))
(add-after 'install 'install-emacs-autoloads
(lambda* (#:key outputs #:allow-other-keys)
(emacs-generate-autoloads
"mu4e"
(string-append (assoc-ref outputs "out")
"/share/emacs/site-lisp"))
#t)))))
(home-page "http://www.djcbsoftware.nl/code/mu/")
(synopsis "Quickly find emails")
(description

View file

@ -11,6 +11,8 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -46,6 +48,7 @@ (define-module (gnu packages maths)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
@ -79,6 +82,7 @@ (define-module (gnu packages maths)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive)
#:use-module (gnu packages tls)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (gnu packages zip)
@ -583,7 +587,7 @@ (define-public nlopt
(define-public octave
(package
(name "octave")
(version "4.0.0")
(version "4.0.2")
(source
(origin
(method url-fetch)
@ -591,7 +595,7 @@ (define-public octave
version ".tar.gz"))
(sha256
(base32
"101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc"))))
"1hdxap3j88rpqjimnfhinym6z73wdi5dfa6fv85c13r1dk9qzk9r"))))
(build-system gnu-build-system)
(inputs
`(("lapack" ,lapack)
@ -602,6 +606,7 @@ (define-public octave
("arpack" ,arpack-ng)
("curl" ,curl)
("pcre" ,pcre)
("cyrus-sasl" ,cyrus-sasl)
("fltk" ,fltk)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
@ -609,6 +614,7 @@ (define-public octave
("libxft" ,libxft)
("mesa" ,mesa)
("glu" ,glu)
("openssl" ,openssl)
("zlib" ,zlib)))
(native-inputs
`(("gfortran" ,gfortran)
@ -626,9 +632,10 @@ (define-public octave
("ghostscript" ,ghostscript)
("gnuplot" ,gnuplot)))
(arguments
`(#:configure-flags (list (string-append "--with-shell="
(assoc-ref %build-inputs "bash")
"/bin/sh"))))
`(#:configure-flags
(list (string-append "--with-shell="
(assoc-ref %build-inputs "bash")
"/bin/sh"))))
(home-page "http://www.gnu.org/software/octave/")
(synopsis "High-level language for numerical computation")
(description "GNU Octave is a high-level interpreted language that is
@ -664,6 +671,9 @@ (define-public gmsh
("glu" ,glu)
("libx11" ,libx11)
("libxext" ,libxext)))
(inputs
`(("fontconfig" ,fontconfig)
("libxft" ,libxft)))
(arguments
`(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
"-DENABLE_BUILD_SHARED:BOOL=ON"
@ -1588,7 +1598,7 @@ (define-public maxima
(define-public wxmaxima
(package
(name "wxmaxima")
(version "15.04.0")
(version "16.04.2")
(source
(origin
(method url-fetch)
@ -1596,7 +1606,7 @@ (define-public wxmaxima
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1fm47ah4aw5qdjqhkz67w5fwhy8yfffa5z896crp0d3hk2bh4180"))))
"1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n"))))
(build-system gnu-build-system)
(inputs
`(("wxwidgets" ,wxwidgets)
@ -1631,14 +1641,14 @@ (define-public wxmaxima
(define-public armadillo
(package
(name "armadillo")
(version "6.700.4")
(version "6.700.7")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/arma/armadillo-"
version ".tar.gz"))
(sha256
(base32
"0dsdjcps5l2nhg0455rrc708inffarzj7n435vj4sm9lxwf21wg9"))))
"0xbidcxrvbq33xf7iysg2nic2ai9a043psl33kiv6ifkk7p8hcra"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ;no test target
(inputs
@ -1659,14 +1669,14 @@ (define-public armadillo
(define-public armadillo-for-rcpparmadillo
(package (inherit armadillo)
(version "6.700.3")
(version "6.700.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/arma/armadillo-"
version ".tar.gz"))
(sha256
(base32
"1vnhifa7d0aij3kv5bxf6m91d99h3y2fyj48jrx7jcvwyb1q5wwq"))))))
"1cdpjxb0fz5f28y5qrqgpw53s7qi8s2v3al9lfdldqxngb21vpx8"))))))
(define-public muparser
(package
@ -2199,7 +2209,23 @@ (define-public flann
;; ("python2-numpy" ,python2-numpy) ; only required for the tests
("zlib" ,zlib)))
(arguments
`(#:tests? #f)) ; The test data are downloaded from the Internet.
`(;; The 'share/flann/octave' contains a .mex file, which is an ELF file
;; taken 46 MiB unstripped, and 6 MiB stripped.
#:strip-directories '("lib" "lib64" "libexec"
"bin" "sbin" "share/flann/octave")
;; Save 12 MiB by not installing .a files. Passing
;; '-DBUILD_STATIC_LIBS=OFF' has no effect.
#:phases (modify-phases %standard-phases
(add-after 'install 'remove-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib")))
(for-each delete-file
(find-files lib "\\.a$"))
#t))))
#:tests? #f)) ; The test data are downloaded from the Internet.
(home-page "http://www.cs.ubc.ca/research/flann/")
(synopsis "Library for approximate nearest neighbors computation")
(description "FLANN is a library for performing fast approximate

View file

@ -5,7 +5,7 @@
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;

View file

@ -138,14 +138,14 @@ (define-public zeromq
(define-public libndp
(package
(name "libndp")
(version "1.5")
(version "1.6")
(source (origin
(method url-fetch)
(uri (string-append "http://libndp.org/files/"
name "-" version ".tar.gz"))
(sha256
(base32
"15f743hjc7yy2sv3hzvfc27s1gny4mh5aww59vn195fff2midwgs"))))
"03mczwrxqbp54msafxzzyhaazkvjdwm2kipjkrb5xg8kw22glz8c"))))
(build-system gnu-build-system)
(home-page "http://libndp.org/")
(synopsis "Library for Neighbor Discovery Protocol")

View file

@ -34,14 +34,14 @@ (define-module (gnu packages owncloud)
(define-public owncloud-client
(package
(name "owncloud-client")
(version "2.1.1")
(version "2.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.owncloud.com/desktop/stable/"
"owncloudclient-" version ".tar.xz"))
(sha256
(base32 "1jxi439qff4acvyvszjprj42kvzhlz255wv8g4p3jrf55svzwz2f"))))
(base32 "1ak7hq13hl7qndm3zz7hdfvw6930kmhjh27s1427g784vxcqb23q"))))
(build-system cmake-build-system)
(arguments
`(#:phases

View file

@ -203,17 +203,19 @@ (define guix-devel
;;
;; Note: use a very short commit id; with a longer one, the limit on
;; hash-bang lines would be exceeded while running the tests.
(let ((commit "80627f51f0238b9450745f4e642172d059ca5bb5"))
(let ((commit "e9017c98d61f305b624bacaa30e8891ec0100980"))
(package (inherit guix-0.10.0)
(version (string-append "0.10.0-0." (string-take commit 4)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.sv.gnu.org/guix.git")
;; "git://git.sv.gnu.org/guix.git" temporarily
;; unavailable (XXX).
(url "http://git.savannah.gnu.org/r/guix.git")
(commit commit)))
(sha256
(base32
"102gdbx5imx0zab7i5dwa1z9j1diblinaaja09dp3q30770iyxj9"))
"13mfk10cw6fk4diclzld56xwabshanxjcczdrjlj0wisaz32h3nl"))
(file-name (string-append "guix-" version "-checkout"))))
(arguments
(substitute-keyword-arguments (package-arguments guix-0.10.0)

View file

@ -1,81 +0,0 @@
Add Scheme support
--- constants/constants.el.orig 2015-12-26 17:44:31.734520833 +0100
+++ constants/constants.el 2015-12-30 17:41:28.402871263 +0100
@@ -684,6 +684,33 @@
(eval-when-compile (defvar ctable))
+(defun constants-is-lisp-like (mode)
+ (save-match-data
+ (string-match "\\(lisp\\|scheme\\)" (symbol-name mode))))
+
+(defun constants-is-set-like ()
+ (save-excursion
+ (condition-case nil
+ (save-match-data
+ (progn (up-list -1)
+ (or (looking-at "(set[qf!]?\\>") (looking-at "(define\\>"))))
+ (error nil)))) ; return value nil means use default
+
+;;;###autoload
+(defun constants-lisp-like-function ()
+ "Check context for constants insertion."
+ (if (constants-is-set-like)
+ '(emacs-lisp-mode "%n %v%t; %d %u" "e" "(* %p %v)")
+ '(emacs-lisp-mode "(%n %v)%t; %d %u" "e" "(* %p %v)")))
+
+;;;###autoload
+(mapc (lambda (mode-hook)
+ (add-hook mode-hook
+ (lambda ()
+ (setq constants-language-function
+ 'constants-lisp-like-function))))
+ '(scheme-mode-hook emacs-lisp-mode-hook lisp-mode-hook))
+
;;;###autoload
(defun constants-insert (&optional unit-system names)
"Insert one or more natural constant definitions in source code.
@@ -826,8 +853,9 @@
(funcall process-func ins))
;; Here comes the insertion stuff for source code editing modes.
;; First make sure we start a new line
- (if (string-match
- "\\S-" (buffer-substring (point-at-bol) (point-at-eol)))
+ (if (and (string-match
+ "\\S-" (buffer-substring (point-at-bol) (point-at-eol)))
+ (not (constants-is-lisp-like mode)))
;; non-empty line, insert after this line
(progn
(end-of-line 1)
@@ -841,13 +869,24 @@
(if (string-match "\\(.*\\)%t\\(.*\\)" line)
(let ((comment-column 42))
(insert (match-string 1 line))
- (indent-to comment-column)
- (insert (match-string 2 line)))
+ (if (and (constants-is-lisp-like mode)
+ (or (constants-is-set-like)
+ (null clist)))
+ (save-excursion
+ (progn
+ (move-to-column comment-column t)
+ (insert (match-string 2 line))
+ ;; insert a newline such that paredit's M-) can mode
+ ;; the closing parentheses to the next line.
+ (newline-and-indent)))
+ (progn
+ (indent-to comment-column)
+ (insert (match-string 2 line)))))
(insert line)))
- (if constants-indent-code
- (newline-and-indent)
- (newline))))))
-
+ (unless (and (constants-is-lisp-like mode) (null clist))
+ (if constants-indent-code
+ (newline-and-indent)
+ (newline)))))))
;;;###autoload
(defun constants-get (&optional const message)
"Return the value of CONST as defined in the constants package.

View file

@ -0,0 +1,42 @@
Update previous fix for CVE-2015-1283 to not rely on undefined behavior.
Copied from Debian, as found in Debian package version 2.1.0-6+deb8u2.
https://sources.debian.net/src/expat/2.1.0-6%2Bdeb8u2/debian/patches/CVE-2015-1283-refix.patch/
From 29a11774d8ebbafe8418b4a5ffb4cc1160b194a1 Mon Sep 17 00:00:00 2001
From: Pascal Cuoq <cuoq@trust-in-soft.com>
Date: Sun, 15 May 2016 09:05:46 +0200
Subject: [PATCH] Avoid relying on undefined behavior in CVE-2015-1283 fix.
---
expat/lib/xmlparse.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index 13e080d..cdb12ef 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -1695,7 +1695,8 @@ XML_GetBuffer(XML_Parser parser, int len
}
if (len > bufferLim - bufferEnd) {
- int neededSize = len + (int)(bufferEnd - bufferPtr);
+ /* Do not invoke signed arithmetic overflow: */
+ int neededSize = (int) ((unsigned)len + (unsigned)(bufferEnd - bufferPtr));
/* BEGIN MOZILLA CHANGE (sanity check neededSize) */
if (neededSize < 0) {
errorCode = XML_ERROR_NO_MEMORY;
@@ -1729,7 +1730,8 @@ XML_GetBuffer(XML_Parser parser, int len
if (bufferSize == 0)
bufferSize = INIT_BUFFER_SIZE;
do {
- bufferSize *= 2;
+ /* Do not invoke signed arithmetic overflow: */
+ bufferSize = (int) (2U * (unsigned) bufferSize);
/* BEGIN MOZILLA CHANGE (prevent infinite loop on overflow) */
} while (bufferSize < neededSize && bufferSize > 0);
/* END MOZILLA CHANGE */
--
2.8.2

View file

@ -0,0 +1,761 @@
Fix CVE-2016-0718.
Copied from Debian, as found in Debian package version 2.1.0-6+deb8u2.
https://sources.debian.net/src/expat/2.1.0-6%2Bdeb8u2/debian/patches/CVE-2016-0718-v2-2-1.patch/
From cdfcb1b5c95e93b00ae9e9d25708b4a3bee72c15 Mon Sep 17 00:00:00 2001
From: Sebastian Pipping <sebastian@pipping.org>
Date: Mon, 2 May 2016 00:02:44 +0200
Subject: [PATCH] Address CVE-2016-0718 (/patch/ version 2.2.1)
* Out of bounds memory access when doing text conversion on malformed input
* Integer overflow related to memory allocation
Reported by Gustavo Grieco
Patch credits go to
* Christian Heimes
* Karl Waclawek
* Gustavo Grieco
* Sebastian Pipping
* Pascal Cuoq
---
expat/lib/xmlparse.c | 34 +++++++++-----
expat/lib/xmltok.c | 115 +++++++++++++++++++++++++++++++++++-------------
expat/lib/xmltok.h | 10 ++++-
expat/lib/xmltok_impl.c | 62 +++++++++++++-------------
4 files changed, 146 insertions(+), 75 deletions(-)
diff --git a/lib/xmlparse.c b/lib/xmlparse.c
index e308c79..13e080d 100644
--- a/lib/xmlparse.c
+++ b/lib/xmlparse.c
@@ -2436,11 +2436,11 @@ doContent(XML_Parser parser,
for (;;) {
int bufSize;
int convLen;
- XmlConvert(enc,
+ const enum XML_Convert_Result convert_res = XmlConvert(enc,
&fromPtr, rawNameEnd,
(ICHAR **)&toPtr, (ICHAR *)tag->bufEnd - 1);
convLen = (int)(toPtr - (XML_Char *)tag->buf);
- if (fromPtr == rawNameEnd) {
+ if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) {
tag->name.strLen = convLen;
break;
}
@@ -2661,11 +2661,11 @@ doContent(XML_Parser parser,
if (MUST_CONVERT(enc, s)) {
for (;;) {
ICHAR *dataPtr = (ICHAR *)dataBuf;
- XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
+ const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = s;
charDataHandler(handlerArg, dataBuf,
(int)(dataPtr - (ICHAR *)dataBuf));
- if (s == next)
+ if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
break;
*eventPP = s;
}
@@ -3269,11 +3269,11 @@ doCdataSection(XML_Parser parser,
if (MUST_CONVERT(enc, s)) {
for (;;) {
ICHAR *dataPtr = (ICHAR *)dataBuf;
- XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
+ const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = next;
charDataHandler(handlerArg, dataBuf,
(int)(dataPtr - (ICHAR *)dataBuf));
- if (s == next)
+ if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
break;
*eventPP = s;
}
@@ -5350,6 +5350,7 @@ reportDefault(XML_Parser parser, const ENCODING *enc,
const char *s, const char *end)
{
if (MUST_CONVERT(enc, s)) {
+ enum XML_Convert_Result convert_res;
const char **eventPP;
const char **eventEndPP;
if (enc == encoding) {
@@ -5362,11 +5363,11 @@ reportDefault(XML_Parser parser, const ENCODING *enc,
}
do {
ICHAR *dataPtr = (ICHAR *)dataBuf;
- XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
+ convert_res = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = s;
defaultHandler(handlerArg, dataBuf, (int)(dataPtr - (ICHAR *)dataBuf));
*eventPP = s;
- } while (s != end);
+ } while ((convert_res != XML_CONVERT_COMPLETED) && (convert_res != XML_CONVERT_INPUT_INCOMPLETE));
}
else
defaultHandler(handlerArg, (XML_Char *)s, (int)((XML_Char *)end - (XML_Char *)s));
@@ -6169,8 +6170,8 @@ poolAppend(STRING_POOL *pool, const ENCODING *enc,
if (!pool->ptr && !poolGrow(pool))
return NULL;
for (;;) {
- XmlConvert(enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end);
- if (ptr == end)
+ const enum XML_Convert_Result convert_res = XmlConvert(enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end);
+ if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
break;
if (!poolGrow(pool))
return NULL;
@@ -6254,8 +6255,13 @@ poolGrow(STRING_POOL *pool)
}
}
if (pool->blocks && pool->start == pool->blocks->s) {
- int blockSize = (int)(pool->end - pool->start)*2;
- BLOCK *temp = (BLOCK *)
+ BLOCK *temp;
+ int blockSize = (int)((unsigned)(pool->end - pool->start)*2U);
+
+ if (blockSize < 0)
+ return XML_FALSE;
+
+ temp = (BLOCK *)
pool->mem->realloc_fcn(pool->blocks,
(offsetof(BLOCK, s)
+ blockSize * sizeof(XML_Char)));
@@ -6270,6 +6276,10 @@ poolGrow(STRING_POOL *pool)
else {
BLOCK *tem;
int blockSize = (int)(pool->end - pool->start);
+
+ if (blockSize < 0)
+ return XML_FALSE;
+
if (blockSize < INIT_BLOCK_SIZE)
blockSize = INIT_BLOCK_SIZE;
else
diff --git a/lib/xmltok.c b/lib/xmltok.c
index bf09dfc..cb98ce1 100644
--- a/lib/xmltok.c
+++ b/lib/xmltok.c
@@ -318,39 +318,55 @@ enum { /* UTF8_cvalN is value of masked first byte of N byte sequence */
UTF8_cval4 = 0xf0
};
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
utf8_toUtf8(const ENCODING *enc,
const char **fromP, const char *fromLim,
char **toP, const char *toLim)
{
+ enum XML_Convert_Result res = XML_CONVERT_COMPLETED;
char *to;
const char *from;
if (fromLim - *fromP > toLim - *toP) {
/* Avoid copying partial characters. */
+ res = XML_CONVERT_OUTPUT_EXHAUSTED;
for (fromLim = *fromP + (toLim - *toP); fromLim > *fromP; fromLim--)
if (((unsigned char)fromLim[-1] & 0xc0) != 0x80)
break;
}
- for (to = *toP, from = *fromP; from != fromLim; from++, to++)
+ for (to = *toP, from = *fromP; (from < fromLim) && (to < toLim); from++, to++)
*to = *from;
*fromP = from;
*toP = to;
+
+ if ((to == toLim) && (from < fromLim))
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
+ else
+ return res;
}
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
utf8_toUtf16(const ENCODING *enc,
const char **fromP, const char *fromLim,
unsigned short **toP, const unsigned short *toLim)
{
+ enum XML_Convert_Result res = XML_CONVERT_COMPLETED;
unsigned short *to = *toP;
const char *from = *fromP;
- while (from != fromLim && to != toLim) {
+ while (from < fromLim && to < toLim) {
switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) {
case BT_LEAD2:
+ if (fromLim - from < 2) {
+ res = XML_CONVERT_INPUT_INCOMPLETE;
+ break;
+ }
*to++ = (unsigned short)(((from[0] & 0x1f) << 6) | (from[1] & 0x3f));
from += 2;
break;
case BT_LEAD3:
+ if (fromLim - from < 3) {
+ res = XML_CONVERT_INPUT_INCOMPLETE;
+ break;
+ }
*to++ = (unsigned short)(((from[0] & 0xf) << 12)
| ((from[1] & 0x3f) << 6) | (from[2] & 0x3f));
from += 3;
@@ -358,8 +374,14 @@ utf8_toUtf16(const ENCODING *enc,
case BT_LEAD4:
{
unsigned long n;
- if (to + 1 == toLim)
+ if (toLim - to < 2) {
+ res = XML_CONVERT_OUTPUT_EXHAUSTED;
goto after;
+ }
+ if (fromLim - from < 4) {
+ res = XML_CONVERT_INPUT_INCOMPLETE;
+ goto after;
+ }
n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12)
| ((from[2] & 0x3f) << 6) | (from[3] & 0x3f);
n -= 0x10000;
@@ -377,6 +399,7 @@ utf8_toUtf16(const ENCODING *enc,
after:
*fromP = from;
*toP = to;
+ return res;
}
#ifdef XML_NS
@@ -425,7 +448,7 @@ static const struct normal_encoding internal_utf8_encoding = {
STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)
};
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
latin1_toUtf8(const ENCODING *enc,
const char **fromP, const char *fromLim,
char **toP, const char *toLim)
@@ -433,30 +456,35 @@ latin1_toUtf8(const ENCODING *enc,
for (;;) {
unsigned char c;
if (*fromP == fromLim)
- break;
+ return XML_CONVERT_COMPLETED;
c = (unsigned char)**fromP;
if (c & 0x80) {
if (toLim - *toP < 2)
- break;
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
*(*toP)++ = (char)((c >> 6) | UTF8_cval2);
*(*toP)++ = (char)((c & 0x3f) | 0x80);
(*fromP)++;
}
else {
if (*toP == toLim)
- break;
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
*(*toP)++ = *(*fromP)++;
}
}
}
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
latin1_toUtf16(const ENCODING *enc,
const char **fromP, const char *fromLim,
unsigned short **toP, const unsigned short *toLim)
{
- while (*fromP != fromLim && *toP != toLim)
+ while (*fromP < fromLim && *toP < toLim)
*(*toP)++ = (unsigned char)*(*fromP)++;
+
+ if ((*toP == toLim) && (*fromP < fromLim))
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
+ else
+ return XML_CONVERT_COMPLETED;
}
#ifdef XML_NS
@@ -483,13 +511,18 @@ static const struct normal_encoding latin1_encoding = {
STANDARD_VTABLE(sb_)
};
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
ascii_toUtf8(const ENCODING *enc,
const char **fromP, const char *fromLim,
char **toP, const char *toLim)
{
- while (*fromP != fromLim && *toP != toLim)
+ while (*fromP < fromLim && *toP < toLim)
*(*toP)++ = *(*fromP)++;
+
+ if ((*toP == toLim) && (*fromP < fromLim))
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
+ else
+ return XML_CONVERT_COMPLETED;
}
#ifdef XML_NS
@@ -536,13 +569,14 @@ unicode_byte_type(char hi, char lo)
}
#define DEFINE_UTF16_TO_UTF8(E) \
-static void PTRCALL \
+static enum XML_Convert_Result PTRCALL \
E ## toUtf8(const ENCODING *enc, \
const char **fromP, const char *fromLim, \
char **toP, const char *toLim) \
{ \
- const char *from; \
- for (from = *fromP; from != fromLim; from += 2) { \
+ const char *from = *fromP; \
+ fromLim = from + (((fromLim - from) >> 1) << 1); /* shrink to even */ \
+ for (; from < fromLim; from += 2) { \
int plane; \
unsigned char lo2; \
unsigned char lo = GET_LO(from); \
@@ -552,7 +586,7 @@ E ## toUtf8(const ENCODING *enc, \
if (lo < 0x80) { \
if (*toP == toLim) { \
*fromP = from; \
- return; \
+ return XML_CONVERT_OUTPUT_EXHAUSTED; \
} \
*(*toP)++ = lo; \
break; \
@@ -562,7 +596,7 @@ E ## toUtf8(const ENCODING *enc, \
case 0x4: case 0x5: case 0x6: case 0x7: \
if (toLim - *toP < 2) { \
*fromP = from; \
- return; \
+ return XML_CONVERT_OUTPUT_EXHAUSTED; \
} \
*(*toP)++ = ((lo >> 6) | (hi << 2) | UTF8_cval2); \
*(*toP)++ = ((lo & 0x3f) | 0x80); \
@@ -570,7 +604,7 @@ E ## toUtf8(const ENCODING *enc, \
default: \
if (toLim - *toP < 3) { \
*fromP = from; \
- return; \
+ return XML_CONVERT_OUTPUT_EXHAUSTED; \
} \
/* 16 bits divided 4, 6, 6 amongst 3 bytes */ \
*(*toP)++ = ((hi >> 4) | UTF8_cval3); \
@@ -580,7 +614,11 @@ E ## toUtf8(const ENCODING *enc, \
case 0xD8: case 0xD9: case 0xDA: case 0xDB: \
if (toLim - *toP < 4) { \
*fromP = from; \
- return; \
+ return XML_CONVERT_OUTPUT_EXHAUSTED; \
+ } \
+ if (fromLim - from < 4) { \
+ *fromP = from; \
+ return XML_CONVERT_INPUT_INCOMPLETE; \
} \
plane = (((hi & 0x3) << 2) | ((lo >> 6) & 0x3)) + 1; \
*(*toP)++ = ((plane >> 2) | UTF8_cval4); \
@@ -596,20 +634,32 @@ E ## toUtf8(const ENCODING *enc, \
} \
} \
*fromP = from; \
+ if (from < fromLim) \
+ return XML_CONVERT_INPUT_INCOMPLETE; \
+ else \
+ return XML_CONVERT_COMPLETED; \
}
#define DEFINE_UTF16_TO_UTF16(E) \
-static void PTRCALL \
+static enum XML_Convert_Result PTRCALL \
E ## toUtf16(const ENCODING *enc, \
const char **fromP, const char *fromLim, \
unsigned short **toP, const unsigned short *toLim) \
{ \
+ enum XML_Convert_Result res = XML_CONVERT_COMPLETED; \
+ fromLim = *fromP + (((fromLim - *fromP) >> 1) << 1); /* shrink to even */ \
/* Avoid copying first half only of surrogate */ \
if (fromLim - *fromP > ((toLim - *toP) << 1) \
- && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) \
+ && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) { \
fromLim -= 2; \
- for (; *fromP != fromLim && *toP != toLim; *fromP += 2) \
+ res = XML_CONVERT_INPUT_INCOMPLETE; \
+ } \
+ for (; *fromP < fromLim && *toP < toLim; *fromP += 2) \
*(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \
+ if ((*toP == toLim) && (*fromP < fromLim)) \
+ return XML_CONVERT_OUTPUT_EXHAUSTED; \
+ else \
+ return res; \
}
#define SET2(ptr, ch) \
@@ -1288,7 +1338,7 @@ unknown_isInvalid(const ENCODING *enc, const char *p)
return (c & ~0xFFFF) || checkCharRefNumber(c) < 0;
}
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
unknown_toUtf8(const ENCODING *enc,
const char **fromP, const char *fromLim,
char **toP, const char *toLim)
@@ -1299,21 +1349,21 @@ unknown_toUtf8(const ENCODING *enc,
const char *utf8;
int n;
if (*fromP == fromLim)
- break;
+ return XML_CONVERT_COMPLETED;
utf8 = uenc->utf8[(unsigned char)**fromP];
n = *utf8++;
if (n == 0) {
int c = uenc->convert(uenc->userData, *fromP);
n = XmlUtf8Encode(c, buf);
if (n > toLim - *toP)
- break;
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
utf8 = buf;
*fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP]
- (BT_LEAD2 - 2));
}
else {
if (n > toLim - *toP)
- break;
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
(*fromP)++;
}
do {
@@ -1322,13 +1372,13 @@ unknown_toUtf8(const ENCODING *enc,
}
}
-static void PTRCALL
+static enum XML_Convert_Result PTRCALL
unknown_toUtf16(const ENCODING *enc,
const char **fromP, const char *fromLim,
unsigned short **toP, const unsigned short *toLim)
{
const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc);
- while (*fromP != fromLim && *toP != toLim) {
+ while (*fromP < fromLim && *toP < toLim) {
unsigned short c = uenc->utf16[(unsigned char)**fromP];
if (c == 0) {
c = (unsigned short)
@@ -1340,6 +1390,11 @@ unknown_toUtf16(const ENCODING *enc,
(*fromP)++;
*(*toP)++ = c;
}
+
+ if ((*toP == toLim) && (*fromP < fromLim))
+ return XML_CONVERT_OUTPUT_EXHAUSTED;
+ else
+ return XML_CONVERT_COMPLETED;
}
ENCODING *
@@ -1503,7 +1558,7 @@ initScan(const ENCODING * const *encodingTable,
{
const ENCODING **encPtr;
- if (ptr == end)
+ if (ptr >= end)
return XML_TOK_NONE;
encPtr = enc->encPtr;
if (ptr + 1 == end) {
diff --git a/lib/xmltok.h b/lib/xmltok.h
index ca867aa..752007e 100644
--- a/lib/xmltok.h
+++ b/lib/xmltok.h
@@ -130,6 +130,12 @@ typedef int (PTRCALL *SCANNER)(const ENCODING *,
const char *,
const char **);
+enum XML_Convert_Result {
+ XML_CONVERT_COMPLETED = 0,
+ XML_CONVERT_INPUT_INCOMPLETE = 1,
+ XML_CONVERT_OUTPUT_EXHAUSTED = 2 /* and therefore potentially input remaining as well */
+};
+
struct encoding {
SCANNER scanners[XML_N_STATES];
SCANNER literalScanners[XML_N_LITERAL_TYPES];
@@ -158,12 +164,12 @@ struct encoding {
const char *ptr,
const char *end,
const char **badPtr);
- void (PTRCALL *utf8Convert)(const ENCODING *enc,
+ enum XML_Convert_Result (PTRCALL *utf8Convert)(const ENCODING *enc,
const char **fromP,
const char *fromLim,
char **toP,
const char *toLim);
- void (PTRCALL *utf16Convert)(const ENCODING *enc,
+ enum XML_Convert_Result (PTRCALL *utf16Convert)(const ENCODING *enc,
const char **fromP,
const char *fromLim,
unsigned short **toP,
diff --git a/lib/xmltok_impl.c b/lib/xmltok_impl.c
index 9c2895b..6c5a3ba 100644
--- a/lib/xmltok_impl.c
+++ b/lib/xmltok_impl.c
@@ -93,13 +93,13 @@ static int PTRCALL
PREFIX(scanComment)(const ENCODING *enc, const char *ptr,
const char *end, const char **nextTokPtr)
{
- if (ptr != end) {
+ if (ptr < end) {
if (!CHAR_MATCHES(enc, ptr, ASCII_MINUS)) {
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
ptr += MINBPC(enc);
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
INVALID_CASES(ptr, nextTokPtr)
case BT_MINUS:
@@ -147,7 +147,7 @@ PREFIX(scanDecl)(const ENCODING *enc, const char *ptr,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
case BT_PERCNT:
if (ptr + MINBPC(enc) == end)
@@ -233,7 +233,7 @@ PREFIX(scanPi)(const ENCODING *enc, const char *ptr,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
case BT_S: case BT_CR: case BT_LF:
@@ -242,7 +242,7 @@ PREFIX(scanPi)(const ENCODING *enc, const char *ptr,
return XML_TOK_INVALID;
}
ptr += MINBPC(enc);
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
INVALID_CASES(ptr, nextTokPtr)
case BT_QUEST:
@@ -305,7 +305,7 @@ static int PTRCALL
PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr,
const char *end, const char **nextTokPtr)
{
- if (ptr == end)
+ if (ptr >= end)
return XML_TOK_NONE;
if (MINBPC(enc) > 1) {
size_t n = end - ptr;
@@ -348,7 +348,7 @@ PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr,
ptr += MINBPC(enc);
break;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
#define LEAD_CASE(n) \
case BT_LEAD ## n: \
@@ -391,11 +391,11 @@ PREFIX(scanEndTag)(const ENCODING *enc, const char *ptr,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
case BT_S: case BT_CR: case BT_LF:
- for (ptr += MINBPC(enc); ptr != end; ptr += MINBPC(enc)) {
+ for (ptr += MINBPC(enc); ptr < end; ptr += MINBPC(enc)) {
switch (BYTE_TYPE(enc, ptr)) {
case BT_S: case BT_CR: case BT_LF:
break;
@@ -432,7 +432,7 @@ static int PTRCALL
PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr,
const char *end, const char **nextTokPtr)
{
- if (ptr != end) {
+ if (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
case BT_DIGIT:
case BT_HEX:
@@ -441,7 +441,7 @@ PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- for (ptr += MINBPC(enc); ptr != end; ptr += MINBPC(enc)) {
+ for (ptr += MINBPC(enc); ptr < end; ptr += MINBPC(enc)) {
switch (BYTE_TYPE(enc, ptr)) {
case BT_DIGIT:
case BT_HEX:
@@ -464,7 +464,7 @@ static int PTRCALL
PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr,
const char *end, const char **nextTokPtr)
{
- if (ptr != end) {
+ if (ptr < end) {
if (CHAR_MATCHES(enc, ptr, ASCII_x))
return PREFIX(scanHexCharRef)(enc, ptr + MINBPC(enc), end, nextTokPtr);
switch (BYTE_TYPE(enc, ptr)) {
@@ -474,7 +474,7 @@ PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- for (ptr += MINBPC(enc); ptr != end; ptr += MINBPC(enc)) {
+ for (ptr += MINBPC(enc); ptr < end; ptr += MINBPC(enc)) {
switch (BYTE_TYPE(enc, ptr)) {
case BT_DIGIT:
break;
@@ -506,7 +506,7 @@ PREFIX(scanRef)(const ENCODING *enc, const char *ptr, const char *end,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
case BT_SEMI:
@@ -529,7 +529,7 @@ PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char *end,
#ifdef XML_NS
int hadColon = 0;
#endif
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
#ifdef XML_NS
@@ -716,7 +716,7 @@ PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end,
hadColon = 0;
#endif
/* we have a start-tag */
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
#ifdef XML_NS
@@ -740,7 +740,7 @@ PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end,
case BT_S: case BT_CR: case BT_LF:
{
ptr += MINBPC(enc);
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr)
case BT_GT:
@@ -785,7 +785,7 @@ static int PTRCALL
PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end,
const char **nextTokPtr)
{
- if (ptr == end)
+ if (ptr >= end)
return XML_TOK_NONE;
if (MINBPC(enc) > 1) {
size_t n = end - ptr;
@@ -832,7 +832,7 @@ PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end,
ptr += MINBPC(enc);
break;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
#define LEAD_CASE(n) \
case BT_LEAD ## n: \
@@ -895,7 +895,7 @@ PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
case BT_SEMI:
@@ -921,7 +921,7 @@ PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
case BT_CR: case BT_LF: case BT_S:
@@ -941,7 +941,7 @@ PREFIX(scanLit)(int open, const ENCODING *enc,
const char *ptr, const char *end,
const char **nextTokPtr)
{
- while (ptr != end) {
+ while (ptr < end) {
int t = BYTE_TYPE(enc, ptr);
switch (t) {
INVALID_CASES(ptr, nextTokPtr)
@@ -973,7 +973,7 @@ PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end,
const char **nextTokPtr)
{
int tok;
- if (ptr == end)
+ if (ptr >= end)
return XML_TOK_NONE;
if (MINBPC(enc) > 1) {
size_t n = end - ptr;
@@ -1141,7 +1141,7 @@ PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end,
*nextTokPtr = ptr;
return XML_TOK_INVALID;
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NAME_CASES(enc, ptr, end, nextTokPtr)
case BT_GT: case BT_RPAR: case BT_COMMA:
@@ -1204,10 +1204,10 @@ PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr,
const char *end, const char **nextTokPtr)
{
const char *start;
- if (ptr == end)
+ if (ptr >= end)
return XML_TOK_NONE;
start = ptr;
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
#define LEAD_CASE(n) \
case BT_LEAD ## n: ptr += n; break;
@@ -1262,10 +1262,10 @@ PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr,
const char *end, const char **nextTokPtr)
{
const char *start;
- if (ptr == end)
+ if (ptr >= end)
return XML_TOK_NONE;
start = ptr;
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
#define LEAD_CASE(n) \
case BT_LEAD ## n: ptr += n; break;
@@ -1326,7 +1326,7 @@ PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr,
end = ptr + n;
}
}
- while (ptr != end) {
+ while (ptr < end) {
switch (BYTE_TYPE(enc, ptr)) {
INVALID_CASES(ptr, nextTokPtr)
case BT_LT:
@@ -1373,7 +1373,7 @@ PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end,
{
ptr += MINBPC(enc);
end -= MINBPC(enc);
- for (; ptr != end; ptr += MINBPC(enc)) {
+ for (; ptr < end; ptr += MINBPC(enc)) {
switch (BYTE_TYPE(enc, ptr)) {
case BT_DIGIT:
case BT_HEX:
@@ -1760,7 +1760,7 @@ PREFIX(updatePosition)(const ENCODING *enc,
case BT_CR:
pos->lineNumber++;
ptr += MINBPC(enc);
- if (ptr != end && BYTE_TYPE(enc, ptr) == BT_LF)
+ if (ptr < end && BYTE_TYPE(enc, ptr) == BT_LF)
ptr += MINBPC(enc);
pos->columnNumber = (XML_Size)-1;
break;
--
2.8.2

View file

@ -0,0 +1,36 @@
Adapted from upstream commit 2bb97f407c1145c850416a3bfbcc8cf124e68a19
(gd2: handle corrupt images better (CVE-2016-3074)).
This patch omits the upstream changes to '.gitignore', and the test
added in files 'tests/Makefile.am', 'tests/gd2/gd2_read_corrupt.c', and
'tests/gd2/invalid_neg_size.gd2'.
We omit the test because its input data,
'tests/gd2/invalid_neg_size.gd2', is provided as a binary Git diff,
which is not supported by `patch`.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3074
https://github.com/libgd/libgd/commit/2bb97f407c1145c850416a3bfbcc8cf124e68a19
---
.gitignore | 1 +
src/gd_gd2.c | 2 ++
tests/Makefile.am | 3 ++-
tests/gd2/gd2_read_corrupt.c | 25 +++++++++++++++++++++++++
tests/gd2/invalid_neg_size.gd2 | Bin 0 -> 1676 bytes
5 files changed, 30 insertions(+), 1 deletion(-)
create mode 100644 tests/gd2/gd2_read_corrupt.c
create mode 100644 tests/gd2/invalid_neg_size.gd2
diff --git a/src/gd_gd2.c b/src/gd_gd2.c
index 6f28461..a50b33d 100644
--- a/src/gd_gd2.c
+++ b/src/gd_gd2.c
@@ -165,6 +165,8 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy,
if (gdGetInt (&cidx[i].size, in) != 1) {
goto fail2;
};
+ if (cidx[i].offset < 0 || cidx[i].size < 0)
+ goto fail2;
};
*chunkIdx = cidx;
};

View file

@ -0,0 +1,52 @@
Gnome-tweak-tool does not look at GSETTINGS_SCHEMA_PATH or XDG_DATA_DIRS, it
assumes that schemas are installed in one global directory
(GSETTINGS_SCHEMA_DIR/gsettingsschemadir).
Guix/GuixSD uses a different directory for every gir package and has
packages pick-up files using XDG_DATA_DIRS.
Upstream ticket: https://bugzilla.gnome.org/show_bug.cgi?id=764537
janneke@gnu.org
--- gnome-tweak-tool-3.18.1.orig/gtweak/gsettings.py 2015-04-08 15:21:32.000000000 +0200
+++ gnome-tweak-tool-3.18.1/gtweak/gsettings.py 2016-04-03 11:26:38.658482704 +0200
@@ -16,7 +16,8 @@
# along with gnome-tweak-tool. If not, see <http://www.gnu.org/licenses/>.
import logging
-import os.path
+import os
+import sys
import xml.dom.minidom
import gettext
@@ -31,6 +32,13 @@
class GSettingsMissingError(Exception):
pass
+def file_from_path(path, file_name):
+ for dir in path:
+ f = os.path.join(dir, file_name)
+ if os.path.exists(f):
+ return f
+ return None
+
class _GSettingsSchema:
def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options):
if not schema_dir:
@@ -38,9 +46,14 @@
if not schema_filename:
schema_filename = schema_name + ".gschema.xml"
+ schema_prefix = os.path.join('glib-2.0', 'schemas')
schema_path = os.path.join(schema_dir, schema_filename)
if not os.path.exists(schema_path):
- logging.critical("Could not find schema %s" % schema_path)
+ schema_path = file_from_path(os.environ.get ('GSETTINGS_SCHEMA_PATH', '').split(os.path.pathsep), schema_filename)
+ if not (schema_path and os.path.exists(schema_path)):
+ schema_path = file_from_path(os.environ.get ('XDG_DATA_DIRS', '').split(os.path.pathsep), os.path.join(schema_prefix, schema_filename))
+ if not (schema_path and os.path.exists(schema_path)):
+ logging.critical("Could not find schema %s" % schema_filename)
assert(False)
self._schema_name = schema_name

View file

@ -1,38 +0,0 @@
From 68641cdb646eaa15099c1d6cfff1eaa5dd2ac841 Mon Sep 17 00:00:00 2001
From: Jes Sorensen <Jes.Sorensen@redhat.com>
Date: Tue, 24 Feb 2015 16:00:40 -0500
Subject: [PATCH] write_super_imsm_spares(): C statements are terminated by ;
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
super-intel.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/super-intel.c b/super-intel.c
index 819e0da..7f75b53 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -5115,13 +5115,13 @@ static int write_super_imsm_spares(struct intel_super *super, int doclose)
__u32 sum;
struct dl *d;
- spare->mpb_size = __cpu_to_le32(sizeof(struct imsm_super)),
- spare->generation_num = __cpu_to_le32(1UL),
+ spare->mpb_size = __cpu_to_le32(sizeof(struct imsm_super));
+ spare->generation_num = __cpu_to_le32(1UL);
spare->attributes = MPB_ATTRIB_CHECKSUM_VERIFY;
- spare->num_disks = 1,
- spare->num_raid_devs = 0,
- spare->cache_size = mpb->cache_size,
- spare->pwr_cycle_count = __cpu_to_le32(1),
+ spare->num_disks = 1;
+ spare->num_raid_devs = 0;
+ spare->cache_size = mpb->cache_size;
+ spare->pwr_cycle_count = __cpu_to_le32(1);
snprintf((char *) spare->sig, MAX_SIGNATURE_LENGTH,
MPB_SIGNATURE MPB_VERSION_RAID0);
--
2.4.3

View file

@ -1,141 +0,0 @@
This patch is required to fix a test failure when python-dateutil version
2.5.2 or later is used. It is derived from the following commits:
80ef4e06526b9b60cf24268454c9456585a790a3
845ff974af6f7c3b3067cce8a7149b771c2be87
diff --git a/pandas/tseries/tests/test_tslib.py b/pandas/tseries/tests/test_tslib.py
index f0d5bf7..863bc6f 100644
--- a/pandas/tseries/tests/test_tslib.py
+++ b/pandas/tseries/tests/test_tslib.py
@@ -474,6 +474,11 @@ def test_does_not_convert_mixed_integer(self):
good_date_string))
def test_parsers(self):
+
+ # https://github.com/dateutil/dateutil/issues/217
+ import dateutil
+ yearfirst = dateutil.__version__ >= LooseVersion('2.5.0')
+
cases = {'2011-01-01': datetime.datetime(2011, 1, 1),
'2Q2005': datetime.datetime(2005, 4, 1),
'2Q05': datetime.datetime(2005, 4, 1),
@@ -527,20 +532,26 @@ def test_parsers(self):
}
for date_str, expected in compat.iteritems(cases):
- result1, _, _ = tools.parse_time_string(date_str)
- result2 = to_datetime(date_str)
- result3 = to_datetime([date_str])
- result4 = to_datetime(np.array([date_str], dtype=object))
- result5 = Timestamp(date_str)
- result6 = DatetimeIndex([date_str])[0]
- result7 = date_range(date_str, freq='S', periods=1)
+ result1, _, _ = tools.parse_time_string(date_str,
+ yearfirst=yearfirst)
+ result2 = to_datetime(date_str, yearfirst=yearfirst)
+ result3 = to_datetime([date_str], yearfirst=yearfirst)
+ result4 = to_datetime(np.array([date_str], dtype=object),
+ yearfirst=yearfirst)
+ result6 = DatetimeIndex([date_str], yearfirst=yearfirst)[0]
self.assertEqual(result1, expected)
self.assertEqual(result2, expected)
self.assertEqual(result3, expected)
self.assertEqual(result4, expected)
- self.assertEqual(result5, expected)
self.assertEqual(result6, expected)
- self.assertEqual(result7, expected)
+
+ # these really need to have yearfist, but we don't support
+ if not yearfirst:
+ result5 = Timestamp(date_str)
+ self.assertEqual(result5, expected)
+ result7 = date_range(date_str, freq='S', periods=1,
+ yearfirst=yearfirst)
+ self.assertEqual(result7, expected)
# NaT
result1, _, _ = tools.parse_time_string('NaT')
@@ -589,23 +589,62 @@ def test_parsers_quarter_invalid(self):
self.assertRaises(ValueError, tools.parse_time_string, case)
def test_parsers_dayfirst_yearfirst(self):
+
+ # https://github.com/dateutil/dateutil/issues/217
+ # this issue was closed
+ import dateutil
+ is_compat_version = dateutil.__version__ >= LooseVersion('2.5.2')
+ if is_compat_version:
+ dayfirst_yearfirst1 = datetime.datetime(2010, 12, 11)
+ dayfirst_yearfirst2 = datetime.datetime(2020, 12, 21)
+ else:
+ dayfirst_yearfirst1 = datetime.datetime(2010, 11, 12)
+ dayfirst_yearfirst2 = datetime.datetime(2020, 12, 21)
+
# str : dayfirst, yearfirst, expected
- cases = {'10-11-12': [(False, False, datetime.datetime(2012, 10, 11)),
- (True, False, datetime.datetime(2012, 11, 10)),
- (False, True, datetime.datetime(2010, 11, 12)),
- (True, True, datetime.datetime(2010, 11, 12))],
- '20/12/21': [(False, False, datetime.datetime(2021, 12, 20)),
- (True, False, datetime.datetime(2021, 12, 20)),
- (False, True, datetime.datetime(2020, 12, 21)),
- (True, True, datetime.datetime(2020, 12, 21))]}
+ cases = {'10-11-12': [(False, False, False,
+ datetime.datetime(2012, 10, 11)),
+ (True, False, False,
+ datetime.datetime(2012, 11, 10)),
+ (False, True, False,
+ datetime.datetime(2010, 11, 12)),
+ (True, True, False, dayfirst_yearfirst1)],
+ '20/12/21': [(False, False, False,
+ datetime.datetime(2021, 12, 20)),
+ (True, False, False,
+ datetime.datetime(2021, 12, 20)),
+ (False, True, False,
+ datetime.datetime(2020, 12, 21)),
+ (True, True, True, dayfirst_yearfirst2)]}
tm._skip_if_no_dateutil()
from dateutil.parser import parse
for date_str, values in compat.iteritems(cases):
- for dayfirst, yearfirst, expected in values:
- result1, _, _ = tools.parse_time_string(date_str,
- dayfirst=dayfirst,
- yearfirst=yearfirst)
+ for dayfirst, yearfirst, is_compat, expected in values:
+
+ f = lambda x: tools.parse_time_string(x,
+ dayfirst=dayfirst,
+ yearfirst=yearfirst)
+
+ # we now have an invalid parse
+ if is_compat and is_compat_version:
+ self.assertRaises(tslib.DateParseError, f, date_str)
+
+ def f(date_str):
+ return to_datetime(date_str, dayfirst=dayfirst,
+ yearfirst=yearfirst)
+
+ self.assertRaises(ValueError, f, date_str)
+
+ def f(date_str):
+ return DatetimeIndex([date_str], dayfirst=dayfirst,
+ yearfirst=yearfirst)[0]
+
+ self.assertRaises(ValueError, f, date_str)
+
+ continue
+
+ result1, _, _ = f(date_str)
result2 = to_datetime(date_str, dayfirst=dayfirst,
yearfirst=yearfirst)
@@ -614,7 +653,6 @@ def test_parsers_dayfirst_yearfirst(self):
yearfirst=yearfirst)[0]
# Timestamp doesn't support dayfirst and yearfirst
-
self.assertEqual(result1, expected)
self.assertEqual(result2, expected)
self.assertEqual(result3, expected)

View file

@ -25,6 +25,7 @@ (define-module (gnu packages plotutils)
#:use-module (guix build-system gnu)
#:use-module (gnu packages algebra)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages emacs)
#:use-module (gnu packages xorg)
#:use-module (gnu packages image)
#:use-module (gnu packages ghostscript)
@ -188,6 +189,7 @@ (define-public asymptote
`(("gs" ,ghostscript) ;For tests
("texinfo" ,texinfo) ;For generating documentation
("texlive" ,texlive) ;For tests and documentation
("emacs" ,emacs-no-x)
("perl" ,perl)))
(inputs
`(("fftw" ,fftw)
@ -198,7 +200,13 @@ (define-public asymptote
("readline" ,readline)
("zlib" ,zlib)))
(arguments
`(#:configure-flags
`(#:modules ((guix build emacs-utils)
(guix build gnu-build-system)
(guix build utils)
(srfi srfi-26))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-utils))
#:configure-flags
(list (string-append "--enable-gc=" (assoc-ref %build-inputs "libgc"))
(string-append "--with-latex="
(assoc-ref %outputs "out")
@ -210,15 +218,26 @@ (define-public asymptote
(modify-phases %standard-phases
(add-before 'build 'patch-pdf-viewer
(lambda _
;; Default to a free pdf viewer
;; Default to a free pdf viewer.
(substitute* "settings.cc"
(("defaultPDFViewer=\"acroread\"")
"defaultPDFViewer=\"gv\""))))
"defaultPDFViewer=\"gv\""))
#t))
(add-before 'check 'set-HOME
;; Some tests require write access to $HOME, otherwise leading to
;; "failed to create directory /homeless-shelter/.asy" error.
(lambda _
(setenv "HOME" "/tmp"))))))
(setenv "HOME" "/tmp")
#t))
(add-after 'install 'install-Emacs-data
(lambda* (#:key outputs #:allow-other-keys)
;; Install related Emacs libraries into an appropriate location.
(let* ((out (assoc-ref outputs "out"))
(lisp-dir (string-append out "/share/emacs/site-lisp")))
(for-each (cut install-file <> lisp-dir)
(find-files "." "\\.el$"))
(emacs-generate-autoloads ,name lisp-dir))
#t)))))
(home-page "http://asymptote.sourceforge.net")
(synopsis "Script-based vector graphics language")
(description

View file

@ -18,6 +18,7 @@
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -90,7 +91,7 @@ (define-module (gnu packages python)
#:use-module (guix build-system trivial)
#:use-module (srfi srfi-1))
(define-public python-2
(define-public python-2.7
(package
(name "python")
(version "2.7.11")
@ -281,7 +282,10 @@ (define-public python-2
data types.")
(license psfl)))
(define-public python
;; Current 2.x version.
(define-public python-2 python-2.7)
(define-public python-3.4
(package (inherit python-2)
(version "3.4.3")
(source (origin
@ -307,6 +311,12 @@ (define-public python
(version-major+minor version)
"/site-packages"))))))))
;; Current 3.x version.
(define-public python-3 python-3.4)
;; Current major version.
(define-public python python-3)
;; Minimal variants of Python, mostly used to break the cycle between Tk and
;; Python (Tk -> libxcb -> Python.)
@ -1002,15 +1012,16 @@ (define-public python2-parsedatetime
(define-public python-pandas
(package
(name "python-pandas")
(version "0.18.0")
(version "0.18.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pandas" version))
(uri (string-append
"https://pypi.python.org/packages/11/09/"
"e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/"
"pandas-" version ".tar.gz"))
(sha256
(base32 "050qw0ap5bhyv5flp78x3lcq1dlminl3xaj6kbrm0jqmx0672xf9"))
(patches (search-patches
"python-pandas-fix-tslib-test-failure.patch"))))
(base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j"))))
(build-system python-build-system)
(propagated-inputs
`(("python-numpy" ,python-numpy)))
@ -1018,8 +1029,7 @@ (define-public python-pandas
`(("python-pytz" ,python-pytz)
("python-dateutil" ,python-dateutil-2)))
(native-inputs
`(("python-nose" ,python-nose)
("python-setuptools" ,python-setuptools)))
`(("python-nose" ,python-nose)))
(home-page "http://pandas.pydata.org")
(synopsis "Data structures for data analysis, time series, and statistics")
(description
@ -1028,15 +1038,15 @@ (define-public python-pandas
multidimensional, potentially heterogeneous) and time series data both easy
and intuitive. It aims to be the fundamental high-level building block for
doing practical, real world data analysis in Python.")
(license bsd-3)))
(license bsd-3)
(properties `((python2-variant . ,(delay python2-pandas))))))
(define-public python2-pandas
(let ((pandas (package-with-python2 python-pandas)))
(package (inherit pandas)
(propagated-inputs
`(("python2-numpy" ,python2-numpy)
,@(alist-delete "python-numpy"
(package-propagated-inputs pandas)))))))
(let ((base (package-with-python2 (strip-python2-variant python-pandas))))
(package
(inherit base)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
(define-public python-tzlocal
(package
@ -5856,16 +5866,18 @@ (define-public python2-pretend
(define-public python-cryptography-vectors
(package
(name "python-cryptography-vectors")
(version "1.3.1")
(version "1.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://pypi.python.org/packages/source/c/"
"cryptography-vectors/cryptography_vectors-"
version ".tar.gz"))
(uri (string-append
"https://pypi.python.org/packages/"
"3f/fd/"
"5883a7fdfcdf6edec55c58605be99d8c36ce97a9b729763ea9cf30e761b7"
"/cryptography_vectors-" version ".tar.gz"))
(sha256
(base32
"1144l3ypz3bngxd59lb4y74xa401w92lhvvjgxzglmvbh8wzkcbb"))))
"0ss682bpgzdfy2vam8yhhrx7p5gnw89ydlvaswqp52za8sd8nsh0"))))
(build-system python-build-system)
(native-inputs
`(("python-setuptools" ,python-setuptools)))
@ -5882,14 +5894,18 @@ (define-public python2-cryptography-vectors
(define-public python-cryptography
(package
(name "python-cryptography")
(version "1.3.1")
(version "1.3.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cryptography" version))
(uri (string-append
"https://pypi.python.org/packages/"
"04/da/"
"35f9a1d34dab5d777f65fb87731288f338ab0ae46a525ffdf0405b573dd0"
"/cryptography-" version ".tar.gz"))
(sha256
(base32
"1qjkrpfvxcyd0kal3zpm5y7f9p3y77ixn9jw8f4dqpgrw1sn3cxl"))))
"121067qdbzd0ir0nxjdf0kgai7qlsc9yh2xhrj4cavcn4y4gmapv"))))
(build-system python-build-system)
(inputs
`(("openssl" ,openssl)))
@ -8764,3 +8780,30 @@ (define-public python2-shedskin
(description (string-append "This is an experimental compiler for a subset of
Python. It generates C++ code and a Makefile."))
(license (list gpl3 bsd-3 license:expat))))
(define-public python2-rope
(package
(name "python2-rope")
(version "0.10.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "rope" version))
(sha256
(base32
"18k5znhpwvrfck3yp0jmhd5j8r0f0s8bk1zh5yhs2cfgmfhbwigb"))))
(arguments
;; Rope is currently python-2 only.
;; https://github.com/python-rope/rope/issues/57
`(#:python ,python-2))
(build-system python-build-system)
(native-inputs
`(("python2-unittest2" ,python2-unittest2)
("python2-setuptools" ,python2-setuptools)))
(home-page "https://github.com/python-rope/rope")
(synopsis "Refactoring library for Python")
(description "Rope is a refactoring library for Python. It facilitates
the renaming, moving and extracting of attributes, functions, modules, fields
and parameters in Python 2 source code. These refactorings can also be applied
to occurences in strings and comments.")
(license gpl2)))

View file

@ -55,20 +55,17 @@ (define (qemu-patch commit file-name sha256)
(define-public qemu
(package
(name "qemu")
(version "2.5.1.1")
(version "2.6.0")
(source (origin
(method url-fetch)
(uri (string-append "http://wiki.qemu-project.org/download/qemu-"
version ".tar.bz2"))
(sha256
(base32
"1rpgr1v6gnsdb4bcxwn1krsz4d4h9xgvlg6ark648nkn8dp99n98"))))
"1v1lhhd6m59hqgmiz100g779rjq70pik5v4b3g936ci73djlmb69"))))
(build-system gnu-build-system)
(arguments
'(;; FIXME: On x86_64, the test 'check-qtest-x86_64' sometimes fails when
;; parallel builds are enabled.
#:parallel-tests? #f
#:phases (alist-replace
'(#:phases (alist-replace
'configure
(lambda* (#:key inputs outputs (configure-flags '())
#:allow-other-keys)

View file

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -505,7 +505,7 @@ (define-public python-pyqt-4
(define-public qtkeychain
(package
(name "qtkeychain")
(version "0.5.0")
(version "0.6.2")
(source
(origin
(method url-fetch)
@ -513,7 +513,7 @@ (define-public qtkeychain
"archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "055mkd4pz6cyff4cw0784wjc1w92m8x223sxi96ph15fr3lplbg6"))))
(base32 "0g76pa786mg0fxy52hrljw09dvi6kffk2ms42lxapvpy6j94a4xf"))))
(build-system cmake-build-system)
(inputs
`(("qt" ,qt)))

View file

@ -4,6 +4,7 @@
;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -22,11 +23,15 @@
(define-module (gnu packages scheme)
#:use-module (gnu packages)
#:use-module ((guix licenses) #:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3))
#:use-module ((guix licenses)
#:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3
cc-by-sa4.0))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages compression)
#:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision)
@ -38,6 +43,7 @@ (define-module (gnu packages scheme)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages avahi)
#:use-module (gnu packages libphidget)
@ -872,3 +878,54 @@ (define* (copy-files-to-directory files dir
support teaching and research in mathematical physics and electrical
engineering.")
(license gpl2+))))
(define-public sicp
(let ((commit "5b52db566968d28a89fbbaf338d207f01cc81cac"))
(package
(name "sicp")
(version (string-append "20160220-1." (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sarabander/sicp")
(commit commit)))
(sha256
(base32
"10h6h7szwlfbshwh18bnl2hvyddj5i7106l79s145l0sjjv15cxb"))
(file-name (string-append name "-" version "-checkout"))))
(build-system trivial-build-system)
(native-inputs `(("gzip" ,gzip)
("source" ,source)
("texinfo" ,texinfo)))
(arguments
`(#:modules ((guix build utils)
(srfi srfi-1)
(srfi srfi-26))
#:builder
(begin
(use-modules (guix build utils)
(srfi srfi-1)
(srfi srfi-26))
(let ((gzip (assoc-ref %build-inputs "gzip"))
(source (assoc-ref %build-inputs "source"))
(texinfo (assoc-ref %build-inputs "texinfo"))
(info-dir (string-append %output "/share/info")))
(setenv "PATH" (string-append gzip "/bin"
":" texinfo "/bin"))
(mkdir-p info-dir)
(and (zero?
(system* "makeinfo" "--output"
(string-append info-dir "/sicp.info")
(string-append source "/sicp-pocket.texi")))
(every zero?
(map (cut system* "gzip" "-9n" <>)
(find-files info-dir))))))))
(home-page "http://sarabander.github.io/sicp")
(synopsis "Structure and Interpretation of Computer Programs")
(description "Structure and Interpretation of Computer Programs (SICP) is
a textbook aiming to teach the principles of computer programming.
Using Scheme, a dialect of the Lisp programming language, the book explains
core computer science concepts such as abstraction in programming,
metalinguistic abstraction, recursion, interpreters, and modular programming.")
(license cc-by-sa4.0))))

View file

@ -0,0 +1,50 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages shellutils)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system gnu))
(define-public envstore
(package
(name "envstore")
(version "2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://finalrewind.org/projects/"
name "/" name "-" version ".tar.bz2"))
(sha256
(base32 "1x97lxad80m5blhdfanl5v2qzjwcgbij2i23701bn8mpyxsrqszi"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(home-page "https://finalrewind.org/projects/envstore/")
(synopsis "Save and restore environment variables")
(description "Envstore is a program for sharing environment variables
between various shells or commands.")
(license
(non-copyleft "http://www.wtfpl.net/txt/copying/"))))

View file

@ -5,6 +5,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -356,13 +357,13 @@ (define-public r-munsell
(define-public r-rcpp
(package
(name "r-rcpp")
(version "0.12.4")
(version "0.12.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "Rcpp" version))
(sha256
(base32 "1lyhyaxrnb5w4igi3l1p378s4jblcnrv6h7h5ym42ljm54mm44w3"))))
(base32 "1vw0zbd6zhqixqg7h8ahn1dr1hb492365x419nrp2lhvr60r8i0k"))))
(build-system r-build-system)
(home-page "http://www.rcpp.org")
(synopsis "Seamless R and C++ Integration")
@ -604,13 +605,13 @@ (define-public r-lazyeval
(define-public r-dbi
(package
(name "r-dbi")
(version "0.3.1")
(version "0.4-1")
(source (origin
(method url-fetch)
(uri (cran-uri "DBI" version))
(sha256
(base32
"0xj5baxwnhl23rd5nskhjvranrwrc68f3xlyrklglipi41bm69hw"))))
"13n6ibmrma42qmq17qgkyjsc0ciwqf17sd7lw7w26pwpyjd4mwgg"))))
(build-system r-build-system)
(home-page "https://github.com/rstats-db/DBI")
(synopsis "R database interface")
@ -624,13 +625,13 @@ (define-public r-dbi
(define-public r-bh
(package
(name "r-bh")
(version "1.60.0-1")
(version "1.60.0-2")
(source (origin
(method url-fetch)
(uri (cran-uri "BH" version))
(sha256
(base32
"08gc3b0irgvpjl59irdxs8jhlbky4yp4fvs3zi4pq0wdwj43cfsk"))))
"136497fng9bcvrf8favpj8inz96pxdwp1rrb2k00sxjxjbgawhg4"))))
(build-system r-build-system)
(home-page "https://github.com/eddelbuettel/bh")
(synopsis "R package providing subset of Boost headers")
@ -642,13 +643,13 @@ (define-public r-bh
(define-public r-evaluate
(package
(name "r-evaluate")
(version "0.8.3")
(version "0.9")
(source (origin
(method url-fetch)
(uri (cran-uri "evaluate" version))
(sha256
(base32
"08d6164m9wqf9qq6yh1s9a0qxwqzqpsq7312hilzy79gxf9gixzr"))))
"1bn6bympg9prr8d16g1g530bddii8i04hf4i2bkw0yf4dsfqq4g8"))))
(build-system r-build-system)
(propagated-inputs
`(("r-stringr" ,r-stringr)))
@ -664,13 +665,13 @@ (define-public r-evaluate
(define-public r-formatr
(package
(name "r-formatr")
(version "1.3")
(version "1.4")
(source (origin
(method url-fetch)
(uri (cran-uri "formatR" version))
(sha256
(base32
"09fsd0z6nhksc1h921h8q28f87hr6d1q8d6dmpxphjylb9r5xmj4"))))
"1fvynq0fj1r9grg9vvfdh5fl2riv6qki9f2rfpyvbvqq3xxpmi3f"))))
(build-system r-build-system)
(home-page "http://yihui.name/formatR")
(synopsis "Format R code automatically")
@ -684,13 +685,13 @@ (define-public r-formatr
(define-public r-highr
(package
(name "r-highr")
(version "0.5.1")
(version "0.6")
(source (origin
(method url-fetch)
(uri (cran-uri "highr" version))
(sha256
(base32
"11hyawzhaw3ph5y5xphi7alx6df1d0i6wh0a2n5m4sxxhdrzswnb"))))
"0n9v44dxdy5fhkdmpbpa2p78whyd9z3rhhy42ipdz5m5vsr55qa3"))))
(build-system r-build-system)
(home-page "https://github.com/yihui/highr")
(synopsis "Syntax highlighting for R source code")
@ -765,13 +766,13 @@ (define-public r-yaml
(define-public r-knitr
(package
(name "r-knitr")
(version "1.12.3")
(version "1.13")
(source (origin
(method url-fetch)
(uri (cran-uri "knitr" version))
(sha256
(base32
"1v3rzv6wq8mvpdrljsaqk4z3f8323jnv385js24wmn4fglqly6dz"))))
"0v69846myi4fbjp8wiik4295fhba67s3i6ccysghm6x031i2f26q"))))
(build-system r-build-system)
(propagated-inputs
`(("r-evaluate" ,r-evaluate)
@ -915,13 +916,13 @@ (define-public r-praise
(define-public r-testthat
(package
(name "r-testthat")
(version "1.0.0")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (cran-uri "testthat" version))
(sha256
(base32
"1ci1y54kaz7g4di79fcibp0m0wkkxn2glchhs6v8jfg6374ka410"))))
"0pj1r01x4ny4capr83dfa19hi5i2sjjxky99schzip8zrq5dzxqf"))))
(build-system r-build-system)
(propagated-inputs
`(("r-digest" ,r-digest)
@ -1395,14 +1396,14 @@ (define-public r-roxygen2
(define-public r-openssl
(package
(name "r-openssl")
(version "0.9.2")
(version "0.9.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "openssl" version))
(sha256
(base32
"1dbsaciz39zvsmcyxkmpfm5yxzrpw2iv2nb86525wn80q0cyv0cb"))))
"0ldqam7d9fyxwhr651ld6lsh05lg4v2y8ajxwzq9ywzjmfb3vlpz"))))
(build-system r-build-system)
(inputs
`(("openssl" ,openssl)))
@ -1452,13 +1453,13 @@ (define-public r-httr
(define-public r-git2r
(package
(name "r-git2r")
(version "0.14.0")
(version "0.15.0")
(source (origin
(method url-fetch)
(uri (cran-uri "git2r" version))
(sha256
(base32
"0jkkrggffpflaaw0gn2hnm1wz83xs31amriim481g73zf30g2bpr"))))
"1rpdf85wy9fp456ypvbhl3p9whkb7kgl0n7rkqxd2bhvyzkvjak8"))))
(build-system r-build-system)
;; This R package contains modified sources of libgit2. This modified
;; version of libgit2 is built as the package is built. Hence libgit2 is
@ -1496,13 +1497,13 @@ (define-public r-rstudioapi
(define-public r-devtools
(package
(name "r-devtools")
(version "1.11.0")
(version "1.11.1")
(source (origin
(method url-fetch)
(uri (cran-uri "devtools" version))
(sha256
(base32
"101j15d0f9107pnmdpdwqyvk2ncykq48336rl8lnqp6idiq8id2q"))))
"0ik3l3q62sspdph613f9ik5yz36s8q5nrc50dqgn3pxzvpwpdj2i"))))
(build-system r-build-system)
(propagated-inputs
`(("r-curl" ,r-curl)
@ -1567,13 +1568,13 @@ (define-public r-readr
(define-public r-plotrix
(package
(name "r-plotrix")
(version "3.6-1")
(version "3.6-2")
(source (origin
(method url-fetch)
(uri (cran-uri "plotrix" version))
(sha256
(base32
"1y8xnlpy4zba70af9lwj2sshvfdfcmfdh92wamyzj8z9gciailfr"))))
"1jn1k3skmlgyvpijj6vlcn5m2zgrsdh00g1fq8n5dqs1pkl1sqrw"))))
(build-system r-build-system)
(home-page "http://cran.r-project.org/web/packages/plotrix")
(synopsis "Various plotting functions")
@ -1646,13 +1647,13 @@ (define-public r-latticeextra
(define-public r-rcpparmadillo
(package
(name "r-rcpparmadillo")
(version "0.6.700.3.0")
(version "0.6.700.6.0")
(source (origin
(method url-fetch)
(uri (cran-uri "RcppArmadillo" version))
(sha256
(base32
"1mc62b6my568ni18w4clgs6l6ggqrwzsm3lgx0c1prf4rap69s8w"))
"0x736cjg1pbvn8c6h91c88qmmz4pddvvqg88k9c9kwhn24fjrra0"))
(modules '((guix build utils)))
;; Remove bundled armadillo sources
(snippet
@ -1730,14 +1731,14 @@ (define-public r-catools
(define-public r-rmarkdown
(package
(name "r-rmarkdown")
(version "0.9.5")
(version "0.9.6")
(source
(origin
(method url-fetch)
(uri (cran-uri "rmarkdown" version))
(sha256
(base32
"1zz98jxvw3lzva5kkj1n37gbhjwqd96gjs04y6h37pqy6qmkhk8c"))))
"09ajq5miqzz46q0i9svvbh93dbi7xbjn4702d6z3scdz272gx7l2"))))
(properties `((upstream-name . "rmarkdown")))
(build-system r-build-system)
(propagated-inputs
@ -2411,13 +2412,13 @@ (define-public r-r-cache
(define-public r-r-rsp
(package
(name "r-r-rsp")
(version "0.21.0")
(version "0.30.0")
(source (origin
(method url-fetch)
(uri (cran-uri "R.rsp" version))
(sha256
(base32
"0snc6ps75s3ci6sy8mil1wg2i9xmlr1ygh9n244y1brdvp43dfsw"))))
"1ssykygqkxzx9qblxhavxlf2z6r5bhk0s47yw1dllfiyc8zy7jv2"))))
(properties `((upstream-name . "R.rsp")))
(build-system r-build-system)
(propagated-inputs
@ -2461,13 +2462,13 @@ (define-public r-mvtnorm
(define-public r-matrixstats
(package
(name "r-matrixstats")
(version "0.50.1")
(version "0.50.2")
(source (origin
(method url-fetch)
(uri (cran-uri "matrixStats" version))
(sha256
(base32
"08l32abp7dfnsc49ca4hzznh934y60n5z01x5ga2ixky5961s57c"))))
"0zj27xxx9cyrq16rn4g3l0krqg68p8f2qp18w1w4i767j87amlbj"))))
(properties `((upstream-name . "matrixStats")))
(build-system r-build-system)
(native-inputs
@ -2563,13 +2564,13 @@ (define-public r-hexbin
(define-public r-plotly
(package
(name "r-plotly")
(version "3.4.13")
(version "3.6.0")
(source (origin
(method url-fetch)
(uri (cran-uri "plotly" version))
(sha256
(base32
"1pfl9w35iwin8a1hfwcihajyps2ngjbyrmvi61b9lspcdbk39lf8"))))
"15hvqa0sf4z6l6vvr614zjszfphwpv66zpc665iyiynq0pd1jv2c"))))
(build-system r-build-system)
(propagated-inputs
`(("r-base64enc" ,r-base64enc)
@ -2593,6 +2594,28 @@ (define-public r-plotly
data behind them) can be viewed and modified in a web browser.")
(license license:x11)))
(define-public r-biased-urn
(package
(name "r-biased-urn")
(version "1.07")
(source
(origin
(method url-fetch)
(uri (cran-uri "BiasedUrn" version))
(sha256
(base32
"13i2lgfnjhlbbm2yxfc2l5hswqw6x03pwba5csjmirv8kpjw4xr3"))))
(properties `((upstream-name . "BiasedUrn")))
(build-system r-build-system)
(home-page "http://www.agner.org/random/")
(synopsis "Biased urn model distributions")
(description
"This package provides statistical models of biased sampling in the form
of univariate and multivariate noncentral hypergeometric distributions,
including Wallenius' noncentral hypergeometric distribution and Fisher's
noncentral hypergeometric distribution (also called extended hypergeometric
distribution).")
(license license:gpl3+)))
(define-public r-ztable
(package

View file

@ -4,6 +4,7 @@
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -27,8 +28,10 @@ (define-module (gnu packages textutils)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)
#:use-module (gnu packages autotools)
#:use-module (gnu packages python))
#:use-module (gnu packages python)
#:use-module (gnu packages zip))
(define-public recode
(package
@ -328,3 +331,42 @@ (define-public antiword
to everybody, because they believe that everybody runs Windows and therefore
runs Word\".")
(license license:gpl2+)))
(define-public utfcpp
(package
(name "utfcpp")
(version "2.3.4")
(source (origin
(method url-fetch)
(uri
(string-append
"mirror://sourceforge/project/utfcpp/utf8cpp_2x/Release%20"
version "/utf8_v"
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
".zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"1vqhs0aipcvvdrwcs7h3jsryg6mgbmc4s34n5cm6d36q4nxwwwrk"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((source (assoc-ref %build-inputs "source"))
(out (assoc-ref %outputs "out"))
(unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip")))
(mkdir-p out)
(with-directory-excursion out
(system* unzip source)
(mkdir-p "share/doc")
(rename-file "doc" "share/doc/utfcpp")
(rename-file "source" "include"))))))
(native-inputs `(("unzip" ,unzip)))
(home-page "https://github.com/nemtrif/utfcpp")
(synopsis "Portable C++ library for handling UTF-8")
(description "UTF8-CPP is a C++ library for handling UTF-8 encoded text
in a portable way.")
(license license:boost1.0)))

View file

@ -351,13 +351,16 @@ (define-public libressl
(define-public python-acme
(package
(name "python-acme")
(version "0.5.0")
(version "0.6.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "acme" version))
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/"
"af/33/703e5ec3d7efde7c4d2fcea9cdf88953a33d4e72aafd5b0a330173a7b395/"
"acme-" version ".tar.gz"))
(sha256
(base32
"1g8scfkhs3l06588h73py81xb1gvkkdzaxanl21whcvdclycc186"))))
"1ipck25c6nr0x54w2cc8ziwjmyyrpyz6pc1y8xc9nqmxvw4n0kpc"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -407,16 +410,19 @@ (define-public python-acme
(define-public python2-acme
(package-with-python2 python-acme))
(define-public letsencrypt
(define-public certbot
(package
(name "letsencrypt")
(version "0.5.0")
(name "certbot")
(version "0.6.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "letsencrypt" version))
(uri (string-append
"https://pypi.python.org/packages/"
"fc/eb/7594bf16d89909a9d52c46edbeae669d4b2ee6e12453bd97e674d0371920/"
name "-" version ".tar.gz"))
(sha256
(base32
"0nnijs26kkw07yylszc97p3jw09y98j54xihjp0rprrbp1q2p2p3"))))
"0ba95cf6shmyhi4vzvk64vbkrmr8qvkn32k3xwb2iv7ybbfbgc40"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
@ -428,14 +434,14 @@ (define-public letsencrypt
(man1 (string-append out "/share/man/man1"))
(man7 (string-append out "/share/man/man7"))
(info (string-append out "/info")))
(substitute* "docs/man/letsencrypt.rst"
(("letsencrypt --help all")
(string-append out "/bin/letsencrypt" " --help all")))
(substitute* "docs/man/certbot.rst"
(("certbot --help all")
(string-append out "/bin/certbot" " --help all")))
(and
(zero? (system* "make" "-C" "docs" "man" "info"))
(install-file "docs/_build/texinfo/LetsEncrypt.info" info)
(install-file "docs/_build/man/letsencrypt.1" man1)
(install-file "docs/_build/man/letsencrypt.7" man7)
(install-file "docs/_build/texinfo/Certbot.info" info)
(install-file "docs/_build/man/certbot.1" man1)
(install-file "docs/_build/man/certbot.7" man7)
#t)))))))
;; TODO: Add optional inputs for testing.
(native-inputs
@ -465,9 +471,13 @@ (define-public letsencrypt
(description "Tool to automatically receive and install X.509 certificates
to enable TLS on servers. The client will interoperate with the Lets Encrypt CA which
will be issuing browser-trusted certificates for free.")
(home-page "https://letsencrypt.org/")
(home-page "https://certbot.eff.org/")
(license license:asl2.0)))
(define-public letsencrypt
(package (inherit certbot)
(name "letsencrypt")))
(define-public perl-net-ssleay
(package
(name "perl-net-ssleay")

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,7 +29,7 @@ (define-module (gnu packages tmux)
(define-public tmux
(package
(name "tmux")
(version "2.1")
(version "2.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -36,7 +37,7 @@ (define-public tmux
version "/tmux-" version ".tar.gz"))
(sha256
(base32
"0xk1mylsb08sf0w597mdgj9s6hxxjvjvjd6bngpjvvxwyixlwmii"))))
"1r0riry5vw604hc21087ffbkqgr6j4ia1rrsivz2k6grchdm8a5w"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)

View file

@ -265,6 +265,7 @@ (define-public git
;; FIXME: This variable designates a single file; it is not a search path.
(list (search-path-specification
(variable "GIT_SSL_CAINFO")
(file-type 'regular)
(files '("etc/ssl/certs/ca-certificates.crt")))))
(synopsis "Distributed version control system")
@ -323,7 +324,7 @@ (define-public git-manpages
(define-public libgit2
(package
(name "libgit2")
(version "0.24.0")
(version "0.24.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/libgit2/libgit2/"
@ -331,7 +332,7 @@ (define-public libgit2
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1c5jx0pcpz83x7s36jimfz5bj0vy7vwpchq9p4sgdqxy8gwr6rhw"))))
"1ppyfwxc276d2p2pwbzlmvs2bkgng425rl8k2rf9nsq66jxqq6b0"))))
(build-system cmake-build-system)
(arguments
`(#:phases

View file

@ -11,6 +11,7 @@
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -56,6 +57,7 @@ (define-module (gnu packages web)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages lua)
#:use-module (gnu packages base)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
@ -274,6 +276,100 @@ (define-public json-c
parse JSON formatted strings back into the C representation of JSON objects.")
(license l:x11)))
(define-public krona-tools
(package
(name "krona-tools")
(version "2.6.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/marbl/Krona/releases/download/v"
version "/KronaTools-" version ".tar"))
(sha256
(base32
"1fj5mf6wbwz7v74n2safbw7fpw32fik19vf0wdbc2srn82i8fiwz"))))
(build-system perl-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
;; There is no configure or build steps.
(delete 'configure)
(replace 'build
;; Remove 'use lib' statements from scripts as PERL5LIB is set
;; correctly during installation.
(lambda _
(for-each
(lambda (executable)
(display executable)(display "\n")
(substitute* executable
(("use lib \\(`ktGetLibPath`\\);") "")))
(find-files "scripts/" ".*"))
#t))
;; Install script "install.pl" expects the build directory to remain
;; after installation, creating symlinks etc., so re-implement it
;; here.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
(perl (string-append (assoc-ref outputs "out")
"/lib/perl5/site_perl"))
(share (string-append
(assoc-ref outputs "out") "/share/krona-tools")))
(mkdir-p bin)
(for-each
(lambda (script)
(let* ((executable (string-append "scripts/" script ".pl")))
;; Prefix executables with 'kt' as install script does.
(copy-file executable (string-append bin "/kt" script))))
'("ClassifyBLAST"
"GetContigMagnitudes"
"GetTaxIDFromGI"
"ImportBLAST"
"ImportDiskUsage"
"ImportEC"
"ImportFCP"
"ImportGalaxy"
"ImportKrona"
"ImportMETAREP-BLAST"
"ImportMETAREP-EC"
"ImportMGRAST"
"ImportPhymmBL"
"ImportRDP"
"ImportRDPComparison"
"ImportTaxonomy"
"ImportText"
"ImportXML"))
(mkdir-p share)
(copy-recursively "data" (string-append share "/data"))
(copy-recursively "img" (string-append share "/img"))
(copy-recursively "taxonomy" (string-append share "/taxonomy"))
(substitute* '("lib/KronaTools.pm")
(("taxonomyDir = \".libPath/../taxonomy\"")
(string-append "taxonomyDir = \"" share "/taxonomy\"")))
(install-file "lib/KronaTools.pm" perl))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(path (getenv "PERL5LIB")))
(for-each
(lambda (executable)
(wrap-program executable
`("PERL5LIB" ":" prefix
(,(string-append out "/lib/perl5/site_perl")))))
(find-files (string-append out "/bin/") ".*"))))))))
(inputs
`(("perl" ,perl)))
(home-page "https://github.com/marbl/Krona/wiki")
(synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
(description
"Krona is a flexible tool for exploring the relative proportions of
hierarchical data, such as metagenomic classifications, using a radial,
space-filling display. It is implemented using HTML5 and JavaScript, allowing
charts to be explored locally or served over the Internet, requiring only a
current version of any major web browser.")
(license l:bsd-3)))
(define-public rapidjson
(package
(name "rapidjson")
@ -2964,13 +3060,13 @@ (define-public r-httpuv
(define-public r-jsonlite
(package
(name "r-jsonlite")
(version "0.9.19")
(version "0.9.20")
(source (origin
(method url-fetch)
(uri (cran-uri "jsonlite" version))
(sha256
(base32
"1hbdraj3xv2l2gs9f205j8z054ycy0bfdvwdhvpa9qlji588sz7g"))))
"08b2gifd81yzj0h4k7pqp2cc2r5lwsg3sxnssi6c96rgqvl4702n"))))
(build-system r-build-system)
(home-page "http://arxiv.org/abs/1403.2805")
(synopsis "Robust, high performance JSON parser and generator for R")

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;

View file

@ -8,6 +8,7 @@
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;

View file

@ -86,6 +86,17 @@ (define (generate-classpath inputs)
(find-files dir "\\.*jar$")))
inputs)) ":"))
(define* (unpack #:key source #:allow-other-keys)
"Unpack the jar archive SOURCE. When SOURCE is not a jar archive fall back
to the default GNU unpack strategy."
(if (string-suffix? ".jar" source)
(begin
(mkdir "src")
(with-directory-excursion "src"
(zero? (system* "jar" "-xf" source))))
;; Use GNU unpack strategy for things that aren't jar archives.
((assq-ref gnu:%standard-phases 'unpack) #:source source)))
(define* (configure #:key inputs outputs (jar-name #f)
#:allow-other-keys)
(when jar-name
@ -151,6 +162,7 @@ (define* (install #:key (make-flags '()) #:allow-other-keys)
(define %standard-phases
(modify-phases gnu:%standard-phases
(replace 'unpack unpack)
(replace 'configure configure)
(replace 'build build)
(replace 'check check)

View file

@ -426,6 +426,85 @@ (define (close-connection port)
(module-define! (resolve-module '(web client))
'shutdown (const #f))
;; XXX: Work around <http://bugs.gnu.org/23421>, fixed in Guile commit
;; 16050431f29d56f80c4a8253506fc851b8441840. Guile's date validation
;; procedure rejects dates in which the hour is not padded with a zero but
;; with whitespace.
(begin
(define-syntax string-match?
(lambda (x)
(syntax-case x ()
((_ str pat) (string? (syntax->datum #'pat))
(let ((p (syntax->datum #'pat)))
#`(let ((s str))
(and
(= (string-length s) #,(string-length p))
#,@(let lp ((i 0) (tests '()))
(if (< i (string-length p))
(let ((c (string-ref p i)))
(lp (1+ i)
(case c
((#\.) ; Whatever.
tests)
((#\d) ; Digit.
(cons #`(char-numeric? (string-ref s #,i))
tests))
((#\a) ; Alphabetic.
(cons #`(char-alphabetic? (string-ref s #,i))
tests))
(else ; Literal.
(cons #`(eqv? (string-ref s #,i) #,c)
tests)))))
tests)))))))))
(define (parse-rfc-822-date str space zone-offset)
(let ((parse-non-negative-integer (@@ (web http) parse-non-negative-integer))
(parse-month (@@ (web http) parse-month))
(bad-header (@@ (web http) bad-header)))
;; We could verify the day of the week but we don't.
(cond ((string-match? (substring str 0 space) "aaa, dd aaa dddd dd:dd:dd")
(let ((date (parse-non-negative-integer str 5 7))
(month (parse-month str 8 11))
(year (parse-non-negative-integer str 12 16))
(hour (parse-non-negative-integer str 17 19))
(minute (parse-non-negative-integer str 20 22))
(second (parse-non-negative-integer str 23 25)))
(make-date 0 second minute hour date month year zone-offset)))
((string-match? (substring str 0 space) "aaa, d aaa dddd dd:dd:dd")
(let ((date (parse-non-negative-integer str 5 6))
(month (parse-month str 7 10))
(year (parse-non-negative-integer str 11 15))
(hour (parse-non-negative-integer str 16 18))
(minute (parse-non-negative-integer str 19 21))
(second (parse-non-negative-integer str 22 24)))
(make-date 0 second minute hour date month year zone-offset)))
;; The next two clauses match dates that have a space instead of
;; a leading zero for hours, like " 8:49:37".
((string-match? (substring str 0 space) "aaa, dd aaa dddd d:dd:dd")
(let ((date (parse-non-negative-integer str 5 7))
(month (parse-month str 8 11))
(year (parse-non-negative-integer str 12 16))
(hour (parse-non-negative-integer str 18 19))
(minute (parse-non-negative-integer str 20 22))
(second (parse-non-negative-integer str 23 25)))
(make-date 0 second minute hour date month year zone-offset)))
((string-match? (substring str 0 space) "aaa, d aaa dddd d:dd:dd")
(let ((date (parse-non-negative-integer str 5 6))
(month (parse-month str 7 10))
(year (parse-non-negative-integer str 11 15))
(hour (parse-non-negative-integer str 17 18))
(minute (parse-non-negative-integer str 19 21))
(second (parse-non-negative-integer str 22 24)))
(make-date 0 second minute hour date month year zone-offset)))
(else
(bad-header 'date str) ; prevent tail call
#f))))
(module-set! (resolve-module '(web http))
'parse-rfc-822-date parse-rfc-822-date))
;; XXX: Work around <http://bugs.gnu.org/19840>, present in Guile
;; up to 2.0.11.
(unless (or (> (string->number (major-version)) 2)
@ -605,10 +684,22 @@ (define (maybe-expand-mirrors uri mirrors)
(else
(list uri))))
(define* (url-fetch url file #:key (mirrors '()))
(define* (url-fetch url file
#:key
(mirrors '()) (content-addressed-mirrors '())
(hashes '()))
"Fetch FILE from URL; URL may be either a single string, or a list of
string denoting alternate URLs for FILE. Return #f on failure, and FILE
on success."
on success.
When MIRRORS is defined, it must be an alist of mirrors; it is used to resolve
'mirror://' URIs.
HASHES must be a list of algorithm/hash pairs, where each algorithm is a
symbol such as 'sha256 and each hash is a bytevector.
CONTENT-ADDRESSED-MIRRORS must be a list of procedures that, given a hash
algorithm and a hash, return a URL where the specified data can be retrieved
or #f."
(define uri
(append-map (cut maybe-expand-mirrors <> mirrors)
(match url
@ -628,13 +719,21 @@ (define (fetch uri file)
uri)
#f)))
(define content-addressed-urls
(append-map (lambda (make-url)
(filter-map (match-lambda
((hash-algo . hash)
(make-url hash-algo hash)))
hashes))
content-addressed-mirrors))
;; Make this unbuffered so 'progress-proc' works as expected. _IOLBF means
;; '\n', not '\r', so it's not appropriate here.
(setvbuf (current-output-port) _IONBF)
(setvbuf (current-error-port) _IOLBF)
(let try ((uri uri))
(let try ((uri (append uri content-addressed-urls)))
(match uri
((uri tail ...)
(or (fetch uri file)

View file

@ -83,6 +83,28 @@ (define pattern
(put-u8 output (char->integer char))
result)))))
(define (rename-matching-files directory mapping)
"Apply MAPPING to the names of all the files in DIRECTORY, where MAPPING is
a list of store file name pairs."
(let* ((mapping (map (match-lambda
((source . target)
(cons (basename source) (basename target))))
mapping))
(matches (find-files directory
(lambda (file stat)
(assoc-ref mapping (basename file)))
#:directories? #t)))
;; XXX: This is not quite correct: if MAPPING contains "foo", and
;; DIRECTORY contains "bar/foo/foo", we first rename "bar/foo" and then
;; "bar/foo/foo" no longer exists so we fail. Oh well, surely that's good
;; enough!
(for-each (lambda (file)
(let ((target (assoc-ref mapping (basename file))))
(rename-file file
(string-append (dirname file) "/" target))))
matches)))
(define* (rewrite-directory directory output mapping
#:optional (store (%store-directory)))
"Copy DIRECTORY to OUTPUT, replacing strings according to MAPPING, a list of
@ -115,6 +137,8 @@ (define (rewrite-leaf file)
(replace-store-references input output mapping
store)
(chmod output (stat:perms stat))))))))
((directory)
(mkdir-p dest))
(else
(error "unsupported file type" stat)))))
@ -124,6 +148,8 @@ (define (rewrite-leaf file)
(umask #o022)
(n-par-for-each (parallel-job-count)
rewrite-leaf (find-files directory)))
rewrite-leaf (find-files directory (const #t)
#:directories? #t))
(rename-matching-files output mapping))
;;; graft.scm ends here

View file

@ -176,6 +176,11 @@ (define (fixed-output-derivation? drv)
#t)
(_ #f)))
(define (derivation-input<? input1 input2)
"Compare INPUT1 and INPUT2, two <derivation-input>."
(string<? (derivation-input-path input1)
(derivation-input-path input2)))
(define (derivation-input-output-paths input)
"Return the list of output paths corresponding to INPUT, a
<derivation-input>."
@ -190,6 +195,30 @@ (define (valid-derivation-input? store input)
(every (cut valid-path? store <>)
(derivation-input-output-paths input)))
(define (coalesce-duplicate-inputs inputs)
"Return a list of inputs, such that when INPUTS contains the same DRV twice,
they are coalesced, with their sub-derivations merged. This is needed because
Nix itself keeps only one of them."
(fold (lambda (input result)
(match input
(($ <derivation-input> path sub-drvs)
;; XXX: quadratic
(match (find (match-lambda
(($ <derivation-input> p s)
(string=? p path)))
result)
(#f
(cons input result))
((and dup ($ <derivation-input> _ sub-drvs2))
;; Merge DUP with INPUT.
(let ((sub-drvs (delete-duplicates
(append sub-drvs sub-drvs2))))
(cons (make-derivation-input path
(sort sub-drvs string<?))
(delq dup result))))))))
'()
inputs))
(define* (derivation-prerequisites drv #:optional (cut? (const #f)))
"Return the list of derivation-inputs required to build DRV, recursively.
@ -473,29 +502,6 @@ (define format simple-format)
(define (write-string-list lst)
(write-list lst write port))
(define (coalesce-duplicate-inputs inputs)
;; Return a list of inputs, such that when INPUTS contains the same DRV
;; twice, they are coalesced, with their sub-derivations merged. This is
;; needed because Nix itself keeps only one of them.
(fold (lambda (input result)
(match input
(($ <derivation-input> path sub-drvs)
;; XXX: quadratic
(match (find (match-lambda
(($ <derivation-input> p s)
(string=? p path)))
result)
(#f
(cons input result))
((and dup ($ <derivation-input> _ sub-drvs2))
;; Merge DUP with INPUT.
(let ((sub-drvs (delete-duplicates
(append sub-drvs sub-drvs2))))
(cons (make-derivation-input path sub-drvs)
(delq dup result))))))))
'()
inputs))
(define (write-output output port)
(match output
((name . ($ <derivation-output> path hash-algo hash recursive?))
@ -515,7 +521,7 @@ (define (write-input input port)
(display "(" port)
(write path port)
(display "," port)
(write-string-list (sort sub-drvs string<?))
(write-string-list sub-drvs)
(display ")" port))))
(define (write-env-var env-var port)
@ -527,35 +533,20 @@ (define (write-env-var env-var port)
(write value port)
(display ")" port))))
;; Note: lists are sorted alphabetically, to conform with the behavior of
;; C++ `std::map' in Nix itself.
;; Assume all the lists we are writing are already sorted.
(match drv
(($ <derivation> outputs inputs sources
system builder args env-vars)
(display "Derive(" port)
(write-list (sort outputs
(lambda (o1 o2)
(string<? (car o1) (car o2))))
write-output
port)
(write-list outputs write-output port)
(display "," port)
(write-list (sort (coalesce-duplicate-inputs inputs)
(lambda (i1 i2)
(string<? (derivation-input-path i1)
(derivation-input-path i2))))
write-input
port)
(write-list inputs write-input port)
(display "," port)
(write-string-list (sort sources string<?))
(write-string-list sources)
(format port ",~s,~s," system builder)
(write-string-list args)
(display "," port)
(write-list (sort env-vars
(lambda (e1 e2)
(string<? (car e1) (car e2))))
write-env-var
port)
(write-list env-vars write-env-var port)
(display ")" port))))
(define derivation->string
@ -653,7 +644,10 @@ (define derivation-hash ; `hashDerivationModulo' in derivations.cc
(let ((hash (derivation-path->base16-hash path)))
(make-derivation-input hash sub-drvs))))
inputs))
(drv (make-derivation outputs inputs sources
(drv (make-derivation outputs
(sort (coalesce-duplicate-inputs inputs)
derivation-input<?)
sources
system builder args env-vars
#f)))
@ -820,30 +814,38 @@ (define (set-file-name drv file)
(make-derivation outputs inputs sources system builder
args env-vars file))))
(define input->derivation-input
(match-lambda
(((? derivation? drv))
(make-derivation-input (derivation-file-name drv) '("out")))
(((? derivation? drv) sub-drvs ...)
(make-derivation-input (derivation-file-name drv) sub-drvs))
(((? direct-store-path? input))
(make-derivation-input input '("out")))
(((? direct-store-path? input) sub-drvs ...)
(make-derivation-input input sub-drvs))
((input . _)
(let ((path (add-to-store store (basename input)
#t "sha256" input)))
(make-derivation-input path '())))))
;; Note: lists are sorted alphabetically, to conform with the behavior of
;; C++ `std::map' in Nix itself.
(let* ((outputs (map (lambda (name)
;; Return outputs with an empty path.
(cons name
(make-derivation-output "" hash-algo
hash recursive?)))
outputs))
(inputs (map (match-lambda
(((? derivation? drv))
(make-derivation-input (derivation-file-name drv)
'("out")))
(((? derivation? drv) sub-drvs ...)
(make-derivation-input (derivation-file-name drv)
sub-drvs))
(((? direct-store-path? input))
(make-derivation-input input '("out")))
(((? direct-store-path? input) sub-drvs ...)
(make-derivation-input input sub-drvs))
((input . _)
(let ((path (add-to-store store
(basename input)
#t "sha256" input)))
(make-derivation-input path '()))))
(delete-duplicates inputs)))
(env-vars (env-vars-with-empty-outputs (user+system-env-vars)))
(sort outputs string<?)))
(inputs (sort (coalesce-duplicate-inputs
(map input->derivation-input
(delete-duplicates inputs)))
derivation-input<?))
(env-vars (sort (env-vars-with-empty-outputs
(user+system-env-vars))
(lambda (e1 e2)
(string<? (car e1) (car e2)))))
(drv-masked (make-derivation outputs
(filter (compose derivation-path?
derivation-input-path)
@ -858,8 +860,7 @@ (define (set-file-name drv file)
(let ((file (add-text-to-store store (string-append name ".drv")
(derivation->string drv)
(map derivation-input-path
inputs))))
(map derivation-input-path inputs))))
(set-file-name drv file))))
(define* (map-derivation store drv mapping

View file

@ -202,7 +202,8 @@ (define %mirrors
(debian
"http://ftp.de.debian.org/debian/"
"http://ftp.fr.debian.org/debian/"
"http://ftp.debian.org/debian/"))))
"http://ftp.debian.org/debian/"
"http://archive.debian.org/debian/"))))
(define %mirror-file
;; Copy of the list of mirrors to a file. This allows us to keep a single
@ -210,6 +211,22 @@ (define %mirror-file
;; 'object->string'.
(plain-file "mirrors" (object->string %mirrors)))
(define %content-addressed-mirrors
;; List of content-addressed mirrors. Each mirror is represented as a
;; procedure that takes an algorithm (symbol) and a hash (bytevector), and
;; returns a URL or #f.
;; TODO: Add more.
'(list (lambda (algo hash)
;; 'tarballs.nixos.org' supports several algorithms.
(string-append "http://tarballs.nixos.org/"
(symbol->string algo) "/"
(bytevector->nix-base32-string hash)))))
(define %content-addressed-mirror-file
;; Content-addressed mirrors stored in a file.
(plain-file "content-addressed-mirrors"
(object->string %content-addressed-mirrors)))
(define (gnutls-package)
"Return the default GnuTLS package."
(let ((module (resolve-interface '(gnu packages tls))))
@ -258,12 +275,21 @@ (define builder
%load-path)))
#~#t)
(use-modules (guix build download))
(use-modules (guix build download)
(guix base32))
(url-fetch (call-with-input-string (getenv "guix download url")
read)
#$output
#:mirrors (call-with-input-file #$%mirror-file read))))
(let ((value-from-environment (lambda (variable)
(call-with-input-string
(getenv variable)
read))))
(url-fetch (value-from-environment "guix download url")
#$output
#:mirrors (call-with-input-file #$%mirror-file read)
;; Content-addressed mirrors.
#:hashes (value-from-environment "guix download hashes")
#:content-addressed-mirrors
(primitive-load #$%content-addressed-mirror-file)))))
(let ((uri (and (string? url) (string->uri url))))
(if (or (and (string? url) (not uri))
@ -278,14 +304,17 @@ (define builder
#:hash hash
#:modules '((guix build download)
(guix build utils)
(guix ftp-client))
(guix ftp-client)
(guix base32))
;; Use environment variables and a fixed script
;; name so there's only one script in store for
;; all the downloads.
#:script-name "download"
#:env-vars
`(("guix download url" . ,(object->string url)))
`(("guix download url" . ,(object->string url))
("guix download hashes"
. ,(object->string `((,hash-algo . ,hash)))))
;; Honor the user's proxy settings.
#:leaked-env-vars '("http_proxy" "https_proxy")

View file

@ -65,7 +65,7 @@ (define-record-type* <node-type> node-type make-node-type
(identifier node-type-identifier) ;node -> M identifier
(label node-type-label) ;node -> string
(edges node-type-edges) ;node -> M list of nodes
(convert node-type-convert ;package -> M list of nodes
(convert node-type-convert ;any -> M list of nodes
(default (lift1 list %store-monad)))
(name node-type-name) ;string
(description node-type-description)) ;string

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
@ -111,11 +111,11 @@ (define* (maybe-inputs package-inputs #:optional (type 'inputs))
(define %cran-url "http://cran.r-project.org/web/packages/")
(define %bioconductor-url "http://bioconductor.org/packages/")
;; The latest Bioconductor release is 3.2. Bioconductor packages should be
;; The latest Bioconductor release is 3.3. Bioconductor packages should be
;; updated together.
(define %bioconductor-svn-url
(string-append "https://readonly:readonly@"
"hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_2/"
"hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_3/"
"madman/Rpacks/"))
@ -267,7 +267,7 @@ (define meta
(upstream-source
(package (package-name package))
(version version)
(urls (bioconductor-uri upstream-name version))))))
(urls (list (bioconductor-uri upstream-name version)))))))
(define (cran-package? package)
"Return true if PACKAGE is an R package from CRAN."

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -55,8 +55,8 @@ (define (preferred-archive-type release)
(define* (gnu-package->sexp package release
#:key (key-download 'interactive))
"Return the 'package' sexp for the RELEASE (a <gnu-release>) of PACKAGE (a
<gnu-package>). Use KEY-DOWNLOAD as the OpenPGP key download policy (see
'download-tarball' for details.)"
<gnu-package>), or #f upon failure. Use KEY-DOWNLOAD as the OpenPGP key
download policy (see 'download-tarball' for details.)"
(define name
(gnu-package-name package))
@ -79,25 +79,29 @@ (define sig-url
(find (cute string-suffix? (string-append archive-type ".sig") <>)
(upstream-source-signature-urls release)))
(let ((tarball (with-store store
(download-tarball store url sig-url
#:key-download key-download))))
`(package
(name ,name)
(version ,(upstream-source-version release))
(source (origin
(method url-fetch)
(uri (string-append ,url-base version
,(string-append ".tar." archive-type)))
(sha256
(base32
,(bytevector->nix-base32-string (file-sha256 tarball))))))
(build-system gnu-build-system)
(synopsis ,(gnu-package-doc-summary package))
(description ,(gnu-package-doc-description package))
(home-page ,(match (gnu-package-doc-urls package)
((head . tail) (qualified-url head))))
(license find-by-yourself!))))
(with-store store
(match (download-tarball store url sig-url
#:key-download key-download)
((? string? tarball)
`(package
(name ,name)
(version ,(upstream-source-version release))
(source (origin
(method url-fetch)
(uri (string-append ,url-base version
,(string-append ".tar." archive-type)))
(sha256
(base32
,(bytevector->nix-base32-string
(file-sha256 tarball))))))
(build-system gnu-build-system)
(synopsis ,(gnu-package-doc-summary package))
(description ,(gnu-package-doc-description package))
(home-page ,(match (gnu-package-doc-urls package)
((head . tail) (qualified-url head))))
(license find-by-yourself!)))
(#f ;failure to download or authenticate the tarball
#f))))
(define* (gnu->guix-package name
#:key (key-download 'interactive))

View file

@ -65,9 +65,13 @@ (define* (log-url store file #:key (base-urls %default-log-urls))
found. Return #f if no build log was found."
(define (valid-url? url)
;; Probe URL and return #t if it is accessible.
(guard (c ((http-get-error? c) #f))
(close-port (http-fetch url #:buffered? #f))
#t))
(catch 'getaddrinfo-error
(lambda ()
(guard (c ((http-get-error? c) #f))
(close-port (http-fetch url #:buffered? #f))
#t))
(lambda _
#f)))
(define (find-url file)
(let ((base (basename file)))
@ -681,7 +685,8 @@ (define quiet?
(_ #f))
opts)))
(unless (assoc-ref opts 'log-file?)
(unless (or (assoc-ref opts 'log-file?)
(assoc-ref opts 'derivations-only?))
(show-what-to-build store drv
#:use-substitutes?
(assoc-ref opts 'substitutes?)

View file

@ -33,6 +33,7 @@ (define-module (guix scripts graph)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:export (%package-node-type
@ -70,11 +71,27 @@ (define (package-node-edges package)
;; Filter out origins and other non-package dependencies.
(filter package? packages))))
(define assert-package
(match-lambda
((? package? package)
package)
(x
(raise
(condition
(&message
(message (format #f (_ "~a: invalid argument (package name expected)")
x))))))))
(define nodes-from-package
;; The default conversion method.
(lift1 (compose list assert-package) %store-monad))
(define %package-node-type
;; Type for the traversal of package nodes.
(node-type
(name "package")
(description "the DAG of packages, excluding implicit inputs")
(convert nodes-from-package)
;; We use package addresses as unique identifiers. This generally works
;; well, but for generated package objects, we could end up with two
@ -131,6 +148,7 @@ (define %bag-node-type
(node-type
(name "bag")
(description "the DAG of packages, including implicit inputs")
(convert nodes-from-package)
(identifier bag-node-identifier)
(label node-full-name)
(edges (lift1 (compose (cut filter package? <>) bag-node-edges)
@ -140,6 +158,7 @@ (define %bag-with-origins-node-type
(node-type
(name "bag-with-origins")
(description "the DAG of packages and origins, including implicit inputs")
(convert nodes-from-package)
(identifier bag-node-identifier)
(label node-full-name)
(edges (lift1 (lambda (thing)
@ -170,6 +189,7 @@ (define %bag-emerged-node-type
(node-type
(name "bag-emerged")
(description "same as 'bag', but without the bootstrap nodes")
(convert nodes-from-package)
(identifier bag-node-identifier)
(label node-full-name)
(edges (lift1 (compose (cut filter package? <>)
@ -215,10 +235,19 @@ (define %derivation-node-type
(node-type
(name "derivation")
(description "the DAG of derivations")
(convert (lambda (package)
(with-monad %store-monad
(>>= (package->derivation package)
(lift1 list %store-monad)))))
(convert (match-lambda
((? package? package)
(with-monad %store-monad
(>>= (package->derivation package)
(lift1 list %store-monad))))
((? derivation-path? item)
(mbegin %store-monad
((store-lift add-temp-root) item)
(return (list (file->derivation item)))))
(x
(raise
(condition (&message (message "unsupported argument for \
derivation graph")))))))
(identifier (lift1 derivation-node-identifier %store-monad))
(label derivation-node-label)
(edges (lift1 derivation-dependencies %store-monad))))
@ -246,12 +275,20 @@ (define %reference-node-type
(node-type
(name "references")
(description "the DAG of run-time dependencies (store references)")
(convert (lambda (package)
;; Return the output file names of PACKAGE.
(mlet %store-monad ((drv (package->derivation package)))
(return (match (derivation->output-paths drv)
(((_ . file-names) ...)
file-names))))))
(convert (match-lambda
((? package? package)
;; Return the output file names of PACKAGE.
(mlet %store-monad ((drv (package->derivation package)))
(return (match (derivation->output-paths drv)
(((_ . file-names) ...)
file-names)))))
((? store-path? item)
(with-monad %store-monad
(return (list item))))
(x
(raise
(condition (&message (message "unsupported argument for \
reference graph")))))))
(identifier (lift1 identity %store-monad))
(label store-path-package-name)
(edges references*)))
@ -348,7 +385,9 @@ (define (guix-graph . args)
(alist-cons 'argument arg result))
%default-options))
(type (assoc-ref opts 'node-type))
(packages (filter-map (match-lambda
(items (filter-map (match-lambda
(('argument . (? store-path? item))
item)
(('argument . spec)
(specification->package spec))
(('expression . exp)
@ -356,15 +395,18 @@ (define (guix-graph . args)
(_ #f))
opts)))
(with-store store
(run-with-store store
;; XXX: Since grafting can trigger unsolicited builds, disable it.
(mlet %store-monad ((_ (set-grafting #f))
(nodes (mapm %store-monad
(node-type-convert type)
packages)))
(export-graph (concatenate nodes)
(current-output-port)
#:node-type type))))))
;; Ask for absolute file names so that .drv file names passed from the
;; user to 'read-derivation' are absolute when it returns.
(with-fluids ((%file-port-name-canonicalization 'absolute))
(run-with-store store
;; XXX: Since grafting can trigger unsolicited builds, disable it.
(mlet %store-monad ((_ (set-grafting #f))
(nodes (mapm %store-monad
(node-type-convert type)
items)))
(export-graph (concatenate nodes)
(current-output-port)
#:node-type type)))))))
#t)
;;; graph.scm ends here

View file

@ -107,7 +107,10 @@ (define (guix-import . args)
(show-version-and-exit "guix import"))
((importer args ...)
(if (member importer importers)
(let ((expr (apply (resolve-importer importer) args)))
(pretty-print expr (newline-rewriting-port (current-output-port))))
(format (current-error-port)
(_ "guix import: invalid importer~%"))))))
(match (apply (resolve-importer importer) args)
((and expr ('package _ ...))
(pretty-print expr (newline-rewriting-port
(current-output-port))))
(x
(leave (_ "'~a' import failed~%") importer)))
(leave (_ "~a: invalid importer~%") importer)))))

View file

@ -600,15 +600,6 @@ (define (patch-file-name patch)
((? origin?)
(and=> (origin-actual-file-name patch) basename))))
(define (package-name->cpe-name name)
"Do a basic conversion of NAME, a Guix package name, to the corresponding
Common Platform Enumeration (CPE) name."
(match name
("icecat" "firefox") ;or "firefox_esr"
("grub" "grub2")
;; TODO: Add more.
(_ name)))
(define (current-vulnerabilities*)
"Like 'current-vulnerabilities', but return the empty list upon networking
or HTTP errors. This allows network-less operation and makes problems with
@ -635,9 +626,15 @@ (define package-vulnerabilities
(current-vulnerabilities*)))))
(lambda (package)
"Return a list of vulnerabilities affecting PACKAGE."
((force lookup)
(package-name->cpe-name (package-name package))
(package-version package)))))
;; First we retrieve the Common Platform Enumeration (CPE) name and
;; version for PACKAGE, then we can pass them to LOOKUP.
(let ((name (or (assoc-ref (package-properties package)
'cpe-name)
(package-name package)))
(version (or (assoc-ref (package-properties package)
'cpe-version)
(package-version package))))
((force lookup) name version)))))
(define (check-vulnerabilities package)
"Check for known vulnerabilities for PACKAGE."

View file

@ -440,9 +440,15 @@ (define (obsolete? date now ttl)
(define (narinfo-cache-file cache-url path)
"Return the name of the local file that contains an entry for PATH. The
entry is stored in a sub-directory specific to CACHE-URL."
(string-append %narinfo-cache-directory "/"
(bytevector->base32-string (sha256 (string->utf8 cache-url)))
"/" (store-path-hash-part path)))
;; The daemon does not sanitize its input, so PATH could be something like
;; "/gnu/store/foo". Gracefully handle that.
(match (store-path-hash-part path)
(#f
(leave (_ "'~a' does not name a store item~%") path))
((? string? hash-part)
(string-append %narinfo-cache-directory "/"
(bytevector->base32-string (sha256 (string->utf8 cache-url)))
"/" hash-part))))
(define (cached-narinfo cache-url path)
"Check locally if we have valid info about PATH coming from CACHE-URL.

View file

@ -615,7 +615,7 @@ (define-operation (valid-path? (string path))
boolean)
(define-operation (query-path-hash (store-path path))
"Return the SHA256 hash of PATH as a bytevector."
"Return the SHA256 hash of the nar serialization of PATH as a bytevector."
base16)
(define hash-part->path

View file

@ -143,8 +143,9 @@ (define* (download-tarball store url signature-url
#:key (key-download 'interactive))
"Download the tarball at URL to the store; check its OpenPGP signature at
SIGNATURE-URL, unless SIGNATURE-URL is false. On success, return the tarball
file name. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys;
allowed values: 'interactive' (default), 'always', and 'never'."
file name; return #f on failure (network failure or authentication failure).
KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed
values: 'interactive' (default), 'always', and 'never'."
(let ((tarball (download-to-store store url)))
(if (not signature-url)
tarball

View file

@ -367,6 +367,33 @@ (define prefix-len (string-length dir))
(and (eq? 'one (call-with-input-file one read))
(eq? 'two (call-with-input-file two read)))))))
(test-assert "read-derivation vs. derivation"
;; Make sure 'derivation' and 'read-derivation' return objects that are
;; identical.
(let* ((sources (unfold (cut >= <> 10)
(lambda (n)
(add-text-to-store %store
(format #f "input~a" n)
(random-text)))
1+
0))
(inputs (map (lambda (file)
(derivation %store "derivation-input"
%bash '()
#:inputs `((,%bash) (,file))))
sources))
(builder (add-text-to-store %store "builder.sh"
"echo one > $one ; echo two > $two"
'()))
(drv (derivation %store "derivation"
%bash `(,builder)
#:inputs `((,%bash) (,builder)
,@(map list (append sources inputs)))
#:outputs '("two" "one")))
(drv* (call-with-input-file (derivation-file-name drv)
read-derivation)))
(equal? drv* drv)))
(test-assert "multiple-output derivation, derivation-path->output-path"
(let* ((builder (add-text-to-store %store "builder.sh"
"echo one > $out ; echo two > $second"

View file

@ -127,6 +127,30 @@ (define %mkdir
(list one two dep)
(references %store dep)))))))
(test-assert "graft-derivation, preserve empty directories"
(run-with-store %store
(mlet* %store-monad ((fake (text-file "bash" "Fake bash."))
(graft -> (graft
(origin %bash)
(replacement fake)))
(drv (gexp->derivation
"to-graft"
#~(begin
(use-modules (guix build utils))
(mkdir-p (string-append #$output
"/a/b/c/d"))
(symlink #$%bash
(string-append #$output
"/bash")))
#:modules '((guix build utils))))
(grafted ((store-lift graft-derivation) drv
(list graft)))
(_ (built-derivations (list grafted)))
(out -> (derivation->output-path grafted)))
(return (and (string=? (readlink (string-append out "/bash"))
fake)
(file-is-directory? (string-append out "/a/b/c/d")))))))
(test-assert "graft-derivation, no dependencies on grafted output"
(run-with-store %store
(mlet* %store-monad ((fake (text-file "bash" "Fake bash."))
@ -158,4 +182,21 @@ (define %mkdir
(and (string=? (readlink one) repl)
(string=? (readlink two) one))))))
(test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132>
(let* ((build `(begin
(use-modules (guix build utils))
(mkdir-p (string-append (assoc-ref %outputs "out") "/"
(assoc-ref %build-inputs "in")))))
(orig (build-expression->derivation %store "thing-to-graft" build
#:modules '((guix build utils))
#:inputs `(("in" ,%bash))))
(repl (add-text-to-store %store "bash" "fake bash"))
(grafted (graft-derivation %store orig
(list (graft
(origin %bash)
(replacement repl))))))
(and (build-derivations %store (list grafted))
(let ((out (derivation->output-path grafted)))
(file-is-directory? (string-append out "/" repl))))))
(test-end)

View file

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
#
# This file is part of GNU Guix.
#
@ -20,6 +20,10 @@
# Test the 'guix graph' command-line utility.
#
tmpfile1="t-guix-graph1-$$"
tmpfile2="t-guix-graph2-$$"
trap 'rm -f "$tmpfile1" "$tmpfile2"' EXIT
guix graph --version
for package in guile-bootstrap coreutils python
@ -37,3 +41,15 @@ guix graph -e '(@ (gnu packages bootstrap) %bootstrap-guile)' \
| grep guile-bootstrap
if guix graph -e +; then false; else true; fi
# Try passing store file names.
guix graph -t references guile-bootstrap > "$tmpfile1"
guix graph -t references `guix build guile-bootstrap` > "$tmpfile2"
cmp "$tmpfile1" "$tmpfile2"
# XXX: Filter the file names in the graph to work around the fact that we get
# a mixture of relative and absolute file names.
guix graph -t derivation coreutils > "$tmpfile1"
guix graph -t derivation `guix build -d coreutils` > "$tmpfile2"
cmp "$tmpfile1" "$tmpfile2"