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 @@ identify enrichments with functional annotations of the genome.")
(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 @@ identify enrichments with functional annotations of the genome.")
(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 @@ particular, reads spanning multiple exons.")
(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 @@ particular, reads spanning multiple exons.")
"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 @@ of these reads to align data quickly through a hash-based indexing scheme.")
(define-public sortmerna
(package
(name "sortmerna")
(version "2.1")
(version "2.1b")
(source
(origin
(method url-fetch)
@ -3580,7 +3565,7 @@ of these reads to align data quickly through a hash-based indexing scheme.")
(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 @@ of these reads to align data quickly through a hash-based indexing scheme.")
(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 @@ data in the form of VCF files.")
(define-public vsearch
(package
(name "vsearch")
(version "1.10.0")
(version "1.11.1")
(source
(origin
(method url-fetch)
@ -3841,7 +3828,7 @@ data in the form of VCF files.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1i3bad7gnn2y3a1yfixzshd99xdkjc8w5bxzgifpysc6jiljwvb5"))
"1pdvm3znjgq3zryy240yj9gc0bf1z31k6vf9jxrxgdgkvzgw85c7"))
(modules '((guix build utils)))
(snippet
'(begin
@ -4018,13 +4005,13 @@ barplots or heatmaps.")
(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 @@ packages.")
(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 @@ abnormal copy number.")
(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 @@ S4Vectors package itself.")
(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 @@ possible.")
(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 @@ names in their natural, rather than lexicographic, order.")
(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 @@ coding changes and predict coding outcomes.")
(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 @@ coding changes and predict coding outcomes.")
(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 @@ manipulating genomic intervals and variables defined along a genome.")
(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 @@ on Bioconductor or which replace R functions.")
(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 @@ annotation data packages using SQLite data storage.")
(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 @@ powerful online queries from gene annotation to database mining.")
(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 @@ objects.")
(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 @@ biological sequences or sets of sequences.")
(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 @@ files.")
(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 @@ samples.")
(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 @@ alignments.")
(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 @@ as well as query and modify the browser state, such as the current viewport.")
(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 @@ information about the latest version of the Gene Ontologies.")
(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 @@ information about the latest version of the Gene Ontologies.")
(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 @@ information about the latest version of the Gene Ontologies.")
("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 @@ dependencies between GO terms can be implemented and applied.")
(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 @@ genome data packages and support for efficient SNP representation.")
(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 @@ microarray data, using nearest neighbor averaging.")
(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 @@ reference point and sorted by a user defined feature.")
(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 @@ annotations for the genome of the model mouse Mus musculus.")
(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 @@ Biostrings objects.")
(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 @@ two-dimensional genome scans.")
(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 @@ two-dimensional genome scans.")
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-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 @@
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-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 @@
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 @@ as a drop-in replacement of MySQL.")
(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 @@ is in the public domain.")
(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 @@ valid SQL query.")
(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 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live
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 @@ identifiers in the MIT-Scheme documentation.")
(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 @@ to recognize a name like \"RFC 1234\". This package enhances ffap so
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 @@
#: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 @@ collectively by the network. Bitcoin Core is the reference implementation
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 @@ freedesktop.org project.")
(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 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(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 @@ applications, X servers (rootless or fullscreen) or other display servers.")
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 @@ interfaces, based on the useradd, usermod and userdel commands.")
(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 @@ interfaces, based on the useradd, usermod and userdel commands.")
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 @@ interfaces, based on the useradd, usermod and userdel commands.")
(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 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
(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 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
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-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 @@ archive on a per-file basis.")
(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 @@ match, cannon keep, and grave-itation pit.")
(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 @@ match, cannon keep, and grave-itation pit.")
(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 @@ match, cannon keep, and grave-itation pit.")
(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 @@ match, cannon keep, and grave-itation pit.")
(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 @@ as the 'native-search-paths' field."
(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 @@ as the 'native-search-paths' field."
(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 @@
"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 @@ formats. GD is commonly used to generate charts, graphics, thumbnails, and
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 @@ and XMP metadata of images in various formats.")
(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 @@ and XMP metadata of images in various formats.")
(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 @@
(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 @@
(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 @@
#: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 @@ Desktop. It is designed to be as simple as possible and has some unique
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 @@ database is translated at Transifex.")
("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 @@ specified duration and save it as a GIF encoded animated image file.")
"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-public gnu-pw-mgr
(package
(name "gnu-pw-mgr")
(version "1.6")
(version "2.0")
(source
(origin
(method url-fetch)
@ -37,7 +38,7 @@
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 @@ interface. It is fast, feature rich, easy to configure, and easy to use.")
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 @@ standards.")
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 @@ visual effects work for film.")
"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 @@ visual effects work for film.")
`(("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 @@ visual effects work for film.")
("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 @@ then goes on to load the rest of the operating system. As a multiboot
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 @@
#: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 @@ Redmond95 and ThinIce.")
"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 @@ See http://minikanren.org/ for more on miniKanren generally.")
(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 @@
(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 @@
(("/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-public gnumach-headers
(package
(name "gnumach-headers")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -40,7 +40,7 @@
version ".tar.gz"))
(sha256
(base32
"1m7xwsrv6x6gk9xi5phs104rdn9q3lr63p348vyv0dzd6r3zyncb"))))
"1vd0bykshf6ilr55792b5lf6yd5ywlkp1wqz00dcsx7fq3rfadz2"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-replace
@ -66,7 +66,7 @@
(define-public mig
(package
(name "mig")
(version "1.6")
(version "1.7")
(source
(origin
(method url-fetch)
@ -74,7 +74,7 @@
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 @@ communication.")
(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 @@ error-resilience, a Java-viewer for j2k-images, ...")
(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 @@ error-resilience, a Java-viewer for j2k-images, ...")
("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 @@ more modular, simple, and flexible.")
(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-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 @@
(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 @@
("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-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 @@
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 @@
"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 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(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 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(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 @@ It has been modified to remove all non-free binary blobs.")
(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 @@ configuration and monitoring interfaces.")
(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 @@ configuration and monitoring interfaces.")
`(#: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 @@ compliance.")
(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 @@ compliance.")
"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 @@ MPEG-2 and audio over Linux IEEE 1394.")
(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 @@ MPEG-2 and audio over Linux IEEE 1394.")
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 @@ system calls, important for the performance of databases and other advanced
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 @@ and copy/paste text in the console and in xterm.")
(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 @@ and copy/paste text in the console and in xterm.")
"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 @@ pre-configured) fan level. It requires a working @code{thinkpad_acpi} or any
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 @@ can read the same mailbox from multiple computers. It supports IMAP as REMOTE
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 @@ repository and Maildir/IMAP as LOCAL repository.")
(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 @@ repository and Maildir/IMAP as LOCAL repository.")
("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 @@
#: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 @@
#: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 @@ online as well as original implementations of various other algorithms.")
(define-public octave
(package
(name "octave")
(version "4.0.0")
(version "4.0.2")
(source
(origin
(method url-fetch)
@ -591,7 +595,7 @@ online as well as original implementations of various other algorithms.")
version ".tar.gz"))
(sha256
(base32
"101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc"))))
"1hdxap3j88rpqjimnfhinym6z73wdi5dfa6fv85c13r1dk9qzk9r"))))
(build-system gnu-build-system)
(inputs
`(("lapack" ,lapack)
@ -602,6 +606,7 @@ online as well as original implementations of various other algorithms.")
("arpack" ,arpack-ng)
("curl" ,curl)
("pcre" ,pcre)
("cyrus-sasl" ,cyrus-sasl)
("fltk" ,fltk)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
@ -609,6 +614,7 @@ online as well as original implementations of various other algorithms.")
("libxft" ,libxft)
("mesa" ,mesa)
("glu" ,glu)
("openssl" ,openssl)
("zlib" ,zlib)))
(native-inputs
`(("gfortran" ,gfortran)
@ -626,9 +632,10 @@ online as well as original implementations of various other algorithms.")
("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 @@ script files.")
("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 @@ point numbers.")
(define-public wxmaxima
(package
(name "wxmaxima")
(version "15.04.0")
(version "16.04.2")
(source
(origin
(method url-fetch)
@ -1596,7 +1606,7 @@ point numbers.")
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1fm47ah4aw5qdjqhkz67w5fwhy8yfffa5z896crp0d3hk2bh4180"))))
"1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n"))))
(build-system gnu-build-system)
(inputs
`(("wxwidgets" ,wxwidgets)
@ -1631,14 +1641,14 @@ full text searching.")
(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 @@ associated functions (eg. contiguous and non-contiguous submatrix views).")
(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 @@ in finite element programs.")
;; ("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 @@ more.")
(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-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 @@ the Nix package manager.")
;;
;; 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 @@
#: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 @@ colors, styles, options and details.")
`(("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 @@ colors, styles, options and details.")
("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 @@ colors, styles, options and details.")
(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 @@
#: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 @@ packages; exception-based error handling; and very high level dynamic
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 @@ data types.")
(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 @@ datetime module, available in Python 2.3+.")
(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 @@ datetime module, available in Python 2.3+.")
`(("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 @@ structures designed to make working with structured (tabular,
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 @@ responses, rather than doing any computation.")
(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 @@ responses, rather than doing any computation.")
(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 @@ respectively.")
(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-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 @@ contain over 620 classes.")
(define-public qtkeychain
(package
(name "qtkeychain")
(version "0.5.0")
(version "0.6.2")
(source
(origin
(method url-fetch)
@ -513,7 +513,7 @@ contain over 620 classes.")
"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 @@
#: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 @@ procedures, embedded in the programming language Scheme, and intended to
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 @@ Munsell colour system.")
(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 @@ evaluation (NSE) in R.")
(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 @@ R/DBMS implementations.")
(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 @@ for template use among CRAN packages.")
(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 @@ adapted for other output formats, such as HTML or LaTeX.")
(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 @@ There is also a Shiny app as a user interface in this package.")
(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 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(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 @@ R packages that praise their users.")
(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 @@ collation, and NAMESPACE files.")
(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 @@ functions make it easy to control additional request components.")
(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 @@ informative error messages when it's not available.")
(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 @@ disk (or a connection).")
(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 @@ well as additional utilities such as panel and axis annotation functions.")
(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 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
(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 @@ persistent (on the file system).")
(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 @@ t-probabilities, quantiles, random deviates and densities.")
(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 @@ It uses and relies on grid graphics and formal (S4) classes and methods.")
(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 @@ directly from R. Once uploaded to a plotly account, plotly graphs (and the
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 @@
#: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 @@ name comes from: \"The antidote against people who send Microsoft Word files
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 @@ security, and applying best practice development processes.")
(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 @@ security, and applying best practice development processes.")
(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 @@ security, and applying best practice development processes.")
(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 @@ security, and applying best practice development processes.")
(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-public tmux
(package
(name "tmux")
(version "2.1")
(version "2.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -36,7 +37,7 @@
version "/tmux-" version ".tar.gz"))
(sha256
(base32
"0xk1mylsb08sf0w597mdgj9s6hxxjvjvjd6bngpjvvxwyixlwmii"))))
"1r0riry5vw604hc21087ffbkqgr6j4ia1rrsivz2k6grchdm8a5w"))))
(build-system gnu-build-system)
(inputs
`(("libevent" ,libevent)

View File

@ -265,6 +265,7 @@ as well as the classic centralized workflow.")
;; 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 @@ command.")))
(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 @@ command.")))
(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 @@
#: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 @@ easily construct JSON objects in C, output them as JSON formatted strings and
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 @@ particularly easy to create complete web applications using httpuv alone.")
(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 @@ 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 @@ repack them. This is necessary to ensure that archives are reproducible."
(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 @@ port if PORT is a TLS session record 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 @@ Return a list of URIs."
(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 @@ on success."
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 @@ writing the result to OUTPUT."
(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 @@ file name pairs."
(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 @@ file name pairs."
(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 @@ download with a fixed hash (aka. `fetchurl')."
#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 @@ the store."
(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 @@ that form."
(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 @@ that form."
(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 @@ that form."
(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 @@ derivation at FILE."
(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 @@ output should not be used."
(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 @@ output should not be used."
(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 @@
(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 @@
;; '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 @@ in the store."
%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 @@ in the store."
#: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 @@
(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 @@ package definition."
(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 @@ s-expression corresponding to that package, or #f on failure."
(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* (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 @@
(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 @@
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 @@ needed."
(_ #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 @@
#: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 @@ name."
;; 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 @@ Dependencies may include packages, origin, and file names."
(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 @@ Dependencies may include packages, origin, and file names."
(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 @@ GNU-BUILD-SYSTEM have zero dependencies."
(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 @@ a plain store file."
(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 @@ substitutes."
(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 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"))
(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 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"))
(_ #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 @@ Run IMPORTER with ARGS.\n"))
(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 @@ be determined."
((? 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 @@ from ~s: ~a (~s)~%")
(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 @@ the cache STR originates form."
(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 @@ store directory (/gnu/store)."
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 @@ no update is needed or known."
#: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 @@
(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 @@
(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 @@
(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"