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> <jgrant@parenthetical.io>
Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com> Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com>
Joshua Grant <tadni@riseup.net> <youlysses@riseup.net> Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
Kei Kebreau <kei@openmailbox.org>
Leo Famulari <leo@famulari.name> <lfamular@gmail.com> Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr> Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org> 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)" \ $(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \
"$(top_srcdir)/build-aux/hydra/evaluate.scm" \ "$(top_srcdir)/build-aux/hydra/evaluate.scm" \
"$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp" "$(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: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go
.PHONY: assert-no-store-file-names assert-binaries-available .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., where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
@code{CVE-2015-7554}. @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 @item formatting
Warn about obvious source code formatting issues: trailing white space, Warn about obvious source code formatting issues: trailing white space,
use of tabulations, etc. 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 the above representation, many additional nodes are visible, including
build scripts, patches, Guile modules, etc. 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 @end table
All the types above correspond to @emph{build-time dependencies}. The 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 If the given package output is not available in the store, @command{guix
graph} attempts to obtain dependency information from substitutes. 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 @end table
The available options are the following: The available options are the following:

View File

@ -4,7 +4,7 @@
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> # 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. # This file is part of GNU Guix.
# #
@ -188,6 +188,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/lego.scm \ gnu/packages/lego.scm \
gnu/packages/less.scm \ gnu/packages/less.scm \
gnu/packages/lesstif.scm \ gnu/packages/lesstif.scm \
gnu/packages/libbsd.scm \
gnu/packages/libcanberra.scm \ gnu/packages/libcanberra.scm \
gnu/packages/libdaemon.scm \ gnu/packages/libdaemon.scm \
gnu/packages/libedit.scm \ gnu/packages/libedit.scm \
@ -303,6 +304,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/search.scm \ gnu/packages/search.scm \
gnu/packages/serialization.scm \ gnu/packages/serialization.scm \
gnu/packages/serveez.scm \ gnu/packages/serveez.scm \
gnu/packages/shellutils.scm \
gnu/packages/shishi.scm \ gnu/packages/shishi.scm \
gnu/packages/skarnet.scm \ gnu/packages/skarnet.scm \
gnu/packages/skribilo.scm \ gnu/packages/skribilo.scm \
@ -465,7 +467,6 @@ dist_patch_DATA = \
gnu/packages/patches/duplicity-test_selection-tmp.patch \ gnu/packages/patches/duplicity-test_selection-tmp.patch \
gnu/packages/patches/elfutils-tests-ptrace.patch \ gnu/packages/patches/elfutils-tests-ptrace.patch \
gnu/packages/patches/einstein-build.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-exec-path.patch \
gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
gnu/packages/patches/emacs-source-date-epoch.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-libiberty-printf-decl.patch \
gnu/packages/patches/gcc-libvtv-runpath.patch \ gnu/packages/patches/gcc-libvtv-runpath.patch \
gnu/packages/patches/gcc-5.0-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/geoclue-config.patch \
gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ gnu/packages/patches/ghostscript-CVE-2015-3228.patch \
gnu/packages/patches/ghostscript-runpath.patch \ gnu/packages/patches/ghostscript-runpath.patch \
@ -507,6 +509,7 @@ dist_patch_DATA = \
gnu/packages/patches/glibc-versioned-locpath.patch \ gnu/packages/patches/glibc-versioned-locpath.patch \
gnu/packages/patches/gmp-arm-asm-nothumb.patch \ gnu/packages/patches/gmp-arm-asm-nothumb.patch \
gnu/packages/patches/gmp-faulty-test.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/gnucash-price-quotes-perl.patch \
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \ gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
gnu/packages/patches/gobject-introspection-cc.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/matplotlib-setupext-tk.patch \
gnu/packages/patches/maxima-defsystem-mkdir.patch \ gnu/packages/patches/maxima-defsystem-mkdir.patch \
gnu/packages/patches/mcron-install.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/mhash-keygen-test-segfault.patch \
gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \ gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \
gnu/packages/patches/mit-krb5-CVE-2015-8630.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-website-test.patch \
gnu/packages/patches/python-paste-remove-timing-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/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/qt4-ldflags.patch \
gnu/packages/patches/ratpoison-shell.patch \ gnu/packages/patches/ratpoison-shell.patch \
gnu/packages/patches/readline-link-ncurses.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 (define-public diamond
(package (package
(name "diamond") (name "diamond")
(version "0.7.9") (version "0.8.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1491,33 +1491,18 @@ identify enrichments with functional annotations of the genome.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0hfkcfv9f76h5brbyw9fyvmc0l9cmbsxrcdqk0fa9xv82zj47p15")) "1dqancz32c2l7w1b2vkvh5zqa2jnf99j1c41djnx1l8pxn044zdc"))))
(snippet '(begin (build-system cmake-build-system)
(delete-file "bin/diamond")
#t))))
(build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ;no "check" target '(#:tests? #f ; no "check" target
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-source-dir (add-after 'unpack 'remove-native-compilation
(lambda _ (lambda _
(chdir "src") (substitute* "CMakeLists.txt" (("-march=native") ""))
#t)) #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)))
(inputs (inputs
`(("boost" ,boost) `(("zlib" ,zlib)))
("zlib" ,zlib)))
(home-page "https://github.com/bbuchfink/diamond") (home-page "https://github.com/bbuchfink/diamond")
(synopsis "Accelerated BLAST compatible local sequence aligner") (synopsis "Accelerated BLAST compatible local sequence aligner")
(description (description
@ -2094,7 +2079,7 @@ particular, reads spanning multiple exons.")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://selab.janelia.org/software/hmmer" "http://eddylab.org/software/hmmer"
(version-prefix version 1) "/" (version-prefix version 1) "/"
version "/hmmer-" version ".tar.gz")) version "/hmmer-" version ".tar.gz"))
(sha256 (sha256
@ -2102,7 +2087,7 @@ particular, reads spanning multiple exons.")
"0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx")))) "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
(home-page "http://hmmer.janelia.org") (home-page "http://hmmer.org/")
(synopsis "Biosequence analysis using profile hidden Markov models") (synopsis "Biosequence analysis using profile hidden Markov models")
(description (description
"HMMER is used for searching sequence databases for homologs of protein "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 (define-public sortmerna
(package (package
(name "sortmerna") (name "sortmerna")
(version "2.1") (version "2.1b")
(source (source
(origin (origin
(method url-fetch) (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")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1mc5cf1c7xh0h7xb11vh7gqgzx0qvrfa606cb8ixlfg3f2av58s4")))) "1ghaghvd82af9j5adavxh77g7hm247d1r69m3fbi6f1jdivj5ldk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" ;for binaries (outputs '("out" ;for binaries
"db")) ;for sequence databases "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)) (install-file file share))
(find-files "rRNA_databases" ".*fasta")) (find-files "rRNA_databases" ".*fasta"))
#t)))))) #t))))))
(inputs
`(("zlib" ,zlib)))
(home-page "http://bioinfo.lifl.fr/RNA/sortmerna") (home-page "http://bioinfo.lifl.fr/RNA/sortmerna")
(synopsis "Biological sequence analysis tool for NGS reads") (synopsis "Biological sequence analysis tool for NGS reads")
(description (description
@ -3831,7 +3818,7 @@ data in the form of VCF files.")
(define-public vsearch (define-public vsearch
(package (package
(name "vsearch") (name "vsearch")
(version "1.10.0") (version "1.11.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3841,7 +3828,7 @@ data in the form of VCF files.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1i3bad7gnn2y3a1yfixzshd99xdkjc8w5bxzgifpysc6jiljwvb5")) "1pdvm3znjgq3zryy240yj9gc0bf1z31k6vf9jxrxgdgkvzgw85c7"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -4018,13 +4005,13 @@ barplots or heatmaps.")
(define-public r-biocgenerics (define-public r-biocgenerics
(package (package
(name "r-biocgenerics") (name "r-biocgenerics")
(version "0.16.1") (version "0.18.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BiocGenerics" version)) (uri (bioconductor-uri "BiocGenerics" version))
(sha256 (sha256
(base32 (base32
"0f16ryy5f012hvksrwlmm33bcl7lw97i2jvhbnwfwl03j4w7nhc1")))) "1jjp48vbph09w5bmc7368gjjywsa1lmzfybpiwlypr60b51vlkp6"))))
(properties (properties
`((upstream-name . "BiocGenerics"))) `((upstream-name . "BiocGenerics")))
(build-system r-build-system) (build-system r-build-system)
@ -4038,13 +4025,13 @@ packages.")
(define-public r-dnacopy (define-public r-dnacopy
(package (package
(name "r-dnacopy") (name "r-dnacopy")
(version "1.44.0") (version "1.46.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DNAcopy" version)) (uri (bioconductor-uri "DNAcopy" version))
(sha256 (sha256
(base32 (base32
"1c1px4rbr36xx929hp59k7ca9k5ab66qmn8k63fk13278ncm6h66")))) "0vwv2mndfjpcjp4sybg75abc7xnx8zyw8zjk717k6xh8c33ymcip"))))
(properties (properties
`((upstream-name . "DNAcopy"))) `((upstream-name . "DNAcopy")))
(build-system r-build-system) (build-system r-build-system)
@ -4060,13 +4047,13 @@ abnormal copy number.")
(define-public r-s4vectors (define-public r-s4vectors
(package (package
(name "r-s4vectors") (name "r-s4vectors")
(version "0.8.11") (version "0.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "S4Vectors" version)) (uri (bioconductor-uri "S4Vectors" version))
(sha256 (sha256
(base32 (base32
"12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66")))) "1mi6lf6pnb9l657igy0vj4yz03yawbr2jhk22l757fzbjc7n9q3b"))))
(properties (properties
`((upstream-name . "S4Vectors"))) `((upstream-name . "S4Vectors")))
(build-system r-build-system) (build-system r-build-system)
@ -4087,13 +4074,13 @@ S4Vectors package itself.")
(define-public r-iranges (define-public r-iranges
(package (package
(name "r-iranges") (name "r-iranges")
(version "2.4.8") (version "2.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "IRanges" version)) (uri (bioconductor-uri "IRanges" version))
(sha256 (sha256
(base32 (base32
"0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl")))) "0dz7z0pk8hq79mcgylw920999s08h6j8xrl31rdxhssmi7l8v6vy"))))
(properties (properties
`((upstream-name . "IRanges"))) `((upstream-name . "IRanges")))
(build-system r-build-system) (build-system r-build-system)
@ -4116,13 +4103,13 @@ possible.")
(define-public r-genomeinfodb (define-public r-genomeinfodb
(package (package
(name "r-genomeinfodb") (name "r-genomeinfodb")
(version "1.6.3") (version "1.8.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version)) (uri (bioconductor-uri "GenomeInfoDb" version))
(sha256 (sha256
(base32 (base32
"1ggp005n2rlkad00ilzn95y4rd484yr1chdhnd6fwg45rbi94d63")))) "0k4s6z5qj53zkfnyrmcbn3l2nzgm56bhv58rv321j22qa56cpz7d"))))
(properties (properties
`((upstream-name . "GenomeInfoDb"))) `((upstream-name . "GenomeInfoDb")))
(build-system r-build-system) (build-system r-build-system)
@ -4142,13 +4129,13 @@ names in their natural, rather than lexicographic, order.")
(define-public r-variantannotation (define-public r-variantannotation
(package (package
(name "r-variantannotation") (name "r-variantannotation")
(version "1.16.4") (version "1.18.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "VariantAnnotation" version)) (uri (bioconductor-uri "VariantAnnotation" version))
(sha256 (sha256
(base32 (base32
"1z42j3p9b8h725inq8n0230llsdbav3gwcxy1nliypzfkxbzahsb")))) "1jdpdnp7l81xfprba2ykfnj6i64fd84vxaax0wvrz6qahxvnjzyw"))))
(properties (properties
`((upstream-name . "VariantAnnotation"))) `((upstream-name . "VariantAnnotation")))
(inputs (inputs
@ -4174,13 +4161,13 @@ coding changes and predict coding outcomes.")
(define-public r-xvector (define-public r-xvector
(package (package
(name "r-xvector") (name "r-xvector")
(version "0.10.0") (version "0.12.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "XVector" version)) (uri (bioconductor-uri "XVector" version))
(sha256 (sha256
(base32 (base32
"0havwyr6xqk7w0rmbwfj9jq1djz7wzdz7w39adhklwzwz9l4ih3a")))) "0c9cqjcxxks3an4wiq167h2grxlfyazajn7bmxhbk42zifp8vmqp"))))
(properties (properties
`((upstream-name . "XVector"))) `((upstream-name . "XVector")))
(build-system r-build-system) (build-system r-build-system)
@ -4210,13 +4197,13 @@ coding changes and predict coding outcomes.")
(define-public r-genomicranges (define-public r-genomicranges
(package (package
(name "r-genomicranges") (name "r-genomicranges")
(version "1.22.4") (version "1.24.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicRanges" version)) (uri (bioconductor-uri "GenomicRanges" version))
(sha256 (sha256
(base32 (base32
"02df5683nrpn9d10ws8jz9b55nr9055hh882xp2i154xdddir0k0")))) "1iyzg1npl3rnnslwq3h759vf0xhshnn5v801rnlj6bnxzhn9yaqh"))))
(properties (properties
`((upstream-name . "GenomicRanges"))) `((upstream-name . "GenomicRanges")))
(build-system r-build-system) (build-system r-build-system)
@ -4237,13 +4224,13 @@ manipulating genomic intervals and variables defined along a genome.")
(define-public r-biobase (define-public r-biobase
(package (package
(name "r-biobase") (name "r-biobase")
(version "2.30.0") (version "2.32.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Biobase" version)) (uri (bioconductor-uri "Biobase" version))
(sha256 (sha256
(base32 (base32
"1qasjpq3kw8h7qw8cin3bjvv1256hqr1mm24fq3v0ymxzlb66szi")))) "0q4icv9n5rc2qfkv6k1wjhmfcpzcyr8f45m2z3xharbdv912kl1i"))))
(properties (properties
`((upstream-name . "Biobase"))) `((upstream-name . "Biobase")))
(build-system r-build-system) (build-system r-build-system)
@ -4259,13 +4246,13 @@ on Bioconductor or which replace R functions.")
(define-public r-annotationdbi (define-public r-annotationdbi
(package (package
(name "r-annotationdbi") (name "r-annotationdbi")
(version "1.32.3") (version "1.34.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "AnnotationDbi" version)) (uri (bioconductor-uri "AnnotationDbi" version))
(sha256 (sha256
(base32 (base32
"1v6x62hgys5827yg2xayjrd9xawbayzm6wy0q4vxh1s6yxc9bklj")))) "0nw6c23098gkjlwlrra4rh1m65azczb31qr01pq81cn5gya1zkr4"))))
(properties (properties
`((upstream-name . "AnnotationDbi"))) `((upstream-name . "AnnotationDbi")))
(build-system r-build-system) (build-system r-build-system)
@ -4286,13 +4273,13 @@ annotation data packages using SQLite data storage.")
(define-public r-biomart (define-public r-biomart
(package (package
(name "r-biomart") (name "r-biomart")
(version "2.26.1") (version "2.28.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "biomaRt" version)) (uri (bioconductor-uri "biomaRt" version))
(sha256 (sha256
(base32 (base32
"1s709055abj2gd35g6nnk5d2ai5ii09iir270l2xika6pi62gj3f")))) "1g0w6an9hkflgyhvq6pmrs92s93qarv23v636b9a4bz771wjvm5v"))))
(properties (properties
`((upstream-name . "biomaRt"))) `((upstream-name . "biomaRt")))
(build-system r-build-system) (build-system r-build-system)
@ -4316,13 +4303,13 @@ powerful online queries from gene annotation to database mining.")
(define-public r-biocparallel (define-public r-biocparallel
(package (package
(name "r-biocparallel") (name "r-biocparallel")
(version "1.4.3") (version "1.6.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BiocParallel" version)) (uri (bioconductor-uri "BiocParallel" version))
(sha256 (sha256
(base32 (base32
"1f5mndx66vampcsq0n66afg6x851crl0h3nyv2nyp9bsgzj9cdzq")))) "0ki5xvb3cwjmlsx81gr8ylk1qy3imlj2dd04mzpvl28x42ay4dqj"))))
(properties (properties
`((upstream-name . "BiocParallel"))) `((upstream-name . "BiocParallel")))
(build-system r-build-system) (build-system r-build-system)
@ -4340,13 +4327,13 @@ objects.")
(define-public r-biostrings (define-public r-biostrings
(package (package
(name "r-biostrings") (name "r-biostrings")
(version "2.38.4") (version "2.40.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Biostrings" version)) (uri (bioconductor-uri "Biostrings" version))
(sha256 (sha256
(base32 (base32
"0cjd7i4bdwabzb02gm753aji5xaihkj5ak8nb0d32cclxbj0hp33")))) "03gyhiz14xy51nzg0glihk1rv19pq4p1aa3y5g23bzcshs67ggj9"))))
(properties (properties
`((upstream-name . "Biostrings"))) `((upstream-name . "Biostrings")))
(build-system r-build-system) (build-system r-build-system)
@ -4366,13 +4353,13 @@ biological sequences or sets of sequences.")
(define-public r-rsamtools (define-public r-rsamtools
(package (package
(name "r-rsamtools") (name "r-rsamtools")
(version "1.22.0") (version "1.24.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rsamtools" version)) (uri (bioconductor-uri "Rsamtools" version))
(sha256 (sha256
(base32 (base32
"1yc3nzzms3igjwr4l9yd3wdac95glcs08b4cfp7disyly0wcskjd")))) "0w0drs8cpk8nlazq64ag7nm1w5jd1m8riialivm01hz5zcra7scb"))))
(properties (properties
`((upstream-name . "Rsamtools"))) `((upstream-name . "Rsamtools")))
(build-system r-build-system) (build-system r-build-system)
@ -4410,13 +4397,13 @@ files.")
(define-public r-summarizedexperiment (define-public r-summarizedexperiment
(package (package
(name "r-summarizedexperiment") (name "r-summarizedexperiment")
(version "1.0.2") (version "1.2.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "SummarizedExperiment" version)) (uri (bioconductor-uri "SummarizedExperiment" version))
(sha256 (sha256
(base32 (base32
"1gpmh1mi70m5k5qnyjs1h0qn8ajrzalzic7k3762xchxsmmdvxn4")))) "1c81acgw3a0ha5fgapfh9xq8yhryqqf8k259n2dz0mgz1k2d9klg"))))
(properties (properties
`((upstream-name . "SummarizedExperiment"))) `((upstream-name . "SummarizedExperiment")))
(build-system r-build-system) (build-system r-build-system)
@ -4439,13 +4426,13 @@ samples.")
(define-public r-genomicalignments (define-public r-genomicalignments
(package (package
(name "r-genomicalignments") (name "r-genomicalignments")
(version "1.6.3") (version "1.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicAlignments" version)) (uri (bioconductor-uri "GenomicAlignments" version))
(sha256 (sha256
(base32 (base32
"02b9j1pfd39bkvb623k5k0ziq9rpw093hifqw65vb954dwj29jhd")))) "1y4qgqxq8dax9swgl59m6i7ggjpqrjllgx87b9vwls3z0nf1i6xj"))))
(properties (properties
`((upstream-name . "GenomicAlignments"))) `((upstream-name . "GenomicAlignments")))
(build-system r-build-system) (build-system r-build-system)
@ -4472,13 +4459,13 @@ alignments.")
(define-public r-rtracklayer (define-public r-rtracklayer
(package (package
(name "r-rtracklayer") (name "r-rtracklayer")
(version "1.30.4") (version "1.32.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "rtracklayer" version)) (uri (bioconductor-uri "rtracklayer" version))
(sha256 (sha256
(base32 (base32
"0knjnwywh9k726mq28s3sy013zhw6d6nfa8hfw670720nq18i2p0")))) "0nrwk1g8b1ymvbgnqniimbvwfq13r01va9rx3b03xj4hpywzy5nv"))))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -4517,13 +4504,13 @@ as well as query and modify the browser state, such as the current viewport.")
(define-public r-genomicfeatures (define-public r-genomicfeatures
(package (package
(name "r-genomicfeatures") (name "r-genomicfeatures")
(version "1.22.13") (version "1.24.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version)) (uri (bioconductor-uri "GenomicFeatures" version))
(sha256 (sha256
(base32 (base32
"0n3rkj66la6wizgcsf2rmwcsyfxz9kv5zak337lmk1raqfnancz4")))) "0ga5a7w8jnnq2k0kc07mshl6cggmbhzh42pzvhnilgl4x3kpbysl"))))
(properties (properties
`((upstream-name . "GenomicFeatures"))) `((upstream-name . "GenomicFeatures")))
(build-system r-build-system) (build-system r-build-system)
@ -4582,13 +4569,13 @@ information about the latest version of the Gene Ontologies.")
(define-public r-graph (define-public r-graph
(package (package
(name "r-graph") (name "r-graph")
(version "1.48.0") (version "1.50.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "graph" version)) (uri (bioconductor-uri "graph" version))
(sha256 (sha256
(base32 (base32
"16w75rji3kv24gfv44w66y1a2y75ax26rl470y3ypna0ndc3rrcd")))) "0ys5s19m5r30rlr0fnx2h0z2qw7n2xrad4l2yfb1bbrk8dwyf4pi"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biocgenerics" ,r-biocgenerics))) `(("r-biocgenerics" ,r-biocgenerics)))
@ -4601,13 +4588,13 @@ information about the latest version of the Gene Ontologies.")
(define-public r-topgo (define-public r-topgo
(package (package
(name "r-topgo") (name "r-topgo")
(version "2.22.0") (version "2.24.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "topGO" version)) (uri (bioconductor-uri "topGO" version))
(sha256 (sha256
(base32 (base32
"029j9nb39b8l9xlzsp83pmjr8ap247aia387yzaa1yyw8klapdaf")))) "1p4vsl32qhjw15yv9ym01ni63gjg73jaghlf17wc4zfn3iaz2zar"))))
(properties (properties
`((upstream-name . "topGO"))) `((upstream-name . "topGO")))
(build-system r-build-system) (build-system r-build-system)
@ -4616,6 +4603,7 @@ information about the latest version of the Gene Ontologies.")
("r-biobase" ,r-biobase) ("r-biobase" ,r-biobase)
("r-biocgenerics" ,r-biocgenerics) ("r-biocgenerics" ,r-biocgenerics)
("r-go-db" ,r-go-db) ("r-go-db" ,r-go-db)
("r-matrixstats" ,r-matrixstats)
("r-graph" ,r-graph) ("r-graph" ,r-graph)
("r-sparsem" ,r-sparsem))) ("r-sparsem" ,r-sparsem)))
(home-page "http://bioconductor.org/packages/topGO") (home-page "http://bioconductor.org/packages/topGO")
@ -4631,13 +4619,13 @@ dependencies between GO terms can be implemented and applied.")
(define-public r-bsgenome (define-public r-bsgenome
(package (package
(name "r-bsgenome") (name "r-bsgenome")
(version "1.38.0") (version "1.40.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BSgenome" version)) (uri (bioconductor-uri "BSgenome" version))
(sha256 (sha256
(base32 (base32
"130w0m6q8kkca7gyz1aqj5jjhalwvwi6rk2yvbjrnj4gpnncyrd2")))) "08g3w47ysbmgj4hclb0x2wsn7pi9cnm3xkkfk4shgrka2g23qz44"))))
(properties (properties
`((upstream-name . "BSgenome"))) `((upstream-name . "BSgenome")))
(build-system r-build-system) (build-system r-build-system)
@ -4661,13 +4649,13 @@ genome data packages and support for efficient SNP representation.")
(define-public r-impute (define-public r-impute
(package (package
(name "r-impute") (name "r-impute")
(version "1.44.0") (version "1.46.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "impute" version)) (uri (bioconductor-uri "impute" version))
(sha256 (sha256
(base32 (base32
"0y4x5jk7gsf4xn56jrkdcdnxpcfll4h6ivncd7n4snmzixldvmvw")))) "0v9ibgv8kp8il52miz7b7z65mv6irqxylx6lfzkxgvxd970dgrz0"))))
(inputs (inputs
`(("gfortran" ,gfortran))) `(("gfortran" ,gfortran)))
(build-system r-build-system) (build-system r-build-system)
@ -4681,13 +4669,13 @@ microarray data, using nearest neighbor averaging.")
(define-public r-seqpattern (define-public r-seqpattern
(package (package
(name "r-seqpattern") (name "r-seqpattern")
(version "1.2.0") (version "1.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "seqPattern" version)) (uri (bioconductor-uri "seqPattern" version))
(sha256 (sha256
(base32 (base32
"0p9zj6bic7sa0hb2bjm988kkk5n9r1kvlbqkzvy702f642n0j53i")))) "1dj9hfnbdj11yjxwd8jmxrdkj7n6gmaaj6244g2psgarhjcp4wfb"))))
(properties (properties
`((upstream-name . "seqPattern"))) `((upstream-name . "seqPattern")))
(build-system r-build-system) (build-system r-build-system)
@ -4707,13 +4695,13 @@ reference point and sorted by a user defined feature.")
(define-public r-genomation (define-public r-genomation
(package (package
(name "r-genomation") (name "r-genomation")
(version "1.2.2") (version "1.4.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "genomation" version)) (uri (bioconductor-uri "genomation" version))
(sha256 (sha256
(base32 (base32
"0kvzwc21zsh2c8d34yn935ncn38bfkpzmknycd8h7b0521x20mi9")))) "017hxh3yhizlsswd2vw8504arkckrcgq5zraiw67lldq9wzs5qzg"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-biostrings" ,r-biostrings) `(("r-biostrings" ,r-biostrings)
@ -4854,14 +4842,14 @@ annotations for the genome of the model mouse Mus musculus.")
(define-public r-seqlogo (define-public r-seqlogo
(package (package
(name "r-seqlogo") (name "r-seqlogo")
(version "1.36.0") (version "1.38.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "seqLogo" version)) (uri (bioconductor-uri "seqLogo" version))
(sha256 (sha256
(base32 (base32
"0kn1a1nf2j4v9c09vjkz9bmxlln7yhg87bnyrdsxy1m55x56rn5k")))) "01jddx62nhi3r7czbh9hxy0wwpazbc9ax1fgagfxl6p4kx9xz9rb"))))
(properties `((upstream-name . "seqLogo"))) (properties `((upstream-name . "seqLogo")))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://bioconductor.org/packages/seqLogo") (home-page "http://bioconductor.org/packages/seqLogo")
@ -5001,14 +4989,14 @@ Biostrings objects.")
(define-public r-motifrg (define-public r-motifrg
(package (package
(name "r-motifrg") (name "r-motifrg")
(version "1.14.0") (version "1.16.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "motifRG" version)) (uri (bioconductor-uri "motifRG" version))
(sha256 (sha256
(base32 (base32
"1v9zm5629k2lcqbbgw8bwflvbircyxkfavbkvmbd212kgwcng8vn")))) "1ds22paqc0923y6z1fy0arw0wxvvmglfvfgarhywv1qywhq68mbq"))))
(properties `((upstream-name . "motifRG"))) (properties `((upstream-name . "motifRG")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -5053,13 +5041,13 @@ two-dimensional genome scans.")
(define-public r-zlibbioc (define-public r-zlibbioc
(package (package
(name "r-zlibbioc") (name "r-zlibbioc")
(version "1.16.0") (version "1.18.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "zlibbioc" version)) (uri (bioconductor-uri "zlibbioc" version))
(sha256 (sha256
(base32 (base32
"01wc26ndg4jsn1wyrl6zzq636gxaip5fci0xapym4lh9wryc4wnw")))) "0m8l7zpx1l3qsk73k3ibkxxzzff938x3qhnwki1ymf3cnsg8cb36"))))
(properties (properties
`((upstream-name . "zlibbioc"))) `((upstream-name . "zlibbioc")))
(build-system r-build-system) (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.") libraries for systems that do not have these available via other means.")
(license license:artistic2.0))) (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 (define-public pepr
(package (package
(name "pepr") (name "pepr")

View File

@ -1,7 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -37,7 +38,7 @@
(define-public libical (define-public libical
(package (package
(name "libical") (name "libical")
(version "1.0.1") (version "2.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -45,10 +46,14 @@
version "/libical-" version ".tar.gz")) version "/libical-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708")))) "1njn2kr0rrjqv5g3hdhpdzrhankyj4fl1bgn76z3g4n1b7vi2k35"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; test suite appears broken '(#: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 #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'patch-paths (add-before 'configure 'patch-paths

View File

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

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 David Thompson <davet@gnu.org> ;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -19,6 +20,8 @@
(define-module (gnu packages crypto) (define-module (gnu packages crypto)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages libbsd)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
@ -46,3 +49,42 @@
communication, encryption, decryption, signatures, etc.") communication, encryption, decryption, signatures, etc.")
(license isc) (license isc)
(home-page "http://libsodium.org"))) (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 (define-public postgresql
(package (package
(name "postgresql") (name "postgresql")
(version "9.5.2") (version "9.5.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v" (uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2")) version "/postgresql-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0hbwwhh0pz0a6vf8j5bskiq7gmz9rwc9ywcqyhg5asshckj35lgq")))) "1d500d2qsdzysnis6qi84xchnz5xh8kx8sjfmkbsijwaqlfw11bk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -460,14 +460,14 @@ is in the public domain.")
(define-public tdb (define-public tdb
(package (package
(name "tdb") (name "tdb")
(version "1.3.8") (version "1.3.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-" (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1cg6gmpgn36dd4bsp3j9k3hyrm87d8hdigqyyqxw5jga4w2aq186")))) "1ll4q17scax1arg12faj8p25jq1f7q9irc3pwla0ziymwqkgf0bi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (alist-replace '(#:phases (alist-replace
@ -822,14 +822,15 @@ valid SQL query.")
(define-public unixodbc (define-public unixodbc
(package (package
(name "unixodbc") (name "unixodbc")
(version "2.3.2") (version "2.3.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append (string-append
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-" version ".tar.gz")) "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
version ".tar.gz"))
(sha256 (sha256
(base32 "16jw5fq7wgfky6ak1h2j2pqx99jivsdl4q8aq6immpr55xs5jd4w")))) (base32 "0f8y88rcc2akjvjv5y66yx7k0ms9h1s0vbcfy25j93didflhj59f"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Data source abstraction library") (synopsis "Data source abstraction library")
(description "Unixodbc is a library providing an API with which to access (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 ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;

View File

@ -7,6 +7,8 @@
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net> ;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -252,6 +254,36 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live
metadata.") metadata.")
(license license:bsd-3))) (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 (define-public paredit
(package (package
(name "paredit") (name "paredit")
@ -1364,26 +1396,24 @@ identifiers in the MIT-Scheme documentation.")
(gexp->derivation (or name (basename url)) (gexp->derivation (or name (basename url))
#~(begin #~(begin
(mkdir #$output) (mkdir #$output)
(setenv "PATH"
(string-append #$gzip "/bin"))
(chdir #$output) (chdir #$output)
(copy-file #$drv (basename #$url)))))) (copy-file #$drv (basename #$url))))))
(define-public emacs-constants (define-public emacs-constants
(package (package
(name "emacs-constants") (name "emacs-constants")
(version "2.2") (version "2.6")
(home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
(source (source
(origin (origin
(file-name (string-append name "-" version ".el")) (file-name (string-append name "-" version ".el"))
(method uncompressed-file-fetch) (method url-fetch)
(uri "https://staff.fnwi.uva.nl/c.dominik/Tools/constants/constants.el") (uri (string-append "https://github.com/fedeinthemix/emacs-constants"
(patches (search-patches "emacs-constants-lisp-like.patch")) "/archive/v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"14q094aphsjhq8gklv7i5a7byl0ygz63cv3n6b5p8ji2jy0mnnw3")))) "0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
(build-system emacs-build-system) (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") (synopsis "Enter definition of constants into an Emacs buffer")
(description (description
"This package provides functions for inserting the definition of natural "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 that it correctly finds RFCs even when a space appears before the
number.") number.")
(license license:gpl3+))) (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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,13 +24,21 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build utils) #:use-module (guix build utils)
#:use-module (guix build-system gnu) #: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 boost)
#:use-module (gnu packages databases) #: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 linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages upnp)) #: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 of the bitcoin protocol. This package provides the Bitcoin Core command
line client and a client based on Qt.") line client and a client based on Qt.")
(license license:expat))) (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 © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;

View File

@ -82,14 +82,14 @@ freedesktop.org project.")
(define-public libinput (define-public libinput
(package (package
(name "libinput") (name "libinput")
(version "1.2.0") (version "1.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/" (uri (string-append "https://freedesktop.org/software/libinput/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0b3f67xsy1s84cvzw22mjfkbcv6pj4p4yns4h3m0fmb7zqbvjm0p")))) "1sn1s1bz06fa49izqkqf519sjclsvhf42i6slzx1w5hx4vxpb2lr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -288,7 +288,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(define-public exempi (define-public exempi
(package (package
(name "exempi") (name "exempi")
(version "2.2.2") (version "2.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -296,7 +296,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"01vcd1mfn2s0iiq2cjyzgvnxx6kcq9cwra1iipijhs0vwvjx0yhf")))) "0jcrv3w8m415cq8xi886hcxfqbrn5dczxbzybx9bhf3dbqsyv6nq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list (string-append "--with-boost=" `(#:configure-flags (list (string-append "--with-boost="
@ -448,7 +448,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
(define-public libmbim (define-public libmbim
(package (package
(name "libmbim") (name "libmbim")
(version "1.12.2") (version "1.12.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -456,7 +456,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0abv0h9c3kbw4bq1b9270sg189jcjj3x3wa91bj836ynwg9m34wl")))) "0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums `(("glib:bin" ,glib "bin") ; for glib-mkenums
@ -467,7 +467,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
(inputs (inputs
`(("libgudev" ,libgudev))) `(("libgudev" ,libgudev)))
(synopsis "Library to communicate with MBIM-powered modems") (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 (description
"Libmbim is a GLib-based library for talking to WWAN modems and devices "Libmbim is a GLib-based library for talking to WWAN modems and devices
which speak the Mobile Interface Broadband Model (MBIM) protocol.") 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 (define-public libqmi
(package (package
(name "libqmi") (name "libqmi")
(version "1.12.8") (version "1.14.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -487,7 +487,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"19w2zkm5xl6i3vm1xhjjclks4awas17gfbb2k5y66gwnkiykjfnj")))) "0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums `(("glib:bin" ,glib "bin") ; for glib-mkenums

View File

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

View File

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

View File

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

View File

@ -618,6 +618,17 @@ as the 'native-search-paths' field."
(variable "LIBRARY_PATH") (variable "LIBRARY_PATH")
(files '("lib" "lib64")))))) (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 (define-public gcc-objc++-4.8
(custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++") (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
(list (search-path-specification (list (search-path-specification
@ -627,6 +638,17 @@ as the 'native-search-paths' field."
(variable "LIBRARY_PATH") (variable "LIBRARY_PATH")
(files '("lib" "lib64")))))) (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) (define (make-libstdc++-doc gcc)
"Return a package with the libstdc++ documentation for GCC." "Return a package with the libstdc++ documentation for GCC."
(package (package

View File

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

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -63,8 +64,9 @@ and XMP metadata of images in various formats.")
(version "1.1") (version "1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/geeqie/geeqie-" (uri (string-append "https://github.com/BestImageViewer/geeqie/"
version ".tar.gz")) "archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kzy39z9505xkayyx7rjj2wda76xy3ch1s5z35zn8yli54ffhi2m")))) "1kzy39z9505xkayyx7rjj2wda76xy3ch1s5z35zn8yli54ffhi2m"))))
@ -78,7 +80,7 @@ and XMP metadata of images in various formats.")
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(home-page "http://geeqie.sourceforge.net") (home-page "http://www.geeqie.org/")
(synopsis "Lightweight GTK+ based image viewer") (synopsis "Lightweight GTK+ based image viewer")
(description (description
"Geeqie is a lightweight GTK+ based image viewer for Unix like operating "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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -33,7 +34,7 @@
(source (source
(origin (origin
(method url-fetch) (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")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
@ -57,7 +58,7 @@
(list (string-append "INSTALLROOT=" out) (list (string-append "INSTALLROOT=" out)
"CC=gcc" "CC=gcc"
"X11_LIBS = -lX11 -lSM -lICE -lgmodule-2.0")))) "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") (synopsis "System monitors")
(description (description
"GKrellM is a single process stack of system monitors which supports "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 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -58,6 +60,7 @@
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages enchant) #:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages game-development) #:use-module (gnu packages game-development)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #: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.") features to enable users to create their discs easily and quickly.")
(license license:gpl2+))) (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 (define-public gnome-common
(package (package
(name "gnome-common") (name "gnome-common")
@ -682,7 +734,8 @@ database is translated at Transifex.")
("libpng" ,libpng))) ("libpng" ,libpng)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("glib" ,glib "bin"))) ("glib" ,glib "bin")
("gobject-introspection" ,gobject-introspection)))
(home-page "https://developer-next.gnome.org/libnotify/") (home-page "https://developer-next.gnome.org/libnotify/")
(synopsis (synopsis
"GNOME desktop notification library") "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 "Libzapojit is a GLib-based library for accessing online service APIs of
Microsoft SkyDrive and Hotmail, using their REST protocols.") Microsoft SkyDrive and Hotmail, using their REST protocols.")
(license license:lgpl2.1+))) (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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -29,7 +30,7 @@
(define-public gnu-pw-mgr (define-public gnu-pw-mgr
(package (package
(name "gnu-pw-mgr") (name "gnu-pw-mgr")
(version "1.6") (version "2.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -37,7 +38,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"141wfm4w420ygrl7qvrc84drzv34jym0d2bxqcgi7n1vimql0slp")))) "19qvg37snfa8s06q5crx25m1r1n4l0wvfpkbdxz17q7whp0plrl6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("which" ,which) `(("which" ,which)

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; 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. ;;; 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")) version ".orig.tar.gz"))
(sha256 (sha256
(base32 (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) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:tests? #f ; no "check" target

View File

@ -517,4 +517,8 @@ standards.")
software, which does not recommend non-free plugins and addons. It also software, which does not recommend non-free plugins and addons. It also
features built-in privacy-protecting features.") features built-in privacy-protecting features.")
(license license:mpl2.0) ;and others, see toolkit/content/license.html (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")))) "1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; FIXME: At least "testrcore1" fails. `(#:phases
#:tests? #f
#:phases
(modify-phases %standard-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 _ (lambda _
(substitute* (cons "Makefile.decl" (substitute* (cons "Makefile.decl"
(find-files "." "^Makefile\\.in$")) (find-files "." "^Makefile\\.in$"))
(("/bin/ls") (which "ls"))) (("/bin/ls") (which "ls"))
(("/usr/bin/env") (which "env")))
#t))))) #t)))))
;; These libraries are listed in the "Required" section of the pkg-config ;; These libraries are listed in the "Required" section of the pkg-config
;; file. ;; file.
@ -311,7 +326,8 @@ visual effects work for film.")
`(("librsvg" ,librsvg) `(("librsvg" ,librsvg)
("cairo" ,cairo) ("cairo" ,cairo)
("pango" ,pango) ("pango" ,pango)
("libxml2" ,libxml2))) ("libxml2" ,libxml2)
("python2-enum34" ,python2-enum34)))
(inputs (inputs
`(("gdk-pixbuf" ,gdk-pixbuf) `(("gdk-pixbuf" ,gdk-pixbuf)
("libpng" ,libpng-1.2) ("libpng" ,libpng-1.2)
@ -326,7 +342,8 @@ visual effects work for film.")
("doxygen" ,doxygen) ("doxygen" ,doxygen)
("graphviz" ,graphviz) ("graphviz" ,graphviz)
("intltool" ,intltool) ("intltool" ,intltool)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)
("xvfb" ,xorg-server)))
(home-page "http://rapicorn.org") (home-page "http://rapicorn.org")
(synopsis "Toolkit for rapid development of user interfaces") (synopsis "Toolkit for rapid development of user interfaces")
(description (description

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name> ;;; 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 bootloader, GRUB handles the presence of multiple operating systems installed
on the same computer; upon booting the computer, the user is presented with a on the same computer; upon booting the computer, the user is presented with a
menu to select one of the installed operating systems.") 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 © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -41,6 +42,7 @@
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript) #: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 "Murrine is a cairo-based GTK+ theming engine. It is named after the
glass artworks done by Venicians glass blowers.") glass artworks done by Venicians glass blowers.")
(license license:gpl2+))) (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 (define-public guile-irregex
(package (package
(name "guile-irregex") (name "guile-irregex")
(version "0.9.3") (version "0.9.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://synthcode.com/scheme/irregex/irregex-" "http://synthcode.com/scheme/irregex/irregex-"
version version ".tar.gz"))
".tar.gz"))
(sha256 (sha256
(base32 (base32
"1b8jl7bycyl2ssp6sb1j24pp9hvqyxm85ki9bmwd50glyyjs5zay")))) "0cmaqvqvyarcnnsyrl2p6vwyv1r3k1q7qw8p9zrlnz1vpbj7vb90"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build utils) `(#:modules ((guix build utils)

View File

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

View File

@ -32,7 +32,7 @@
(define-public gnumach-headers (define-public gnumach-headers
(package (package
(name "gnumach-headers") (name "gnumach-headers")
(version "1.6") (version "1.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -40,7 +40,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1m7xwsrv6x6gk9xi5phs104rdn9q3lr63p348vyv0dzd6r3zyncb")))) "1vd0bykshf6ilr55792b5lf6yd5ywlkp1wqz00dcsx7fq3rfadz2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (alist-replace `(#:phases (alist-replace
@ -66,7 +66,7 @@
(define-public mig (define-public mig
(package (package
(name "mig") (name "mig")
(version "1.6") (version "1.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -74,7 +74,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1i9qd6j5g8wsv9k9n6vpdqflyw0284wyayb2s2h7pp4yyi2jsksk")))) "1hxqd8p14pgamgavmbmziswvd1zvwqx7lgc9qga805q9jrs93q2b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; Flex is needed both at build and run time. ;; Flex is needed both at build and run time.
(inputs `(("gnumach-headers" ,gnumach-headers) (inputs `(("gnumach-headers" ,gnumach-headers)
@ -97,14 +97,14 @@ communication.")
(define-public hurd-headers (define-public hurd-headers
(package (package
(name "hurd-headers") (name "hurd-headers")
(version "0.7") (version "0.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/hurd/hurd-" (uri (string-append "mirror://gnu/hurd/hurd-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1q2pyc16vb5plqi8hlwnnc9jk8zlifm91cavz6x7vhbwy0nh2yvh")))) "1pbc4aqgzxvkgivw80ghp3w755cl0fwxmg357vq7chimj64jk78d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(;; Autoconf shouldn't be necessary but there seems to be a bug in the `(;; 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 (define-public giflib
(package (package
(name "giflib") (name "giflib")
(version "5.1.2") (version "5.1.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/giflib/giflib-" (uri (string-append "mirror://sourceforge/giflib/giflib-"
(first (string-split version #\.)) (first (string-split version #\.))
".x/giflib-" version ".tar.bz2")) ".x/giflib-" version ".tar.bz2"))
(sha256 (sha256
(base32 "0z1adsza46q84chkxwr6x8ph11k117k8nywkzwar6bxhqf2a1h3n")))) (base32
"1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("bin" ; utility programs (outputs '("bin" ; utility programs
"out")) ; library "out")) ; library
@ -408,26 +409,25 @@ error-resilience, a Java-viewer for j2k-images, ...")
("libsm" ,libsm) ("libsm" ,libsm)
("perl" ,perl))) ("perl" ,perl)))
(arguments (arguments
`(#:phases (alist-cons-after `(#:phases
'unpack 'disable-html-doc-gen (modify-phases %standard-phases
(lambda _ (add-after 'unpack 'disable-html-doc-gen
(substitute* "doc/Makefile.in" (lambda _
(("^all: allhtml manpages") ""))) (substitute* "doc/Makefile.in"
(alist-cons-after (("^all: allhtml manpages") ""))))
'install 'install-manpages (add-after 'install 'install-manpages
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((bin (assoc-ref outputs "bin")) (let* ((bin (assoc-ref outputs "bin"))
(man1dir (string-append bin "/share/man/man1"))) (man1dir (string-append bin "/share/man/man1")))
(mkdir-p man1dir) (mkdir-p man1dir)
(for-each (lambda (file) (for-each (lambda (file)
(let ((base (basename file))) (let ((base (basename file)))
(format #t "installing `~a' to `~a'~%" (format #t "installing `~a' to `~a'~%"
base man1dir) base man1dir)
(copy-file file (copy-file file
(string-append (string-append
man1dir "/" base)))) man1dir "/" base))))
(find-files "doc" "\\.1")))) (find-files "doc" "\\.1"))))))))
%standard-phases))))
(synopsis "Tools and library for working with GIF images") (synopsis "Tools and library for working with GIF images")
(description (description
"GIFLIB is a library for reading and writing GIF images. It is API and "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") (version "1.2.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (list
"http://linuxbrit.co.uk/downloads/giblib-" (string-append
version ".tar.gz")) "http://linuxbrit.co.uk/downloads/giblib-"
version ".tar.gz")
(string-append
"https://sourceforge.net/projects/slackbuildsdirectlinks/"
"files/giblib/giblib-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp")))) "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))

View File

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

View File

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

View File

@ -27,7 +27,7 @@
(define-public jemalloc (define-public jemalloc
(package (package
(name "jemalloc") (name "jemalloc")
(version "4.1.0") (version "4.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -35,7 +35,7 @@
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s")))) "1jvasihaizawz44j02bri47bd905flns03nkigipys81p6pds5mj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.canonware.com/jemalloc/") (home-page "http://www.canonware.com/jemalloc/")
(synopsis "General-purpose scalable concurrent malloc implementation") (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 ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -40,5 +41,7 @@
"libidn is a library implementing of the Stringprep, Punycode and IDNA "libidn is a library implementing of the Stringprep, Punycode and IDNA
specifications. These are used to encode and decode internationalized domain specifications. These are used to encode and decode internationalized domain
names. It includes native C, C# and Java libraries.") 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/"))) (home-page "http://www.gnu.org/software/libidn/")))

View File

@ -12,6 +12,7 @@
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org> ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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))) (search-path %load-path file)))
(define-public linux-libre (define-public linux-libre
(let* ((version "4.5.4") (let* ((version "4.5.5")
(build-phase (build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args) '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Avoid introducing timestamps ;; 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)) (uri (linux-libre-urls version))
(sha256 (sha256
(base32 (base32
"0c587v03kz5whh82apva6gwqvczdi6djy29gk0gfd9dbkb2518b1")))) "1zys74hfdi13yyk17x45hvvbx7m97wk7pala3cd8k93xbq8qnai0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(supported-systems '("x86_64-linux" "i686-linux")) (supported-systems '("x86_64-linux" "i686-linux"))
(native-inputs `(("perl" ,perl) (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 (define-public linux-libre-4.4
(package (package
(inherit linux-libre) (inherit linux-libre)
(version "4.4.10") (version "4.4.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (linux-libre-urls version)) (uri (linux-libre-urls version))
(sha256 (sha256
(base32 (base32
"1k7h632vgh3wlz44qqawy238f4mzn19bm9sz9zqq0ql6wwhkjdkj")))) "17pb9w72vigdrhm8hnkdyw9kwc2l06nabzygpdkwbvf7fg3j03vc"))))
(native-inputs (native-inputs
(let ((conf (kernel-config (or (%current-target-system) (let ((conf (kernel-config (or (%current-target-system)
(%current-system)) (%current-system))
@ -1182,15 +1183,15 @@ configuration and monitoring interfaces.")
(define-public iw (define-public iw
(package (package
(name "iw") (name "iw")
(version "3.17") (version "4.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://www.kernel.org/pub/software/network/iw/iw-" "mirror://kernel.org/software/network/iw/iw-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"14zsapqhivk0ws5z21y1ys2c2czi05mzk7bl2yb7qxcfrnsjx9j8")))) "085jyvrxzarvn5jl0fk618jjxy50nqx7ifngszc4jxk6a4ddibd6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libnl" ,libnl))) (inputs `(("libnl" ,libnl)))
@ -1198,11 +1199,11 @@ configuration and monitoring interfaces.")
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")) `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc") "CC=gcc")
#:phases (alist-delete 'configure %standard-phases))) #: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") (synopsis "Tool for configuring wireless devices")
(description (description
"iw is a new nl80211 based CLI configuration utility for wireless "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))) (license license:isc)))
(define-public powertop (define-public powertop
@ -1827,7 +1828,7 @@ compliance.")
(define-public wireless-regdb (define-public wireless-regdb
(package (package
(name "wireless-regdb") (name "wireless-regdb")
(version "2015.04.06") (version "2016.05.02")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1835,7 +1836,7 @@ compliance.")
"wireless-regdb-" version ".tar.xz")) "wireless-regdb-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0czi83k311fp27z42hxjm8vi88fsbc23mhavv96lkb4pmari0jjc")) "07n6gcwfbddz3awbdflv3dhxjszsqq2lrdwih0a0ahcliac4qry9"))
;; We're building 'regulatory.bin' by ourselves. ;; We're building 'regulatory.bin' by ourselves.
(snippet '(delete-file "regulatory.bin")))) (snippet '(delete-file "regulatory.bin"))))
@ -2332,7 +2333,7 @@ MPEG-2 and audio over Linux IEEE 1394.")
(define-public mdadm (define-public mdadm
(package (package
(name "mdadm") (name "mdadm")
(version "3.3.2") (version "3.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2340,8 +2341,7 @@ MPEG-2 and audio over Linux IEEE 1394.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg")) "0248v9f28mrbwabl94ck22gfim29sqhkf70wrpfi52nk4x3bxl17"))))
(patches (search-patches "mdadm-gcc-4.9-fix.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("udev" ,eudev))) `(("udev" ,eudev)))
@ -2401,18 +2401,41 @@ system calls, important for the performance of databases and other advanced
applications.") applications.")
(license license:lgpl2.1+))) (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 (define-public bluez
(package (package
(name "bluez") (name "bluez")
(version "5.36") (version "5.39")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://www.kernel.org/pub/linux/bluetooth/bluez-" "mirror://kernel.org/linux/bluetooth/bluez-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1wkqwmi5krr37mxcqqlp5m2xnw7vw70v3ww7j09vvlskxcdflhx3")))) "0fsrf9rdmrdyx0vmcpfji4imjsvliawyy5sjb6b64myka28vrl91"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -2542,7 +2565,7 @@ and copy/paste text in the console and in xterm.")
(define-public btrfs-progs (define-public btrfs-progs
(package (package
(name "btrfs-progs") (name "btrfs-progs")
(version "4.5.1") (version "4.5.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/" (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")) "btrfs-progs-v" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f")))) "1lzbw275xgv69v4z8hmsf3jnip38116hxhkpv0madk8wv049drz6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"static")) ; static versions of binaries in "out" (~16MiB!) "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 other @code{hwmon} driver that enables temperature reading and fan control
from userspace.") from userspace.")
(license license:gpl3+))) (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 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; 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.") repository and Maildir/IMAP as LOCAL repository.")
(license gpl2+))) (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 (define-public mu
(package (package
(name "mu") (name "mu")
(version "0.9.13") (version "0.9.16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/djcb/mu/archive/v" (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")) (file-name (string-append "mu-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51")) "0p7hqri1r1x6750x138cc29mh81kdav2dcim26y58s8an206h25g"))))
(patches (list %mu-gtester-patch))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -364,18 +355,39 @@ repository and Maildir/IMAP as LOCAL repository.")
("gmime" ,gmime) ("gmime" ,gmime)
("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c ("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
(arguments (arguments
'(#:phases (alist-cons-after `(#:modules ((guix build gnu-build-system)
'unpack 'autoreconf (guix build utils)
(lambda _ (guix build emacs-utils))
(zero? (system* "autoreconf" "-vi"))) #:imported-modules (,@%gnu-build-system-modules
(alist-cons-before (guix build emacs-utils))
'check 'check-tz-setup #:phases
(lambda* (#:key inputs #:allow-other-keys) (modify-phases %standard-phases
;; For mu/test/test-mu-query.c (add-after 'unpack 'patch-configure.ac
(setenv "TZDIR" ;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
(string-append (assoc-ref inputs "tzdata") ;; so our Emacs package can't find it. Setting "--with-lispdir"
"/share/zoneinfo"))) ;; configure flag doesn't help because "mu4e" will be added to
%standard-phases)))) ;; 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/") (home-page "http://www.djcbsoftware.nl/code/mu/")
(synopsis "Quickly find emails") (synopsis "Quickly find emails")
(description (description

View File

@ -11,6 +11,8 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;
@ -46,6 +48,7 @@
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
@ -79,6 +82,7 @@
#:use-module (gnu packages tcl) #:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive) #:use-module (gnu packages texlive)
#:use-module (gnu packages tls)
#:use-module (gnu packages wxwidgets) #:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages zip) #:use-module (gnu packages zip)
@ -583,7 +587,7 @@ online as well as original implementations of various other algorithms.")
(define-public octave (define-public octave
(package (package
(name "octave") (name "octave")
(version "4.0.0") (version "4.0.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -591,7 +595,7 @@ online as well as original implementations of various other algorithms.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc")))) "1hdxap3j88rpqjimnfhinym6z73wdi5dfa6fv85c13r1dk9qzk9r"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("lapack" ,lapack) `(("lapack" ,lapack)
@ -602,6 +606,7 @@ online as well as original implementations of various other algorithms.")
("arpack" ,arpack-ng) ("arpack" ,arpack-ng)
("curl" ,curl) ("curl" ,curl)
("pcre" ,pcre) ("pcre" ,pcre)
("cyrus-sasl" ,cyrus-sasl)
("fltk" ,fltk) ("fltk" ,fltk)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
@ -609,6 +614,7 @@ online as well as original implementations of various other algorithms.")
("libxft" ,libxft) ("libxft" ,libxft)
("mesa" ,mesa) ("mesa" ,mesa)
("glu" ,glu) ("glu" ,glu)
("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs
`(("gfortran" ,gfortran) `(("gfortran" ,gfortran)
@ -626,9 +632,10 @@ online as well as original implementations of various other algorithms.")
("ghostscript" ,ghostscript) ("ghostscript" ,ghostscript)
("gnuplot" ,gnuplot))) ("gnuplot" ,gnuplot)))
(arguments (arguments
`(#:configure-flags (list (string-append "--with-shell=" `(#:configure-flags
(assoc-ref %build-inputs "bash") (list (string-append "--with-shell="
"/bin/sh")))) (assoc-ref %build-inputs "bash")
"/bin/sh"))))
(home-page "http://www.gnu.org/software/octave/") (home-page "http://www.gnu.org/software/octave/")
(synopsis "High-level language for numerical computation") (synopsis "High-level language for numerical computation")
(description "GNU Octave is a high-level interpreted language that is (description "GNU Octave is a high-level interpreted language that is
@ -664,6 +671,9 @@ script files.")
("glu" ,glu) ("glu" ,glu)
("libx11" ,libx11) ("libx11" ,libx11)
("libxext" ,libxext))) ("libxext" ,libxext)))
(inputs
`(("fontconfig" ,fontconfig)
("libxft" ,libxft)))
(arguments (arguments
`(#:configure-flags `("-DENABLE_METIS:BOOL=OFF" `(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
"-DENABLE_BUILD_SHARED:BOOL=ON" "-DENABLE_BUILD_SHARED:BOOL=ON"
@ -1588,7 +1598,7 @@ point numbers.")
(define-public wxmaxima (define-public wxmaxima
(package (package
(name "wxmaxima") (name "wxmaxima")
(version "15.04.0") (version "16.04.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1596,7 +1606,7 @@ point numbers.")
version "/" name "-" version ".tar.gz")) version "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1fm47ah4aw5qdjqhkz67w5fwhy8yfffa5z896crp0d3hk2bh4180")))) "1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("wxwidgets" ,wxwidgets) `(("wxwidgets" ,wxwidgets)
@ -1631,14 +1641,14 @@ full text searching.")
(define-public armadillo (define-public armadillo
(package (package
(name "armadillo") (name "armadillo")
(version "6.700.4") (version "6.700.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/arma/armadillo-" (uri (string-append "mirror://sourceforge/arma/armadillo-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0dsdjcps5l2nhg0455rrc708inffarzj7n435vj4sm9lxwf21wg9")))) "0xbidcxrvbq33xf7iysg2nic2ai9a043psl33kiv6ifkk7p8hcra"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments `(#:tests? #f)) ;no test target (arguments `(#:tests? #f)) ;no test target
(inputs (inputs
@ -1659,14 +1669,14 @@ associated functions (eg. contiguous and non-contiguous submatrix views).")
(define-public armadillo-for-rcpparmadillo (define-public armadillo-for-rcpparmadillo
(package (inherit armadillo) (package (inherit armadillo)
(version "6.700.3") (version "6.700.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/arma/armadillo-" (uri (string-append "mirror://sourceforge/arma/armadillo-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1vnhifa7d0aij3kv5bxf6m91d99h3y2fyj48jrx7jcvwyb1q5wwq")))))) "1cdpjxb0fz5f28y5qrqgpw53s7qi8s2v3al9lfdldqxngb21vpx8"))))))
(define-public muparser (define-public muparser
(package (package
@ -2199,7 +2209,23 @@ in finite element programs.")
;; ("python2-numpy" ,python2-numpy) ; only required for the tests ;; ("python2-numpy" ,python2-numpy) ; only required for the tests
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (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/") (home-page "http://www.cs.ubc.ca/research/flann/")
(synopsis "Library for approximate nearest neighbors computation") (synopsis "Library for approximate nearest neighbors computation")
(description "FLANN is a library for performing fast approximate (description "FLANN is a library for performing fast approximate

View File

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

View File

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

View File

@ -34,14 +34,14 @@
(define-public owncloud-client (define-public owncloud-client
(package (package
(name "owncloud-client") (name "owncloud-client")
(version "2.1.1") (version "2.2.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.owncloud.com/desktop/stable/" (uri (string-append "https://download.owncloud.com/desktop/stable/"
"owncloudclient-" version ".tar.xz")) "owncloudclient-" version ".tar.xz"))
(sha256 (sha256
(base32 "1jxi439qff4acvyvszjprj42kvzhlz255wv8g4p3jrf55svzwz2f")))) (base32 "1ak7hq13hl7qndm3zz7hdfvw6930kmhjh27s1427g784vxcqb23q"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:phases `(#: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 ;; Note: use a very short commit id; with a longer one, the limit on
;; hash-bang lines would be exceeded while running the tests. ;; hash-bang lines would be exceeded while running the tests.
(let ((commit "80627f51f0238b9450745f4e642172d059ca5bb5")) (let ((commit "e9017c98d61f305b624bacaa30e8891ec0100980"))
(package (inherit guix-0.10.0) (package (inherit guix-0.10.0)
(version (string-append "0.10.0-0." (string-take commit 4))) (version (string-append "0.10.0-0." (string-take commit 4)))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (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))) (commit commit)))
(sha256 (sha256
(base32 (base32
"102gdbx5imx0zab7i5dwa1z9j1diblinaaja09dp3q30770iyxj9")) "13mfk10cw6fk4diclzld56xwabshanxjcczdrjlj0wisaz32h3nl"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments guix-0.10.0) (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 (guix build-system gnu)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages bdw-gc) #:use-module (gnu packages bdw-gc)
#:use-module (gnu packages emacs)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
@ -188,6 +189,7 @@ colors, styles, options and details.")
`(("gs" ,ghostscript) ;For tests `(("gs" ,ghostscript) ;For tests
("texinfo" ,texinfo) ;For generating documentation ("texinfo" ,texinfo) ;For generating documentation
("texlive" ,texlive) ;For tests and documentation ("texlive" ,texlive) ;For tests and documentation
("emacs" ,emacs-no-x)
("perl" ,perl))) ("perl" ,perl)))
(inputs (inputs
`(("fftw" ,fftw) `(("fftw" ,fftw)
@ -198,7 +200,13 @@ colors, styles, options and details.")
("readline" ,readline) ("readline" ,readline)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (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")) (list (string-append "--enable-gc=" (assoc-ref %build-inputs "libgc"))
(string-append "--with-latex=" (string-append "--with-latex="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
@ -210,15 +218,26 @@ colors, styles, options and details.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'patch-pdf-viewer (add-before 'build 'patch-pdf-viewer
(lambda _ (lambda _
;; Default to a free pdf viewer ;; Default to a free pdf viewer.
(substitute* "settings.cc" (substitute* "settings.cc"
(("defaultPDFViewer=\"acroread\"") (("defaultPDFViewer=\"acroread\"")
"defaultPDFViewer=\"gv\"")))) "defaultPDFViewer=\"gv\""))
#t))
(add-before 'check 'set-HOME (add-before 'check 'set-HOME
;; Some tests require write access to $HOME, otherwise leading to ;; Some tests require write access to $HOME, otherwise leading to
;; "failed to create directory /homeless-shelter/.asy" error. ;; "failed to create directory /homeless-shelter/.asy" error.
(lambda _ (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") (home-page "http://asymptote.sourceforge.net")
(synopsis "Script-based vector graphics language") (synopsis "Script-based vector graphics language")
(description (description

View File

@ -18,6 +18,7 @@
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -90,7 +91,7 @@
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public python-2 (define-public python-2.7
(package (package
(name "python") (name "python")
(version "2.7.11") (version "2.7.11")
@ -281,7 +282,10 @@ packages; exception-based error handling; and very high level dynamic
data types.") data types.")
(license psfl))) (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) (package (inherit python-2)
(version "3.4.3") (version "3.4.3")
(source (origin (source (origin
@ -307,6 +311,12 @@ data types.")
(version-major+minor version) (version-major+minor version)
"/site-packages")))))))) "/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 ;; Minimal variants of Python, mostly used to break the cycle between Tk and
;; Python (Tk -> libxcb -> Python.) ;; Python (Tk -> libxcb -> Python.)
@ -1002,15 +1012,16 @@ datetime module, available in Python 2.3+.")
(define-public python-pandas (define-public python-pandas
(package (package
(name "python-pandas") (name "python-pandas")
(version "0.18.0") (version "0.18.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pandas" version)) (uri (string-append
"https://pypi.python.org/packages/11/09/"
"e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/"
"pandas-" version ".tar.gz"))
(sha256 (sha256
(base32 "050qw0ap5bhyv5flp78x3lcq1dlminl3xaj6kbrm0jqmx0672xf9")) (base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j"))))
(patches (search-patches
"python-pandas-fix-tslib-test-failure.patch"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-numpy" ,python-numpy))) `(("python-numpy" ,python-numpy)))
@ -1018,8 +1029,7 @@ datetime module, available in Python 2.3+.")
`(("python-pytz" ,python-pytz) `(("python-pytz" ,python-pytz)
("python-dateutil" ,python-dateutil-2))) ("python-dateutil" ,python-dateutil-2)))
(native-inputs (native-inputs
`(("python-nose" ,python-nose) `(("python-nose" ,python-nose)))
("python-setuptools" ,python-setuptools)))
(home-page "http://pandas.pydata.org") (home-page "http://pandas.pydata.org")
(synopsis "Data structures for data analysis, time series, and statistics") (synopsis "Data structures for data analysis, time series, and statistics")
(description (description
@ -1028,15 +1038,15 @@ structures designed to make working with structured (tabular,
multidimensional, potentially heterogeneous) and time series data both easy multidimensional, potentially heterogeneous) and time series data both easy
and intuitive. It aims to be the fundamental high-level building block for and intuitive. It aims to be the fundamental high-level building block for
doing practical, real world data analysis in Python.") doing practical, real world data analysis in Python.")
(license bsd-3))) (license bsd-3)
(properties `((python2-variant . ,(delay python2-pandas))))))
(define-public python2-pandas (define-public python2-pandas
(let ((pandas (package-with-python2 python-pandas))) (let ((base (package-with-python2 (strip-python2-variant python-pandas))))
(package (inherit pandas) (package
(propagated-inputs (inherit base)
`(("python2-numpy" ,python2-numpy) (native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(alist-delete "python-numpy" ,@(package-native-inputs base))))))
(package-propagated-inputs pandas)))))))
(define-public python-tzlocal (define-public python-tzlocal
(package (package
@ -5856,16 +5866,18 @@ responses, rather than doing any computation.")
(define-public python-cryptography-vectors (define-public python-cryptography-vectors
(package (package
(name "python-cryptography-vectors") (name "python-cryptography-vectors")
(version "1.3.1") (version "1.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://pypi.python.org/packages/source/c/" (uri (string-append
"cryptography-vectors/cryptography_vectors-" "https://pypi.python.org/packages/"
version ".tar.gz")) "3f/fd/"
"5883a7fdfcdf6edec55c58605be99d8c36ce97a9b729763ea9cf30e761b7"
"/cryptography_vectors-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1144l3ypz3bngxd59lb4y74xa401w92lhvvjgxzglmvbh8wzkcbb")))) "0ss682bpgzdfy2vam8yhhrx7p5gnw89ydlvaswqp52za8sd8nsh0"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-setuptools" ,python-setuptools))) `(("python-setuptools" ,python-setuptools)))
@ -5882,14 +5894,18 @@ responses, rather than doing any computation.")
(define-public python-cryptography (define-public python-cryptography
(package (package
(name "python-cryptography") (name "python-cryptography")
(version "1.3.1") (version "1.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "cryptography" version)) (uri (string-append
"https://pypi.python.org/packages/"
"04/da/"
"35f9a1d34dab5d777f65fb87731288f338ab0ae46a525ffdf0405b573dd0"
"/cryptography-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1qjkrpfvxcyd0kal3zpm5y7f9p3y77ixn9jw8f4dqpgrw1sn3cxl")))) "121067qdbzd0ir0nxjdf0kgai7qlsc9yh2xhrj4cavcn4y4gmapv"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("openssl" ,openssl))) `(("openssl" ,openssl)))
@ -8764,3 +8780,30 @@ respectively.")
(description (string-append "This is an experimental compiler for a subset of (description (string-append "This is an experimental compiler for a subset of
Python. It generates C++ code and a Makefile.")) Python. It generates C++ code and a Makefile."))
(license (list gpl3 bsd-3 license:expat)))) (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 (define-public qemu
(package (package
(name "qemu") (name "qemu")
(version "2.5.1.1") (version "2.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://wiki.qemu-project.org/download/qemu-" (uri (string-append "http://wiki.qemu-project.org/download/qemu-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1rpgr1v6gnsdb4bcxwn1krsz4d4h9xgvlg6ark648nkn8dp99n98")))) "1v1lhhd6m59hqgmiz100g779rjq70pik5v4b3g936ci73djlmb69"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(;; FIXME: On x86_64, the test 'check-qtest-x86_64' sometimes fails when '(#:phases (alist-replace
;; parallel builds are enabled.
#:parallel-tests? #f
#:phases (alist-replace
'configure 'configure
(lambda* (#:key inputs outputs (configure-flags '()) (lambda* (#:key inputs outputs (configure-flags '())
#:allow-other-keys) #:allow-other-keys)

View File

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

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,11 +23,15 @@
(define-module (gnu packages scheme) (define-module (gnu packages scheme)
#:use-module (gnu packages) #: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 packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
@ -38,6 +43,7 @@
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages texlive) #:use-module (gnu packages texlive)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages avahi) #:use-module (gnu packages avahi)
#:use-module (gnu packages libphidget) #: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 support teaching and research in mathematical physics and electrical
engineering.") engineering.")
(license gpl2+)))) (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 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -356,13 +357,13 @@ Munsell colour system.")
(define-public r-rcpp (define-public r-rcpp
(package (package
(name "r-rcpp") (name "r-rcpp")
(version "0.12.4") (version "0.12.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "Rcpp" version)) (uri (cran-uri "Rcpp" version))
(sha256 (sha256
(base32 "1lyhyaxrnb5w4igi3l1p378s4jblcnrv6h7h5ym42ljm54mm44w3")))) (base32 "1vw0zbd6zhqixqg7h8ahn1dr1hb492365x419nrp2lhvr60r8i0k"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://www.rcpp.org") (home-page "http://www.rcpp.org")
(synopsis "Seamless R and C++ Integration") (synopsis "Seamless R and C++ Integration")
@ -604,13 +605,13 @@ evaluation (NSE) in R.")
(define-public r-dbi (define-public r-dbi
(package (package
(name "r-dbi") (name "r-dbi")
(version "0.3.1") (version "0.4-1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "DBI" version)) (uri (cran-uri "DBI" version))
(sha256 (sha256
(base32 (base32
"0xj5baxwnhl23rd5nskhjvranrwrc68f3xlyrklglipi41bm69hw")))) "13n6ibmrma42qmq17qgkyjsc0ciwqf17sd7lw7w26pwpyjd4mwgg"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/rstats-db/DBI") (home-page "https://github.com/rstats-db/DBI")
(synopsis "R database interface") (synopsis "R database interface")
@ -624,13 +625,13 @@ R/DBMS implementations.")
(define-public r-bh (define-public r-bh
(package (package
(name "r-bh") (name "r-bh")
(version "1.60.0-1") (version "1.60.0-2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "BH" version)) (uri (cran-uri "BH" version))
(sha256 (sha256
(base32 (base32
"08gc3b0irgvpjl59irdxs8jhlbky4yp4fvs3zi4pq0wdwj43cfsk")))) "136497fng9bcvrf8favpj8inz96pxdwp1rrb2k00sxjxjbgawhg4"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/eddelbuettel/bh") (home-page "https://github.com/eddelbuettel/bh")
(synopsis "R package providing subset of Boost headers") (synopsis "R package providing subset of Boost headers")
@ -642,13 +643,13 @@ for template use among CRAN packages.")
(define-public r-evaluate (define-public r-evaluate
(package (package
(name "r-evaluate") (name "r-evaluate")
(version "0.8.3") (version "0.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "evaluate" version)) (uri (cran-uri "evaluate" version))
(sha256 (sha256
(base32 (base32
"08d6164m9wqf9qq6yh1s9a0qxwqzqpsq7312hilzy79gxf9gixzr")))) "1bn6bympg9prr8d16g1g530bddii8i04hf4i2bkw0yf4dsfqq4g8"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-stringr" ,r-stringr))) `(("r-stringr" ,r-stringr)))
@ -664,13 +665,13 @@ adapted for other output formats, such as HTML or LaTeX.")
(define-public r-formatr (define-public r-formatr
(package (package
(name "r-formatr") (name "r-formatr")
(version "1.3") (version "1.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "formatR" version)) (uri (cran-uri "formatR" version))
(sha256 (sha256
(base32 (base32
"09fsd0z6nhksc1h921h8q28f87hr6d1q8d6dmpxphjylb9r5xmj4")))) "1fvynq0fj1r9grg9vvfdh5fl2riv6qki9f2rfpyvbvqq3xxpmi3f"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://yihui.name/formatR") (home-page "http://yihui.name/formatR")
(synopsis "Format R code automatically") (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 (define-public r-highr
(package (package
(name "r-highr") (name "r-highr")
(version "0.5.1") (version "0.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "highr" version)) (uri (cran-uri "highr" version))
(sha256 (sha256
(base32 (base32
"11hyawzhaw3ph5y5xphi7alx6df1d0i6wh0a2n5m4sxxhdrzswnb")))) "0n9v44dxdy5fhkdmpbpa2p78whyd9z3rhhy42ipdz5m5vsr55qa3"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://github.com/yihui/highr") (home-page "https://github.com/yihui/highr")
(synopsis "Syntax highlighting for R source code") (synopsis "Syntax highlighting for R source code")
@ -765,13 +766,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
(define-public r-knitr (define-public r-knitr
(package (package
(name "r-knitr") (name "r-knitr")
(version "1.12.3") (version "1.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "knitr" version)) (uri (cran-uri "knitr" version))
(sha256 (sha256
(base32 (base32
"1v3rzv6wq8mvpdrljsaqk4z3f8323jnv385js24wmn4fglqly6dz")))) "0v69846myi4fbjp8wiik4295fhba67s3i6ccysghm6x031i2f26q"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-evaluate" ,r-evaluate) `(("r-evaluate" ,r-evaluate)
@ -915,13 +916,13 @@ R packages that praise their users.")
(define-public r-testthat (define-public r-testthat
(package (package
(name "r-testthat") (name "r-testthat")
(version "1.0.0") (version "1.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "testthat" version)) (uri (cran-uri "testthat" version))
(sha256 (sha256
(base32 (base32
"1ci1y54kaz7g4di79fcibp0m0wkkxn2glchhs6v8jfg6374ka410")))) "0pj1r01x4ny4capr83dfa19hi5i2sjjxky99schzip8zrq5dzxqf"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-digest" ,r-digest) `(("r-digest" ,r-digest)
@ -1395,14 +1396,14 @@ collation, and NAMESPACE files.")
(define-public r-openssl (define-public r-openssl
(package (package
(name "r-openssl") (name "r-openssl")
(version "0.9.2") (version "0.9.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "openssl" version)) (uri (cran-uri "openssl" version))
(sha256 (sha256
(base32 (base32
"1dbsaciz39zvsmcyxkmpfm5yxzrpw2iv2nb86525wn80q0cyv0cb")))) "0ldqam7d9fyxwhr651ld6lsh05lg4v2y8ajxwzq9ywzjmfb3vlpz"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
`(("openssl" ,openssl))) `(("openssl" ,openssl)))
@ -1452,13 +1453,13 @@ functions make it easy to control additional request components.")
(define-public r-git2r (define-public r-git2r
(package (package
(name "r-git2r") (name "r-git2r")
(version "0.14.0") (version "0.15.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "git2r" version)) (uri (cran-uri "git2r" version))
(sha256 (sha256
(base32 (base32
"0jkkrggffpflaaw0gn2hnm1wz83xs31amriim481g73zf30g2bpr")))) "1rpdf85wy9fp456ypvbhl3p9whkb7kgl0n7rkqxd2bhvyzkvjak8"))))
(build-system r-build-system) (build-system r-build-system)
;; This R package contains modified sources of libgit2. This modified ;; This R package contains modified sources of libgit2. This modified
;; version of libgit2 is built as the package is built. Hence libgit2 is ;; 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 (define-public r-devtools
(package (package
(name "r-devtools") (name "r-devtools")
(version "1.11.0") (version "1.11.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "devtools" version)) (uri (cran-uri "devtools" version))
(sha256 (sha256
(base32 (base32
"101j15d0f9107pnmdpdwqyvk2ncykq48336rl8lnqp6idiq8id2q")))) "0ik3l3q62sspdph613f9ik5yz36s8q5nrc50dqgn3pxzvpwpdj2i"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-curl" ,r-curl) `(("r-curl" ,r-curl)
@ -1567,13 +1568,13 @@ disk (or a connection).")
(define-public r-plotrix (define-public r-plotrix
(package (package
(name "r-plotrix") (name "r-plotrix")
(version "3.6-1") (version "3.6-2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "plotrix" version)) (uri (cran-uri "plotrix" version))
(sha256 (sha256
(base32 (base32
"1y8xnlpy4zba70af9lwj2sshvfdfcmfdh92wamyzj8z9gciailfr")))) "1jn1k3skmlgyvpijj6vlcn5m2zgrsdh00g1fq8n5dqs1pkl1sqrw"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://cran.r-project.org/web/packages/plotrix") (home-page "http://cran.r-project.org/web/packages/plotrix")
(synopsis "Various plotting functions") (synopsis "Various plotting functions")
@ -1646,13 +1647,13 @@ well as additional utilities such as panel and axis annotation functions.")
(define-public r-rcpparmadillo (define-public r-rcpparmadillo
(package (package
(name "r-rcpparmadillo") (name "r-rcpparmadillo")
(version "0.6.700.3.0") (version "0.6.700.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "RcppArmadillo" version)) (uri (cran-uri "RcppArmadillo" version))
(sha256 (sha256
(base32 (base32
"1mc62b6my568ni18w4clgs6l6ggqrwzsm3lgx0c1prf4rap69s8w")) "0x736cjg1pbvn8c6h91c88qmmz4pddvvqg88k9c9kwhn24fjrra0"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Remove bundled armadillo sources ;; Remove bundled armadillo sources
(snippet (snippet
@ -1730,14 +1731,14 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
(define-public r-rmarkdown (define-public r-rmarkdown
(package (package
(name "r-rmarkdown") (name "r-rmarkdown")
(version "0.9.5") (version "0.9.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "rmarkdown" version)) (uri (cran-uri "rmarkdown" version))
(sha256 (sha256
(base32 (base32
"1zz98jxvw3lzva5kkj1n37gbhjwqd96gjs04y6h37pqy6qmkhk8c")))) "09ajq5miqzz46q0i9svvbh93dbi7xbjn4702d6z3scdz272gx7l2"))))
(properties `((upstream-name . "rmarkdown"))) (properties `((upstream-name . "rmarkdown")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -2411,13 +2412,13 @@ persistent (on the file system).")
(define-public r-r-rsp (define-public r-r-rsp
(package (package
(name "r-r-rsp") (name "r-r-rsp")
(version "0.21.0") (version "0.30.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "R.rsp" version)) (uri (cran-uri "R.rsp" version))
(sha256 (sha256
(base32 (base32
"0snc6ps75s3ci6sy8mil1wg2i9xmlr1ygh9n244y1brdvp43dfsw")))) "1ssykygqkxzx9qblxhavxlf2z6r5bhk0s47yw1dllfiyc8zy7jv2"))))
(properties `((upstream-name . "R.rsp"))) (properties `((upstream-name . "R.rsp")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -2461,13 +2462,13 @@ t-probabilities, quantiles, random deviates and densities.")
(define-public r-matrixstats (define-public r-matrixstats
(package (package
(name "r-matrixstats") (name "r-matrixstats")
(version "0.50.1") (version "0.50.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "matrixStats" version)) (uri (cran-uri "matrixStats" version))
(sha256 (sha256
(base32 (base32
"08l32abp7dfnsc49ca4hzznh934y60n5z01x5ga2ixky5961s57c")))) "0zj27xxx9cyrq16rn4g3l0krqg68p8f2qp18w1w4i767j87amlbj"))))
(properties `((upstream-name . "matrixStats"))) (properties `((upstream-name . "matrixStats")))
(build-system r-build-system) (build-system r-build-system)
(native-inputs (native-inputs
@ -2563,13 +2564,13 @@ It uses and relies on grid graphics and formal (S4) classes and methods.")
(define-public r-plotly (define-public r-plotly
(package (package
(name "r-plotly") (name "r-plotly")
(version "3.4.13") (version "3.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "plotly" version)) (uri (cran-uri "plotly" version))
(sha256 (sha256
(base32 (base32
"1pfl9w35iwin8a1hfwcihajyps2ngjbyrmvi61b9lspcdbk39lf8")))) "15hvqa0sf4z6l6vvr614zjszfphwpv66zpc665iyiynq0pd1jv2c"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-base64enc" ,r-base64enc) `(("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.") data behind them) can be viewed and modified in a web browser.")
(license license:x11))) (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 (define-public r-ztable
(package (package

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015 Roel Janssen <roel@gnu.org> ;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,8 +28,10 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages python)) #:use-module (gnu packages python)
#:use-module (gnu packages zip))
(define-public recode (define-public recode
(package (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 to everybody, because they believe that everybody runs Windows and therefore
runs Word\".") runs Word\".")
(license license:gpl2+))) (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 (define-public python-acme
(package (package
(name "python-acme") (name "python-acme")
(version "0.5.0") (version "0.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (string-append
"https://pypi.python.org/packages/"
"af/33/703e5ec3d7efde7c4d2fcea9cdf88953a33d4e72aafd5b0a330173a7b395/"
"acme-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1g8scfkhs3l06588h73py81xb1gvkkdzaxanl21whcvdclycc186")))) "1ipck25c6nr0x54w2cc8ziwjmyyrpyz6pc1y8xc9nqmxvw4n0kpc"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -407,16 +410,19 @@ security, and applying best practice development processes.")
(define-public python2-acme (define-public python2-acme
(package-with-python2 python-acme)) (package-with-python2 python-acme))
(define-public letsencrypt (define-public certbot
(package (package
(name "letsencrypt") (name "certbot")
(version "0.5.0") (version "0.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "letsencrypt" version)) (uri (string-append
"https://pypi.python.org/packages/"
"fc/eb/7594bf16d89909a9d52c46edbeae669d4b2ee6e12453bd97e674d0371920/"
name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0nnijs26kkw07yylszc97p3jw09y98j54xihjp0rprrbp1q2p2p3")))) "0ba95cf6shmyhi4vzvk64vbkrmr8qvkn32k3xwb2iv7ybbfbgc40"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2 `(#:python ,python-2
@ -428,14 +434,14 @@ security, and applying best practice development processes.")
(man1 (string-append out "/share/man/man1")) (man1 (string-append out "/share/man/man1"))
(man7 (string-append out "/share/man/man7")) (man7 (string-append out "/share/man/man7"))
(info (string-append out "/info"))) (info (string-append out "/info")))
(substitute* "docs/man/letsencrypt.rst" (substitute* "docs/man/certbot.rst"
(("letsencrypt --help all") (("certbot --help all")
(string-append out "/bin/letsencrypt" " --help all"))) (string-append out "/bin/certbot" " --help all")))
(and (and
(zero? (system* "make" "-C" "docs" "man" "info")) (zero? (system* "make" "-C" "docs" "man" "info"))
(install-file "docs/_build/texinfo/LetsEncrypt.info" info) (install-file "docs/_build/texinfo/Certbot.info" info)
(install-file "docs/_build/man/letsencrypt.1" man1) (install-file "docs/_build/man/certbot.1" man1)
(install-file "docs/_build/man/letsencrypt.7" man7) (install-file "docs/_build/man/certbot.7" man7)
#t))))))) #t)))))))
;; TODO: Add optional inputs for testing. ;; TODO: Add optional inputs for testing.
(native-inputs (native-inputs
@ -465,9 +471,13 @@ security, and applying best practice development processes.")
(description "Tool to automatically receive and install X.509 certificates (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 to enable TLS on servers. The client will interoperate with the Lets Encrypt CA which
will be issuing browser-trusted certificates for free.") will be issuing browser-trusted certificates for free.")
(home-page "https://letsencrypt.org/") (home-page "https://certbot.eff.org/")
(license license:asl2.0))) (license license:asl2.0)))
(define-public letsencrypt
(package (inherit certbot)
(name "letsencrypt")))
(define-public perl-net-ssleay (define-public perl-net-ssleay
(package (package
(name "perl-net-ssleay") (name "perl-net-ssleay")

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,7 +29,7 @@
(define-public tmux (define-public tmux
(package (package
(name "tmux") (name "tmux")
(version "2.1") (version "2.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -36,7 +37,7 @@
version "/tmux-" version ".tar.gz")) version "/tmux-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xk1mylsb08sf0w597mdgj9s6hxxjvjvjd6bngpjvvxwyixlwmii")))) "1r0riry5vw604hc21087ffbkqgr6j4ia1rrsivz2k6grchdm8a5w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libevent" ,libevent) `(("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. ;; FIXME: This variable designates a single file; it is not a search path.
(list (search-path-specification (list (search-path-specification
(variable "GIT_SSL_CAINFO") (variable "GIT_SSL_CAINFO")
(file-type 'regular)
(files '("etc/ssl/certs/ca-certificates.crt"))))) (files '("etc/ssl/certs/ca-certificates.crt")))))
(synopsis "Distributed version control system") (synopsis "Distributed version control system")
@ -323,7 +324,7 @@ command.")))
(define-public libgit2 (define-public libgit2
(package (package
(name "libgit2") (name "libgit2")
(version "0.24.0") (version "0.24.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/libgit2/libgit2/" (uri (string-append "https://github.com/libgit2/libgit2/"
@ -331,7 +332,7 @@ command.")))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1c5jx0pcpz83x7s36jimfz5bj0vy7vwpchq9p4sgdqxy8gwr6rhw")))) "1ppyfwxc276d2p2pwbzlmvs2bkgng425rl8k2rf9nsq66jxqq6b0"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -11,6 +11,7 @@
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -56,6 +57,7 @@
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages perl)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config) #: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.") parse JSON formatted strings back into the C representation of JSON objects.")
(license l:x11))) (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 (define-public rapidjson
(package (package
(name "rapidjson") (name "rapidjson")
@ -2964,13 +3060,13 @@ particularly easy to create complete web applications using httpuv alone.")
(define-public r-jsonlite (define-public r-jsonlite
(package (package
(name "r-jsonlite") (name "r-jsonlite")
(version "0.9.19") (version "0.9.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "jsonlite" version)) (uri (cran-uri "jsonlite" version))
(sha256 (sha256
(base32 (base32
"1hbdraj3xv2l2gs9f205j8z054ycy0bfdvwdhvpa9qlji588sz7g")))) "08b2gifd81yzj0h4k7pqp2cc2r5lwsg3sxnssi6c96rgqvl4702n"))))
(build-system r-build-system) (build-system r-build-system)
(home-page "http://arxiv.org/abs/1403.2805") (home-page "http://arxiv.org/abs/1403.2805")
(synopsis "Robust, high performance JSON parser and generator for R") (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 © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net> ;;; 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. ;;; This file is part of GNU Guix.
;;; ;;;

View File

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

View File

@ -86,6 +86,17 @@ INPUTS."
(find-files dir "\\.*jar$"))) (find-files dir "\\.*jar$")))
inputs)) ":")) 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) (define* (configure #:key inputs outputs (jar-name #f)
#:allow-other-keys) #:allow-other-keys)
(when jar-name (when jar-name
@ -151,6 +162,7 @@ repack them. This is necessary to ensure that archives are reproducible."
(define %standard-phases (define %standard-phases
(modify-phases gnu:%standard-phases (modify-phases gnu:%standard-phases
(replace 'unpack unpack)
(replace 'configure configure) (replace 'configure configure)
(replace 'build build) (replace 'build build)
(replace 'check check) (replace 'check check)

View File

@ -426,6 +426,85 @@ port if PORT is a TLS session record port."
(module-define! (resolve-module '(web client)) (module-define! (resolve-module '(web client))
'shutdown (const #f)) '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 ;; XXX: Work around <http://bugs.gnu.org/19840>, present in Guile
;; up to 2.0.11. ;; up to 2.0.11.
(unless (or (> (string->number (major-version)) 2) (unless (or (> (string->number (major-version)) 2)
@ -605,10 +684,22 @@ Return a list of URIs."
(else (else
(list uri)))) (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 "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 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 (define uri
(append-map (cut maybe-expand-mirrors <> mirrors) (append-map (cut maybe-expand-mirrors <> mirrors)
(match url (match url
@ -628,13 +719,21 @@ on success."
uri) uri)
#f))) #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 ;; Make this unbuffered so 'progress-proc' works as expected. _IOLBF means
;; '\n', not '\r', so it's not appropriate here. ;; '\n', not '\r', so it's not appropriate here.
(setvbuf (current-output-port) _IONBF) (setvbuf (current-output-port) _IONBF)
(setvbuf (current-error-port) _IOLBF) (setvbuf (current-error-port) _IOLBF)
(let try ((uri uri)) (let try ((uri (append uri content-addressed-urls)))
(match uri (match uri
((uri tail ...) ((uri tail ...)
(or (fetch uri file) (or (fetch uri file)

View File

@ -83,6 +83,28 @@ writing the result to OUTPUT."
(put-u8 output (char->integer char)) (put-u8 output (char->integer char))
result))))) 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 (define* (rewrite-directory directory output mapping
#:optional (store (%store-directory))) #:optional (store (%store-directory)))
"Copy DIRECTORY to OUTPUT, replacing strings according to MAPPING, a list of "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 (replace-store-references input output mapping
store) store)
(chmod output (stat:perms stat)))))))) (chmod output (stat:perms stat))))))))
((directory)
(mkdir-p dest))
(else (else
(error "unsupported file type" stat))))) (error "unsupported file type" stat)))))
@ -124,6 +148,8 @@ file name pairs."
(umask #o022) (umask #o022)
(n-par-for-each (parallel-job-count) (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 ;;; graft.scm ends here

View File

@ -176,6 +176,11 @@ download with a fixed hash (aka. `fetchurl')."
#t) #t)
(_ #f))) (_ #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) (define (derivation-input-output-paths input)
"Return the list of output paths corresponding to INPUT, a "Return the list of output paths corresponding to INPUT, a
<derivation-input>." <derivation-input>."
@ -190,6 +195,30 @@ the store."
(every (cut valid-path? store <>) (every (cut valid-path? store <>)
(derivation-input-output-paths input))) (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))) (define* (derivation-prerequisites drv #:optional (cut? (const #f)))
"Return the list of derivation-inputs required to build DRV, recursively. "Return the list of derivation-inputs required to build DRV, recursively.
@ -473,29 +502,6 @@ that form."
(define (write-string-list lst) (define (write-string-list lst)
(write-list lst write port)) (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) (define (write-output output port)
(match output (match output
((name . ($ <derivation-output> path hash-algo hash recursive?)) ((name . ($ <derivation-output> path hash-algo hash recursive?))
@ -515,7 +521,7 @@ that form."
(display "(" port) (display "(" port)
(write path port) (write path port)
(display "," port) (display "," port)
(write-string-list (sort sub-drvs string<?)) (write-string-list sub-drvs)
(display ")" port)))) (display ")" port))))
(define (write-env-var env-var port) (define (write-env-var env-var port)
@ -527,35 +533,20 @@ that form."
(write value port) (write value port)
(display ")" port)))) (display ")" port))))
;; Note: lists are sorted alphabetically, to conform with the behavior of ;; Assume all the lists we are writing are already sorted.
;; C++ `std::map' in Nix itself.
(match drv (match drv
(($ <derivation> outputs inputs sources (($ <derivation> outputs inputs sources
system builder args env-vars) system builder args env-vars)
(display "Derive(" port) (display "Derive(" port)
(write-list (sort outputs (write-list outputs write-output port)
(lambda (o1 o2)
(string<? (car o1) (car o2))))
write-output
port)
(display "," port) (display "," port)
(write-list (sort (coalesce-duplicate-inputs inputs) (write-list inputs write-input port)
(lambda (i1 i2)
(string<? (derivation-input-path i1)
(derivation-input-path i2))))
write-input
port)
(display "," port) (display "," port)
(write-string-list (sort sources string<?)) (write-string-list sources)
(format port ",~s,~s," system builder) (format port ",~s,~s," system builder)
(write-string-list args) (write-string-list args)
(display "," port) (display "," port)
(write-list (sort env-vars (write-list env-vars write-env-var port)
(lambda (e1 e2)
(string<? (car e1) (car e2))))
write-env-var
port)
(display ")" port)))) (display ")" port))))
(define derivation->string (define derivation->string
@ -653,7 +644,10 @@ derivation at FILE."
(let ((hash (derivation-path->base16-hash path))) (let ((hash (derivation-path->base16-hash path)))
(make-derivation-input hash sub-drvs)))) (make-derivation-input hash sub-drvs))))
inputs)) inputs))
(drv (make-derivation outputs inputs sources (drv (make-derivation outputs
(sort (coalesce-duplicate-inputs inputs)
derivation-input<?)
sources
system builder args env-vars system builder args env-vars
#f))) #f)))
@ -820,30 +814,38 @@ output should not be used."
(make-derivation outputs inputs sources system builder (make-derivation outputs inputs sources system builder
args env-vars file)))) 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) (let* ((outputs (map (lambda (name)
;; Return outputs with an empty path. ;; Return outputs with an empty path.
(cons name (cons name
(make-derivation-output "" hash-algo (make-derivation-output "" hash-algo
hash recursive?))) hash recursive?)))
outputs)) (sort outputs string<?)))
(inputs (map (match-lambda (inputs (sort (coalesce-duplicate-inputs
(((? derivation? drv)) (map input->derivation-input
(make-derivation-input (derivation-file-name drv) (delete-duplicates inputs)))
'("out"))) derivation-input<?))
(((? derivation? drv) sub-drvs ...) (env-vars (sort (env-vars-with-empty-outputs
(make-derivation-input (derivation-file-name drv) (user+system-env-vars))
sub-drvs)) (lambda (e1 e2)
(((? direct-store-path? input)) (string<? (car e1) (car e2)))))
(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)))
(drv-masked (make-derivation outputs (drv-masked (make-derivation outputs
(filter (compose derivation-path? (filter (compose derivation-path?
derivation-input-path) derivation-input-path)
@ -858,8 +860,7 @@ output should not be used."
(let ((file (add-text-to-store store (string-append name ".drv") (let ((file (add-text-to-store store (string-append name ".drv")
(derivation->string drv) (derivation->string drv)
(map derivation-input-path (map derivation-input-path inputs))))
inputs))))
(set-file-name drv file)))) (set-file-name drv file))))
(define* (map-derivation store drv mapping (define* (map-derivation store drv mapping

View File

@ -202,7 +202,8 @@
(debian (debian
"http://ftp.de.debian.org/debian/" "http://ftp.de.debian.org/debian/"
"http://ftp.fr.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 (define %mirror-file
;; Copy of the list of mirrors to a file. This allows us to keep a single ;; Copy of the list of mirrors to a file. This allows us to keep a single
@ -210,6 +211,22 @@
;; 'object->string'. ;; 'object->string'.
(plain-file "mirrors" (object->string %mirrors))) (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) (define (gnutls-package)
"Return the default GnuTLS package." "Return the default GnuTLS package."
(let ((module (resolve-interface '(gnu packages tls)))) (let ((module (resolve-interface '(gnu packages tls))))
@ -258,12 +275,21 @@ in the store."
%load-path))) %load-path)))
#~#t) #~#t)
(use-modules (guix build download)) (use-modules (guix build download)
(guix base32))
(url-fetch (call-with-input-string (getenv "guix download url") (let ((value-from-environment (lambda (variable)
read) (call-with-input-string
#$output (getenv variable)
#:mirrors (call-with-input-file #$%mirror-file read)))) 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)))) (let ((uri (and (string? url) (string->uri url))))
(if (or (and (string? url) (not uri)) (if (or (and (string? url) (not uri))
@ -278,14 +304,17 @@ in the store."
#:hash hash #:hash hash
#:modules '((guix build download) #:modules '((guix build download)
(guix build utils) (guix build utils)
(guix ftp-client)) (guix ftp-client)
(guix base32))
;; Use environment variables and a fixed script ;; Use environment variables and a fixed script
;; name so there's only one script in store for ;; name so there's only one script in store for
;; all the downloads. ;; all the downloads.
#:script-name "download" #:script-name "download"
#:env-vars #: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. ;; Honor the user's proxy settings.
#:leaked-env-vars '("http_proxy" "https_proxy") #:leaked-env-vars '("http_proxy" "https_proxy")

View File

@ -65,7 +65,7 @@
(identifier node-type-identifier) ;node -> M identifier (identifier node-type-identifier) ;node -> M identifier
(label node-type-label) ;node -> string (label node-type-label) ;node -> string
(edges node-type-edges) ;node -> M list of nodes (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))) (default (lift1 list %store-monad)))
(name node-type-name) ;string (name node-type-name) ;string
(description node-type-description)) ;string (description node-type-description)) ;string

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; 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> ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -111,11 +111,11 @@ package definition."
(define %cran-url "http://cran.r-project.org/web/packages/") (define %cran-url "http://cran.r-project.org/web/packages/")
(define %bioconductor-url "http://bioconductor.org/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. ;; updated together.
(define %bioconductor-svn-url (define %bioconductor-svn-url
(string-append "https://readonly:readonly@" (string-append "https://readonly:readonly@"
"hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_2/" "hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_3/"
"madman/Rpacks/")) "madman/Rpacks/"))
@ -267,7 +267,7 @@ s-expression corresponding to that package, or #f on failure."
(upstream-source (upstream-source
(package (package-name package)) (package (package-name package))
(version version) (version version)
(urls (bioconductor-uri upstream-name version)))))) (urls (list (bioconductor-uri upstream-name version)))))))
(define (cran-package? package) (define (cran-package? package)
"Return true if PACKAGE is an R package from CRAN." "Return true if PACKAGE is an R package from CRAN."

View File

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

View File

@ -65,9 +65,13 @@
found. Return #f if no build log was found." found. Return #f if no build log was found."
(define (valid-url? url) (define (valid-url? url)
;; Probe URL and return #t if it is accessible. ;; Probe URL and return #t if it is accessible.
(guard (c ((http-get-error? c) #f)) (catch 'getaddrinfo-error
(close-port (http-fetch url #:buffered? #f)) (lambda ()
#t)) (guard (c ((http-get-error? c) #f))
(close-port (http-fetch url #:buffered? #f))
#t))
(lambda _
#f)))
(define (find-url file) (define (find-url file)
(let ((base (basename file))) (let ((base (basename file)))
@ -681,7 +685,8 @@ needed."
(_ #f)) (_ #f))
opts))) 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 (show-what-to-build store drv
#:use-substitutes? #:use-substitutes?
(assoc-ref opts 'substitutes?) (assoc-ref opts 'substitutes?)

View File

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

View File

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

View File

@ -600,15 +600,6 @@ be determined."
((? origin?) ((? origin?)
(and=> (origin-actual-file-name patch) basename)))) (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*) (define (current-vulnerabilities*)
"Like 'current-vulnerabilities', but return the empty list upon networking "Like 'current-vulnerabilities', but return the empty list upon networking
or HTTP errors. This allows network-less operation and makes problems with or HTTP errors. This allows network-less operation and makes problems with
@ -635,9 +626,15 @@ from ~s: ~a (~s)~%")
(current-vulnerabilities*))))) (current-vulnerabilities*)))))
(lambda (package) (lambda (package)
"Return a list of vulnerabilities affecting PACKAGE." "Return a list of vulnerabilities affecting PACKAGE."
((force lookup) ;; First we retrieve the Common Platform Enumeration (CPE) name and
(package-name->cpe-name (package-name package)) ;; version for PACKAGE, then we can pass them to LOOKUP.
(package-version package))))) (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) (define (check-vulnerabilities package)
"Check for known vulnerabilities for 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) (define (narinfo-cache-file cache-url path)
"Return the name of the local file that contains an entry for PATH. The "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." entry is stored in a sub-directory specific to CACHE-URL."
(string-append %narinfo-cache-directory "/" ;; The daemon does not sanitize its input, so PATH could be something like
(bytevector->base32-string (sha256 (string->utf8 cache-url))) ;; "/gnu/store/foo". Gracefully handle that.
"/" (store-path-hash-part path))) (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) (define (cached-narinfo cache-url path)
"Check locally if we have valid info about PATH coming from CACHE-URL. "Check locally if we have valid info about PATH coming from CACHE-URL.

View File

@ -615,7 +615,7 @@ store directory (/gnu/store)."
boolean) boolean)
(define-operation (query-path-hash (store-path path)) (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) base16)
(define hash-part->path (define hash-part->path

View File

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

View File

@ -367,6 +367,33 @@
(and (eq? 'one (call-with-input-file one read)) (and (eq? 'one (call-with-input-file one read))
(eq? 'two (call-with-input-file two 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" (test-assert "multiple-output derivation, derivation-path->output-path"
(let* ((builder (add-text-to-store %store "builder.sh" (let* ((builder (add-text-to-store %store "builder.sh"
"echo one > $out ; echo two > $second" "echo one > $out ; echo two > $second"

View File

@ -127,6 +127,30 @@
(list one two dep) (list one two dep)
(references %store 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" (test-assert "graft-derivation, no dependencies on grafted output"
(run-with-store %store (run-with-store %store
(mlet* %store-monad ((fake (text-file "bash" "Fake bash.")) (mlet* %store-monad ((fake (text-file "bash" "Fake bash."))
@ -158,4 +182,21 @@
(and (string=? (readlink one) repl) (and (string=? (readlink one) repl)
(string=? (readlink two) one)))))) (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) (test-end)

View File

@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU # 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. # This file is part of GNU Guix.
# #
@ -20,6 +20,10 @@
# Test the 'guix graph' command-line utility. # Test the 'guix graph' command-line utility.
# #
tmpfile1="t-guix-graph1-$$"
tmpfile2="t-guix-graph2-$$"
trap 'rm -f "$tmpfile1" "$tmpfile2"' EXIT
guix graph --version guix graph --version
for package in guile-bootstrap coreutils python for package in guile-bootstrap coreutils python
@ -37,3 +41,15 @@ guix graph -e '(@ (gnu packages bootstrap) %bootstrap-guile)' \
| grep guile-bootstrap | grep guile-bootstrap
if guix graph -e +; then false; else true; fi 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"