Merge branch 'master' into core-updates
This commit is contained in:
		
						commit
						bc73a84398
					
				
					 83 changed files with 2764 additions and 811 deletions
				
			
		
							
								
								
									
										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 | ||||
|                     (lambda _ | ||||
|                       (chdir "src") | ||||
|                       #t)) | ||||
|          (delete 'configure) | ||||
|          (replace 'install | ||||
|                   (lambda* (#:key outputs #:allow-other-keys) | ||||
|                     (let ((bin (string-append (assoc-ref outputs "out") | ||||
|                                               "/bin"))) | ||||
|                       (mkdir-p bin) | ||||
|                       (copy-file "../bin/diamond" | ||||
|                                  (string-append bin "/diamond")) | ||||
|                       #t)))))) | ||||
|     (native-inputs | ||||
|      `(("bc" ,bc))) | ||||
|          (add-after 'unpack 'remove-native-compilation | ||||
|            (lambda _ | ||||
|              (substitute* "CMakeLists.txt" (("-march=native") "")) | ||||
|              #t))))) | ||||
|     (inputs | ||||
|      `(("boost" ,boost) | ||||
|        ("zlib" ,zlib))) | ||||
|      `(("zlib" ,zlib))) | ||||
|     (home-page "https://github.com/bbuchfink/diamond") | ||||
|     (synopsis "Accelerated BLAST compatible local sequence aligner") | ||||
|     (description | ||||
|  | @ -2094,7 +2079,7 @@ particular, reads spanning multiple exons.") | |||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                     "http://selab.janelia.org/software/hmmer" | ||||
|                     "http://eddylab.org/software/hmmer" | ||||
|                     (version-prefix version 1) "/" | ||||
|                     version "/hmmer-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|  | @ -2102,7 +2087,7 @@ particular, reads spanning multiple exons.") | |||
|                 "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (native-inputs `(("perl" ,perl))) | ||||
|     (home-page "http://hmmer.janelia.org") | ||||
|     (home-page "http://hmmer.org/") | ||||
|     (synopsis "Biosequence analysis using profile hidden Markov models") | ||||
|     (description | ||||
|      "HMMER is used for searching sequence databases for homologs of protein | ||||
|  | @ -3570,7 +3555,7 @@ of these reads to align data quickly through a hash-based indexing scheme.") | |||
| (define-public sortmerna | ||||
|   (package | ||||
|     (name "sortmerna") | ||||
|     (version "2.1") | ||||
|     (version "2.1b") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -3580,7 +3565,7 @@ of these reads to align data quickly through a hash-based indexing scheme.") | |||
|        (file-name (string-append name "-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1mc5cf1c7xh0h7xb11vh7gqgzx0qvrfa606cb8ixlfg3f2av58s4")))) | ||||
|          "1ghaghvd82af9j5adavxh77g7hm247d1r69m3fbi6f1jdivj5ldk")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (outputs '("out"      ;for binaries | ||||
|                "db"))     ;for sequence databases | ||||
|  | @ -3600,6 +3585,8 @@ of these reads to align data quickly through a hash-based indexing scheme.") | |||
|                            (install-file file share)) | ||||
|                          (find-files "rRNA_databases" ".*fasta")) | ||||
|                #t)))))) | ||||
|     (inputs | ||||
|      `(("zlib" ,zlib))) | ||||
|     (home-page "http://bioinfo.lifl.fr/RNA/sortmerna") | ||||
|     (synopsis "Biological sequence analysis tool for NGS reads") | ||||
|     (description | ||||
|  | @ -3831,7 +3818,7 @@ data in the form of VCF files.") | |||
| (define-public vsearch | ||||
|   (package | ||||
|     (name "vsearch") | ||||
|     (version "1.10.0") | ||||
|     (version "1.11.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -3841,7 +3828,7 @@ data in the form of VCF files.") | |||
|        (file-name (string-append name "-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1i3bad7gnn2y3a1yfixzshd99xdkjc8w5bxzgifpysc6jiljwvb5")) | ||||
|          "1pdvm3znjgq3zryy240yj9gc0bf1z31k6vf9jxrxgdgkvzgw85c7")) | ||||
|        (modules '((guix build utils))) | ||||
|        (snippet | ||||
|         '(begin | ||||
|  | @ -4018,13 +4005,13 @@ barplots or heatmaps.") | |||
| (define-public r-biocgenerics | ||||
|   (package | ||||
|     (name "r-biocgenerics") | ||||
|     (version "0.16.1") | ||||
|     (version "0.18.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "BiocGenerics" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0f16ryy5f012hvksrwlmm33bcl7lw97i2jvhbnwfwl03j4w7nhc1")))) | ||||
|                 "1jjp48vbph09w5bmc7368gjjywsa1lmzfybpiwlypr60b51vlkp6")))) | ||||
|     (properties | ||||
|      `((upstream-name . "BiocGenerics"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4038,13 +4025,13 @@ packages.") | |||
| (define-public r-dnacopy | ||||
|   (package | ||||
|     (name "r-dnacopy") | ||||
|     (version "1.44.0") | ||||
|     (version "1.46.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "DNAcopy" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1c1px4rbr36xx929hp59k7ca9k5ab66qmn8k63fk13278ncm6h66")))) | ||||
|                 "0vwv2mndfjpcjp4sybg75abc7xnx8zyw8zjk717k6xh8c33ymcip")))) | ||||
|     (properties | ||||
|      `((upstream-name . "DNAcopy"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4060,13 +4047,13 @@ abnormal copy number.") | |||
| (define-public r-s4vectors | ||||
|   (package | ||||
|     (name "r-s4vectors") | ||||
|     (version "0.8.11") | ||||
|     (version "0.10.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "S4Vectors" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66")))) | ||||
|                 "1mi6lf6pnb9l657igy0vj4yz03yawbr2jhk22l757fzbjc7n9q3b")))) | ||||
|     (properties | ||||
|      `((upstream-name . "S4Vectors"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4087,13 +4074,13 @@ S4Vectors package itself.") | |||
| (define-public r-iranges | ||||
|   (package | ||||
|     (name "r-iranges") | ||||
|     (version "2.4.8") | ||||
|     (version "2.6.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "IRanges" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl")))) | ||||
|                 "0dz7z0pk8hq79mcgylw920999s08h6j8xrl31rdxhssmi7l8v6vy")))) | ||||
|     (properties | ||||
|      `((upstream-name . "IRanges"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4116,13 +4103,13 @@ possible.") | |||
| (define-public r-genomeinfodb | ||||
|   (package | ||||
|     (name "r-genomeinfodb") | ||||
|     (version "1.6.3") | ||||
|     (version "1.8.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "GenomeInfoDb" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1ggp005n2rlkad00ilzn95y4rd484yr1chdhnd6fwg45rbi94d63")))) | ||||
|                 "0k4s6z5qj53zkfnyrmcbn3l2nzgm56bhv58rv321j22qa56cpz7d")))) | ||||
|     (properties | ||||
|      `((upstream-name . "GenomeInfoDb"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4142,13 +4129,13 @@ names in their natural, rather than lexicographic, order.") | |||
| (define-public r-variantannotation | ||||
|   (package | ||||
|     (name "r-variantannotation") | ||||
|     (version "1.16.4") | ||||
|     (version "1.18.1") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "VariantAnnotation" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1z42j3p9b8h725inq8n0230llsdbav3gwcxy1nliypzfkxbzahsb")))) | ||||
|                 "1jdpdnp7l81xfprba2ykfnj6i64fd84vxaax0wvrz6qahxvnjzyw")))) | ||||
|     (properties | ||||
|      `((upstream-name . "VariantAnnotation"))) | ||||
|     (inputs | ||||
|  | @ -4174,13 +4161,13 @@ coding changes and predict coding outcomes.") | |||
| (define-public r-xvector | ||||
|   (package | ||||
|     (name "r-xvector") | ||||
|     (version "0.10.0") | ||||
|     (version "0.12.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "XVector" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0havwyr6xqk7w0rmbwfj9jq1djz7wzdz7w39adhklwzwz9l4ih3a")))) | ||||
|                 "0c9cqjcxxks3an4wiq167h2grxlfyazajn7bmxhbk42zifp8vmqp")))) | ||||
|     (properties | ||||
|      `((upstream-name . "XVector"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4210,13 +4197,13 @@ coding changes and predict coding outcomes.") | |||
| (define-public r-genomicranges | ||||
|   (package | ||||
|     (name "r-genomicranges") | ||||
|     (version "1.22.4") | ||||
|     (version "1.24.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "GenomicRanges" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "02df5683nrpn9d10ws8jz9b55nr9055hh882xp2i154xdddir0k0")))) | ||||
|                 "1iyzg1npl3rnnslwq3h759vf0xhshnn5v801rnlj6bnxzhn9yaqh")))) | ||||
|     (properties | ||||
|      `((upstream-name . "GenomicRanges"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4237,13 +4224,13 @@ manipulating genomic intervals and variables defined along a genome.") | |||
| (define-public r-biobase | ||||
|   (package | ||||
|     (name "r-biobase") | ||||
|     (version "2.30.0") | ||||
|     (version "2.32.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "Biobase" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1qasjpq3kw8h7qw8cin3bjvv1256hqr1mm24fq3v0ymxzlb66szi")))) | ||||
|                 "0q4icv9n5rc2qfkv6k1wjhmfcpzcyr8f45m2z3xharbdv912kl1i")))) | ||||
|     (properties | ||||
|      `((upstream-name . "Biobase"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4259,13 +4246,13 @@ on Bioconductor or which replace R functions.") | |||
| (define-public r-annotationdbi | ||||
|   (package | ||||
|     (name "r-annotationdbi") | ||||
|     (version "1.32.3") | ||||
|     (version "1.34.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "AnnotationDbi" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1v6x62hgys5827yg2xayjrd9xawbayzm6wy0q4vxh1s6yxc9bklj")))) | ||||
|                 "0nw6c23098gkjlwlrra4rh1m65azczb31qr01pq81cn5gya1zkr4")))) | ||||
|     (properties | ||||
|      `((upstream-name . "AnnotationDbi"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4286,13 +4273,13 @@ annotation data packages using SQLite data storage.") | |||
| (define-public r-biomart | ||||
|   (package | ||||
|     (name "r-biomart") | ||||
|     (version "2.26.1") | ||||
|     (version "2.28.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "biomaRt" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1s709055abj2gd35g6nnk5d2ai5ii09iir270l2xika6pi62gj3f")))) | ||||
|                 "1g0w6an9hkflgyhvq6pmrs92s93qarv23v636b9a4bz771wjvm5v")))) | ||||
|     (properties | ||||
|      `((upstream-name . "biomaRt"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4316,13 +4303,13 @@ powerful online queries from gene annotation to database mining.") | |||
| (define-public r-biocparallel | ||||
|   (package | ||||
|     (name "r-biocparallel") | ||||
|     (version "1.4.3") | ||||
|     (version "1.6.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "BiocParallel" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1f5mndx66vampcsq0n66afg6x851crl0h3nyv2nyp9bsgzj9cdzq")))) | ||||
|                 "0ki5xvb3cwjmlsx81gr8ylk1qy3imlj2dd04mzpvl28x42ay4dqj")))) | ||||
|     (properties | ||||
|      `((upstream-name . "BiocParallel"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4340,13 +4327,13 @@ objects.") | |||
| (define-public r-biostrings | ||||
|   (package | ||||
|     (name "r-biostrings") | ||||
|     (version "2.38.4") | ||||
|     (version "2.40.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "Biostrings" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0cjd7i4bdwabzb02gm753aji5xaihkj5ak8nb0d32cclxbj0hp33")))) | ||||
|                 "03gyhiz14xy51nzg0glihk1rv19pq4p1aa3y5g23bzcshs67ggj9")))) | ||||
|     (properties | ||||
|      `((upstream-name . "Biostrings"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4366,13 +4353,13 @@ biological sequences or sets of sequences.") | |||
| (define-public r-rsamtools | ||||
|   (package | ||||
|     (name "r-rsamtools") | ||||
|     (version "1.22.0") | ||||
|     (version "1.24.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "Rsamtools" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1yc3nzzms3igjwr4l9yd3wdac95glcs08b4cfp7disyly0wcskjd")))) | ||||
|                 "0w0drs8cpk8nlazq64ag7nm1w5jd1m8riialivm01hz5zcra7scb")))) | ||||
|     (properties | ||||
|      `((upstream-name . "Rsamtools"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4410,13 +4397,13 @@ files.") | |||
| (define-public r-summarizedexperiment | ||||
|   (package | ||||
|     (name "r-summarizedexperiment") | ||||
|     (version "1.0.2") | ||||
|     (version "1.2.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "SummarizedExperiment" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1gpmh1mi70m5k5qnyjs1h0qn8ajrzalzic7k3762xchxsmmdvxn4")))) | ||||
|                 "1c81acgw3a0ha5fgapfh9xq8yhryqqf8k259n2dz0mgz1k2d9klg")))) | ||||
|     (properties | ||||
|      `((upstream-name . "SummarizedExperiment"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4439,13 +4426,13 @@ samples.") | |||
| (define-public r-genomicalignments | ||||
|   (package | ||||
|     (name "r-genomicalignments") | ||||
|     (version "1.6.3") | ||||
|     (version "1.8.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "GenomicAlignments" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "02b9j1pfd39bkvb623k5k0ziq9rpw093hifqw65vb954dwj29jhd")))) | ||||
|                 "1y4qgqxq8dax9swgl59m6i7ggjpqrjllgx87b9vwls3z0nf1i6xj")))) | ||||
|     (properties | ||||
|      `((upstream-name . "GenomicAlignments"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4472,13 +4459,13 @@ alignments.") | |||
| (define-public r-rtracklayer | ||||
|   (package | ||||
|     (name "r-rtracklayer") | ||||
|     (version "1.30.4") | ||||
|     (version "1.32.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "rtracklayer" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0knjnwywh9k726mq28s3sy013zhw6d6nfa8hfw670720nq18i2p0")))) | ||||
|                 "0nrwk1g8b1ymvbgnqniimbvwfq13r01va9rx3b03xj4hpywzy5nv")))) | ||||
|     (build-system r-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|  | @ -4517,13 +4504,13 @@ as well as query and modify the browser state, such as the current viewport.") | |||
| (define-public r-genomicfeatures | ||||
|   (package | ||||
|     (name "r-genomicfeatures") | ||||
|     (version "1.22.13") | ||||
|     (version "1.24.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "GenomicFeatures" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0n3rkj66la6wizgcsf2rmwcsyfxz9kv5zak337lmk1raqfnancz4")))) | ||||
|                 "0ga5a7w8jnnq2k0kc07mshl6cggmbhzh42pzvhnilgl4x3kpbysl")))) | ||||
|     (properties | ||||
|      `((upstream-name . "GenomicFeatures"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4582,13 +4569,13 @@ information about the latest version of the Gene Ontologies.") | |||
| (define-public r-graph | ||||
|   (package | ||||
|     (name "r-graph") | ||||
|     (version "1.48.0") | ||||
|     (version "1.50.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "graph" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "16w75rji3kv24gfv44w66y1a2y75ax26rl470y3ypna0ndc3rrcd")))) | ||||
|                 "0ys5s19m5r30rlr0fnx2h0z2qw7n2xrad4l2yfb1bbrk8dwyf4pi")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-biocgenerics" ,r-biocgenerics))) | ||||
|  | @ -4601,13 +4588,13 @@ information about the latest version of the Gene Ontologies.") | |||
| (define-public r-topgo | ||||
|   (package | ||||
|     (name "r-topgo") | ||||
|     (version "2.22.0") | ||||
|     (version "2.24.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "topGO" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "029j9nb39b8l9xlzsp83pmjr8ap247aia387yzaa1yyw8klapdaf")))) | ||||
|                 "1p4vsl32qhjw15yv9ym01ni63gjg73jaghlf17wc4zfn3iaz2zar")))) | ||||
|     (properties | ||||
|      `((upstream-name . "topGO"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4616,6 +4603,7 @@ information about the latest version of the Gene Ontologies.") | |||
|        ("r-biobase" ,r-biobase) | ||||
|        ("r-biocgenerics" ,r-biocgenerics) | ||||
|        ("r-go-db" ,r-go-db) | ||||
|        ("r-matrixstats" ,r-matrixstats) | ||||
|        ("r-graph" ,r-graph) | ||||
|        ("r-sparsem" ,r-sparsem))) | ||||
|     (home-page "http://bioconductor.org/packages/topGO") | ||||
|  | @ -4631,13 +4619,13 @@ dependencies between GO terms can be implemented and applied.") | |||
| (define-public r-bsgenome | ||||
|   (package | ||||
|     (name "r-bsgenome") | ||||
|     (version "1.38.0") | ||||
|     (version "1.40.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "BSgenome" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "130w0m6q8kkca7gyz1aqj5jjhalwvwi6rk2yvbjrnj4gpnncyrd2")))) | ||||
|                 "08g3w47ysbmgj4hclb0x2wsn7pi9cnm3xkkfk4shgrka2g23qz44")))) | ||||
|     (properties | ||||
|      `((upstream-name . "BSgenome"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4661,13 +4649,13 @@ genome data packages and support for efficient SNP representation.") | |||
| (define-public r-impute | ||||
|   (package | ||||
|     (name "r-impute") | ||||
|     (version "1.44.0") | ||||
|     (version "1.46.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "impute" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0y4x5jk7gsf4xn56jrkdcdnxpcfll4h6ivncd7n4snmzixldvmvw")))) | ||||
|                 "0v9ibgv8kp8il52miz7b7z65mv6irqxylx6lfzkxgvxd970dgrz0")))) | ||||
|     (inputs | ||||
|      `(("gfortran" ,gfortran))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4681,13 +4669,13 @@ microarray data, using nearest neighbor averaging.") | |||
| (define-public r-seqpattern | ||||
|   (package | ||||
|     (name "r-seqpattern") | ||||
|     (version "1.2.0") | ||||
|     (version "1.4.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "seqPattern" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0p9zj6bic7sa0hb2bjm988kkk5n9r1kvlbqkzvy702f642n0j53i")))) | ||||
|                 "1dj9hfnbdj11yjxwd8jmxrdkj7n6gmaaj6244g2psgarhjcp4wfb")))) | ||||
|     (properties | ||||
|      `((upstream-name . "seqPattern"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -4707,13 +4695,13 @@ reference point and sorted by a user defined feature.") | |||
| (define-public r-genomation | ||||
|   (package | ||||
|     (name "r-genomation") | ||||
|     (version "1.2.2") | ||||
|     (version "1.4.2") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "genomation" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0kvzwc21zsh2c8d34yn935ncn38bfkpzmknycd8h7b0521x20mi9")))) | ||||
|                 "017hxh3yhizlsswd2vw8504arkckrcgq5zraiw67lldq9wzs5qzg")))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|      `(("r-biostrings" ,r-biostrings) | ||||
|  | @ -4854,14 +4842,14 @@ annotations for the genome of the model mouse Mus musculus.") | |||
| (define-public r-seqlogo | ||||
|   (package | ||||
|     (name "r-seqlogo") | ||||
|     (version "1.36.0") | ||||
|     (version "1.38.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "seqLogo" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "0kn1a1nf2j4v9c09vjkz9bmxlln7yhg87bnyrdsxy1m55x56rn5k")))) | ||||
|          "01jddx62nhi3r7czbh9hxy0wwpazbc9ax1fgagfxl6p4kx9xz9rb")))) | ||||
|     (properties `((upstream-name . "seqLogo"))) | ||||
|     (build-system r-build-system) | ||||
|     (home-page "http://bioconductor.org/packages/seqLogo") | ||||
|  | @ -5001,14 +4989,14 @@ Biostrings objects.") | |||
| (define-public r-motifrg | ||||
|   (package | ||||
|     (name "r-motifrg") | ||||
|     (version "1.14.0") | ||||
|     (version "1.16.0") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (bioconductor-uri "motifRG" version)) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1v9zm5629k2lcqbbgw8bwflvbircyxkfavbkvmbd212kgwcng8vn")))) | ||||
|          "1ds22paqc0923y6z1fy0arw0wxvvmglfvfgarhywv1qywhq68mbq")))) | ||||
|     (properties `((upstream-name . "motifRG"))) | ||||
|     (build-system r-build-system) | ||||
|     (propagated-inputs | ||||
|  | @ -5053,13 +5041,13 @@ two-dimensional genome scans.") | |||
| (define-public r-zlibbioc | ||||
|   (package | ||||
|     (name "r-zlibbioc") | ||||
|     (version "1.16.0") | ||||
|     (version "1.18.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (bioconductor-uri "zlibbioc" version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "01wc26ndg4jsn1wyrl6zzq636gxaip5fci0xapym4lh9wryc4wnw")))) | ||||
|                 "0m8l7zpx1l3qsk73k3ibkxxzzff938x3qhnwki1ymf3cnsg8cb36")))) | ||||
|     (properties | ||||
|      `((upstream-name . "zlibbioc"))) | ||||
|     (build-system r-build-system) | ||||
|  | @ -5069,6 +5057,70 @@ two-dimensional genome scans.") | |||
| libraries for systems that do not have these available via other means.") | ||||
|     (license license:artistic2.0))) | ||||
| 
 | ||||
| (define-public piranha | ||||
|   (package | ||||
|     (name "piranha") | ||||
|     (version "1.1.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://github.com/smithlabcode/piranha" | ||||
|                                   "/archive/svn/tags/piranha-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1lczxff01n4139w7xwqamlb36g9hgrcy93gh03nqszhwb8ivsrqd")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:test-target "test" | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'copy-smithlab-cpp | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (mkdir "src/smithlab_cpp") | ||||
|              (for-each (lambda (file) | ||||
|                          (install-file file "./src/smithlab_cpp/")) | ||||
|                        (find-files (assoc-ref inputs "smithlab-cpp"))) | ||||
|              #t)) | ||||
|          (add-after 'install 'install-to-store | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((out (assoc-ref outputs "out")) | ||||
|                     (bin (string-append out "/bin"))) | ||||
|                (mkdir-p bin) | ||||
|                (for-each (lambda (file) | ||||
|                            (install-file file bin)) | ||||
|                          (find-files "bin" ".*"))) | ||||
|              #t))) | ||||
|        #:configure-flags | ||||
|        (list (string-append "--with-bam_tools_headers=" | ||||
|                             (assoc-ref %build-inputs "bamtools") "/include/bamtools") | ||||
|              (string-append "--with-bam_tools_library=" | ||||
|                             (assoc-ref %build-inputs "bamtools") "/lib/bamtools")))) | ||||
|     (inputs | ||||
|      `(("bamtools" ,bamtools) | ||||
|        ("samtools" ,samtools-0.1) | ||||
|        ("gsl" ,gsl) | ||||
|        ("smithlab-cpp" | ||||
|         ,(let ((commit "3723e2d")) | ||||
|            (origin | ||||
|              (method git-fetch) | ||||
|              (uri (git-reference | ||||
|                    (url "https://github.com/smithlabcode/smithlab_cpp.git") | ||||
|                    (commit commit))) | ||||
|              (file-name (string-append "smithlab_cpp-" commit "-checkout")) | ||||
|              (sha256 | ||||
|               (base32 | ||||
|                "0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g"))))))) | ||||
|     (native-inputs | ||||
|      `(("python" ,python-2))) | ||||
|     (home-page "https://github.com/smithlabcode/piranha") | ||||
|     (synopsis "Peak-caller for CLIP-seq and RIP-seq data") | ||||
|     (description | ||||
|      "Piranha is a peak-caller for genomic data produced by CLIP-seq and | ||||
| RIP-seq experiments.  It takes input in BED or BAM format and identifies | ||||
| regions of statistically significant read enrichment.  Additional covariates | ||||
| may optionally be provided to further inform the peak-calling process.") | ||||
|     (license license:gpl3+))) | ||||
| 
 | ||||
| (define-public pepr | ||||
|   (package | ||||
|     (name "pepr") | ||||
|  |  | |||
|  | @ -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,26 +409,25 @@ error-resilience, a Java-viewer for j2k-images, ...") | |||
|               ("libsm" ,libsm) | ||||
|               ("perl" ,perl))) | ||||
|     (arguments | ||||
|      `(#:phases (alist-cons-after | ||||
|                  'unpack 'disable-html-doc-gen | ||||
|                  (lambda _ | ||||
|                    (substitute* "doc/Makefile.in" | ||||
|                      (("^all: allhtml manpages") ""))) | ||||
|                  (alist-cons-after | ||||
|                   'install 'install-manpages | ||||
|                   (lambda* (#:key outputs #:allow-other-keys) | ||||
|                     (let* ((bin (assoc-ref outputs "bin")) | ||||
|                            (man1dir (string-append bin "/share/man/man1"))) | ||||
|                       (mkdir-p man1dir) | ||||
|                       (for-each (lambda (file) | ||||
|                                   (let ((base (basename file))) | ||||
|                                     (format #t "installing `~a' to `~a'~%" | ||||
|                                             base man1dir) | ||||
|                                     (copy-file file | ||||
|                                                (string-append | ||||
|                                                 man1dir "/" base)))) | ||||
|                                 (find-files "doc" "\\.1")))) | ||||
|                   %standard-phases)))) | ||||
|      `(#:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'disable-html-doc-gen | ||||
|            (lambda _ | ||||
|              (substitute* "doc/Makefile.in" | ||||
|                (("^all: allhtml manpages") "")))) | ||||
|          (add-after 'install 'install-manpages | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let* ((bin (assoc-ref outputs "bin")) | ||||
|                     (man1dir (string-append bin "/share/man/man1"))) | ||||
|                (mkdir-p man1dir) | ||||
|                (for-each (lambda (file) | ||||
|                            (let ((base (basename file))) | ||||
|                              (format #t "installing `~a' to `~a'~%" | ||||
|                                      base man1dir) | ||||
|                              (copy-file file | ||||
|                                         (string-append | ||||
|                                          man1dir "/" base)))) | ||||
|                          (find-files "doc" "\\.1")))))))) | ||||
|     (synopsis "Tools and library for working with GIF images") | ||||
|     (description | ||||
|      "GIFLIB is a library for reading and writing GIF images.  It is API and | ||||
|  | @ -501,9 +501,13 @@ more modular, simple, and flexible.") | |||
|     (version "1.2.4") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                     "http://linuxbrit.co.uk/downloads/giblib-" | ||||
|                     version ".tar.gz")) | ||||
|               (uri (list | ||||
|                      (string-append | ||||
|                        "http://linuxbrit.co.uk/downloads/giblib-" | ||||
|                        version ".tar.gz") | ||||
|                      (string-append | ||||
|                        "https://sourceforge.net/projects/slackbuildsdirectlinks/" | ||||
|                        "files/giblib/giblib-" version ".tar.gz"))) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp")))) | ||||
|  |  | |||
|  | @ -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 _ | ||||
|           (and (mkdir "swt") | ||||
|                (zero? (system* "unzip" (assoc-ref %build-inputs "source") "-d" "swt")) | ||||
|                (chdir "swt") | ||||
|                (mkdir "src") | ||||
|                (zero? (system* "unzip" "src.zip" "-d" "src")) | ||||
|                (chdir "src"))) | ||||
|         (alist-replace | ||||
|          'build | ||||
|          (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|            (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) | ||||
|              (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) | ||||
| 
 | ||||
|              ;; Build shared libraries.  Users of SWT have to set the system | ||||
|              ;; property swt.library.path to the "lib" directory of this | ||||
|              ;; package output. | ||||
|              (mkdir-p lib) | ||||
|              (setenv "OUTPUT_DIR" lib) | ||||
|              (zero? (system* "bash" "build.sh")) | ||||
| 
 | ||||
|              ;; build jar | ||||
|              (mkdir "build") | ||||
|              (for-each (lambda (file) | ||||
|                          (format #t "Compiling ~s\n" file) | ||||
|                          (system* "javac" "-d" "build" file)) | ||||
|                        (find-files "." "\\.java")) | ||||
|              (zero? (system* "jar" "cvf" "swt.jar" "-C" "build" ".")))) | ||||
|          (alist-cons-after | ||||
|           'install 'install-java-files | ||||
|           (lambda* (#:key outputs #:allow-other-keys) | ||||
|             (let ((java (string-append (assoc-ref outputs "out") | ||||
|                                        "/share/java"))) | ||||
|               (install-file "swt.jar" java) | ||||
|               #t)) | ||||
|           (alist-delete 'configure %standard-phases)))))) | ||||
|        (modify-phases %standard-phases | ||||
|          (replace 'unpack | ||||
|            (lambda* (#:key source #:allow-other-keys) | ||||
|              (and (mkdir "swt") | ||||
|                   (zero? (system* "unzip" source "-d" "swt")) | ||||
|                   (chdir "swt") | ||||
|                   (mkdir "src") | ||||
|                   (zero? (system* "unzip" "src.zip" "-d" "src"))))) | ||||
|          ;; The classpath contains invalid icecat jars.  Since we don't need | ||||
|          ;; anything other than the JDK on the classpath, we can simply unset | ||||
|          ;; it. | ||||
|          (add-after 'configure 'unset-classpath | ||||
|            (lambda _ (unsetenv "CLASSPATH") #t)) | ||||
|          (add-before 'build 'build-native | ||||
|            (lambda* (#:key inputs outputs #:allow-other-keys) | ||||
|              (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) | ||||
|                ;; Build shared libraries.  Users of SWT have to set the system | ||||
|                ;; property swt.library.path to the "lib" directory of this | ||||
|                ;; package output. | ||||
|                (mkdir-p lib) | ||||
|                (setenv "OUTPUT_DIR" lib) | ||||
|                (with-directory-excursion "src" | ||||
|                  (zero? (system* "bash" "build.sh")))))) | ||||
|          (add-after 'install 'install-native | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) | ||||
|                (for-each (lambda (file) | ||||
|                            (install-file file lib)) | ||||
|                          (find-files "." "\\.so$")) | ||||
|                #t)))))) | ||||
|     (inputs | ||||
|      `(("xulrunner" ,icecat) | ||||
|        ("gtk" ,gtk+-2) | ||||
|  | @ -117,8 +110,7 @@ | |||
|        ("glu" ,glu))) | ||||
|     (native-inputs | ||||
|      `(("pkg-config" ,pkg-config) | ||||
|        ("unzip" ,unzip) | ||||
|        ("jdk" ,icedtea "jdk"))) | ||||
|        ("unzip" ,unzip))) | ||||
|     (home-page "https://www.eclipse.org/swt/") | ||||
|     (synopsis "Widget toolkit for Java") | ||||
|     (description | ||||
|  |  | |||
|  | @ -27,7 +27,7 @@ | |||
| (define-public jemalloc | ||||
|   (package | ||||
|     (name "jemalloc") | ||||
|     (version "4.1.0") | ||||
|     (version "4.2.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|  | @ -35,7 +35,7 @@ | |||
|                     name "-" version ".tar.bz2")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "13pc6gcs5d6ws63jv83vslrb1vlqdnf1dg43awkb9bbj9xqnvl7s")))) | ||||
|                 "1jvasihaizawz44j02bri47bd905flns03nkigipys81p6pds5mj")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (home-page "http://www.canonware.com/jemalloc/") | ||||
|     (synopsis "General-purpose scalable concurrent malloc implementation") | ||||
|  |  | |||
							
								
								
									
										47
									
								
								gnu/packages/libbsd.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								gnu/packages/libbsd.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages libbsd) | ||||
|   #:use-module (guix build-system gnu) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix licenses) | ||||
|   #:use-module (guix packages)) | ||||
| 
 | ||||
| (define-public libbsd | ||||
|   (package | ||||
|     (name "libbsd") | ||||
|     (version "0.8.3") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "https://libbsd.freedesktop.org/releases/" | ||||
|                                   "libbsd-" version ".tar.xz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1a1l7afchlvvj2zfi7ajcg26bbkh5i98y2v5h9j5p1px9m7n6jwk")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (synopsis "Utility functions from BSD systems") | ||||
|     (description "This library provides useful functions commonly found on BSD | ||||
| systems, and lacking on others like GNU systems, thus making it easier to port | ||||
| projects with strong BSD origins, without needing to embed the same code over | ||||
| and over again on each project.") | ||||
|     (home-page "https://libbsd.freedesktop.org/wiki/") | ||||
|     ;; This package is a collection of third-party functions that were | ||||
|     ;; originally released under various non-copyleft licenses. | ||||
|     (license (list bsd-2 bsd-3 bsd-4 expat isc public-domain | ||||
|                    (non-copyleft "file://COPYING" | ||||
|                                  "See COPYING in the distribution."))))) | ||||
|  | @ -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 | ||||
|                  (lambda _ | ||||
|                    (zero? (system* "autoreconf" "-vi"))) | ||||
|                  (alist-cons-before | ||||
|                    'check 'check-tz-setup | ||||
|                    (lambda* (#:key inputs #:allow-other-keys) | ||||
|                      ;; For mu/test/test-mu-query.c | ||||
|                      (setenv "TZDIR" | ||||
|                              (string-append (assoc-ref inputs "tzdata") | ||||
|                                             "/share/zoneinfo"))) | ||||
|                    %standard-phases)))) | ||||
|      `(#:modules ((guix build gnu-build-system) | ||||
|                   (guix build utils) | ||||
|                   (guix build emacs-utils)) | ||||
|        #:imported-modules (,@%gnu-build-system-modules | ||||
|                            (guix build emacs-utils)) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'patch-configure.ac | ||||
|            ;; By default, elisp code goes to "share/emacs/site-lisp/mu4e", | ||||
|            ;; so our Emacs package can't find it.  Setting "--with-lispdir" | ||||
|            ;; configure flag doesn't help because "mu4e" will be added to | ||||
|            ;; the lispdir anyway, so we have to modify "configure.ac". | ||||
|            (lambda _ | ||||
|              (substitute* "configure.ac" | ||||
|                (("^ +lispdir=.*") "")) | ||||
|              #t)) | ||||
|          (add-after 'patch-configure.ac 'autoreconf | ||||
|            (lambda _ | ||||
|              (zero? (system* "autoreconf" "-vi")))) | ||||
|          (add-before 'check 'check-tz-setup | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              ;; For mu/test/test-mu-query.c | ||||
|              (setenv "TZDIR" | ||||
|                      (string-append (assoc-ref inputs "tzdata") | ||||
|                                     "/share/zoneinfo")) | ||||
|              #t)) | ||||
|          (add-after 'install 'install-emacs-autoloads | ||||
|            (lambda* (#:key outputs #:allow-other-keys) | ||||
|              (emacs-generate-autoloads | ||||
|               "mu4e" | ||||
|               (string-append (assoc-ref outputs "out") | ||||
|                              "/share/emacs/site-lisp")) | ||||
|              #t))))) | ||||
|     (home-page "http://www.djcbsoftware.nl/code/mu/") | ||||
|     (synopsis "Quickly find emails") | ||||
|     (description | ||||
|  |  | |||
|  | @ -11,6 +11,8 @@ | |||
| ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> | ||||
| ;;; Copyright © 2015 Fabian Harfert <fhmgufs@web.de> | ||||
| ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> | ||||
| ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> | ||||
| ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
|  | @ -46,6 +48,7 @@ | |||
|   #:use-module (gnu packages cmake) | ||||
|   #:use-module (gnu packages compression) | ||||
|   #:use-module (gnu packages curl) | ||||
|   #:use-module (gnu packages cyrus-sasl) | ||||
|   #:use-module (gnu packages documentation) | ||||
|   #:use-module (gnu packages elf) | ||||
|   #:use-module (gnu packages flex) | ||||
|  | @ -79,6 +82,7 @@ | |||
|   #:use-module (gnu packages tcl) | ||||
|   #:use-module (gnu packages texinfo) | ||||
|   #:use-module (gnu packages texlive) | ||||
|   #:use-module (gnu packages tls) | ||||
|   #:use-module (gnu packages wxwidgets) | ||||
|   #:use-module (gnu packages xml) | ||||
|   #:use-module (gnu packages zip) | ||||
|  | @ -583,7 +587,7 @@ online as well as original implementations of various other algorithms.") | |||
| (define-public octave | ||||
|   (package | ||||
|     (name "octave") | ||||
|     (version "4.0.0") | ||||
|     (version "4.0.2") | ||||
|     (source | ||||
|      (origin | ||||
|       (method url-fetch) | ||||
|  | @ -591,7 +595,7 @@ online as well as original implementations of various other algorithms.") | |||
|                           version ".tar.gz")) | ||||
|       (sha256 | ||||
|        (base32 | ||||
|         "101jr9yck798586jz4vkjcgk36zksmxf1pxrzvipgn2xgyay0zjc")))) | ||||
|         "1hdxap3j88rpqjimnfhinym6z73wdi5dfa6fv85c13r1dk9qzk9r")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("lapack" ,lapack) | ||||
|  | @ -602,6 +606,7 @@ online as well as original implementations of various other algorithms.") | |||
|        ("arpack" ,arpack-ng) | ||||
|        ("curl" ,curl) | ||||
|        ("pcre" ,pcre) | ||||
|        ("cyrus-sasl" ,cyrus-sasl) | ||||
|        ("fltk" ,fltk) | ||||
|        ("fontconfig" ,fontconfig) | ||||
|        ("freetype" ,freetype) | ||||
|  | @ -609,6 +614,7 @@ online as well as original implementations of various other algorithms.") | |||
|        ("libxft" ,libxft) | ||||
|        ("mesa" ,mesa) | ||||
|        ("glu" ,glu) | ||||
|        ("openssl" ,openssl) | ||||
|        ("zlib" ,zlib))) | ||||
|     (native-inputs | ||||
|      `(("gfortran" ,gfortran) | ||||
|  | @ -626,9 +632,10 @@ online as well as original implementations of various other algorithms.") | |||
|        ("ghostscript" ,ghostscript) | ||||
|        ("gnuplot" ,gnuplot))) | ||||
|     (arguments | ||||
|      `(#:configure-flags (list (string-append "--with-shell=" | ||||
| 			    (assoc-ref %build-inputs "bash") | ||||
| 			    "/bin/sh")))) | ||||
|      `(#:configure-flags | ||||
|        (list (string-append "--with-shell=" | ||||
|                             (assoc-ref %build-inputs "bash") | ||||
|                             "/bin/sh")))) | ||||
|     (home-page "http://www.gnu.org/software/octave/") | ||||
|     (synopsis "High-level language for numerical computation") | ||||
|     (description "GNU Octave is a high-level interpreted language that is | ||||
|  | @ -664,6 +671,9 @@ script files.") | |||
|        ("glu" ,glu) | ||||
|        ("libx11" ,libx11) | ||||
|        ("libxext" ,libxext))) | ||||
|     (inputs | ||||
|      `(("fontconfig" ,fontconfig) | ||||
|        ("libxft" ,libxft))) | ||||
|     (arguments | ||||
|      `(#:configure-flags `("-DENABLE_METIS:BOOL=OFF" | ||||
|                            "-DENABLE_BUILD_SHARED:BOOL=ON" | ||||
|  | @ -1588,7 +1598,7 @@ point numbers.") | |||
| (define-public wxmaxima | ||||
|   (package | ||||
|     (name "wxmaxima") | ||||
|     (version "15.04.0") | ||||
|     (version "16.04.2") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|  | @ -1596,7 +1606,7 @@ point numbers.") | |||
|                            version "/" name "-" version ".tar.gz")) | ||||
|        (sha256 | ||||
|         (base32 | ||||
|          "1fm47ah4aw5qdjqhkz67w5fwhy8yfffa5z896crp0d3hk2bh4180")))) | ||||
|          "1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (inputs | ||||
|      `(("wxwidgets" ,wxwidgets) | ||||
|  | @ -1631,14 +1641,14 @@ full text searching.") | |||
| (define-public armadillo | ||||
|   (package | ||||
|     (name "armadillo") | ||||
|     (version "6.700.4") | ||||
|     (version "6.700.7") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://sourceforge/arma/armadillo-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0dsdjcps5l2nhg0455rrc708inffarzj7n435vj4sm9lxwf21wg9")))) | ||||
|                 "0xbidcxrvbq33xf7iysg2nic2ai9a043psl33kiv6ifkk7p8hcra")))) | ||||
|     (build-system cmake-build-system) | ||||
|     (arguments `(#:tests? #f)) ;no test target | ||||
|     (inputs | ||||
|  | @ -1659,14 +1669,14 @@ associated functions (eg. contiguous and non-contiguous submatrix views).") | |||
| 
 | ||||
| (define-public armadillo-for-rcpparmadillo | ||||
|   (package (inherit armadillo) | ||||
|     (version "6.700.3") | ||||
|     (version "6.700.6") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (string-append "mirror://sourceforge/arma/armadillo-" | ||||
|                                   version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "1vnhifa7d0aij3kv5bxf6m91d99h3y2fyj48jrx7jcvwyb1q5wwq")))))) | ||||
|                 "1cdpjxb0fz5f28y5qrqgpw53s7qi8s2v3al9lfdldqxngb21vpx8")))))) | ||||
| 
 | ||||
| (define-public muparser | ||||
|   (package | ||||
|  | @ -2199,7 +2209,23 @@ in finite element programs.") | |||
|        ;; ("python2-numpy" ,python2-numpy) ; only required for the tests | ||||
|        ("zlib" ,zlib))) | ||||
|     (arguments | ||||
|      `(#:tests? #f)) ; The test data are downloaded from the Internet. | ||||
|      `(;; The 'share/flann/octave' contains a .mex file, which is an ELF file | ||||
|        ;; taken 46 MiB unstripped, and 6 MiB stripped. | ||||
|        #:strip-directories '("lib" "lib64" "libexec" | ||||
|                              "bin" "sbin" "share/flann/octave") | ||||
| 
 | ||||
|        ;; Save 12 MiB by not installing .a files.  Passing | ||||
|        ;; '-DBUILD_STATIC_LIBS=OFF' has no effect. | ||||
|        #:phases (modify-phases %standard-phases | ||||
|                   (add-after 'install 'remove-static-libraries | ||||
|                     (lambda* (#:key outputs #:allow-other-keys) | ||||
|                       (let* ((out (assoc-ref outputs "out")) | ||||
|                              (lib (string-append out "/lib"))) | ||||
|                         (for-each delete-file | ||||
|                                   (find-files lib "\\.a$")) | ||||
|                         #t)))) | ||||
| 
 | ||||
|        #:tests? #f)) ; The test data are downloaded from the Internet. | ||||
|     (home-page "http://www.cs.ubc.ca/research/flann/") | ||||
|     (synopsis "Library for approximate nearest neighbors computation") | ||||
|     (description "FLANN is a library for performing fast approximate | ||||
|  |  | |||
|  | @ -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. | ||||
							
								
								
									
										42
									
								
								gnu/packages/patches/expat-CVE-2015-1283-refix.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								gnu/packages/patches/expat-CVE-2015-1283-refix.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,42 @@ | |||
| Update previous fix for CVE-2015-1283 to not rely on undefined behavior. | ||||
| 
 | ||||
| Copied from Debian, as found in Debian package version 2.1.0-6+deb8u2. | ||||
| 
 | ||||
| https://sources.debian.net/src/expat/2.1.0-6%2Bdeb8u2/debian/patches/CVE-2015-1283-refix.patch/ | ||||
| 
 | ||||
| From 29a11774d8ebbafe8418b4a5ffb4cc1160b194a1 Mon Sep 17 00:00:00 2001 | ||||
| From: Pascal Cuoq <cuoq@trust-in-soft.com> | ||||
| Date: Sun, 15 May 2016 09:05:46 +0200 | ||||
| Subject: [PATCH] Avoid relying on undefined behavior in CVE-2015-1283 fix. | ||||
| 
 | ||||
| ---
 | ||||
|  expat/lib/xmlparse.c | 6 ++++-- | ||||
|  1 file changed, 4 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/lib/xmlparse.c b/lib/xmlparse.c
 | ||||
| index 13e080d..cdb12ef 100644
 | ||||
| --- a/lib/xmlparse.c
 | ||||
| +++ b/lib/xmlparse.c
 | ||||
| @@ -1695,7 +1695,8 @@ XML_GetBuffer(XML_Parser parser, int len
 | ||||
|    } | ||||
|   | ||||
|    if (len > bufferLim - bufferEnd) { | ||||
| -    int neededSize = len + (int)(bufferEnd - bufferPtr);
 | ||||
| +    /* Do not invoke signed arithmetic overflow: */
 | ||||
| +    int neededSize = (int) ((unsigned)len + (unsigned)(bufferEnd - bufferPtr));
 | ||||
|  /* BEGIN MOZILLA CHANGE (sanity check neededSize) */ | ||||
|      if (neededSize < 0) { | ||||
|        errorCode = XML_ERROR_NO_MEMORY; | ||||
| @@ -1729,7 +1730,8 @@ XML_GetBuffer(XML_Parser parser, int len
 | ||||
|        if (bufferSize == 0) | ||||
|          bufferSize = INIT_BUFFER_SIZE; | ||||
|        do { | ||||
| -        bufferSize *= 2;
 | ||||
| +        /* Do not invoke signed arithmetic overflow: */
 | ||||
| +        bufferSize = (int) (2U * (unsigned) bufferSize);
 | ||||
|  /* BEGIN MOZILLA CHANGE (prevent infinite loop on overflow) */ | ||||
|        } while (bufferSize < neededSize && bufferSize > 0); | ||||
|  /* END MOZILLA CHANGE */ | ||||
| -- 
 | ||||
| 2.8.2 | ||||
| 
 | ||||
							
								
								
									
										761
									
								
								gnu/packages/patches/expat-CVE-2016-0718.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										761
									
								
								gnu/packages/patches/expat-CVE-2016-0718.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,761 @@ | |||
| Fix CVE-2016-0718. | ||||
| 
 | ||||
| Copied from Debian, as found in Debian package version 2.1.0-6+deb8u2. | ||||
| 
 | ||||
| https://sources.debian.net/src/expat/2.1.0-6%2Bdeb8u2/debian/patches/CVE-2016-0718-v2-2-1.patch/ | ||||
| 
 | ||||
| From cdfcb1b5c95e93b00ae9e9d25708b4a3bee72c15 Mon Sep 17 00:00:00 2001 | ||||
| From: Sebastian Pipping <sebastian@pipping.org> | ||||
| Date: Mon, 2 May 2016 00:02:44 +0200 | ||||
| Subject: [PATCH] Address CVE-2016-0718 (/patch/ version 2.2.1) | ||||
| 
 | ||||
| * Out of bounds memory access when doing text conversion on malformed input | ||||
| * Integer overflow related to memory allocation | ||||
| 
 | ||||
| Reported by Gustavo Grieco | ||||
| 
 | ||||
| Patch credits go to | ||||
| * Christian Heimes | ||||
| * Karl Waclawek | ||||
| * Gustavo Grieco | ||||
| * Sebastian Pipping | ||||
| * Pascal Cuoq | ||||
| ---
 | ||||
|  expat/lib/xmlparse.c    |  34 +++++++++----- | ||||
|  expat/lib/xmltok.c      | 115 +++++++++++++++++++++++++++++++++++------------- | ||||
|  expat/lib/xmltok.h      |  10 ++++- | ||||
|  expat/lib/xmltok_impl.c |  62 +++++++++++++------------- | ||||
|  4 files changed, 146 insertions(+), 75 deletions(-) | ||||
| 
 | ||||
| diff --git a/lib/xmlparse.c b/lib/xmlparse.c
 | ||||
| index e308c79..13e080d 100644
 | ||||
| --- a/lib/xmlparse.c
 | ||||
| +++ b/lib/xmlparse.c
 | ||||
| @@ -2436,11 +2436,11 @@ doContent(XML_Parser parser,
 | ||||
|            for (;;) { | ||||
|              int bufSize; | ||||
|              int convLen; | ||||
| -            XmlConvert(enc,
 | ||||
| +            const enum XML_Convert_Result convert_res = XmlConvert(enc,
 | ||||
|                         &fromPtr, rawNameEnd, | ||||
|                         (ICHAR **)&toPtr, (ICHAR *)tag->bufEnd - 1); | ||||
|              convLen = (int)(toPtr - (XML_Char *)tag->buf); | ||||
| -            if (fromPtr == rawNameEnd) {
 | ||||
| +            if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) {
 | ||||
|                tag->name.strLen = convLen; | ||||
|                break; | ||||
|              } | ||||
| @@ -2661,11 +2661,11 @@ doContent(XML_Parser parser,
 | ||||
|            if (MUST_CONVERT(enc, s)) { | ||||
|              for (;;) { | ||||
|                ICHAR *dataPtr = (ICHAR *)dataBuf; | ||||
| -              XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
 | ||||
| +              const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
 | ||||
|                *eventEndPP = s; | ||||
|                charDataHandler(handlerArg, dataBuf, | ||||
|                                (int)(dataPtr - (ICHAR *)dataBuf)); | ||||
| -              if (s == next)
 | ||||
| +              if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
 | ||||
|                  break; | ||||
|                *eventPP = s; | ||||
|              } | ||||
| @@ -3269,11 +3269,11 @@ doCdataSection(XML_Parser parser,
 | ||||
|            if (MUST_CONVERT(enc, s)) { | ||||
|              for (;;) { | ||||
|                ICHAR *dataPtr = (ICHAR *)dataBuf; | ||||
| -              XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
 | ||||
| +              const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
 | ||||
|                *eventEndPP = next; | ||||
|                charDataHandler(handlerArg, dataBuf, | ||||
|                                (int)(dataPtr - (ICHAR *)dataBuf)); | ||||
| -              if (s == next)
 | ||||
| +              if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
 | ||||
|                  break; | ||||
|                *eventPP = s; | ||||
|              } | ||||
| @@ -5350,6 +5350,7 @@ reportDefault(XML_Parser parser, const ENCODING *enc,
 | ||||
|                const char *s, const char *end) | ||||
|  { | ||||
|    if (MUST_CONVERT(enc, s)) { | ||||
| +    enum XML_Convert_Result convert_res;
 | ||||
|      const char **eventPP; | ||||
|      const char **eventEndPP; | ||||
|      if (enc == encoding) { | ||||
| @@ -5362,11 +5363,11 @@ reportDefault(XML_Parser parser, const ENCODING *enc,
 | ||||
|      } | ||||
|      do { | ||||
|        ICHAR *dataPtr = (ICHAR *)dataBuf; | ||||
| -      XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
 | ||||
| +      convert_res = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
 | ||||
|        *eventEndPP = s; | ||||
|        defaultHandler(handlerArg, dataBuf, (int)(dataPtr - (ICHAR *)dataBuf)); | ||||
|        *eventPP = s; | ||||
| -    } while (s != end);
 | ||||
| +    } while ((convert_res != XML_CONVERT_COMPLETED) && (convert_res != XML_CONVERT_INPUT_INCOMPLETE));
 | ||||
|    } | ||||
|    else | ||||
|      defaultHandler(handlerArg, (XML_Char *)s, (int)((XML_Char *)end - (XML_Char *)s)); | ||||
| @@ -6169,8 +6170,8 @@ poolAppend(STRING_POOL *pool, const ENCODING *enc,
 | ||||
|    if (!pool->ptr && !poolGrow(pool)) | ||||
|      return NULL; | ||||
|    for (;;) { | ||||
| -    XmlConvert(enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end);
 | ||||
| -    if (ptr == end)
 | ||||
| +    const enum XML_Convert_Result convert_res = XmlConvert(enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end);
 | ||||
| +    if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
 | ||||
|        break; | ||||
|      if (!poolGrow(pool)) | ||||
|        return NULL; | ||||
| @@ -6254,8 +6255,13 @@ poolGrow(STRING_POOL *pool)
 | ||||
|      } | ||||
|    } | ||||
|    if (pool->blocks && pool->start == pool->blocks->s) { | ||||
| -    int blockSize = (int)(pool->end - pool->start)*2;
 | ||||
| -    BLOCK *temp = (BLOCK *)
 | ||||
| +    BLOCK *temp;
 | ||||
| +    int blockSize = (int)((unsigned)(pool->end - pool->start)*2U);
 | ||||
| +
 | ||||
| +    if (blockSize < 0)
 | ||||
| +      return XML_FALSE;
 | ||||
| +
 | ||||
| +    temp = (BLOCK *)
 | ||||
|        pool->mem->realloc_fcn(pool->blocks, | ||||
|                               (offsetof(BLOCK, s) | ||||
|                                + blockSize * sizeof(XML_Char))); | ||||
| @@ -6270,6 +6276,10 @@ poolGrow(STRING_POOL *pool)
 | ||||
|    else { | ||||
|      BLOCK *tem; | ||||
|      int blockSize = (int)(pool->end - pool->start); | ||||
| +
 | ||||
| +    if (blockSize < 0)
 | ||||
| +      return XML_FALSE;
 | ||||
| +
 | ||||
|      if (blockSize < INIT_BLOCK_SIZE) | ||||
|        blockSize = INIT_BLOCK_SIZE; | ||||
|      else | ||||
| diff --git a/lib/xmltok.c b/lib/xmltok.c
 | ||||
| index bf09dfc..cb98ce1 100644
 | ||||
| --- a/lib/xmltok.c
 | ||||
| +++ b/lib/xmltok.c
 | ||||
| @@ -318,39 +318,55 @@ enum {  /* UTF8_cvalN is value of masked first byte of N byte sequence */
 | ||||
|    UTF8_cval4 = 0xf0 | ||||
|  }; | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  utf8_toUtf8(const ENCODING *enc, | ||||
|              const char **fromP, const char *fromLim, | ||||
|              char **toP, const char *toLim) | ||||
|  { | ||||
| +  enum XML_Convert_Result res = XML_CONVERT_COMPLETED;
 | ||||
|    char *to; | ||||
|    const char *from; | ||||
|    if (fromLim - *fromP > toLim - *toP) { | ||||
|      /* Avoid copying partial characters. */ | ||||
| +    res = XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
|      for (fromLim = *fromP + (toLim - *toP); fromLim > *fromP; fromLim--) | ||||
|        if (((unsigned char)fromLim[-1] & 0xc0) != 0x80) | ||||
|          break; | ||||
|    } | ||||
| -  for (to = *toP, from = *fromP; from != fromLim; from++, to++)
 | ||||
| +  for (to = *toP, from = *fromP; (from < fromLim) && (to < toLim); from++, to++)
 | ||||
|      *to = *from; | ||||
|    *fromP = from; | ||||
|    *toP = to; | ||||
| +
 | ||||
| +  if ((to == toLim) && (from < fromLim))
 | ||||
| +    return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
| +  else
 | ||||
| +    return res;
 | ||||
|  } | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  utf8_toUtf16(const ENCODING *enc, | ||||
|               const char **fromP, const char *fromLim, | ||||
|               unsigned short **toP, const unsigned short *toLim) | ||||
|  { | ||||
| +  enum XML_Convert_Result res = XML_CONVERT_COMPLETED;
 | ||||
|    unsigned short *to = *toP; | ||||
|    const char *from = *fromP; | ||||
| -  while (from != fromLim && to != toLim) {
 | ||||
| +  while (from < fromLim && to < toLim) {
 | ||||
|      switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) { | ||||
|      case BT_LEAD2: | ||||
| +      if (fromLim - from < 2) {
 | ||||
| +        res = XML_CONVERT_INPUT_INCOMPLETE;
 | ||||
| +        break;
 | ||||
| +      }
 | ||||
|        *to++ = (unsigned short)(((from[0] & 0x1f) << 6) | (from[1] & 0x3f)); | ||||
|        from += 2; | ||||
|        break; | ||||
|      case BT_LEAD3: | ||||
| +      if (fromLim - from < 3) {
 | ||||
| +        res = XML_CONVERT_INPUT_INCOMPLETE;
 | ||||
| +        break;
 | ||||
| +      }
 | ||||
|        *to++ = (unsigned short)(((from[0] & 0xf) << 12) | ||||
|                                 | ((from[1] & 0x3f) << 6) | (from[2] & 0x3f)); | ||||
|        from += 3; | ||||
| @@ -358,8 +374,14 @@ utf8_toUtf16(const ENCODING *enc,
 | ||||
|      case BT_LEAD4: | ||||
|        { | ||||
|          unsigned long n; | ||||
| -        if (to + 1 == toLim)
 | ||||
| +        if (toLim - to < 2) {
 | ||||
| +          res = XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
|            goto after; | ||||
| +        }
 | ||||
| +        if (fromLim - from < 4) {
 | ||||
| +          res = XML_CONVERT_INPUT_INCOMPLETE;
 | ||||
| +          goto after;
 | ||||
| +        }
 | ||||
|          n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12) | ||||
|              | ((from[2] & 0x3f) << 6) | (from[3] & 0x3f); | ||||
|          n -= 0x10000; | ||||
| @@ -377,6 +399,7 @@ utf8_toUtf16(const ENCODING *enc,
 | ||||
|  after: | ||||
|    *fromP = from; | ||||
|    *toP = to; | ||||
| +  return res;
 | ||||
|  } | ||||
|   | ||||
|  #ifdef XML_NS | ||||
| @@ -425,7 +448,7 @@ static const struct normal_encoding internal_utf8_encoding = {
 | ||||
|    STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_) | ||||
|  }; | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  latin1_toUtf8(const ENCODING *enc, | ||||
|                const char **fromP, const char *fromLim, | ||||
|                char **toP, const char *toLim) | ||||
| @@ -433,30 +456,35 @@ latin1_toUtf8(const ENCODING *enc,
 | ||||
|    for (;;) { | ||||
|      unsigned char c; | ||||
|      if (*fromP == fromLim) | ||||
| -      break;
 | ||||
| +      return XML_CONVERT_COMPLETED;
 | ||||
|      c = (unsigned char)**fromP; | ||||
|      if (c & 0x80) { | ||||
|        if (toLim - *toP < 2) | ||||
| -        break;
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
|        *(*toP)++ = (char)((c >> 6) | UTF8_cval2); | ||||
|        *(*toP)++ = (char)((c & 0x3f) | 0x80); | ||||
|        (*fromP)++; | ||||
|      } | ||||
|      else { | ||||
|        if (*toP == toLim) | ||||
| -        break;
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
|        *(*toP)++ = *(*fromP)++; | ||||
|      } | ||||
|    } | ||||
|  } | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  latin1_toUtf16(const ENCODING *enc, | ||||
|                 const char **fromP, const char *fromLim, | ||||
|                 unsigned short **toP, const unsigned short *toLim) | ||||
|  { | ||||
| -  while (*fromP != fromLim && *toP != toLim)
 | ||||
| +  while (*fromP < fromLim && *toP < toLim)
 | ||||
|      *(*toP)++ = (unsigned char)*(*fromP)++; | ||||
| +
 | ||||
| +  if ((*toP == toLim) && (*fromP < fromLim))
 | ||||
| +    return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
| +  else
 | ||||
| +    return XML_CONVERT_COMPLETED;
 | ||||
|  } | ||||
|   | ||||
|  #ifdef XML_NS | ||||
| @@ -483,13 +511,18 @@ static const struct normal_encoding latin1_encoding = {
 | ||||
|    STANDARD_VTABLE(sb_) | ||||
|  }; | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  ascii_toUtf8(const ENCODING *enc, | ||||
|               const char **fromP, const char *fromLim, | ||||
|               char **toP, const char *toLim) | ||||
|  { | ||||
| -  while (*fromP != fromLim && *toP != toLim)
 | ||||
| +  while (*fromP < fromLim && *toP < toLim)
 | ||||
|      *(*toP)++ = *(*fromP)++; | ||||
| +
 | ||||
| +  if ((*toP == toLim) && (*fromP < fromLim))
 | ||||
| +    return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
| +  else
 | ||||
| +    return XML_CONVERT_COMPLETED;
 | ||||
|  } | ||||
|   | ||||
|  #ifdef XML_NS | ||||
| @@ -536,13 +569,14 @@ unicode_byte_type(char hi, char lo)
 | ||||
|  } | ||||
|   | ||||
|  #define DEFINE_UTF16_TO_UTF8(E) \ | ||||
| -static void  PTRCALL \
 | ||||
| +static enum XML_Convert_Result  PTRCALL \
 | ||||
|  E ## toUtf8(const ENCODING *enc, \ | ||||
|              const char **fromP, const char *fromLim, \ | ||||
|              char **toP, const char *toLim) \ | ||||
|  { \ | ||||
| -  const char *from; \
 | ||||
| -  for (from = *fromP; from != fromLim; from += 2) { \
 | ||||
| +  const char *from = *fromP; \
 | ||||
| +  fromLim = from + (((fromLim - from) >> 1) << 1);  /* shrink to even */ \
 | ||||
| +  for (; from < fromLim; from += 2) { \
 | ||||
|      int plane; \ | ||||
|      unsigned char lo2; \ | ||||
|      unsigned char lo = GET_LO(from); \ | ||||
| @@ -552,7 +586,7 @@ E ## toUtf8(const ENCODING *enc, \
 | ||||
|        if (lo < 0x80) { \ | ||||
|          if (*toP == toLim) { \ | ||||
|            *fromP = from; \ | ||||
| -          return; \
 | ||||
| +          return XML_CONVERT_OUTPUT_EXHAUSTED; \
 | ||||
|          } \ | ||||
|          *(*toP)++ = lo; \ | ||||
|          break; \ | ||||
| @@ -562,7 +596,7 @@ E ## toUtf8(const ENCODING *enc, \
 | ||||
|      case 0x4: case 0x5: case 0x6: case 0x7: \ | ||||
|        if (toLim -  *toP < 2) { \ | ||||
|          *fromP = from; \ | ||||
| -        return; \
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED; \
 | ||||
|        } \ | ||||
|        *(*toP)++ = ((lo >> 6) | (hi << 2) |  UTF8_cval2); \ | ||||
|        *(*toP)++ = ((lo & 0x3f) | 0x80); \ | ||||
| @@ -570,7 +604,7 @@ E ## toUtf8(const ENCODING *enc, \
 | ||||
|      default: \ | ||||
|        if (toLim -  *toP < 3)  { \ | ||||
|          *fromP = from; \ | ||||
| -        return; \
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED; \
 | ||||
|        } \ | ||||
|        /* 16 bits divided 4, 6, 6 amongst 3 bytes */ \ | ||||
|        *(*toP)++ = ((hi >> 4) | UTF8_cval3); \ | ||||
| @@ -580,7 +614,11 @@ E ## toUtf8(const ENCODING *enc, \
 | ||||
|      case 0xD8: case 0xD9: case 0xDA: case 0xDB: \ | ||||
|        if (toLim -  *toP < 4) { \ | ||||
|          *fromP = from; \ | ||||
| -        return; \
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED; \
 | ||||
| +      } \
 | ||||
| +      if (fromLim - from < 4) { \
 | ||||
| +        *fromP = from; \
 | ||||
| +        return XML_CONVERT_INPUT_INCOMPLETE; \
 | ||||
|        } \ | ||||
|        plane = (((hi & 0x3) << 2) | ((lo >> 6) & 0x3)) + 1; \ | ||||
|        *(*toP)++ = ((plane >> 2) | UTF8_cval4); \ | ||||
| @@ -596,20 +634,32 @@ E ## toUtf8(const ENCODING *enc, \
 | ||||
|      } \ | ||||
|    } \ | ||||
|    *fromP = from; \ | ||||
| +  if (from < fromLim) \
 | ||||
| +    return XML_CONVERT_INPUT_INCOMPLETE; \
 | ||||
| +  else \
 | ||||
| +    return XML_CONVERT_COMPLETED; \
 | ||||
|  } | ||||
|   | ||||
|  #define DEFINE_UTF16_TO_UTF16(E) \ | ||||
| -static void  PTRCALL \
 | ||||
| +static enum XML_Convert_Result  PTRCALL \
 | ||||
|  E ## toUtf16(const ENCODING *enc, \ | ||||
|               const char **fromP, const char *fromLim, \ | ||||
|               unsigned short **toP, const unsigned short *toLim) \ | ||||
|  { \ | ||||
| +  enum XML_Convert_Result res = XML_CONVERT_COMPLETED; \
 | ||||
| +  fromLim = *fromP + (((fromLim - *fromP) >> 1) << 1);  /* shrink to even */ \
 | ||||
|    /* Avoid copying first half only of surrogate */ \ | ||||
|    if (fromLim - *fromP > ((toLim - *toP) << 1) \ | ||||
| -      && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) \
 | ||||
| +      && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) { \
 | ||||
|      fromLim -= 2; \ | ||||
| -  for (; *fromP != fromLim && *toP != toLim; *fromP += 2) \
 | ||||
| +    res = XML_CONVERT_INPUT_INCOMPLETE; \
 | ||||
| +  } \
 | ||||
| +  for (; *fromP < fromLim && *toP < toLim; *fromP += 2) \
 | ||||
|      *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \ | ||||
| +  if ((*toP == toLim) && (*fromP < fromLim)) \
 | ||||
| +    return XML_CONVERT_OUTPUT_EXHAUSTED; \
 | ||||
| +  else \
 | ||||
| +    return res; \
 | ||||
|  } | ||||
|   | ||||
|  #define SET2(ptr, ch) \ | ||||
| @@ -1288,7 +1338,7 @@ unknown_isInvalid(const ENCODING *enc, const char *p)
 | ||||
|    return (c & ~0xFFFF) || checkCharRefNumber(c) < 0; | ||||
|  } | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  unknown_toUtf8(const ENCODING *enc, | ||||
|                 const char **fromP, const char *fromLim, | ||||
|                 char **toP, const char *toLim) | ||||
| @@ -1299,21 +1349,21 @@ unknown_toUtf8(const ENCODING *enc,
 | ||||
|      const char *utf8; | ||||
|      int n; | ||||
|      if (*fromP == fromLim) | ||||
| -      break;
 | ||||
| +      return XML_CONVERT_COMPLETED;
 | ||||
|      utf8 = uenc->utf8[(unsigned char)**fromP]; | ||||
|      n = *utf8++; | ||||
|      if (n == 0) { | ||||
|        int c = uenc->convert(uenc->userData, *fromP); | ||||
|        n = XmlUtf8Encode(c, buf); | ||||
|        if (n > toLim - *toP) | ||||
| -        break;
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
|        utf8 = buf; | ||||
|        *fromP += (AS_NORMAL_ENCODING(enc)->type[(unsigned char)**fromP] | ||||
|                   - (BT_LEAD2 - 2)); | ||||
|      } | ||||
|      else { | ||||
|        if (n > toLim - *toP) | ||||
| -        break;
 | ||||
| +        return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
|        (*fromP)++; | ||||
|      } | ||||
|      do { | ||||
| @@ -1322,13 +1372,13 @@ unknown_toUtf8(const ENCODING *enc,
 | ||||
|    } | ||||
|  } | ||||
|   | ||||
| -static void PTRCALL
 | ||||
| +static enum XML_Convert_Result PTRCALL
 | ||||
|  unknown_toUtf16(const ENCODING *enc, | ||||
|                  const char **fromP, const char *fromLim, | ||||
|                  unsigned short **toP, const unsigned short *toLim) | ||||
|  { | ||||
|    const struct unknown_encoding *uenc = AS_UNKNOWN_ENCODING(enc); | ||||
| -  while (*fromP != fromLim && *toP != toLim) {
 | ||||
| +  while (*fromP < fromLim && *toP < toLim) {
 | ||||
|      unsigned short c = uenc->utf16[(unsigned char)**fromP]; | ||||
|      if (c == 0) { | ||||
|        c = (unsigned short) | ||||
| @@ -1340,6 +1390,11 @@ unknown_toUtf16(const ENCODING *enc,
 | ||||
|        (*fromP)++; | ||||
|      *(*toP)++ = c; | ||||
|    } | ||||
| +
 | ||||
| +  if ((*toP == toLim) && (*fromP < fromLim))
 | ||||
| +    return XML_CONVERT_OUTPUT_EXHAUSTED;
 | ||||
| +  else
 | ||||
| +    return XML_CONVERT_COMPLETED;
 | ||||
|  } | ||||
|   | ||||
|  ENCODING * | ||||
| @@ -1503,7 +1558,7 @@ initScan(const ENCODING * const *encodingTable,
 | ||||
|  { | ||||
|    const ENCODING **encPtr; | ||||
|   | ||||
| -  if (ptr == end)
 | ||||
| +  if (ptr >= end)
 | ||||
|      return XML_TOK_NONE; | ||||
|    encPtr = enc->encPtr; | ||||
|    if (ptr + 1 == end) { | ||||
| diff --git a/lib/xmltok.h b/lib/xmltok.h
 | ||||
| index ca867aa..752007e 100644
 | ||||
| --- a/lib/xmltok.h
 | ||||
| +++ b/lib/xmltok.h
 | ||||
| @@ -130,6 +130,12 @@ typedef int (PTRCALL *SCANNER)(const ENCODING *,
 | ||||
|                                 const char *, | ||||
|                                 const char **); | ||||
|   | ||||
| +enum XML_Convert_Result {
 | ||||
| +  XML_CONVERT_COMPLETED = 0,
 | ||||
| +  XML_CONVERT_INPUT_INCOMPLETE = 1,
 | ||||
| +  XML_CONVERT_OUTPUT_EXHAUSTED = 2  /* and therefore potentially input remaining as well */
 | ||||
| +};
 | ||||
| +
 | ||||
|  struct encoding { | ||||
|    SCANNER scanners[XML_N_STATES]; | ||||
|    SCANNER literalScanners[XML_N_LITERAL_TYPES]; | ||||
| @@ -158,12 +164,12 @@ struct encoding {
 | ||||
|                              const char *ptr, | ||||
|                              const char *end, | ||||
|                              const char **badPtr); | ||||
| -  void (PTRCALL *utf8Convert)(const ENCODING *enc,
 | ||||
| +  enum XML_Convert_Result (PTRCALL *utf8Convert)(const ENCODING *enc,
 | ||||
|                                const char **fromP, | ||||
|                                const char *fromLim, | ||||
|                                char **toP, | ||||
|                                const char *toLim); | ||||
| -  void (PTRCALL *utf16Convert)(const ENCODING *enc,
 | ||||
| +  enum XML_Convert_Result (PTRCALL *utf16Convert)(const ENCODING *enc,
 | ||||
|                                 const char **fromP, | ||||
|                                 const char *fromLim, | ||||
|                                 unsigned short **toP, | ||||
| diff --git a/lib/xmltok_impl.c b/lib/xmltok_impl.c
 | ||||
| index 9c2895b..6c5a3ba 100644
 | ||||
| --- a/lib/xmltok_impl.c
 | ||||
| +++ b/lib/xmltok_impl.c
 | ||||
| @@ -93,13 +93,13 @@ static int PTRCALL
 | ||||
|  PREFIX(scanComment)(const ENCODING *enc, const char *ptr, | ||||
|                      const char *end, const char **nextTokPtr) | ||||
|  { | ||||
| -  if (ptr != end) {
 | ||||
| +  if (ptr < end) {
 | ||||
|      if (!CHAR_MATCHES(enc, ptr, ASCII_MINUS)) { | ||||
|        *nextTokPtr = ptr; | ||||
|        return XML_TOK_INVALID; | ||||
|      } | ||||
|      ptr += MINBPC(enc); | ||||
| -    while (ptr != end) {
 | ||||
| +    while (ptr < end) {
 | ||||
|        switch (BYTE_TYPE(enc, ptr)) { | ||||
|        INVALID_CASES(ptr, nextTokPtr) | ||||
|        case BT_MINUS: | ||||
| @@ -147,7 +147,7 @@ PREFIX(scanDecl)(const ENCODING *enc, const char *ptr,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      case BT_PERCNT: | ||||
|        if (ptr + MINBPC(enc) == end) | ||||
| @@ -233,7 +233,7 @@ PREFIX(scanPi)(const ENCODING *enc, const char *ptr,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|      case BT_S: case BT_CR: case BT_LF: | ||||
| @@ -242,7 +242,7 @@ PREFIX(scanPi)(const ENCODING *enc, const char *ptr,
 | ||||
|          return XML_TOK_INVALID; | ||||
|        } | ||||
|        ptr += MINBPC(enc); | ||||
| -      while (ptr != end) {
 | ||||
| +      while (ptr < end) {
 | ||||
|          switch (BYTE_TYPE(enc, ptr)) { | ||||
|          INVALID_CASES(ptr, nextTokPtr) | ||||
|          case BT_QUEST: | ||||
| @@ -305,7 +305,7 @@ static int PTRCALL
 | ||||
|  PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr, | ||||
|                          const char *end, const char **nextTokPtr) | ||||
|  { | ||||
| -  if (ptr == end)
 | ||||
| +  if (ptr >= end)
 | ||||
|      return XML_TOK_NONE; | ||||
|    if (MINBPC(enc) > 1) { | ||||
|      size_t n = end - ptr; | ||||
| @@ -348,7 +348,7 @@ PREFIX(cdataSectionTok)(const ENCODING *enc, const char *ptr,
 | ||||
|      ptr += MINBPC(enc); | ||||
|      break; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|  #define LEAD_CASE(n) \ | ||||
|      case BT_LEAD ## n: \ | ||||
| @@ -391,11 +391,11 @@ PREFIX(scanEndTag)(const ENCODING *enc, const char *ptr,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|      case BT_S: case BT_CR: case BT_LF: | ||||
| -      for (ptr += MINBPC(enc); ptr != end; ptr += MINBPC(enc)) {
 | ||||
| +      for (ptr += MINBPC(enc); ptr < end; ptr += MINBPC(enc)) {
 | ||||
|          switch (BYTE_TYPE(enc, ptr)) { | ||||
|          case BT_S: case BT_CR: case BT_LF: | ||||
|            break; | ||||
| @@ -432,7 +432,7 @@ static int PTRCALL
 | ||||
|  PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr, | ||||
|                         const char *end, const char **nextTokPtr) | ||||
|  { | ||||
| -  if (ptr != end) {
 | ||||
| +  if (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      case BT_DIGIT: | ||||
|      case BT_HEX: | ||||
| @@ -441,7 +441,7 @@ PREFIX(scanHexCharRef)(const ENCODING *enc, const char *ptr,
 | ||||
|        *nextTokPtr = ptr; | ||||
|        return XML_TOK_INVALID; | ||||
|      } | ||||
| -    for (ptr += MINBPC(enc); ptr != end; ptr += MINBPC(enc)) {
 | ||||
| +    for (ptr += MINBPC(enc); ptr < end; ptr += MINBPC(enc)) {
 | ||||
|        switch (BYTE_TYPE(enc, ptr)) { | ||||
|        case BT_DIGIT: | ||||
|        case BT_HEX: | ||||
| @@ -464,7 +464,7 @@ static int PTRCALL
 | ||||
|  PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr, | ||||
|                      const char *end, const char **nextTokPtr) | ||||
|  { | ||||
| -  if (ptr != end) {
 | ||||
| +  if (ptr < end) {
 | ||||
|      if (CHAR_MATCHES(enc, ptr, ASCII_x)) | ||||
|        return PREFIX(scanHexCharRef)(enc, ptr + MINBPC(enc), end, nextTokPtr); | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
| @@ -474,7 +474,7 @@ PREFIX(scanCharRef)(const ENCODING *enc, const char *ptr,
 | ||||
|        *nextTokPtr = ptr; | ||||
|        return XML_TOK_INVALID; | ||||
|      } | ||||
| -    for (ptr += MINBPC(enc); ptr != end; ptr += MINBPC(enc)) {
 | ||||
| +    for (ptr += MINBPC(enc); ptr < end; ptr += MINBPC(enc)) {
 | ||||
|        switch (BYTE_TYPE(enc, ptr)) { | ||||
|        case BT_DIGIT: | ||||
|          break; | ||||
| @@ -506,7 +506,7 @@ PREFIX(scanRef)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|      case BT_SEMI: | ||||
| @@ -529,7 +529,7 @@ PREFIX(scanAtts)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|  #ifdef XML_NS | ||||
|    int hadColon = 0; | ||||
|  #endif | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|  #ifdef XML_NS | ||||
| @@ -716,7 +716,7 @@ PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|    hadColon = 0; | ||||
|  #endif | ||||
|    /* we have a start-tag */ | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|  #ifdef XML_NS | ||||
| @@ -740,7 +740,7 @@ PREFIX(scanLt)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|      case BT_S: case BT_CR: case BT_LF: | ||||
|        { | ||||
|          ptr += MINBPC(enc); | ||||
| -        while (ptr != end) {
 | ||||
| +        while (ptr < end) {
 | ||||
|            switch (BYTE_TYPE(enc, ptr)) { | ||||
|            CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) | ||||
|            case BT_GT: | ||||
| @@ -785,7 +785,7 @@ static int PTRCALL
 | ||||
|  PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end, | ||||
|                     const char **nextTokPtr) | ||||
|  { | ||||
| -  if (ptr == end)
 | ||||
| +  if (ptr >= end)
 | ||||
|      return XML_TOK_NONE; | ||||
|    if (MINBPC(enc) > 1) { | ||||
|      size_t n = end - ptr; | ||||
| @@ -832,7 +832,7 @@ PREFIX(contentTok)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|      ptr += MINBPC(enc); | ||||
|      break; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|  #define LEAD_CASE(n) \ | ||||
|      case BT_LEAD ## n: \ | ||||
| @@ -895,7 +895,7 @@ PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|      case BT_SEMI: | ||||
| @@ -921,7 +921,7 @@ PREFIX(scanPoundName)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|      case BT_CR: case BT_LF: case BT_S: | ||||
| @@ -941,7 +941,7 @@ PREFIX(scanLit)(int open, const ENCODING *enc,
 | ||||
|                  const char *ptr, const char *end, | ||||
|                  const char **nextTokPtr) | ||||
|  { | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      int t = BYTE_TYPE(enc, ptr); | ||||
|      switch (t) { | ||||
|      INVALID_CASES(ptr, nextTokPtr) | ||||
| @@ -973,7 +973,7 @@ PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|                    const char **nextTokPtr) | ||||
|  { | ||||
|    int tok; | ||||
| -  if (ptr == end)
 | ||||
| +  if (ptr >= end)
 | ||||
|      return XML_TOK_NONE; | ||||
|    if (MINBPC(enc) > 1) { | ||||
|      size_t n = end - ptr; | ||||
| @@ -1141,7 +1141,7 @@ PREFIX(prologTok)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|      *nextTokPtr = ptr; | ||||
|      return XML_TOK_INVALID; | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      CHECK_NAME_CASES(enc, ptr, end, nextTokPtr) | ||||
|      case BT_GT: case BT_RPAR: case BT_COMMA: | ||||
| @@ -1204,10 +1204,10 @@ PREFIX(attributeValueTok)(const ENCODING *enc, const char *ptr,
 | ||||
|                            const char *end, const char **nextTokPtr) | ||||
|  { | ||||
|    const char *start; | ||||
| -  if (ptr == end)
 | ||||
| +  if (ptr >= end)
 | ||||
|      return XML_TOK_NONE; | ||||
|    start = ptr; | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|  #define LEAD_CASE(n) \ | ||||
|      case BT_LEAD ## n: ptr += n; break; | ||||
| @@ -1262,10 +1262,10 @@ PREFIX(entityValueTok)(const ENCODING *enc, const char *ptr,
 | ||||
|                         const char *end, const char **nextTokPtr) | ||||
|  { | ||||
|    const char *start; | ||||
| -  if (ptr == end)
 | ||||
| +  if (ptr >= end)
 | ||||
|      return XML_TOK_NONE; | ||||
|    start = ptr; | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|  #define LEAD_CASE(n) \ | ||||
|      case BT_LEAD ## n: ptr += n; break; | ||||
| @@ -1326,7 +1326,7 @@ PREFIX(ignoreSectionTok)(const ENCODING *enc, const char *ptr,
 | ||||
|        end = ptr + n; | ||||
|      } | ||||
|    } | ||||
| -  while (ptr != end) {
 | ||||
| +  while (ptr < end) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      INVALID_CASES(ptr, nextTokPtr) | ||||
|      case BT_LT: | ||||
| @@ -1373,7 +1373,7 @@ PREFIX(isPublicId)(const ENCODING *enc, const char *ptr, const char *end,
 | ||||
|  { | ||||
|    ptr += MINBPC(enc); | ||||
|    end -= MINBPC(enc); | ||||
| -  for (; ptr != end; ptr += MINBPC(enc)) {
 | ||||
| +  for (; ptr < end; ptr += MINBPC(enc)) {
 | ||||
|      switch (BYTE_TYPE(enc, ptr)) { | ||||
|      case BT_DIGIT: | ||||
|      case BT_HEX: | ||||
| @@ -1760,7 +1760,7 @@ PREFIX(updatePosition)(const ENCODING *enc,
 | ||||
|      case BT_CR: | ||||
|        pos->lineNumber++; | ||||
|        ptr += MINBPC(enc); | ||||
| -      if (ptr != end && BYTE_TYPE(enc, ptr) == BT_LF)
 | ||||
| +      if (ptr < end && BYTE_TYPE(enc, ptr) == BT_LF)
 | ||||
|          ptr += MINBPC(enc); | ||||
|        pos->columnNumber = (XML_Size)-1; | ||||
|        break; | ||||
| -- 
 | ||||
| 2.8.2 | ||||
| 
 | ||||
							
								
								
									
										36
									
								
								gnu/packages/patches/gd-CVE-2016-3074.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								gnu/packages/patches/gd-CVE-2016-3074.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| Adapted from upstream commit 2bb97f407c1145c850416a3bfbcc8cf124e68a19 | ||||
| (gd2: handle corrupt images better (CVE-2016-3074)). | ||||
| 
 | ||||
| This patch omits the upstream changes to '.gitignore', and the test | ||||
| added in files 'tests/Makefile.am', 'tests/gd2/gd2_read_corrupt.c', and | ||||
| 'tests/gd2/invalid_neg_size.gd2'. | ||||
| 
 | ||||
| We omit the test because its input data, | ||||
| 'tests/gd2/invalid_neg_size.gd2', is provided as a binary Git diff, | ||||
| which is not supported by `patch`. | ||||
| 
 | ||||
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3074 | ||||
| https://github.com/libgd/libgd/commit/2bb97f407c1145c850416a3bfbcc8cf124e68a19 | ||||
| ---
 | ||||
|  .gitignore                     |   1 + | ||||
|  src/gd_gd2.c                   |   2 ++ | ||||
|  tests/Makefile.am              |   3 ++- | ||||
|  tests/gd2/gd2_read_corrupt.c   |  25 +++++++++++++++++++++++++ | ||||
|  tests/gd2/invalid_neg_size.gd2 | Bin 0 -> 1676 bytes | ||||
|  5 files changed, 30 insertions(+), 1 deletion(-) | ||||
|  create mode 100644 tests/gd2/gd2_read_corrupt.c | ||||
|  create mode 100644 tests/gd2/invalid_neg_size.gd2 | ||||
| 
 | ||||
| diff --git a/src/gd_gd2.c b/src/gd_gd2.c
 | ||||
| index 6f28461..a50b33d 100644
 | ||||
| --- a/src/gd_gd2.c
 | ||||
| +++ b/src/gd_gd2.c
 | ||||
| @@ -165,6 +165,8 @@ _gd2GetHeader (gdIOCtxPtr in, int *sx, int *sy,
 | ||||
|  			if (gdGetInt (&cidx[i].size, in) != 1) { | ||||
|  				goto fail2; | ||||
|  			}; | ||||
| +			if (cidx[i].offset < 0 || cidx[i].size < 0)
 | ||||
| +				goto fail2;
 | ||||
|  		}; | ||||
|  		*chunkIdx = cidx; | ||||
|  	}; | ||||
							
								
								
									
										52
									
								
								gnu/packages/patches/gnome-tweak-tool-search-paths.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								gnu/packages/patches/gnome-tweak-tool-search-paths.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | |||
| Gnome-tweak-tool does not look at GSETTINGS_SCHEMA_PATH or XDG_DATA_DIRS, it | ||||
| assumes that schemas are installed in one global directory | ||||
| (GSETTINGS_SCHEMA_DIR/gsettingsschemadir). | ||||
| 
 | ||||
| Guix/GuixSD uses a different directory for every gir package and has | ||||
| packages pick-up files using XDG_DATA_DIRS. | ||||
| 
 | ||||
| Upstream ticket: https://bugzilla.gnome.org/show_bug.cgi?id=764537 | ||||
| janneke@gnu.org | ||||
| 
 | ||||
| --- gnome-tweak-tool-3.18.1.orig/gtweak/gsettings.py	2015-04-08 15:21:32.000000000 +0200
 | ||||
| +++ gnome-tweak-tool-3.18.1/gtweak/gsettings.py	2016-04-03 11:26:38.658482704 +0200
 | ||||
| @@ -16,7 +16,8 @@
 | ||||
|  # along with gnome-tweak-tool.  If not, see <http://www.gnu.org/licenses/>. | ||||
|   | ||||
|  import logging | ||||
| -import os.path
 | ||||
| +import os
 | ||||
| +import sys
 | ||||
|  import xml.dom.minidom | ||||
|  import gettext | ||||
|   | ||||
| @@ -31,6 +32,13 @@
 | ||||
|  class GSettingsMissingError(Exception): | ||||
|      pass | ||||
|   | ||||
| +def file_from_path(path, file_name):
 | ||||
| +    for dir in path:
 | ||||
| +        f = os.path.join(dir, file_name)
 | ||||
| +        if os.path.exists(f):
 | ||||
| +            return f
 | ||||
| +    return None
 | ||||
| +
 | ||||
|  class _GSettingsSchema: | ||||
|      def __init__(self, schema_name, schema_dir=None, schema_filename=None, **options): | ||||
|          if not schema_dir: | ||||
| @@ -38,9 +46,14 @@
 | ||||
|          if not schema_filename: | ||||
|              schema_filename = schema_name + ".gschema.xml" | ||||
|   | ||||
| +        schema_prefix = os.path.join('glib-2.0', 'schemas')
 | ||||
|          schema_path = os.path.join(schema_dir, schema_filename) | ||||
|          if not os.path.exists(schema_path): | ||||
| -            logging.critical("Could not find schema %s" % schema_path)
 | ||||
| +            schema_path = file_from_path(os.environ.get ('GSETTINGS_SCHEMA_PATH', '').split(os.path.pathsep), schema_filename)
 | ||||
| +        if not (schema_path and os.path.exists(schema_path)):
 | ||||
| +            schema_path = file_from_path(os.environ.get ('XDG_DATA_DIRS', '').split(os.path.pathsep), os.path.join(schema_prefix, schema_filename))
 | ||||
| +        if not (schema_path and os.path.exists(schema_path)):
 | ||||
| +            logging.critical("Could not find schema %s" % schema_filename)
 | ||||
|              assert(False) | ||||
|   | ||||
|          self._schema_name = schema_name | ||||
|  | @ -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)))) | ||||
|  |  | |||
							
								
								
									
										50
									
								
								gnu/packages/shellutils.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								gnu/packages/shellutils.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu packages shellutils) | ||||
|   #:use-module (guix licenses) | ||||
|   #:use-module (guix packages) | ||||
|   #:use-module (guix download) | ||||
|   #:use-module (guix utils) | ||||
|   #:use-module (guix build-system gnu)) | ||||
| 
 | ||||
| (define-public envstore | ||||
|   (package | ||||
|     (name "envstore") | ||||
|     (version "2.1") | ||||
|     (source | ||||
|      (origin | ||||
|        (method url-fetch) | ||||
|        (uri (string-append "https://finalrewind.org/projects/" | ||||
|                            name "/" name "-" version ".tar.bz2")) | ||||
|        (sha256 | ||||
|         (base32 "1x97lxad80m5blhdfanl5v2qzjwcgbij2i23701bn8mpyxsrqszi")))) | ||||
|     (build-system gnu-build-system) | ||||
|     (arguments | ||||
|      `(#:test-target "test" | ||||
|        #:make-flags (list "CC=gcc" | ||||
|                           (string-append "PREFIX=" (assoc-ref %outputs "out"))) | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (delete 'configure)))) | ||||
|     (home-page "https://finalrewind.org/projects/envstore/") | ||||
|     (synopsis "Save and restore environment variables") | ||||
|     (description "Envstore is a program for sharing environment variables | ||||
| between various shells or commands.") | ||||
|     (license | ||||
|      (non-copyleft "http://www.wtfpl.net/txt/copying/")))) | ||||
|  | @ -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)) | ||||
|               (method url-fetch) | ||||
|               (uri (string-append | ||||
|                      "https://pypi.python.org/packages/" | ||||
|                      "af/33/703e5ec3d7efde7c4d2fcea9cdf88953a33d4e72aafd5b0a330173a7b395/" | ||||
|                      "acme-" version ".tar.gz")) | ||||
|       (sha256 | ||||
|         (base32 | ||||
|          "1g8scfkhs3l06588h73py81xb1gvkkdzaxanl21whcvdclycc186")))) | ||||
|          "1ipck25c6nr0x54w2cc8ziwjmyyrpyz6pc1y8xc9nqmxvw4n0kpc")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:phases | ||||
|  | @ -407,16 +410,19 @@ security, and applying best practice development processes.") | |||
| (define-public python2-acme | ||||
|   (package-with-python2 python-acme)) | ||||
| 
 | ||||
| (define-public letsencrypt | ||||
| (define-public certbot | ||||
|   (package | ||||
|     (name "letsencrypt") | ||||
|     (version "0.5.0") | ||||
|     (name "certbot") | ||||
|     (version "0.6.0") | ||||
|     (source (origin | ||||
|               (method url-fetch) | ||||
|               (uri (pypi-uri "letsencrypt" version)) | ||||
|               (uri (string-append | ||||
|                      "https://pypi.python.org/packages/" | ||||
|                      "fc/eb/7594bf16d89909a9d52c46edbeae669d4b2ee6e12453bd97e674d0371920/" | ||||
|                      name "-" version ".tar.gz")) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0nnijs26kkw07yylszc97p3jw09y98j54xihjp0rprrbp1q2p2p3")))) | ||||
|                 "0ba95cf6shmyhi4vzvk64vbkrmr8qvkn32k3xwb2iv7ybbfbgc40")))) | ||||
|     (build-system python-build-system) | ||||
|     (arguments | ||||
|      `(#:python ,python-2 | ||||
|  | @ -428,14 +434,14 @@ security, and applying best practice development processes.") | |||
|                     (man1 (string-append out "/share/man/man1")) | ||||
|                     (man7 (string-append out "/share/man/man7")) | ||||
|                     (info (string-append out "/info"))) | ||||
|                (substitute* "docs/man/letsencrypt.rst" | ||||
|                  (("letsencrypt --help all") | ||||
|                   (string-append out "/bin/letsencrypt" " --help all"))) | ||||
|                (substitute* "docs/man/certbot.rst" | ||||
|                  (("certbot --help all") | ||||
|                   (string-append out "/bin/certbot" " --help all"))) | ||||
|                (and | ||||
|                  (zero? (system* "make" "-C" "docs" "man" "info")) | ||||
|                  (install-file "docs/_build/texinfo/LetsEncrypt.info" info) | ||||
|                  (install-file "docs/_build/man/letsencrypt.1" man1) | ||||
|                  (install-file "docs/_build/man/letsencrypt.7" man7) | ||||
|                  (install-file "docs/_build/texinfo/Certbot.info" info) | ||||
|                  (install-file "docs/_build/man/certbot.1" man1) | ||||
|                  (install-file "docs/_build/man/certbot.7" man7) | ||||
|                  #t))))))) | ||||
|     ;; TODO: Add optional inputs for testing. | ||||
|     (native-inputs | ||||
|  | @ -465,9 +471,13 @@ security, and applying best practice development processes.") | |||
|     (description "Tool to automatically receive and install X.509 certificates | ||||
| to enable TLS on servers.  The client will interoperate with the 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)))) | ||||
| 
 | ||||
|   (define input->derivation-input | ||||
|     (match-lambda | ||||
|       (((? derivation? drv)) | ||||
|        (make-derivation-input (derivation-file-name drv) '("out"))) | ||||
|       (((? derivation? drv) sub-drvs ...) | ||||
|        (make-derivation-input (derivation-file-name drv) sub-drvs)) | ||||
|       (((? direct-store-path? input)) | ||||
|        (make-derivation-input input '("out"))) | ||||
|       (((? direct-store-path? input) sub-drvs ...) | ||||
|        (make-derivation-input input sub-drvs)) | ||||
|       ((input . _) | ||||
|        (let ((path (add-to-store store (basename input) | ||||
|                                  #t "sha256" input))) | ||||
|          (make-derivation-input path '()))))) | ||||
| 
 | ||||
|   ;; Note: lists are sorted alphabetically, to conform with the behavior of | ||||
|   ;; C++ `std::map' in Nix itself. | ||||
| 
 | ||||
|   (let* ((outputs    (map (lambda (name) | ||||
|                             ;; Return outputs with an empty path. | ||||
|                             (cons name | ||||
|                                   (make-derivation-output "" hash-algo | ||||
|                                                           hash recursive?))) | ||||
|                           outputs)) | ||||
|          (inputs     (map (match-lambda | ||||
|                            (((? derivation? drv)) | ||||
|                             (make-derivation-input (derivation-file-name drv) | ||||
|                                                    '("out"))) | ||||
|                            (((? derivation? drv) sub-drvs ...) | ||||
|                             (make-derivation-input (derivation-file-name drv) | ||||
|                                                    sub-drvs)) | ||||
|                            (((? direct-store-path? input)) | ||||
|                             (make-derivation-input input '("out"))) | ||||
|                            (((? direct-store-path? input) sub-drvs ...) | ||||
|                             (make-derivation-input input sub-drvs)) | ||||
|                            ((input . _) | ||||
|                             (let ((path (add-to-store store | ||||
|                                                       (basename input) | ||||
|                                                       #t "sha256" input))) | ||||
|                               (make-derivation-input path '())))) | ||||
|                           (delete-duplicates inputs))) | ||||
|          (env-vars   (env-vars-with-empty-outputs (user+system-env-vars))) | ||||
|                           (sort outputs string<?))) | ||||
|          (inputs     (sort (coalesce-duplicate-inputs | ||||
|                             (map input->derivation-input | ||||
|                                  (delete-duplicates inputs))) | ||||
|                            derivation-input<?)) | ||||
|          (env-vars   (sort (env-vars-with-empty-outputs | ||||
|                             (user+system-env-vars)) | ||||
|                            (lambda (e1 e2) | ||||
|                              (string<? (car e1) (car e2))))) | ||||
|          (drv-masked (make-derivation outputs | ||||
|                                       (filter (compose derivation-path? | ||||
|                                                        derivation-input-path) | ||||
|  | @ -858,8 +860,7 @@ output should not be used." | |||
| 
 | ||||
|     (let ((file (add-text-to-store store (string-append name ".drv") | ||||
|                                    (derivation->string drv) | ||||
|                                    (map derivation-input-path | ||||
|                                         inputs)))) | ||||
|                                    (map derivation-input-path inputs)))) | ||||
|       (set-file-name drv file)))) | ||||
| 
 | ||||
| (define* (map-derivation store drv mapping | ||||
|  |  | |||
|  | @ -202,7 +202,8 @@ | |||
|       (debian | ||||
|        "http://ftp.de.debian.org/debian/" | ||||
|        "http://ftp.fr.debian.org/debian/" | ||||
|        "http://ftp.debian.org/debian/")))) | ||||
|        "http://ftp.debian.org/debian/" | ||||
|        "http://archive.debian.org/debian/")))) | ||||
| 
 | ||||
| (define %mirror-file | ||||
|   ;; Copy of the list of mirrors to a file.  This allows us to keep a single | ||||
|  | @ -210,6 +211,22 @@ | |||
|   ;; 'object->string'. | ||||
|   (plain-file "mirrors" (object->string %mirrors))) | ||||
| 
 | ||||
| (define %content-addressed-mirrors | ||||
|   ;; List of content-addressed mirrors.  Each mirror is represented as a | ||||
|   ;; procedure that takes an algorithm (symbol) and a hash (bytevector), and | ||||
|   ;; returns a URL or #f. | ||||
|   ;; TODO: Add more. | ||||
|   '(list (lambda (algo hash) | ||||
|            ;; 'tarballs.nixos.org' supports several algorithms. | ||||
|            (string-append "http://tarballs.nixos.org/" | ||||
|                           (symbol->string algo) "/" | ||||
|                           (bytevector->nix-base32-string hash))))) | ||||
| 
 | ||||
| (define %content-addressed-mirror-file | ||||
|   ;; Content-addressed mirrors stored in a file. | ||||
|   (plain-file "content-addressed-mirrors" | ||||
|               (object->string %content-addressed-mirrors))) | ||||
| 
 | ||||
| (define (gnutls-package) | ||||
|   "Return the default GnuTLS package." | ||||
|   (let ((module (resolve-interface '(gnu packages tls)))) | ||||
|  | @ -258,12 +275,21 @@ in the store." | |||
|                               %load-path))) | ||||
|               #~#t) | ||||
| 
 | ||||
|         (use-modules (guix build download)) | ||||
|         (use-modules (guix build download) | ||||
|                      (guix base32)) | ||||
| 
 | ||||
|         (url-fetch (call-with-input-string (getenv "guix download url") | ||||
|                      read) | ||||
|                    #$output | ||||
|                    #:mirrors (call-with-input-file #$%mirror-file read)))) | ||||
|         (let ((value-from-environment (lambda (variable) | ||||
|                                         (call-with-input-string | ||||
|                                             (getenv variable) | ||||
|                                           read)))) | ||||
|           (url-fetch (value-from-environment "guix download url") | ||||
|                      #$output | ||||
|                      #:mirrors (call-with-input-file #$%mirror-file read) | ||||
| 
 | ||||
|                      ;; Content-addressed mirrors. | ||||
|                      #:hashes (value-from-environment "guix download hashes") | ||||
|                      #:content-addressed-mirrors | ||||
|                      (primitive-load #$%content-addressed-mirror-file))))) | ||||
| 
 | ||||
|   (let ((uri (and (string? url) (string->uri url)))) | ||||
|     (if (or (and (string? url) (not uri)) | ||||
|  | @ -278,14 +304,17 @@ in the store." | |||
|                             #:hash hash | ||||
|                             #:modules '((guix build download) | ||||
|                                         (guix build utils) | ||||
|                                         (guix ftp-client)) | ||||
|                                         (guix ftp-client) | ||||
|                                         (guix base32)) | ||||
| 
 | ||||
|                             ;; Use environment variables and a fixed script | ||||
|                             ;; name so there's only one script in store for | ||||
|                             ;; all the downloads. | ||||
|                             #:script-name "download" | ||||
|                             #:env-vars | ||||
|                             `(("guix download url" . ,(object->string url))) | ||||
|                             `(("guix download url" . ,(object->string url)) | ||||
|                               ("guix download hashes" | ||||
|                                . ,(object->string `((,hash-algo . ,hash))))) | ||||
| 
 | ||||
|                             ;; Honor the user's proxy settings. | ||||
|                             #:leaked-env-vars '("http_proxy" "https_proxy") | ||||
|  |  | |||
|  | @ -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,25 +79,29 @@ | |||
|     (find (cute string-suffix? (string-append archive-type ".sig") <>) | ||||
|           (upstream-source-signature-urls release))) | ||||
| 
 | ||||
|   (let ((tarball (with-store store | ||||
|                    (download-tarball store url sig-url | ||||
|                                      #:key-download key-download)))) | ||||
|     `(package | ||||
|        (name ,name) | ||||
|        (version ,(upstream-source-version release)) | ||||
|        (source (origin | ||||
|                  (method url-fetch) | ||||
|                  (uri (string-append ,url-base version | ||||
|                                      ,(string-append ".tar." archive-type))) | ||||
|                  (sha256 | ||||
|                   (base32 | ||||
|                    ,(bytevector->nix-base32-string (file-sha256 tarball)))))) | ||||
|        (build-system gnu-build-system) | ||||
|        (synopsis ,(gnu-package-doc-summary package)) | ||||
|        (description ,(gnu-package-doc-description package)) | ||||
|        (home-page ,(match (gnu-package-doc-urls package) | ||||
|                      ((head . tail) (qualified-url head)))) | ||||
|        (license find-by-yourself!)))) | ||||
|   (with-store store | ||||
|     (match (download-tarball store url sig-url | ||||
|                              #:key-download key-download) | ||||
|       ((? string? tarball) | ||||
|        `(package | ||||
|           (name ,name) | ||||
|           (version ,(upstream-source-version release)) | ||||
|           (source (origin | ||||
|                     (method url-fetch) | ||||
|                     (uri (string-append ,url-base version | ||||
|                                         ,(string-append ".tar." archive-type))) | ||||
|                     (sha256 | ||||
|                      (base32 | ||||
|                       ,(bytevector->nix-base32-string | ||||
|                         (file-sha256 tarball)))))) | ||||
|           (build-system gnu-build-system) | ||||
|           (synopsis ,(gnu-package-doc-summary package)) | ||||
|           (description ,(gnu-package-doc-description package)) | ||||
|           (home-page ,(match (gnu-package-doc-urls package) | ||||
|                         ((head . tail) (qualified-url head)))) | ||||
|           (license find-by-yourself!))) | ||||
|       (#f                     ;failure to download or authenticate the tarball | ||||
|        #f)))) | ||||
| 
 | ||||
| (define* (gnu->guix-package name | ||||
|                             #:key (key-download 'interactive)) | ||||
|  |  | |||
|  | @ -65,9 +65,13 @@ | |||
| found.  Return #f if no build log was found." | ||||
|   (define (valid-url? url) | ||||
|     ;; Probe URL and return #t if it is accessible. | ||||
|     (guard (c ((http-get-error? c) #f)) | ||||
|       (close-port (http-fetch url #:buffered? #f)) | ||||
|       #t)) | ||||
|     (catch 'getaddrinfo-error | ||||
|       (lambda () | ||||
|         (guard (c ((http-get-error? c) #f)) | ||||
|           (close-port (http-fetch url #:buffered? #f)) | ||||
|           #t)) | ||||
|       (lambda _ | ||||
|         #f))) | ||||
| 
 | ||||
|   (define (find-url file) | ||||
|     (let ((base (basename file))) | ||||
|  | @ -681,7 +685,8 @@ needed." | |||
|                                       (_ #f)) | ||||
|                                     opts))) | ||||
| 
 | ||||
|             (unless (assoc-ref opts 'log-file?) | ||||
|             (unless (or (assoc-ref opts 'log-file?) | ||||
|                         (assoc-ref opts 'derivations-only?)) | ||||
|               (show-what-to-build store drv | ||||
|                                   #:use-substitutes? | ||||
|                                   (assoc-ref opts 'substitutes?) | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ | |||
|   #:use-module (srfi srfi-1) | ||||
|   #:use-module (srfi srfi-26) | ||||
|   #:use-module (srfi srfi-34) | ||||
|   #:use-module (srfi srfi-35) | ||||
|   #:use-module (srfi srfi-37) | ||||
|   #:use-module (ice-9 match) | ||||
|   #:export (%package-node-type | ||||
|  | @ -70,11 +71,27 @@ name." | |||
|      ;; Filter out origins and other non-package dependencies. | ||||
|      (filter package? packages)))) | ||||
| 
 | ||||
| (define assert-package | ||||
|   (match-lambda | ||||
|     ((? package? package) | ||||
|      package) | ||||
|     (x | ||||
|      (raise | ||||
|       (condition | ||||
|        (&message | ||||
|         (message (format #f (_ "~a: invalid argument (package name expected)") | ||||
|                          x)))))))) | ||||
| 
 | ||||
| (define nodes-from-package | ||||
|   ;; The default conversion method. | ||||
|   (lift1 (compose list assert-package) %store-monad)) | ||||
| 
 | ||||
| (define %package-node-type | ||||
|   ;; Type for the traversal of package nodes. | ||||
|   (node-type | ||||
|    (name "package") | ||||
|    (description "the DAG of packages, excluding implicit inputs") | ||||
|    (convert nodes-from-package) | ||||
| 
 | ||||
|    ;; We use package addresses as unique identifiers.  This generally works | ||||
|    ;; well, but for generated package objects, we could end up with two | ||||
|  | @ -131,6 +148,7 @@ Dependencies may include packages, origin, and file names." | |||
|   (node-type | ||||
|    (name "bag") | ||||
|    (description "the DAG of packages, including implicit inputs") | ||||
|    (convert nodes-from-package) | ||||
|    (identifier bag-node-identifier) | ||||
|    (label node-full-name) | ||||
|    (edges (lift1 (compose (cut filter package? <>) bag-node-edges) | ||||
|  | @ -140,6 +158,7 @@ Dependencies may include packages, origin, and file names." | |||
|   (node-type | ||||
|    (name "bag-with-origins") | ||||
|    (description "the DAG of packages and origins, including implicit inputs") | ||||
|    (convert nodes-from-package) | ||||
|    (identifier bag-node-identifier) | ||||
|    (label node-full-name) | ||||
|    (edges (lift1 (lambda (thing) | ||||
|  | @ -170,6 +189,7 @@ GNU-BUILD-SYSTEM have zero dependencies." | |||
|   (node-type | ||||
|    (name "bag-emerged") | ||||
|    (description "same as 'bag', but without the bootstrap nodes") | ||||
|    (convert nodes-from-package) | ||||
|    (identifier bag-node-identifier) | ||||
|    (label node-full-name) | ||||
|    (edges (lift1 (compose (cut filter package? <>) | ||||
|  | @ -215,10 +235,19 @@ a plain store file." | |||
|   (node-type | ||||
|    (name "derivation") | ||||
|    (description "the DAG of derivations") | ||||
|    (convert (lambda (package) | ||||
|               (with-monad %store-monad | ||||
|                 (>>= (package->derivation package) | ||||
|                      (lift1 list %store-monad))))) | ||||
|    (convert (match-lambda | ||||
|               ((? package? package) | ||||
|                (with-monad %store-monad | ||||
|                  (>>= (package->derivation package) | ||||
|                       (lift1 list %store-monad)))) | ||||
|               ((? derivation-path? item) | ||||
|                (mbegin %store-monad | ||||
|                  ((store-lift add-temp-root) item) | ||||
|                  (return (list (file->derivation item))))) | ||||
|               (x | ||||
|                (raise | ||||
|                 (condition (&message (message "unsupported argument for \ | ||||
| derivation graph"))))))) | ||||
|    (identifier (lift1 derivation-node-identifier %store-monad)) | ||||
|    (label derivation-node-label) | ||||
|    (edges (lift1 derivation-dependencies %store-monad)))) | ||||
|  | @ -246,12 +275,20 @@ substitutes." | |||
|   (node-type | ||||
|    (name "references") | ||||
|    (description "the DAG of run-time dependencies (store references)") | ||||
|    (convert (lambda (package) | ||||
|               ;; Return the output file names of PACKAGE. | ||||
|               (mlet %store-monad ((drv (package->derivation package))) | ||||
|                 (return (match (derivation->output-paths drv) | ||||
|                           (((_ . file-names) ...) | ||||
|                            file-names)))))) | ||||
|    (convert (match-lambda | ||||
|               ((? package? package) | ||||
|                ;; Return the output file names of PACKAGE. | ||||
|                (mlet %store-monad ((drv (package->derivation package))) | ||||
|                  (return (match (derivation->output-paths drv) | ||||
|                            (((_ . file-names) ...) | ||||
|                             file-names))))) | ||||
|               ((? store-path? item) | ||||
|                (with-monad %store-monad | ||||
|                  (return (list item)))) | ||||
|               (x | ||||
|                (raise | ||||
|                 (condition (&message (message "unsupported argument for \ | ||||
| reference graph"))))))) | ||||
|    (identifier (lift1 identity %store-monad)) | ||||
|    (label store-path-package-name) | ||||
|    (edges references*))) | ||||
|  | @ -348,7 +385,9 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n")) | |||
|                                    (alist-cons 'argument arg result)) | ||||
|                                  %default-options)) | ||||
|            (type     (assoc-ref opts 'node-type)) | ||||
|            (packages (filter-map (match-lambda | ||||
|            (items    (filter-map (match-lambda | ||||
|                                    (('argument . (? store-path? item)) | ||||
|                                     item) | ||||
|                                    (('argument . spec) | ||||
|                                     (specification->package spec)) | ||||
|                                    (('expression . exp) | ||||
|  | @ -356,15 +395,18 @@ Emit a Graphviz (dot) representation of the dependencies of PACKAGE...\n")) | |||
|                                    (_ #f)) | ||||
|                                  opts))) | ||||
|       (with-store store | ||||
|         (run-with-store store | ||||
|           ;; XXX: Since grafting can trigger unsolicited builds, disable it. | ||||
|           (mlet %store-monad ((_     (set-grafting #f)) | ||||
|                               (nodes (mapm %store-monad | ||||
|                                            (node-type-convert type) | ||||
|                                            packages))) | ||||
|             (export-graph (concatenate nodes) | ||||
|                           (current-output-port) | ||||
|                           #:node-type type)))))) | ||||
|         ;; Ask for absolute file names so that .drv file names passed from the | ||||
|         ;; user to 'read-derivation' are absolute when it returns. | ||||
|         (with-fluids ((%file-port-name-canonicalization 'absolute)) | ||||
|           (run-with-store store | ||||
|             ;; XXX: Since grafting can trigger unsolicited builds, disable it. | ||||
|             (mlet %store-monad ((_     (set-grafting #f)) | ||||
|                                 (nodes (mapm %store-monad | ||||
|                                              (node-type-convert type) | ||||
|                                              items))) | ||||
|               (export-graph (concatenate nodes) | ||||
|                             (current-output-port) | ||||
|                             #:node-type type))))))) | ||||
|   #t) | ||||
| 
 | ||||
| ;;; graph.scm ends here | ||||
|  |  | |||
|  | @ -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." | ||||
|   (string-append %narinfo-cache-directory "/" | ||||
|                  (bytevector->base32-string (sha256 (string->utf8 cache-url))) | ||||
|                  "/" (store-path-hash-part path))) | ||||
|   ;; The daemon does not sanitize its input, so PATH could be something like | ||||
|   ;; "/gnu/store/foo".  Gracefully handle that. | ||||
|   (match (store-path-hash-part path) | ||||
|     (#f | ||||
|      (leave (_ "'~a' does not name a store item~%") path)) | ||||
|     ((? string? hash-part) | ||||
|      (string-append %narinfo-cache-directory "/" | ||||
|                     (bytevector->base32-string (sha256 (string->utf8 cache-url))) | ||||
|                     "/" hash-part)))) | ||||
| 
 | ||||
| (define (cached-narinfo cache-url path) | ||||
|   "Check locally if we have valid info about PATH coming from CACHE-URL. | ||||
|  |  | |||
|  | @ -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" | ||||
|  |  | |||
		Reference in a new issue