Merge branch 'master' into core-updates
This commit is contained in:
commit
bc73a84398
1
.mailmap
1
.mailmap
|
@ -24,6 +24,7 @@ Joshua Grant <tadni@riseup.net> <gzg@riseup.net>
|
|||
Joshua Grant <tadni@riseup.net> <jgrant@parenthetical.io>
|
||||
Joshua Grant <tadni@riseup.net> <tadnimi@gmail.com>
|
||||
Joshua Grant <tadni@riseup.net> <youlysses@riseup.net>
|
||||
Kei Kebreau <kei@openmailbox.org>
|
||||
Leo Famulari <leo@famulari.name> <lfamular@gmail.com>
|
||||
Ludovic Courtès <ludo@gnu.org> <ludovic.courtes@inria.fr>
|
||||
Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
|
||||
|
|
|
@ -509,7 +509,7 @@ hydra-jobs.scm: $(GOBJECTS)
|
|||
$(AM_V_GEN)$(top_builddir)/pre-inst-env "$(GUILE)" \
|
||||
"$(top_srcdir)/build-aux/hydra/evaluate.scm" \
|
||||
"$(top_srcdir)/build-aux/hydra/gnu-system.scm" > "$@.tmp"
|
||||
$(AT_V_at)mv "$@.tmp" "$@"
|
||||
$(AM_V_at)mv "$@.tmp" "$@"
|
||||
|
||||
.PHONY: sync-descriptions gen-ChangeLog gen-AUTHORS clean-go make-go
|
||||
.PHONY: assert-no-store-file-names assert-binaries-available
|
||||
|
|
|
@ -4961,6 +4961,19 @@ To view information about a particular vulnerability, visit pages such as:
|
|||
where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g.,
|
||||
@code{CVE-2015-7554}.
|
||||
|
||||
Package developers can specify in package recipes the
|
||||
@uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)}
|
||||
name and version of the package when they differ from the name that Guix
|
||||
uses, as in this example:
|
||||
|
||||
@example
|
||||
(package
|
||||
(name "grub")
|
||||
;; @dots{}
|
||||
;; CPE calls this package "grub2".
|
||||
(properties '((cpe-name . "grub2"))))
|
||||
@end example
|
||||
|
||||
@item formatting
|
||||
Warn about obvious source code formatting issues: trailing white space,
|
||||
use of tabulations, etc.
|
||||
|
@ -5148,6 +5161,12 @@ derivations (@pxref{Derivations}) and plain store items. Compared to
|
|||
the above representation, many additional nodes are visible, including
|
||||
build scripts, patches, Guile modules, etc.
|
||||
|
||||
For this type of graph, it is also possible to pass a @file{.drv} file
|
||||
name instead of a package name, as in:
|
||||
|
||||
@example
|
||||
guix graph -t derivation `guix system build -d my-config.scm`
|
||||
@end example
|
||||
@end table
|
||||
|
||||
All the types above correspond to @emph{build-time dependencies}. The
|
||||
|
@ -5160,6 +5179,14 @@ by @command{guix gc --references} (@pxref{Invoking guix gc}).
|
|||
|
||||
If the given package output is not available in the store, @command{guix
|
||||
graph} attempts to obtain dependency information from substitutes.
|
||||
|
||||
Here you can also pass a store file name instead of a package name. For
|
||||
example, the command below produces the reference graph of your profile
|
||||
(which can be big!):
|
||||
|
||||
@example
|
||||
guix graph -t references `readlink -f ~/.guix-profile`
|
||||
@end example
|
||||
@end table
|
||||
|
||||
The available options are the following:
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
# Copyright © 2013, 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
|
||||
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
# Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
# Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -188,6 +188,7 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/packages/lego.scm \
|
||||
gnu/packages/less.scm \
|
||||
gnu/packages/lesstif.scm \
|
||||
gnu/packages/libbsd.scm \
|
||||
gnu/packages/libcanberra.scm \
|
||||
gnu/packages/libdaemon.scm \
|
||||
gnu/packages/libedit.scm \
|
||||
|
@ -303,6 +304,7 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/packages/search.scm \
|
||||
gnu/packages/serialization.scm \
|
||||
gnu/packages/serveez.scm \
|
||||
gnu/packages/shellutils.scm \
|
||||
gnu/packages/shishi.scm \
|
||||
gnu/packages/skarnet.scm \
|
||||
gnu/packages/skribilo.scm \
|
||||
|
@ -465,7 +467,6 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/duplicity-test_selection-tmp.patch \
|
||||
gnu/packages/patches/elfutils-tests-ptrace.patch \
|
||||
gnu/packages/patches/einstein-build.patch \
|
||||
gnu/packages/patches/emacs-constants-lisp-like.patch \
|
||||
gnu/packages/patches/emacs-exec-path.patch \
|
||||
gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
|
||||
gnu/packages/patches/emacs-source-date-epoch.patch \
|
||||
|
@ -494,6 +495,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/gcc-libiberty-printf-decl.patch \
|
||||
gnu/packages/patches/gcc-libvtv-runpath.patch \
|
||||
gnu/packages/patches/gcc-5.0-libvtv-runpath.patch \
|
||||
gnu/packages/patches/gd-CVE-2016-3074.patch \
|
||||
gnu/packages/patches/geoclue-config.patch \
|
||||
gnu/packages/patches/ghostscript-CVE-2015-3228.patch \
|
||||
gnu/packages/patches/ghostscript-runpath.patch \
|
||||
|
@ -507,6 +509,7 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/glibc-versioned-locpath.patch \
|
||||
gnu/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||
gnu/packages/patches/gmp-faulty-test.patch \
|
||||
gnu/packages/patches/gnome-tweak-tool-search-paths.patch \
|
||||
gnu/packages/patches/gnucash-price-quotes-perl.patch \
|
||||
gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch \
|
||||
gnu/packages/patches/gobject-introspection-cc.patch \
|
||||
|
@ -613,7 +616,6 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/matplotlib-setupext-tk.patch \
|
||||
gnu/packages/patches/maxima-defsystem-mkdir.patch \
|
||||
gnu/packages/patches/mcron-install.patch \
|
||||
gnu/packages/patches/mdadm-gcc-4.9-fix.patch \
|
||||
gnu/packages/patches/mhash-keygen-test-segfault.patch \
|
||||
gnu/packages/patches/mit-krb5-CVE-2015-8629.patch \
|
||||
gnu/packages/patches/mit-krb5-CVE-2015-8630.patch \
|
||||
|
@ -700,7 +702,6 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/python-paste-remove-website-test.patch \
|
||||
gnu/packages/patches/python-paste-remove-timing-test.patch \
|
||||
gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
|
||||
gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \
|
||||
gnu/packages/patches/qt4-ldflags.patch \
|
||||
gnu/packages/patches/ratpoison-shell.patch \
|
||||
gnu/packages/patches/readline-link-ncurses.patch \
|
||||
|
|
|
@ -1482,7 +1482,7 @@ identify enrichments with functional annotations of the genome.")
|
|||
(define-public diamond
|
||||
(package
|
||||
(name "diamond")
|
||||
(version "0.7.9")
|
||||
(version "0.8.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1491,33 +1491,18 @@ identify enrichments with functional annotations of the genome.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hfkcfv9f76h5brbyw9fyvmc0l9cmbsxrcdqk0fa9xv82zj47p15"))
|
||||
(snippet '(begin
|
||||
(delete-file "bin/diamond")
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
"1dqancz32c2l7w1b2vkvh5zqa2jnf99j1c41djnx1l8pxn044zdc"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ;no "check" target
|
||||
'(#:tests? #f ; no "check" target
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enter-source-dir
|
||||
(add-after 'unpack 'remove-native-compilation
|
||||
(lambda _
|
||||
(chdir "src")
|
||||
#t))
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out")
|
||||
"/bin")))
|
||||
(mkdir-p bin)
|
||||
(copy-file "../bin/diamond"
|
||||
(string-append bin "/diamond"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("bc" ,bc)))
|
||||
(substitute* "CMakeLists.txt" (("-march=native") ""))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("zlib" ,zlib)))
|
||||
`(("zlib" ,zlib)))
|
||||
(home-page "https://github.com/bbuchfink/diamond")
|
||||
(synopsis "Accelerated BLAST compatible local sequence aligner")
|
||||
(description
|
||||
|
@ -2094,7 +2079,7 @@ particular, reads spanning multiple exons.")
|
|||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://selab.janelia.org/software/hmmer"
|
||||
"http://eddylab.org/software/hmmer"
|
||||
(version-prefix version 1) "/"
|
||||
version "/hmmer-" version ".tar.gz"))
|
||||
(sha256
|
||||
|
@ -2102,7 +2087,7 @@ particular, reads spanning multiple exons.")
|
|||
"0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl)))
|
||||
(home-page "http://hmmer.janelia.org")
|
||||
(home-page "http://hmmer.org/")
|
||||
(synopsis "Biosequence analysis using profile hidden Markov models")
|
||||
(description
|
||||
"HMMER is used for searching sequence databases for homologs of protein
|
||||
|
@ -3570,7 +3555,7 @@ of these reads to align data quickly through a hash-based indexing scheme.")
|
|||
(define-public sortmerna
|
||||
(package
|
||||
(name "sortmerna")
|
||||
(version "2.1")
|
||||
(version "2.1b")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3580,7 +3565,7 @@ of these reads to align data quickly through a hash-based indexing scheme.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mc5cf1c7xh0h7xb11vh7gqgzx0qvrfa606cb8ixlfg3f2av58s4"))))
|
||||
"1ghaghvd82af9j5adavxh77g7hm247d1r69m3fbi6f1jdivj5ldk"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" ;for binaries
|
||||
"db")) ;for sequence databases
|
||||
|
@ -3600,6 +3585,8 @@ of these reads to align data quickly through a hash-based indexing scheme.")
|
|||
(install-file file share))
|
||||
(find-files "rRNA_databases" ".*fasta"))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(home-page "http://bioinfo.lifl.fr/RNA/sortmerna")
|
||||
(synopsis "Biological sequence analysis tool for NGS reads")
|
||||
(description
|
||||
|
@ -3831,7 +3818,7 @@ data in the form of VCF files.")
|
|||
(define-public vsearch
|
||||
(package
|
||||
(name "vsearch")
|
||||
(version "1.10.0")
|
||||
(version "1.11.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3841,7 +3828,7 @@ data in the form of VCF files.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1i3bad7gnn2y3a1yfixzshd99xdkjc8w5bxzgifpysc6jiljwvb5"))
|
||||
"1pdvm3znjgq3zryy240yj9gc0bf1z31k6vf9jxrxgdgkvzgw85c7"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -4018,13 +4005,13 @@ barplots or heatmaps.")
|
|||
(define-public r-biocgenerics
|
||||
(package
|
||||
(name "r-biocgenerics")
|
||||
(version "0.16.1")
|
||||
(version "0.18.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "BiocGenerics" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0f16ryy5f012hvksrwlmm33bcl7lw97i2jvhbnwfwl03j4w7nhc1"))))
|
||||
"1jjp48vbph09w5bmc7368gjjywsa1lmzfybpiwlypr60b51vlkp6"))))
|
||||
(properties
|
||||
`((upstream-name . "BiocGenerics")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4038,13 +4025,13 @@ packages.")
|
|||
(define-public r-dnacopy
|
||||
(package
|
||||
(name "r-dnacopy")
|
||||
(version "1.44.0")
|
||||
(version "1.46.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DNAcopy" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1c1px4rbr36xx929hp59k7ca9k5ab66qmn8k63fk13278ncm6h66"))))
|
||||
"0vwv2mndfjpcjp4sybg75abc7xnx8zyw8zjk717k6xh8c33ymcip"))))
|
||||
(properties
|
||||
`((upstream-name . "DNAcopy")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4060,13 +4047,13 @@ abnormal copy number.")
|
|||
(define-public r-s4vectors
|
||||
(package
|
||||
(name "r-s4vectors")
|
||||
(version "0.8.11")
|
||||
(version "0.10.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "S4Vectors" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66"))))
|
||||
"1mi6lf6pnb9l657igy0vj4yz03yawbr2jhk22l757fzbjc7n9q3b"))))
|
||||
(properties
|
||||
`((upstream-name . "S4Vectors")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4087,13 +4074,13 @@ S4Vectors package itself.")
|
|||
(define-public r-iranges
|
||||
(package
|
||||
(name "r-iranges")
|
||||
(version "2.4.8")
|
||||
(version "2.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "IRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl"))))
|
||||
"0dz7z0pk8hq79mcgylw920999s08h6j8xrl31rdxhssmi7l8v6vy"))))
|
||||
(properties
|
||||
`((upstream-name . "IRanges")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4116,13 +4103,13 @@ possible.")
|
|||
(define-public r-genomeinfodb
|
||||
(package
|
||||
(name "r-genomeinfodb")
|
||||
(version "1.6.3")
|
||||
(version "1.8.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomeInfoDb" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ggp005n2rlkad00ilzn95y4rd484yr1chdhnd6fwg45rbi94d63"))))
|
||||
"0k4s6z5qj53zkfnyrmcbn3l2nzgm56bhv58rv321j22qa56cpz7d"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomeInfoDb")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4142,13 +4129,13 @@ names in their natural, rather than lexicographic, order.")
|
|||
(define-public r-variantannotation
|
||||
(package
|
||||
(name "r-variantannotation")
|
||||
(version "1.16.4")
|
||||
(version "1.18.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "VariantAnnotation" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1z42j3p9b8h725inq8n0230llsdbav3gwcxy1nliypzfkxbzahsb"))))
|
||||
"1jdpdnp7l81xfprba2ykfnj6i64fd84vxaax0wvrz6qahxvnjzyw"))))
|
||||
(properties
|
||||
`((upstream-name . "VariantAnnotation")))
|
||||
(inputs
|
||||
|
@ -4174,13 +4161,13 @@ coding changes and predict coding outcomes.")
|
|||
(define-public r-xvector
|
||||
(package
|
||||
(name "r-xvector")
|
||||
(version "0.10.0")
|
||||
(version "0.12.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "XVector" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0havwyr6xqk7w0rmbwfj9jq1djz7wzdz7w39adhklwzwz9l4ih3a"))))
|
||||
"0c9cqjcxxks3an4wiq167h2grxlfyazajn7bmxhbk42zifp8vmqp"))))
|
||||
(properties
|
||||
`((upstream-name . "XVector")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4210,13 +4197,13 @@ coding changes and predict coding outcomes.")
|
|||
(define-public r-genomicranges
|
||||
(package
|
||||
(name "r-genomicranges")
|
||||
(version "1.22.4")
|
||||
(version "1.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02df5683nrpn9d10ws8jz9b55nr9055hh882xp2i154xdddir0k0"))))
|
||||
"1iyzg1npl3rnnslwq3h759vf0xhshnn5v801rnlj6bnxzhn9yaqh"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicRanges")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4237,13 +4224,13 @@ manipulating genomic intervals and variables defined along a genome.")
|
|||
(define-public r-biobase
|
||||
(package
|
||||
(name "r-biobase")
|
||||
(version "2.30.0")
|
||||
(version "2.32.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Biobase" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qasjpq3kw8h7qw8cin3bjvv1256hqr1mm24fq3v0ymxzlb66szi"))))
|
||||
"0q4icv9n5rc2qfkv6k1wjhmfcpzcyr8f45m2z3xharbdv912kl1i"))))
|
||||
(properties
|
||||
`((upstream-name . "Biobase")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4259,13 +4246,13 @@ on Bioconductor or which replace R functions.")
|
|||
(define-public r-annotationdbi
|
||||
(package
|
||||
(name "r-annotationdbi")
|
||||
(version "1.32.3")
|
||||
(version "1.34.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "AnnotationDbi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v6x62hgys5827yg2xayjrd9xawbayzm6wy0q4vxh1s6yxc9bklj"))))
|
||||
"0nw6c23098gkjlwlrra4rh1m65azczb31qr01pq81cn5gya1zkr4"))))
|
||||
(properties
|
||||
`((upstream-name . "AnnotationDbi")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4286,13 +4273,13 @@ annotation data packages using SQLite data storage.")
|
|||
(define-public r-biomart
|
||||
(package
|
||||
(name "r-biomart")
|
||||
(version "2.26.1")
|
||||
(version "2.28.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "biomaRt" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1s709055abj2gd35g6nnk5d2ai5ii09iir270l2xika6pi62gj3f"))))
|
||||
"1g0w6an9hkflgyhvq6pmrs92s93qarv23v636b9a4bz771wjvm5v"))))
|
||||
(properties
|
||||
`((upstream-name . "biomaRt")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4316,13 +4303,13 @@ powerful online queries from gene annotation to database mining.")
|
|||
(define-public r-biocparallel
|
||||
(package
|
||||
(name "r-biocparallel")
|
||||
(version "1.4.3")
|
||||
(version "1.6.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "BiocParallel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1f5mndx66vampcsq0n66afg6x851crl0h3nyv2nyp9bsgzj9cdzq"))))
|
||||
"0ki5xvb3cwjmlsx81gr8ylk1qy3imlj2dd04mzpvl28x42ay4dqj"))))
|
||||
(properties
|
||||
`((upstream-name . "BiocParallel")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4340,13 +4327,13 @@ objects.")
|
|||
(define-public r-biostrings
|
||||
(package
|
||||
(name "r-biostrings")
|
||||
(version "2.38.4")
|
||||
(version "2.40.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Biostrings" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cjd7i4bdwabzb02gm753aji5xaihkj5ak8nb0d32cclxbj0hp33"))))
|
||||
"03gyhiz14xy51nzg0glihk1rv19pq4p1aa3y5g23bzcshs67ggj9"))))
|
||||
(properties
|
||||
`((upstream-name . "Biostrings")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4366,13 +4353,13 @@ biological sequences or sets of sequences.")
|
|||
(define-public r-rsamtools
|
||||
(package
|
||||
(name "r-rsamtools")
|
||||
(version "1.22.0")
|
||||
(version "1.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rsamtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1yc3nzzms3igjwr4l9yd3wdac95glcs08b4cfp7disyly0wcskjd"))))
|
||||
"0w0drs8cpk8nlazq64ag7nm1w5jd1m8riialivm01hz5zcra7scb"))))
|
||||
(properties
|
||||
`((upstream-name . "Rsamtools")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4410,13 +4397,13 @@ files.")
|
|||
(define-public r-summarizedexperiment
|
||||
(package
|
||||
(name "r-summarizedexperiment")
|
||||
(version "1.0.2")
|
||||
(version "1.2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "SummarizedExperiment" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gpmh1mi70m5k5qnyjs1h0qn8ajrzalzic7k3762xchxsmmdvxn4"))))
|
||||
"1c81acgw3a0ha5fgapfh9xq8yhryqqf8k259n2dz0mgz1k2d9klg"))))
|
||||
(properties
|
||||
`((upstream-name . "SummarizedExperiment")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4439,13 +4426,13 @@ samples.")
|
|||
(define-public r-genomicalignments
|
||||
(package
|
||||
(name "r-genomicalignments")
|
||||
(version "1.6.3")
|
||||
(version "1.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicAlignments" version))
|
||||
(sha256
|
||||
(base32
|
||||
"02b9j1pfd39bkvb623k5k0ziq9rpw093hifqw65vb954dwj29jhd"))))
|
||||
"1y4qgqxq8dax9swgl59m6i7ggjpqrjllgx87b9vwls3z0nf1i6xj"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicAlignments")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4472,13 +4459,13 @@ alignments.")
|
|||
(define-public r-rtracklayer
|
||||
(package
|
||||
(name "r-rtracklayer")
|
||||
(version "1.30.4")
|
||||
(version "1.32.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "rtracklayer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0knjnwywh9k726mq28s3sy013zhw6d6nfa8hfw670720nq18i2p0"))))
|
||||
"0nrwk1g8b1ymvbgnqniimbvwfq13r01va9rx3b03xj4hpywzy5nv"))))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -4517,13 +4504,13 @@ as well as query and modify the browser state, such as the current viewport.")
|
|||
(define-public r-genomicfeatures
|
||||
(package
|
||||
(name "r-genomicfeatures")
|
||||
(version "1.22.13")
|
||||
(version "1.24.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicFeatures" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0n3rkj66la6wizgcsf2rmwcsyfxz9kv5zak337lmk1raqfnancz4"))))
|
||||
"0ga5a7w8jnnq2k0kc07mshl6cggmbhzh42pzvhnilgl4x3kpbysl"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicFeatures")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4582,13 +4569,13 @@ information about the latest version of the Gene Ontologies.")
|
|||
(define-public r-graph
|
||||
(package
|
||||
(name "r-graph")
|
||||
(version "1.48.0")
|
||||
(version "1.50.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "graph" version))
|
||||
(sha256
|
||||
(base32
|
||||
"16w75rji3kv24gfv44w66y1a2y75ax26rl470y3ypna0ndc3rrcd"))))
|
||||
"0ys5s19m5r30rlr0fnx2h0z2qw7n2xrad4l2yfb1bbrk8dwyf4pi"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)))
|
||||
|
@ -4601,13 +4588,13 @@ information about the latest version of the Gene Ontologies.")
|
|||
(define-public r-topgo
|
||||
(package
|
||||
(name "r-topgo")
|
||||
(version "2.22.0")
|
||||
(version "2.24.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "topGO" version))
|
||||
(sha256
|
||||
(base32
|
||||
"029j9nb39b8l9xlzsp83pmjr8ap247aia387yzaa1yyw8klapdaf"))))
|
||||
"1p4vsl32qhjw15yv9ym01ni63gjg73jaghlf17wc4zfn3iaz2zar"))))
|
||||
(properties
|
||||
`((upstream-name . "topGO")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4616,6 +4603,7 @@ information about the latest version of the Gene Ontologies.")
|
|||
("r-biobase" ,r-biobase)
|
||||
("r-biocgenerics" ,r-biocgenerics)
|
||||
("r-go-db" ,r-go-db)
|
||||
("r-matrixstats" ,r-matrixstats)
|
||||
("r-graph" ,r-graph)
|
||||
("r-sparsem" ,r-sparsem)))
|
||||
(home-page "http://bioconductor.org/packages/topGO")
|
||||
|
@ -4631,13 +4619,13 @@ dependencies between GO terms can be implemented and applied.")
|
|||
(define-public r-bsgenome
|
||||
(package
|
||||
(name "r-bsgenome")
|
||||
(version "1.38.0")
|
||||
(version "1.40.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "BSgenome" version))
|
||||
(sha256
|
||||
(base32
|
||||
"130w0m6q8kkca7gyz1aqj5jjhalwvwi6rk2yvbjrnj4gpnncyrd2"))))
|
||||
"08g3w47ysbmgj4hclb0x2wsn7pi9cnm3xkkfk4shgrka2g23qz44"))))
|
||||
(properties
|
||||
`((upstream-name . "BSgenome")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4661,13 +4649,13 @@ genome data packages and support for efficient SNP representation.")
|
|||
(define-public r-impute
|
||||
(package
|
||||
(name "r-impute")
|
||||
(version "1.44.0")
|
||||
(version "1.46.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "impute" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0y4x5jk7gsf4xn56jrkdcdnxpcfll4h6ivncd7n4snmzixldvmvw"))))
|
||||
"0v9ibgv8kp8il52miz7b7z65mv6irqxylx6lfzkxgvxd970dgrz0"))))
|
||||
(inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
(build-system r-build-system)
|
||||
|
@ -4681,13 +4669,13 @@ microarray data, using nearest neighbor averaging.")
|
|||
(define-public r-seqpattern
|
||||
(package
|
||||
(name "r-seqpattern")
|
||||
(version "1.2.0")
|
||||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "seqPattern" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p9zj6bic7sa0hb2bjm988kkk5n9r1kvlbqkzvy702f642n0j53i"))))
|
||||
"1dj9hfnbdj11yjxwd8jmxrdkj7n6gmaaj6244g2psgarhjcp4wfb"))))
|
||||
(properties
|
||||
`((upstream-name . "seqPattern")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4707,13 +4695,13 @@ reference point and sorted by a user defined feature.")
|
|||
(define-public r-genomation
|
||||
(package
|
||||
(name "r-genomation")
|
||||
(version "1.2.2")
|
||||
(version "1.4.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "genomation" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kvzwc21zsh2c8d34yn935ncn38bfkpzmknycd8h7b0521x20mi9"))))
|
||||
"017hxh3yhizlsswd2vw8504arkckrcgq5zraiw67lldq9wzs5qzg"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biostrings" ,r-biostrings)
|
||||
|
@ -4854,14 +4842,14 @@ annotations for the genome of the model mouse Mus musculus.")
|
|||
(define-public r-seqlogo
|
||||
(package
|
||||
(name "r-seqlogo")
|
||||
(version "1.36.0")
|
||||
(version "1.38.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "seqLogo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kn1a1nf2j4v9c09vjkz9bmxlln7yhg87bnyrdsxy1m55x56rn5k"))))
|
||||
"01jddx62nhi3r7czbh9hxy0wwpazbc9ax1fgagfxl6p4kx9xz9rb"))))
|
||||
(properties `((upstream-name . "seqLogo")))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://bioconductor.org/packages/seqLogo")
|
||||
|
@ -5001,14 +4989,14 @@ Biostrings objects.")
|
|||
(define-public r-motifrg
|
||||
(package
|
||||
(name "r-motifrg")
|
||||
(version "1.14.0")
|
||||
(version "1.16.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "motifRG" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v9zm5629k2lcqbbgw8bwflvbircyxkfavbkvmbd212kgwcng8vn"))))
|
||||
"1ds22paqc0923y6z1fy0arw0wxvvmglfvfgarhywv1qywhq68mbq"))))
|
||||
(properties `((upstream-name . "motifRG")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -5053,13 +5041,13 @@ two-dimensional genome scans.")
|
|||
(define-public r-zlibbioc
|
||||
(package
|
||||
(name "r-zlibbioc")
|
||||
(version "1.16.0")
|
||||
(version "1.18.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "zlibbioc" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01wc26ndg4jsn1wyrl6zzq636gxaip5fci0xapym4lh9wryc4wnw"))))
|
||||
"0m8l7zpx1l3qsk73k3ibkxxzzff938x3qhnwki1ymf3cnsg8cb36"))))
|
||||
(properties
|
||||
`((upstream-name . "zlibbioc")))
|
||||
(build-system r-build-system)
|
||||
|
@ -5069,6 +5057,70 @@ two-dimensional genome scans.")
|
|||
libraries for systems that do not have these available via other means.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public piranha
|
||||
(package
|
||||
(name "piranha")
|
||||
(version "1.1.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/smithlabcode/piranha"
|
||||
"/archive/svn/tags/piranha-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lczxff01n4139w7xwqamlb36g9hgrcy93gh03nqszhwb8ivsrqd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'copy-smithlab-cpp
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(mkdir "src/smithlab_cpp")
|
||||
(for-each (lambda (file)
|
||||
(install-file file "./src/smithlab_cpp/"))
|
||||
(find-files (assoc-ref inputs "smithlab-cpp")))
|
||||
#t))
|
||||
(add-after 'install 'install-to-store
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(mkdir-p bin)
|
||||
(for-each (lambda (file)
|
||||
(install-file file bin))
|
||||
(find-files "bin" ".*")))
|
||||
#t)))
|
||||
#:configure-flags
|
||||
(list (string-append "--with-bam_tools_headers="
|
||||
(assoc-ref %build-inputs "bamtools") "/include/bamtools")
|
||||
(string-append "--with-bam_tools_library="
|
||||
(assoc-ref %build-inputs "bamtools") "/lib/bamtools"))))
|
||||
(inputs
|
||||
`(("bamtools" ,bamtools)
|
||||
("samtools" ,samtools-0.1)
|
||||
("gsl" ,gsl)
|
||||
("smithlab-cpp"
|
||||
,(let ((commit "3723e2d"))
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/smithlabcode/smithlab_cpp.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append "smithlab_cpp-" commit "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g")))))))
|
||||
(native-inputs
|
||||
`(("python" ,python-2)))
|
||||
(home-page "https://github.com/smithlabcode/piranha")
|
||||
(synopsis "Peak-caller for CLIP-seq and RIP-seq data")
|
||||
(description
|
||||
"Piranha is a peak-caller for genomic data produced by CLIP-seq and
|
||||
RIP-seq experiments. It takes input in BED or BAM format and identifies
|
||||
regions of statistically significant read enrichment. Additional covariates
|
||||
may optionally be provided to further inform the peak-calling process.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public pepr
|
||||
(package
|
||||
(name "pepr")
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015, 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -37,7 +38,7 @@
|
|||
(define-public libical
|
||||
(package
|
||||
(name "libical")
|
||||
(version "1.0.1")
|
||||
(version "2.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -45,10 +46,14 @@
|
|||
version "/libical-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14lmjj63zyx88rf1z71l0v9ms4c2vpdhmixksjjxgywp5p2f7708"))))
|
||||
"1njn2kr0rrjqv5g3hdhpdzrhankyj4fl1bgn76z3g4n1b7vi2k35"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; test suite appears broken
|
||||
#:configure-flags
|
||||
(list (string-append "-DCMAKE_INSTALL_RPATH="
|
||||
(assoc-ref %outputs "out") "/lib:"
|
||||
(assoc-ref %outputs "out") "/lib64"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-paths
|
||||
|
|
|
@ -43,14 +43,14 @@
|
|||
(define-public cflow
|
||||
(package
|
||||
(name "cflow")
|
||||
(version "1.4")
|
||||
(version "1.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/cflow/cflow-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3"))))
|
||||
"0yq33k5ap1zpnja64n89iai4zh018ffr72wki5a6mzczd880mr3g"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; Needed to have cflow-mode.el installed.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -19,6 +20,8 @@
|
|||
|
||||
(define-module (gnu packages crypto)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
|
@ -46,3 +49,42 @@
|
|||
communication, encryption, decryption, signatures, etc.")
|
||||
(license isc)
|
||||
(home-page "http://libsodium.org")))
|
||||
|
||||
(define-public signify
|
||||
(package
|
||||
(name "signify")
|
||||
(version "17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/aperezdc/signify/"
|
||||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kfv2k1fqck31vwlnicavb0h541ilad9zd7j8zz8x2kx36wwqpr7"))))
|
||||
(build-system gnu-build-system)
|
||||
;; TODO Build with libwaive (described in README.md), to implement something
|
||||
;; like OpenBSD's pledge().
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
#:make-flags
|
||||
(list "CC=gcc"
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libbsd" ,libbsd)))
|
||||
(synopsis "Create and verify cryptographic signatures")
|
||||
(description "The signify utility creates and verifies cryptographic
|
||||
signatures using the elliptic curve Ed25519. This is a Linux port of the
|
||||
OpenBSD tool of the same name.")
|
||||
(home-page "https://github.com/aperezdc/signify")
|
||||
;; This package includes third-party code that was originally released under
|
||||
;; various non-copyleft licenses. See the source files for clarification.
|
||||
(license (list bsd-3 bsd-4 expat isc public-domain
|
||||
(non-copyleft "file://base64.c"
|
||||
"See base64.c in the distribution for
|
||||
the license from IBM.")))))
|
||||
|
|
|
@ -332,14 +332,14 @@ as a drop-in replacement of MySQL.")
|
|||
(define-public postgresql
|
||||
(package
|
||||
(name "postgresql")
|
||||
(version "9.5.2")
|
||||
(version "9.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
|
||||
version "/postgresql-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hbwwhh0pz0a6vf8j5bskiq7gmz9rwc9ywcqyhg5asshckj35lgq"))))
|
||||
"1d500d2qsdzysnis6qi84xchnz5xh8kx8sjfmkbsijwaqlfw11bk"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -460,14 +460,14 @@ is in the public domain.")
|
|||
(define-public tdb
|
||||
(package
|
||||
(name "tdb")
|
||||
(version "1.3.8")
|
||||
(version "1.3.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cg6gmpgn36dd4bsp3j9k3hyrm87d8hdigqyyqxw5jga4w2aq186"))))
|
||||
"1ll4q17scax1arg12faj8p25jq1f7q9irc3pwla0ziymwqkgf0bi"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-replace
|
||||
|
@ -822,14 +822,15 @@ valid SQL query.")
|
|||
(define-public unixodbc
|
||||
(package
|
||||
(name "unixodbc")
|
||||
(version "2.3.2")
|
||||
(version "2.3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-" version ".tar.gz"))
|
||||
"ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "16jw5fq7wgfky6ak1h2j2pqx99jivsdl4q8aq6immpr55xs5jd4w"))))
|
||||
(base32 "0f8y88rcc2akjvjv5y66yx7k0ms9h1s0vbcfy25j93didflhj59f"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Data source abstraction library")
|
||||
(description "Unixodbc is a library providing an API with which to access
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
|
|
@ -7,6 +7,8 @@
|
|||
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
|
||||
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016 humanitiesNerd <catonano@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -252,6 +254,36 @@ implementation, Emacs and, ultimately, the schemer, giving them access to live
|
|||
metadata.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public geiser-next
|
||||
;; Geiser's upcoming version supports guile-next, and 0.8.1 does not.
|
||||
;; When the next Geiser release comes out, we can remove this.
|
||||
(let ((commit "2e335695fc1a4a0b520b50deb761b958194cbec4"))
|
||||
(package
|
||||
(inherit geiser)
|
||||
(name "geiser-next")
|
||||
(version (string-append "0.8.1-1"
|
||||
(string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "git://git.sv.gnu.org/geiser.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"00rmpn8zncq1fiah5m12l26z0s28bh7ql63kxdvksqdgfrisnmgf"))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("texinfo" ,texinfo)
|
||||
,@(package-native-inputs geiser)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments geiser)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'autogen
|
||||
(lambda _
|
||||
(zero? (system* "sh" "autogen.sh")))))))))))
|
||||
|
||||
(define-public paredit
|
||||
(package
|
||||
(name "paredit")
|
||||
|
@ -1364,26 +1396,24 @@ identifiers in the MIT-Scheme documentation.")
|
|||
(gexp->derivation (or name (basename url))
|
||||
#~(begin
|
||||
(mkdir #$output)
|
||||
(setenv "PATH"
|
||||
(string-append #$gzip "/bin"))
|
||||
(chdir #$output)
|
||||
(copy-file #$drv (basename #$url))))))
|
||||
|
||||
(define-public emacs-constants
|
||||
(package
|
||||
(name "emacs-constants")
|
||||
(version "2.2")
|
||||
(version "2.6")
|
||||
(home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
|
||||
(source
|
||||
(origin
|
||||
(file-name (string-append name "-" version ".el"))
|
||||
(method uncompressed-file-fetch)
|
||||
(uri "https://staff.fnwi.uva.nl/c.dominik/Tools/constants/constants.el")
|
||||
(patches (search-patches "emacs-constants-lisp-like.patch"))
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/fedeinthemix/emacs-constants"
|
||||
"/archive/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14q094aphsjhq8gklv7i5a7byl0ygz63cv3n6b5p8ji2jy0mnnw3"))))
|
||||
"0pnrpmmxq8mh5h2hbrp5vcym0j0fh6dv3s7c5ccn18wllhzg9g7n"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://staff.fnwi.uva.nl/c.dominik/Tools/constants")
|
||||
(synopsis "Enter definition of constants into an Emacs buffer")
|
||||
(description
|
||||
"This package provides functions for inserting the definition of natural
|
||||
|
@ -1551,3 +1581,53 @@ to recognize a name like \"RFC 1234\". This package enhances ffap so
|
|||
that it correctly finds RFCs even when a space appears before the
|
||||
number.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-zenburn-theme
|
||||
(package
|
||||
(name "emacs-zenburn-theme")
|
||||
(version "2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/bbatsov/zenburn-emacs/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lyi84bm8sa7vj40n6zg6rlbsmi53mi1y9xn6gkjj29s5zbcnlg7"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://github.com/bbatsov/zenburn-emacs")
|
||||
(synopsis "Low contrast color theme for Emacs")
|
||||
(description
|
||||
"Zenburn theme is a port of the popular Vim Zenburn theme for Emacs.
|
||||
It is built on top of the custom theme support in Emacs 24 or later.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-smartparens
|
||||
(package
|
||||
(name "emacs-smartparens")
|
||||
(version "1.7.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/Fuco1/smartparens/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b47ppkzsj8j8a2p0bmvq05rhm2d2lsm3wlc0sg542r4zr6nji8s"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs `(("emacs-dash" ,emacs-dash)))
|
||||
(home-page "https://github.com/Fuco1/smartparens")
|
||||
(synopsis "Paredit-like insertion, wrapping and navigation with user
|
||||
defined pairs")
|
||||
(description
|
||||
"Smartparens is a minor mode for Emacs that deals with parens pairs
|
||||
and tries to be smart about it. It started as a unification effort to
|
||||
combine functionality of several existing packages in a single,
|
||||
compatible and extensible way to deal with parentheses, delimiters, tags
|
||||
and the like. Some of these packages include autopair, textmate,
|
||||
wrap-region, electric-pair-mode, paredit and others. With the basic
|
||||
features found in other packages it also brings many improvements as
|
||||
well as completely new features.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,13 +24,21 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages libedit)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages textutils)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages upnp))
|
||||
|
||||
|
@ -81,3 +90,100 @@ collectively by the network. Bitcoin Core is the reference implementation
|
|||
of the bitcoin protocol. This package provides the Bitcoin Core command
|
||||
line client and a client based on Qt.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public ledger
|
||||
(package
|
||||
(name "ledger")
|
||||
(version "3.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/ledger/ledger/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12jlv3gsjhrja25q9hrwh73cdacd2l3c2yyn8qnijav9mdhnbw4h"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build cmake-build-system)
|
||||
(guix build utils)
|
||||
(guix build emacs-utils))
|
||||
#:imported-modules (,@%cmake-build-system-modules
|
||||
(guix build emacs-utils))
|
||||
#:configure-flags
|
||||
`("-DBUILD_DOCS:BOOL=ON"
|
||||
"-DBUILD_WEB_DOCS:BOOL=ON"
|
||||
"-DBUILD_EMACSLISP:BOOL=ON"
|
||||
"-DUSE_PYTHON:BOOL=ON"
|
||||
"-DCMAKE_INSTALL_LIBDIR:PATH=lib"
|
||||
,(string-append "-DUTFCPP_INCLUDE_DIR:PATH="
|
||||
(assoc-ref %build-inputs "utfcpp")
|
||||
"/include"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'install-examples
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((examples (string-append (assoc-ref outputs "out")
|
||||
"/share/doc/ledger/examples")))
|
||||
(install-file "test/input/sample.dat" examples)
|
||||
(install-file "test/input/demo.ledger" examples))
|
||||
#t))
|
||||
(add-after 'build 'build-doc
|
||||
(lambda _ (zero? (system* "make" "doc"))))
|
||||
(add-before 'check 'check-setup
|
||||
;; One test fails if it can't set the timezone.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(setenv "TZDIR"
|
||||
(string-append (assoc-ref inputs "tzdata")
|
||||
"/share/zoneinfo"))
|
||||
#t))
|
||||
(add-after 'install 'relocate-elisp
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((site-dir (string-append (assoc-ref outputs "out")
|
||||
"/share/emacs/site-lisp"))
|
||||
(guix-dir (string-append site-dir "/guix.d"))
|
||||
(orig-dir (string-append site-dir "/ledger-mode"))
|
||||
(dest-dir (string-append guix-dir "/ledger-mode")))
|
||||
(mkdir-p guix-dir)
|
||||
(rename-file orig-dir dest-dir)
|
||||
(emacs-generate-autoloads ,name dest-dir))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("gmp" ,gmp)
|
||||
("libedit" ,libedit)
|
||||
("mpfr" ,mpfr)
|
||||
("python" ,python-2)
|
||||
("tzdata" ,tzdata)
|
||||
("utfcpp" ,utfcpp)))
|
||||
(native-inputs
|
||||
`(("emacs" ,emacs-no-x)
|
||||
("groff" ,groff)
|
||||
("texinfo" ,texinfo)))
|
||||
(home-page "http://ledger-cli.org/")
|
||||
(synopsis "Command-line double-entry accounting program")
|
||||
(description
|
||||
"Ledger is a powerful, double-entry accounting system that is
|
||||
accessed from the UNIX command-line. This may put off some users, since
|
||||
there is no flashy UI, but for those who want unparalleled reporting
|
||||
access to their data there are few alternatives.
|
||||
|
||||
Ledger uses text files for input. It reads the files and generates
|
||||
reports; there is no other database or stored state. To use Ledger,
|
||||
you create a file of your account names and transactions, run from the
|
||||
command line with some options to specify input and requested reports, and
|
||||
get output. The output is generally plain text, though you could generate
|
||||
a graph or html instead. Ledger is simple in concept, surprisingly rich
|
||||
in ability, and easy to use.")
|
||||
;; There are some extra licenses in files which do not presently get
|
||||
;; installed when you build this package. Different versions of the GPL
|
||||
;; are used in the contrib and python subdirectories. The bundled version
|
||||
;; of utfcpp is under the Boost 1.0 license. Also the file
|
||||
;; `tools/update_copyright_year` has an Expat license.
|
||||
(license (list license:bsd-3
|
||||
license:asl2.0 ; src/strptime.cc
|
||||
(license:non-copyleft
|
||||
"file://src/wcwidth.cc"
|
||||
"See src/wcwidth.cc in the distribution.")
|
||||
license:gpl2+)))) ; lisp/*
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
|
|
@ -82,14 +82,14 @@ freedesktop.org project.")
|
|||
(define-public libinput
|
||||
(package
|
||||
(name "libinput")
|
||||
(version "1.2.0")
|
||||
(version "1.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://freedesktop.org/software/libinput/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b3f67xsy1s84cvzw22mjfkbcv6pj4p4yns4h3m0fmb7zqbvjm0p"))))
|
||||
"1sn1s1bz06fa49izqkqf519sjclsvhf42i6slzx1w5hx4vxpb2lr"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -288,7 +288,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
|
|||
(define-public exempi
|
||||
(package
|
||||
(name "exempi")
|
||||
(version "2.2.2")
|
||||
(version "2.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -296,7 +296,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"01vcd1mfn2s0iiq2cjyzgvnxx6kcq9cwra1iipijhs0vwvjx0yhf"))))
|
||||
"0jcrv3w8m415cq8xi886hcxfqbrn5dczxbzybx9bhf3dbqsyv6nq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list (string-append "--with-boost="
|
||||
|
@ -448,7 +448,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
|
|||
(define-public libmbim
|
||||
(package
|
||||
(name "libmbim")
|
||||
(version "1.12.2")
|
||||
(version "1.12.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -456,7 +456,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0abv0h9c3kbw4bq1b9270sg189jcjj3x3wa91bj836ynwg9m34wl"))))
|
||||
"0flpgzsqpjgybjkx4smbb4rjxf2w1xgd1v9gmz61rvl89qasznbv"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-mkenums
|
||||
|
@ -467,7 +467,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
|
|||
(inputs
|
||||
`(("libgudev" ,libgudev)))
|
||||
(synopsis "Library to communicate with MBIM-powered modems")
|
||||
(home-page "http://www.freedesktop.org/wiki/Software/libmbim/")
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/libmbim/")
|
||||
(description
|
||||
"Libmbim is a GLib-based library for talking to WWAN modems and devices
|
||||
which speak the Mobile Interface Broadband Model (MBIM) protocol.")
|
||||
|
@ -479,7 +479,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
|
|||
(define-public libqmi
|
||||
(package
|
||||
(name "libqmi")
|
||||
(version "1.12.8")
|
||||
(version "1.14.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -487,7 +487,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19w2zkm5xl6i3vm1xhjjclks4awas17gfbb2k5y66gwnkiykjfnj"))))
|
||||
"0h009bzss4bal47nk21lyp4s3mmlcivhhaaj7r9229qvx85bi0v2"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-mkenums
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -33,15 +34,16 @@
|
|||
(define-public fvwm
|
||||
(package
|
||||
(name "fvwm")
|
||||
(version "2.6.5")
|
||||
(version "2.6.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-"
|
||||
version ".tar.bz2"))
|
||||
"https://github.com/fvwmorg/fvwm/releases/download/"
|
||||
"version-" (string-join (string-split version #\.) "_")
|
||||
"/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ks8igvmzm0m0sra05k8xzc8vkqy3gv1qskl6davw1irqnarjm11"))))
|
||||
"0b6w0vk6cpqaz0ws3vl4by0mycv33r42a0m806j2h8avy9ghipn5"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -272,14 +272,14 @@ archive on a per-file basis.")
|
|||
(define-public love
|
||||
(package
|
||||
(name "love")
|
||||
(version "0.10.0")
|
||||
(version "0.10.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://bitbucket.org/rude/love/downloads/"
|
||||
"love-" version "-linux-src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1r2n1nrw3hcdvy14fjbwz3l9swcy65v3lqwpj2frnkkcwncdz94p"))))
|
||||
"1ys18m7c4994k5s7avqlf17sc2icx5zgvfplz504q1ka16hwkc52"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2014, 2015 David Thompson <dthompson2@worcester.edu>
|
||||
;;; Copyright © 2014, 2015, 2016 David Thompson <dthompson2@worcester.edu>
|
||||
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
|
||||
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
|
||||
|
@ -18,7 +18,7 @@
|
|||
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
|
||||
;;; Copyright © 2016 Albin Söderqvist <albin@fripost.org>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -642,7 +642,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(define minetest-data
|
||||
(package
|
||||
(name "minetest-data")
|
||||
(version "0.4.13")
|
||||
(version "0.4.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -651,7 +651,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04xnyfap75v3p818kpqb07xshqwqzpws5xjvw5m96qnd9x4725ld"))))
|
||||
"11fzdh4icx2yvjfz1skdql0d0wxpzdr006k993v33x72s0q2ig7f"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("source" ,source)
|
||||
|
@ -683,7 +683,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(define-public minetest
|
||||
(package
|
||||
(name "minetest")
|
||||
(version "0.4.13")
|
||||
(version "0.4.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -692,7 +692,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xzrvsg0fpbj5p4pz6lls11m3ab4y2bnjlsm4gnw68x9006ffznp"))))
|
||||
"0m3hhk5icx4y4gd970z7ya2013fq4vvqbjljmck62ik03baf8g90"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
|
|
@ -618,6 +618,17 @@ as the 'native-search-paths' field."
|
|||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc-4.9
|
||||
(custom-gcc gcc-4.9 "gcc-objc" '("objc")
|
||||
(list (search-path-specification
|
||||
(variable "OBJC_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc gcc-objc-4.9)
|
||||
|
||||
(define-public gcc-objc++-4.8
|
||||
(custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++")
|
||||
(list (search-path-specification
|
||||
|
@ -627,6 +638,17 @@ as the 'native-search-paths' field."
|
|||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++-4.9
|
||||
(custom-gcc gcc-4.9 "gcc-objc++" '("obj-c++")
|
||||
(list (search-path-specification
|
||||
(variable "OBJCPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++ gcc-objc++-4.9)
|
||||
|
||||
(define (make-libstdc++-doc gcc)
|
||||
"Return a package with the libstdc++ documentation for GCC."
|
||||
(package
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -48,7 +49,8 @@
|
|||
"libgd-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"11djy9flzxczphigqgp7fbbblbq35gqwwhn9xfcckawlapa1xnls"))))
|
||||
"11djy9flzxczphigqgp7fbbblbq35gqwwhn9xfcckawlapa1xnls"))
|
||||
(patches (search-patches "gd-CVE-2016-3074.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -69,7 +71,8 @@ formats. GD is commonly used to generate charts, graphics, thumbnails, and
|
|||
most anything else, on the fly. While not restricted to use on the web, the
|
||||
most common applications of GD involve website development.")
|
||||
(license (non-copyleft "file://COPYING"
|
||||
"See COPYING file in the distribution."))))
|
||||
"See COPYING file in the distribution."))
|
||||
(properties '((cpe-name . "libgd")))))
|
||||
|
||||
(define-public perl-gd
|
||||
(package
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -63,8 +64,9 @@ and XMP metadata of images in various formats.")
|
|||
(version "1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/geeqie/geeqie-"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append "https://github.com/BestImageViewer/geeqie/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kzy39z9505xkayyx7rjj2wda76xy3ch1s5z35zn8yli54ffhi2m"))))
|
||||
|
@ -78,7 +80,7 @@ and XMP metadata of images in various formats.")
|
|||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "http://geeqie.sourceforge.net")
|
||||
(home-page "http://www.geeqie.org/")
|
||||
(synopsis "Lightweight GTK+ based image viewer")
|
||||
(description
|
||||
"Geeqie is a lightweight GTK+ based image viewer for Unix like operating
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -33,7 +34,7 @@
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://members.dslextreme.com/users/billw/gkrellm/gkrellm-"
|
||||
(uri (string-append "http://gkrellm.srcbox.net/releases/gkrellm-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -57,7 +58,7 @@
|
|||
(list (string-append "INSTALLROOT=" out)
|
||||
"CC=gcc"
|
||||
"X11_LIBS = -lX11 -lSM -lICE -lgmodule-2.0"))))
|
||||
(home-page "http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html")
|
||||
(home-page "http://gkrellm.srcbox.net/")
|
||||
(synopsis "System monitors")
|
||||
(description
|
||||
"GKrellM is a single process stack of system monitors which supports
|
||||
|
|
|
@ -15,7 +15,9 @@
|
|||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net>
|
||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -58,6 +60,7 @@
|
|||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages enchant)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages game-development)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -162,6 +165,55 @@ Desktop. It is designed to be as simple as possible and has some unique
|
|||
features to enable users to create their discs easily and quickly.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public dia
|
||||
;; This version from GNOME's repository includes fixes for compiling with
|
||||
;; recent versions of the build tools. The latest activity on the
|
||||
;; pre-GNOME version has been in 2014, while GNOME has continued applying
|
||||
;; fixes in 2016.
|
||||
(let ((commit "fbc306168edab63db80b904956117cbbdc514ee4"))
|
||||
(package
|
||||
(name "dia")
|
||||
(version (string-append "0.97.2-" (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.gnome.org/browse/dia")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b4bba0k8ph4cwgw8xjglss0p6n111bpd5app67lrq79mp0ad06l"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("glib" ,glib "bin")
|
||||
("pango" ,pango)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("gtk+" ,gtk+-2)
|
||||
("libxml2" ,libxml2)
|
||||
("freetype" ,freetype)
|
||||
("libart-lgpl" ,libart-lgpl)))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)
|
||||
("automake" ,automake)
|
||||
("autoconf" ,autoconf)
|
||||
("libtool" ,libtool)
|
||||
("perl" ,perl)
|
||||
("python-wrapper" ,python-wrapper)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'run-autogen
|
||||
(lambda _
|
||||
(system* "sh" "autogen.sh"))))))
|
||||
(home-page "https://wiki.gnome.org/Apps/Dia")
|
||||
(synopsis "Diagram creation for GNOME")
|
||||
(description "Dia can be used to draw different types of diagrams, and
|
||||
includes support for UML static structure diagrams (class diagrams), entity
|
||||
relationship modeling, and network diagrams. The program supports various file
|
||||
formats like PNG, SVG, PDF and EPS.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public gnome-common
|
||||
(package
|
||||
(name "gnome-common")
|
||||
|
@ -682,7 +734,8 @@ database is translated at Transifex.")
|
|||
("libpng" ,libpng)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("glib" ,glib "bin")))
|
||||
("glib" ,glib "bin")
|
||||
("gobject-introspection" ,gobject-introspection)))
|
||||
(home-page "https://developer-next.gnome.org/libnotify/")
|
||||
(synopsis
|
||||
"GNOME desktop notification library")
|
||||
|
@ -5022,3 +5075,74 @@ specified duration and save it as a GIF encoded animated image file.")
|
|||
"Libzapojit is a GLib-based library for accessing online service APIs of
|
||||
Microsoft SkyDrive and Hotmail, using their REST protocols.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public gnome-calendar
|
||||
(package
|
||||
(name "gnome-calendar")
|
||||
(version "3.20.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vny8fclwglapdyxd2g9fbwdlk5hhnb993k2hvq3rf0hcgswycpi"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("bdb" ,bdb)
|
||||
("desktop-file-utils" ,desktop-file-utils)
|
||||
("evolution-data-server" ,evolution-data-server)
|
||||
("gnome-online-accounts" ,gnome-online-accounts)))
|
||||
(home-page "https://wiki.gnome.org/Apps/Calendar")
|
||||
(synopsis "GNOME's calendar application")
|
||||
(description
|
||||
"GNOME Calendar is a simple calendar application designed to fit the GNOME
|
||||
desktop. It supports multiple calendars, monthly view and yearly view.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public gnome-tweak-tool
|
||||
(package
|
||||
(name "gnome-tweak-tool")
|
||||
(version "3.20.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/gnome-tweak-tool/"
|
||||
(version-major+minor version) "/"
|
||||
"gnome-tweak-tool-" version ".tar.xz"))
|
||||
(patches (list
|
||||
(search-patch "gnome-tweak-tool-search-paths.patch")))
|
||||
(sha256
|
||||
(base32
|
||||
"1fj6wjvnjygzm9br3sw9gya6d18yly1rm69yaiar9spfbkvv4wai"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--localstatedir=/tmp"
|
||||
"--sysconfdir=/tmp")
|
||||
#:imported-modules ((guix build python-build-system)
|
||||
,@%gnu-build-system-modules)
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'install 'wrap
|
||||
(@@ (guix build python-build-system) wrap)))))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("python" ,python-2)
|
||||
("python2-pygobject" ,python2-pygobject)))
|
||||
(propagated-inputs
|
||||
`(("libnotify" ,libnotify)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("gtk+" ,gtk+)))
|
||||
(synopsis "Customize advanced GNOME 3 options")
|
||||
(home-page "https://wiki.gnome.org/action/show/Apps/GnomeTweakTool")
|
||||
(description
|
||||
"GNOME Tweak Tool allows adjusting advanced configuration settings in
|
||||
GNOME 3. This includes things like the fonts used in user interface elements,
|
||||
alternative user interface themes, changes in window management behavior,
|
||||
GNOME Shell appearance and extension, etc.")
|
||||
(license license:gpl3+)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,7 +30,7 @@
|
|||
(define-public gnu-pw-mgr
|
||||
(package
|
||||
(name "gnu-pw-mgr")
|
||||
(version "1.6")
|
||||
(version "2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -37,7 +38,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"141wfm4w420ygrl7qvrc84drzv34jym0d2bxqcgi7n1vimql0slp"))))
|
||||
"19qvg37snfa8s06q5crx25m1r1n4l0wvfpkbdxz17q7whp0plrl6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("which" ,which)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -101,7 +101,15 @@ interface. It is fast, feature rich, easy to configure, and easy to use.")
|
|||
version ".orig.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"))))
|
||||
"0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Fix memory leak:
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2016-05/msg00466.html>.
|
||||
'(substitute* "upower.c"
|
||||
(("up = up_client_new\\(\\);")
|
||||
(string-append "if (!up)\n"
|
||||
" up = up_client_new();"))))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no "check" target
|
||||
|
|
|
@ -517,4 +517,8 @@ standards.")
|
|||
software, which does not recommend non-free plugins and addons. It also
|
||||
features built-in privacy-protecting features.")
|
||||
(license license:mpl2.0) ;and others, see toolkit/content/license.html
|
||||
(properties '((ftp-directory . "/gnu/gnuzilla")))))
|
||||
(properties
|
||||
`((ftp-directory . "/gnu/gnuzilla")
|
||||
(cpe-name . "firefox_esr")
|
||||
(cpe-version . ,(string-drop-right version
|
||||
(string-length "-gnu1")))))))
|
||||
|
|
|
@ -295,15 +295,30 @@ visual effects work for film.")
|
|||
"1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(;; FIXME: At least "testrcore1" fails.
|
||||
#:tests? #f
|
||||
#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'replace-/bin/ls
|
||||
(add-after 'unpack 'fix-tests
|
||||
(lambda _
|
||||
;; Our grep does not support perl regular expressions.
|
||||
(substitute* "taptool.sh"
|
||||
(("grep -P") "grep -E"))
|
||||
;; Disable path tests because we cannot access /bin or /sbin.
|
||||
(substitute* "rcore/tests/multitest.cc"
|
||||
(("TCMP \\(Path::equals \\(\"/bin\"") "//"))
|
||||
#t))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda _
|
||||
;; The test suite requires a running X server (with DISPLAY
|
||||
;; number 99 or higher).
|
||||
(system "Xvfb :99 &")
|
||||
(setenv "DISPLAY" ":99")
|
||||
#t))
|
||||
(add-after 'unpack 'replace-fhs-paths
|
||||
(lambda _
|
||||
(substitute* (cons "Makefile.decl"
|
||||
(find-files "." "^Makefile\\.in$"))
|
||||
(("/bin/ls") (which "ls")))
|
||||
(("/bin/ls") (which "ls"))
|
||||
(("/usr/bin/env") (which "env")))
|
||||
#t)))))
|
||||
;; These libraries are listed in the "Required" section of the pkg-config
|
||||
;; file.
|
||||
|
@ -311,7 +326,8 @@ visual effects work for film.")
|
|||
`(("librsvg" ,librsvg)
|
||||
("cairo" ,cairo)
|
||||
("pango" ,pango)
|
||||
("libxml2" ,libxml2)))
|
||||
("libxml2" ,libxml2)
|
||||
("python2-enum34" ,python2-enum34)))
|
||||
(inputs
|
||||
`(("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("libpng" ,libpng-1.2)
|
||||
|
@ -326,7 +342,8 @@ visual effects work for film.")
|
|||
("doxygen" ,doxygen)
|
||||
("graphviz" ,graphviz)
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
("pkg-config" ,pkg-config)
|
||||
("xvfb" ,xorg-server)))
|
||||
(home-page "http://rapicorn.org")
|
||||
(synopsis "Toolkit for rapid development of user interfaces")
|
||||
(description
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
|
@ -132,4 +132,5 @@ then goes on to load the rest of the operating system. As a multiboot
|
|||
bootloader, GRUB handles the presence of multiple operating systems installed
|
||||
on the same computer; upon booting the computer, the user is presented with a
|
||||
menu to select one of the installed operating systems.")
|
||||
(license gpl3+)))
|
||||
(license gpl3+)
|
||||
(properties '((cpe-name . "grub2")))))
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -41,6 +42,7 @@
|
|||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages enchant)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
|
@ -1244,3 +1246,30 @@ Redmond95 and ThinIce.")
|
|||
"Murrine is a cairo-based GTK+ theming engine. It is named after the
|
||||
glass artworks done by Venicians glass blowers.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public gtkspell3
|
||||
(package
|
||||
(name "gtkspell3")
|
||||
(version "3.0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gtkspell/"
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1zrz5pz4ryvcssk898liynmy2wyxgj95ak7mp2jv7x62yzihq6h1"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("enchant" ,enchant)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("gtk+" ,gtk+)
|
||||
("pango" ,pango)))
|
||||
(home-page "http://gtkspell.sourceforge.net")
|
||||
(synopsis "Spell-checking addon for GTK's TextView widget")
|
||||
(description
|
||||
"GtkSpell provides word-processor-style highlighting and replacement of
|
||||
misspelled words in a GtkTextView widget.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -566,16 +566,15 @@ See http://minikanren.org/ for more on miniKanren generally.")
|
|||
(define-public guile-irregex
|
||||
(package
|
||||
(name "guile-irregex")
|
||||
(version "0.9.3")
|
||||
(version "0.9.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://synthcode.com/scheme/irregex/irregex-"
|
||||
version
|
||||
".tar.gz"))
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1b8jl7bycyl2ssp6sb1j24pp9hvqyxm85ki9bmwd50glyyjs5zay"))))
|
||||
"0cmaqvqvyarcnnsyrl2p6vwyv1r3k1q7qw8p9zrlnz1vpbj7vb90"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,7 +30,7 @@
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://cvs.haskell.org/Hugs/downloads/2006-09/"
|
||||
(uri (string-append "https://www.haskell.org/hugs/downloads/2006-09/"
|
||||
name "98-plus-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -67,7 +68,7 @@
|
|||
(("/bin/cp") (which "cp"))))
|
||||
%standard-phases)
|
||||
#:tests? #f)) ; no test target
|
||||
(home-page "http://haskell.org/hugs")
|
||||
(home-page "https://www.haskell.org/hugs/")
|
||||
(synopsis "Functional programming system based on Haskell 98")
|
||||
(description
|
||||
"Hugs 98 is an interpreter and programming environment for developing
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
(define-public gnumach-headers
|
||||
(package
|
||||
(name "gnumach-headers")
|
||||
(version "1.6")
|
||||
(version "1.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -40,7 +40,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1m7xwsrv6x6gk9xi5phs104rdn9q3lr63p348vyv0dzd6r3zyncb"))))
|
||||
"1vd0bykshf6ilr55792b5lf6yd5ywlkp1wqz00dcsx7fq3rfadz2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (alist-replace
|
||||
|
@ -66,7 +66,7 @@
|
|||
(define-public mig
|
||||
(package
|
||||
(name "mig")
|
||||
(version "1.6")
|
||||
(version "1.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -74,7 +74,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1i9qd6j5g8wsv9k9n6vpdqflyw0284wyayb2s2h7pp4yyi2jsksk"))))
|
||||
"1hxqd8p14pgamgavmbmziswvd1zvwqx7lgc9qga805q9jrs93q2b"))))
|
||||
(build-system gnu-build-system)
|
||||
;; Flex is needed both at build and run time.
|
||||
(inputs `(("gnumach-headers" ,gnumach-headers)
|
||||
|
@ -97,14 +97,14 @@ communication.")
|
|||
(define-public hurd-headers
|
||||
(package
|
||||
(name "hurd-headers")
|
||||
(version "0.7")
|
||||
(version "0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/hurd/hurd-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1q2pyc16vb5plqi8hlwnnc9jk8zlifm91cavz6x7vhbwy0nh2yvh"))))
|
||||
"1pbc4aqgzxvkgivw80ghp3w755cl0fwxmg357vq7chimj64jk78d"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(;; Autoconf shouldn't be necessary but there seems to be a bug in the
|
||||
|
|
|
@ -392,14 +392,15 @@ error-resilience, a Java-viewer for j2k-images, ...")
|
|||
(define-public giflib
|
||||
(package
|
||||
(name "giflib")
|
||||
(version "5.1.2")
|
||||
(version "5.1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/giflib/giflib-"
|
||||
(first (string-split version #\.))
|
||||
".x/giflib-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "0z1adsza46q84chkxwr6x8ph11k117k8nywkzwar6bxhqf2a1h3n"))))
|
||||
(base32
|
||||
"1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("bin" ; utility programs
|
||||
"out")) ; library
|
||||
|
@ -408,13 +409,13 @@ error-resilience, a Java-viewer for j2k-images, ...")
|
|||
("libsm" ,libsm)
|
||||
("perl" ,perl)))
|
||||
(arguments
|
||||
`(#:phases (alist-cons-after
|
||||
'unpack 'disable-html-doc-gen
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-html-doc-gen
|
||||
(lambda _
|
||||
(substitute* "doc/Makefile.in"
|
||||
(("^all: allhtml manpages") "")))
|
||||
(alist-cons-after
|
||||
'install 'install-manpages
|
||||
(("^all: allhtml manpages") ""))))
|
||||
(add-after 'install 'install-manpages
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((bin (assoc-ref outputs "bin"))
|
||||
(man1dir (string-append bin "/share/man/man1")))
|
||||
|
@ -426,8 +427,7 @@ error-resilience, a Java-viewer for j2k-images, ...")
|
|||
(copy-file file
|
||||
(string-append
|
||||
man1dir "/" base))))
|
||||
(find-files "doc" "\\.1"))))
|
||||
%standard-phases))))
|
||||
(find-files "doc" "\\.1"))))))))
|
||||
(synopsis "Tools and library for working with GIF images")
|
||||
(description
|
||||
"GIFLIB is a library for reading and writing GIF images. It is API and
|
||||
|
@ -501,9 +501,13 @@ more modular, simple, and flexible.")
|
|||
(version "1.2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
(uri (list
|
||||
(string-append
|
||||
"http://linuxbrit.co.uk/downloads/giblib-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.gz")
|
||||
(string-append
|
||||
"https://sourceforge.net/projects/slackbuildsdirectlinks/"
|
||||
"files/giblib/giblib-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp"))))
|
||||
|
|
|
@ -40,14 +40,14 @@
|
|||
(define-public imagemagick
|
||||
(package
|
||||
(name "imagemagick")
|
||||
(version "6.9.3-10")
|
||||
(version "6.9.4-4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://imagemagick/ImageMagick-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sik2jl1cywnpr5xm28mjhs1l8kxry65f3v2kqzp0cczhwf04gz3"))))
|
||||
"005nnp0masv59yfcdip6qld86567zjbz59c9lkcqrxclm27vmx0p"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-frozenpaths")
|
||||
|
|
|
@ -66,48 +66,41 @@
|
|||
(sha256
|
||||
(base32
|
||||
"03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q"))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:make-flags '("-f" "make_linux.mak")
|
||||
`(#:jar-name "swt.jar"
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda _
|
||||
(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(and (mkdir "swt")
|
||||
(zero? (system* "unzip" (assoc-ref %build-inputs "source") "-d" "swt"))
|
||||
(zero? (system* "unzip" source "-d" "swt"))
|
||||
(chdir "swt")
|
||||
(mkdir "src")
|
||||
(zero? (system* "unzip" "src.zip" "-d" "src"))
|
||||
(chdir "src")))
|
||||
(alist-replace
|
||||
'build
|
||||
(zero? (system* "unzip" "src.zip" "-d" "src")))))
|
||||
;; The classpath contains invalid icecat jars. Since we don't need
|
||||
;; anything other than the JDK on the classpath, we can simply unset
|
||||
;; it.
|
||||
(add-after 'configure 'unset-classpath
|
||||
(lambda _ (unsetenv "CLASSPATH") #t))
|
||||
(add-before 'build 'build-native
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
|
||||
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
|
||||
|
||||
;; Build shared libraries. Users of SWT have to set the system
|
||||
;; property swt.library.path to the "lib" directory of this
|
||||
;; package output.
|
||||
(mkdir-p lib)
|
||||
(setenv "OUTPUT_DIR" lib)
|
||||
(zero? (system* "bash" "build.sh"))
|
||||
|
||||
;; build jar
|
||||
(mkdir "build")
|
||||
(for-each (lambda (file)
|
||||
(format #t "Compiling ~s\n" file)
|
||||
(system* "javac" "-d" "build" file))
|
||||
(find-files "." "\\.java"))
|
||||
(zero? (system* "jar" "cvf" "swt.jar" "-C" "build" "."))))
|
||||
(alist-cons-after
|
||||
'install 'install-java-files
|
||||
(with-directory-excursion "src"
|
||||
(zero? (system* "bash" "build.sh"))))))
|
||||
(add-after 'install 'install-native
|
||||
(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))))))
|
||||
(let ((lib (string-append (assoc-ref outputs "out") "/lib")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file lib))
|
||||
(find-files "." "\\.so$"))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("xulrunner" ,icecat)
|
||||
("gtk" ,gtk+-2)
|
||||
|
@ -117,8 +110,7 @@
|
|||
("glu" ,glu)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("unzip" ,unzip)
|
||||
("jdk" ,icedtea "jdk")))
|
||||
("unzip" ,unzip)))
|
||||
(home-page "https://www.eclipse.org/swt/")
|
||||
(synopsis "Widget toolkit for Java")
|
||||
(description
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
(define-public jemalloc
|
||||
(package
|
||||
(name "jemalloc")
|
||||
(version "4.1.0")
|
||||
(version "4.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -35,7 +35,7 @@
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s"))))
|
||||
"1jvasihaizawz44j02bri47bd905flns03nkigipys81p6pds5mj"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.canonware.com/jemalloc/")
|
||||
(synopsis "General-purpose scalable concurrent malloc implementation")
|
||||
|
|
|
@ -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.")))))
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -40,5 +41,7 @@
|
|||
"libidn is a library implementing of the Stringprep, Punycode and IDNA
|
||||
specifications. These are used to encode and decode internationalized domain
|
||||
names. It includes native C, C# and Java libraries.")
|
||||
(license lgpl2.1+)
|
||||
;; The C code is dual-licensed gpl2+ lgpl3+, the manual is fdl1.3+,
|
||||
;; the command line tool is gpl3+.
|
||||
(license (list gpl2+ gpl3+ lgpl3+ fdl1.3+))
|
||||
(home-page "http://www.gnu.org/software/libidn/")))
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -224,7 +225,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
|
|||
(search-path %load-path file)))
|
||||
|
||||
(define-public linux-libre
|
||||
(let* ((version "4.5.4")
|
||||
(let* ((version "4.5.5")
|
||||
(build-phase
|
||||
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
|
||||
;; Avoid introducing timestamps
|
||||
|
@ -302,7 +303,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
|
|||
(uri (linux-libre-urls version))
|
||||
(sha256
|
||||
(base32
|
||||
"0c587v03kz5whh82apva6gwqvczdi6djy29gk0gfd9dbkb2518b1"))))
|
||||
"1zys74hfdi13yyk17x45hvvbx7m97wk7pala3cd8k93xbq8qnai0"))))
|
||||
(build-system gnu-build-system)
|
||||
(supported-systems '("x86_64-linux" "i686-linux"))
|
||||
(native-inputs `(("perl" ,perl)
|
||||
|
@ -339,13 +340,13 @@ It has been modified to remove all non-free binary blobs.")
|
|||
(define-public linux-libre-4.4
|
||||
(package
|
||||
(inherit linux-libre)
|
||||
(version "4.4.10")
|
||||
(version "4.4.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (linux-libre-urls version))
|
||||
(sha256
|
||||
(base32
|
||||
"1k7h632vgh3wlz44qqawy238f4mzn19bm9sz9zqq0ql6wwhkjdkj"))))
|
||||
"17pb9w72vigdrhm8hnkdyw9kwc2l06nabzygpdkwbvf7fg3j03vc"))))
|
||||
(native-inputs
|
||||
(let ((conf (kernel-config (or (%current-target-system)
|
||||
(%current-system))
|
||||
|
@ -1182,15 +1183,15 @@ configuration and monitoring interfaces.")
|
|||
(define-public iw
|
||||
(package
|
||||
(name "iw")
|
||||
(version "3.17")
|
||||
(version "4.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.kernel.org/pub/software/network/iw/iw-"
|
||||
"mirror://kernel.org/software/network/iw/iw-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14zsapqhivk0ws5z21y1ys2c2czi05mzk7bl2yb7qxcfrnsjx9j8"))))
|
||||
"085jyvrxzarvn5jl0fk618jjxy50nqx7ifngszc4jxk6a4ddibd6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("libnl" ,libnl)))
|
||||
|
@ -1198,11 +1199,11 @@ configuration and monitoring interfaces.")
|
|||
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
"CC=gcc")
|
||||
#:phases (alist-delete 'configure %standard-phases)))
|
||||
(home-page "http://wireless.kernel.org/en/users/Documentation/iw")
|
||||
(home-page "https://wireless.wiki.kernel.org/")
|
||||
(synopsis "Tool for configuring wireless devices")
|
||||
(description
|
||||
"iw is a new nl80211 based CLI configuration utility for wireless
|
||||
devices. It replaces 'iwconfig', which is deprecated.")
|
||||
devices. It replaces @code{iwconfig}, which is deprecated.")
|
||||
(license license:isc)))
|
||||
|
||||
(define-public powertop
|
||||
|
@ -1827,7 +1828,7 @@ compliance.")
|
|||
(define-public wireless-regdb
|
||||
(package
|
||||
(name "wireless-regdb")
|
||||
(version "2015.04.06")
|
||||
(version "2016.05.02")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1835,7 +1836,7 @@ compliance.")
|
|||
"wireless-regdb-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0czi83k311fp27z42hxjm8vi88fsbc23mhavv96lkb4pmari0jjc"))
|
||||
"07n6gcwfbddz3awbdflv3dhxjszsqq2lrdwih0a0ahcliac4qry9"))
|
||||
|
||||
;; We're building 'regulatory.bin' by ourselves.
|
||||
(snippet '(delete-file "regulatory.bin"))))
|
||||
|
@ -2332,7 +2333,7 @@ MPEG-2 and audio over Linux IEEE 1394.")
|
|||
(define-public mdadm
|
||||
(package
|
||||
(name "mdadm")
|
||||
(version "3.3.2")
|
||||
(version "3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -2340,8 +2341,7 @@ MPEG-2 and audio over Linux IEEE 1394.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg"))
|
||||
(patches (search-patches "mdadm-gcc-4.9-fix.patch"))))
|
||||
"0248v9f28mrbwabl94ck22gfim29sqhkf70wrpfi52nk4x3bxl17"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("udev" ,eudev)))
|
||||
|
@ -2401,18 +2401,41 @@ system calls, important for the performance of databases and other advanced
|
|||
applications.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public sbc
|
||||
(package
|
||||
(name "sbc")
|
||||
(version "1.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.kernel.org/pub/linux/bluetooth/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02ckd2z51z0h85qgv7x8vv8ybp5czm9if1z78411j53gaz7j4476"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libsndfile" ,libsndfile)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://www.kernel.org/pub/linux/bluetooth/")
|
||||
(synopsis "Bluetooth subband audio codec")
|
||||
(description
|
||||
"The SBC is a digital audio encoder and decoder used to transfer data to
|
||||
Bluetooth audio output devices like headphones or loudspeakers.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public bluez
|
||||
(package
|
||||
(name "bluez")
|
||||
(version "5.36")
|
||||
(version "5.39")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.kernel.org/pub/linux/bluetooth/bluez-"
|
||||
"mirror://kernel.org/linux/bluetooth/bluez-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wkqwmi5krr37mxcqqlp5m2xnw7vw70v3ww7j09vvlskxcdflhx3"))))
|
||||
"0fsrf9rdmrdyx0vmcpfji4imjsvliawyy5sjb6b64myka28vrl91"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -2542,7 +2565,7 @@ and copy/paste text in the console and in xterm.")
|
|||
(define-public btrfs-progs
|
||||
(package
|
||||
(name "btrfs-progs")
|
||||
(version "4.5.1")
|
||||
(version "4.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/linux/kernel/"
|
||||
|
@ -2550,7 +2573,7 @@ and copy/paste text in the console and in xterm.")
|
|||
"btrfs-progs-v" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f"))))
|
||||
"1lzbw275xgv69v4z8hmsf3jnip38116hxhkpv0madk8wv049drz6"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"static")) ; static versions of binaries in "out" (~16MiB!)
|
||||
|
@ -2676,3 +2699,38 @@ pre-configured) fan level. It requires a working @code{thinkpad_acpi} or any
|
|||
other @code{hwmon} driver that enables temperature reading and fan control
|
||||
from userspace.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public ntfs-3g
|
||||
(package
|
||||
(name "ntfs-3g")
|
||||
(version "2016.2.22")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://tuxera.com/opensource/"
|
||||
"ntfs-3g_ntfsprogs-" version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"180y5y09h30ryf2vim8j30a2npwz1iv9ly5yjmh3wjdkwh2jrdyp"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; Install under $prefix.
|
||||
'(substitute* '("src/Makefile.in" "ntfsprogs/Makefile.in")
|
||||
(("/sbin")
|
||||
"@sbindir@")))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("util-linux" ,util-linux)
|
||||
("fuse" ,fuse))) ;libuuid
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
'(#:configure-flags (list "--exec-prefix=${prefix}"
|
||||
"--with-fuse=external" ;use our own FUSE
|
||||
"--enable-mount-helper"
|
||||
"--enable-posix-acls"
|
||||
"--enable-xattr-mappings")))
|
||||
(home-page "http://www.tuxera.com/community/open-source-ntfs-3g/")
|
||||
(synopsis "Read-write access to NTFS file systems")
|
||||
(description
|
||||
"NTFS-3G provides read-write access to NTFS file systems, which are
|
||||
commonly found on Microsoft Windows. It is implemented as a FUSE file system.
|
||||
The package provides additional NTFS tools.")
|
||||
(license license:gpl2+)))
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -325,19 +326,10 @@ can read the same mailbox from multiple computers. It supports IMAP as REMOTE
|
|||
repository and Maildir/IMAP as LOCAL repository.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define %mu-gtester-patch
|
||||
;; Ensure tests have unique names, to placate GLib 2.6's gtester.
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "https://github.com/djcb/mu/commit/b44039ed.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"165hryqqhx3wah8a4f5jaq465azx1pm9r4jid7880pys9gd88qlv"))))
|
||||
|
||||
(define-public mu
|
||||
(package
|
||||
(name "mu")
|
||||
(version "0.9.13")
|
||||
(version "0.9.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/djcb/mu/archive/v"
|
||||
|
@ -345,8 +337,7 @@ repository and Maildir/IMAP as LOCAL repository.")
|
|||
(file-name (string-append "mu-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wj33pma8xgjvn2akk7khzbycwn4c9sshxvzdph9dnpy7gyqxj51"))
|
||||
(patches (list %mu-gtester-patch))))
|
||||
"0p7hqri1r1x6750x138cc29mh81kdav2dcim26y58s8an206h25g"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
@ -364,18 +355,39 @@ repository and Maildir/IMAP as LOCAL repository.")
|
|||
("gmime" ,gmime)
|
||||
("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
|
||||
(arguments
|
||||
'(#:phases (alist-cons-after
|
||||
'unpack 'autoreconf
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(guix build emacs-utils))
|
||||
#:imported-modules (,@%gnu-build-system-modules
|
||||
(guix build emacs-utils))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-configure.ac
|
||||
;; By default, elisp code goes to "share/emacs/site-lisp/mu4e",
|
||||
;; so our Emacs package can't find it. Setting "--with-lispdir"
|
||||
;; configure flag doesn't help because "mu4e" will be added to
|
||||
;; the lispdir anyway, so we have to modify "configure.ac".
|
||||
(lambda _
|
||||
(zero? (system* "autoreconf" "-vi")))
|
||||
(alist-cons-before
|
||||
'check 'check-tz-setup
|
||||
(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")))
|
||||
%standard-phases))))
|
||||
"/share/zoneinfo"))
|
||||
#t))
|
||||
(add-after 'install 'install-emacs-autoloads
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(emacs-generate-autoloads
|
||||
"mu4e"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/share/emacs/site-lisp"))
|
||||
#t)))))
|
||||
(home-page "http://www.djcbsoftware.nl/code/mu/")
|
||||
(synopsis "Quickly find emails")
|
||||
(description
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de>
|
||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -46,6 +48,7 @@
|
|||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages flex)
|
||||
|
@ -79,6 +82,7 @@
|
|||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages texlive)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages wxwidgets)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages zip)
|
||||
|
@ -583,7 +587,7 @@ online as well as original implementations of various other algorithms.")
|
|||
(define-public octave
|
||||
(package
|
||||
(name "octave")
|
||||
(version "4.0.0")
|
||||
(version "4.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -591,7 +595,7 @@ online as well as original implementations of various other algorithms.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc"))))
|
||||
"1hdxap3j88rpqjimnfhinym6z73wdi5dfa6fv85c13r1dk9qzk9r"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("lapack" ,lapack)
|
||||
|
@ -602,6 +606,7 @@ online as well as original implementations of various other algorithms.")
|
|||
("arpack" ,arpack-ng)
|
||||
("curl" ,curl)
|
||||
("pcre" ,pcre)
|
||||
("cyrus-sasl" ,cyrus-sasl)
|
||||
("fltk" ,fltk)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
|
@ -609,6 +614,7 @@ online as well as original implementations of various other algorithms.")
|
|||
("libxft" ,libxft)
|
||||
("mesa" ,mesa)
|
||||
("glu" ,glu)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("gfortran" ,gfortran)
|
||||
|
@ -626,7 +632,8 @@ online as well as original implementations of various other algorithms.")
|
|||
("ghostscript" ,ghostscript)
|
||||
("gnuplot" ,gnuplot)))
|
||||
(arguments
|
||||
`(#:configure-flags (list (string-append "--with-shell="
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-shell="
|
||||
(assoc-ref %build-inputs "bash")
|
||||
"/bin/sh"))))
|
||||
(home-page "http://www.gnu.org/software/octave/")
|
||||
|
@ -664,6 +671,9 @@ script files.")
|
|||
("glu" ,glu)
|
||||
("libx11" ,libx11)
|
||||
("libxext" ,libxext)))
|
||||
(inputs
|
||||
`(("fontconfig" ,fontconfig)
|
||||
("libxft" ,libxft)))
|
||||
(arguments
|
||||
`(#:configure-flags `("-DENABLE_METIS:BOOL=OFF"
|
||||
"-DENABLE_BUILD_SHARED:BOOL=ON"
|
||||
|
@ -1588,7 +1598,7 @@ point numbers.")
|
|||
(define-public wxmaxima
|
||||
(package
|
||||
(name "wxmaxima")
|
||||
(version "15.04.0")
|
||||
(version "16.04.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1596,7 +1606,7 @@ point numbers.")
|
|||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fm47ah4aw5qdjqhkz67w5fwhy8yfffa5z896crp0d3hk2bh4180"))))
|
||||
"1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("wxwidgets" ,wxwidgets)
|
||||
|
@ -1631,14 +1641,14 @@ full text searching.")
|
|||
(define-public armadillo
|
||||
(package
|
||||
(name "armadillo")
|
||||
(version "6.700.4")
|
||||
(version "6.700.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/arma/armadillo-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dsdjcps5l2nhg0455rrc708inffarzj7n435vj4sm9lxwf21wg9"))))
|
||||
"0xbidcxrvbq33xf7iysg2nic2ai9a043psl33kiv6ifkk7p8hcra"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments `(#:tests? #f)) ;no test target
|
||||
(inputs
|
||||
|
@ -1659,14 +1669,14 @@ associated functions (eg. contiguous and non-contiguous submatrix views).")
|
|||
|
||||
(define-public armadillo-for-rcpparmadillo
|
||||
(package (inherit armadillo)
|
||||
(version "6.700.3")
|
||||
(version "6.700.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/arma/armadillo-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vnhifa7d0aij3kv5bxf6m91d99h3y2fyj48jrx7jcvwyb1q5wwq"))))))
|
||||
"1cdpjxb0fz5f28y5qrqgpw53s7qi8s2v3al9lfdldqxngb21vpx8"))))))
|
||||
|
||||
(define-public muparser
|
||||
(package
|
||||
|
@ -2199,7 +2209,23 @@ in finite element programs.")
|
|||
;; ("python2-numpy" ,python2-numpy) ; only required for the tests
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; The test data are downloaded from the Internet.
|
||||
`(;; The 'share/flann/octave' contains a .mex file, which is an ELF file
|
||||
;; taken 46 MiB unstripped, and 6 MiB stripped.
|
||||
#:strip-directories '("lib" "lib64" "libexec"
|
||||
"bin" "sbin" "share/flann/octave")
|
||||
|
||||
;; Save 12 MiB by not installing .a files. Passing
|
||||
;; '-DBUILD_STATIC_LIBS=OFF' has no effect.
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'install 'remove-static-libraries
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lib (string-append out "/lib")))
|
||||
(for-each delete-file
|
||||
(find-files lib "\\.a$"))
|
||||
#t))))
|
||||
|
||||
#:tests? #f)) ; The test data are downloaded from the Internet.
|
||||
(home-page "http://www.cs.ubc.ca/research/flann/")
|
||||
(synopsis "Library for approximate nearest neighbors computation")
|
||||
(description "FLANN is a library for performing fast approximate
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
|
|
@ -138,14 +138,14 @@ more.")
|
|||
(define-public libndp
|
||||
(package
|
||||
(name "libndp")
|
||||
(version "1.5")
|
||||
(version "1.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://libndp.org/files/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15f743hjc7yy2sv3hzvfc27s1gny4mh5aww59vn195fff2midwgs"))))
|
||||
"03mczwrxqbp54msafxzzyhaazkvjdwm2kipjkrb5xg8kw22glz8c"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://libndp.org/")
|
||||
(synopsis "Library for Neighbor Discovery Protocol")
|
||||
|
|
|
@ -34,14 +34,14 @@
|
|||
(define-public owncloud-client
|
||||
(package
|
||||
(name "owncloud-client")
|
||||
(version "2.1.1")
|
||||
(version "2.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://download.owncloud.com/desktop/stable/"
|
||||
"owncloudclient-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1jxi439qff4acvyvszjprj42kvzhlz255wv8g4p3jrf55svzwz2f"))))
|
||||
(base32 "1ak7hq13hl7qndm3zz7hdfvw6930kmhjh27s1427g784vxcqb23q"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -203,17 +203,19 @@ the Nix package manager.")
|
|||
;;
|
||||
;; Note: use a very short commit id; with a longer one, the limit on
|
||||
;; hash-bang lines would be exceeded while running the tests.
|
||||
(let ((commit "80627f51f0238b9450745f4e642172d059ca5bb5"))
|
||||
(let ((commit "e9017c98d61f305b624bacaa30e8891ec0100980"))
|
||||
(package (inherit guix-0.10.0)
|
||||
(version (string-append "0.10.0-0." (string-take commit 4)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "git://git.sv.gnu.org/guix.git")
|
||||
;; "git://git.sv.gnu.org/guix.git" temporarily
|
||||
;; unavailable (XXX).
|
||||
(url "http://git.savannah.gnu.org/r/guix.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"102gdbx5imx0zab7i5dwa1z9j1diblinaaja09dp3q30770iyxj9"))
|
||||
"13mfk10cw6fk4diclzld56xwabshanxjcczdrjlj0wisaz32h3nl"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guix-0.10.0)
|
||||
|
|
|
@ -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.
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
};
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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)
|
|
@ -25,6 +25,7 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
|
@ -188,6 +189,7 @@ colors, styles, options and details.")
|
|||
`(("gs" ,ghostscript) ;For tests
|
||||
("texinfo" ,texinfo) ;For generating documentation
|
||||
("texlive" ,texlive) ;For tests and documentation
|
||||
("emacs" ,emacs-no-x)
|
||||
("perl" ,perl)))
|
||||
(inputs
|
||||
`(("fftw" ,fftw)
|
||||
|
@ -198,7 +200,13 @@ colors, styles, options and details.")
|
|||
("readline" ,readline)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
`(#:modules ((guix build emacs-utils)
|
||||
(guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-26))
|
||||
#:imported-modules (,@%gnu-build-system-modules
|
||||
(guix build emacs-utils))
|
||||
#:configure-flags
|
||||
(list (string-append "--enable-gc=" (assoc-ref %build-inputs "libgc"))
|
||||
(string-append "--with-latex="
|
||||
(assoc-ref %outputs "out")
|
||||
|
@ -210,15 +218,26 @@ colors, styles, options and details.")
|
|||
(modify-phases %standard-phases
|
||||
(add-before 'build 'patch-pdf-viewer
|
||||
(lambda _
|
||||
;; Default to a free pdf viewer
|
||||
;; Default to a free pdf viewer.
|
||||
(substitute* "settings.cc"
|
||||
(("defaultPDFViewer=\"acroread\"")
|
||||
"defaultPDFViewer=\"gv\""))))
|
||||
"defaultPDFViewer=\"gv\""))
|
||||
#t))
|
||||
(add-before 'check 'set-HOME
|
||||
;; Some tests require write access to $HOME, otherwise leading to
|
||||
;; "failed to create directory /homeless-shelter/.asy" error.
|
||||
(lambda _
|
||||
(setenv "HOME" "/tmp"))))))
|
||||
(setenv "HOME" "/tmp")
|
||||
#t))
|
||||
(add-after 'install 'install-Emacs-data
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Install related Emacs libraries into an appropriate location.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lisp-dir (string-append out "/share/emacs/site-lisp")))
|
||||
(for-each (cut install-file <> lisp-dir)
|
||||
(find-files "." "\\.el$"))
|
||||
(emacs-generate-autoloads ,name lisp-dir))
|
||||
#t)))))
|
||||
(home-page "http://asymptote.sourceforge.net")
|
||||
(synopsis "Script-based vector graphics language")
|
||||
(description
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
|
||||
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -90,7 +91,7 @@
|
|||
#:use-module (guix build-system trivial)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public python-2
|
||||
(define-public python-2.7
|
||||
(package
|
||||
(name "python")
|
||||
(version "2.7.11")
|
||||
|
@ -281,7 +282,10 @@ packages; exception-based error handling; and very high level dynamic
|
|||
data types.")
|
||||
(license psfl)))
|
||||
|
||||
(define-public python
|
||||
;; Current 2.x version.
|
||||
(define-public python-2 python-2.7)
|
||||
|
||||
(define-public python-3.4
|
||||
(package (inherit python-2)
|
||||
(version "3.4.3")
|
||||
(source (origin
|
||||
|
@ -307,6 +311,12 @@ data types.")
|
|||
(version-major+minor version)
|
||||
"/site-packages"))))))))
|
||||
|
||||
;; Current 3.x version.
|
||||
(define-public python-3 python-3.4)
|
||||
|
||||
;; Current major version.
|
||||
(define-public python python-3)
|
||||
|
||||
;; Minimal variants of Python, mostly used to break the cycle between Tk and
|
||||
;; Python (Tk -> libxcb -> Python.)
|
||||
|
||||
|
@ -1002,15 +1012,16 @@ datetime module, available in Python 2.3+.")
|
|||
(define-public python-pandas
|
||||
(package
|
||||
(name "python-pandas")
|
||||
(version "0.18.0")
|
||||
(version "0.18.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pandas" version))
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/11/09/"
|
||||
"e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/"
|
||||
"pandas-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "050qw0ap5bhyv5flp78x3lcq1dlminl3xaj6kbrm0jqmx0672xf9"))
|
||||
(patches (search-patches
|
||||
"python-pandas-fix-tslib-test-failure.patch"))))
|
||||
(base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-numpy" ,python-numpy)))
|
||||
|
@ -1018,8 +1029,7 @@ datetime module, available in Python 2.3+.")
|
|||
`(("python-pytz" ,python-pytz)
|
||||
("python-dateutil" ,python-dateutil-2)))
|
||||
(native-inputs
|
||||
`(("python-nose" ,python-nose)
|
||||
("python-setuptools" ,python-setuptools)))
|
||||
`(("python-nose" ,python-nose)))
|
||||
(home-page "http://pandas.pydata.org")
|
||||
(synopsis "Data structures for data analysis, time series, and statistics")
|
||||
(description
|
||||
|
@ -1028,15 +1038,15 @@ structures designed to make working with structured (tabular,
|
|||
multidimensional, potentially heterogeneous) and time series data both easy
|
||||
and intuitive. It aims to be the fundamental high-level building block for
|
||||
doing practical, real world data analysis in Python.")
|
||||
(license bsd-3)))
|
||||
(license bsd-3)
|
||||
(properties `((python2-variant . ,(delay python2-pandas))))))
|
||||
|
||||
(define-public python2-pandas
|
||||
(let ((pandas (package-with-python2 python-pandas)))
|
||||
(package (inherit pandas)
|
||||
(propagated-inputs
|
||||
`(("python2-numpy" ,python2-numpy)
|
||||
,@(alist-delete "python-numpy"
|
||||
(package-propagated-inputs pandas)))))))
|
||||
(let ((base (package-with-python2 (strip-python2-variant python-pandas))))
|
||||
(package
|
||||
(inherit base)
|
||||
(native-inputs `(("python2-setuptools" ,python2-setuptools)
|
||||
,@(package-native-inputs base))))))
|
||||
|
||||
(define-public python-tzlocal
|
||||
(package
|
||||
|
@ -5856,16 +5866,18 @@ responses, rather than doing any computation.")
|
|||
(define-public python-cryptography-vectors
|
||||
(package
|
||||
(name "python-cryptography-vectors")
|
||||
(version "1.3.1")
|
||||
(version "1.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://pypi.python.org/packages/source/c/"
|
||||
"cryptography-vectors/cryptography_vectors-"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/"
|
||||
"3f/fd/"
|
||||
"5883a7fdfcdf6edec55c58605be99d8c36ce97a9b729763ea9cf30e761b7"
|
||||
"/cryptography_vectors-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1144l3ypz3bngxd59lb4y74xa401w92lhvvjgxzglmvbh8wzkcbb"))))
|
||||
"0ss682bpgzdfy2vam8yhhrx7p5gnw89ydlvaswqp52za8sd8nsh0"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)))
|
||||
|
@ -5882,14 +5894,18 @@ responses, rather than doing any computation.")
|
|||
(define-public python-cryptography
|
||||
(package
|
||||
(name "python-cryptography")
|
||||
(version "1.3.1")
|
||||
(version "1.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cryptography" version))
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/"
|
||||
"04/da/"
|
||||
"35f9a1d34dab5d777f65fb87731288f338ab0ae46a525ffdf0405b573dd0"
|
||||
"/cryptography-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qjkrpfvxcyd0kal3zpm5y7f9p3y77ixn9jw8f4dqpgrw1sn3cxl"))))
|
||||
"121067qdbzd0ir0nxjdf0kgai7qlsc9yh2xhrj4cavcn4y4gmapv"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("openssl" ,openssl)))
|
||||
|
@ -8764,3 +8780,30 @@ respectively.")
|
|||
(description (string-append "This is an experimental compiler for a subset of
|
||||
Python. It generates C++ code and a Makefile."))
|
||||
(license (list gpl3 bsd-3 license:expat))))
|
||||
|
||||
(define-public python2-rope
|
||||
(package
|
||||
(name "python2-rope")
|
||||
(version "0.10.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "rope" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18k5znhpwvrfck3yp0jmhd5j8r0f0s8bk1zh5yhs2cfgmfhbwigb"))))
|
||||
(arguments
|
||||
;; Rope is currently python-2 only.
|
||||
;; https://github.com/python-rope/rope/issues/57
|
||||
`(#:python ,python-2))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python2-unittest2" ,python2-unittest2)
|
||||
("python2-setuptools" ,python2-setuptools)))
|
||||
(home-page "https://github.com/python-rope/rope")
|
||||
(synopsis "Refactoring library for Python")
|
||||
(description "Rope is a refactoring library for Python. It facilitates
|
||||
the renaming, moving and extracting of attributes, functions, modules, fields
|
||||
and parameters in Python 2 source code. These refactorings can also be applied
|
||||
to occurences in strings and comments.")
|
||||
(license gpl2)))
|
||||
|
|
|
@ -55,20 +55,17 @@
|
|||
(define-public qemu
|
||||
(package
|
||||
(name "qemu")
|
||||
(version "2.5.1.1")
|
||||
(version "2.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://wiki.qemu-project.org/download/qemu-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rpgr1v6gnsdb4bcxwn1krsz4d4h9xgvlg6ark648nkn8dp99n98"))))
|
||||
"1v1lhhd6m59hqgmiz100g779rjq70pik5v4b3g936ci73djlmb69"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; FIXME: On x86_64, the test 'check-qtest-x86_64' sometimes fails when
|
||||
;; parallel builds are enabled.
|
||||
#:parallel-tests? #f
|
||||
#:phases (alist-replace
|
||||
'(#:phases (alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs (configure-flags '())
|
||||
#:allow-other-keys)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -505,7 +505,7 @@ contain over 620 classes.")
|
|||
(define-public qtkeychain
|
||||
(package
|
||||
(name "qtkeychain")
|
||||
(version "0.5.0")
|
||||
(version "0.6.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -513,7 +513,7 @@ contain over 620 classes.")
|
|||
"archive/v" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "055mkd4pz6cyff4cw0784wjc1w92m8x223sxi96ph15fr3lplbg6"))))
|
||||
(base32 "0g76pa786mg0fxy52hrljw09dvi6kffk2ms42lxapvpy6j94a4xf"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("qt" ,qt)))
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2015, 2016 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -22,11 +23,15 @@
|
|||
|
||||
(define-module (gnu packages scheme)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module ((guix licenses) #:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3))
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3
|
||||
cc-by-sa4.0))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
|
@ -38,6 +43,7 @@
|
|||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages texlive)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages libphidget)
|
||||
|
@ -872,3 +878,54 @@ procedures, embedded in the programming language Scheme, and intended to
|
|||
support teaching and research in mathematical physics and electrical
|
||||
engineering.")
|
||||
(license gpl2+))))
|
||||
|
||||
(define-public sicp
|
||||
(let ((commit "5b52db566968d28a89fbbaf338d207f01cc81cac"))
|
||||
(package
|
||||
(name "sicp")
|
||||
(version (string-append "20160220-1." (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/sarabander/sicp")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"10h6h7szwlfbshwh18bnl2hvyddj5i7106l79s145l0sjjv15cxb"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs `(("gzip" ,gzip)
|
||||
("source" ,source)
|
||||
("texinfo" ,texinfo)))
|
||||
(arguments
|
||||
`(#:modules ((guix build utils)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
(let ((gzip (assoc-ref %build-inputs "gzip"))
|
||||
(source (assoc-ref %build-inputs "source"))
|
||||
(texinfo (assoc-ref %build-inputs "texinfo"))
|
||||
(info-dir (string-append %output "/share/info")))
|
||||
(setenv "PATH" (string-append gzip "/bin"
|
||||
":" texinfo "/bin"))
|
||||
(mkdir-p info-dir)
|
||||
(and (zero?
|
||||
(system* "makeinfo" "--output"
|
||||
(string-append info-dir "/sicp.info")
|
||||
(string-append source "/sicp-pocket.texi")))
|
||||
(every zero?
|
||||
(map (cut system* "gzip" "-9n" <>)
|
||||
(find-files info-dir))))))))
|
||||
(home-page "http://sarabander.github.io/sicp")
|
||||
(synopsis "Structure and Interpretation of Computer Programs")
|
||||
(description "Structure and Interpretation of Computer Programs (SICP) is
|
||||
a textbook aiming to teach the principles of computer programming.
|
||||
|
||||
Using Scheme, a dialect of the Lisp programming language, the book explains
|
||||
core computer science concepts such as abstraction in programming,
|
||||
metalinguistic abstraction, recursion, interpreters, and modular programming.")
|
||||
(license cc-by-sa4.0))))
|
||||
|
|
|
@ -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/"))))
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -356,13 +357,13 @@ Munsell colour system.")
|
|||
(define-public r-rcpp
|
||||
(package
|
||||
(name "r-rcpp")
|
||||
(version "0.12.4")
|
||||
(version "0.12.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "Rcpp" version))
|
||||
(sha256
|
||||
(base32 "1lyhyaxrnb5w4igi3l1p378s4jblcnrv6h7h5ym42ljm54mm44w3"))))
|
||||
(base32 "1vw0zbd6zhqixqg7h8ahn1dr1hb492365x419nrp2lhvr60r8i0k"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://www.rcpp.org")
|
||||
(synopsis "Seamless R and C++ Integration")
|
||||
|
@ -604,13 +605,13 @@ evaluation (NSE) in R.")
|
|||
(define-public r-dbi
|
||||
(package
|
||||
(name "r-dbi")
|
||||
(version "0.3.1")
|
||||
(version "0.4-1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "DBI" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xj5baxwnhl23rd5nskhjvranrwrc68f3xlyrklglipi41bm69hw"))))
|
||||
"13n6ibmrma42qmq17qgkyjsc0ciwqf17sd7lw7w26pwpyjd4mwgg"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/rstats-db/DBI")
|
||||
(synopsis "R database interface")
|
||||
|
@ -624,13 +625,13 @@ R/DBMS implementations.")
|
|||
(define-public r-bh
|
||||
(package
|
||||
(name "r-bh")
|
||||
(version "1.60.0-1")
|
||||
(version "1.60.0-2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "BH" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08gc3b0irgvpjl59irdxs8jhlbky4yp4fvs3zi4pq0wdwj43cfsk"))))
|
||||
"136497fng9bcvrf8favpj8inz96pxdwp1rrb2k00sxjxjbgawhg4"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/eddelbuettel/bh")
|
||||
(synopsis "R package providing subset of Boost headers")
|
||||
|
@ -642,13 +643,13 @@ for template use among CRAN packages.")
|
|||
(define-public r-evaluate
|
||||
(package
|
||||
(name "r-evaluate")
|
||||
(version "0.8.3")
|
||||
(version "0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "evaluate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08d6164m9wqf9qq6yh1s9a0qxwqzqpsq7312hilzy79gxf9gixzr"))))
|
||||
"1bn6bympg9prr8d16g1g530bddii8i04hf4i2bkw0yf4dsfqq4g8"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-stringr" ,r-stringr)))
|
||||
|
@ -664,13 +665,13 @@ adapted for other output formats, such as HTML or LaTeX.")
|
|||
(define-public r-formatr
|
||||
(package
|
||||
(name "r-formatr")
|
||||
(version "1.3")
|
||||
(version "1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "formatR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"09fsd0z6nhksc1h921h8q28f87hr6d1q8d6dmpxphjylb9r5xmj4"))))
|
||||
"1fvynq0fj1r9grg9vvfdh5fl2riv6qki9f2rfpyvbvqq3xxpmi3f"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://yihui.name/formatR")
|
||||
(synopsis "Format R code automatically")
|
||||
|
@ -684,13 +685,13 @@ There is also a Shiny app as a user interface in this package.")
|
|||
(define-public r-highr
|
||||
(package
|
||||
(name "r-highr")
|
||||
(version "0.5.1")
|
||||
(version "0.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "highr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11hyawzhaw3ph5y5xphi7alx6df1d0i6wh0a2n5m4sxxhdrzswnb"))))
|
||||
"0n9v44dxdy5fhkdmpbpa2p78whyd9z3rhhy42ipdz5m5vsr55qa3"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://github.com/yihui/highr")
|
||||
(synopsis "Syntax highlighting for R source code")
|
||||
|
@ -765,13 +766,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.")
|
|||
(define-public r-knitr
|
||||
(package
|
||||
(name "r-knitr")
|
||||
(version "1.12.3")
|
||||
(version "1.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "knitr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v3rzv6wq8mvpdrljsaqk4z3f8323jnv385js24wmn4fglqly6dz"))))
|
||||
"0v69846myi4fbjp8wiik4295fhba67s3i6ccysghm6x031i2f26q"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-evaluate" ,r-evaluate)
|
||||
|
@ -915,13 +916,13 @@ R packages that praise their users.")
|
|||
(define-public r-testthat
|
||||
(package
|
||||
(name "r-testthat")
|
||||
(version "1.0.0")
|
||||
(version "1.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "testthat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ci1y54kaz7g4di79fcibp0m0wkkxn2glchhs6v8jfg6374ka410"))))
|
||||
"0pj1r01x4ny4capr83dfa19hi5i2sjjxky99schzip8zrq5dzxqf"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-digest" ,r-digest)
|
||||
|
@ -1395,14 +1396,14 @@ collation, and NAMESPACE files.")
|
|||
(define-public r-openssl
|
||||
(package
|
||||
(name "r-openssl")
|
||||
(version "0.9.2")
|
||||
(version "0.9.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "openssl" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1dbsaciz39zvsmcyxkmpfm5yxzrpw2iv2nb86525wn80q0cyv0cb"))))
|
||||
"0ldqam7d9fyxwhr651ld6lsh05lg4v2y8ajxwzq9ywzjmfb3vlpz"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("openssl" ,openssl)))
|
||||
|
@ -1452,13 +1453,13 @@ functions make it easy to control additional request components.")
|
|||
(define-public r-git2r
|
||||
(package
|
||||
(name "r-git2r")
|
||||
(version "0.14.0")
|
||||
(version "0.15.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "git2r" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jkkrggffpflaaw0gn2hnm1wz83xs31amriim481g73zf30g2bpr"))))
|
||||
"1rpdf85wy9fp456ypvbhl3p9whkb7kgl0n7rkqxd2bhvyzkvjak8"))))
|
||||
(build-system r-build-system)
|
||||
;; This R package contains modified sources of libgit2. This modified
|
||||
;; version of libgit2 is built as the package is built. Hence libgit2 is
|
||||
|
@ -1496,13 +1497,13 @@ informative error messages when it's not available.")
|
|||
(define-public r-devtools
|
||||
(package
|
||||
(name "r-devtools")
|
||||
(version "1.11.0")
|
||||
(version "1.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "devtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"101j15d0f9107pnmdpdwqyvk2ncykq48336rl8lnqp6idiq8id2q"))))
|
||||
"0ik3l3q62sspdph613f9ik5yz36s8q5nrc50dqgn3pxzvpwpdj2i"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-curl" ,r-curl)
|
||||
|
@ -1567,13 +1568,13 @@ disk (or a connection).")
|
|||
(define-public r-plotrix
|
||||
(package
|
||||
(name "r-plotrix")
|
||||
(version "3.6-1")
|
||||
(version "3.6-2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "plotrix" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1y8xnlpy4zba70af9lwj2sshvfdfcmfdh92wamyzj8z9gciailfr"))))
|
||||
"1jn1k3skmlgyvpijj6vlcn5m2zgrsdh00g1fq8n5dqs1pkl1sqrw"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://cran.r-project.org/web/packages/plotrix")
|
||||
(synopsis "Various plotting functions")
|
||||
|
@ -1646,13 +1647,13 @@ well as additional utilities such as panel and axis annotation functions.")
|
|||
(define-public r-rcpparmadillo
|
||||
(package
|
||||
(name "r-rcpparmadillo")
|
||||
(version "0.6.700.3.0")
|
||||
(version "0.6.700.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppArmadillo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1mc62b6my568ni18w4clgs6l6ggqrwzsm3lgx0c1prf4rap69s8w"))
|
||||
"0x736cjg1pbvn8c6h91c88qmmz4pddvvqg88k9c9kwhn24fjrra0"))
|
||||
(modules '((guix build utils)))
|
||||
;; Remove bundled armadillo sources
|
||||
(snippet
|
||||
|
@ -1730,14 +1731,14 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.")
|
|||
(define-public r-rmarkdown
|
||||
(package
|
||||
(name "r-rmarkdown")
|
||||
(version "0.9.5")
|
||||
(version "0.9.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "rmarkdown" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zz98jxvw3lzva5kkj1n37gbhjwqd96gjs04y6h37pqy6qmkhk8c"))))
|
||||
"09ajq5miqzz46q0i9svvbh93dbi7xbjn4702d6z3scdz272gx7l2"))))
|
||||
(properties `((upstream-name . "rmarkdown")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -2411,13 +2412,13 @@ persistent (on the file system).")
|
|||
(define-public r-r-rsp
|
||||
(package
|
||||
(name "r-r-rsp")
|
||||
(version "0.21.0")
|
||||
(version "0.30.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "R.rsp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0snc6ps75s3ci6sy8mil1wg2i9xmlr1ygh9n244y1brdvp43dfsw"))))
|
||||
"1ssykygqkxzx9qblxhavxlf2z6r5bhk0s47yw1dllfiyc8zy7jv2"))))
|
||||
(properties `((upstream-name . "R.rsp")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -2461,13 +2462,13 @@ t-probabilities, quantiles, random deviates and densities.")
|
|||
(define-public r-matrixstats
|
||||
(package
|
||||
(name "r-matrixstats")
|
||||
(version "0.50.1")
|
||||
(version "0.50.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "matrixStats" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08l32abp7dfnsc49ca4hzznh934y60n5z01x5ga2ixky5961s57c"))))
|
||||
"0zj27xxx9cyrq16rn4g3l0krqg68p8f2qp18w1w4i767j87amlbj"))))
|
||||
(properties `((upstream-name . "matrixStats")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
|
@ -2563,13 +2564,13 @@ It uses and relies on grid graphics and formal (S4) classes and methods.")
|
|||
(define-public r-plotly
|
||||
(package
|
||||
(name "r-plotly")
|
||||
(version "3.4.13")
|
||||
(version "3.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "plotly" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1pfl9w35iwin8a1hfwcihajyps2ngjbyrmvi61b9lspcdbk39lf8"))))
|
||||
"15hvqa0sf4z6l6vvr614zjszfphwpv66zpc665iyiynq0pd1jv2c"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-base64enc" ,r-base64enc)
|
||||
|
@ -2593,6 +2594,28 @@ directly from R. Once uploaded to a plotly account, plotly graphs (and the
|
|||
data behind them) can be viewed and modified in a web browser.")
|
||||
(license license:x11)))
|
||||
|
||||
(define-public r-biased-urn
|
||||
(package
|
||||
(name "r-biased-urn")
|
||||
(version "1.07")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "BiasedUrn" version))
|
||||
(sha256
|
||||
(base32
|
||||
"13i2lgfnjhlbbm2yxfc2l5hswqw6x03pwba5csjmirv8kpjw4xr3"))))
|
||||
(properties `((upstream-name . "BiasedUrn")))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://www.agner.org/random/")
|
||||
(synopsis "Biased urn model distributions")
|
||||
(description
|
||||
"This package provides statistical models of biased sampling in the form
|
||||
of univariate and multivariate noncentral hypergeometric distributions,
|
||||
including Wallenius' noncentral hypergeometric distribution and Fisher's
|
||||
noncentral hypergeometric distribution (also called extended hypergeometric
|
||||
distribution).")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public r-ztable
|
||||
(package
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
|
||||
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,8 +28,10 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages python))
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages zip))
|
||||
|
||||
(define-public recode
|
||||
(package
|
||||
|
@ -328,3 +331,42 @@ name comes from: \"The antidote against people who send Microsoft Word files
|
|||
to everybody, because they believe that everybody runs Windows and therefore
|
||||
runs Word\".")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public utfcpp
|
||||
(package
|
||||
(name "utfcpp")
|
||||
(version "2.3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append
|
||||
"mirror://sourceforge/project/utfcpp/utf8cpp_2x/Release%20"
|
||||
version "/utf8_v"
|
||||
(string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
|
||||
".zip"))
|
||||
(file-name (string-append name "-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vqhs0aipcvvdrwcs7h3jsryg6mgbmc4s34n5cm6d36q4nxwwwrk"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((source (assoc-ref %build-inputs "source"))
|
||||
(out (assoc-ref %outputs "out"))
|
||||
(unzip (string-append (assoc-ref %build-inputs "unzip")
|
||||
"/bin/unzip")))
|
||||
(mkdir-p out)
|
||||
(with-directory-excursion out
|
||||
(system* unzip source)
|
||||
(mkdir-p "share/doc")
|
||||
(rename-file "doc" "share/doc/utfcpp")
|
||||
(rename-file "source" "include"))))))
|
||||
(native-inputs `(("unzip" ,unzip)))
|
||||
(home-page "https://github.com/nemtrif/utfcpp")
|
||||
(synopsis "Portable C++ library for handling UTF-8")
|
||||
(description "UTF8-CPP is a C++ library for handling UTF-8 encoded text
|
||||
in a portable way.")
|
||||
(license license:boost1.0)))
|
||||
|
|
|
@ -351,13 +351,16 @@ security, and applying best practice development processes.")
|
|||
(define-public python-acme
|
||||
(package
|
||||
(name "python-acme")
|
||||
(version "0.5.0")
|
||||
(version "0.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "acme" version))
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/"
|
||||
"af/33/703e5ec3d7efde7c4d2fcea9cdf88953a33d4e72aafd5b0a330173a7b395/"
|
||||
"acme-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1g8scfkhs3l06588h73py81xb1gvkkdzaxanl21whcvdclycc186"))))
|
||||
"1ipck25c6nr0x54w2cc8ziwjmyyrpyz6pc1y8xc9nqmxvw4n0kpc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -407,16 +410,19 @@ security, and applying best practice development processes.")
|
|||
(define-public python2-acme
|
||||
(package-with-python2 python-acme))
|
||||
|
||||
(define-public letsencrypt
|
||||
(define-public certbot
|
||||
(package
|
||||
(name "letsencrypt")
|
||||
(version "0.5.0")
|
||||
(name "certbot")
|
||||
(version "0.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "letsencrypt" version))
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/"
|
||||
"fc/eb/7594bf16d89909a9d52c46edbeae669d4b2ee6e12453bd97e674d0371920/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nnijs26kkw07yylszc97p3jw09y98j54xihjp0rprrbp1q2p2p3"))))
|
||||
"0ba95cf6shmyhi4vzvk64vbkrmr8qvkn32k3xwb2iv7ybbfbgc40"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2
|
||||
|
@ -428,14 +434,14 @@ security, and applying best practice development processes.")
|
|||
(man1 (string-append out "/share/man/man1"))
|
||||
(man7 (string-append out "/share/man/man7"))
|
||||
(info (string-append out "/info")))
|
||||
(substitute* "docs/man/letsencrypt.rst"
|
||||
(("letsencrypt --help all")
|
||||
(string-append out "/bin/letsencrypt" " --help all")))
|
||||
(substitute* "docs/man/certbot.rst"
|
||||
(("certbot --help all")
|
||||
(string-append out "/bin/certbot" " --help all")))
|
||||
(and
|
||||
(zero? (system* "make" "-C" "docs" "man" "info"))
|
||||
(install-file "docs/_build/texinfo/LetsEncrypt.info" info)
|
||||
(install-file "docs/_build/man/letsencrypt.1" man1)
|
||||
(install-file "docs/_build/man/letsencrypt.7" man7)
|
||||
(install-file "docs/_build/texinfo/Certbot.info" info)
|
||||
(install-file "docs/_build/man/certbot.1" man1)
|
||||
(install-file "docs/_build/man/certbot.7" man7)
|
||||
#t)))))))
|
||||
;; TODO: Add optional inputs for testing.
|
||||
(native-inputs
|
||||
|
@ -465,9 +471,13 @@ security, and applying best practice development processes.")
|
|||
(description "Tool to automatically receive and install X.509 certificates
|
||||
to enable TLS on servers. The client will interoperate with the Let’s Encrypt CA which
|
||||
will be issuing browser-trusted certificates for free.")
|
||||
(home-page "https://letsencrypt.org/")
|
||||
(home-page "https://certbot.eff.org/")
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public letsencrypt
|
||||
(package (inherit certbot)
|
||||
(name "letsencrypt")))
|
||||
|
||||
(define-public perl-net-ssleay
|
||||
(package
|
||||
(name "perl-net-ssleay")
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -28,7 +29,7 @@
|
|||
(define-public tmux
|
||||
(package
|
||||
(name "tmux")
|
||||
(version "2.1")
|
||||
(version "2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -36,7 +37,7 @@
|
|||
version "/tmux-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xk1mylsb08sf0w597mdgj9s6hxxjvjvjd6bngpjvvxwyixlwmii"))))
|
||||
"1r0riry5vw604hc21087ffbkqgr6j4ia1rrsivz2k6grchdm8a5w"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libevent" ,libevent)
|
||||
|
|
|
@ -265,6 +265,7 @@ as well as the classic centralized workflow.")
|
|||
;; FIXME: This variable designates a single file; it is not a search path.
|
||||
(list (search-path-specification
|
||||
(variable "GIT_SSL_CAINFO")
|
||||
(file-type 'regular)
|
||||
(files '("etc/ssl/certs/ca-certificates.crt")))))
|
||||
|
||||
(synopsis "Distributed version control system")
|
||||
|
@ -323,7 +324,7 @@ command.")))
|
|||
(define-public libgit2
|
||||
(package
|
||||
(name "libgit2")
|
||||
(version "0.24.0")
|
||||
(version "0.24.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/libgit2/libgit2/"
|
||||
|
@ -331,7 +332,7 @@ command.")))
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c5jx0pcpz83x7s36jimfz5bj0vy7vwpchq9p4sgdqxy8gwr6rhw"))))
|
||||
"1ppyfwxc276d2p2pwbzlmvs2bkgng425rl8k2rf9nsq66jxqq6b0"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -56,6 +57,7 @@
|
|||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
|
@ -274,6 +276,100 @@ easily construct JSON objects in C, output them as JSON formatted strings and
|
|||
parse JSON formatted strings back into the C representation of JSON objects.")
|
||||
(license l:x11)))
|
||||
|
||||
(define-public krona-tools
|
||||
(package
|
||||
(name "krona-tools")
|
||||
(version "2.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/marbl/Krona/releases/download/v"
|
||||
version "/KronaTools-" version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"1fj5mf6wbwz7v74n2safbw7fpw32fik19vf0wdbc2srn82i8fiwz"))))
|
||||
(build-system perl-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; There is no configure or build steps.
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
;; Remove 'use lib' statements from scripts as PERL5LIB is set
|
||||
;; correctly during installation.
|
||||
(lambda _
|
||||
(for-each
|
||||
(lambda (executable)
|
||||
(display executable)(display "\n")
|
||||
(substitute* executable
|
||||
(("use lib \\(`ktGetLibPath`\\);") "")))
|
||||
(find-files "scripts/" ".*"))
|
||||
#t))
|
||||
;; Install script "install.pl" expects the build directory to remain
|
||||
;; after installation, creating symlinks etc., so re-implement it
|
||||
;; here.
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out") "/bin"))
|
||||
(perl (string-append (assoc-ref outputs "out")
|
||||
"/lib/perl5/site_perl"))
|
||||
(share (string-append
|
||||
(assoc-ref outputs "out") "/share/krona-tools")))
|
||||
(mkdir-p bin)
|
||||
(for-each
|
||||
(lambda (script)
|
||||
(let* ((executable (string-append "scripts/" script ".pl")))
|
||||
;; Prefix executables with 'kt' as install script does.
|
||||
(copy-file executable (string-append bin "/kt" script))))
|
||||
'("ClassifyBLAST"
|
||||
"GetContigMagnitudes"
|
||||
"GetTaxIDFromGI"
|
||||
"ImportBLAST"
|
||||
"ImportDiskUsage"
|
||||
"ImportEC"
|
||||
"ImportFCP"
|
||||
"ImportGalaxy"
|
||||
"ImportKrona"
|
||||
"ImportMETAREP-BLAST"
|
||||
"ImportMETAREP-EC"
|
||||
"ImportMGRAST"
|
||||
"ImportPhymmBL"
|
||||
"ImportRDP"
|
||||
"ImportRDPComparison"
|
||||
"ImportTaxonomy"
|
||||
"ImportText"
|
||||
"ImportXML"))
|
||||
(mkdir-p share)
|
||||
(copy-recursively "data" (string-append share "/data"))
|
||||
(copy-recursively "img" (string-append share "/img"))
|
||||
(copy-recursively "taxonomy" (string-append share "/taxonomy"))
|
||||
(substitute* '("lib/KronaTools.pm")
|
||||
(("taxonomyDir = \".libPath/../taxonomy\"")
|
||||
(string-append "taxonomyDir = \"" share "/taxonomy\"")))
|
||||
(install-file "lib/KronaTools.pm" perl))))
|
||||
(add-after 'install 'wrap-program
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(path (getenv "PERL5LIB")))
|
||||
(for-each
|
||||
(lambda (executable)
|
||||
(wrap-program executable
|
||||
`("PERL5LIB" ":" prefix
|
||||
(,(string-append out "/lib/perl5/site_perl")))))
|
||||
(find-files (string-append out "/bin/") ".*"))))))))
|
||||
(inputs
|
||||
`(("perl" ,perl)))
|
||||
(home-page "https://github.com/marbl/Krona/wiki")
|
||||
(synopsis "Hierarchical data exploration with zoomable HTML5 pie charts")
|
||||
(description
|
||||
"Krona is a flexible tool for exploring the relative proportions of
|
||||
hierarchical data, such as metagenomic classifications, using a radial,
|
||||
space-filling display. It is implemented using HTML5 and JavaScript, allowing
|
||||
charts to be explored locally or served over the Internet, requiring only a
|
||||
current version of any major web browser.")
|
||||
(license l:bsd-3)))
|
||||
|
||||
(define-public rapidjson
|
||||
(package
|
||||
(name "rapidjson")
|
||||
|
@ -2964,13 +3060,13 @@ particularly easy to create complete web applications using httpuv alone.")
|
|||
(define-public r-jsonlite
|
||||
(package
|
||||
(name "r-jsonlite")
|
||||
(version "0.9.19")
|
||||
(version "0.9.20")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "jsonlite" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hbdraj3xv2l2gs9f205j8z054ycy0bfdvwdhvpa9qlji588sz7g"))))
|
||||
"08b2gifd81yzj0h4k7pqp2cc2r5lwsg3sxnssi6c96rgqvl4702n"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://arxiv.org/abs/1403.2805")
|
||||
(synopsis "Robust, high performance JSON parser and generator for R")
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
|
||||
;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
|
||||
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
|
|
@ -86,6 +86,17 @@ INPUTS."
|
|||
(find-files dir "\\.*jar$")))
|
||||
inputs)) ":"))
|
||||
|
||||
(define* (unpack #:key source #:allow-other-keys)
|
||||
"Unpack the jar archive SOURCE. When SOURCE is not a jar archive fall back
|
||||
to the default GNU unpack strategy."
|
||||
(if (string-suffix? ".jar" source)
|
||||
(begin
|
||||
(mkdir "src")
|
||||
(with-directory-excursion "src"
|
||||
(zero? (system* "jar" "-xf" source))))
|
||||
;; Use GNU unpack strategy for things that aren't jar archives.
|
||||
((assq-ref gnu:%standard-phases 'unpack) #:source source)))
|
||||
|
||||
(define* (configure #:key inputs outputs (jar-name #f)
|
||||
#:allow-other-keys)
|
||||
(when jar-name
|
||||
|
@ -151,6 +162,7 @@ repack them. This is necessary to ensure that archives are reproducible."
|
|||
|
||||
(define %standard-phases
|
||||
(modify-phases gnu:%standard-phases
|
||||
(replace 'unpack unpack)
|
||||
(replace 'configure configure)
|
||||
(replace 'build build)
|
||||
(replace 'check check)
|
||||
|
|
|
@ -426,6 +426,85 @@ port if PORT is a TLS session record port."
|
|||
(module-define! (resolve-module '(web client))
|
||||
'shutdown (const #f))
|
||||
|
||||
|
||||
;; XXX: Work around <http://bugs.gnu.org/23421>, fixed in Guile commit
|
||||
;; 16050431f29d56f80c4a8253506fc851b8441840. Guile's date validation
|
||||
;; procedure rejects dates in which the hour is not padded with a zero but
|
||||
;; with whitespace.
|
||||
(begin
|
||||
(define-syntax string-match?
|
||||
(lambda (x)
|
||||
(syntax-case x ()
|
||||
((_ str pat) (string? (syntax->datum #'pat))
|
||||
(let ((p (syntax->datum #'pat)))
|
||||
#`(let ((s str))
|
||||
(and
|
||||
(= (string-length s) #,(string-length p))
|
||||
#,@(let lp ((i 0) (tests '()))
|
||||
(if (< i (string-length p))
|
||||
(let ((c (string-ref p i)))
|
||||
(lp (1+ i)
|
||||
(case c
|
||||
((#\.) ; Whatever.
|
||||
tests)
|
||||
((#\d) ; Digit.
|
||||
(cons #`(char-numeric? (string-ref s #,i))
|
||||
tests))
|
||||
((#\a) ; Alphabetic.
|
||||
(cons #`(char-alphabetic? (string-ref s #,i))
|
||||
tests))
|
||||
(else ; Literal.
|
||||
(cons #`(eqv? (string-ref s #,i) #,c)
|
||||
tests)))))
|
||||
tests)))))))))
|
||||
|
||||
(define (parse-rfc-822-date str space zone-offset)
|
||||
(let ((parse-non-negative-integer (@@ (web http) parse-non-negative-integer))
|
||||
(parse-month (@@ (web http) parse-month))
|
||||
(bad-header (@@ (web http) bad-header)))
|
||||
;; We could verify the day of the week but we don't.
|
||||
(cond ((string-match? (substring str 0 space) "aaa, dd aaa dddd dd:dd:dd")
|
||||
(let ((date (parse-non-negative-integer str 5 7))
|
||||
(month (parse-month str 8 11))
|
||||
(year (parse-non-negative-integer str 12 16))
|
||||
(hour (parse-non-negative-integer str 17 19))
|
||||
(minute (parse-non-negative-integer str 20 22))
|
||||
(second (parse-non-negative-integer str 23 25)))
|
||||
(make-date 0 second minute hour date month year zone-offset)))
|
||||
((string-match? (substring str 0 space) "aaa, d aaa dddd dd:dd:dd")
|
||||
(let ((date (parse-non-negative-integer str 5 6))
|
||||
(month (parse-month str 7 10))
|
||||
(year (parse-non-negative-integer str 11 15))
|
||||
(hour (parse-non-negative-integer str 16 18))
|
||||
(minute (parse-non-negative-integer str 19 21))
|
||||
(second (parse-non-negative-integer str 22 24)))
|
||||
(make-date 0 second minute hour date month year zone-offset)))
|
||||
|
||||
;; The next two clauses match dates that have a space instead of
|
||||
;; a leading zero for hours, like " 8:49:37".
|
||||
((string-match? (substring str 0 space) "aaa, dd aaa dddd d:dd:dd")
|
||||
(let ((date (parse-non-negative-integer str 5 7))
|
||||
(month (parse-month str 8 11))
|
||||
(year (parse-non-negative-integer str 12 16))
|
||||
(hour (parse-non-negative-integer str 18 19))
|
||||
(minute (parse-non-negative-integer str 20 22))
|
||||
(second (parse-non-negative-integer str 23 25)))
|
||||
(make-date 0 second minute hour date month year zone-offset)))
|
||||
((string-match? (substring str 0 space) "aaa, d aaa dddd d:dd:dd")
|
||||
(let ((date (parse-non-negative-integer str 5 6))
|
||||
(month (parse-month str 7 10))
|
||||
(year (parse-non-negative-integer str 11 15))
|
||||
(hour (parse-non-negative-integer str 17 18))
|
||||
(minute (parse-non-negative-integer str 19 21))
|
||||
(second (parse-non-negative-integer str 22 24)))
|
||||
(make-date 0 second minute hour date month year zone-offset)))
|
||||
|
||||
(else
|
||||
(bad-header 'date str) ; prevent tail call
|
||||
#f))))
|
||||
(module-set! (resolve-module '(web http))
|
||||
'parse-rfc-822-date parse-rfc-822-date))
|
||||
|
||||
;; XXX: Work around <http://bugs.gnu.org/19840>, present in Guile
|
||||
;; up to 2.0.11.
|
||||
(unless (or (> (string->number (major-version)) 2)
|
||||
|
@ -605,10 +684,22 @@ Return a list of URIs."
|
|||
(else
|
||||
(list uri))))
|
||||
|
||||
(define* (url-fetch url file #:key (mirrors '()))
|
||||
(define* (url-fetch url file
|
||||
#:key
|
||||
(mirrors '()) (content-addressed-mirrors '())
|
||||
(hashes '()))
|
||||
"Fetch FILE from URL; URL may be either a single string, or a list of
|
||||
string denoting alternate URLs for FILE. Return #f on failure, and FILE
|
||||
on success."
|
||||
on success.
|
||||
|
||||
When MIRRORS is defined, it must be an alist of mirrors; it is used to resolve
|
||||
'mirror://' URIs.
|
||||
|
||||
HASHES must be a list of algorithm/hash pairs, where each algorithm is a
|
||||
symbol such as 'sha256 and each hash is a bytevector.
|
||||
CONTENT-ADDRESSED-MIRRORS must be a list of procedures that, given a hash
|
||||
algorithm and a hash, return a URL where the specified data can be retrieved
|
||||
or #f."
|
||||
(define uri
|
||||
(append-map (cut maybe-expand-mirrors <> mirrors)
|
||||
(match url
|
||||
|
@ -628,13 +719,21 @@ on success."
|
|||
uri)
|
||||
#f)))
|
||||
|
||||
(define content-addressed-urls
|
||||
(append-map (lambda (make-url)
|
||||
(filter-map (match-lambda
|
||||
((hash-algo . hash)
|
||||
(make-url hash-algo hash)))
|
||||
hashes))
|
||||
content-addressed-mirrors))
|
||||
|
||||
;; Make this unbuffered so 'progress-proc' works as expected. _IOLBF means
|
||||
;; '\n', not '\r', so it's not appropriate here.
|
||||
(setvbuf (current-output-port) _IONBF)
|
||||
|
||||
(setvbuf (current-error-port) _IOLBF)
|
||||
|
||||
(let try ((uri uri))
|
||||
(let try ((uri (append uri content-addressed-urls)))
|
||||
(match uri
|
||||
((uri tail ...)
|
||||
(or (fetch uri file)
|
||||
|
|
|
@ -83,6 +83,28 @@ writing the result to OUTPUT."
|
|||
(put-u8 output (char->integer char))
|
||||
result)))))
|
||||
|
||||
(define (rename-matching-files directory mapping)
|
||||
"Apply MAPPING to the names of all the files in DIRECTORY, where MAPPING is
|
||||
a list of store file name pairs."
|
||||
(let* ((mapping (map (match-lambda
|
||||
((source . target)
|
||||
(cons (basename source) (basename target))))
|
||||
mapping))
|
||||
(matches (find-files directory
|
||||
(lambda (file stat)
|
||||
(assoc-ref mapping (basename file)))
|
||||
#:directories? #t)))
|
||||
|
||||
;; XXX: This is not quite correct: if MAPPING contains "foo", and
|
||||
;; DIRECTORY contains "bar/foo/foo", we first rename "bar/foo" and then
|
||||
;; "bar/foo/foo" no longer exists so we fail. Oh well, surely that's good
|
||||
;; enough!
|
||||
(for-each (lambda (file)
|
||||
(let ((target (assoc-ref mapping (basename file))))
|
||||
(rename-file file
|
||||
(string-append (dirname file) "/" target))))
|
||||
matches)))
|
||||
|
||||
(define* (rewrite-directory directory output mapping
|
||||
#:optional (store (%store-directory)))
|
||||
"Copy DIRECTORY to OUTPUT, replacing strings according to MAPPING, a list of
|
||||
|
@ -115,6 +137,8 @@ file name pairs."
|
|||
(replace-store-references input output mapping
|
||||
store)
|
||||
(chmod output (stat:perms stat))))))))
|
||||
((directory)
|
||||
(mkdir-p dest))
|
||||
(else
|
||||
(error "unsupported file type" stat)))))
|
||||
|
||||
|
@ -124,6 +148,8 @@ file name pairs."
|
|||
(umask #o022)
|
||||
|
||||
(n-par-for-each (parallel-job-count)
|
||||
rewrite-leaf (find-files directory)))
|
||||
rewrite-leaf (find-files directory (const #t)
|
||||
#:directories? #t))
|
||||
(rename-matching-files output mapping))
|
||||
|
||||
;;; graft.scm ends here
|
||||
|
|
|
@ -176,6 +176,11 @@ download with a fixed hash (aka. `fetchurl')."
|
|||
#t)
|
||||
(_ #f)))
|
||||
|
||||
(define (derivation-input<? input1 input2)
|
||||
"Compare INPUT1 and INPUT2, two <derivation-input>."
|
||||
(string<? (derivation-input-path input1)
|
||||
(derivation-input-path input2)))
|
||||
|
||||
(define (derivation-input-output-paths input)
|
||||
"Return the list of output paths corresponding to INPUT, a
|
||||
<derivation-input>."
|
||||
|
@ -190,6 +195,30 @@ the store."
|
|||
(every (cut valid-path? store <>)
|
||||
(derivation-input-output-paths input)))
|
||||
|
||||
(define (coalesce-duplicate-inputs inputs)
|
||||
"Return a list of inputs, such that when INPUTS contains the same DRV twice,
|
||||
they are coalesced, with their sub-derivations merged. This is needed because
|
||||
Nix itself keeps only one of them."
|
||||
(fold (lambda (input result)
|
||||
(match input
|
||||
(($ <derivation-input> path sub-drvs)
|
||||
;; XXX: quadratic
|
||||
(match (find (match-lambda
|
||||
(($ <derivation-input> p s)
|
||||
(string=? p path)))
|
||||
result)
|
||||
(#f
|
||||
(cons input result))
|
||||
((and dup ($ <derivation-input> _ sub-drvs2))
|
||||
;; Merge DUP with INPUT.
|
||||
(let ((sub-drvs (delete-duplicates
|
||||
(append sub-drvs sub-drvs2))))
|
||||
(cons (make-derivation-input path
|
||||
(sort sub-drvs string<?))
|
||||
(delq dup result))))))))
|
||||
'()
|
||||
inputs))
|
||||
|
||||
(define* (derivation-prerequisites drv #:optional (cut? (const #f)))
|
||||
"Return the list of derivation-inputs required to build DRV, recursively.
|
||||
|
||||
|
@ -473,29 +502,6 @@ that form."
|
|||
(define (write-string-list lst)
|
||||
(write-list lst write port))
|
||||
|
||||
(define (coalesce-duplicate-inputs inputs)
|
||||
;; Return a list of inputs, such that when INPUTS contains the same DRV
|
||||
;; twice, they are coalesced, with their sub-derivations merged. This is
|
||||
;; needed because Nix itself keeps only one of them.
|
||||
(fold (lambda (input result)
|
||||
(match input
|
||||
(($ <derivation-input> path sub-drvs)
|
||||
;; XXX: quadratic
|
||||
(match (find (match-lambda
|
||||
(($ <derivation-input> p s)
|
||||
(string=? p path)))
|
||||
result)
|
||||
(#f
|
||||
(cons input result))
|
||||
((and dup ($ <derivation-input> _ sub-drvs2))
|
||||
;; Merge DUP with INPUT.
|
||||
(let ((sub-drvs (delete-duplicates
|
||||
(append sub-drvs sub-drvs2))))
|
||||
(cons (make-derivation-input path sub-drvs)
|
||||
(delq dup result))))))))
|
||||
'()
|
||||
inputs))
|
||||
|
||||
(define (write-output output port)
|
||||
(match output
|
||||
((name . ($ <derivation-output> path hash-algo hash recursive?))
|
||||
|
@ -515,7 +521,7 @@ that form."
|
|||
(display "(" port)
|
||||
(write path port)
|
||||
(display "," port)
|
||||
(write-string-list (sort sub-drvs string<?))
|
||||
(write-string-list sub-drvs)
|
||||
(display ")" port))))
|
||||
|
||||
(define (write-env-var env-var port)
|
||||
|
@ -527,35 +533,20 @@ that form."
|
|||
(write value port)
|
||||
(display ")" port))))
|
||||
|
||||
;; Note: lists are sorted alphabetically, to conform with the behavior of
|
||||
;; C++ `std::map' in Nix itself.
|
||||
|
||||
;; Assume all the lists we are writing are already sorted.
|
||||
(match drv
|
||||
(($ <derivation> outputs inputs sources
|
||||
system builder args env-vars)
|
||||
(display "Derive(" port)
|
||||
(write-list (sort outputs
|
||||
(lambda (o1 o2)
|
||||
(string<? (car o1) (car o2))))
|
||||
write-output
|
||||
port)
|
||||
(write-list outputs write-output port)
|
||||
(display "," port)
|
||||
(write-list (sort (coalesce-duplicate-inputs inputs)
|
||||
(lambda (i1 i2)
|
||||
(string<? (derivation-input-path i1)
|
||||
(derivation-input-path i2))))
|
||||
write-input
|
||||
port)
|
||||
(write-list inputs write-input port)
|
||||
(display "," port)
|
||||
(write-string-list (sort sources string<?))
|
||||
(write-string-list sources)
|
||||
(format port ",~s,~s," system builder)
|
||||
(write-string-list args)
|
||||
(display "," port)
|
||||
(write-list (sort env-vars
|
||||
(lambda (e1 e2)
|
||||
(string<? (car e1) (car e2))))
|
||||
write-env-var
|
||||
port)
|
||||
(write-list env-vars write-env-var port)
|
||||
(display ")" port))))
|
||||
|
||||
(define derivation->string
|
||||
|
@ -653,7 +644,10 @@ derivation at FILE."
|
|||
(let ((hash (derivation-path->base16-hash path)))
|
||||
(make-derivation-input hash sub-drvs))))
|
||||
inputs))
|
||||
(drv (make-derivation outputs inputs sources
|
||||
(drv (make-derivation outputs
|
||||
(sort (coalesce-duplicate-inputs inputs)
|
||||
derivation-input<?)
|
||||
sources
|
||||
system builder args env-vars
|
||||
#f)))
|
||||
|
||||
|
@ -820,30 +814,38 @@ output should not be used."
|
|||
(make-derivation outputs inputs sources system builder
|
||||
args env-vars file))))
|
||||
|
||||
(let* ((outputs (map (lambda (name)
|
||||
;; Return outputs with an empty path.
|
||||
(cons name
|
||||
(make-derivation-output "" hash-algo
|
||||
hash recursive?)))
|
||||
outputs))
|
||||
(inputs (map (match-lambda
|
||||
(define input->derivation-input
|
||||
(match-lambda
|
||||
(((? derivation? drv))
|
||||
(make-derivation-input (derivation-file-name drv)
|
||||
'("out")))
|
||||
(make-derivation-input (derivation-file-name drv) '("out")))
|
||||
(((? derivation? drv) sub-drvs ...)
|
||||
(make-derivation-input (derivation-file-name 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)
|
||||
(let ((path (add-to-store store (basename input)
|
||||
#t "sha256" input)))
|
||||
(make-derivation-input path '()))))
|
||||
(make-derivation-input path '())))))
|
||||
|
||||
;; Note: lists are sorted alphabetically, to conform with the behavior of
|
||||
;; C++ `std::map' in Nix itself.
|
||||
|
||||
(let* ((outputs (map (lambda (name)
|
||||
;; Return outputs with an empty path.
|
||||
(cons name
|
||||
(make-derivation-output "" hash-algo
|
||||
hash recursive?)))
|
||||
(sort outputs string<?)))
|
||||
(inputs (sort (coalesce-duplicate-inputs
|
||||
(map input->derivation-input
|
||||
(delete-duplicates inputs)))
|
||||
(env-vars (env-vars-with-empty-outputs (user+system-env-vars)))
|
||||
derivation-input<?))
|
||||
(env-vars (sort (env-vars-with-empty-outputs
|
||||
(user+system-env-vars))
|
||||
(lambda (e1 e2)
|
||||
(string<? (car e1) (car e2)))))
|
||||
(drv-masked (make-derivation outputs
|
||||
(filter (compose derivation-path?
|
||||
derivation-input-path)
|
||||
|
@ -858,8 +860,7 @@ output should not be used."
|
|||
|
||||
(let ((file (add-text-to-store store (string-append name ".drv")
|
||||
(derivation->string drv)
|
||||
(map derivation-input-path
|
||||
inputs))))
|
||||
(map derivation-input-path inputs))))
|
||||
(set-file-name drv file))))
|
||||
|
||||
(define* (map-derivation store drv mapping
|
||||
|
|
|
@ -202,7 +202,8 @@
|
|||
(debian
|
||||
"http://ftp.de.debian.org/debian/"
|
||||
"http://ftp.fr.debian.org/debian/"
|
||||
"http://ftp.debian.org/debian/"))))
|
||||
"http://ftp.debian.org/debian/"
|
||||
"http://archive.debian.org/debian/"))))
|
||||
|
||||
(define %mirror-file
|
||||
;; Copy of the list of mirrors to a file. This allows us to keep a single
|
||||
|
@ -210,6 +211,22 @@
|
|||
;; 'object->string'.
|
||||
(plain-file "mirrors" (object->string %mirrors)))
|
||||
|
||||
(define %content-addressed-mirrors
|
||||
;; List of content-addressed mirrors. Each mirror is represented as a
|
||||
;; procedure that takes an algorithm (symbol) and a hash (bytevector), and
|
||||
;; returns a URL or #f.
|
||||
;; TODO: Add more.
|
||||
'(list (lambda (algo hash)
|
||||
;; 'tarballs.nixos.org' supports several algorithms.
|
||||
(string-append "http://tarballs.nixos.org/"
|
||||
(symbol->string algo) "/"
|
||||
(bytevector->nix-base32-string hash)))))
|
||||
|
||||
(define %content-addressed-mirror-file
|
||||
;; Content-addressed mirrors stored in a file.
|
||||
(plain-file "content-addressed-mirrors"
|
||||
(object->string %content-addressed-mirrors)))
|
||||
|
||||
(define (gnutls-package)
|
||||
"Return the default GnuTLS package."
|
||||
(let ((module (resolve-interface '(gnu packages tls))))
|
||||
|
@ -258,12 +275,21 @@ in the store."
|
|||
%load-path)))
|
||||
#~#t)
|
||||
|
||||
(use-modules (guix build download))
|
||||
(use-modules (guix build download)
|
||||
(guix base32))
|
||||
|
||||
(url-fetch (call-with-input-string (getenv "guix download url")
|
||||
read)
|
||||
(let ((value-from-environment (lambda (variable)
|
||||
(call-with-input-string
|
||||
(getenv variable)
|
||||
read))))
|
||||
(url-fetch (value-from-environment "guix download url")
|
||||
#$output
|
||||
#:mirrors (call-with-input-file #$%mirror-file read))))
|
||||
#:mirrors (call-with-input-file #$%mirror-file read)
|
||||
|
||||
;; Content-addressed mirrors.
|
||||
#:hashes (value-from-environment "guix download hashes")
|
||||
#:content-addressed-mirrors
|
||||
(primitive-load #$%content-addressed-mirror-file)))))
|
||||
|
||||
(let ((uri (and (string? url) (string->uri url))))
|
||||
(if (or (and (string? url) (not uri))
|
||||
|
@ -278,14 +304,17 @@ in the store."
|
|||
#:hash hash
|
||||
#:modules '((guix build download)
|
||||
(guix build utils)
|
||||
(guix ftp-client))
|
||||
(guix ftp-client)
|
||||
(guix base32))
|
||||
|
||||
;; Use environment variables and a fixed script
|
||||
;; name so there's only one script in store for
|
||||
;; all the downloads.
|
||||
#:script-name "download"
|
||||
#:env-vars
|
||||
`(("guix download url" . ,(object->string url)))
|
||||
`(("guix download url" . ,(object->string url))
|
||||
("guix download hashes"
|
||||
. ,(object->string `((,hash-algo . ,hash)))))
|
||||
|
||||
;; Honor the user's proxy settings.
|
||||
#:leaked-env-vars '("http_proxy" "https_proxy")
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
(identifier node-type-identifier) ;node -> M identifier
|
||||
(label node-type-label) ;node -> string
|
||||
(edges node-type-edges) ;node -> M list of nodes
|
||||
(convert node-type-convert ;package -> M list of nodes
|
||||
(convert node-type-convert ;any -> M list of nodes
|
||||
(default (lift1 list %store-monad)))
|
||||
(name node-type-name) ;string
|
||||
(description node-type-description)) ;string
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -111,11 +111,11 @@ package definition."
|
|||
(define %cran-url "http://cran.r-project.org/web/packages/")
|
||||
(define %bioconductor-url "http://bioconductor.org/packages/")
|
||||
|
||||
;; The latest Bioconductor release is 3.2. Bioconductor packages should be
|
||||
;; The latest Bioconductor release is 3.3. Bioconductor packages should be
|
||||
;; updated together.
|
||||
(define %bioconductor-svn-url
|
||||
(string-append "https://readonly:readonly@"
|
||||
"hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_2/"
|
||||
"hedgehog.fhcrc.org/bioconductor/branches/RELEASE_3_3/"
|
||||
"madman/Rpacks/"))
|
||||
|
||||
|
||||
|
@ -267,7 +267,7 @@ s-expression corresponding to that package, or #f on failure."
|
|||
(upstream-source
|
||||
(package (package-name package))
|
||||
(version version)
|
||||
(urls (bioconductor-uri upstream-name version))))))
|
||||
(urls (list (bioconductor-uri upstream-name version)))))))
|
||||
|
||||
(define (cran-package? package)
|
||||
"Return true if PACKAGE is an R package from CRAN."
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -55,8 +55,8 @@
|
|||
(define* (gnu-package->sexp package release
|
||||
#:key (key-download 'interactive))
|
||||
"Return the 'package' sexp for the RELEASE (a <gnu-release>) of PACKAGE (a
|
||||
<gnu-package>). Use KEY-DOWNLOAD as the OpenPGP key download policy (see
|
||||
'download-tarball' for details.)"
|
||||
<gnu-package>), or #f upon failure. Use KEY-DOWNLOAD as the OpenPGP key
|
||||
download policy (see 'download-tarball' for details.)"
|
||||
(define name
|
||||
(gnu-package-name package))
|
||||
|
||||
|
@ -79,9 +79,10 @@
|
|||
(find (cute string-suffix? (string-append archive-type ".sig") <>)
|
||||
(upstream-source-signature-urls release)))
|
||||
|
||||
(let ((tarball (with-store store
|
||||
(download-tarball store url sig-url
|
||||
#:key-download key-download))))
|
||||
(with-store store
|
||||
(match (download-tarball store url sig-url
|
||||
#:key-download key-download)
|
||||
((? string? tarball)
|
||||
`(package
|
||||
(name ,name)
|
||||
(version ,(upstream-source-version release))
|
||||
|
@ -91,13 +92,16 @@
|
|||
,(string-append ".tar." archive-type)))
|
||||
(sha256
|
||||
(base32
|
||||
,(bytevector->nix-base32-string (file-sha256 tarball))))))
|
||||
,(bytevector->nix-base32-string
|
||||
(file-sha256 tarball))))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis ,(gnu-package-doc-summary package))
|
||||
(description ,(gnu-package-doc-description package))
|
||||
(home-page ,(match (gnu-package-doc-urls package)
|
||||
((head . tail) (qualified-url head))))
|
||||
(license find-by-yourself!))))
|
||||
(license find-by-yourself!)))
|
||||
(#f ;failure to download or authenticate the tarball
|
||||
#f))))
|
||||
|
||||
(define* (gnu->guix-package name
|
||||
#:key (key-download 'interactive))
|
||||
|
|
|
@ -65,9 +65,13 @@
|
|||
found. Return #f if no build log was found."
|
||||
(define (valid-url? url)
|
||||
;; Probe URL and return #t if it is accessible.
|
||||
(catch 'getaddrinfo-error
|
||||
(lambda ()
|
||||
(guard (c ((http-get-error? c) #f))
|
||||
(close-port (http-fetch url #:buffered? #f))
|
||||
#t))
|
||||
(lambda _
|
||||
#f)))
|
||||
|
||||
(define (find-url file)
|
||||
(let ((base (basename file)))
|
||||
|
@ -681,7 +685,8 @@ needed."
|
|||
(_ #f))
|
||||
opts)))
|
||||
|
||||
(unless (assoc-ref opts 'log-file?)
|
||||
(unless (or (assoc-ref opts 'log-file?)
|
||||
(assoc-ref opts 'derivations-only?))
|
||||
(show-what-to-build store drv
|
||||
#:use-substitutes?
|
||||
(assoc-ref opts 'substitutes?)
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (%package-node-type
|
||||
|
@ -70,11 +71,27 @@ name."
|
|||
;; Filter out origins and other non-package dependencies.
|
||||
(filter package? packages))))
|
||||
|
||||
(define assert-package
|
||||
(match-lambda
|
||||
((? package? package)
|
||||
package)
|
||||
(x
|
||||
(raise
|
||||
(condition
|
||||
(&message
|
||||
(message (format #f (_ "~a: invalid argument (package name expected)")
|
||||
x))))))))
|
||||
|
||||
(define nodes-from-package
|
||||
;; The default conversion method.
|
||||
(lift1 (compose list assert-package) %store-monad))
|
||||
|
||||
(define %package-node-type
|
||||
;; Type for the traversal of package nodes.
|
||||
(node-type
|
||||
(name "package")
|
||||
(description "the DAG of packages, excluding implicit inputs")
|
||||
(convert nodes-from-package)
|
||||
|
||||
;; We use package addresses as unique identifiers. This generally works
|
||||
;; well, but for generated package objects, we could end up with two
|
||||
|
@ -131,6 +148,7 @@ Dependencies may include packages, origin, and file names."
|
|||
(node-type
|
||||
(name "bag")
|
||||
(description "the DAG of packages, including implicit inputs")
|
||||
(convert nodes-from-package)
|
||||
(identifier bag-node-identifier)
|
||||
(label node-full-name)
|
||||
(edges (lift1 (compose (cut filter package? <>) bag-node-edges)
|
||||
|
@ -140,6 +158,7 @@ Dependencies may include packages, origin, and file names."
|
|||
(node-type
|
||||
(name "bag-with-origins")
|
||||
(description "the DAG of packages and origins, including implicit inputs")
|
||||
(convert nodes-from-package)
|
||||
(identifier bag-node-identifier)
|
||||
(label node-full-name)
|
||||
(edges (lift1 (lambda (thing)
|
||||
|
@ -170,6 +189,7 @@ GNU-BUILD-SYSTEM have zero dependencies."
|
|||
(node-type
|
||||
(name "bag-emerged")
|
||||
(description "same as 'bag', but without the bootstrap nodes")
|
||||
(convert nodes-from-package)
|
||||
(identifier bag-node-identifier)
|
||||
(label node-full-name)
|
||||
(edges (lift1 (compose (cut filter package? <>)
|
||||
|
@ -215,10 +235,19 @@ a plain store file."
|
|||
(node-type
|
||||
(name "derivation")
|
||||
(description "the DAG of derivations")
|
||||
(convert (lambda (package)
|
||||
(convert (match-lambda
|
||||
((? package? package)
|
||||
(with-monad %store-monad
|
||||
(>>= (package->derivation package)
|
||||
(lift1 list %store-monad)))))
|
||||
(lift1 list %store-monad))))
|
||||
((? derivation-path? item)
|
||||
(mbegin %store-monad
|
||||
((store-lift add-temp-root) item)
|
||||
(return (list (file->derivation item)))))
|
||||
(x
|
||||
(raise
|
||||
(condition (&message (message "unsupported argument for \
|
||||
derivation graph")))))))
|
||||
(identifier (lift1 derivation-node-identifier %store-monad))
|
||||
(label derivation-node-label)
|
||||
(edges (lift1 derivation-dependencies %store-monad))))
|
||||
|
@ -246,12 +275,20 @@ substitutes."
|
|||
(node-type
|
||||
(name "references")
|
||||
(description "the DAG of run-time dependencies (store references)")
|
||||
(convert (lambda (package)
|
||||
(convert (match-lambda
|
||||
((? package? package)
|
||||
;; Return the output file names of PACKAGE.
|
||||
(mlet %store-monad ((drv (package->derivation package)))
|
||||
(return (match (derivation->output-paths drv)
|
||||
(((_ . file-names) ...)
|
||||
file-names))))))
|
||||
file-names)))))
|
||||
((? store-path? item)
|
||||
(with-monad %store-monad
|
||||
(return (list item))))
|
||||
(x
|
||||
(raise
|
||||
(condition (&message (message "unsupported argument for \
|
||||
reference graph")))))))
|
||||
(identifier (lift1 identity %store-monad))
|
||||
(label store-path-package-name)
|
||||
(edges references*)))
|
||||
|
@ -348,7 +385,9 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"))
|
|||
(alist-cons 'argument arg result))
|
||||
%default-options))
|
||||
(type (assoc-ref opts 'node-type))
|
||||
(packages (filter-map (match-lambda
|
||||
(items (filter-map (match-lambda
|
||||
(('argument . (? store-path? item))
|
||||
item)
|
||||
(('argument . spec)
|
||||
(specification->package spec))
|
||||
(('expression . exp)
|
||||
|
@ -356,15 +395,18 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n"))
|
|||
(_ #f))
|
||||
opts)))
|
||||
(with-store store
|
||||
;; Ask for absolute file names so that .drv file names passed from the
|
||||
;; user to 'read-derivation' are absolute when it returns.
|
||||
(with-fluids ((%file-port-name-canonicalization 'absolute))
|
||||
(run-with-store store
|
||||
;; XXX: Since grafting can trigger unsolicited builds, disable it.
|
||||
(mlet %store-monad ((_ (set-grafting #f))
|
||||
(nodes (mapm %store-monad
|
||||
(node-type-convert type)
|
||||
packages)))
|
||||
items)))
|
||||
(export-graph (concatenate nodes)
|
||||
(current-output-port)
|
||||
#:node-type type))))))
|
||||
#:node-type type)))))))
|
||||
#t)
|
||||
|
||||
;;; graph.scm ends here
|
||||
|
|
|
@ -107,7 +107,10 @@ Run IMPORTER with ARGS.\n"))
|
|||
(show-version-and-exit "guix import"))
|
||||
((importer args ...)
|
||||
(if (member importer importers)
|
||||
(let ((expr (apply (resolve-importer importer) args)))
|
||||
(pretty-print expr (newline-rewriting-port (current-output-port))))
|
||||
(format (current-error-port)
|
||||
(_ "guix import: invalid importer~%"))))))
|
||||
(match (apply (resolve-importer importer) args)
|
||||
((and expr ('package _ ...))
|
||||
(pretty-print expr (newline-rewriting-port
|
||||
(current-output-port))))
|
||||
(x
|
||||
(leave (_ "'~a' import failed~%") importer)))
|
||||
(leave (_ "~a: invalid importer~%") importer)))))
|
||||
|
|
|
@ -600,15 +600,6 @@ be determined."
|
|||
((? origin?)
|
||||
(and=> (origin-actual-file-name patch) basename))))
|
||||
|
||||
(define (package-name->cpe-name name)
|
||||
"Do a basic conversion of NAME, a Guix package name, to the corresponding
|
||||
Common Platform Enumeration (CPE) name."
|
||||
(match name
|
||||
("icecat" "firefox") ;or "firefox_esr"
|
||||
("grub" "grub2")
|
||||
;; TODO: Add more.
|
||||
(_ name)))
|
||||
|
||||
(define (current-vulnerabilities*)
|
||||
"Like 'current-vulnerabilities', but return the empty list upon networking
|
||||
or HTTP errors. This allows network-less operation and makes problems with
|
||||
|
@ -635,9 +626,15 @@ from ~s: ~a (~s)~%")
|
|||
(current-vulnerabilities*)))))
|
||||
(lambda (package)
|
||||
"Return a list of vulnerabilities affecting PACKAGE."
|
||||
((force lookup)
|
||||
(package-name->cpe-name (package-name package))
|
||||
(package-version package)))))
|
||||
;; First we retrieve the Common Platform Enumeration (CPE) name and
|
||||
;; version for PACKAGE, then we can pass them to LOOKUP.
|
||||
(let ((name (or (assoc-ref (package-properties package)
|
||||
'cpe-name)
|
||||
(package-name package)))
|
||||
(version (or (assoc-ref (package-properties package)
|
||||
'cpe-version)
|
||||
(package-version package))))
|
||||
((force lookup) name version)))))
|
||||
|
||||
(define (check-vulnerabilities package)
|
||||
"Check for known vulnerabilities for PACKAGE."
|
||||
|
|
|
@ -440,9 +440,15 @@ the cache STR originates form."
|
|||
(define (narinfo-cache-file cache-url path)
|
||||
"Return the name of the local file that contains an entry for PATH. The
|
||||
entry is stored in a sub-directory specific to CACHE-URL."
|
||||
;; The daemon does not sanitize its input, so PATH could be something like
|
||||
;; "/gnu/store/foo". Gracefully handle that.
|
||||
(match (store-path-hash-part path)
|
||||
(#f
|
||||
(leave (_ "'~a' does not name a store item~%") path))
|
||||
((? string? hash-part)
|
||||
(string-append %narinfo-cache-directory "/"
|
||||
(bytevector->base32-string (sha256 (string->utf8 cache-url)))
|
||||
"/" (store-path-hash-part path)))
|
||||
"/" hash-part))))
|
||||
|
||||
(define (cached-narinfo cache-url path)
|
||||
"Check locally if we have valid info about PATH coming from CACHE-URL.
|
||||
|
|
|
@ -615,7 +615,7 @@ store directory (/gnu/store)."
|
|||
boolean)
|
||||
|
||||
(define-operation (query-path-hash (store-path path))
|
||||
"Return the SHA256 hash of PATH as a bytevector."
|
||||
"Return the SHA256 hash of the nar serialization of PATH as a bytevector."
|
||||
base16)
|
||||
|
||||
(define hash-part->path
|
||||
|
|
|
@ -143,8 +143,9 @@ no update is needed or known."
|
|||
#:key (key-download 'interactive))
|
||||
"Download the tarball at URL to the store; check its OpenPGP signature at
|
||||
SIGNATURE-URL, unless SIGNATURE-URL is false. On success, return the tarball
|
||||
file name. KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys;
|
||||
allowed values: 'interactive' (default), 'always', and 'never'."
|
||||
file name; return #f on failure (network failure or authentication failure).
|
||||
KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed
|
||||
values: 'interactive' (default), 'always', and 'never'."
|
||||
(let ((tarball (download-to-store store url)))
|
||||
(if (not signature-url)
|
||||
tarball
|
||||
|
|
|
@ -367,6 +367,33 @@
|
|||
(and (eq? 'one (call-with-input-file one read))
|
||||
(eq? 'two (call-with-input-file two read)))))))
|
||||
|
||||
(test-assert "read-derivation vs. derivation"
|
||||
;; Make sure 'derivation' and 'read-derivation' return objects that are
|
||||
;; identical.
|
||||
(let* ((sources (unfold (cut >= <> 10)
|
||||
(lambda (n)
|
||||
(add-text-to-store %store
|
||||
(format #f "input~a" n)
|
||||
(random-text)))
|
||||
1+
|
||||
0))
|
||||
(inputs (map (lambda (file)
|
||||
(derivation %store "derivation-input"
|
||||
%bash '()
|
||||
#:inputs `((,%bash) (,file))))
|
||||
sources))
|
||||
(builder (add-text-to-store %store "builder.sh"
|
||||
"echo one > $one ; echo two > $two"
|
||||
'()))
|
||||
(drv (derivation %store "derivation"
|
||||
%bash `(,builder)
|
||||
#:inputs `((,%bash) (,builder)
|
||||
,@(map list (append sources inputs)))
|
||||
#:outputs '("two" "one")))
|
||||
(drv* (call-with-input-file (derivation-file-name drv)
|
||||
read-derivation)))
|
||||
(equal? drv* drv)))
|
||||
|
||||
(test-assert "multiple-output derivation, derivation-path->output-path"
|
||||
(let* ((builder (add-text-to-store %store "builder.sh"
|
||||
"echo one > $out ; echo two > $second"
|
||||
|
|
|
@ -127,6 +127,30 @@
|
|||
(list one two dep)
|
||||
(references %store dep)))))))
|
||||
|
||||
(test-assert "graft-derivation, preserve empty directories"
|
||||
(run-with-store %store
|
||||
(mlet* %store-monad ((fake (text-file "bash" "Fake bash."))
|
||||
(graft -> (graft
|
||||
(origin %bash)
|
||||
(replacement fake)))
|
||||
(drv (gexp->derivation
|
||||
"to-graft"
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
(mkdir-p (string-append #$output
|
||||
"/a/b/c/d"))
|
||||
(symlink #$%bash
|
||||
(string-append #$output
|
||||
"/bash")))
|
||||
#:modules '((guix build utils))))
|
||||
(grafted ((store-lift graft-derivation) drv
|
||||
(list graft)))
|
||||
(_ (built-derivations (list grafted)))
|
||||
(out -> (derivation->output-path grafted)))
|
||||
(return (and (string=? (readlink (string-append out "/bash"))
|
||||
fake)
|
||||
(file-is-directory? (string-append out "/a/b/c/d")))))))
|
||||
|
||||
(test-assert "graft-derivation, no dependencies on grafted output"
|
||||
(run-with-store %store
|
||||
(mlet* %store-monad ((fake (text-file "bash" "Fake bash."))
|
||||
|
@ -158,4 +182,21 @@
|
|||
(and (string=? (readlink one) repl)
|
||||
(string=? (readlink two) one))))))
|
||||
|
||||
(test-assert "graft-derivation, renaming" ;<http://bugs.gnu.org/23132>
|
||||
(let* ((build `(begin
|
||||
(use-modules (guix build utils))
|
||||
(mkdir-p (string-append (assoc-ref %outputs "out") "/"
|
||||
(assoc-ref %build-inputs "in")))))
|
||||
(orig (build-expression->derivation %store "thing-to-graft" build
|
||||
#:modules '((guix build utils))
|
||||
#:inputs `(("in" ,%bash))))
|
||||
(repl (add-text-to-store %store "bash" "fake bash"))
|
||||
(grafted (graft-derivation %store orig
|
||||
(list (graft
|
||||
(origin %bash)
|
||||
(replacement repl))))))
|
||||
(and (build-derivations %store (list grafted))
|
||||
(let ((out (derivation->output-path grafted)))
|
||||
(file-is-directory? (string-append out "/" repl))))))
|
||||
|
||||
(test-end)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -20,6 +20,10 @@
|
|||
# Test the 'guix graph' command-line utility.
|
||||
#
|
||||
|
||||
tmpfile1="t-guix-graph1-$$"
|
||||
tmpfile2="t-guix-graph2-$$"
|
||||
trap 'rm -f "$tmpfile1" "$tmpfile2"' EXIT
|
||||
|
||||
guix graph --version
|
||||
|
||||
for package in guile-bootstrap coreutils python
|
||||
|
@ -37,3 +41,15 @@ guix graph -e '(@ (gnu packages bootstrap) %bootstrap-guile)' \
|
|||
| grep guile-bootstrap
|
||||
|
||||
if guix graph -e +; then false; else true; fi
|
||||
|
||||
# Try passing store file names.
|
||||
|
||||
guix graph -t references guile-bootstrap > "$tmpfile1"
|
||||
guix graph -t references `guix build guile-bootstrap` > "$tmpfile2"
|
||||
cmp "$tmpfile1" "$tmpfile2"
|
||||
|
||||
# XXX: Filter the file names in the graph to work around the fact that we get
|
||||
# a mixture of relative and absolute file names.
|
||||
guix graph -t derivation coreutils > "$tmpfile1"
|
||||
guix graph -t derivation `guix build -d coreutils` > "$tmpfile2"
|
||||
cmp "$tmpfile1" "$tmpfile2"
|
||||
|
|
Loading…
Reference in New Issue