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 # Copyright © 2016 Kei Kebreau # Copyright © 2016 Rene Saavedra +# Copyright © 2016 Adonay "adfeno" Felipe Nogueira # # 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 ;;; Copyright © 2016 Matthew Jordan ;;; Copyright © 2016 Roel Janssen -;;; Copyright © 2016 ng0 +;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Alex Griffin ;;; Copyright © 2016 Nicolas Goaziou ;;; Copyright © 2016 Alex Vong @@ -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 +;;; Copyright © 2016 Theodoros Foradis ;;; ;;; 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 ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Alex Griffin +;;; Copyright © 2016 Hartmut Goebel ;;; ;;; 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 ;;; Copyright © 2016 Eraim Flashner ;;; Copyright © 2016 Alex Kost +;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira ;;; ;;; 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 . - (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: +* +* +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 + +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 +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 . + +Note: Touch 'C_INCLUDE_PATH' et al. rather than 'CPATH', as discussed +at . + +--- 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" +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 . + +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 + +--- 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 /* for unbuffered i/o stuff */ + #include +-#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 ++#include /* for unbuffered file I/O */ ++#include ++#include ++#include /* 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 -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 - #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 - #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 - #include -+ typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); - #include "glext.h" - #else - #if defined(_IRR_OPENGL_USE_EXTPOINTER_) -@@ -60,6 +63,7 @@ - #include - #include - #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" +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 ;;; Coypright © 2016 Marius Bakke ;;; Coypright © 2016 Ludovic Courtès +;;; Coypright © 2016 Julien Lepiller ;;; ;;; 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 ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2016 Efraim Flashner ;;; ;;; 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 + (($ (? 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.