aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi14
-rw-r--r--gnu/local.mk8
-rw-r--r--gnu/packages/audio.scm4
-rw-r--r--gnu/packages/bioinformatics.scm92
-rw-r--r--gnu/packages/cdrom.scm13
-rw-r--r--gnu/packages/emacs.scm71
-rw-r--r--gnu/packages/embedded.scm60
-rw-r--r--gnu/packages/finance.scm54
-rw-r--r--gnu/packages/game-development.scm4
-rw-r--r--gnu/packages/games.scm50
-rw-r--r--gnu/packages/gd.scm1
-rw-r--r--gnu/packages/glib.scm1
-rw-r--r--gnu/packages/gnome.scm28
-rw-r--r--gnu/packages/graphics.scm10
-rw-r--r--gnu/packages/guile.scm7
-rw-r--r--gnu/packages/image.scm21
-rw-r--r--gnu/packages/linux.scm16
-rw-r--r--gnu/packages/mail.scm48
-rw-r--r--gnu/packages/music.scm388
-rw-r--r--gnu/packages/networking.scm76
-rw-r--r--gnu/packages/node.scm34
-rw-r--r--gnu/packages/patches/artanis-fix-Makefile.in.patch70
-rw-r--r--gnu/packages/patches/freeimage-CVE-2016-5684.patch34
-rw-r--r--gnu/packages/patches/gcc-6-arm-none-eabi-multilib.patch206
-rw-r--r--gnu/packages/patches/gcc-6-cross-environment-variables.patch65
-rw-r--r--gnu/packages/patches/gd-CVE-2016-8670.patch38
-rw-r--r--gnu/packages/patches/hdf4-architectures.patch579
-rw-r--r--gnu/packages/patches/irrlicht-mesa-10.patch46
-rw-r--r--gnu/packages/patches/node-9077.patch30
-rw-r--r--gnu/packages/pdf.scm54
-rw-r--r--gnu/packages/photo.scm4
-rw-r--r--gnu/packages/python.scm87
-rw-r--r--gnu/packages/qt.scm6
-rw-r--r--gnu/packages/ruby.scm6
-rw-r--r--gnu/packages/serialization.scm9
-rw-r--r--gnu/packages/ssh.scm11
-rw-r--r--gnu/packages/terminals.scm14
-rw-r--r--gnu/packages/tls.scm18
-rw-r--r--gnu/packages/version-control.scm6
-rw-r--r--gnu/packages/webkit.scm4
-rw-r--r--gnu/services/sddm.scm2
-rw-r--r--guix/grafts.scm32
-rw-r--r--guix/import/utils.scm1
-rw-r--r--guix/packages.scm6
-rw-r--r--guix/scripts/graph.scm53
-rw-r--r--tests/grafts.scm62
-rw-r--r--tests/graph.scm22
-rw-r--r--tests/packages.scm106
48 files changed, 2324 insertions, 247 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index c6bc70fe6b..66316ecd84 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5546,6 +5546,20 @@ example, the command below produces the reference graph of your profile
@example
guix graph -t references `readlink -f ~/.guix-profile`
@end example
+
+@item referrers
+This is the graph of the @dfn{referrers} of a store item, as returned by
+@command{guix gc --referrers} (@pxref{Invoking guix gc}).
+
+This relies exclusively on local information from your store. For
+instance, let us suppose that the current Inkscape is available in 10
+profiles on your machine; @command{guix graph -t referrers inkscape}
+will show a graph rooted at Inkscape and with those 10 profiles linked
+to it.
+
+It can help determine what is preventing a store item from being garbage
+collected.
+
@end table
The available options are the following:
diff --git a/gnu/local.mk b/gnu/local.mk
index 59d424aad2..1c91e79fea 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -6,6 +6,7 @@
# Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
# Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
# Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
+# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
#
# This file is part of GNU Guix.
#
@@ -456,6 +457,7 @@ dist_patch_DATA = \
%D%/packages/patches/antiword-CVE-2014-8123.patch \
%D%/packages/patches/apr-skip-getservbyname-test.patch \
%D%/packages/patches/arb-ldconfig.patch \
+ %D%/packages/patches/artanis-fix-Makefile.in.patch \
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
%D%/packages/patches/ath9k-htc-firmware-gcc.patch \
%D%/packages/patches/ath9k-htc-firmware-objcopy.patch \
@@ -527,13 +529,17 @@ dist_patch_DATA = \
%D%/packages/patches/fltk-xfont-on-demand.patch \
%D%/packages/patches/fontforge-svg-modtime.patch \
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
+ %D%/packages/patches/freeimage-CVE-2016-5684.patch \
%D%/packages/patches/gawk-shell.patch \
%D%/packages/patches/gcc-arm-bug-71399.patch \
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
%D%/packages/patches/gcc-cross-environment-variables.patch \
%D%/packages/patches/gcc-libvtv-runpath.patch \
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
+ %D%/packages/patches/gcc-6-arm-none-eabi-multilib.patch \
+ %D%/packages/patches/gcc-6-cross-environment-variables.patch \
%D%/packages/patches/gd-CVE-2016-7568.patch \
+ %D%/packages/patches/gd-CVE-2016-8670.patch \
%D%/packages/patches/gd-fix-gd2-read-test.patch \
%D%/packages/patches/gd-fix-tests-on-i686.patch \
%D%/packages/patches/gegl-CVE-2012-4433.patch \
@@ -597,7 +603,6 @@ dist_patch_DATA = \
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
%D%/packages/patches/ilmbase-fix-tests.patch \
%D%/packages/patches/inkscape-drop-wait-for-targets.patch \
- %D%/packages/patches/irrlicht-mesa-10.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/jansson-CVE-2016-4425.patch \
%D%/packages/patches/jasper-CVE-2007-2721.patch \
@@ -712,6 +717,7 @@ dist_patch_DATA = \
%D%/packages/patches/ngircd-no-dns-in-tests.patch \
%D%/packages/patches/ninja-tests.patch \
%D%/packages/patches/ninja-zero-mtime.patch \
+ %D%/packages/patches/node-9077.patch \
%D%/packages/patches/nss-pkgconfig.patch \
%D%/packages/patches/nvi-assume-preserve-path.patch \
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 781e7fac29..811da498cc 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -910,7 +910,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
(define-public guitarix
(package
(name "guitarix")
- (version "0.35.1")
+ (version "0.35.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -918,7 +918,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.")
version ".tar.xz"))
(sha256
(base32
- "066qva1zk63qw60s0vbi9g9jh22ljw67p91pk82kv11gw24h3vg6"))))
+ "1qj3adjhg511jygbjkl9k5v0gcjmg6ifc479rspfyf45m383pp3p"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 5fbfdf0b9b..43faaa078f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -56,6 +56,8 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages glib)
#:use-module (gnu packages groff)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages haskell)
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
@@ -7137,6 +7139,96 @@ ranges and it computes reads profiles and coverage profiles. It also handles
paired-end data.")
(license license:gpl2+)))
+(define-public r-rcas
+ (package
+ (name "r-rcas")
+ (version "0.99.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/BIMSBbioinfo/RCAS/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1ljgl2b4r6w2n0i9i04d9xaphajsvhfkjdj2i2z830nha4m3w8f0"))))
+ (build-system r-build-system)
+ (native-inputs
+ `(("r-knitr" ,r-knitr)
+ ("r-testthat" ,r-testthat)
+ ;; During vignette building knitr checks that "pandoc-citeproc"
+ ;; is in the PATH.
+ ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)))
+ (propagated-inputs
+ `(("r-data-table" ,r-data-table)
+ ("r-biomart" ,r-biomart)
+ ("r-org-hs-eg-db" ,r-org-hs-eg-db)
+ ("r-org-ce-eg-db" ,r-org-ce-eg-db)
+ ("r-org-dm-eg-db" ,r-org-dm-eg-db)
+ ("r-org-mm-eg-db" ,r-org-mm-eg-db)
+ ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
+ ("r-bsgenome-mmusculus-ucsc-mm9" ,r-bsgenome-mmusculus-ucsc-mm9)
+ ("r-bsgenome-celegans-ucsc-ce10" ,r-bsgenome-celegans-ucsc-ce10)
+ ("r-bsgenome-dmelanogaster-ucsc-dm3" ,r-bsgenome-dmelanogaster-ucsc-dm3)
+ ("r-topgo" ,r-topgo)
+ ("r-dt" ,r-dt)
+ ("r-plotly" ,r-plotly)
+ ("r-motifrg" ,r-motifrg)
+ ("r-genomation" ,r-genomation)
+ ("r-genomicfeatures" ,r-genomicfeatures)
+ ("r-rtracklayer" ,r-rtracklayer)
+ ("r-rmarkdown" ,r-rmarkdown)))
+ (synopsis "RNA-centric annotation system")
+ (description
+ "RCAS aims to be a standalone RNA-centric annotation system that provides
+intuitive reports and publication-ready graphics. This package provides the R
+library implementing most of the pipeline's features.")
+ (home-page "https://github.com/BIMSBbioinfo/RCAS")
+ (license license:expat)))
+
+(define-public rcas-web
+ (package
+ (name "rcas-web")
+ (version "0.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/BIMSBbioinfo/rcas-web/"
+ "releases/download/v" version
+ "/rcas-web-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0d3my0g8i7js59n184zzzjdki7hgmhpi4rhfvk7i6jsw01ba04qq"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (json (assoc-ref inputs "guile-json"))
+ (redis (assoc-ref inputs "guile-redis"))
+ (path (string-append
+ json "/share/guile/site/2.2:"
+ redis "/share/guile/site/2.2")))
+ (wrap-program (string-append out "/bin/rcas-web")
+ `("GUILE_LOAD_PATH" ":" = (,path))
+ `("GUILE_LOAD_COMPILED_PATH" ":" = (,path))
+ `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
+ #t)))))
+ (inputs
+ `(("r" ,r)
+ ("r-rcas" ,r-rcas)
+ ("guile-next" ,guile-next)
+ ("guile-json" ,guile2.2-json)
+ ("guile-redis" ,guile2.2-redis)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/BIMSBbioinfo/rcas-web")
+ (synopsis "Web interface for RNA-centric annotation system (RCAS)")
+ (description "This package provides a simple web interface for the
+@dfn{RNA-centric annotation system} (RCAS).")
+ (license license:agpl3+)))
+
(define-public emboss
(package
(name "emboss")
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index cdf0a4932e..1524ef530b 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -288,7 +288,7 @@ from an audio CD.")
(define-public abcde
(package
(name "abcde")
- (version "2.7.1")
+ (version "2.7.2")
(home-page "https://abcde.einval.com/")
(source (origin
(method url-fetch)
@@ -296,7 +296,7 @@ from an audio CD.")
version ".tar.gz"))
(sha256
(base32
- "0l7j0nk8p30s97285i418rv9ym9bgns7bn6l8gldw3mjhnby609l"))
+ "1pakpi41k8yd780mfp0snhia6mmwjwxk9lcrq6gynimch8b8hfda"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile"
@@ -314,7 +314,12 @@ from an audio CD.")
(("^prefix = .*$")
(string-append "prefix = "
(assoc-ref outputs "out")
- "\n")))))
+ "\n"))
+ (("^sysconfdir = .*$")
+ (string-append "sysconfdir = "
+ (assoc-ref outputs "out")
+ "/etc/\n")))
+ #t))
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((wget (assoc-ref inputs "wget"))
@@ -336,7 +341,7 @@ from an audio CD.")
(for-each wrap
(find-files (string-append out "/bin")
".*"))))))
- #:tests? #f))
+ #:tests? #f)) ; no test target
(inputs `(("wget" ,wget)
("which" ,which)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 1b345dba1f..6e9c181b21 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -12,7 +12,7 @@
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
+;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Alex Vong <alexvong1995@gmail.com>
@@ -2981,6 +2981,54 @@ Lua programing language}.")
news items, openrc and runscripts.")
(license license:gpl2+)))
+(define-public emacs-evil
+ (package
+ (name "emacs-evil")
+ (version "1.2.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://bitbucket.org/lyro/evil/get/"
+ version ".tar.bz2"))
+ (file-name (string-append name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "17cda9fnbq3gmjcxs3lyq64gxswrf37y864bm53rldwsk3khq2yi"))))
+ (build-system emacs-build-system)
+ (propagated-inputs
+ `(("emacs-undo-tree" ,emacs-undo-tree)
+ ("emacs-goto-chg" ,emacs-goto-chg)))
+ (home-page "https://bitbucket.com/lyro/evil")
+ (synopsis "Extensible Vi layer for Emacs")
+ (description
+ "Evil is an extensible vi layer for Emacs. It emulates the
+main features of Vim, and provides facilities for writing custom
+extensions.")
+ (license license:gpl3+)))
+
+(define-public emacs-goto-chg
+ (package
+ (name "emacs-goto-chg")
+ (version "1.6")
+ (source
+ (origin
+ (method url-fetch)
+ ;; There is no versioned source.
+ (uri "https://www.emacswiki.org/emacs/download/goto-chg.el")
+ (sha256
+ (base32
+ "078d6p4br5vips7b9x4v6cy0wxf6m5ij9gpqd4g33bryn22gnpij"))))
+ (build-system emacs-build-system)
+ ;; There is no other home page.
+ (home-page "https://www.emacswiki.org/emacs/goto-chg.el")
+ (synopsis "Go to the last change in the Emacs buffer")
+ (description
+ "This package provides @code{M-x goto-last-change} command that goes to
+the point of the most recent edit in the current Emacs buffer. When repeated,
+go to the second most recent edit, etc. Negative argument, @kbd{C-u -}, is
+used for reverse direction.")
+ (license license:gpl2+)))
+
(define-public emacs-writegood-mode
(package
(name "emacs-writegood-mode")
@@ -3183,3 +3231,24 @@ display and edit the text.
This package contains the library runtime.")
(license license:lgpl2.1+)))
+
+(define-public emacs-nginx-mode
+ (package
+ (name "emacs-nginx-mode")
+ (version "1.1.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/ajc/nginx-mode/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/ajc/nginx-mode")
+ (synopsis "Emacs major mode for editing nginx config files")
+ (description "This package provides an Emacs major mode for
+editing nginx config files.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 24eeef9fa7..a7af69f609 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016 Theodoros Foradis <theodoros.for@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24,9 +25,12 @@
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix build utils)
#:use-module (gnu packages)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages perl)
#:use-module (gnu packages texinfo))
@@ -97,6 +101,17 @@
(variable "CROSS_LIBRARY_PATH")
(files '("arm-none-eabi/lib"))))))))
+(define-public gcc-arm-none-eabi-6
+ (package
+ (inherit gcc-arm-none-eabi-4.9)
+ (version (package-version gcc-6))
+ (source (origin (inherit (package-source gcc-6))
+ (patches
+ (append
+ (origin-patches (package-source gcc-6))
+ (search-patches "gcc-6-cross-environment-variables.patch"
+ "gcc-6-arm-none-eabi-multilib.patch")))))))
+
(define-public newlib-arm-none-eabi
(package
(name "newlib")
@@ -163,3 +178,48 @@ usable on embedded products.")
"--enable-newlib-nano-formatted-io"
"--disable-nls"))))
(synopsis "Newlib variant for small systems with limited memory")))
+
+(define (arm-none-eabi-toolchain xgcc newlib)
+ "Produce a cross-compiler toolchain package with the compiler XGCC and the C
+library variant NEWLIB."
+ (let ((newlib-with-xgcc (package (inherit newlib)
+ (native-inputs
+ (alist-replace "xgcc" (list xgcc)
+ (package-native-inputs newlib))))))
+ (package
+ (name (string-append "arm-none-eabi"
+ (if (string=? (package-name newlib-with-xgcc)
+ "newlib-nano")
+ "-nano" "")
+ "-toolchain"))
+ (version (package-version xgcc))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments '(#:builder (mkdir %output)))
+ (propagated-inputs
+ `(("binutils" ,(cross-binutils "arm-none-eabi"))
+ ("gcc" ,xgcc)
+ ("newlib" ,newlib-with-xgcc)))
+ (synopsis "Complete GCC tool chain for ARM bare metal development")
+ (description "This package provides a complete GCC tool chain for ARM
+bare metal development. This includes the GCC arm-none-eabi cross compiler
+and newlib (or newlib-nano) as the C library. The supported programming
+languages are C and C++.")
+ (home-page (package-home-page xgcc))
+ (license (package-license xgcc)))))
+
+(define-public arm-none-eabi-toolchain-4.9
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9
+ newlib-arm-none-eabi))
+
+(define-public arm-none-eabi-nano-toolchain-4.9
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9
+ newlib-nano-arm-none-eabi))
+
+(define-public arm-none-eabi-toolchain-6
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-6
+ newlib-arm-none-eabi))
+
+(define-public arm-none-eabi-nano-toolchain-6
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-6
+ newlib-nano-arm-none-eabi))
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 57c9f60bac..7924827822 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
+;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -41,7 +42,8 @@
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
- #:use-module (gnu packages upnp))
+ #:use-module (gnu packages upnp)
+ #:use-module (gnu packages gnuzilla))
(define-public bitcoin-core
(package
@@ -188,3 +190,53 @@ in ability, and easy to use.")
"file://src/wcwidth.cc"
"See src/wcwidth.cc in the distribution.")
license:gpl2+)))) ; lisp/*
+
+(define-public geierlein
+ (package
+ (name "geierlein")
+ (version "0.9.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/stesie/geierlein"
+ "/archive/V" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0b11fq8v5w8nxjb20jl4dsfhv76xky6n3sq3k3fbb0m2sq9ikikw"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; would require npm, python and a lot more
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'unpack 'override-target-directory-and-tool-paths
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("prefix := .*")
+ (string-append "prefix := " (assoc-ref outputs "out") "\n"))
+ ;; Required for tests, unused for now:
+ ;;(("PYTHON := .*")
+ ;; (string-append (which "python") "\n")))
+ (("INSTALL := .*")
+ (string-append "INSTALL := " (which "install") "\n")))
+ (substitute* "bin/xgeierlein.in"
+ ;; Use icecat as XULRUNNER
+ (("^for search ")
+ (string-append "XULRUNNER=" (which "icecat") "\n"
+ "for search ")))
+ #t)))))
+ (inputs
+ `(("icecat" ,icecat)))
+ (home-page "http://stesie.github.io/geierlein/")
+ (synopsis "Free Elster client, for sending Germany VAT declarations")
+ (description
+ "Geierlein is a free Elster client, i.e. an application that
+allows to send VAT declarations to Germany's fiscal authorities.
+
+Currently it is *not* possible to send returns that are due annually
+(especially the income tax return) since the fiscal authority doesn't
+allow to do that off the ERiC library (which is proprietary however).
+It's not clear at the moment whether one day it will be possible to
+do so.")
+ (license license:agpl3+)))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 5e6cf0b234..de0b842b48 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -183,7 +183,9 @@ clone.")
"0k2fl5xk3ni2q8bsxl0551inx26ww3w6cp6hssvww0wfjdjcirsm"))))
(build-system cmake-build-system)
(arguments
- '(#:tests? #f)) ; no tests
+ '(#:configure-flags
+ (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE")
+ #:tests? #f)) ; no tests
(inputs
`(("mesa" ,mesa)
("glew" ,glew)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 72aff907ae..e4c34d08a5 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -545,7 +545,7 @@ are primarily in English, however some in other languages are provided.")
(define-public irrlicht
(package
(name "irrlicht")
- (version "1.8.1")
+ (version "1.8.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -554,10 +554,10 @@ are primarily in English, however some in other languages are provided.")
"/" version "/irrlicht-" version ".zip"))
(sha256
(base32
- "0yz9lvsc8aqk8wj4rnpanxrw90gqpwn9w5hxp94r8hnm2q0vjjw1"))))
+ "0cz4z4dwrv5ypl19ll67wl6jjpy5k6ly4vr042w4br88qq5jhazl"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (alist-cons-after
+ `(#:phases (alist-cons-after
'unpack 'fix-build-env
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@@ -572,19 +572,13 @@ are primarily in English, however some in other languages are provided.")
(lambda* (#:key source #:allow-other-keys)
(and (zero? (system* "unzip" source))
;; The actual source is buried a few directories deep.
- (chdir "irrlicht-1.8.1/source/Irrlicht/")))
- (alist-cons-after
- 'unpack 'apply-patch/mesa-10-fix
- (lambda* (#:key inputs #:allow-other-keys)
- (zero? (system* "patch" "--force" "-p3" "-i"
- (assoc-ref inputs "patch/mesa-10-fix"))))
- ;; No configure script
- (alist-delete 'configure %standard-phases))))
+ (chdir (string-append "irrlicht-" ,version "/source/Irrlicht/"))))
+ ;; No configure script
+ (alist-delete 'configure %standard-phases)))
#:tests? #f ; no check target
#:make-flags '("CC=gcc" "sharedlib")))
(native-inputs
- `(("patch/mesa-10-fix" ,(search-patch "irrlicht-mesa-10.patch"))
- ("unzip" ,unzip)))
+ `(("unzip" ,unzip)))
(inputs
`(("mesa" ,mesa)
("glu" ,glu)))
@@ -946,7 +940,7 @@ Protocol).")
(define-public extremetuxracer
(package
(name "extremetuxracer")
- (version "0.6.0")
+ (version "0.7.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -954,35 +948,13 @@ Protocol).")
version "/etr-" version ".tar.xz"))
(sha256
(base32
- "0fl9pwkywqnsmgr6plfj9zb05xrdnl5xb2hcmbjk7ap9l4cjfca4"))))
+ "1lg3z7jhzmsjym53qss8mbydny8hafwjnfsc7x91hrr9zrkwblly"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
- `(("freetype" ,freetype)
- ("mesa" ,mesa)
- ("glu" ,glu)
- ("libice" ,libice)
- ("libpng" ,libpng)
- ("sdl" ,sdl)
- ("sdl-mixer" ,sdl-mixer)
- ("sdl-image" ,sdl-image)
- ("libsm" ,libsm)
- ("libunwind" ,libunwind)
- ("libx11" ,libx11)
- ("libxext" ,libxext)
- ("libxi" ,libxi)
- ("libxmu" ,libxmu)
- ("libxt" ,libxt)
- ("tcl" ,tcl)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'configure 'patch-makefile
- (lambda _
- (substitute* "Makefile"
- (("CXXFLAGS =") "CXXFLAGS = ${CFLAGS}")))))))
+ `(("glu" ,glu)
+ ("sfml" ,sfml)))
(synopsis "High speed arctic racing game based on Tux Racer")
;; Snarfed straight from Debian
(description "Extreme Tux Racer, or etracer as it is called for short, is
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
index 6c94d35bdf..0241a81db9 100644
--- a/gnu/packages/gd.scm
+++ b/gnu/packages/gd.scm
@@ -51,6 +51,7 @@
(base32
"0g3xz8jpz1pl2zzmssglrpa9nxiaa7rmcmvgpbrjz8k9cyynqsvl"))
(patches (search-patches "gd-CVE-2016-7568.patch"
+ "gd-CVE-2016-8670.patch"
"gd-fix-gd2-read-test.patch"
"gd-fix-tests-on-i686.patch"))))
(build-system gnu-build-system)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 938cf3b736..9a1459ab09 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -140,6 +140,7 @@ shared NFS home directories.")
(let ((version "1.10.12"))
(origin
(method url-fetch)
+ (inherit (package-source dbus))
(uri (string-append
"https://dbus.freedesktop.org/releases/dbus/dbus-"
version ".tar.gz"))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index b62a5f7f4d..a45f6589ac 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -5583,3 +5583,31 @@ handling the startup notification side.")
"Calculator is an application that solves mathematical equations and
is suitable as a default application in a Desktop environment.")
(license license:gpl3)))
+
+(define-public xpad
+ (package
+ (name "xpad")
+ (version "4.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://launchpad.net/xpad/trunk/4.8.0/+download/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "17f915yyvfa2fsavq6wh0q0dfhib28b4k1gc0292b9xdlrvy7f22"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+)
+ ("gtksourceview" ,gtksourceview)
+ ("libsm" ,libsm)))
+ (home-page "https://wiki.gnome.org/Apps/Xpad")
+ (synopsis "Virtual sticky note")
+ (description
+ "Xpad is a sticky note that strives to be simple, fault tolerant,
+and customizable. Xpad consists of independent pad windows, each is
+basically a text box in which notes can be written.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 930e1985d5..64953414ed 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -142,20 +142,18 @@ application can be customized via its API for Python scripting.")
(define-public assimp
(package
(name "assimp")
- (version "3.2")
+ (version "3.3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/assimp/assimp/archive/v"
- version ".zip"))
- (file-name (string-append name "-" version ".zip"))
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "11sfahmbwnjjpd8vpzdsng1bx5mb0cmaqb20dz6sdwapqanqwmar"))))
+ "1gy7zlgkf4nmyv8n674p3f30asis0gjz8icyy11i693n13ww71fk"))))
(build-system cmake-build-system)
(inputs
`(("zlib" ,zlib)))
- (native-inputs
- `(("unzip" ,unzip)))
(home-page "http://assimp.org/")
(synopsis "Asset import library")
(description
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index aa2cdb10e0..691a7fe22e 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -321,7 +322,8 @@ applicable."
version ".tar.gz"))
(sha256
(base32
- "19m3ak12cqk8js9d2mdg11kh4fjsq8frfpd10qw75h0zpr5cywpp"))))
+ "19m3ak12cqk8js9d2mdg11kh4fjsq8frfpd10qw75h0zpr5cywpp"))
+ (patches (search-patches "artanis-fix-Makefile.in.patch"))))
(build-system gnu-build-system)
;; TODO: Add guile-dbi and guile-dbd optional dependencies.
(inputs `(("guile" ,guile-2.0)))
@@ -335,8 +337,7 @@ applicable."
(dir (string-append out "/share/guile/site/2.0")))
;; Don't use (%site-dir) for site paths.
(list (string-append "MOD_PATH=" dir)
- (string-append "MOD_COMPILED_PATH=" dir)
- (string-append "DESTDIR=" out)))
+ (string-append "MOD_COMPILED_PATH=" dir)))
#:test-target "test"
#:phases
(modify-phases %standard-phases
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 7f4327badc..4b05cca3b4 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -570,18 +570,19 @@ supplies a generic doubly-linked list and some string functions.")
(sha256
(base32
"12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
- (patches (search-patches "freeimage-CVE-2015-0852.patch"))))
+ (patches (search-patches "freeimage-CVE-2015-0852.patch"
+ "freeimage-CVE-2016-5684.patch"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (alist-delete
- 'configure
- (alist-cons-before
- 'build 'patch-makefile
- (lambda* (#:key outputs #:allow-other-keys)
- (substitute* "Makefile.gnu"
- (("/usr") (assoc-ref outputs "out"))
- (("-o root -g root") "")))
- %standard-phases))
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'patch-makefile
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile.gnu"
+ (("/usr") (assoc-ref outputs "out"))
+ (("-o root -g root") ""))
+ #t)))
#:make-flags '("CC=gcc")
#:tests? #f)) ; no check target
(native-inputs
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 6de5bc125f..53baa21fdd 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -322,26 +322,26 @@ It has been modified to remove all non-free binary blobs.")
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
(define-public linux-libre
- (make-linux-libre "4.8.1"
- "0l57ab8v52nvx4d898qfvkl7c6zlrm7qd080z6jg0bg0adn4w5lf"
+ (make-linux-libre "4.8.2"
+ "111v014j9b2zgyhv8f0aka5lmyc3imdc5yag7azw6hv3vjqqkn67"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.4
- (make-linux-libre "4.4.24"
- "1wg1d9rq29612psr5v4krabx7nv1y1gzfshq7wpx6i1lpqf3lill"
+ (make-linux-libre "4.4.25"
+ "1a677h8vvjkbzqwnklqnjvhq33lwig5z453dwi125zzzvawgr463"
%intel-compatible-systems
#:configuration-file kernel-config))
(define-public linux-libre-4.1
- (make-linux-libre "4.1.33"
- "1s45vymx7zp7qwj4rx63dpj9xwm8hv5fd9nm27wqvmgnmd3q548h"
+ (make-linux-libre "4.1.34"
+ "0dajsb363p9lgga22ml8gp9k9lxd8mvrzxk9y3h9c6hpzfcmqdqr"
%intel-compatible-systems
#:configuration-file kernel-config))
;; Avoid rebuilding kernel variants when there is a minor version bump.
-(define %linux-libre-version "4.8.1")
-(define %linux-libre-hash "0l57ab8v52nvx4d898qfvkl7c6zlrm7qd080z6jg0bg0adn4w5lf")
+(define %linux-libre-version "4.8.2")
+(define %linux-libre-hash "111v014j9b2zgyhv8f0aka5lmyc3imdc5yag7azw6hv3vjqqkn67")
(define-public linux-libre-arm-generic
(make-linux-libre %linux-libre-version
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index baa5a96185..47c15497d4 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -443,6 +443,54 @@ attachments, create new maildirs, and so on.")
@code{notmuch} mail. It is written in Python using the @code{urwid} toolkit.")
(license gpl3+)))
+(define-public notifymuch
+ (let
+ ((commit "9d4aaf54599282ce80643b38195ff501120807f0")
+ (revision "1"))
+ (package
+ (name "notifymuch")
+ (version (string-append "0.1-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kspi/notifymuch.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1lssr7iv43mp5v6nzrfbqlfzx8jcc7m636wlfyhhnd8ydd39n6k4"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-notmuch" ,python-notmuch)
+ ("python-pygobject" ,python-pygobject)
+ ("gobject-introspection" ,gobject-introspection)
+ ("libnotify" ,libnotify)
+ ("gtk+" ,gtk+)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-binary
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin/notifymuch")))
+ (wrap-program bin
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))
+ `("GI_TYPELIB_PATH" ":" prefix
+ (,(getenv "GI_TYPELIB_PATH")
+ ,(string-append out "/lib/girepository-1.0")))))
+ #t)))))
+ (home-page "https://github.com/kspi/notifymuch")
+ (synopsis "Displays notifications for changes in the notmuch email database")
+ (description "notifymuch displays desktop notifications for messages in
+the notmuch database. The notifications are sent using libnotify to a
+notification daemon. The query to find messages to send a notification about
+is configurable, and a notification for the same message will not be send
+within a configurable period (defaults to 48 hours). To use notifymuch, run
+@command{notifymuch} after new mail is indexed, this can be automated by
+invoking @command{notifymuch} from the post-new hook.")
+ (license gpl3))))
+
(define-public notmuch
(package
(name "notmuch")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 40f3948bb6..bbae98532d 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1521,6 +1521,31 @@ synths, microtonal capabilities, custom envelopes, effects, etc. Yoshimi
improves on support for JACK features, such as JACK MIDI.")
(license license:gpl2)))
+(define-public jack-keyboard
+ (package
+ (name "jack-keyboard")
+ (version "2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/jack-keyboard/jack-keyboard/"
+ version "/jack-keyboard-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0mzmg8aavybcfdlq2yd9d0vscqd6is5p6jzrgfpfm5j3xdcvh2s3"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("jack" ,jack-1)
+ ("lash" ,lash)
+ ("gtk+" ,gtk+-2)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://jack-keyboard.sourceforge.net/")
+ (synopsis "Virtual MIDI keyboard")
+ (description "Jack-keyboard is a virtual MIDI keyboard, a program that
+allows you to send JACK MIDI events (i.e. play) using your PC keyboard.")
+ (license license:bsd-2)))
+
(define-public cursynth
(package
(name "cursynth")
@@ -1965,3 +1990,366 @@ CSV file in the format created by midicsv may be converted back into a
standard MIDI file with the csvmidi program.")
(home-page "http://www.fourmilab.ch/webtools/midicsv/")
(license license:public-domain)))
+
+(define-public gx-guvnor-lv2
+ (let ((commit "9f528a7623a201383e119bb6a2df32b18396a9d5")
+ (revision "1"))
+ (package
+ (name "gx-guvnor-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxGuvnor.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "10zx84p2vd7i1yqc5ma9p17927265j4g0zfwv9rxladw0nm8y45k"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(;; The check target is used only to output a warning.
+ #:tests? #f
+ #:make-flags
+ (list (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda _
+ (substitute* "Makefile"
+ (("INSTALL_DIR = .*") "INSTALL_DIR=/lib/lv2\n")
+ ;; Avoid rebuilding everything
+ (("install : all") "install:"))
+ #t)))))
+ (inputs
+ `(("lv2" ,lv2)))
+ (home-page "https://github.com/brummer10/GxGuvnor.lv2")
+ (synopsis "Overdrive/distortion pedal simulation")
+ (description "This package provides the LV2 plugin \"GxGuvnor\", a
+simulation of an overdrive or distortion pedal for guitars.")
+ ;; The LICENSE file says GPLv3 but the license headers in the files say
+ ;; GPLv2 or later.
+ (license license:gpl2+))))
+
+(define-public gx-vbass-preamp-lv2
+ (let ((commit "0e599abab10c7669dd444e5d06f671c2fc1b9c6c")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-vbass-preamp-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxVBassPreAmp.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "1dzksdfrva666gpi62fd2ni9rhf18sl917f1894qr0b17pbdh9k1"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (home-page "https://github.com/brummer10/GxVBassPreAmp.lv2")
+ (synopsis "Simulation of the Vox Venue Bass 100 Pre Amp Section")
+ (description "This package provides the LV2 plugin \"GxVBassPreAmp\", a
+pre-amplifier simulation modelled after the 1984 Vox Venue Bass 100 Pre Amp
+Section."))))
+
+(define-public gx-overdriver-lv2
+ (let ((commit "ed71801987449414bf3adaa0dbfac68e8775f1ce")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-overdriver-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxOverDriver.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "13j614jh525fbkby79nnzwj0z1ac0c9wclyn5pfqvkmx6a7j24r8"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (home-page "https://github.com/brummer10/GxOverDriver.lv2")
+ (synopsis "Overdrive effect with level and tone control")
+ (description "This package provides the LV2 plugin \"GxOverDriver\", an
+overdrive effect."))))
+
+(define-public gx-tone-mender-lv2
+ (let ((commit "b6780b4a3e4782b3ed0e5882d6788f178aed138f")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-tone-mender-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxToneMender.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "07qdcfsvv2vdnfnjh91pfgvjdcs5y91nvwfm8c0z8fp6b4bk7a9q"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (home-page "https://github.com/brummer10/GxToneMender.lv2")
+ (synopsis "Clean boost with a 3-knob tonestack")
+ (description "This package provides the LV2 plugin \"GxToneMender\", a
+clean boost effect with a 3-knob tonestack."))))
+
+(define-public gx-push-pull-lv2
+ (let ((commit "7f76ae2068498643ac8671ee0930b13ee3fd8eb5")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-push-pull-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxPushPull.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "12f5hwck2irph0gjbj8xy8jqcqdwb8l1hlwf29k0clz52h1jhb5q"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (home-page "https://github.com/brummer10/GxPushPull.lv2")
+ (synopsis "Octave up push pull transistor fuzz simulation")
+ (description "This package provides the LV2 plugin \"GxPushPull\", a
+simulation of a push pull transistor fuzz effect with added high octave."))))
+
+(define-public gx-suppa-tone-bender-lv2
+ (let ((commit "4e6dc713ec24e7fcf5ea23b7e685af627c01b9c9")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-suppa-tone-bender-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxSuppaToneBender.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "1i22xr252nkbazkwidll2zb3i96610gx65qn5djdkijlz7j77138"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (home-page "https://github.com/brummer10/GxSuppaToneBender.lv2")
+ (synopsis "Simulation of the Vox Suppa Tone Bender pedal")
+ (description "This package provides the LV2 plugin
+\"GxSuppaToneBender\", a simulation modelled after the Vox Suppa Tone Bender
+pedal."))))
+
+(define-public gx-saturator-lv2
+ (let ((commit "361399245d234b4d02f11f066d25ac15d90c6bf8")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-saturator-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxSaturator.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "13cf5gxr2wzp5954hdhbl79v98a665ll5434mb3668p4j33sv217"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxSaturator.lv2")
+ (synopsis "Saturation effect")
+ (description "This package provides the LV2 plugin \"GxSaturator\", a
+saturation effect."))))
+
+(define-public gx-hyperion-lv2
+ (let ((commit "7d993bc77f9946b3df0e481632c61b2dcbb6549f")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-hyperion-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxHyperion.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "12klcyc6l9v93ii3478mqz44jzvh5np1sk8zzdmz42jp0w8qd429"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxHyperion.lv2")
+ (synopsis "Simulation of the Hyperion Fuzz pedal")
+ (description "This package provides the LV2 plugin \"GxHyperion\", a
+simulation of the Hyperion Fuzz pedal."))))
+
+(define-public gx-voodoo-fuzz-lv2
+ (let ((commit "d2d6b27bc279f98c2fd11bbd58ffe2fb2c321ec4")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-voodoo-fuzz-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxVoodoFuzz.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "1ji915bly588a8xwvwspvsqv0nh8ljgi6rky2mk1d9d6nz96jrbk"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxVoodoFuzz.lv2")
+ (synopsis "Fuzz effect modelled after the Voodoo Lab SuperFuzz")
+ (description "This package provides the LV2 plugin \"GxVoodooFuzz\", a
+simulation modelled after the Voodoo Lab SuperFuzz pedal. It's basically a
+Bosstone circuit, followed by the tone control of the FoxToneMachine in
+parallel with a DarkBooster, followed by a volume control."))))
+
+(define-public gx-super-fuzz-lv2
+ (let ((commit "9800354caeb4082a64ca55b2daa9a9a1f79b8c21")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-super-fuzz-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxSuperFuzz.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "1jclp53p01h94cpx17wm4765r7klbr41g7bvq87l53qwlrgkc7a9"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxSuperFuzz.lv2")
+ (synopsis "Fuzz effect modelled after the UniVox SuperFuzz")
+ (description "This package provides the LV2 plugin \"GxVoodooFuzz\", an
+analog simulation of the UniVox SuperFuzz pedal. In this simulation the trim
+pot, which is usualy in the housing, is exposed as a control parameter. It
+adjusts the amount of harmonics."))))
+
+(define-public gx-vintage-fuzz-master-lv2
+ (let ((commit "c3ab9a3019a8381a398718b98615940b4a225b9e")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-vintage-fuzz-master-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "0s1ghysggx6psalyhcpgjnmf38vama6jcqgbldqmxii5c2w2ybsc"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxVintageFuzzMaster.lv2")
+ (synopsis "Fuzz effect simulation of the vintage Fuzz Master")
+ (description "This package provides the LV2 plugin
+\"GxVintageFuzzMaster\", a simulation of the vintage Fuzz Master pedal."))))
+
+(define-public gx-slow-gear-lv2
+ (let ((commit "1071c2b2936ebad859242cb578af2f3415f8900f")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-slow-gear-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxSlowGear.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "0c6099h5qkv7ilsvxxcrzwy1h6lkld1srh3fvbjxyw9q34kbqsyl"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxSlowGear.lv2")
+ (synopsis "Slow gear audio effect")
+ (description "This package provides the LV2 plugin \"GxSlowGear\", a
+slow gear audio effect to produce volume swells."))))
+
+(define-public gx-switchless-wah-lv2
+ (let ((commit "1d466240c482b7ce9136aee39044068ab96f1c92")
+ (revision "1"))
+ (package (inherit gx-guvnor-lv2)
+ (name "gx-switchless-wah-lv2")
+ (version (string-append "0-" revision "." (string-take commit 9)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/brummer10/GxSwitchlessWah.lv2")
+ (commit commit)))
+ (sha256
+ (base32
+ "0g6njgsm8s76n6yys09a8w77z93pjjgqq9hzhhsrl73hhvyr9qmy"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments gx-guvnor-lv2)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'escape-shell-commands
+ (lambda _
+ (substitute* "Makefile"
+ (("cat ") "$(shell cat ")
+ (("/dev/null") "/dev/null)")
+ (("SSE_CFLAGS = \"\"") "SSE_CFLAGS ="))
+ #t))))))
+ (home-page "https://github.com/brummer10/GxSwitchlessWah.lv2")
+ (synopsis "Wah emulation with switchless activation")
+ (description "This package provides the LV2 plugin \"GxSwitchlessWah\",
+a simulation of an analog Wah pedal with switchless activation."))))
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 1cf6b052b8..cc843c97ff 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -40,6 +40,7 @@
#:use-module (gnu packages audio)
#:use-module (gnu packages bison)
#:use-module (gnu packages check)
+ #:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages flex)
@@ -54,7 +55,9 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
- #:use-module (gnu packages tls))
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages valgrind))
(define-public macchanger
(package
@@ -474,7 +477,7 @@ network frames.")
(define-public httping
(package
(name "httping")
- (version "2.4")
+ (version "2.5")
(source
(origin
(method url-fetch)
@@ -482,7 +485,7 @@ network frames.")
version ".tgz"))
(sha256
(base32
- "1110r3gpsj9xmybdw7w4zkhj3zmn5mnv2nq0ijbvrywbn019zdfs"))))
+ "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)))
@@ -857,3 +860,70 @@ other similar tasks that are particularly application specific so that the
library remains flexible, portable, and easily embeddable.")
(home-page "http://enet.bespin.org")
(license license:expat)))
+
+(define-public sslh
+ (package
+ (name "sslh")
+ (version "1.18")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/yrutschle/sslh/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1vzw7a7s9lhspbn5zn3hw8hir4pkjgbd68yys4hfsnjp1h7bzjpn"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(;; Tests dependencies.
+ ("lcov" ,lcov)
+ ("perl" ,perl)
+ ("perl-io-socket-inet6" ,perl-io-socket-inet6)
+ ("perl-socket6" ,perl-socket6)
+ ("psmisc" ,psmisc)
+ ("valgrind" ,valgrind)))
+ (inputs
+ `(("libcap" ,libcap)
+ ("libconfig" ,libconfig)
+ ("tcp-wrappers" ,tcp-wrappers)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (add-before 'check 'fix-tests
+ (lambda _
+ (substitute* "./t"
+ (("\"/tmp") "$ENV{\"TMPDIR\"} . \"")
+ ;; The Guix build environment lacks ‘ip6-localhost’.
+ (("ip6-localhost") "localhost"))
+ #t))
+ ;; Many of these files are mentioned in the man page. Install them.
+ (add-after 'install 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/sslh")))
+ (install-file "README.md" doc)
+ (for-each
+ (lambda (file)
+ (install-file file (string-append doc "/examples")))
+ (append (find-files "." "\\.cfg")
+ (find-files "scripts"))))
+ #t)))
+ #:make-flags (list "CC=gcc"
+ "USELIBCAP=1"
+ "USELIBWRAP=1"
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))
+ #:test-target "test"))
+ (home-page "http://www.rutschle.net/tech/sslh.shtml")
+ (synopsis "Applicative network protocol demultiplexer")
+ (description
+ "sslh is a network protocol demultiplexer. It acts like a switchboard,
+accepting connections from clients on one port and forwarding them to different
+servers based on the contents of the first received data packet. Detection of
+common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already
+implemented, but any other protocol that matches a regular expression can be
+added. sslh's name comes from its original application of serving both SSH and
+HTTPS on port 443, allowing SSH connections from inside corporate firewalls
+that block port 22.")
+ (license (list license:bsd-2 ; tls.[ch]
+ license:gpl2+)))) ; everything else
diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm
index 887ef930ff..617dffc937 100644
--- a/gnu/packages/node.scm
+++ b/gnu/packages/node.scm
@@ -25,6 +25,7 @@
#:use-module (guix derivations)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
@@ -37,14 +38,16 @@
(define-public node
(package
(name "node")
- (version "6.0.0")
+ (version "6.8.0")
(source (origin
(method url-fetch)
(uri (string-append "http://nodejs.org/dist/v" version
"/node-v" version ".tar.gz"))
(sha256
(base32
- "0cpw7ng193jgfbw2g1fd0kcglmjjkbj4xb89g00z8zz0lj0nvdbd"))))
+ "0lj3250hglz4w5ic4svd7wlg2r3qc49hnasvbva1v69l8yvx98m8"))
+ ;; https://github.com/nodejs/node/pull/9077
+ (patches (search-patches "node-9077.patch"))))
(build-system gnu-build-system)
(arguments
;; TODO: Package http_parser and add --shared-http-parser.
@@ -78,10 +81,10 @@
;; FIXME: These tests fail in the build container, but they don't
;; seem to be indicative of real problems in practice.
(for-each delete-file
- '("test/parallel/test-cluster-master-error.js"
+ '("test/parallel/test-dgram-membership.js"
+ "test/parallel/test-cluster-master-error.js"
"test/parallel/test-cluster-master-kill.js"
"test/parallel/test-npm-install.js"
- "test/parallel/test-stdout-close-unref.js"
"test/sequential/test-child-process-emfile.js"))
#t))
(replace 'configure
@@ -101,22 +104,15 @@
(string-append (assoc-ref inputs "python")
"/bin/python")
"configure" flags)))))
- (replace 'patch-shebangs
- (lambda* (#:key outputs #:allow-other-keys #:rest all)
- ;; Work around <http://bugs.gnu.org/23723>.
- (let* ((patch (assoc-ref %standard-phases 'patch-shebangs))
- (npm (string-append (assoc-ref outputs "out")
- "/bin/npm"))
+ (add-after 'patch-shebangs 'patch-npm-shebang
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((bindir (string-append (assoc-ref outputs "out")
+ "/bin"))
+ (npm (string-append bindir "/npm"))
(target (readlink npm)))
- (and (apply patch all)
- (with-directory-excursion (dirname npm)
- ;; Turn NPM into a symlink to TARGET again, which 'npm'
- ;; relies on for the resolution of relative file names
- ;; in JS files.
- (delete-file target)
- (rename-file npm target)
- (symlink target npm)
- #t))))))))
+ (with-directory-excursion bindir
+ (patch-shebang target (list bindir))
+ #t)))))))
(native-inputs
`(("python" ,python-2)
("perl" ,perl)
diff --git a/gnu/packages/patches/artanis-fix-Makefile.in.patch b/gnu/packages/patches/artanis-fix-Makefile.in.patch
new file mode 100644
index 0000000000..7e4800d364
--- /dev/null
+++ b/gnu/packages/patches/artanis-fix-Makefile.in.patch
@@ -0,0 +1,70 @@
+Applies until an Artanis release comes with the following patches
+applied:
+* <https://savannah.gnu.org/patch/?func=detailitem&item_id=9130>
+* <https://savannah.gnu.org/patch/?func=detailitem&item_id=9131>
+diff -ru artanis-0.1.2/Makefile.in artanis-0.1.2.1/Makefile.in
+--- artanis-0.1.2/Makefile.in 2016-02-10 12:35:18.800490571 -0200
++++ artanis-0.1.2.1/Makefile.in 2016-10-15 19:44:35.140907367 -0300
+@@ -19,9 +19,18 @@
+ MOD_OBJ := $(OBJ)/artanis
+ BIN := bin
+ TEMP_LIB_PATH := $(OBJ)
+-MOD_PATH := $(shell guile -c "(display (%site-dir))")
+ MOD_COMPILED_PATH := $(shell guile -c "(display (%site-ccache-dir))")
++
++ifdef DESTDIR
++INFO_DIR := $(DESTDIR)/share/info/
++MOD_PATH := $(DESTDIR)/$(shell guile -c "(display (%site-dir))")
+ MOD_TARGET_PATH := $(DESTDIR)/$(MOD_COMPILED_PATH)
++else
++INFO_DIR := $(PREFIX)/share/info/
++MOD_PATH := $(shell guile -c "(display (%site-dir))")
++MOD_TARGET_PATH := $(MOD_COMPILED_PATH)
++endif
++
+ GUILE_CFLAGS := -Wunsupported-warning -Wunbound-variable -Warity-mismatch -Wduplicate-case-datum -Wbad-case-datum -Wformat
+ GUILEC := GUILE_LOAD_COMPILED_PATH=$(TEMP_LIB_PATH) guild compile $(GUILE_CFLAGS)
+ ARTANIS_ETC := $(SRC)/etc/artanis
+@@ -36,7 +45,6 @@
+ GENDOCS :=$(BUILD_AUX)/gendocs.sh
+ CHK_TEXINFO := $(BUILD_AUX)/check_texinfo.scm
+ CP := cp -frd -P
+-INFO_DIR := $(PREFIX)/share/info/
+ TARBALL_NAME := artanis-$(VERSION)
+ TMP_DIR := $(shell mktemp -d)
+ ANN_GEN := $(BUILD_AUX)/announce-gen
+@@ -124,18 +132,29 @@
+ -rm -f config.{h,log}
+
+ install: $(ALL_TARGETS)
+- mkdir -p $(DESTDIR)/$(MOD_PATH)
+- $(CP) $(MOD) $(DESTDIR)/$(MOD_PATH)/
++ mkdir -p $(MOD_PATH)
++ $(CP) $(MOD) $(MOD_PATH)/
+ mkdir -p $(MOD_TARGET_PATH)/
+ $(CP) $(MOD_OBJ) $(MOD_TARGET_PATH)/
++
++ifdef DESTDIR
+ $(CP) $(ARTANIS_ETC) $(DESTDIR)/etc/
+ $(CP) $(ARTANIS_PAGES) $(DESTDIR)/etc/artanis/
+- mkdir -p $(DESTDIR)/$(PREFIX)/bin/
+- $(CP) $(BIN)/art $(DESTDIR)/$(PREFIX)/bin/
++ mkdir -p $(DESTDIR)/bin/
++ $(CP) $(BIN)/art $(DESTDIR)/bin/
+ mkdir -p $(DESTDIR)/etc/bash_completion.d/
+ $(CP) $(CMDCOMP) $(DESTDIR)/etc/bash_completion.d/
++else
++ $(CP) $(ARTANIS_ETC) $(PREFIX)/etc/
++ $(CP) $(ARTANIS_PAGES) $(PREFIX)/etc/artanis/
++ mkdir -p $(PREFIX)/bin/
++ $(CP) $(BIN)/art $(PREFIX)/bin/
++ mkdir -p $(PREFIX)/etc/bash_completion.d/
++ $(CP) $(CMDCOMP) $(PREFIX)/etc/bash_completion.d/
++endif
++
+ if [ -e /etc/bash.bashrc ]; then source /etc/bash.bashrc; fi
+- if [ -e artanis.info ]; then mkdir -p $(DESTDIR)/$(INFO_DIR); $(CP) artanis.info $(DESTDIR)/$(INFO_DIR)/; fi
++ if [ -e artanis.info ]; then mkdir -p $(INFO_DIR); $(CP) artanis.info $(INFO_DIR)/; fi
+
+ distclean: distclean-mk clean clean-config clean-tarball
+ -rm -f $(BIN)/art
diff --git a/gnu/packages/patches/freeimage-CVE-2016-5684.patch b/gnu/packages/patches/freeimage-CVE-2016-5684.patch
new file mode 100644
index 0000000000..2fc02d7b0d
--- /dev/null
+++ b/gnu/packages/patches/freeimage-CVE-2016-5684.patch
@@ -0,0 +1,34 @@
+From: Debian Science Maintainers
+ <debian-science-maintainers@lists.alioth.debian.org>
+Date: Mon, 10 Oct 2016 08:22:44 +0100
+Subject: CVE-2016-5684
+
+---
+ Source/FreeImage/PluginXPM.cpp | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Source/FreeImage/PluginXPM.cpp b/Source/FreeImage/PluginXPM.cpp
+index a698321..cc7bd07 100644
+--- a/Source/FreeImage/PluginXPM.cpp
++++ b/Source/FreeImage/PluginXPM.cpp
+@@ -181,6 +181,11 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
+ }
+ free(str);
+
++ // check info string
++ if((width <= 0) || (height <= 0) || (colors <= 0) || (cpp <= 0)) {
++ throw "Improperly formed info string";
++ }
++
+ if (colors > 256) {
+ dib = FreeImage_AllocateHeader(header_only, width, height, 24, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
+ } else {
+@@ -193,7 +198,7 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
+ FILE_RGBA rgba;
+
+ str = ReadString(io, handle);
+- if(!str)
++ if(!str || (strlen(str) < (size_t)cpp))
+ throw "Error reading color strings";
+
+ std::string chrs(str,cpp); //create a string for the color chars using the first cpp chars
diff --git a/gnu/packages/patches/gcc-6-arm-none-eabi-multilib.patch b/gnu/packages/patches/gcc-6-arm-none-eabi-multilib.patch
new file mode 100644
index 0000000000..5c3e21975b
--- /dev/null
+++ b/gnu/packages/patches/gcc-6-arm-none-eabi-multilib.patch
@@ -0,0 +1,206 @@
+From Anatol Pomozov <anatol.pomozov@gmail.com>
+Taken from Arch Linux arm-none-eabi-gcc package.
+
+Modified version of ARM patch https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00083/enable-with-multilib-list-for-arm.patch
+
+This patch enables the use of the "--with-multilib-list" flag, when
+configuring GCC 6.2. It makes GCC 6 compatible with the configure flags used
+in the "gcc-arm-none-eabi-4.9" package.
+
+
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 4ab7405..6e1ea2c 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -535,6 +535,7 @@ lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt
+ lang_specs_files=@lang_specs_files@
+ lang_tree_files=@lang_tree_files@
+ target_cpu_default=@target_cpu_default@
++with_multilib_list=@with_multilib_list@
+ OBJC_BOEHM_GC=@objc_boehm_gc@
+ extra_modes_file=@extra_modes_file@
+ extra_opt_files=@extra_opt_files@
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index cb08a5c..7bded02 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1072,7 +1072,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
+ case ${target} in
+ arm*-*-eabi*)
+ tm_file="$tm_file newlib-stdint.h"
+- tmake_file="${tmake_file} arm/t-bpabi"
++ tmake_file="${tmake_file} arm/t-bpabi arm/t-mlibs"
+ use_gcc_stdint=wrap
+ ;;
+ arm*-*-rtems*)
+@@ -3684,42 +3684,6 @@ case "${target}" in
+ exit 1
+ fi
+
+- # Add extra multilibs
+- if test "x$with_multilib_list" != x; then
+- arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
+- for arm_multilib in ${arm_multilibs}; do
+- case ${arm_multilib} in
+- aprofile)
+- # Note that arm/t-aprofile is a
+- # stand-alone make file fragment to be
+- # used only with itself. We do not
+- # specifically use the
+- # TM_MULTILIB_OPTION framework because
+- # this shorthand is more
+- # pragmatic. Additionally it is only
+- # designed to work without any
+- # with-cpu, with-arch with-mode
+- # with-fpu or with-float options.
+- if test "x$with_arch" != x \
+- || test "x$with_cpu" != x \
+- || test "x$with_float" != x \
+- || test "x$with_fpu" != x \
+- || test "x$with_mode" != x ; then
+- echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
+- exit 1
+- fi
+- tmake_file="${tmake_file} arm/t-aprofile"
+- break
+- ;;
+- default)
+- ;;
+- *)
+- echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
+- exit 1
+- ;;
+- esac
+- done
+- fi
+ ;;
+
+ fr*-*-*linux*)
+diff --git a/gcc/config/arm/t-mlibs b/gcc/config/arm/t-mlibs
+new file mode 100644
+index 0000000..5720cf7
+--- /dev/null
++++ b/gcc/config/arm/t-mlibs
+@@ -0,0 +1,89 @@
++# A set of predefined MULTILIB which can be used for different ARM targets.
++# Via the configure option --with-multilib-list, user can customize the
++# final MULTILIB implementation.
++
++comma := ,
++space :=
++space +=
++
++MULTILIB_OPTIONS = mthumb/marm
++MULTILIB_DIRNAMES = thumb arm
++MULTILIB_OPTIONS += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7
++MULTILIB_DIRNAMES += armv6-m armv7-m armv7e-m armv7-ar
++MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard
++MULTILIB_DIRNAMES += softfp fpu
++MULTILIB_OPTIONS += mfpu=fpv4-sp-d16/mfpu=vfpv3-d16
++MULTILIB_DIRNAMES += fpv4-sp-d16 vfpv3-d16
++
++MULTILIB_MATCHES = march?armv6s-m=mcpu?cortex-m0
++MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m0plus
++MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m1
++MULTILIB_MATCHES += march?armv6s-m=march?armv6-m
++MULTILIB_MATCHES += march?armv7-m=mcpu?cortex-m3
++MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m4
++MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m7
++MULTILIB_MATCHES += march?armv7=march?armv7-r
++MULTILIB_MATCHES += march?armv7=march?armv7-a
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r5
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r7
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a7
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9
++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a15
++MULTILIB_MATCHES += mfpu?fpv4-sp-d16=mfpu?fpv5-sp-d16
++MULTILIB_MATCHES += mfpu?fpv4-sp-d16=mfpu?fpv5-d16
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd-fp16
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4-d16
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-fp16
++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-vfpv4
++
++MULTILIB_EXCEPTIONS =
++MULTILIB_REUSE =
++
++MULTILIB_REQUIRED = mthumb
++MULTILIB_REQUIRED += marm
++MULTILIB_REQUIRED += mfloat-abi=hard
++
++MULTILIB_OSDIRNAMES = mthumb=!thumb
++MULTILIB_OSDIRNAMES += marm=!arm
++MULTILIB_OSDIRNAMES += mfloat-abi.hard=!fpu
++
++ifneq (,$(findstring armv6-m,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED += mthumb/march=armv6s-m
++MULTILIB_OSDIRNAMES += mthumb/march.armv6s-m=!armv6-m
++endif
++
++ifneq (,$(findstring armv7-m,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED += mthumb/march=armv7-m
++MULTILIB_OSDIRNAMES += mthumb/march.armv7-m=!armv7-m
++endif
++
++ifneq (,$(findstring armv7e-m,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED += mthumb/march=armv7e-m
++MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=softfp/mfpu=fpv4-sp-d16
++MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=hard/mfpu=fpv4-sp-d16
++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m=!armv7e-m
++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.hard/mfpu.fpv4-sp-d16=!armv7e-m/fpu
++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.softfp/mfpu.fpv4-sp-d16=!armv7e-m/softfp
++endif
++
++ifneq (,$(filter armv7 armv7-r armv7-a,$(subst $(comma),$(space),$(with_multilib_list))))
++MULTILIB_REQUIRED += mthumb/march=armv7
++MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=softfp/mfpu=vfpv3-d16
++MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=hard/mfpu=vfpv3-d16
++MULTILIB_OSDIRNAMES += mthumb/march.armv7=!armv7-ar/thumb
++MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=!armv7-ar/thumb/fpu
++MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=!armv7-ar/thumb/softfp
++MULTILIB_REUSE += mthumb/march.armv7=marm/march.armv7
++MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16
++MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16
++endif
+diff --git a/gcc/configure b/gcc/configure
+index 9523773..24952e3 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -763,6 +763,7 @@ SET_MAKE
+ accel_dir_suffix
+ real_target_noncanonical
+ enable_as_accelerator
++with_multilib_list
+ REPORT_BUGS_TEXI
+ REPORT_BUGS_TO
+ PKGVERSION
+@@ -7462,6 +7463,7 @@ else
+ fi
+
+
++
+ # -------------------------
+ # Checks for other programs
+ # -------------------------
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index 68b0ee8..f8a1097 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -925,6 +925,7 @@ AC_ARG_WITH(multilib-list,
+ [AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])],
+ :,
+ with_multilib_list=default)
++AC_SUBST(with_multilib_list)
+
+ # -------------------------
+ # Checks for other programs
+
diff --git a/gnu/packages/patches/gcc-6-cross-environment-variables.patch b/gnu/packages/patches/gcc-6-cross-environment-variables.patch
new file mode 100644
index 0000000000..285e78f162
--- /dev/null
+++ b/gnu/packages/patches/gcc-6-cross-environment-variables.patch
@@ -0,0 +1,65 @@
+Search path environment variables for cross-compilers. See the discussion
+at <http://gcc.gnu.org/ml/gcc/2013-02/msg00124.html>.
+
+Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed
+at <http://bugs.gnu.org/22186>.
+
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -461,8 +461,8 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+ int stdinc, int cxx_stdinc, int verbose)
+ {
+ static const char *const lang_env_vars[] =
+- { "C_INCLUDE_PATH", "CPLUS_INCLUDE_PATH",
+- "OBJC_INCLUDE_PATH", "OBJCPLUS_INCLUDE_PATH" };
++ { "CROSS_C_INCLUDE_PATH", "CROSS_CPLUS_INCLUDE_PATH",
++ "CROSS_OBJC_INCLUDE_PATH", "CROSS_OBJCPLUS_INCLUDE_PATH" };
+ cpp_options *cpp_opts = cpp_get_options (pfile);
+ size_t idx = (cpp_opts->objc ? 2: 0);
+
+@@ -473,7 +473,7 @@ register_include_chains (cpp_reader *pfile, const char *sysroot,
+
+ /* CPATH and language-dependent environment variables may add to the
+ include chain. */
+- add_env_var_paths ("CPATH", BRACKET);
++ add_env_var_paths ("CROSS_CPATH", BRACKET);
+ add_env_var_paths (lang_env_vars[idx], SYSTEM);
+
+ target_c_incpath.extra_pre_includes (sysroot, iprefix, stdinc);
+diff --git a/gcc/system.h b/gcc/system.h
+index 42bc509..af3b9ad 100644
+--- a/gcc/system.h
++++ b/gcc/system.h
+@@ -1063,4 +1063,6 @@ helper_const_non_const_cast (const char *p)
+ /* Get definitions of HOST_WIDE_INT and HOST_WIDEST_INT. */
+ #include "hwint.h"
+
++#define LIBRARY_PATH_ENV "CROSS_LIBRARY_PATH"
++
+ #endif /* ! GCC_SYSTEM_H */
+diff --git a/gcc/tlink.c b/gcc/tlink.c
+index bc358b8..ad6242f 100644
+--- a/gcc/tlink.c
++++ b/gcc/tlink.c
+@@ -458,7 +458,7 @@ recompile_files (void)
+ file *f;
+
+ putenv (xstrdup ("COMPILER_PATH="));
+- putenv (xstrdup ("LIBRARY_PATH="));
++ putenv (xstrdup (LIBRARY_PATH_ENV "="));
+
+ while ((f = file_pop ()) != NULL)
+ {
+diff --git a/gcc/gcc.c b/gcc/gcc.c
+index 0f042b0..c23fb0b 100644
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -4264,7 +4264,7 @@ process_command (unsigned int decoded_options_count,
+ }
+
+ temp = env.get (LIBRARY_PATH_ENV);
+- if (temp && *cross_compile == '0')
++ if (temp)
+ {
+ const char *startp, *endp;
+ char *nstore = (char *) alloca (strlen (temp) + 3);
diff --git a/gnu/packages/patches/gd-CVE-2016-8670.patch b/gnu/packages/patches/gd-CVE-2016-8670.patch
new file mode 100644
index 0000000000..39ee99ac31
--- /dev/null
+++ b/gnu/packages/patches/gd-CVE-2016-8670.patch
@@ -0,0 +1,38 @@
+Fix CVE-2016-8670 (buffer overflow in dynamicGetbuf()):
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-8670
+http://seclists.org/oss-sec/2016/q4/138
+
+Patch copied from upstream source repository:
+
+https://github.com/libgd/libgd/commit/53110871935244816bbb9d131da0bccff734bfe9
+
+From 53110871935244816bbb9d131da0bccff734bfe9 Mon Sep 17 00:00:00 2001
+From: "Christoph M. Becker" <cmbecker69@gmx.de>
+Date: Wed, 12 Oct 2016 11:15:32 +0200
+Subject: [PATCH] Avoid potentially dangerous signed to unsigned conversion
+
+We make sure to never pass a negative `rlen` as size to memcpy(). See
+also <https://bugs.php.net/bug.php?id=73280>.
+
+Patch provided by Emmanuel Law.
+---
+ src/gd_io_dp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gd_io_dp.c b/src/gd_io_dp.c
+index 135eda3..228bfa5 100644
+--- a/src/gd_io_dp.c
++++ b/src/gd_io_dp.c
+@@ -276,7 +276,7 @@ static int dynamicGetbuf(gdIOCtxPtr ctx, void *buf, int len)
+ if(remain >= len) {
+ rlen = len;
+ } else {
+- if(remain == 0) {
++ if(remain <= 0) {
+ /* 2.0.34: EOF is incorrect. We use 0 for
+ * errors and EOF, just like fileGetbuf,
+ * which is a simple fread() wrapper.
+--
+2.10.1
+
diff --git a/gnu/packages/patches/hdf4-architectures.patch b/gnu/packages/patches/hdf4-architectures.patch
new file mode 100644
index 0000000000..5549f11277
--- /dev/null
+++ b/gnu/packages/patches/hdf4-architectures.patch
@@ -0,0 +1,579 @@
+Copied from Debian.
+
+Description: Support additional architectures.
+Author: Francesco Paolo Lovergine <frankie@debian.org>
+
+--- a/hdf/src/hdfi.h
++++ b/hdf/src/hdfi.h
+@@ -48,6 +48,7 @@
+ /* 8 - Cray IEEE */
+ /* (i.e. Big-Endian, all 64-bit architecture w/IEEE Floats) */
+ /*--------------------------------------------------------------------------*/
++#define DFMT_S390 0x1111
+ #define DFMT_SUN 0x1111
+ #define DFMT_SUN_INTEL 0x4441
+ #define DFMT_ALLIANT 0x1111
+@@ -62,6 +63,7 @@
+ #define DFMT_CTSS 0x3331
+ #define DFMT_VAX 0x2221
+ #define DFMT_MIPSEL 0x4441
++#define DFMT_MIPSEB 0x1111
+ #define DFMT_PC 0x4441
+ #define DFMT_APPLE 0x1111
+ #define DFMT_APPLE_INTEL 0x4441
+@@ -75,6 +77,12 @@
+ #define DFMT_IA64 0x4441
+ #define DFMT_LINUX64 0x4441
+ #define DFMT_POWERPC64 0x1111
++#define DFMT_POWERPC64LE 0x4441
++#define DFMT_ARMV4L 0x4441
++#define DFMT_AARCH64 0x4441
++#define DFMT_X86_64 0x4441
++#define DFMT_SH 0x4441
++#define DFMT_SHEB 0x1111
+
+ /* I/O library constants */
+ #define UNIXUNBUFIO 1
+@@ -288,7 +296,7 @@ typedef int hdf_pint_t;
+
+ #endif /* IBM6000 */
+
+-#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux)))
++#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux) || defined(__hppa__)))
+
+ #ifndef HP9000
+ #define HP9000
+@@ -347,6 +355,10 @@ typedef int hdf_pint_t;
+ /* what each does */
+ #define JMEMSYS MEM_ANSI
+
++#ifdef __linux__
++#define FNAME_POST_UNDERSCORE
++#endif
++
+ #endif /* HP9000 */
+
+
+@@ -666,6 +678,410 @@ typedef int hdf_pint_t;
+ #endif /* !(defined(__APPLE__)) */
+
+ /*-----------------------------------------------------*/
++#if defined (__linux__) && defined (__mc68000__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#define DF_MT DFMT_MOTOROLA
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef long int int32;
++typedef unsigned long int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf; /* size of INTEGERs in Fortran compiler */
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/m68k */
++
++#if defined (__linux__) && defined (__sparc__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#define DF_MT DFMT_SUN
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++#ifdef _LP64 /* 64-bit environment */
++typedef int int32;
++typedef unsigned int uint32;
++#else /* 32-bit environment */
++typedef long int int32;
++typedef unsigned long int uint32;
++#endif
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf; /* size of INTEGERs in Fortran compiler */
++#ifdef _LP64 /* 64-bit environment */
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#else /* 32-bit environment */
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#endif
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/Sparc */
++
++#if defined (__linux__) && defined (__powerpc__) && !defined(__powerpc64__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#define DF_MT DFMT_MOTOROLA
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef signed char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef long int int32;
++typedef unsigned long int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf; /* size of INTEGERs in Fortran compiler */
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/powerpc */
++
++#if defined (__linux__) && defined (__s390__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#define DF_MT DFMT_S390
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef signed char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++#ifdef _LP64 /* 64-bit environment */
++typedef int int32;
++typedef unsigned int uint32;
++#else /* 32-bit environment */
++typedef long int int32;
++typedef unsigned long int uint32;
++#endif
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf; /* size of INTEGERs in Fortran compiler */
++#ifdef _LP64 /* 64-bit environment */
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#else /* 32-bit environment */
++typedef int hdf_pint_t; /* an integer the same size as a pointer */
++#endif
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/s390 */
++
++#if defined (__linux__) && (defined (__MIPSEB__) || defined(__MIPSEL__))
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#if defined (__MIPSEB__)
++#define DF_MT DFMT_MIPSEB
++#elif defined(__MIPSEL__)
++#define DF_MT DFMT_MIPSEL
++#endif
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef signed char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef int int32;
++typedef unsigned int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf; /* size of INTEGERs in Fortran compiler */
++typedef long int hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/mips */
++
++#if defined (__linux__) && defined (__arm__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#define DF_MT DFMT_ARMV4L
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef signed char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef int int32;
++typedef unsigned int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf; /* size of INTEGERs in Fortran compiler */
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/arm */
++
++#if defined (__linux__) && defined (__aarch64__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#define DF_MT DFMT_AARCH64
++
++typedef void VOID;
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef signed char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef int int32;
++typedef unsigned int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef int intf; /* size of INTEGERs in Fortran compiler */
++typedef long hdf_pint_t; /* an integer the same size as a pointer */
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++#define FILELIB UNIXBUFIO
++
++#ifndef BIG_LONGS
++#define BIG_LONGS
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/aarch64 */
++
+ #if defined(NEXT) || defined(NeXT)
+
+ #ifndef NEXT
+@@ -928,7 +1344,11 @@ Please check your Makefile.
+
+ #include <sys/file.h> /* for unbuffered i/o stuff */
+ #include <sys/stat.h>
+-#define DF_MT DFMT_POWERPC64
++#ifdef __LITTLE_ENDIAN__
++#define DF_MT DFMT_POWERPC64LE
++#else
++#define DF_MT DFMT_POWERPC64
++#endif
+ typedef void VOID;
+ typedef void *VOIDP;
+ typedef char *_fcd;
+@@ -952,6 +1372,11 @@ typedef long hdf_pint_t;
+ #define _fcdtocp(desc) (desc)
+ #define FILELIB UNIXBUFIO
+
++#ifndef BIG_LONGS
++#define BIG_LONGS
++#endif
++
++
+ /* JPEG #define's - Look in the JPEG docs before changing - (Q) */
+
+ /* Determine the memory manager we are going to use. Valid values are: */
+@@ -1097,6 +1522,8 @@ typedef long hdf_pint_t;
+ #define _fcdtocp(desc) (desc)
+ #define FILELIB UNIXBUFIO
+
++#define BIG_LONGS
++
+ /* JPEG #define's - Look in the JPEG docs before changing - (Q) */
+
+ /* Determine the memory manager we are going to use. Valid values are: */
+@@ -1111,6 +1538,66 @@ typedef long hdf_pint_t;
+
+ #endif /* IA64 */
+
++/* Renesas SuperH SH3(little/big)/SH4(little/big) */
++#if defined (__linux__) && defined(__sh__)
++
++#ifdef GOT_MACHINE
++If you get an error on this line more than one machine type has been defined.
++Please check your Makefile.
++#endif
++#define GOT_MACHINE 1
++
++#include <fcntl.h>
++#include <sys/types.h> /* for unbuffered file I/O */
++#include <sys/stat.h>
++#include <unistd.h>
++#include <ctype.h> /* for character macros */
++
++#if defined (__LITTLE_ENDIAN__)
++#define DF_MT DFMT_SH
++#elif defined(__BIG_ENDIAN__)
++#define DF_MT DFMT_SHEB
++#endif
++
++#ifndef VOID /* The stupid windows.h header file uses a #define instead of a typedef */
++typedef void VOID;
++#endif /* end VOID */
++
++typedef void * VOIDP;
++typedef char * _fcd;
++typedef char char8;
++typedef unsigned char uchar8;
++typedef signed char int8;
++typedef unsigned char uint8;
++typedef short int int16;
++typedef unsigned short int uint16;
++typedef long int int32;
++typedef unsigned long int uint32;
++typedef int intn;
++typedef unsigned int uintn;
++typedef float float32;
++typedef double float64;
++typedef long intf;
++typedef int hdf_pint_t;
++#define FNAME_POST_UNDERSCORE
++#define _fcdtocp(desc) (desc)
++
++#ifdef HAVE_FMPOOL
++#define FILELIB PAGEBUFIO /* enable page buffering */
++#else
++#define FILELIB UNIXBUFIO
++#endif
++
++/* JPEG #define's - Look in the JPEG docs before changing - (Q) */
++/* Determine the memory manager we are going to use. Valid values are: */
++/* MEM_DOS, MEM_ANSI, MEM_NAME, MEM_NOBS. See the JPEG docs for details on */
++/* what each does */
++#define JMEMSYS MEM_ANSI
++#define HAVE_STDC
++#define INCLUDES_ARE_ANSI
++
++#endif /* Linux/sh */
++
+ #ifndef GOT_MACHINE
+ No machine type has been defined. Your Makefile needs to have someing like
+ -DSUN or -DUNICOS in order for the HDF internal structures to be defined
+--- a/hdf/src/hconv.h
++++ b/hdf/src/hconv.h
+@@ -59,7 +59,7 @@
+ /* CONSTANT DEFINITIONS */
+ /*****************************************************************************/
+ /* Generally Big-Endian machines */
+-#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__)
++#if !defined(INTEL86) && !defined(MIPSEL) && !defined(DEC_ALPHA) && !defined(I860) && !defined(SUN386) && !(defined(__ia64) && !(defined(hpux) || defined(__hpux))) && !defined(__x86_64__) && !(defined(__powerpc__) && defined(__LITTLE_ENDIAN__)) && !defined(__aarch64__) && !defined(__ARM_EABI__)
+ # define UI8_IN DFKnb1b /* Unsigned Integer, 8 bits */
+ # define UI8_OUT DFKnb1b
+ # define SI16_IN DFKnb2b /* S = Signed */
diff --git a/gnu/packages/patches/irrlicht-mesa-10.patch b/gnu/packages/patches/irrlicht-mesa-10.patch
deleted file mode 100644
index b567c384a3..0000000000
--- a/gnu/packages/patches/irrlicht-mesa-10.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Patch to work around incompatibility between irrlicht-1.8.1 and mesa-10.x.
-Upstream bug (fixed in trunk): http://sourceforge.net/p/irrlicht/bugs/429/
-Upstream fix: http://sourceforge.net/p/irrlicht/code/4810
-This patch copied from:
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-games/irrlicht/files/irrlicht-1.8.1-mesa-10.x.patch?view=markup
-
-From 244d00280c1b082ca164f92337773e9e4e1a3898 Mon Sep 17 00:00:00 2001
-From: hiker <henrichsjoerg@mgail.com>
-Date: Wed, 26 Feb 2014 11:13:03 +1100
-Subject: [PATCH] Applied patch from jpirie for fixing mesa 10 compilation
- problems.
-
---- irrlicht-1.8.1/source/Irrlicht/COpenGLExtensionHandler.h
-+++ irrlicht-1.8.1/source/Irrlicht/COpenGLExtensionHandler.h
-@@ -21,6 +21,7 @@
- #endif
- #include <GL/gl.h>
- #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
-+ typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
- #include "glext.h"
- #endif
- #include "wglext.h"
-@@ -35,6 +36,7 @@
- #endif
- #include <OpenGL/gl.h>
- #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
-+ typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
- #include "glext.h"
- #endif
- #elif defined(_IRR_COMPILE_WITH_SDL_DEVICE_) && !defined(_IRR_COMPILE_WITH_X11_DEVICE_)
-@@ -48,6 +50,7 @@
- #define NO_SDL_GLEXT
- #include <SDL/SDL_video.h>
- #include <SDL/SDL_opengl.h>
-+ typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
- #include "glext.h"
- #else
- #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
-@@ -60,6 +63,7 @@
- #include <GL/gl.h>
- #include <GL/glx.h>
- #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
-+ typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
- #include "glext.h"
- #undef GLX_ARB_get_proc_address // avoid problems with local glxext.h
- #include "glxext.h"
diff --git a/gnu/packages/patches/node-9077.patch b/gnu/packages/patches/node-9077.patch
new file mode 100644
index 0000000000..e57f5caac7
--- /dev/null
+++ b/gnu/packages/patches/node-9077.patch
@@ -0,0 +1,30 @@
+From fc164acbbb700fd50ab9c04b47fc1b2687e9c0f4 Mon Sep 17 00:00:00 2001
+From: "Bradley T. Hughes" <bradleythughes@fastmail.fm>
+Date: Thu, 13 Oct 2016 07:38:38 +0000
+Subject: [PATCH] build: add -DZLIB_CONST when building with --shared-zlib
+
+Commit 782620f added the define only when building with the bundled
+zlib. Using a shared zlib results in build breakage:
+
+../src/inspector_agent.cc:179:16: error: assigning to 'Bytef *' (aka 'unsigned char *') from incompatible type
+ 'const uint8_t *' (aka 'const unsigned char *')
+ strm.next_in = PROTOCOL_JSON + 3;
+ ^ ~~~~~~~~~~~~~~~~~
+1 error generated.
+---
+ node.gyp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/node.gyp b/node.gyp
+index fa98547..d799ba1 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -480,6 +480,8 @@
+ }],
+ [ 'node_shared_zlib=="false"', {
+ 'dependencies': [ 'deps/zlib/zlib.gyp:zlib' ],
++ }, {
++ 'defines': [ 'ZLIB_CONST' ],
+ }],
+
+ [ 'node_shared_http_parser=="false"', {
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 6f779feccb..8bfe2c1a89 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -8,6 +8,7 @@
;;; Coypright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Coypright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Coypright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Coypright © 2016 Julien Lepiller <julien@lepiller.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -46,6 +47,11 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages backup)
#:use-module (gnu packages lesstif)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages photo)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
@@ -697,3 +703,51 @@ such as smooth alpha-blended slide transitions. It provides additional tools
such as zooming, highlighting an area of the screen, and a tool to navigate
the PDF pages.")
(license license:gpl2)))
+
+(define-public fbida
+ (package
+ (name "fbida")
+ (version "2.12")
+ (home-page "https://www.kraxel.org/blog/linux/fbida/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.kraxel.org/releases/fbida/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0bw224vb7jh0lrqaf4jgxk48xglvxs674qcpj5y0axyfbh896cfk"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-after
+ 'unpack 'patch-ldconfig
+ (lambda _
+ (substitute* "mk/Autoconf.mk"
+ (("/sbin/ldconfig -p") "echo lib")) #t)
+ (alist-delete 'configure %standard-phases))
+ #:tests? #f
+ #:make-flags (list "CC=gcc"
+ (string-append "prefix=" (assoc-ref %outputs "out")))))
+ (inputs `(("libjpeg" ,libjpeg)
+ ("curl" ,curl)
+ ("libtiff" ,libtiff)
+ ("libudev" ,eudev)
+ ("libwebp" ,libwebp)
+ ("libdrm" ,libdrm)
+ ("imagemagick" ,imagemagick)
+ ("giflib" ,giflib)
+ ("glib" ,glib)
+ ("cairo-xcb" ,cairo-xcb)
+ ("freetype" ,freetype)
+ ("fontconfig" ,fontconfig)
+ ("libexif" ,libexif)
+ ("mesa" ,mesa)
+ ("libepoxy" ,libepoxy)
+ ("libpng" ,libpng)
+ ("poppler" ,poppler)))
+ (native-inputs `(("pkg-config" ,pkg-config)))
+ (synopsis "Framebuffer and drm-based image viewer")
+ (description
+ "fbida contains a few applications for viewing and editing images on
+the framebuffer.")
+
+ (license license:gpl2+)))
diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm
index 8eb5337b6a..f4d110edbc 100644
--- a/gnu/packages/photo.scm
+++ b/gnu/packages/photo.scm
@@ -51,14 +51,14 @@
(define-public libraw
(package
(name "libraw")
- (version "0.17.0")
+ (version "0.17.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.libraw.org/data/LibRaw-"
version ".tar.gz"))
(sha256
(base32
- "043kckxjqanw8dl3m9f6kvsf0l20ywxmgxd1xb0slj6m8l4w4hz6"))))
+ "0p6imxpsfn82i0i9w27fnzq6q6gwzvb9f7sygqqakv36fqnc9c4j"))))
(build-system gnu-build-system)
(home-page "http://www.libraw.org")
(synopsis "Raw image decoder")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e0ead5075c..0e648cd724 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -785,7 +785,7 @@ concepts.")
(arguments '(#:test-target "check"))
(native-inputs
`(("python-pbr" ,python-pbr)))
- (home-page "http://code.google.com/p/pylockfile/")
+ (home-page "https://launchpad.net/pylockfile")
(synopsis "Platform-independent file locking module")
(description
"The lockfile package exports a LockFile class which provides a simple
@@ -922,7 +922,7 @@ etc.). The package is structured to make adding new modules easy.")
`(("python-pycrypto" ,python-pycrypto)))
(arguments
`(#:tests? #f)) ;TODO: tests require pytest
- (home-page "http://bitbucket.org/kang/python-keyring-lib")
+ (home-page "https://github.com/jaraco/keyring")
(synopsis "Store and access your passwords safely")
(description
"The Python keyring lib provides a easy way to access the system keyring
@@ -1737,9 +1737,6 @@ supports coverage of subprocesses.")
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
-(define-public python2-pytest-runner
- (package-with-python2 python-pytest-runner))
-
(define-public python-pytest-mock
(package
(name "python-pytest-mock")
@@ -1789,7 +1786,15 @@ same arguments.")
(uri (pypi-uri "pytest-xdist" version ".zip"))
(sha256
(base32
- "08rn2l39ds60xshs4js787l84pfckksqklfq2wq9x8ig2aci2pja"))))
+ "08rn2l39ds60xshs4js787l84pfckksqklfq2wq9x8ig2aci2pja"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove pre-compiled .pyc files from source.
+ (for-each delete-file-recursively
+ (find-files "." "__pycache__" #:directories? #t))
+ (for-each delete-file (find-files "." "\\.pyc$"))
+ #t))))
(build-system python-build-system)
(native-inputs
`(("unzip" ,unzip)
@@ -5776,9 +5781,6 @@ reading and writing MessagePack data.")
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))))
-(define-public python2-msgpack
- (package-with-python2 python-msgpack))
-
(define-public python-netaddr
(package
(name "python-netaddr")
@@ -6033,15 +6035,14 @@ designed to efficently cope with extremely large amounts of data.")
(define-public python-pyasn1
(package
(name "python-pyasn1")
- (version "0.1.8")
+ (version "0.1.9")
(source
(origin
(method url-fetch)
- (uri (string-append "https://pypi.python.org/packages/source/p/"
- "pyasn1/pyasn1-" version ".tar.gz"))
+ (uri (pypi-uri "pyasn1" version))
(sha256
(base32
- "0iw31d9l0zwx35szkzq72hiw002wnqrlrsi9dpbrfngcl1ybwcsx"))))
+ "0zraxni14bqi20kr4bi6nwsh32aibz0fq0xaczfisw0zdpcsqg45"))))
(build-system python-build-system)
(home-page "http://pyasn1.sourceforge.net/")
(synopsis "ASN.1 types and codecs")
@@ -6285,15 +6286,14 @@ message digests and key derivation functions.")
(define-public python-pyopenssl
(package
(name "python-pyopenssl")
- (version "16.0.0")
+ (version "16.1.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://pypi.python.org/packages/source/p/"
- "pyOpenSSL/pyOpenSSL-" version ".tar.gz"))
+ (uri (pypi-uri "pyOpenSSL" version))
(sha256
(base32
- "0zfijaxlq4vgi6jz0d4i5xq9ygqnyps6br7lmigjhqnh8gp10g9n"))))
+ "0prm06zz7hl6bk5s2lqzw25lq6smayfv2fgiliw2rbqxlyiavxw8"))))
(build-system python-build-system)
(propagated-inputs
`(("python-cryptography" ,python-cryptography)
@@ -6684,7 +6684,13 @@ that have uses outside of the Zope framework.")
"/zope.testing/zope.testing-" version ".tar.gz"))
(sha256
(base32
- "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s"))))
+ "1yvglxhzvhl45mndvn9gskx2ph30zz1bz7rrlyfs62fv2pvih90s"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove pre-compiled .pyc files backup files from source.
+ (for-each delete-file (find-files "." "(\\.pyc|~)$"))
+ #t))))
(build-system python-build-system)
(native-inputs
`(("python-zope-exceptions" ,python-zope-exceptions)))
@@ -7010,14 +7016,14 @@ timestamps.")
(define-public python-werkzeug
(package
(name "python-werkzeug")
- (version "0.11.5")
+ (version "0.11.11")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Werkzeug" version))
(sha256
(base32
- "0r41xqp4cypzcgsf6zbspbqd272wnzf20igb4w4b5wzfhgqh9nxg"))))
+ "1rgpq8a2qv26d75v9j3b074inirlyy6y4b5x4rxblp202jy4cb77"))))
(build-system python-build-system)
(native-inputs
`(("python-pytest" ,python-pytest)))
@@ -8884,6 +8890,36 @@ library.")
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs responses))))))
+(define-public python-whoosh
+ (package
+ (name "python-whoosh")
+ (version "2.7.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "Whoosh" version))
+ (sha256
+ (base32
+ "10qsqdjpbc85fykc1vgcs8xwbgn4l2l52c8d83xf1q59pwyn79bw"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("python-pytest" ,python-pytest)))
+ (home-page "http://bitbucket.org/mchaput/whoosh")
+ (synopsis "Full text indexing, search, and spell checking library")
+ (description
+ "Whoosh is a fast, pure-Python full text indexing, search, and spell
+checking library.")
+ (license license:bsd-2)))
+
+(define-public python2-whoosh
+ (let ((whoosh (package-with-python2 (strip-python2-variant python-whoosh))))
+ (package (inherit whoosh)
+ (propagated-inputs
+ `(("python2-backport-ssl-match-hostname"
+ ,python2-backport-ssl-match-hostname)
+ ,@(package-propagated-inputs whoosh))))))
+
(define-public python-pathlib
(package
(name "python-pathlib")
@@ -8910,7 +8946,12 @@ be done easily through operators, attribute accesses, and method calls.
comparing Windows paths ignores casing.
@item Well-defined semantics, eliminating any inconsistencies or
ambiguities (forward vs. backward slashes, etc.).
-@end enumerate\n")
+@end enumerate
+
+Note: In Python 3.4, pathlib is now part of the standard library. For other
+Python versions please consider python-pathlib2 instead, which tracks the
+standard library module. This module (python-pathlib) isn't maintained
+anymore.")
(license license:expat)))
(define-public python2-pathlib
@@ -9886,14 +9927,14 @@ until the object is actually required, and caches the result of said call.")
(define-public python-dnspython
(package
(name "python-dnspython")
- (version "1.14.0")
+ (version "1.15.0")
(source (origin
(method url-fetch)
(uri (string-append "http://www.dnspython.org/kits/"
version "/dnspython-" version ".tar.gz"))
(sha256
(base32
- "1z472r63gdqsxhsxj3plr5vs478yf4303vrqxxpsccc940g441hl"))))
+ "0jr4v2pd90i6l1xxbss2m05psbjaxvyvvvpq44wycijpfgjqln8i"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; XXX: requires internet access
(native-inputs
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index a482d7572a..a1e5fdef96 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -61,7 +61,7 @@
(define-public qt
(package
(name "qt")
- (version "5.6.1-1")
+ (version "5.6.2")
(source (origin
(method url-fetch)
(uri
@@ -73,7 +73,7 @@
version ".tar.xz"))
(sha256
(base32
- "1nrn2wivjwdxc9q03gpsi336gcl9l2axi0xjbzsha5v6akmsf26f"))
+ "1cw93mrlkqbwndfqyjpsvjzkpzi39px2is040xvk18mvg3y1prl3"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -203,7 +203,7 @@
"-no-avx2"
"-no-mips_dsp"
"-no-mips_dspr2"))))))))
- (home-page "http://qt-project.org/")
+ (home-page "https://www.qt.io/")
(synopsis "Cross-platform GUI library")
(description "Qt is a cross-platform application and UI framework for
developers using C++ or QML, a CSS & JavaScript like language.")
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 23d22a3721..60f1992281 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -423,13 +423,13 @@ expectations and mocks frameworks.")
(define-public bundler
(package
(name "bundler")
- (version "1.13.2")
+ (version "1.13.5")
(source (origin
(method url-fetch)
(uri (rubygems-uri "bundler" version))
(sha256
(base32
- "05gwyhfn103vrmrw13r3n78bcl75mrj82ipsbazcl08wg1bql7x6"))))
+ "0fxr7aq7qhlga423mygy7q96cwxmvqlcy676v2x5swlw8rlha2in"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; avoid dependency cycles
@@ -2477,6 +2477,8 @@ a native C extension.")
(substitute* "Rakefile"
(("FileList\\[`git ls-files`\\.split\\(/\\\\n/\\)\\]")
(string-append "FileList" files))))
+ (substitute* "Gemfile"
+ ((".*json-java.*") "\n"))
#t)))))
(native-inputs
`(("ruby-permutation" ,ruby-permutation)
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 4a3278fb9f..31444509f1 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,7 +38,7 @@
(define-public cereal
(package
(name "cereal")
- (version "1.1.2")
+ (version "1.2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/USCiLab/cereal/archive/v"
@@ -45,7 +46,7 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "13bvsfzvm7yyp97k20iznq2j14dj3qiczvpq7g8897njw46psq25"))))
+ "0kj32h3j2128anig0g9gzw82kfyd5xqfkwq6vdyv900jx8i1qckx"))))
(build-system cmake-build-system)
(arguments
`(;; The only included tests are portability tests requiring
@@ -153,7 +154,7 @@ serialization.")
(define-public jsoncpp
(package
(name "jsoncpp")
- (version "1.7.4")
+ (version "1.7.7")
(source (origin
(method url-fetch)
(uri (string-append
@@ -162,7 +163,7 @@ serialization.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0sgp6nc4c6pfn92f369v08zdwpqswn9j2ihy59bpwwl0grkx1p0h"))))
+ "15wg14480lrbrhc2myk9rwpwb2gzix9bk80p4y7gxg3zrzml0xh8"))))
(build-system cmake-build-system)
(home-page "https://github.com/open-source-parsers/jsoncpp")
(synopsis "C++ library for interacting with JSON")
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index c551f18481..9fd1506dbd 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -37,6 +37,7 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
+ #:use-module (gnu packages mit-krb5)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:autoload (gnu packages protobuf) (protobuf)
@@ -126,15 +127,21 @@ a server that supports the SSH-2 protocol.")
(inputs `(("groff" ,groff)
("openssl" ,openssl)
("pam" ,linux-pam)
+ ("mit-krb5" ,mit-krb5)
("zlib" ,zlib)
("xauth" ,xauth))) ;for 'ssh -X' and 'ssh -Y'
(arguments
`(#:test-target "tests"
- #:configure-flags '("--sysconfdir=/etc/ssh"
+ #:configure-flags `("--sysconfdir=/etc/ssh"
- ;; Default value of 'PATH' used by sshd.
+ ;; Default value of 'PATH' used by sshd.
"--with-default-path=/run/current-system/profile/bin"
+ ;; configure needs to find krb5-config
+ ,(string-append "--with-kerberos5="
+ (assoc-ref %build-inputs "mit-krb5")
+ "/bin")
+
;; Enable PAM support in sshd.
"--with-pam")
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 5bea5ab536..97dd0a82bd 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -88,7 +88,7 @@ configureable through a graphical wizard.")
(define-public termite
(package
(name "termite")
- (version "11")
+ (version "12")
(source
(origin
(method git-fetch)
@@ -99,11 +99,13 @@ configureable through a graphical wizard.")
(recursive? #t)))
(file-name (string-append name "-" version "-checkout"))
(sha256
- (base32
- "1cw4yw7n9m2si8b7zcfyz9pyihncabxm5g39v1mxslfajxgwzmd8"))))
+ (base32
+ "0s6dyg3vcqk5qcx90bs24wdnd3p56rdjdcanx4pcxvp6ksjl61jz"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (alist-delete 'configure %standard-phases)
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure))
#:tests? #f
;; This sets the destination when installing the necessary terminal
;; capability data, which are not provided by 'ncurses'. See
@@ -263,7 +265,7 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
(define-public picocom
(package
(name "picocom")
- (version "2.1")
+ (version "2.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -272,7 +274,7 @@ multi-seat support, a replacement for @command{mingetty}, and more.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1v891cx18vx3lnpfaq90f5y6njgigkn4qsikhrmyzshnz32jy5bb"))))
+ "1knl6dglnrynx1fhy21nylw56i1q3dkizkgxzkq42mb7ilah8f9y"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CC=gcc")
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 2e3a11b51b..e965ca92cd 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -426,16 +426,13 @@ security, and applying best practice development processes.")
(define-public python-acme
(package
(name "python-acme")
- (version "0.8.1")
+ (version "0.9.3")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/"
- "f5/7a/11a99b5d1d1c692f6eed27cfab69e6ba4d2f0c2a461d2607e6a930ff2c68/"
- "acme-" version ".tar.gz"))
+ (uri (pypi-uri "acme" version))
(sha256
(base32
- "17vx2miczpd8ww4xizmc0nca2c7jf04wnhfnswx2bxhb537lmsnk"))))
+ "16a02bb0apnk1bm68bcabdmmwd6rnvnjzanrmcb46bpbapwz3vx6"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -488,16 +485,13 @@ security, and applying best practice development processes.")
(define-public certbot
(package
(name "certbot")
- (version "0.8.1")
+ (version "0.9.3")
(source (origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/"
- "a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/"
- name "-" version ".tar.gz"))
+ (uri (pypi-uri name version))
(sha256
(base32
- "0w972cf2mk74aji5d8dylg3jw6wczg01gb4asf3ndv8c64yxza3c"))))
+ "1c7k4lfq5j78d1rvrwrb9082ngwibz92cwkf4kazaa9b76w9q538"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index a4db4e774a..4ca5a97311 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -313,7 +313,7 @@ everything from small to very large projects with speed and efficiency.")
(define-public libgit2
(package
(name "libgit2")
- (version "0.24.1")
+ (version "0.24.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/libgit2/libgit2/"
@@ -321,7 +321,7 @@ everything from small to very large projects with speed and efficiency.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1ppyfwxc276d2p2pwbzlmvs2bkgng425rl8k2rf9nsq66jxqq6b0"))))
+ "1rkmfjiv5h80ycra42w9idbcrgj9rz581k5c06badys3650agw00"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@@ -344,7 +344,7 @@ everything from small to very large projects with speed and efficiency.")
("openssl" ,openssl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "http://libgit2.github.com/")
+ (home-page "https://libgit2.github.com/")
(synopsis "Library providing Git core methods")
(description
"Libgit2 is a portable, pure C implementation of the Git core methods
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index cd3dd876cb..fde5ff2c6f 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -53,14 +53,14 @@
(define-public webkitgtk
(package
(name "webkitgtk")
- (version "2.14.0")
+ (version "2.14.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
- "02paj0anbnqn1z3hn5c4csmq9nga995rzagiplj3sjk2dj1ss4q5"))))
+ "1dffnz20psgc604azhbzn9a6cdhafar9dw74w3bbwrfy531pcb9f"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no tests
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
index ef1e78e9bf..5bb58bd6f0 100644
--- a/gnu/services/sddm.scm
+++ b/gnu/services/sddm.scm
@@ -29,7 +29,7 @@
#:use-module (guix gexp)
#:use-module (guix records)
#:export (sddm-configuration
- sddm-confiugration?
+ sddm-configuration?
sddm-service-type
sddm-service))
diff --git a/guix/grafts.scm b/guix/grafts.scm
index 53e697688a..80ae27e9b0 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -227,17 +227,33 @@ resulting list of grafts.
This is a monadic procedure in %STATE-MONAD where the state is a vhash mapping
derivations to the corresponding set of grafts."
+ (define (graft-origin? drv graft)
+ ;; Return true if DRV corresponds to the origin of GRAFT.
+ (match graft
+ (($ <graft> (? derivation? origin) output)
+ (match (assoc-ref (derivation->output-paths drv) output)
+ ((? string? result)
+ (string=? result
+ (derivation->output-path origin output)))
+ (_
+ #f)))
+ (_
+ #f)))
+
(define (dependency-grafts item)
(let-values (((drv output) (item->deriver store item)))
(if drv
- (cumulative-grafts store drv grafts references
- #:outputs (list output)
- #:guile guile
- #:system system)
+ ;; If GRAFTS already contains a graft from DRV, do not override it.
+ (if (find (cut graft-origin? drv <>) grafts)
+ (state-return grafts)
+ (cumulative-grafts store drv grafts references
+ #:outputs (list output)
+ #:guile guile
+ #:system system))
(state-return grafts))))
(define (return/cache cache value)
- (mbegin %store-monad
+ (mbegin %state-monad
(set-current-state (vhash-consq drv value cache))
(return value)))
@@ -250,10 +266,8 @@ derivations to the corresponding set of grafts."
(() ;no dependencies
(return/cache cache grafts))
(deps ;one or more dependencies
- (mlet %state-monad ((grafts (mapm %state-monad dependency-grafts deps))
- (cache (current-state)))
- (let* ((grafts (delete-duplicates (concatenate grafts) equal?))
- (origins (map graft-origin-file-name grafts)))
+ (mlet %state-monad ((grafts (mapm %state-monad dependency-grafts deps)))
+ (let ((grafts (delete-duplicates (concatenate grafts) equal?)))
(match (filter (lambda (graft)
(member (graft-origin-file-name graft) deps))
grafts)
diff --git a/guix/import/utils.scm b/guix/import/utils.scm
index e4059ca114..057c2d9c7d 100644
--- a/guix/import/utils.scm
+++ b/guix/import/utils.scm
@@ -26,7 +26,6 @@
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
- #:use-module (json)
#:use-module (srfi srfi-1)
#:export (factorize-uri
diff --git a/guix/packages.scm b/guix/packages.scm
index 88b21f709d..beb958f156 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -919,7 +919,8 @@ and return it."
(cached (=> %graft-cache) package system
(let ((orig (package-derivation store package system
#:graft? #f))
- (new (package-derivation store replacement system)))
+ (new (package-derivation store replacement system
+ #:graft? #t)))
(graft
(origin orig)
(replacement new)))))))
@@ -935,7 +936,8 @@ and return it."
(let ((orig (package-cross-derivation store package target system
#:graft? #f))
(new (package-cross-derivation store replacement
- target system)))
+ target system
+ #:graft? #t)))
(graft
(origin orig)
(replacement new))))))
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index 782fca5d63..2f70d64c90 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -42,6 +42,7 @@
%bag-emerged-node-type
%derivation-node-type
%reference-node-type
+ %referrer-node-type
%node-types
guix-graph))
@@ -257,6 +258,24 @@ derivation graph")))))))
;;; DAG of residual references (aka. run-time dependencies).
;;;
+(define ensure-store-items
+ ;; Return a list of store items as a monadic value based on the given
+ ;; argument, which may be a store item or a package.
+ (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 \
+this type of graph")))))))
+
(define (references* item)
"Return as a monadic value the references of ITEM, based either on the
information available in the local store or using information about
@@ -275,24 +294,27 @@ substitutes."
(node-type
(name "references")
(description "the DAG of run-time dependencies (store references)")
- (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")))))))
+ (convert ensure-store-items)
(identifier (lift1 identity %store-monad))
(label store-path-package-name)
(edges references*)))
+(define non-derivation-referrers
+ (let ((referrers (store-lift referrers)))
+ (lambda (item)
+ "Return the referrers of ITEM, except '.drv' files."
+ (mlet %store-monad ((items (referrers item)))
+ (return (remove derivation-path? items))))))
+
+(define %referrer-node-type
+ (node-type
+ (name "referrers")
+ (description "the DAG of referrers in the store")
+ (convert ensure-store-items)
+ (identifier (lift1 identity %store-monad))
+ (label store-path-package-name)
+ (edges non-derivation-referrers)))
+
;;;
;;; List of node types.
@@ -305,7 +327,8 @@ reference graph")))))))
%bag-with-origins-node-type
%bag-emerged-node-type
%derivation-node-type
- %reference-node-type))
+ %reference-node-type
+ %referrer-node-type))
(define (lookup-node-type name)
"Return the node type called NAME. Raise an error if it is not found."
diff --git a/tests/grafts.scm b/tests/grafts.scm
index f2ff839fd8..4eff06b4b3 100644
--- a/tests/grafts.scm
+++ b/tests/grafts.scm
@@ -218,4 +218,66 @@
(let ((out (derivation->output-path grafted)))
(file-is-directory? (string-append out "/" repl))))))
+(test-assert "graft-derivation, grafts are not shadowed"
+ ;; We build a DAG as below, where dotted arrows represent replacements and
+ ;; solid arrows represent dependencies:
+ ;;
+ ;; P1 ·············> P1R
+ ;; |\__________________.
+ ;; v v
+ ;; P2 ·············> P2R
+ ;; |
+ ;; v
+ ;; P3
+ ;;
+ ;; We want to make sure that the two grafts we want to apply to P3 are
+ ;; honored and not shadowed by other computed grafts.
+ (let* ((p1 (build-expression->derivation
+ %store "p1"
+ '(mkdir (assoc-ref %outputs "out"))))
+ (p1r (build-expression->derivation
+ %store "P1"
+ '(let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (call-with-output-file (string-append out "/replacement")
+ (const #t)))))
+ (p2 (build-expression->derivation
+ %store "p2"
+ `(let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p1") "p1"))
+ #:inputs `(("p1" ,p1))))
+ (p2r (build-expression->derivation
+ %store "P2"
+ `(let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p1") "p1")
+ (call-with-output-file (string-append out "/replacement")
+ (const #t)))
+ #:inputs `(("p1" ,p1))))
+ (p3 (build-expression->derivation
+ %store "p3"
+ `(let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p2") "p2"))
+ #:inputs `(("p2" ,p2))))
+ (p1g (graft
+ (origin p1)
+ (replacement p1r)))
+ (p2g (graft
+ (origin p2)
+ (replacement (graft-derivation %store p2r (list p1g)))))
+ (p3d (graft-derivation %store p3 (list p1g p2g))))
+ (and (build-derivations %store (list p3d))
+ (let ((out (derivation->output-path (pk p3d))))
+ ;; Make sure OUT refers to the replacement of P2, which in turn
+ ;; refers to the replacement of P1, as specified by P1G and P2G.
+ ;; It used to be the case that P2G would be shadowed by a simple
+ ;; P2->P2R graft, which is not what we want.
+ (and (file-exists? (string-append out "/p2/replacement"))
+ (file-exists? (string-append out "/p2/p1/replacement")))))))
+
(test-end)
diff --git a/tests/graph.scm b/tests/graph.scm
index 1ce06cc817..f2e441cee6 100644
--- a/tests/graph.scm
+++ b/tests/graph.scm
@@ -232,6 +232,28 @@ edges."
(list out txt))
(equal? edges `((,out ,txt)))))))))))
+(test-assert "referrer DAG"
+ (let-values (((backend nodes+edges) (make-recording-backend)))
+ (run-with-store %store
+ (mlet* %store-monad ((txt (text-file "referrer-node" (random-text)))
+ (drv (gexp->derivation "referrer"
+ #~(symlink #$txt #$output)))
+ (out -> (derivation->output-path drv)))
+ ;; We should see only TXT and OUT, with an edge from the former to the
+ ;; latter.
+ (mbegin %store-monad
+ (built-derivations (list drv))
+ (export-graph (list txt) 'port
+ #:node-type %referrer-node-type
+ #:backend backend)
+ (let-values (((nodes edges) (nodes+edges)))
+ (return
+ (and (equal? (match nodes
+ (((ids labels) ...)
+ ids))
+ (list txt out))
+ (equal? edges `((,txt ,out)))))))))))
+
(test-assert "node-edges"
(run-with-store %store
(let ((packages (fold-packages cons '())))
diff --git a/tests/packages.scm b/tests/packages.scm
index b8e1f111cd..5f5fb5de87 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -662,22 +662,25 @@
(origin (package-derivation %store dep))
(replacement (package-derivation %store new)))))))
-(test-assert "package-grafts, indirect grafts, cross"
- (let* ((new (dummy-package "dep"
- (arguments '(#:implicit-inputs? #f))))
- (dep (package (inherit new) (version "0.0")))
- (dep* (package (inherit dep) (replacement new)))
- (dummy (dummy-package "dummy"
- (arguments '(#:implicit-inputs? #f))
- (inputs `(("dep" ,dep*)))))
- (target "mips64el-linux-gnu"))
- ;; XXX: There might be additional grafts, for instance if the distro
- ;; defines replacements for core packages like Perl.
- (member (graft
- (origin (package-cross-derivation %store dep target))
- (replacement
- (package-cross-derivation %store new target)))
- (package-grafts %store dummy #:target target))))
+;; XXX: This test would require building the cross toolchain just to see if it
+;; needs grafting, which is obviously too expensive, and thus disabled.
+;;
+;; (test-assert "package-grafts, indirect grafts, cross"
+;; (let* ((new (dummy-package "dep"
+;; (arguments '(#:implicit-inputs? #f))))
+;; (dep (package (inherit new) (version "0.0")))
+;; (dep* (package (inherit dep) (replacement new)))
+;; (dummy (dummy-package "dummy"
+;; (arguments '(#:implicit-inputs? #f))
+;; (inputs `(("dep" ,dep*)))))
+;; (target "mips64el-linux-gnu"))
+;; ;; XXX: There might be additional grafts, for instance if the distro
+;; ;; defines replacements for core packages like Perl.
+;; (member (graft
+;; (origin (package-cross-derivation %store dep target))
+;; (replacement
+;; (package-cross-derivation %store new target)))
+;; (package-grafts %store dummy #:target target))))
(test-assert "package-grafts, indirect grafts, propagated inputs"
(let* ((new (dummy-package "dep"
@@ -719,6 +722,77 @@
(replacement #f))))
(replacement (package-derivation %store new)))))))
+(test-assert "replacement also grafted"
+ ;; We build a DAG as below, where dotted arrows represent replacements and
+ ;; solid arrows represent dependencies:
+ ;;
+ ;; P1 ·············> P1R
+ ;; |\__________________.
+ ;; v v
+ ;; P2 ·············> P2R
+ ;; |
+ ;; v
+ ;; P3
+ ;;
+ ;; We want to make sure that:
+ ;; grafts(P3) = (P1,P1R) + (P2, grafted(P2R, (P1,P1R)))
+ ;; where:
+ ;; (A,B) is a graft to replace A by B
+ ;; grafted(DRV,G) denoted DRV with graft G applied
+ (let* ((p1r (dummy-package "P1"
+ (build-system trivial-build-system)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:builder (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (call-with-output-file
+ (string-append out "/replacement")
+ (const #t)))))))
+ (p1 (package
+ (inherit p1r) (name "p1") (replacement p1r)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:builder (mkdir (assoc-ref %outputs "out"))))))
+ (p2r (dummy-package "P2"
+ (build-system trivial-build-system)
+ (inputs `(("p1" ,p1)))
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:builder (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p1") "p1")
+ (call-with-output-file (string-append out "/replacement")
+ (const #t)))))))
+ (p2 (package
+ (inherit p2r) (name "p2") (replacement p2r)
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:builder (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p1")
+ "p1"))))))
+ (p3 (dummy-package "p3"
+ (build-system trivial-build-system)
+ (inputs `(("p2" ,p2)))
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:builder (let ((out (assoc-ref %outputs "out")))
+ (mkdir out)
+ (chdir out)
+ (symlink (assoc-ref %build-inputs "p2")
+ "p2")))))))
+ (lset= equal?
+ (package-grafts %store p3)
+ (list (graft
+ (origin (package-derivation %store p1 #:graft? #f))
+ (replacement (package-derivation %store p1r)))
+ (graft
+ (origin (package-derivation %store p2 #:graft? #f))
+ (replacement
+ (package-derivation %store p2r #:graft? #t)))))))
+
;;; XXX: Nowadays 'graft-derivation' needs to build derivations beforehand to
;;; find out about their run-time dependencies, so this test is no longer
;;; applicable since it would trigger a full rebuild.