diff options
author | Leo Famulari <leo@famulari.name> | 2017-06-07 12:11:24 -0400 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2017-06-07 12:11:55 -0400 |
commit | c67d587f94173fd42d65097165afc5c512935646 (patch) | |
tree | ee2bac9d683d0dec98d611d5e590b06d9876cad3 | |
parent | 4f493cba06b97de756123b3855ea52dcf1ad3555 (diff) | |
parent | 4679dd6967c21e21c740cd88e17191b8e2aac5ee (diff) | |
download | guix-c67d587f94173fd42d65097165afc5c512935646.tar guix-c67d587f94173fd42d65097165afc5c512935646.tar.gz |
Merge branch 'master' into core-updates
This merge commit includes a fix for CVE-2017-6512 in Perl 5.26.0.
50 files changed, 1683 insertions, 412 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index e8fba43afe..f69c84dea6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5329,7 +5329,7 @@ a container similar to the one the build daemon creates: $ guix build -K foo @dots{} $ cd /tmp/guix-build-foo.drv-0 -$ guix environment -C foo --ad-hoc strace gdb +$ guix environment --no-grafts -C foo --ad-hoc strace gdb [env]# source ./environment-variables [env]# cd foo-1.2 @end example @@ -5337,7 +5337,10 @@ $ guix environment -C foo --ad-hoc strace gdb Here, @command{guix environment -C} creates a container and spawns a new shell in it (@pxref{Invoking guix environment}). The @command{--ad-hoc strace gdb} part adds the @command{strace} and @command{gdb} commands to -the container, which would may find handy while debugging. +the container, which would may find handy while debugging. The +@option{--no-grafts} option makes sure we get the exact same +environment, with ungrafted packages (@pxref{Security Updates}, for more +info on grafts). To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}: @@ -9260,6 +9263,12 @@ Whether to use substitutes. @item @code{substitute-urls} (default: @var{%default-substitute-urls}) The list of URLs where to look for substitutes by default. +@item @code{max-silent-time} (default: @code{0}) +@itemx @code{timeout} (default: @code{0}) +The number of seconds of silence and the number of seconds of activity, +respectively, after which a build process times out. A value of zero +disables the timeout. + @item @code{extra-options} (default: @code{'()}) List of extra command-line options for @command{guix-daemon}. diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 10be0dc83c..7737de3d03 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -268,12 +268,18 @@ as a bytevector, or #f if DEVICE does not contain an iso9660 file system." (define (iso9660-superblock-uuid sblock) "Return the modification time of an iso9660 primary volume descriptor -SBLOCK as a bytevector." +SBLOCK as a bytevector. If that's not set, returns the creation time." ;; Drops GMT offset for compatibility with Grub, blkid and /dev/disk/by-uuid. ;; Compare Grub: "2014-12-02-19-30-23-00". ;; Compare blkid result: "2014-12-02-19-30-23-00". ;; Compare /dev/disk/by-uuid entry: "2014-12-02-19-30-23-00". - (sub-bytevector sblock 830 16)) + (let* ((creation-time (sub-bytevector sblock 813 17)) + (modification-time (sub-bytevector sblock 830 17)) + (unset-time (make-bytevector 17 0)) + (time (if (bytevector=? unset-time modification-time) + creation-time + modification-time))) + (sub-bytevector time 0 16))) ; strips GMT offset. (define (iso9660-uuid->string uuid) "Given an UUID bytevector, return its timestamp string." diff --git a/gnu/local.mk b/gnu/local.mk index 015267f09d..74630eb9fa 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -208,6 +208,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/irc.scm \ %D%/packages/iso-codes.scm \ %D%/packages/java.scm \ + %D%/packages/javascript.scm \ %D%/packages/jemalloc.scm \ %D%/packages/jrnl.scm \ %D%/packages/julia.scm \ @@ -631,7 +632,6 @@ dist_patch_DATA = \ %D%/packages/patches/glog-gcc-5-demangling.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ - %D%/packages/patches/gnome-shell-CVE-2017-8288.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ @@ -724,6 +724,8 @@ dist_patch_DATA = \ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \ %D%/packages/patches/libextractor-ffmpeg-3.patch \ %D%/packages/patches/libgit2-0.25.1-mtime-0.patch \ + %D%/packages/patches/libgdata-fix-tests.patch \ + %D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgit2-use-after-free.patch \ %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ @@ -738,6 +740,7 @@ dist_patch_DATA = \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ + %D%/packages/patches/libssh-hostname-parser-bug.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ @@ -840,6 +843,7 @@ dist_patch_DATA = \ %D%/packages/patches/ocaml-findlib-make-install.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/ola-readdir-r.patch \ + %D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \ %D%/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch \ @@ -859,6 +863,7 @@ dist_patch_DATA = \ %D%/packages/patches/pcre-CVE-2017-7186.patch \ %D%/packages/patches/pcre2-CVE-2017-7186.patch \ %D%/packages/patches/pcre2-CVE-2017-8786.patch \ + %D%/packages/patches/perl-file-path-CVE-2017-6512.patch \ %D%/packages/patches/perl-autosplit-default-time.patch \ %D%/packages/patches/perl-deterministic-ordering.patch \ %D%/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ @@ -1041,7 +1046,6 @@ dist_patch_DATA = \ %D%/packages/patches/xcb-proto-python3-whitespace.patch \ %D%/packages/patches/wxwidgets-fix-windowGTK.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \ - %D%/packages/patches/xf86-input-wacom-xorg-abi-25.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ast-remove-mibstore.patch \ %D%/packages/patches/xf86-video-geode-glibc-2.20.patch \ diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index d57fc004c7..1576c23b35 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -93,14 +93,14 @@ highlighting your own code that seemed comprehensible when you wrote it.") (define-public global ; a global variable (package (name "global") - (version "6.5.6") + (version "6.5.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/global/global-" version ".tar.gz")) (sha256 (base32 - "018m536k5y6lks1a6gqn3bsp7r8zk017znqj9kva1nm8d7x9lbqj")))) + "0cnd7a7d1pl46yk15q6mnr9i9w3xi8pxgchw4ia9njgr4jjqzh6r")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("libltdl" ,libltdl) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 2e55aa04af..f8631a6dbb 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -80,7 +80,7 @@ communication, encryption, decryption, signatures, etc.") (define-public signify (package (name "signify") - (version "20") + (version "21") (source (origin (method url-fetch) (uri (string-append "https://github.com/aperezdc/signify/" @@ -88,7 +88,7 @@ communication, encryption, decryption, signatures, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "08my2kbbjdal9z6c1fykgr9zpixh694fw42lyiaci01a7i50zp4r")))) + "0jd26kxwmmar3bylpx9x5dpqxzs17ky5dvwx8pdgcg95n4lyk223")))) (build-system gnu-build-system) ;; TODO Build with libwaive (described in README.md), to implement something ;; like OpenBSD's pledge(). diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 7937c67781..7f1d18f2b0 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -321,14 +321,14 @@ Extensions} (DNSSEC).") (define-public knot (package (name "knot") - (version "2.4.3") + (version "2.4.4") (source (origin (method url-fetch) (uri (string-append "https://secure.nic.cz/files/knot-dns/" name "-" version ".tar.xz")) (sha256 (base32 - "0kvhibnnk77nqi9gdw2zbnp0dydfcy6zy96qv0f3a7wwnay5h0pr")) + "0g2n5r2n03bqz322xlwdw4bqhj8l4n8q0hzrqngi4rgmk4rp97ly")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 81a74d1fb5..987aaf4226 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3618,14 +3618,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170515") + (version "20170606") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "0lfapcxil69x1a63cszgq72lqks1z3gpyxw7vcllqlgi7n7a4y6f")))) + "0m2gln3wz9v3aflyxxy2317808yy05rrzrjx35spw2d90d10hmkz")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 73d76a461f..59e60dc292 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> +;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1227,3 +1228,42 @@ Ensuring readability and clarity at both large and small sizes, these icons have been optimized for beautiful display on all common platforms and display resolutions.") (license license:asl2.0))) + +(define-public font-mathjax + (package + (name "font-mathjax") + (version "2.7.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/mathjax/MathJax/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sbib5lk0jrvbq6s72ag6ss3wjlz5wnk07ddxij1kp96yg3c1d1b")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (set-path-environment-variable + "PATH" '("bin") (map (match-lambda + ((_ . input) + input)) + %build-inputs)) + (let ((install-directory (string-append %output "/share/fonts/mathjax"))) + (mkdir-p install-directory) + (zero? (system* "tar" "-C" install-directory "-xvf" + (assoc-ref %build-inputs "source") + "MathJax-2.7.1/fonts" "--strip" "2")))))) + (native-inputs + `(("gzip" ,gzip) + ("tar" ,tar))) + (home-page "https://www.mathjax.org/") + (synopsis "Fonts for MathJax") + (description "This package contains the fonts required for MathJax.") + (license license:asl2.0))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 85a6c8b26d..ef07f2d64b 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages acl) #:use-module (gnu packages admin) #:use-module (gnu packages autotools) + #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages databases) @@ -267,6 +268,46 @@ the org.freedesktop.login1 interface over the system bus, allowing other parts of a the system to know what users are logged in, and where.") (license license:lgpl2.1+))) +(define-public packagekit + (package + (name "packagekit") + (version "1.1.5") + (source (origin + (method url-fetch) + (uri (string-append + "https://www.freedesktop.org/software/" + "PackageKit/releases/" + "PackageKit-" version ".tar.xz")) + (sha256 + (base32 + "035pqxgkyki813hyw2frrbpfllq113zfk5qcp9wvsq5lsp74ix2h")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags (list (string-append "BASH_COMPLETIONS_DIR=" + %output "/etc/bash_completion.d")) + #:configure-flags + '("--disable-systemd"))) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("glib:bin" ,glib "bin"))) + (inputs + `(("glib" ,glib) + ("bash-completion", bash-completion) + ("polkit" ,polkit))) + (propagated-inputs + `(("sqlite" ,sqlite))) + (home-page "https://www.freedesktop.org/software/PackageKit/") + (synopsis "API for package management, through D-Bus") + (description + "PackageKit provides a way of performing package management tasks, +e.g. updating, removing and installing software. Through supporting many +backends, PackageKit can perform these tasks using the appropriate package +manager for the current system.") + (license license:gpl2+))) + (define-public python-pyxdg (package (name "python-pyxdg") diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 6d9e4061d1..5253d0c919 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -30,6 +30,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system python) @@ -221,7 +222,8 @@ possible, and it also makes the SGE easy to learn.") (source (origin (method url-fetch) - (uri (string-append "mirror://savannah/python-tmx/tmx-" + (uri (string-append "mirror://savannah/python-tmx/" + (version-major+minor version) "/tmx-" version ".tar.gz")) (sha256 (base32 @@ -293,7 +295,7 @@ support.") (define-public tiled (package (name "tiled") - (version "0.18.2") + (version "1.0.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/bjorn/tiled/archive/v" @@ -301,7 +303,7 @@ support.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1kcj2blrlfpghjv0qigip2qcbxfx7vv9i8nr4997hkwhsh6i2pjp")))) + "0g6ld9znydbdzy4x9h532gf1fg5bnz1mmrpvw4jg2a4lxkrz3rd5")))) (build-system gnu-build-system) (inputs `(("qtbase" ,qtbase) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index ba1fd62a24..77a3376a02 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -37,14 +37,14 @@ (define-public gdb (package (name "gdb") - (version "7.12.1") + (version "8.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "11ii260h1sd7v0bs3cz6d5l8gqxxgldry0md60ncjgixjw5nh1s6")))) + "1vplyf8v70yn0rdqjx6awl9nmfbwaj5ynwwjxwa71rhp97z4z8pn")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME "make check" fails on single-processor systems. diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 4f137a88d7..d8d5490f3e 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -75,7 +75,7 @@ topology functions.") (define-public gnome-maps (package (name "gnome-maps") - (version "3.18.3") + (version "3.24.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -83,7 +83,7 @@ topology functions.") name "-" version ".tar.xz")) (sha256 (base32 - "1vdnr2wmhqhql2gxd5n1ijwk88qhim14izbkczncg35846hfsr5i")))) + "1mnhcrawdp6fyqylh0m8l259xdd7pqwibrjyl54rmsvnm8vfrwsy")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags ; Ensure that geoclue is referred to by output. diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 40b756394e..7457809300 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -217,7 +217,7 @@ also known as DXTn or DXTC) for Mesa.") (define-public mesa (package (name "mesa") - (version "17.0.4") + (version "17.0.6") (source (origin (method url-fetch) @@ -227,7 +227,7 @@ also known as DXTn or DXTC) for Mesa.") version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "0im3ca1vwwmkjf5w761vh7vabr4vrrdxpckr0wm974x18n2xqs8j")) + "17d60jjzg4ddm95gk2cqx0xz6b9anmmz6ax4majwr3gis2yg7v49")) (patches (search-patches "mesa-fix-32bit-test-failures.patch" "mesa-wayland-egl-symbols-check-mips.patch" diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 6de9cce0b7..fcd1daf5e8 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -67,7 +67,7 @@ (define dbus (package (name "dbus") - (version "1.10.16") + (version "1.10.18") (source (origin (method url-fetch) (uri (string-append @@ -75,7 +75,7 @@ version ".tar.gz")) (sha256 (base32 - "121kqkjsd3vgf8vca8364xl44qa5086h7qy5zs5f1l78ldpbmc57")) + "0jjirhw6xwz2ffmbg5kr79108l8i1bdaw7szc67n3qpkygaxsjb0")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -137,7 +137,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.50.3") + (version "2.52.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -145,7 +145,7 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "16frrwhc1yqkzx6bgh3060g94dr2biab17fb01mrni819jzr9vl2")) + "1l65kab6jr9zlllgbjcbvrbgah3sdd577fpw4pdb2j195ag5s3ph")) (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything @@ -289,14 +289,14 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.50.0") + (version "1.52.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "1i9pccig8mv6qf0c1z8fcapays190nmr7j6pyc7cfhzmcv39fr8w")) + (base32 "1x5gkyrglv3dn9b4fsgw6asqgjw1wj7qc37g9pyac6pyaa6w7l1f")) (modules '((guix build utils))) (snippet '(substitute* "tools/g-ir-tool-template.in" @@ -492,7 +492,7 @@ has an ease of use unmatched by other C++ callback libraries.") (define glibmm (package (name "glibmm") - (version "2.50.0") + (version "2.50.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -500,7 +500,7 @@ has an ease of use unmatched by other C++ callback libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "152yz5w0lx0y5j9ml72az7pc83p4l92bc0sb8whpcazldqy6wwnz")))) + "1926b3adx903hzvdp8glblsgjyadzqnwgkj8hg605d4wv98m1n0z")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before @@ -573,7 +573,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.22.0") + (version "3.24.1") (source (origin (method url-fetch) @@ -582,11 +582,13 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1ryblpc4wbhxcwf7grgib4drrab5xi6p78ihhrx0zj7g13xrrch8")))) + "1zdzznrj2s1gsrv2z4r0n88fzba8zjc1n2r313xi77lhl1daja56")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) - ("glib-bin" ,glib "bin") ;for tests: glib-compile-schemas + ;for tests: dbus-run-session and glib-compile-schemas + ("dbus" ,dbus) + ("glib-bin" ,glib "bin") ("pkg-config" ,pkg-config))) (inputs `(("python" ,python) @@ -596,16 +598,6 @@ useful for C++.") ;; pygobject-3.0.pc refers to all these. `(("glib" ,glib) ("libffi" ,libffi))) - (arguments - ;; TODO: failing tests: test_native_calls_async - ;; test_native_calls_async_errors test_native_calls_sync - ;; test_native_calls_sync_errors test_python_calls_async - ;; test_python_calls_async_error test_python_calls_async_error_result - ;; test_python_calls_sync test_python_calls_sync_errors - ;; test_python_calls_sync_noargs test_callback_user_data_middle_none - ;; test_callback_user_data_middle_single - ;; test_callback_user_data_middle_tuple - '(#:tests? #f)) ;; For finding typelib files, since gobject-introscpetion isn't propagated. (native-search-paths (package-native-search-paths gobject-introspection)) (home-page "https://live.gnome.org/PyGObject") diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7f7880429a..ebf598d9c7 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -14,7 +14,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2016 Jochem Raat <jchmrt@riseup.net> -;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name> @@ -46,6 +46,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system trivial) @@ -237,6 +238,56 @@ relationship modeling, and network diagrams. The program supports various file formats like PNG, SVG, PDF and EPS.") (license license:gpl2+)))) +(define-public libgdata + (package + (name "libgdata") + (version "0.16.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "09q8h1129xjpw33rvzz7856drygxwlm0s64z9cm0vbmjxiqy0h47")) + (patches + (search-patches "libgdata-fix-tests.patch" + "libgdata-glib-duplicate-tests.patch")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'use-empty-ssl-cert-file + (lambda _ + ;; The ca-certificates.crt is not available in the build + ;; environment. + (setenv "SSL_CERT_FILE" "/dev/null") + #t))))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("uhttpmock" ,uhttpmock))) + (inputs + `(("cyrus-sasl" ,cyrus-sasl) + ("glib" ,glib) + ("glib-networking" ,glib-networking) + ("json-glib" ,json-glib) + ("libsoup" ,libsoup))) + (propagated-inputs + `(("gcr" ,gcr) + ("gnome-online-accounts" ,gnome-online-accounts) + ("liboauth" ,liboauth) + ("libxml2" ,libxml2))) + (home-page "https://wiki.gnome.org/Projects/libgdata") + (synopsis "Library for accessing online service APIs") + (description + "libgdata is a GLib-based library for accessing online service APIs using +the GData protocol — most notably, Google's services. It provides APIs to +access the common Google services, and has full asynchronous support.") + (license license:lgpl2.1+))) + (define-public gnome-common (package (name "gnome-common") @@ -262,7 +313,7 @@ commonly used macros.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.22.2") + (version "3.24.2") (source (origin (method url-fetch) @@ -271,7 +322,7 @@ commonly used macros.") name "-" version ".tar.xz")) (sha256 (base32 - "074yjz4g9gii045v2pl1ad34hcg92ci04ynxqcabwnf3lvvypmsi")))) + "0pkq5l1llw8gkjhfq6y58iyj6wac8dh1mc3rzjzn6nd7lrkdx8cg")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) @@ -339,7 +390,7 @@ and keep up to date translations of documentation.") (define-public gnome-disk-utility (package (name "gnome-disk-utility") - (version "3.22.1") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -347,7 +398,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "1hqynlcgwm72il2rdml98gcarz0alsgxs5xf6ww2x0czaj3s3953")))) + "18akarcbhm8djlmz49jzavc7qx8dg71gvxc9xd23p0bwjj4h93w7")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") @@ -521,7 +572,7 @@ forgotten when the session ends.") (define-public evince (package (name "evince") - (version "3.22.1") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -529,15 +580,10 @@ forgotten when the session ends.") name "-" version ".tar.xz")) (sha256 (base32 - "0713mcrym5ykhl5smqxi6m9578gz3nkibmkmc794amss7gdkkm7k")))) + "13yw0i68dgqp9alyliy3zifszh7rikkpi1xbz5binvxxgfpraf04")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-nautilus") - - ;; FIXME: Tests fail with: - ;; ImportError: No module named gi.repository - ;; Where should that module come from? - #:tests? #f #:phases (modify-phases %standard-phases (add-before 'install 'skip-gtk-update-icon-cache @@ -593,7 +639,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.22.0") + (version "3.24.0") (source (origin (method url-fetch) @@ -602,7 +648,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "1qgalzqwg0fl0n22vslqcsnsmj9kc54qj25ib16rxaf36jxcf1hg")))) + "145vpcljy4660cnk8zk91qf7ywa7hqfl5hhw025gy8hxcqzklmzn")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) @@ -954,17 +1000,18 @@ the GNOME desktop environment.") (define-public libcroco (package (name "libcroco") - (version "0.6.11") + (version "0.6.12") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches + (search-patches "libcroco-CVE-2017-7960.patch" + "libcroco-CVE-2017-7961.patch")) (sha256 (base32 - "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk")) - (patches (search-patches "libcroco-CVE-2017-7960.patch" - "libcroco-CVE-2017-7961.patch")))) + "0q7qhi7z64i26zabg9dbs5706fa8pmzp1qhpa052id4zdiabbi6x")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1686,7 +1733,7 @@ Hints specification (EWMH).") (define-public gnumeric (package (name "gnumeric") - (version "1.12.32") + (version "1.12.34") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1694,7 +1741,7 @@ Hints specification (EWMH).") name "-" version ".tar.xz")) (sha256 (base32 - "1s3dxvdwzmppsp2dfg90rccilf4hknhwjdy7lazr9sys58zchyx0")))) + "09f7h4lvwzyl0amd3axapwbsrnrvvpwxyhs540jlrv425n0j0j8b")))) (build-system glib-or-gtk-build-system) (arguments `(;; The gnumeric developers don't worry much about failing tests. @@ -1727,7 +1774,9 @@ Hints specification (EWMH).") ("zlib" ,zlib))) (native-inputs `(("bison" ,bison) + ("docbook-xml" ,docbook-xml) ("intltool" ,intltool) + ("itstool" ,itstool) ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "http://www.gnumeric.org") @@ -1817,7 +1866,7 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.34.4") + (version "0.36.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1825,7 +1874,7 @@ passwords in the GNOME keyring.") name "-" version ".tar.xz")) (sha256 (base32 - "10vbd74jazc3vhfagzx8v197bshrg61hnjzna6y3wmhljhrvs5vb")))) + "0706izk9prxqclm7gv4f63diwnlc1llvfl5sc9ghqbgn076lx2mc")))) (build-system gnu-build-system) (arguments '(#:phases @@ -2064,7 +2113,7 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.2.2") + (version "1.2.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2072,14 +2121,7 @@ configuration storage systems.") name "-" version ".tar.xz")) (sha256 (base32 - "08d6449sgnwfh92x8rhwsm03g8frv0mvp3s4wl3cskw25asql4pa")) - (modules '((guix build utils))) - (snippet - ;; Don't duplicate test names. - ;; <https://bugzilla.gnome.org/show_bug.cgi?id=755977>. - '(substitute* "json-glib/tests/builder.c" - (("\"/builder/complex\", test_builder_empty") - "\"/builder/empty\", test_builder_empty"))))) + "02pl0wl3mf47c038bgv2r4pa6pr6y3shjhxn1l7s3rrrgl1sjmgx")))) (build-system gnu-build-system) (native-inputs `(("glib" ,glib "bin") ;for glib-mkenums and glib-genmarshal @@ -2253,7 +2295,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.56.0") + (version "2.58.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2261,14 +2303,17 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "1r8zz270qdg92gbsvy61d51y1cj7hp059h2f4xpvqiw2vrqnn8fq")))) + "1fggmshk2mfsyfvml6paki65xj9rv1s5p7ds41xmnx6yazsnkik2")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments `(#:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") - "/share/gtk-doc/html")) + "/share/gtk-doc/html") + (string-append "--with-apache-module-dir=" + (assoc-ref %build-inputs "httpd") + "/modules")) #:phases (modify-phases %standard-phases (add-before 'configure 'disable-unconnected-socket-test @@ -2286,6 +2331,9 @@ libxml to ease remote use of the RESTful API.") ;; The ca-certificates.crt is not available in the build ;; environment. (setenv "SSL_CERT_FILE" "/dev/null") + ;; HTTPD in Guix uses mod_event and does not build prefork. + (substitute* "tests/httpd.conf" + (("^LoadModule mpm_prefork_module.*$") "\n")) #t)) (replace 'install (lambda _ @@ -2371,7 +2419,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (define-public gnome-mines (package (name "gnome-mines") - (version "3.22.2") + (version "3.24.0") (source (origin (method url-fetch) @@ -2380,7 +2428,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") name "-" version ".tar.xz")) (sha256 (base32 - "1wia0nj5i244m6pq3lridvk3vx9yipsa9l921nsskd97115mnyza")))) + "1xh2as2xmh7gx45gpnl0fh9xjpvyyn3m84qgv41kyp2s4clsyqz6")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -2409,7 +2457,7 @@ floating in an ocean using only your brain and a little bit of luck.") (define-public gnome-sudoku (package (name "gnome-sudoku") - (version "3.22.2") + (version "3.24.0") (source (origin (method url-fetch) @@ -2418,7 +2466,7 @@ floating in an ocean using only your brain and a little bit of luck.") name "-" version ".tar.xz")) (sha256 (base32 - "1sz2ln2nc9ff7zigghil32vbmr2qhb98dc0rbrz755rlrsh8pi08")))) + "1mw5ykk7wr0r9770jj5270f07rjws0pmpjs0b1fywj4li13r98h4")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -2444,7 +2492,7 @@ more fun.") (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.24.1") + (version "3.24.2") (source (origin (method url-fetch) @@ -2453,7 +2501,7 @@ more fun.") name "-" version ".tar.xz")) (sha256 (base32 - "1q303bljcr06w3ra737kq1hpjda45wk16kmrixxwldf3zkk2dgx7")))) + "03zcvxlzg7n4pz65vrg5xj3qpkqr4bz162mgmaz4bjh71b1xl7i8")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -2695,7 +2743,7 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.20.4") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2703,7 +2751,7 @@ service via the system message bus.") name "-" version ".tar.xz")) (sha256 (base32 - "1higj4nmn3srqjbzl4iva7c0b4fkdq74xi4b35xd0qc4qiawbkbx")))) + "0ggspn3wmlkdxpfv4ym68qn1mzqc3hv666sykv8sv1ah40rbk28h")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2750,7 +2798,7 @@ services for numerous locations.") (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.22.1") + (version "3.24.2") (source (origin (method url-fetch) @@ -2759,7 +2807,7 @@ services for numerous locations.") name "-" version ".tar.xz")) (sha256 (base32 - "1finsr7yqvix6n3rdwclv4fpgagmz6xyrk3qzapkn9ljv76rfzdm")))) + "1jnw920zn4cadhgmcv2q5ylzqhwm1rmrhf3a14q8mvp38hkdgaaa")))) (build-system glib-or-gtk-build-system) (arguments `(;; Color management test can't reach the colord system service. @@ -2877,7 +2925,7 @@ which are easy to play with the aid of a mouse.") (define-public devhelp (package (name "devhelp") - (version "3.22.0") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2885,7 +2933,7 @@ which are easy to play with the aid of a mouse.") name "-" version ".tar.xz")) (sha256 (base32 - "1c7zqn8apm1lnpsp74bd880rga2vi5wxfjghqdgwqf6j28pf1jjr")))) + "0c74rk46dy3kvy78m42jl3ip56c5536zmy8v1lbascjmh4fdwn28")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -2936,9 +2984,13 @@ throughout GNOME for API documentation).") ("cairo" ,cairo) ("pango" ,pango) ("gstreamer" ,gstreamer) - ("gst-plugins-base" ,gst-plugins-base))) + ("gst-plugins-base" ,gst-plugins-base) + ("wayland" ,wayland))) (arguments `(#:configure-flags (list "--enable-cogl-gst" + "--enable-wayland-egl-platform" + "--enable-wayland-egl-server" + ;; Arrange to pass an absolute file name to ;; dlopen for libGL.so. (string-append "--with-gl-libname=" @@ -3343,7 +3395,7 @@ for application developers.") (define-public totem (package (name "totem") - (version "3.22.0") + (version "3.24.0") (source (origin (method url-fetch) @@ -3352,7 +3404,7 @@ for application developers.") name "-" version ".tar.xz")) (sha256 (base32 - "1sjgjqhpsh3kipnbc8y31xz64s61xjayxq98pi0vkgbl2rdmnsh2")))) + "00cdlll5b0wj5ckl1pc0a3g39a0hlq0gxkcsh1f6p20fjixqzmwv")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -3510,7 +3562,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") (define-public eog (package (name "eog") - (version "3.20.5") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3518,7 +3570,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") name "-" version ".tar.xz")) (sha256 (base32 - "0fqvfc4y1lbv0awh8dbx9khfha0hdkmnj1lzw5jq0l7jmahwbrz6")))) + "1rr7zy8afqgl15j1zz8l37svyv6bw4r3l04yf70zlnf1w8bf27pm")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -3588,7 +3640,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") (define-public gvfs (package (name "gvfs") - (version "1.30.3") + (version "1.32.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3596,7 +3648,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") name "-" version ".tar.xz")) (sha256 (base32 - "0xgis1kgglnazy1vm66xiqyz8yvvmiad3h0g3agg7ryai6aa495q")))) + "1pkahczniar1yyas7awcqpkb4ca8l7qa4msn6mr29m89mgnwkdnh")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; XXX: requiring `pidof' @@ -3741,7 +3793,7 @@ work and the interface is well tested.") (define-public epiphany (package (name "epiphany") - (version "3.22.7") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3749,7 +3801,7 @@ work and the interface is well tested.") name "-" version ".tar.xz")) (sha256 (base32 - "1167x5s0kawkqngjnzml0a11ib18raxqc4p11kacivj4jv0pwnx1")))) + "13f5h7mbxdyjf93jp46hiaxsrngpr6frgf69d8iza7arc060vg2s")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: @@ -3772,6 +3824,7 @@ work and the interface is well tested.") ("glib-networking" ,glib-networking) ("gnome-desktop" ,gnome-desktop) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("json-glib" ,json-glib) ("iso-codes" ,iso-codes) ("libnotify" ,libnotify) ("libsecret" ,libsecret) @@ -4002,7 +4055,7 @@ metadata in photo and video files of various formats.") (define-public shotwell (package (name "shotwell") - (version "0.25.5") + (version "0.26.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4010,7 +4063,7 @@ metadata in photo and video files of various formats.") name "-" version ".tar.xz")) (sha256 (base32 - "10pv3v789hky8h7ladqzzmgvkmgy3c41n4xz0nnyjmpycwl26g29")))) + "0xak1f69lp1yx3p8jgmr9c0z3jypi8zjpy3kiknn5n9g2f5cqq0a")))) (build-system glib-or-gtk-build-system) (propagated-inputs `(("dconf" ,dconf))) @@ -4025,6 +4078,7 @@ metadata in photo and video files of various formats.") `(("glib:bin" ,glib "bin") ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) + ("libgdata" ,libgdata) ("libgee" ,libgee) ("gexiv2" ,gexiv2) ("libraw" ,libraw) @@ -4048,7 +4102,7 @@ share them with others via social networking and more.") (define-public file-roller (package (name "file-roller") - (version "3.22.2") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4056,7 +4110,7 @@ share them with others via social networking and more.") name "-" version ".tar.xz")) (sha256 (base32 - "1yaxd0lqhajszilblkidqfkaffhzml10l7ib64023y36qgf8q597")))) + "0fkz9h9a6149crmf6311fsqlmv9wyrxk86470vxib941ppl4a581")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4090,7 +4144,7 @@ such as gzip tarballs.") (define-public gnome-session (package (name "gnome-session") - (version "3.22.2") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4098,7 +4152,7 @@ such as gzip tarballs.") name "-" version ".tar.xz")) (sha256 (base32 - "1xahljysbpnc1zafm1y2lqnmmqi2jh4fx7h2y48d9ipqnknk26in")))) + "1vkfjsgks9czajivcg3y1krzlnilv2cnzzbdc7wrasrriqilji1v")))) (arguments '(#:phases (modify-phases %standard-phases @@ -4169,7 +4223,7 @@ configuration program to choose applications starting on login.") (define-public gjs (package (name "gjs") - (version "1.46.0") + (version "1.48.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4177,10 +4231,7 @@ configuration program to choose applications starting on login.") name "-" version ".tar.xz")) (sha256 (base32 - "1m2ssa6qsipbp8lz4xbhf0nhadhv0xkdpmz1jcvl9187lwgmk0r2")) - (modules '((guix build utils))) - (snippet '(substitute* "test/run-with-dbus" - (("/bin/rm") "rm"))))) + "0cqgv460wfhwkw6j1h46v6bg29bycg6dfl7c5rv0lfcqmmw7v6v6")))) (build-system gnu-build-system) (arguments '(#:phases @@ -4195,11 +4246,11 @@ configuration program to choose applications starting on login.") ;; For the missing /etc/machine-id. (setenv "DBUS_FATAL_WARNINGS" "0") - ;; XXX: fails with: - ;; Failed to convert UTF-8 string to JS string: ... - ;; TODO: actually fix it. - (substitute* "installed-tests/js/testEverythingBasic.js" - ((".*test_utf8_inout.*") "")) + ;; Our mozjs-38 package does not compile the required Intl API + ;; support for these failing tests. + (substitute* "installed-tests/js/testLocale.js" + ((".*toBeDefined.*") "") + ((".*expect\\(datestr\\).*") "")) #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources @@ -4211,8 +4262,9 @@ configuration program to choose applications starting on login.") ("xvfb" ,xorg-server))) (propagated-inputs ;; These are all in the Requires.private field of gjs-1.0.pc. - `(("gobject-introspection" ,gobject-introspection) - ("mozjs" ,mozjs-24))) + `(("cairo" ,cairo) + ("gobject-introspection" ,gobject-introspection) + ("mozjs" ,mozjs-38))) (inputs `(("gtk+" ,gtk+) ("readline" ,readline))) @@ -4286,7 +4338,7 @@ powerful general purpose text editor.") (define-public zenity (package (name "zenity") - (version "3.22.0") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4294,7 +4346,7 @@ powerful general purpose text editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0rp4l0vgyjhlkpk2imfwf7b05m1qxjrm8n8kp1rv70ykf48gmk8y")))) + "1xzpm63cib2xzr99phplhbcjzy7lahggk3gp60dvrrclxhka1w3g")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -4311,24 +4363,21 @@ to display dialog boxes from the commandline and shell scripts.") (license license:lgpl2.0+))) (define-public mutter - ;; Uses the gnome 3.22 branch that only contains bug fixes. - (let ((commit "23c315ea7121e9bd108e2837d0b4beeba53c5e18")) (package (name "mutter") - (version (git-version "3.22.2" "1" commit)) + (version "3.24.2") (source (origin - (method git-fetch) - (uri (git-reference - (url "git://git.gnome.org/mutter") - (commit commit))) - (file-name (git-file-name name version)) + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) (sha256 (base32 - "1v1f9xyzjr1ihmfwpq9kzlv2lyr9qn63ck8zny699mbp5hsi11mb")))) - ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked - ;; versions of cogl and clutter. As a result, many of the inputs, - ;; propagated-inputs, and configure flags used in cogl and clutter are - ;; needed here as well. + "043q3384vwrkjdfhbwn9pwdml6z0g0ad0cj2fjnjzg6402i67071")))) + ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked + ;; versions of cogl and clutter. As a result, many of the inputs, + ;; propagated-inputs, and configure flags used in cogl and clutter are + ;; needed here as well. (build-system gnu-build-system) (arguments '(#:configure-flags @@ -4337,8 +4386,7 @@ to display dialog boxes from the commandline and shell scripts.") ;; implicit declaration of function ?roundf? (list "--enable-compile-warnings=minimum" - "--disable-wayland" ; TODO enable wayland - ;; "--enable-native-backend" ; TODO enable the native backend + "--enable-native-backend" ;; The following flags are needed for the bundled clutter "--enable-x11-backend=yes" @@ -4350,9 +4398,14 @@ to display dialog boxes from the commandline and shell scripts.") "/lib/libGL.so")) #:phases (modify-phases %standard-phases - (add-after 'unpack 'autoreconf - (lambda _ - (zero? (system* "autoreconf" "-vfi"))))))) + ;; Replace references to systemd libraries to elogind references. + (add-before 'configure 'use-elogind + (lambda _ + (substitute* (list "configure" + "src/backends/native/meta-launcher.c" + "src/core/main.c") + (("systemd") "elogind")) + #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) @@ -4385,17 +4438,17 @@ to display dialog boxes from the commandline and shell scripts.") ("mesa" ,mesa) ("pango" ,pango) ("udev" ,eudev) - ("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols) ("xinput" ,xinput))) (inputs - `(("gnome-desktop" ,gnome-desktop) + `(("elogind" ,elogind) + ("gnome-desktop" ,gnome-desktop) ("libcanberra-gtk" ,libcanberra) ("libgudev" ,libgudev) ("libice" ,libice) ("libsm" ,libsm) ("libxkbfile" ,libxkbfile) ("libxrandr" ,libxrandr) + ("libxtst" ,libxtst) ("startup-notification" ,startup-notification) ("upower-glib" ,upower) ("xkeyboard-config" ,xkeyboard-config) @@ -4407,12 +4460,12 @@ to display dialog boxes from the commandline and shell scripts.") desktop via OpenGL. Mutter combines a sophisticated display engine using the Clutter toolkit with solid window-management logic inherited from the Metacity window manager.") - (license license:gpl2+)))) + (license license:gpl2+))) (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.22.3") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4420,7 +4473,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "13wvnfh3hnasdnb6fhjssybj2327qihd32kpdjjb3r1qiyc8dvqb")))) + "0yy10znqj278lnhdiqjcqxrwwv5c1jdjd0ncjbbdyh8n0q77hbwy")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. @@ -4450,7 +4503,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.22.3") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4458,26 +4511,20 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") name "-" version ".tar.xz")) (sha256 (base32 - "0kygd46s0is6i451bqykagrfx34wjvrgjbjyyszaabnppp1dyn0c")))) - (build-system gnu-build-system) + "1ywqy939n27v3kchlnyxs6ikhjxmlasv6f08ap4bldgr121vkfx9")))) + (build-system cmake-build-system) (arguments - '(;; XXX: fails with: - ;; /Fixture/Calendar0: cleaning up pid xxxx - ;; t status: 139) + '(;; XXX FIXME: 11/85 tests are failing. #:tests? #f #:configure-flags - (let ((nss (assoc-ref %build-inputs "nss")) - (nspr (assoc-ref %build-inputs "nspr"))) - (list "--disable-uoa" ; disable Ubuntu Online Accounts support - "--disable-google" ; disable Google Contacts support - "--disable-google-auth" ; disable Google authentication - "--enable-vala-bindings" - (string-append "--with-nspr-includes=" nspr "/include/nspr") - (string-append "--with-nss-includes=" nss "/include/nss") - (string-append "--with-nss-libs=" nss "/lib/nss"))) + (list "-DENABLE_UOA=OFF" ;disable Ubuntu Online Accounts support + "-DENABLE_GOOGLE=OFF" ;disable Google Contacts support + "-DENABLE_GOOGLE_AUTH=OFF" ;disable Google authentication + "-DENABLE_VALA_BINDINGS=ON" + "-DENABLE_INTROSPECTION=ON") ;required for Vala bindings #:phases (modify-phases %standard-phases - (add-before 'check 'pre-check + (add-after 'unpack 'patch-paths (lambda _ (substitute* "tests/test-server-utils/e-test-server-utils.c" (("/bin/rm") (which "rm"))) @@ -4489,7 +4536,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") ("intltool" ,intltool) ("pkg-config" ,pkg-config) ("vala" ,vala) - ("python" ,python))) + ("python" ,python-wrapper))) (propagated-inputs ;; These are all in the Requires field of .pc files. `(("gtk+" ,gtk+) @@ -4502,7 +4549,9 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") `(("bdb" ,bdb) ("gcr" ,gcr) ("gnome-online-accounts" ,gnome-online-accounts) - ("libgweather" ,libgweather))) + ("libgweather" ,libgweather) + ("mit-krb5" ,mit-krb5) + ("openldap" ,openldap))) (synopsis "Store address books and calendars") (home-page "https://wiki.gnome.org/Apps/Evolution") (description @@ -4800,7 +4849,7 @@ libxml2.") (define-public gdm (package (name "gdm") - (version "3.22.1") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4808,7 +4857,7 @@ libxml2.") name "-" version ".tar.xz")) (sha256 (base32 - "17wnsrv91mx14xp96wrc21g2hsjjc38yhbkw55kf7hk3yliychva")))) + "1s2xzrwcjhfb4ra8jrxqfycs1jpv97id0f6idb2h6vjkspxbjy23")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -4887,7 +4936,7 @@ usage and information about running processes.") (define-public gnome-bluetooth (package (name "gnome-bluetooth") - (version "3.20.0") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4895,7 +4944,7 @@ usage and information about running processes.") name "-" version ".tar.xz")) (sha256 (base32 - "0lzbwk2kn7kp39sv5bf4ja92mfkxkc27gxxk8k86i8a8ncbcmcwk")))) + "1zlqcz6jz4vzzr8gd1678i9s4015kiwcpr5szrwz4kmryfsm147a")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. @@ -4920,7 +4969,7 @@ devices using the GNOME desktop.") (define-public gnome-control-center (package (name "gnome-control-center") - (version "3.22.1") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4928,7 +4977,7 @@ devices using the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "06h9937sjfrzjf36pxqybg4wmkc5xdhbxgdkclnkjxiiqidjjsax")))) + "0awga40jh6gvn335mn6kyl6yg79frap1znrsz3sw2m27yldlnaiq")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4991,16 +5040,15 @@ properties, screen resolution, and other GNOME parameters.") (define-public gnome-shell (package (name "gnome-shell") - (version "3.22.2") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) - (patches (search-patches "gnome-shell-CVE-2017-8288.patch")) (sha256 (base32 - "16smvjfrpyfphv479hjky5261hgl4kli4q86bcb2b8xdcav4w3yq")))) + "1xp2ccmdrvzlczsrcplykwqwx2v4lbmkr0rxyylb06danlw9mivh")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -5201,7 +5249,7 @@ shared object databases, search tools and indexing.") (define-public nautilus (package (name "nautilus") - (version "3.22.2") + (version "3.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5209,7 +5257,7 @@ shared object databases, search tools and indexing.") name "-" version ".tar.xz")) (sha256 (base32 - "1cv5xsah04svxx0b6di7iah9gcwk6na2c6lp442pal9v2ybrw76f")))) + "1cn6bmzmahzlwcd4gllsvx6dva386xm3papgzpv1r34abw73sf27")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -5281,7 +5329,7 @@ is complete it provides a graphical representation of each selected folder.") (define-public gnome-backgrounds (package (name "gnome-backgrounds") - (version "3.22.1") + (version "3.24.0") (source (origin (method url-fetch) @@ -5290,7 +5338,7 @@ is complete it provides a graphical representation of each selected folder.") name "-" version ".tar.xz")) (sha256 (base32 - "09gfdrm1kaz2knyghhjb0ka1kklgbcbnqgy4c90bg0v3n899ij5z")))) + "1jkikis9k3psp6rb8axnqy86awdyg5rzfbcp9gx40a99b4hlrnnb")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool))) @@ -5509,7 +5557,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") (define-public gnome-calendar (package (name "gnome-calendar") - (version "3.22.2") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5517,7 +5565,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.") name "-" version ".tar.xz")) (sha256 (base32 - "03wivk7hbyqrqcrd7jg0m2xj6q13248la2184qkf7zncnj72g5ih")))) + "0lc0xdgn0y12i87775xyy0p3a5l82w9k49cmwl1my8r8pwf9lp6s")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -5538,7 +5586,7 @@ desktop. It supports multiple calendars, monthly view and yearly view.") (define-public gnome-dictionary (package (name "gnome-dictionary") - (version "3.20.0") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5546,7 +5594,7 @@ desktop. It supports multiple calendars, monthly view and yearly view.") name "-" version ".tar.xz")) (sha256 (base32 - "08b1f5s5aqka3dwxnzmwr2fmyddjm9xw7zmqsf8r5zvfsivn7czg")))) + "1wnrpg8yndacq0xnzc84d519yp7f28brzklm3a48xcgs1i50drs1")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") @@ -5568,7 +5616,7 @@ existing databases over the internet.") (define-public gnome-tweak-tool (package (name "gnome-tweak-tool") - (version "3.22.0") + (version "3.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-tweak-tool/" @@ -5578,7 +5626,7 @@ existing databases over the internet.") (search-patch "gnome-tweak-tool-search-paths.patch"))) (sha256 (base32 - "1frs16p2284mdw65g1ldmf9cz5sn3rg16wz58gjrw5pn2cgf2six")))) + "000ygz9wgnv8pimb6rwbjfm12vbx4138pwkq36ci0k6v827282wk")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--localstatedir=/tmp" @@ -5619,7 +5667,7 @@ GNOME Shell appearance and extension, etc.") (define-public gnome-shell-extensions (package (name "gnome-shell-extensions") - (version "3.22.2") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5627,7 +5675,7 @@ GNOME Shell appearance and extension, etc.") name "-" version ".tar.xz")) (sha256 (base32 - "11wa4f9arr89a4y8nsvla5j58dzwlawjb2q1lz0jn5i9kv324z6z")))) + "10sg87wml5cmyk90pybnr6r942ba7173sl7yplhj2sfggp0wc74s")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-extensions=all"))) @@ -5883,7 +5931,7 @@ handling the startup notification side.") (define-public gnome-calculator (package (name "gnome-calculator") - (version "3.22.2") + (version "3.24.0") (source (origin (method url-fetch) @@ -5892,7 +5940,7 @@ handling the startup notification side.") name "-" version ".tar.xz")) (sha256 (base32 - "03il7xl4yr6xbzj6x1lbl16yzlb166c9h9wny1w7mj9dccnz99wr")))) + "041d40as8y0r5d0kk83dy842711zchydwwqh71kh1lpd373qlxa4")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. @@ -5902,6 +5950,7 @@ handling the startup notification side.") (inputs `(("gtksourceview" ,gtksourceview) ("libsoup" ,libsoup) + ("mpc" ,mpc) ("mpfr" ,mpfr))) (home-page "https://wiki.gnome.org/Apps/Calculator") (synopsis "Desktop calculator") @@ -6005,7 +6054,7 @@ Bluefish supports many programming and markup languages.") (define-public gnome-system-monitor (package (name "gnome-system-monitor") - (version "3.22.2") + (version "3.24.0") (source (origin (method url-fetch) @@ -6014,7 +6063,7 @@ Bluefish supports many programming and markup languages.") name "-" version ".tar.xz")) (sha256 (base32 - "10n9bl2q9xxnd6mfi4scfw5x0xyyzvnblz26q9gl8vks2nbv19b8")))) + "1x3343hchkllj8wyifk844v8psi45kyjhphyd03fzahi4h34aay3")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums. diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 5c04745ff5..d4d52ee6d0 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -407,6 +407,35 @@ instead. This way bug fixes or improvements can be done at a central place and every application benefits from this.") (license license:lgpl2.1+))) +(define-public qgpgme + (package + (inherit gpgme) + (name "qgpgme") + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'chdir-and-symlink + (lambda* (#:key inputs #:allow-other-keys) + (let ((gpgme (assoc-ref inputs "gpgme"))) + (symlink (string-append gpgme "/lib/libgpgmepp.la") + "lang/cpp/src/libgpgmepp.la") + (symlink (string-append gpgme "/lib/libgpgme.la") + "src/libgpgme.la")) + (chdir "lang/qt") + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("gpgme" ,gpgme) + ("qtbase" ,qtbase) + ,@(package-inputs gpgme))) + (synopsis "Qt API bindings for gpgme") + (description "QGpgme provides a very high level Qt API around GpgMEpp. + +QGpgME was originally developed as part of libkleo and incorporated into +gpgpme starting with version 1.7.") + (license license:gpl2+))) ;; Note: this differs from gpgme + (define-public python-gpg (package (name "python-gpg") diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index cc1497cb8d..4fa4033246 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -54,6 +55,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) #:use-module (gnu packages photo) + #:use-module (gnu packages pth) #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages readline) @@ -318,6 +320,47 @@ visual effects work for film.") (home-page "http://www.openimageio.org") (license license:bsd-3))) +(define-public openscenegraph + (package + (name "openscenegraph") + (version "3.4.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://trac.openscenegraph.org/downloads/developer_releases/" + "OpenSceneGraph-" version ".zip")) + (sha256 + (base32 + "03h4wfqqk7rf3mpz0sa99gy715cwpala7964z2npd8jxfn27swjw")) + (patches (search-patches "openscenegraph-ffmpeg3.patch")) + (file-name (string-append name "-" version ".zip")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ;; No test target available. + #:configure-flags + (list (string-append "-DCMAKE_INSTALL_RPATH=" + (assoc-ref %outputs "out") "/lib:" + (assoc-ref %outputs "out") "/lib64")))) + (native-inputs + `(("unzip" ,unzip))) + (inputs + `(("giflib", giflib) + ("jasper", jasper) + ("librsvg", librsvg) + ("pth", pth) + ("qtbase", qtbase) + ("ffmpeg", ffmpeg) + ("mesa", mesa))) + (synopsis "High performance real-time graphics toolkit") + (description + "The OpenSceneGraph is a high performance 3D graphics toolkit +used by application developers in fields such as visual simulation, games, +virtual reality, scientific visualization and modeling.") + (home-page "http://www.openscenegraph.org") + ;; The 'LICENSE' file explains that the source is licensed under + ;; LGPL 2.1, but with 4 exceptions. This version is called OSGPL. + (license license:lgpl2.1))) + (define-public rapicorn (package (name "rapicorn") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index d250caff4a..1d9ee15246 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -50,6 +50,7 @@ #:use-module (gnu packages docbook) #:use-module (gnu packages enchant) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) @@ -72,7 +73,7 @@ (define-public atk (package (name "atk") - (version "2.22.0") + (version "2.24.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -80,7 +81,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1dj47ndvspa7lghw1jvjhv3v08q5f9ab5rb395mcgjbl975gajfk")))) + "0jbs90vacl95mwgvmqsizi1bwx5sw0rz70r9knksfwwch2dalbdv")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -170,7 +171,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.4.3") + (version "1.4.6") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -178,7 +179,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "08akv3qzwnf48xajb60dfcchkmfdjkpp65a0xd8s98w81901g343")))) + "14yj514yfy373np3gxk930a443j1zgnwg6mm0kdzzjr0rn0qp9r1")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -208,7 +209,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.40.5") + (version "1.40.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -216,7 +217,7 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "1j81kmdq2kndayahfck60myd05hj5qd7mixj0w5kchkc8m082x14")))) + "0wz5b5knpw4gfvz3ny8l6h2ca3bpqqyh55mffkyzgsd1hdrjn5fa")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) @@ -378,7 +379,7 @@ printing and other features typical of a source code editor.") (define-public gtksourceview (package (name "gtksourceview") - (version "3.22.2") + (version "3.24.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -386,7 +387,7 @@ printing and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0pmgff3p9q1z500aiqfn5l4mmij4yfi4qhq8fxscqc89vlql5s3c")))) + "17xqrnh2v9gba57ij2m9kngxwh19fzsqkx1rfasnv4zaqvqqhv69")))) (build-system gnu-build-system) (arguments '(#:phases @@ -508,7 +509,7 @@ in the GNOME project.") (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.22.0") + (version "2.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -516,7 +517,7 @@ in the GNOME project.") name "-" version ".tar.xz")) (sha256 (base32 - "02n8ybhg8344mpjwvkhnzvr0qbvvl6ryi2q9irwhi0ri46ps6pj1")))) + "0nwvjmd30rgq6d1zznavx0bdfa1xwv3jl8wnkbkwzaipp5jd140y")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -553,7 +554,7 @@ is part of the GNOME accessibility project.") (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.22.0") + (version "2.24.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -561,7 +562,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "1h8k271ad78smm41c9bmw5dc4gki0wfy324cn2g25svkp2zfvgg8")))) + "0zcmsq7g4jg5dpmfzkyfpa0v6hx4119c4qwkdblzzf3l9yn91p30")))) (build-system gnu-build-system) (arguments '(#:phases @@ -653,7 +654,7 @@ application suites.") (name "gtk+") ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in ;; mate.scm will also need to be updated. - (version "3.22.12") + (version "3.22.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -661,7 +662,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1359w81sxs2izkan2rni985x78s6zr1arf469qmyw4bazg7f1yl4")) + "1nqgb71vx222g9fd2p017948hqybnyi69xs3n2d64clim7115868")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) (outputs '("out" "bin" "doc")) @@ -673,8 +674,12 @@ application suites.") ("libxcursor" ,libxcursor) ("libxi" ,libxi) ("libxinerama" ,libxinerama) + ("libxkbcommon" ,libxkbcommon) ("libxdamage" ,libxdamage) - ("pango" ,pango))) + ("mesa" ,mesa) + ("pango" ,pango) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols))) (inputs `(("libxml2" ,libxml2) ;; XXX: colord depends on mozjs (through polkit), which fails on @@ -700,7 +705,12 @@ application suites.") ;; to "doc". #:configure-flags (list (string-append "--with-html-dir=" (assoc-ref %outputs "doc") - "/share/gtk-doc/html")) + "/share/gtk-doc/html") + ;; The header file <gdk/gdkwayland.h> is required + ;; by gnome-control-center + "--enable-wayland-backend" + ;; This is necessary to build both backends. + "--enable-x11-backend") #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure (lambda _ diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 768ed325bd..7a0080b27b 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -54,7 +54,7 @@ (define-public feh (package (name "feh") - (version "2.18.3") + (version "2.19") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -62,7 +62,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "0qq567d0g181k6llr6p759lnni39va5xakjqngd6063fm73nhbyq")))) + "1sfhr6628xpj9p6bqihdq35y139x2gmrpydjlrwsl1rs77c2bgnf")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 5928b30e00..a0ca4528f9 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,14 +46,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.8-6") + (version "6.9.8-9") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "1sxg2wx3nrzbymh5wcqiv1x401nrz95xkrqgk3x446vx8lq7ln6w")))) + "0wr6wcmvaw62f6pkgnpqnjmp331wfwmds9wmqzr4zv53s9k1lkzn")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 30e14a0914..ad167a6e99 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -102,7 +102,7 @@ irssi, but graphical.") (define-public irssi (package (name "irssi") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/irssi/irssi/" @@ -110,7 +110,7 @@ irssi, but graphical.") version ".tar.xz")) (sha256 (base32 - "1sgvfprgrncbxcyg99rkd10kpjzqw00b1ppsfg8al0zirb13q72w")))) + "10gmmxk5jgyigarks177nyvzb0lsfxcm00015p2cirybgllj10l3")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm new file mode 100644 index 0000000000..6746ad1d22 --- /dev/null +++ b/gnu/packages/javascript.scm @@ -0,0 +1,85 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages javascript) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages fonts) + #:use-module (gnu packages lisp) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system trivial)) + +(define-public js-mathjax + (package + (inherit font-mathjax) + (name "js-mathjax") + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match) + (ice-9 popen) + (ice-9 regex)) + (set-path-environment-variable + "PATH" '("bin") (map (match-lambda + ((_ . input) + input)) + %build-inputs)) + (set-path-environment-variable + "GUIX_LOCPATH" '("lib/locale") + (list (assoc-ref %build-inputs "glibc-utf8-locales"))) + (setenv "LANG" "en_US.UTF-8") + (let ((install-directory (string-append %output "/share/javascript/mathjax"))) + (system* "tar" "xvf" (assoc-ref %build-inputs "source") + "MathJax-2.7.1/unpacked" "--strip" "2") + (mkdir-p install-directory) + (symlink (string-append (assoc-ref %build-inputs "font-mathjax") + "/share/fonts/mathjax") + (string-append install-directory "/fonts")) + + (for-each + (lambda (file) + (let ((installed (string-append install-directory + ;; remove prefix "." + (string-drop file 1)))) + (format #t "~a -> ~a~%" file installed) + (cond + ((string-match "\\.js$" file) + (mkdir-p (dirname installed)) + (let ((minified (open-pipe* OPEN_READ "uglify-js" file))) + (call-with-output-file installed + (lambda (port) + (dump-port minified port))))) + (else + (install-file file (dirname installed)))))) + (find-files ".")))))) + (native-inputs + `(("font-mathjax" ,font-mathjax) + ("glibc-utf8-locales" ,glibc-utf8-locales) + ("uglify-js" ,uglify-js) + ,@(package-native-inputs font-mathjax))) + (synopsis "JavaScript display engine for LaTeX, MathML, and AsciiMath") + (description "MathJax is a JavaScript display engine for LaTeX, MathML, +and AsciiMath notation that works in all modern browsers. It requires no +plugins or software to be installed on the browser. So the page author can +write web documents that include mathematics and be confident that readers will +be able to view it naturally and easily."))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5a3490fdf1..c101135db7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1043,7 +1043,7 @@ packet filter.") (define-public iproute (package (name "iproute2") - (version "4.10.0") + (version "4.11.0") (source (origin (method url-fetch) (uri (string-append @@ -1051,7 +1051,7 @@ packet filter.") version ".tar.xz")) (sha256 (base32 - "1a59y1zkddvr7z0lh2y9iasbh9wpfc1n39p56xcd6jkhzk0y3c92")))) + "09l0phf09mw17bn3xlzfr80sbhw14mq8xv28iz5x15m6pll10rvj")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -1291,15 +1291,16 @@ transparently through a bridge.") (define-public libnl (package (name "libnl") - (version "3.2.25") + (version "3.3.0") (source (origin (method url-fetch) (uri (string-append - "http://www.infradead.org/~tgr/libnl/files/libnl-" - version ".tar.gz")) + "https://github.com/thom311/libnl/releases/download/" + "libnl" (string-join (string-split version #\.) "_") + "/libnl-" version ".tar.gz")) (sha256 (base32 - "1icfrv8yihcb74as1gcgmp0wfpdq632q2zvbvqqvjms9cy87bswb")))) + "1r3lw3hjvqxi5zqyq2w1qadm3gisd9nlf71dkl4yplacmssnhm3h")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) ("bison" ,bison))) (home-page "http://www.infradead.org/~tgr/libnl/") @@ -2801,7 +2802,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") (define-public bluez (package (name "bluez") - (version "5.44") + (version "5.45") (source (origin (method url-fetch) (uri (string-append @@ -2809,7 +2810,7 @@ Bluetooth audio output devices like headphones or loudspeakers.") version ".tar.xz")) (sha256 (base32 - "11bc6pndivd0rkqr3c8a1xd9ar9bb60gx79piskycicb3wliwchc")))) + "1sb4aflgyrl7apricjipa8wx95qm69yja0lmn2f19g560c3v1b2c")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -2861,7 +2862,7 @@ is flexible, efficient and uses a modular implementation.") (define-public fuse-exfat (package (name "fuse-exfat") - (version "1.2.6") + (version "1.2.7") (source (origin (method url-fetch) (uri (string-append @@ -2869,7 +2870,7 @@ is flexible, efficient and uses a modular implementation.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1rvq4hapy2anal1vg1yidv4x8rg4iw5sxfwqixkw0q2qsxb54471")))) + "0df0ccnd0dgwc6rvk9qmrz0nfb8whc5s3wg9qnw1mzbrh4rcvhw2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 9cb88fdee0..02a4f26022 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1089,7 +1089,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.30.1") + (version "2.2.30.2") (source (origin (method url-fetch) @@ -1097,7 +1097,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "1943n0b9zcwvymslai9qmdmnfy47zdnqjwkql586imycyx4xnjch")))) + "17hqhzfqlk08d20x9rwi0lyvy13pc0x8sr1zcg89vapf3jfagnzk")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/mate.scm b/gnu/packages/mate.scm index c8c7c63ee5..a39cd25d30 100644 --- a/gnu/packages/mate.scm +++ b/gnu/packages/mate.scm @@ -61,7 +61,7 @@ (define-public mate-themes (package (name "mate-themes") - (version "3.22.10") + (version "3.22.11") (source (origin (method url-fetch) (uri (string-append "http://pub.mate-desktop.org/releases/themes/" @@ -69,7 +69,7 @@ version ".tar.xz")) (sha256 (base32 - "03ficjfxa4qpx4vcshhk2zxryivckxpw7wcjgbn8xqnjk3lgzjcb")))) + "1gfa1cny3q68y139m96iz8haiik6ygad5613gx0m4wd9hi5scafm")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 16896502ea..94109b559a 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2047,7 +2047,7 @@ to BMP, JPEG or PNG image formats.") (define-public maxima (package (name "maxima") - (version "5.39.0") + (version "5.40.0") (source (origin (method url-fetch) @@ -2055,7 +2055,7 @@ to BMP, JPEG or PNG image formats.") version "-source/" name "-" version ".tar.gz")) (sha256 (base32 - "1cvignn5y6qzrby6qb885yc8zdcdqdr1d50vcvc3gapw2f0gk3zm")) + "15pp35ayglv723bjbqc60gcdv2bm54s6pywsm4i4cwbjsf64dzkl")) (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm index 4261162427..2ac78c500a 100644 --- a/gnu/packages/mtools.scm +++ b/gnu/packages/mtools.scm @@ -48,7 +48,7 @@ FAT-specific file attributes.") (define-public exfat-utils (package (name "exfat-utils") - (version "1.2.6") + (version "1.2.7") (source (origin (method url-fetch) (uri (string-append @@ -56,7 +56,7 @@ FAT-specific file attributes.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0hxcz0y3rd79nycjlzaca9wh9qj64rw8rzm0xk4jk9ljry96csxr")))) + "1r7z3n1zxkvlqf1wv7pg0jwlr1144wznd0slfckpsb5rap8k4q9q")))) (build-system gnu-build-system) (home-page "https://github.com/relan/exfat") (synopsis "Utilities to manipulate exFAT file systems") diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 1e22b70329..57a02e9f4a 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -306,14 +306,14 @@ receiving NDP messages.") (define-public ethtool (package (name "ethtool") - (version "4.10") + (version "4.11") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/network/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1fklbjwr41cvd5b7d1qvpl3bqzc4aak732r3m2wjhhgkxhk9f07h")))) + "1cp132kk2xd2cwn1ysjv0cl8i9lnq3n4zi4wy676p5k4h2mfvn0j")))) (build-system gnu-build-system) (home-page "https://www.kernel.org/pub/software/network/ethtool/") (synopsis "Display or change Ethernet device settings") diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 863e367a5b..68619019f1 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -448,6 +448,10 @@ written in Objective Caml.") (sha256 (base32 "0wyywia0darak2zmc5v0ra9rn0b9whwdfiahralm8v5za499s8w3")))) + (native-search-paths + (list (search-path-specification + (variable "COQPATH") + (files (list "lib/coq/user-contrib"))))) (build-system gnu-build-system) (native-inputs `(("texlive" ,texlive) @@ -2907,3 +2911,245 @@ the expected output.") (synopsis "Standard Jane Street ppx rewriters") (description "Ppx_jane is a ppx_driver including all standard ppx rewriters.") (license license:asl2.0))) + +(define-public ocaml-core-kernel + (package + (name "ocaml-core-kernel") + (version "113.33.03") + (source (janestreet-origin "core_kernel" version + "0fl23jrwivixawhxinbwaw9cabqnzn7fini7dxpxjjvkxdc8ip5y")) + (native-inputs + `(("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("bin_prot" ,ocaml-bin-prot) + ("ppx-assert" ,ocaml-ppx-assert) + ("ppx-bench" ,ocaml-ppx-bench) + ("ppx-driver" ,ocaml-ppx-driver) + ("ppx-expect" ,ocaml-ppx-expect) + ("ppx-inline-test" ,ocaml-ppx-inline-test) + ("typerep" ,ocaml-typerep) + ("sexplib" ,ocaml-sexplib) + ("variantslib" ,ocaml-variantslib) + ("result" ,ocaml-result) + ("fieldslib" ,ocaml-fieldslib))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/core_kernel/") + (synopsis "Portable standard library for OCaml") + (description "Core is an alternative to the OCaml standard library. + +Core_kernel is the system-independent part of Core. It is aimed for cases when +the full Core is not available, such as in Javascript.") + (license license:asl2.0))) + +(define-public ocaml-async-kernel + (package + (name "ocaml-async-kernel") + (version "113.33.03") + (source (janestreet-origin "async_kernel" version + "04bjsaa23j831r09r38x6xx9nhryvp0z5ihickvhxqa4fb2snyvd")) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("core-kernel" ,ocaml-core-kernel))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/async_kernel/") + (synopsis "Monadic concurrency library") + (description "Async-kernel is a library for concurrent programming in OCaml.") + (license license:asl2.0))) + +(define-public ocaml-async-rpc-kernel + (package + (name "ocaml-async-rpc-kernel") + (version "113.33.03") + (source (janestreet-origin "async_rpc_kernel" version + "0y97h9pkb00v7jpf87m8cbb0ffkclj9g26ph6sq97q8dpisnkjwh")) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("async-kernel" ,ocaml-async-kernel))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/async_rpc_kernel/") + (synopsis "Platform-independent core of the Async RPC library") + (description "Async_rpc_kernel is the platform-independent core of +the Async RPC library.") + (license license:asl2.0))) + +(define-public ocaml-core + (package + (name "ocaml-core") + (version "113.33.03") + (source (janestreet-origin "core" version + "1znll157qg56g9d3247fjibv1hxv3r9wxgr4nhy19j2vzdh6a268")) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("core-kernel" ,ocaml-core-kernel))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/core/") + (synopsis "Alternative to OCaml's standard library") + (description "The Core suite of libraries is an alternative to OCaml's +standard library that was developed by Jane Street.") + (license license:asl2.0))) + +(define-public ocaml-async-unix + (package + (name "ocaml-async-unix") + (version "113.33.03") + (source (janestreet-origin "async_unix" version + "1fwl0lfrizllcfjk8hk8m7lsz9ha2jg6qgk4gssfyz377qvpcq4h")) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("async-kernel" ,ocaml-async-kernel) + ("core" ,ocaml-core))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/async_unix") + (synopsis "Asynchronous execution library for Unix") + (description "Async_unix is an asynchronous execution library for Unix.") + (license license:asl2.0))) + +(define-public ocaml-async-extra + (package + (name "ocaml-async-extra") + (version "113.33.03") + (source (janestreet-origin "async_extra" version + "1si8jgiq5xh5sl9f2b7f9p17p7zx5h1pg557x2cxywi2x7pxqg4f")) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("async-rpc-kernel" ,ocaml-async-rpc-kernel) + ("async-unix" ,ocaml-async-unix) + ("core" ,ocaml-core))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/async_extra") + (synopsis "Extra functionnalities for the async library") + (description "Async_extra provides additional functionnalities for the +async library.") + (license license:asl2.0))) + +(define-public ocaml-async + (package + (name "ocaml-async") + (version "113.33.03") + (source (janestreet-origin "async" version + "0210fyhcs12kpmmd26015bgivkfd2wqkyn3c5wd7688d0f872y25")) + (native-inputs + `(("oasis" ,ocaml-oasis) + ("js-build-tools" ,ocaml-js-build-tools) + ("ppx-jane" ,ocaml-ppx-jane) + ("opam" ,opam))) + (propagated-inputs + `(("async-extra" ,ocaml-async-extra))) + (build-system ocaml-build-system) + (arguments janestreet-arguments) + (home-page "https://github.com/janestreet/async") + (synopsis "Monadic concurrency library") + (description "Async is a library for concurrent programming in OCaml.") + (license license:asl2.0))) + +(define-public ocaml-ocplib-endian + (package + (name "ocaml-ocplib-endian") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/OCamlPro/ocplib-endian/" + "archive/" version ".tar.gz")) + (sha256 + (base32 + "0hwj09rnzjs0m0kazz5h2mgs6p95j0zlga8cda5srnzqmzhniwkn")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (native-inputs `(("cppo" ,ocaml-cppo))) + (home-page "https://github.com/OCamlPro/ocplib-endian") + (synopsis "Optimised functions to read and write int16/32/64 from strings +and bigarrays") + (description "Optimised functions to read and write int16/32/64 from strings +and bigarrays, based on new primitives added in version 4.01. It works on +strings, bytes and bigstring (Bigarrys of chars), and provides submodules for +big- and little-endian, with their unsafe counter-parts.") + (license license:lgpl2.1))) + +(define-public ocaml-cstruct + (package + (name "ocaml-cstruct") + (version "2.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ocaml-cstruct/" + "archive/v" version ".tar.gz")) + (sha256 + (base32 + "15qpdc8421shq4pprdas9jznpva45229wkfqbwcxw9khaiiz7949")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (arguments + `(#:configure-flags + (list "--enable-lwt" "--enable-async") + #:phases + (modify-phases %standard-phases + (add-after 'install 'link-stubs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (stubs (string-append out "/lib/ocaml/site-lib/stubslibs")) + (lib (string-append out "/lib/ocaml/site-lib/cstruct"))) + (mkdir-p stubs) + (symlink (string-append lib "/dllcstruct_stubs.so") + (string-append stubs "/dllcstruct_stubs.so")))))))) + (native-inputs + `(("ounit" ,ocaml-ounit) + ("ppx-tools" ,ocaml-ppx-tools) + ("camlp4" ,camlp4))) + (propagated-inputs + `(("ocplib-endian" ,ocaml-ocplib-endian) + ("lwt" ,ocaml-lwt) + ("async" ,ocaml-async) + ("sexplib" ,ocaml-sexplib))) + (home-page "https://github.com/mirage/ocaml-cstruct") + (synopsis "Access C structures via a camlp4 extension") + (description "Cstruct is a library and syntax extension to make it easier +to access C-like structures directly from OCaml. It supports both reading and +writing to these structures, and they are accessed via the Bigarray module.") + (license license:isc))) + +(define-public ocaml-hex + (package + (name "ocaml-hex") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/mirage/ocaml-hex/" + "archive/" version ".tar.gz")) + (sha256 + (base32 + "0s63g0b8gfv2xm6fv6xg7bva8h76b5pcjb0zw3f8cygs0lq9072v")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system ocaml-build-system) + (propagated-inputs `(("cstruct" ,ocaml-cstruct))) + (home-page "https://github.com/mirage/ocaml-hex/") + (synopsis "Minimal library providing hexadecimal converters") + (description "Hex is a minimal library providing hexadecimal converters.") + (license license:isc))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index eb3a15e080..8cc18162aa 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -74,8 +74,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.13.0") - (commit "a6d728b7aaee09892b0b420d07ed2dbb7de5e63f") - (revision 1)) + (commit "de9d8f0e295928d92e0e5ea43a4e594fa78c76fb") + (revision 2)) (package (name "guix") @@ -91,7 +91,7 @@ (commit commit))) (sha256 (base32 - "1nrskyk8z6w5i9cdfh5zxfgsrqf744sb30ssqi2g5xhijwagr1yq")) + "0px7n4vajc9am3snhnnvddrmnwnb2ygwz0f8isk0qhk8b1ks4kdx")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch b/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch deleted file mode 100644 index 5d8e31563f..0000000000 --- a/gnu/packages/patches/gnome-shell-CVE-2017-8288.patch +++ /dev/null @@ -1,54 +0,0 @@ -Fix CVE-2017-8288: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8288 -http://seclists.org/oss-sec/2017/q2/136 - -Patch copied from upstream source repository: - -https://git.gnome.org/browse/gnome-shell/commit/?id=ff425d1db7082e2755d2a405af53861552acf2a1 - -From ff425d1db7082e2755d2a405af53861552acf2a1 Mon Sep 17 00:00:00 2001 -From: Emilio Pozuelo Monfort <pochu27@gmail.com> -Date: Tue, 25 Apr 2017 17:27:42 +0200 -Subject: extensionSystem: handle reloading broken extensions - -Some extensions out there may fail to reload. When that happens, -we need to catch any exceptions so that we don't leave things in -a broken state that could lead to leaving extensions enabled in -the screen shield. - -https://bugzilla.gnome.org/show_bug.cgi?id=781728 ---- - js/ui/extensionSystem.js | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/js/ui/extensionSystem.js b/js/ui/extensionSystem.js -index a4dc29e..fc352b8 100644 ---- a/js/ui/extensionSystem.js -+++ b/js/ui/extensionSystem.js -@@ -282,12 +282,20 @@ function _onVersionValidationChanged() { - // temporarily disable them all - enabledExtensions = []; - for (let uuid in ExtensionUtils.extensions) -- reloadExtension(ExtensionUtils.extensions[uuid]); -+ try { -+ reloadExtension(ExtensionUtils.extensions[uuid]); -+ } catch(e) { -+ logExtensionError(uuid, e); -+ } - enabledExtensions = getEnabledExtensions(); - - if (Main.sessionMode.allowExtensions) { - enabledExtensions.forEach(function(uuid) { -- enableExtension(uuid); -+ try { -+ enableExtension(uuid); -+ } catch(e) { -+ logExtensionError(uuid, e); -+ } - }); - } - } --- -cgit v0.12 - diff --git a/gnu/packages/patches/libgdata-fix-tests.patch b/gnu/packages/patches/libgdata-fix-tests.patch new file mode 100644 index 0000000000..dc86b3ab5a --- /dev/null +++ b/gnu/packages/patches/libgdata-fix-tests.patch @@ -0,0 +1,325 @@ +From c87a112246e0bcbd5c3a8aa484a50c617d710dbf Mon Sep 17 00:00:00 2001 +From: Philip Withnall <philip.withnall@collabora.co.uk> +Date: Fri, 12 Dec 2014 17:31:01 +0000 +Subject: [PATCH] tests: Eliminate ISO 8601 formatting workaround for dates + +Follow up to commit 732017e4e5235e28c578cc3367fa0c4548b65495. + +https://bugzilla.gnome.org/show_bug.cgi?id=739956 +--- + gdata/tests/calendar.c | 20 ++++++++++---------- + gdata/tests/general.c | 34 +++++++++++++++++----------------- + gdata/tests/tasks.c | 34 +++++++++++++++++----------------- + gdata/tests/youtube.c | 16 ++++++++-------- + 4 files changed, 52 insertions(+), 52 deletions(-) + +diff --git a/gdata/tests/calendar.c b/gdata/tests/calendar.c +index bb1d609..c54ddda 100644 +--- a/gdata/tests/calendar.c ++++ b/gdata/tests/calendar.c +@@ -620,7 +620,7 @@ test_event_xml (void) + "<gCal:guestsCanInviteOthers value='false'/>" + "<gCal:guestsCanSeeGuests value='false'/>" + "<gCal:anyoneCanAddSelf value='false'/>" +- "<gd:when startTime='2009-04-17T15:00:00.000001+00:00' endTime='2009-04-17T17:00:00.000001+00:00'/>" ++ "<gd:when startTime='2009-04-17T15:00:00Z' endTime='2009-04-17T17:00:00Z'/>" + "<gd:who email='john.smith@example.com' " + "rel='http://schemas.google.com/g/2005#event.organizer' " + "valueString='John Smith\342\200\275'/>" +@@ -706,7 +706,7 @@ test_event_xml_dates (void) + "<gCal:guestsCanSeeGuests value='false'/>" + "<gCal:anyoneCanAddSelf value='false'/>" + "<gd:when startTime='2009-04-17'/>" +- "<gd:when startTime='2009-04-17T15:00:00.000001+00:00'/>" ++ "<gd:when startTime='2009-04-17T15:00:00Z'/>" + "<gd:when startTime='2009-04-27' endTime='2009-05-06'/>" + "</entry>"); + +@@ -934,25 +934,25 @@ test_query_uri (void) + + /* Check the built query URI with a normal feed URI */ + query_uri = gdata_query_get_query_uri (GDATA_QUERY (query), "http://example.com"); +- g_assert_cmpstr (query_uri, ==, "http://example.com?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00.000001+00:00" +- "&recurrence-expansion-end=2010-04-17T15:00:00.000001+00:00&singleevents=true&sortorder=descending" +- "&start-min=2009-04-17T15:00:00.000001+00:00&start-max=2010-04-17T15:00:00.000001+00:00&ctz=America%2FLos_Angeles&max-attendees=15" ++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00Z" ++ "&recurrence-expansion-end=2010-04-17T15:00:00Z&singleevents=true&sortorder=descending" ++ "&start-min=2009-04-17T15:00:00Z&start-max=2010-04-17T15:00:00Z&ctz=America%2FLos_Angeles&max-attendees=15" + "&showdeleted=true"); + g_free (query_uri); + + /* …with a feed URI with a trailing slash */ + query_uri = gdata_query_get_query_uri (GDATA_QUERY (query), "http://example.com/"); +- g_assert_cmpstr (query_uri, ==, "http://example.com/?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00.000001+00:00" +- "&recurrence-expansion-end=2010-04-17T15:00:00.000001+00:00&singleevents=true&sortorder=descending" +- "&start-min=2009-04-17T15:00:00.000001+00:00&start-max=2010-04-17T15:00:00.000001+00:00&ctz=America%2FLos_Angeles&max-attendees=15" ++ g_assert_cmpstr (query_uri, ==, "http://example.com/?q=q&futureevents=true&orderby=starttime&recurrence-expansion-start=2009-04-17T15:00:00Z" ++ "&recurrence-expansion-end=2010-04-17T15:00:00Z&singleevents=true&sortorder=descending" ++ "&start-min=2009-04-17T15:00:00Z&start-max=2010-04-17T15:00:00Z&ctz=America%2FLos_Angeles&max-attendees=15" + "&showdeleted=true"); + g_free (query_uri); + + /* …with a feed URI with pre-existing arguments */ + query_uri = gdata_query_get_query_uri (GDATA_QUERY (query), "http://example.com/bar/?test=test&this=that"); + g_assert_cmpstr (query_uri, ==, "http://example.com/bar/?test=test&this=that&q=q&futureevents=true&orderby=starttime" +- "&recurrence-expansion-start=2009-04-17T15:00:00.000001+00:00&recurrence-expansion-end=2010-04-17T15:00:00.000001+00:00" +- "&singleevents=true&sortorder=descending&start-min=2009-04-17T15:00:00.000001+00:00&start-max=2010-04-17T15:00:00.000001+00:00" ++ "&recurrence-expansion-start=2009-04-17T15:00:00Z&recurrence-expansion-end=2010-04-17T15:00:00Z" ++ "&singleevents=true&sortorder=descending&start-min=2009-04-17T15:00:00Z&start-max=2010-04-17T15:00:00Z" + "&ctz=America%2FLos_Angeles&max-attendees=15&showdeleted=true"); + g_free (query_uri); + +diff --git a/gdata/tests/general.c b/gdata/tests/general.c +index 237a908..f828d2e 100644 +--- a/gdata/tests/general.c ++++ b/gdata/tests/general.c +@@ -528,8 +528,8 @@ test_entry_parse_xml (void) + "<?xml version='1.0' encoding='UTF-8'?>" + "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' xmlns:ns='http://example.com/'>" + "<title type='text'>Testing unhandled XML</title>" +- "<updated>2009-01-25T14:07:37.000001+00:00</updated>" +- "<published>2009-01-23T14:06:37.000001+00:00</published>" ++ "<updated>2009-01-25T14:07:37Z</updated>" ++ "<published>2009-01-23T14:06:37Z</published>" + "<content type='text'>Here we test unhandled XML elements.</content>" + "<foobar>Test!</foobar>" + "<barfoo shizzle=\"zing\"/>" +@@ -569,8 +569,8 @@ test_entry_parse_xml_kind_category (void) + "<?xml version='1.0' encoding='UTF-8'?>" + "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'>" + "<title type='text'>Testing kind categories</title>" +- "<updated>2009-01-25T14:07:37.000001+00:00</updated>" +- "<published>2009-01-23T14:06:37.000001+00:00</published>" ++ "<updated>2009-01-25T14:07:37Z</updated>" ++ "<published>2009-01-23T14:06:37Z</published>" + "<content type='text'>Here we test kind categories.</content>" + "<category term='http://schemas.google.com/docs/2007#file' " + "scheme='http://schemas.google.com/g/2005#kind' " +@@ -620,7 +620,7 @@ test_entry_parse_json (void) + "{" + "\"title\":\"A title\"," + "\"id\":\"some-id\"," +- "\"updated\":\"2009-01-25T14:07:37.000001+00:00\"," ++ "\"updated\":\"2009-01-25T14:07:37Z\"," + "\"etag\":\"some-etag\"," + "\"selfLink\":\"http://example.com/\"," + "\"kind\":\"kind#kind\"," +@@ -760,8 +760,8 @@ test_entry_escaping (void) + "<entry xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005'>" + "<title type='text'>Escaped content & stuff</title>" + "<id>http://foo.com/?foo&bar</id>" +- "<updated>2010-12-10T17:21:24.000001+00:00</updated>" +- "<published>2010-12-10T17:21:24.000001+00:00</published>" ++ "<updated>2010-12-10T17:21:24Z</updated>" ++ "<published>2010-12-10T17:21:24Z</published>" + "<summary type='text'>Summary & stuff</summary>" + "<rights>Free & open source</rights>" + "<content type='text'>Content & things.</content>" +@@ -1106,7 +1106,7 @@ test_feed_escaping (void) + "<feed xmlns='http://www.w3.org/2005/Atom'>" + "<title type='text'>Test feed & stuff.</title>" + "<id>http://foo.com?foo&bar</id>" +- "<updated>2010-12-10T17:49:15.000001+00:00</updated>" ++ "<updated>2010-12-10T17:49:15Z</updated>" + "</feed>"); + g_object_unref (feed); + } +@@ -1157,28 +1157,28 @@ test_query_dates (void) + /* updated-min */ + gdata_query_set_updated_min (query, 1373280114); /* 2013-07-08T10:41:54Z */ + query_uri = gdata_query_get_query_uri (query, "http://example.com"); +- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-min=2013-07-08T10:41:54.000001+00:00"); ++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-min=2013-07-08T10:41:54Z"); + g_free (query_uri); + gdata_query_set_updated_min (query, -1); + + /* updated-max */ + gdata_query_set_updated_max (query, 1373280114); /* 2013-07-08T10:41:54Z */ + query_uri = gdata_query_get_query_uri (query, "http://example.com"); +- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-max=2013-07-08T10:41:54.000001+00:00"); ++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&updated-max=2013-07-08T10:41:54Z"); + g_free (query_uri); + gdata_query_set_updated_max (query, -1); + + /* published-min */ + gdata_query_set_published_min (query, 1373280114); /* 2013-07-08T10:41:54Z */ + query_uri = gdata_query_get_query_uri (query, "http://example.com"); +- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-min=2013-07-08T10:41:54.000001+00:00"); ++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-min=2013-07-08T10:41:54Z"); + g_free (query_uri); + gdata_query_set_published_min (query, -1); + + /* published-max */ + gdata_query_set_published_max (query, 1373280114); /* 2013-07-08T10:41:54Z */ + query_uri = gdata_query_get_query_uri (query, "http://example.com"); +- g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-max=2013-07-08T10:41:54.000001+00:00"); ++ g_assert_cmpstr (query_uri, ==, "http://example.com?q=baz&published-max=2013-07-08T10:41:54Z"); + g_free (query_uri); + gdata_query_set_published_max (query, -1); + +@@ -3127,7 +3127,7 @@ test_gd_reminder (void) + gdata_test_assert_xml (reminder, + "<?xml version='1.0' encoding='UTF-8'?>" + "<gd:reminder xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' " +- "absoluteTime='2005-06-07T00:55:00.000001+00:00' method='alert'/>"); ++ "absoluteTime='2005-06-07T00:55:00Z' method='alert'/>"); + g_object_unref (reminder); + } + +@@ -3218,8 +3218,8 @@ test_gd_when (void) + /* Check the outputted XML is the same */ + gdata_test_assert_xml (when, + "<?xml version='1.0' encoding='UTF-8'?>" +- "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' startTime='2005-06-07T01:00:00.000001+00:00' " +- "endTime='2005-06-07T02:00:00.000001+00:00'/>"); ++ "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' startTime='2005-06-07T01:00:00Z' " ++ "endTime='2005-06-07T02:00:00Z'/>"); + g_object_unref (when); + + /* Now parse a time with different information */ +@@ -3258,7 +3258,7 @@ test_gd_when (void) + "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' startTime='2005-06-06' " + "endTime='2005-06-08' valueString='This weekend'>" + "<gd:reminder minutes='15'/>" +- "<gd:reminder absoluteTime='2005-06-06T00:00:00.000001+00:00' method='alert'/>" ++ "<gd:reminder absoluteTime='2005-06-06T00:00:00Z' method='alert'/>" + "<foobar/>" + "</gd:when>"); + g_object_unref (when); +@@ -3278,7 +3278,7 @@ test_gd_when_escaping (void) + gdata_test_assert_xml (when, + "<?xml version='1.0' encoding='UTF-8'?>" + "<gd:when xmlns='http://www.w3.org/2005/Atom' xmlns:gd='http://schemas.google.com/g/2005' " +- "startTime='2005-06-07T01:00:00.000001+00:00' valueString='Value string & stuff!'/>"); ++ "startTime='2005-06-07T01:00:00Z' valueString='Value string & stuff!'/>"); + g_object_unref (when); + } + +diff --git a/gdata/tests/tasks.c b/gdata/tests/tasks.c +index 7a5bc7e..7bf3174 100644 +--- a/gdata/tests/tasks.c ++++ b/gdata/tests/tasks.c +@@ -122,11 +122,11 @@ test_query_uri (void) + g_assert_cmpstr (query_uri, ==, + "http://example.com" + "?maxResults=10" +- "&updatedMin=1970-01-01T01:53:09.000001+00:00" +- "&completedMin=1970-01-01T01:34:38.000001+00:00" +- "&completedMax=1970-01-01T00:20:34.000001+00:00" +- "&dueMin=1970-01-01T00:39:05.000001+00:00" +- "&dueMax=1970-01-01T00:57:36.000001+00:00" ++ "&updatedMin=1970-01-01T01:53:09Z" ++ "&completedMin=1970-01-01T01:34:38Z" ++ "&completedMax=1970-01-01T00:20:34Z" ++ "&dueMin=1970-01-01T00:39:05Z" ++ "&dueMax=1970-01-01T00:57:36Z" + "&showCompleted=true" + "&showDeleted=true" + "&showHidden=true"); +@@ -148,11 +148,11 @@ test_query_uri (void) + g_assert_cmpstr (query_uri, ==, + "http://example.com" + "?maxResults=10" +- "&updatedMin=1970-01-01T01:53:09.000001+00:00" +- "&completedMin=1970-01-01T01:34:38.000001+00:00" +- "&completedMax=1970-01-01T00:20:34.000001+00:00" +- "&dueMin=1970-01-01T00:39:05.000001+00:00" +- "&dueMax=1970-01-01T00:57:36.000001+00:00" ++ "&updatedMin=1970-01-01T01:53:09Z" ++ "&completedMin=1970-01-01T01:34:38Z" ++ "&completedMax=1970-01-01T00:20:34Z" ++ "&dueMin=1970-01-01T00:39:05Z" ++ "&dueMax=1970-01-01T00:57:36Z" + "&showCompleted=false" + "&showDeleted=false" + "&showHidden=false"); +@@ -317,8 +317,8 @@ test_task_properties (void) + "\"title\": \"some-other-title\"," + "\"notes\": \"more-notes\"," + "\"status\": \"completed\"," +- "\"due\": \"2014-08-30T17:20:00.000001+00:00\"," +- "\"completed\": \"2014-08-30T17:20:00.000001+00:00\"," ++ "\"due\": \"2014-08-30T17:20:00Z\"," ++ "\"completed\": \"2014-08-30T17:20:00Z\"," + "\"deleted\": true," + "\"hidden\": false" + "}"); +@@ -332,8 +332,8 @@ test_task_properties (void) + "\"title\": \"some-other-title\"," + "\"notes\": \"more-notes\"," + "\"status\": \"completed\"," +- "\"due\": \"2014-08-30T17:20:00.000001+00:00\"," +- "\"completed\": \"2014-08-30T17:20:00.000001+00:00\"," ++ "\"due\": \"2014-08-30T17:20:00Z\"," ++ "\"completed\": \"2014-08-30T17:20:00Z\"," + "\"deleted\": false," + "\"hidden\": false" + "}"); +@@ -496,14 +496,14 @@ test_task_parser_normal (void) + "\"id\": \"some-id\"," + "\"etag\": \"some-etag\"," + "\"title\": \"some-title \\\"with quotes\\\"\"," +- "\"updated\": \"2014-08-30T19:40:00.000001+00:00\"," ++ "\"updated\": \"2014-08-30T19:40:00Z\"," + "\"selfLink\": \"http://some-uri/\"," + "\"parent\": \"some-parent-id\"," + "\"position\": \"some-position\"," + "\"notes\": \"Some notes!\"," + "\"status\": \"needsAction\"," +- "\"due\": \"2014-08-30T20:00:00.000001+00:00\"," +- "\"completed\": \"2014-08-30T20:10:05.000001+00:00\"," ++ "\"due\": \"2014-08-30T20:00:00Z\"," ++ "\"completed\": \"2014-08-30T20:10:05Z\"," + "\"deleted\": false," + "\"hidden\": true," + /* Unhandled for the moment: */ +diff --git a/gdata/tests/youtube.c b/gdata/tests/youtube.c +index a1e070a..1195bc3 100644 +--- a/gdata/tests/youtube.c ++++ b/gdata/tests/youtube.c +@@ -967,8 +967,8 @@ test_parsing_yt_recorded (void) + "gd:etag='W/\"CEMFSX47eCp7ImA9WxVUGEw.\"'>" + "<title type='text'>Judas Priest - Painkiller</title>" + "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>" +- "<updated>2009-03-23T12:46:58.000001+00:00</updated>" +- "<published>2006-05-16T14:06:37.000001+00:00</published>" ++ "<updated>2009-03-23T12:46:58Z</updated>" ++ "<published>2006-05-16T14:06:37Z</published>" + "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>" + "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>" + "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>" +@@ -1055,8 +1055,8 @@ test_parsing_yt_access_control (void) + "gd:etag='W/\"CEMFSX47eCp7ImA9WxVUGEw.\"'>" + "<title type='text'>Judas Priest - Painkiller</title>" + "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>" +- "<updated>2009-03-23T12:46:58.000001+00:00</updated>" +- "<published>2006-05-16T14:06:37.000001+00:00</published>" ++ "<updated>2009-03-23T12:46:58Z</updated>" ++ "<published>2006-05-16T14:06:37Z</published>" + "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>" + "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>" + "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>" +@@ -1255,8 +1255,8 @@ test_parsing_georss_where (void) + "xmlns:gml='http://www.opengis.net/gml'>" + "<title type='text'>Some video somewhere</title>" + "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>" +- "<updated>2009-03-23T12:46:58.000001+00:00</updated>" +- "<published>2006-05-16T14:06:37.000001+00:00</published>" ++ "<updated>2009-03-23T12:46:58Z</updated>" ++ "<published>2006-05-16T14:06:37Z</published>" + "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>" + "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>" + "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>" +@@ -1295,8 +1295,8 @@ test_parsing_georss_where (void) + "xmlns:gml='http://www.opengis.net/gml'>" + "<title type='text'>Some video somewhere</title>" + "<id>tag:youtube.com,2008:video:JAagedeKdcQ</id>" +- "<updated>2009-03-23T12:46:58.000001+00:00</updated>" +- "<published>2006-05-16T14:06:37.000001+00:00</published>" ++ "<updated>2009-03-23T12:46:58Z</updated>" ++ "<published>2006-05-16T14:06:37Z</published>" + "<category term='http://gdata.youtube.com/schemas/2007#video' scheme='http://schemas.google.com/g/2005#kind'/>" + "<link href='http://www.youtube.com/watch?v=JAagedeKdcQ' rel='http://www.iana.org/assignments/relation/alternate' type='text/html'/>" + "<link href='http://gdata.youtube.com/feeds/api/videos/JAagedeKdcQ?client=ytapi-google-jsdemo' rel='http://www.iana.org/assignments/relation/self' type='application/atom+xml'/>" +-- +1.9.3 diff --git a/gnu/packages/patches/libgdata-glib-duplicate-tests.patch b/gnu/packages/patches/libgdata-glib-duplicate-tests.patch new file mode 100644 index 0000000000..d5d8d064de --- /dev/null +++ b/gnu/packages/patches/libgdata-glib-duplicate-tests.patch @@ -0,0 +1,16 @@ +diff -ur a/gdata/tests/oauth1-authorizer.c b/gdata/tests/oauth1-authorizer.c +--- a/gdata/tests/oauth1-authorizer.c 1969-12-31 19:00:00.000000000 -0500 ++++ b/gdata/tests/oauth1-authorizer.c 2017-05-27 19:35:30.551725678 -0400 +@@ -1045,10 +1045,10 @@ + /* Sync request-authentication-uri tests */ + g_test_add ("/oauth1-authorizer/request-authentication-uri/sync", OAuth1AuthorizerData, NULL, set_up_oauth1_authorizer_data, + test_oauth1_authorizer_request_authentication_uri_sync, tear_down_oauth1_authorizer_data); +- g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains", OAuth1AuthorizerData, NULL, ++ g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains1", OAuth1AuthorizerData, NULL, + set_up_oauth1_authorizer_data_multiple_domains, test_oauth1_authorizer_request_authentication_uri_sync, + tear_down_oauth1_authorizer_data); +- g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains", OAuth1AuthorizerData, NULL, ++ g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/multiple-domains2", OAuth1AuthorizerData, NULL, + set_up_oauth1_authorizer_data_locale, test_oauth1_authorizer_request_authentication_uri_sync, + tear_down_oauth1_authorizer_data); + g_test_add ("/oauth1-authorizer/request-authentication-uri/sync/cancellation", OAuth1AuthorizerData, NULL, diff --git a/gnu/packages/patches/libssh-hostname-parser-bug.patch b/gnu/packages/patches/libssh-hostname-parser-bug.patch new file mode 100644 index 0000000000..69f46cbdd6 --- /dev/null +++ b/gnu/packages/patches/libssh-hostname-parser-bug.patch @@ -0,0 +1,31 @@ +Fix "Hostname" parsing in OpenSSH config files, as reported +at <https://red.libssh.org/issues/260>. + +From: Niels Ole Salscheider <niels_ole@salscheider-online.de> +Date: Mon, 8 May 2017 17:36:13 +0200 +Subject: [PATCH] Fix reading of the first parameter + +This is a fixup for 7b8b5eb4eac314a3a29be812bef0264c6611f6e7. +Previously, it would return as long as the parameter was _not_ seen +before. It also did not handle the case for the unsupported opcode (-1) +which would cause a segfault when accessing the "seen" array. +--- + src/config.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/config.c b/src/config.c +index 7c03b27..238a655 100644 +--- a/src/config.c ++++ b/src/config.c +@@ -218,8 +218,9 @@ static int ssh_config_parse_line(ssh_session session, const char *line, + } + + opcode = ssh_config_get_opcode(keyword); +- if (*parsing == 1 && opcode != SOC_HOST) { +- if (seen[opcode] == 0) { ++ if (*parsing == 1 && opcode != SOC_HOST && ++ opcode > SOC_UNSUPPORTED && opcode < SOC_END) { ++ if (seen[opcode] == 1) { + return 0; + } + seen[opcode] = 1; diff --git a/gnu/packages/patches/openscenegraph-ffmpeg3.patch b/gnu/packages/patches/openscenegraph-ffmpeg3.patch new file mode 100644 index 0000000000..02c04a5583 --- /dev/null +++ b/gnu/packages/patches/openscenegraph-ffmpeg3.patch @@ -0,0 +1,156 @@ +Description: Replace deprecated FFmpeg API +Author: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> +See <http://forum.openscenegraph.org/viewtopic.php?t=15832>. +--- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp ++++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp +@@ -71,7 +71,7 @@ void FFmpegDecoderVideo::open(AVStream * + findAspectRatio(); + + // Find out whether we support Alpha channel +- m_alpha_channel = (m_context->pix_fmt == PIX_FMT_YUVA420P); ++ m_alpha_channel = (m_context->pix_fmt == AV_PIX_FMT_YUVA420P); + + // Find out the framerate + m_frame_rate = av_q2d(stream->avg_frame_rate); +@@ -91,20 +91,19 @@ void FFmpegDecoderVideo::open(AVStream * + throw std::runtime_error("avcodec_open() failed"); + + // Allocate video frame +- m_frame.reset(avcodec_alloc_frame()); ++ m_frame.reset(av_frame_alloc()); + + // Allocate converted RGB frame +- m_frame_rgba.reset(avcodec_alloc_frame()); +- m_buffer_rgba[0].resize(avpicture_get_size(PIX_FMT_RGB24, width(), height())); ++ m_frame_rgba.reset(av_frame_alloc()); ++ m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height())); + m_buffer_rgba[1].resize(m_buffer_rgba[0].size()); + + // Assign appropriate parts of the buffer to image planes in m_frame_rgba +- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], PIX_FMT_RGB24, width(), height()); ++ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height()); + + // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame. + m_context->opaque = this; +- m_context->get_buffer = getBuffer; +- m_context->release_buffer = releaseBuffer; ++ m_context->get_buffer2 = getBuffer; + } + + +@@ -263,8 +262,8 @@ int FFmpegDecoderVideo::convert(AVPictur + #ifdef USE_SWSCALE + if (m_swscale_ctx==0) + { +- m_swscale_ctx = sws_getContext(src_width, src_height, (PixelFormat) src_pix_fmt, +- src_width, src_height, (PixelFormat) dst_pix_fmt, ++ m_swscale_ctx = sws_getContext(src_width, src_height, (AVPixelFormat) src_pix_fmt, ++ src_width, src_height, (AVPixelFormat) dst_pix_fmt, + /*SWS_BILINEAR*/ SWS_BICUBIC, NULL, NULL, NULL); + } + +@@ -311,14 +310,14 @@ void FFmpegDecoderVideo::publishFrame(co + AVPicture * const dst = (AVPicture *) m_frame_rgba.get(); + + // Assign appropriate parts of the buffer to image planes in m_frame_rgba +- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], PIX_FMT_RGB24, width(), height()); ++ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height()); + + // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine + +- if (m_context->pix_fmt == PIX_FMT_YUVA420P) ++ if (m_context->pix_fmt == AV_PIX_FMT_YUVA420P) + yuva420pToRgba(dst, src, width(), height()); + else +- convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height()); ++ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height()); + + // Wait 'delay' seconds before publishing the picture. + int i_delay = static_cast<int>(delay * 1000000 + 0.5); +@@ -345,7 +344,7 @@ void FFmpegDecoderVideo::publishFrame(co + + void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height) + { +- convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width, height); ++ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height); + + const size_t bpp = 4; + +@@ -363,31 +362,28 @@ void FFmpegDecoderVideo::yuva420pToRgba( + } + } + +- +- +-int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture) ++int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture, int flags) + { ++ AVBufferRef *ref; + const FFmpegDecoderVideo * const this_ = reinterpret_cast<const FFmpegDecoderVideo*>(context->opaque); + +- const int result = avcodec_default_get_buffer(context, picture); ++ const int result = avcodec_default_get_buffer2(context, picture, flags); + int64_t * p_pts = reinterpret_cast<int64_t*>( av_malloc(sizeof(int64_t)) ); + + *p_pts = this_->m_packet_pts; + picture->opaque = p_pts; + ++ ref = av_buffer_create((uint8_t *)picture->opaque, sizeof(int64_t), FFmpegDecoderVideo::freeBuffer, picture->buf[0], flags); ++ picture->buf[0] = ref; ++ + return result; + } + +- +- +-void FFmpegDecoderVideo::releaseBuffer(AVCodecContext * const context, AVFrame * const picture) ++void FFmpegDecoderVideo::freeBuffer(void *opaque, uint8_t *data) + { +- if (picture != 0) +- av_freep(&picture->opaque); +- +- avcodec_default_release_buffer(context, picture); ++ AVBufferRef *ref = (AVBufferRef *)opaque; ++ av_buffer_unref(&ref); ++ av_free(data); + } + +- +- + } // namespace osgFFmpeg +--- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp ++++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp +@@ -94,8 +94,8 @@ private: + int src_pix_fmt, int src_width, int src_height); + + +- static int getBuffer(AVCodecContext * context, AVFrame * picture); +- static void releaseBuffer(AVCodecContext * context, AVFrame * picture); ++ static int getBuffer(AVCodecContext * context, AVFrame * picture, int flags); ++ static void freeBuffer(void * opaque, uint8_t *data); + + PacketQueue & m_packets; + FFmpegClocks & m_clocks; +--- a/src/osgPlugins/ffmpeg/FFmpegParameters.cpp ++++ b/src/osgPlugins/ffmpeg/FFmpegParameters.cpp +@@ -19,7 +19,7 @@ extern "C" + #include <libavutil/pixdesc.h> + } + +-inline PixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); } ++inline AVPixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); } + + + namespace osgFFmpeg { +--- a/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp 2016-02-18 21:25:39.627923629 +0000 ++++ b/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp 2016-02-18 21:26:17.071140100 +0000 +@@ -227,8 +227,7 @@ + if (avcodec_open2(m_context, p_codec, NULL) < 0) + throw std::runtime_error("avcodec_open() failed"); + +- m_context->get_buffer = avcodec_default_get_buffer; +- m_context->release_buffer = avcodec_default_release_buffer; ++ m_context->get_buffer2 = avcodec_default_get_buffer2; + + } + diff --git a/gnu/packages/patches/perl-file-path-CVE-2017-6512.patch b/gnu/packages/patches/perl-file-path-CVE-2017-6512.patch new file mode 100644 index 0000000000..28ab067599 --- /dev/null +++ b/gnu/packages/patches/perl-file-path-CVE-2017-6512.patch @@ -0,0 +1,173 @@ +Fix CVE-2017-6512: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6512 +https://rt.cpan.org/Public/Bug/Display.html?id=121951 + +Patch copied from Debian, adapted to apply to the copy of File::Path in Perl +5.24.0. + +https://github.com/jkeenan/File-Path/commit/e5ef95276ee8ad471c66ee574a5d42552b3a6af2 +https://anonscm.debian.org/cgit/perl/perl.git/diff/debian/patches/fixes/file_path_chmod_race.diff?id=e7b50f8fb6413f8ddfbbfda2d531615fb029e2d3 + +From d760748be0efca7c05454440e24f3df77bf7cf5d Mon Sep 17 00:00:00 2001 +From: John Lightsey <john@nixnuts.net> +Date: Tue, 2 May 2017 12:03:52 -0500 +Subject: Prevent directory chmod race attack. + +CVE-2017-6512 is a race condition attack where the chmod() of directories +that cannot be entered is misused to change the permissions on other +files or directories on the system. This has been corrected by limiting +the directory-permission loosening logic to systems where fchmod() is +supported. + +[Backported (whitespace adjustments) to File-Path 2.12 / perl 5.24 by +Dominic Hargreaves for Debian.] + +Bug: https://rt.cpan.org/Public/Bug/Display.html?id=121951 +Bug-Debian: https://bugs.debian.org/863870 +Patch-Name: fixes/file_path_chmod_race.diff +--- + cpan/File-Path/lib/File/Path.pm | 39 +++++++++++++++++++++++++-------------- + cpan/File-Path/t/Path.t | 40 ++++++++++++++++++++++++++-------------- + 2 files changed, 51 insertions(+), 28 deletions(-) + +diff --git a/cpan/File-Path/lib/File/Path.pm b/cpan/File-Path/lib/File/Path.pm +index 034da1e..a824cc8 100644 +--- a/cpan/File-Path/lib/File/Path.pm ++++ b/cpan/File-Path/lib/File/Path.pm +@@ -354,21 +354,32 @@ sub _rmtree { + + # see if we can escalate privileges to get in + # (e.g. funny protection mask such as -w- instead of rwx) +- $perm &= oct '7777'; +- my $nperm = $perm | oct '700'; +- if ( +- !( +- $arg->{safe} +- or $nperm == $perm +- or chmod( $nperm, $root ) +- ) +- ) +- { +- _error( $arg, +- "cannot make child directory read-write-exec", $canon ); +- next ROOT_DIR; ++ # This uses fchmod to avoid traversing outside of the proper ++ # location (CVE-2017-6512) ++ my $root_fh; ++ if (open($root_fh, '<', $root)) { ++ my ($fh_dev, $fh_inode) = (stat $root_fh )[0,1]; ++ $perm &= oct '7777'; ++ my $nperm = $perm | oct '700'; ++ local $@; ++ if ( ++ !( ++ $arg->{safe} ++ or $nperm == $perm ++ or !-d _ ++ or $fh_dev ne $ldev ++ or $fh_inode ne $lino ++ or eval { chmod( $nperm, $root_fh ) } ++ ) ++ ) ++ { ++ _error( $arg, ++ "cannot make child directory read-write-exec", $canon ); ++ next ROOT_DIR; ++ } ++ close $root_fh; + } +- elsif ( !chdir($root) ) { ++ if ( !chdir($root) ) { + _error( $arg, "cannot chdir to child", $canon ); + next ROOT_DIR; + } +diff --git a/cpan/File-Path/t/Path.t b/cpan/File-Path/t/Path.t +index ff52fd6..956ca09 100644 +--- a/cpan/File-Path/t/Path.t ++++ b/cpan/File-Path/t/Path.t +@@ -3,7 +3,7 @@ + + use strict; + +-use Test::More tests => 127; ++use Test::More tests => 126; + use Config; + use Fcntl ':mode'; + use lib 't/'; +@@ -18,6 +18,13 @@ BEGIN { + + my $Is_VMS = $^O eq 'VMS'; + ++my $fchmod_supported = 0; ++if (open my $fh, curdir()) { ++ my ($perm) = (stat($fh))[2]; ++ $perm &= 07777; ++ eval { $fchmod_supported = chmod( $perm, $fh); }; ++} ++ + # first check for stupid permissions second for full, so we clean up + # behind ourselves + for my $perm (0111,0777) { +@@ -299,16 +306,19 @@ is($created[0], $dir, "created directory (old style 3 mode undef) cross-check"); + + is(rmtree($dir, 0, undef), 1, "removed directory 3 verbose undef"); + +-$dir = catdir($tmp_base,'G'); +-$dir = VMS::Filespec::unixify($dir) if $Is_VMS; ++SKIP: { ++ skip "fchmod of directories not supported on this platform", 3 unless $fchmod_supported; ++ $dir = catdir($tmp_base,'G'); ++ $dir = VMS::Filespec::unixify($dir) if $Is_VMS; + +-@created = mkpath($dir, undef, 0200); ++ @created = mkpath($dir, undef, 0400); + +-is(scalar(@created), 1, "created write-only dir"); ++ is(scalar(@created), 1, "created read-only dir"); + +-is($created[0], $dir, "created write-only directory cross-check"); ++ is($created[0], $dir, "created read-only directory cross-check"); + +-is(rmtree($dir), 1, "removed write-only dir"); ++ is(rmtree($dir), 1, "removed read-only dir"); ++} + + # borderline new-style heuristics + if (chdir $tmp_base) { +@@ -450,26 +460,28 @@ SKIP: { + } + + SKIP : { +- my $skip_count = 19; ++ my $skip_count = 18; + # this test will fail on Windows, as per: + # http://perldoc.perl.org/perlport.html#chmod + + skip "Windows chmod test skipped", $skip_count + if $^O eq 'MSWin32'; ++ skip "fchmod() on directories is not supported on this platform", $skip_count ++ unless $fchmod_supported; + my $mode; + my $octal_mode; + my @inputs = ( +- 0777, 0700, 0070, 0007, +- 0333, 0300, 0030, 0003, +- 0111, 0100, 0010, 0001, +- 0731, 0713, 0317, 0371, 0173, 0137, +- 00 ); ++ 0777, 0700, 0470, 0407, ++ 0433, 0400, 0430, 0403, ++ 0111, 0100, 0110, 0101, ++ 0731, 0713, 0317, 0371, ++ 0173, 0137); + my $input; + my $octal_input; +- $dir = catdir($tmp_base, 'chmod_test'); + + foreach (@inputs) { + $input = $_; ++ $dir = catdir($tmp_base, sprintf("chmod_test%04o", $input)); + # We can skip from here because 0 is last in the list. + skip "Mode of 0 means assume user defaults on VMS", 1 + if ($input == 0 && $Is_VMS); diff --git a/gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch b/gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch deleted file mode 100644 index dc594bdccb..0000000000 --- a/gnu/packages/patches/xf86-input-wacom-xorg-abi-25.patch +++ /dev/null @@ -1,46 +0,0 @@ -Resolves a test compatibility issue with xorg >= 1.19. - -Upstream bug report: - -https://sourceforge.net/p/linuxwacom/bugs/329/ - -Patch copied from upstream source repository: - -https://sourceforge.net/p/linuxwacom/xf86-input-wacom/ci/f0dedf7a610ac97bc45738492b98ce4f1e0514ec/ - -From f0dedf7a610ac97bc45738492b98ce4f1e0514ec Mon Sep 17 00:00:00 2001 -From: Jason Gerecke <killertofu@gmail.com> -Date: Wed, 18 Jan 2017 09:00:10 -0800 -Subject: [PATCH] tests: Fix compilation under ABI 25 and greater - -diff --git a/test/fake-symbols.c b/test/fake-symbols.c -index 6f2c10a..e649fb9 100644 ---- a/test/fake-symbols.c -+++ b/test/fake-symbols.c -@@ -493,6 +493,7 @@ void TimerFree(OsTimerPtr timer) - { - } - -+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 24 - int - xf86BlockSIGIO (void) - { -@@ -503,6 +504,15 @@ void - xf86UnblockSIGIO (int wasset) - { - } -+#else -+void input_lock (void) -+{ -+} -+ -+void input_unlock (void) -+{ -+} -+#endif - - /* This is not the same as the X server one, but it'll do for the tests */ - #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 14 --- -2.11.1 - diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index c3b486988d..876bad80d8 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -60,6 +60,7 @@ (base32 "0zxn9hd7mqgq06ikyi6k70ngbvjf01z1paw0jd25byyl0rlwdrzb")) (patches (search-patches + "perl-file-path-CVE-2017-6512.patch" "perl-no-sys-dirs.patch" "perl-autosplit-default-time.patch" "perl-deterministic-ordering.patch" @@ -2986,17 +2987,17 @@ platforms.") (define-public perl-file-path (package (name "perl-file-path") - (version "2.12") + (version "2.13") (source (origin (method url-fetch) (uri (string-append - "mirror://cpan/authors/id/R/RI/RICHE/File-Path-" + "mirror://cpan/authors/id/J/JK/JKEENAN/File-Path-" version ".tar.gz")) (sha256 (base32 - "0znihrlcnlpa0ziml0hkq9s59p1bjd2a6khgx2accdf16w6imxmv")))) + "039gc0i5cbdmidl8j8x195yykwcdmzwawmpapnysvljl8l33jqwj")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/File-Path") (synopsis "Create or remove directory trees") diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 14511d0c32..6691095e55 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net> +;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,8 +49,7 @@ (define-public ruby (package (name "ruby") - (version "2.3.3") - (replacement ruby-2.3.4) + (version "2.4.0") (source (origin (method url-fetch) @@ -58,7 +58,7 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "1p0rfk0blrbfjcnv0vb0ha4hxflgkfhv9zbzp4vvld2pi31ahkqs")) + "141nnsdk2q83c23p5kl404id8gy1ap261gin48rbjj5sbksgx1rs")) (modules '((guix build utils))) (snippet `(begin ;; Remove bundled libffi @@ -102,11 +102,11 @@ a focus on simplicity and productivity.") (home-page "https://ruby-lang.org") (license license:ruby))) -(define ruby-2.3.4 +(define-public ruby-2.3 (package (inherit ruby) - (name "ruby") (version "2.3.4") + (replacement #f) (source (origin (method url-fetch) @@ -447,13 +447,13 @@ expectations and mocks frameworks.") (define-public bundler (package (name "bundler") - (version "1.14.6") + (version "1.15.1") (source (origin (method url-fetch) (uri (rubygems-uri "bundler" version)) (sha256 (base32 - "0h3x2csvlz99v2ryj1w72vn6kixf7rl35lhdryvh7s49brnj0cgl")))) + "1mq0n8g08vf2rnd7fvylx3f4sspx15abid49gycf9zzsjj7w8vps")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles @@ -1199,13 +1199,13 @@ use GNU gettext tools for maintenance.") (define-public ruby-test-unit (package (name "ruby-test-unit") - (version "3.1.5") + (version "3.2.4") (source (origin (method url-fetch) (uri (rubygems-uri "test-unit" version)) (sha256 (base32 - "0jxznjzwmrlp8wqjxsd06qbiddffn68pdhz6nrqpjbiln1z3af4w")))) + "09mb34lnffracsqxl4dav4c21p5nr4pj9hm5qy2s83k5hbjya3s7")))) (build-system ruby-build-system) (propagated-inputs `(("ruby-power-assert" ,ruby-power-assert))) @@ -1460,16 +1460,17 @@ allows mocking and stubbing of methods on real (non-mock) classes.") (define-public ruby-net-ssh (package (name "ruby-net-ssh") - (version "3.0.1") + (version "4.1.0") (source (origin (method url-fetch) (uri (rubygems-uri "net-ssh" version)) (sha256 (base32 - "1dzqkgwi9xm6mbfk1rkk17rzmz8m5xakqi21w1b97ybng6kkw0hf")))) + "013p5jb4wy0cq7x7036piw2a3s1i9p752ki1srx2m289mpz4ml3q")))) (build-system ruby-build-system) (native-inputs - `(("ruby-mocha" ,ruby-mocha) + `(("bundler" ,bundler) + ("ruby-mocha" ,ruby-mocha) ("ruby-test-unit" ,ruby-test-unit))) (synopsis "Ruby implementation of the SSH2 client protocol") (description "@code{Net::SSH} is a pure-Ruby implementation of the SSH2 @@ -1481,13 +1482,13 @@ with processes on remote servers, via SSH2.") (define-public ruby-minitest (package (name "ruby-minitest") - (version "5.10.1") + (version "5.10.2") (source (origin (method url-fetch) (uri (rubygems-uri "minitest" version)) (sha256 (base32 - "1yk2m8sp0p5m1niawa3ncg157a4i0594cg7z91rzjxv963rzrwab")))) + "11my86fnihvpndyknn3c14hc82nhsgggnhlxh8h3bdjpmfsvl0my")))) (build-system ruby-build-system) (native-inputs `(("ruby-hoe" ,ruby-hoe))) @@ -1514,7 +1515,13 @@ facilities supporting TDD, BDD, mocking, and benchmarking.") (lambda _ (substitute* "Rakefile" (("self\\.rubyforge_name = .*") "")) - #t))))))) + #t)) + (add-after 'build 'exclude-failing-tests + (lambda _ + ;; Some tests are failing on Ruby 2.4 due to the deprecation of + ;; Fixnum. + (delete-file "test/minitest/test_minitest_spec.rb") + #t))))))) (define-public ruby-minitest-sprint (package @@ -2224,9 +2231,15 @@ current line in an external editor.") (arguments `(#:phases (modify-phases %standard-phases - (add-before 'check 'set-rubylib + (add-before 'check 'set-rubylib-and-patch-gemfile (lambda _ (setenv "RUBYLIB" "lib") + (substitute* "sdoc.gemspec" + (("s.add_runtime_dependency.*") "\n") + (("s.add_dependency.*") "\n")) + (substitute* "Gemfile" + (("gem \"rake\".*") + "gem 'rake'\ngem 'rdoc'\ngem 'json'\n")) #t))))) (propagated-inputs `(("ruby-json" ,ruby-json))) @@ -2274,13 +2287,13 @@ documentation for Ruby code.") (define-public ruby-gem-hadar (package (name "ruby-gem-hadar") - (version "1.3.1") + (version "1.9.1") (source (origin (method url-fetch) (uri (rubygems-uri "gem_hadar" version)) (sha256 (base32 - "1j8qri4m9wf8nbfv0kakrgsv2x8vg10914xgm6f69nw8zi3i39ws")))) + "1zxvd9l95rbks7x3cxn396w0sn7nha5542bf97v8akkn4vm7nby9")))) (build-system ruby-build-system) ;; This gem needs itself at development time. We disable rebuilding of the ;; gemspec to avoid this loop. @@ -2294,9 +2307,7 @@ documentation for Ruby code.") (propagated-inputs `(("git" ,git) ("ruby-tins" ,ruby-tins) - ("ruby-sdoc" ,ruby-sdoc))) - (native-inputs - `(("bundler" ,bundler))) + ("ruby-yard" ,ruby-yard))) (synopsis "Library for the development of Ruby gems") (description "This library contains some useful functionality to support the @@ -2437,14 +2448,14 @@ when working with Ruby code.") (define-public ruby-json (package (name "ruby-json") - (version "1.8.3") + (version "2.1.0") (source (origin (method url-fetch) (uri (rubygems-uri "json" version)) (sha256 (base32 - "1nsby6ry8l9xg3yw4adlhk2pnc7i0h0rznvcss4vk3v74qg0k8lc")))) + "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; dependency cycle with sdoc (synopsis "JSON library for Ruby") @@ -2697,14 +2708,14 @@ unacceptable HTML and/or CSS from a string.") (define-public ruby-ox (package (name "ruby-ox") - (version "2.2.1") + (version "2.5.0") (source (origin (method url-fetch) (uri (rubygems-uri "ox" version)) (sha256 (base32 - "00i11xd4ayh7349rhgskajfxn0qzkb74ab01217zix9qcapssxax")))) + "0rar0xr5qn3zac1r2z18kmpapx121c2l3z8jsgh60vsddwzpdh7h")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; no tests @@ -2759,14 +2770,14 @@ alternative to Marshal for Object serialization. ") (define-public ruby-pg (package (name "ruby-pg") - (version "0.18.2") + (version "0.20.0") (source (origin (method url-fetch) (uri (rubygems-uri "pg" version)) (sha256 (base32 - "1axxbf6ij1iqi3i1r3asvjc80b0py5bz0m2wy5kdi5xkrpr82kpf")))) + "03xcgwjs6faxis81jxf2plnlalg55dhhafqv3kvjxfr8ic7plpw5")))) (build-system ruby-build-system) (arguments '(#:test-target "spec")) @@ -3576,7 +3587,19 @@ It has built-in support for the legacy @code{cookies.txt} and ;; be require'd. (replace 'check (lambda _ - (zero? (system* "ruby" "-Ilib" "-r" "ansi"))))))) + (zero? (system* "ruby" "-Ilib" "-r" "ansi")))) + (add-before 'validate-runpath 'replace-broken-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (file (string-append out "/lib/ruby/gems/" + ,(package-version ruby) + "/gems/ansi-" ,version + "/lib/ansi.yml"))) + ;; XXX: This symlink is broken since ruby 2.4. + ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html + (delete-file file) + (symlink "../.index" file) + #t)))))) (synopsis "ANSI escape code related libraries") (description "This package is a collection of ANSI escape code related libraries @@ -3765,7 +3788,19 @@ requirement specifications systems like Cucumber.") `(#:phases (modify-phases %standard-phases (replace 'check - (lambda _ (zero? (system* "qed"))))))) + (lambda _ (zero? (system* "qed")))) + (add-before 'validate-runpath 'replace-broken-symlink + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (file (string-append out "/lib/ruby/gems/" + ,(package-version ruby) + "/gems/ae-" ,version + "/lib/ae.yml"))) + ;; XXX: This symlink is broken since ruby 2.4. + ;; https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00034.html + (delete-file file) + (symlink "../.index" file) + #t)))))) (propagated-inputs `(("ruby-ansi" ,ruby-ansi))) (native-inputs diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index c96ed0a72b..d79663a2b5 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -58,15 +58,16 @@ (define-public libssh (package (name "libssh") - (version "0.7.4") + (version "0.7.5") (source (origin (method url-fetch) (uri (string-append - "https://red.libssh.org/attachments/download/210/libssh-" + "https://red.libssh.org/attachments/download/218/libssh-" version ".tar.xz")) (sha256 (base32 - "03bcp9ksqp0s1pmwfmzhcknvkxay5k0mjzzxp3rjlifbng1vxq9r")))) + "15bh6dm9c50ndddzh3gqcgw7axp3ghrspjpkb1z3dr90vkanvs2l")) + (patches (search-patches "libssh-hostname-parser-bug.patch")))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 32c9a132a6..cd2576c51a 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -118,14 +118,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.13.0") + (version "2.13.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "0n0j36rapw31zb0sabap88ffncv8jg3nwc4miyim64ilyav2mgsb")))) + "1zl88rlga9nhgaqc9d04vp1l1g4x6qj1d02698asnxrzk36vxh9v")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -138,7 +138,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "1jcp5bjam0cqzc41bvd3qwzv2f35zdajr8icxb89q29b5v3gj544")))))) + "0w7z6mis1x1skhg08qj95yczdsh1qipqnimfj60nsky40ryhkpg3")))))) (inputs `(("curl" ,curl) ("expat" ,expat) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 909d23ad2e..4b3d83df28 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -311,7 +311,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.") (define-public libass (package (name "libass") - (version "0.13.6") + (version "0.13.7") (source (origin (method url-fetch) (uri (string-append @@ -319,7 +319,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "0b9cj5xfsa7zwlk5m146fhv102v51iqs3rapq0n2xrz30k8p9a7q")))) + "17byv926w1mxn56n896sxvdq4m0yv1l7qbm688h6zr3nzgsyarbh")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -411,7 +411,7 @@ SMPTE 314M.") (define-public libva (package (name "libva") - (version "1.8.1") + (version "1.8.2") (source (origin (method url-fetch) @@ -419,7 +419,7 @@ SMPTE 314M.") "https://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 - (base32 "0wswfznj93jpnxhc3jwdk5j3pmyki0rs6k9vk4vnzds0dddximf1")))) + (base32 "1pnfl3q7dzxs26l3jk9xi97gr0qwnaz6dhvf9ifp2yplr3fy7lwy")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -629,14 +629,14 @@ audio/video codec library.") (define-public ffmpeg-2.8 (package (inherit ffmpeg) - (version "2.8.11") + (version "2.8.12") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "1rhz7rhmhhh8bjcj3dc82haisn3qjbzqlr7k6d6v7064jgn3maiq")))) + "1gc32akvdms3rywphnap94lqqici8l5898a09ir1ad5rif5g24v2")))) (arguments (substitute-keyword-arguments (package-arguments ffmpeg) ((#:configure-flags flags) @@ -1001,7 +1001,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.05.07") + (version "2017.06.05") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1009,7 +1009,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1q3b9xkbk1lmy1wxm1jcnmaj70sdksqbc8zsqxz6b6z4nmv8qc25")))) + "132f4csbl4bv71b01pnqfkd7hbbc6wclrh1h12fr1182954ahk5m")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -2172,7 +2172,7 @@ many codecs and formats supported by libmediainfo.") (define-public livemedia-utils (package (name "livemedia-utils") - (version "2017.05.24") + (version "2017.06.04") (source (origin (method url-fetch) (uri (string-append @@ -2180,7 +2180,7 @@ many codecs and formats supported by libmediainfo.") version ".tar.gz")) (sha256 (base32 - "1ra64j3qa89hf3xika8jz9gd8al8mcaqlk5ivw5pclnd2df5f4im")))) + "0xf3vynxqpxpd762zni0jkblnjlgbqxjx99m83m7gqx6zriph271")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index bcc20bfdde..5f27ef957d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2016 Bake Timmons <b3timmons@speedymail.org> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2017 Kei Kebreau <kei@openmailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -68,6 +69,7 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnu-doc) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gnuzilla) #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) @@ -708,6 +710,34 @@ modifying pages and incoming and outgoing headers, monitoring pages for changes, and much more.") (license l:gpl2+))) +(define-public liboauth + (package + (name "liboauth") + (version "1.0.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/liboauth/liboauth-" + version ".tar.gz")) + (sha256 + (base32 + "07w1aq8y8wld43wmbk2q8134p3bfkp2vma78mmsfgw2jn1bh3xhd")))) + (build-system gnu-build-system) + (arguments '(#:configure-flags '("--enable-nss"))) + (native-inputs `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("curl" ,curl) + ("nss" ,nss))) + (home-page "https://sourceforge.net/projects/liboauth") + (synopsis "C library implementing the OAuth API") + (description + "liboauth is a collection of C functions implementing the OAuth API. +liboauth provides functions to escape and encode strings according to OAuth +specifications and offers high-level functionality built on top to sign +requests or verify signatures using either NSS or OpenSSL for calculating the +hash/signatures.") + ;; Source code may be distributed under either license. + (license (list l:expat l:gpl2+)))) + (define-public libyaml (package (name "libyaml") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index cd53091ced..28921f190a 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -72,7 +72,7 @@ (define-public libconfuse (package (name "libconfuse") - (version "3.1") + (version "3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/martinh/libconfuse/" @@ -80,7 +80,7 @@ "/confuse-" version ".tar.xz")) (sha256 (base32 - "0rnacgfkd88qyxrfdfzn9cxz533l9s5wrzb9093f9mbi00gg6wc1")))) + "0j2fg93w22apjfqnkak8k8m395n2l7hhm9xnjx0k2v82js3bnsm4")))) (build-system gnu-build-system) (home-page "https://github.com/martinh/libconfuse") (synopsis "Configuration file parser library") diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index d9cee8a257..3b06fbeb6b 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -791,14 +791,14 @@ Escape key when Left Control is pressed and released on its own.") (define-public libwacom (package (name "libwacom") - (version "0.23") + (version "0.25") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/linuxwacom/libwacom/" name "-" version ".tar.bz2")) (sha256 (base32 - "0qiikh95b9crybkwgcbbv9y80hb7lsbvvmvaia4gbgbdyagwb2m0")))) + "1k20w2fkql3yr0dpdg51jjwzv7d4kp53ajmpyhcjxa08s0n8dl19")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -823,7 +823,7 @@ Wacom tablet applet.") (define-public xf86-input-wacom (package (name "xf86-input-wacom") - (version "0.34.0") + (version "0.34.2") (source (origin (method url-fetch) (uri (string-append @@ -831,9 +831,7 @@ Wacom tablet applet.") name "-" version ".tar.bz2")) (sha256 (base32 - "0idhkigl0pnyp08sqm6bqfb4h20v6rjrb71z1gdv59gk7d7qwpgi")) - (patches - (search-patches "xf86-input-wacom-xorg-abi-25.patch")))) + "073bf12ka1mcqvr1sviixb51bsfx37jalrj9xw53f10i2kdvkl9a")))) (arguments `(#:configure-flags (list (string-append "--with-sdkdir=" diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7d981712da..78717cc203 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -3623,7 +3623,7 @@ alternative implementations like XRandR or TwinView.") (define xkbcomp-intermediate ; used as input for xkeyboard-config (package (name "xkbcomp-intermediate") - (version "1.3.1") + (version "1.4.0") (source (origin (method url-fetch) @@ -3633,7 +3633,7 @@ alternative implementations like XRandR or TwinView.") ".tar.bz2")) (sha256 (base32 - "0gcjy70ppmcl610z8gxc7sydsx93f8cm8pggm4qhihaa1ngdq103")))) + "0syfc6zscvai824mzihlnrqxhkcr27dzkpy8zndavi83iischsdw")))) (build-system gnu-build-system) (inputs `(("xproto" ,xproto) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 7cd9a34ca2..813535ed65 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1352,6 +1352,10 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (default #t)) (substitute-urls guix-configuration-substitute-urls ;list of strings (default %default-substitute-urls)) + (max-silent-time guix-configuration-max-silent-time ;integer + (default 0)) + (timeout guix-configuration-timeout ;integer + (default 0)) (extra-options guix-configuration-extra-options ;list of strings (default '())) (log-file guix-configuration-log-file ;string @@ -1371,7 +1375,9 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (match config (($ <guix-configuration> guix build-group build-accounts authorize-key? keys - use-substitutes? substitute-urls extra-options + use-substitutes? substitute-urls + max-silent-time timeout + extra-options log-file lsof http-proxy tmpdir) (list (shepherd-service (documentation "Run the Guix daemon.") @@ -1381,6 +1387,8 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) #~(make-forkexec-constructor (list #$(file-append guix "/bin/guix-daemon") "--build-users-group" #$build-group + "--max-silent-time" #$(number->string max-silent-time) + "--timeout" #$(number->string timeout) #$@(if use-substitutes? '() '("--no-substitutes")) diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm index 32c5c310e1..a41f918049 100644 --- a/guix/import/cpan.scm +++ b/guix/import/cpan.scm @@ -88,7 +88,7 @@ "Return the base distribution module for a given module. E.g. the 'ok' module is distributed with 'Test::Simple', so (module->dist-name \"ok\") would return \"Test-Simple\"" - (assoc-ref (json-fetch (string-append "https://api.metacpan.org/module/" + (assoc-ref (json-fetch (string-append "https://fastapi.metacpan.org/v1/module/" module "?fields=distribution")) "distribution")) @@ -113,7 +113,7 @@ return \"Test-Simple\"" "Return an alist representation of the CPAN metadata for the perl module MODULE, or #f on failure. MODULE should be e.g. \"Test::Script\"" ;; This API always returns the latest release of the module. - (json-fetch (string-append "https://api.metacpan.org/release/" name))) + (json-fetch (string-append "https://fastapi.metacpan.org/v1/release/" name))) (define (cpan-home name) (string-append "http://search.cpan.org/dist/" name)) diff --git a/guix/ssh.scm b/guix/ssh.scm index 4fb145230d..32cf6e464b 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -150,23 +150,44 @@ can be written." ;; makes a round trip every time 32 KiB have been transferred. This ;; procedure instead opens a separate channel to use the remote ;; 'import-paths' procedure, which consumes all the data in a single round - ;; trip. + ;; trip. This optimizes the successful case at the expense of error + ;; conditions: errors can only be reported once all the input has been + ;; consumed. (define import `(begin - (use-modules (guix)) - - (with-store store - (setvbuf (current-input-port) _IONBF) - - ;; FIXME: Exceptions are silently swallowed. We should report them - ;; somehow. - (import-paths store (current-input-port))))) - - (open-remote-output-pipe session - (string-join - `("guile" "-c" - ,(object->string - (object->string import)))))) + (use-modules (guix) (srfi srfi-34) + (rnrs io ports) (rnrs bytevectors)) + + (define (consume-input port) + (let ((bv (make-bytevector 32768))) + (let loop () + (let ((n (get-bytevector-n! port bv 0 + (bytevector-length bv)))) + (unless (eof-object? n) + (loop)))))) + + ;; Upon completion, write an sexp that denotes the status. + (write + (catch #t + (lambda () + (guard (c ((nix-protocol-error? c) + ;; Consume all the input since the only time we can + ;; report the error is after everything has been + ;; consumed. + (consume-input (current-input-port)) + (list 'protocol-error (nix-protocol-error-message c)))) + (with-store store + (setvbuf (current-input-port) _IONBF) + (import-paths store (current-input-port)) + '(success)))) + (lambda args + (cons 'error args)))))) + + (open-remote-pipe session + (string-join + `("guile" "-c" + ,(object->string (object->string import)))) + OPEN_BOTH)) (define* (store-export-channel session files #:key recursive?) @@ -224,10 +245,29 @@ Return the list of store items actually sent." ;; mark of 'export-paths' would be enough, but in practice it's not.) (channel-send-eof port) - ;; Wait for completion of the remote process. - (let ((result (zero? (channel-get-exit-status port)))) + ;; Wait for completion of the remote process and read the status sexp from + ;; PORT. + (let* ((result (false-if-exception (read port))) + (status (zero? (channel-get-exit-status port)))) (close-port port) - missing))) + (match result + (('success . _) + missing) + (('protocol-error message) + (raise (condition + (&nix-protocol-error (message message) (status 42))))) + (('error key args ...) + (raise (condition + (&nix-protocol-error + (message (call-with-output-string + (lambda (port) + (print-exception port #f key args)))) + (status 43))))) + (_ + (raise (condition + (&nix-protocol-error + (message "unknown error while sending files over SSH") + (status 44))))))))) (define (remote-store-session remote) "Return the SSH channel beneath REMOTE, a remote store as returned by diff --git a/tests/cpan.scm b/tests/cpan.scm index 8b588517c9..de865b22be 100644 --- a/tests/cpan.scm +++ b/tests/cpan.scm @@ -74,10 +74,10 @@ (mock ((guix http-client) http-fetch (lambda (url . rest) (match url - ("https://api.metacpan.org/release/Foo-Bar" + ("https://fastapi.metacpan.org/v1/release/Foo-Bar" (values (open-input-string test-json) (string-length test-json))) - ("https://api.metacpan.org/module/Test::Script?fields=distribution" + ("https://fastapi.metacpan.org/v1/module/Test::Script?fields=distribution" (let ((result "{ \"distribution\" : \"Test-Script\" }")) (values (open-input-string result) (string-length result)))) |