lfam pushed a commit to branch core-updates in repository guix. commit 6c1a317e29c45e85e3a0e050612cdefe470b100c Merge: b7158b7 9478c05 Author: Leo Famulari <l...@famulari.name> Date: Sun Jul 23 03:42:12 2017 -0400
Merge branch 'master' into core-updates doc/contributing.texi | 8 +- doc/guix.texi | 41 +- etc/guix-daemon.conf.in | 2 - gnu/bootloader/u-boot.scm | 47 + gnu/build/vm.scm | 44 +- gnu/local.mk | 27 +- gnu/packages/acct.scm | 4 +- gnu/packages/admin.scm | 15 +- gnu/packages/audio.scm | 7 +- gnu/packages/backup.scm | 21 +- gnu/packages/base.scm | 14 +- gnu/packages/bioinformatics.scm | 250 ++-- gnu/packages/bootloaders.scm | 2 +- gnu/packages/build-tools.scm | 39 +- gnu/packages/cran.scm | 44 + gnu/packages/crypto.scm | 4 +- gnu/packages/cups.scm | 4 +- gnu/packages/databases.scm | 4 +- gnu/packages/debug.scm | 2 +- gnu/packages/dns.scm | 17 +- gnu/packages/emacs.scm | 33 +- gnu/packages/enlightenment.scm | 4 +- gnu/packages/finance.scm | 3 +- gnu/packages/flashing-tools.scm | 32 + gnu/packages/fonts.scm | 41 +- gnu/packages/{gforth.scm => forth.scm} | 2 +- gnu/packages/game-development.scm | 4 +- gnu/packages/games.scm | 8 +- gnu/packages/gnome.scm | 139 +- gnu/packages/gnuzilla.scm | 41 +- gnu/packages/gstreamer.scm | 32 +- gnu/packages/guile.scm | 29 +- gnu/packages/imagemagick.scm | 119 +- gnu/packages/irc.scm | 1 + gnu/packages/java.scm | 49 +- gnu/packages/kerberos.scm | 5 +- gnu/packages/ldc.scm | 4 +- gnu/packages/libreoffice.scm | 4 +- gnu/packages/libusb.scm | 16 + gnu/packages/linux.scm | 44 +- gnu/packages/mail.scm | 12 +- gnu/packages/man.scm | 19 +- gnu/packages/maths.scm | 2 +- gnu/packages/medical.scm | 60 + gnu/packages/messaging.scm | 30 +- gnu/packages/mp3.scm | 13 +- gnu/packages/music.scm | 76 +- gnu/packages/nano.scm | 4 +- gnu/packages/networking.scm | 55 +- gnu/packages/node.scm | 4 + gnu/packages/ntp.scm | 8 +- gnu/packages/package-management.scm | 190 ++- gnu/packages/parallel.scm | 4 +- gnu/packages/patches/bigloo-gc-shebangs.patch | 18 - gnu/packages/patches/chicken-CVE-2017-11343.patch | 57 + gnu/packages/patches/evince-CVE-2017-1000083.patch | 109 ++ gnu/packages/patches/heimdal-CVE-2017-11103.patch | 45 + gnu/packages/patches/heimdal-CVE-2017-6594.patch | 85 ++ gnu/packages/patches/hop-linker-flags.patch | 60 - .../patches/libusb-0.1-disable-tests.patch | 15 + gnu/packages/patches/metabat-fix-compilation.patch | 39 + .../python-fake-factory-fix-build-32bit.patch | 36 - .../python-pyopenssl-17.1.0-test-overflow.patch | 36 - gnu/packages/patches/qemu-CVE-2017-11334.patch | 52 + gnu/packages/patches/quassel-fix-tls-check.patch | 25 + .../patches/sooperlooper-build-with-wx-30.patch | 179 +++ gnu/packages/patches/spice-CVE-2017-7506.patch | 158 +++ .../patches/supertuxkart-angelscript-ftbfs.patch | 42 + gnu/packages/pcre.scm | 16 + gnu/packages/photo.scm | 2 +- gnu/packages/python.scm | 402 +++++- gnu/packages/qt.scm | 106 ++ gnu/packages/samba.scm | 4 +- gnu/packages/scheme.scm | 93 +- gnu/packages/screen.scm | 4 +- gnu/packages/search.scm | 28 + gnu/packages/serialization.scm | 34 +- gnu/packages/shells.scm | 87 +- gnu/packages/sml.scm | 72 + gnu/packages/spice.scm | 13 +- gnu/packages/ssh.scm | 24 +- gnu/packages/statistics.scm | 21 +- gnu/packages/sync.scm | 4 +- gnu/packages/terminals.scm | 8 +- gnu/packages/tex.scm | 1432 +++++++++++++++++++- gnu/packages/tls.scm | 35 +- gnu/packages/version-control.scm | 6 +- gnu/packages/video.scm | 60 +- gnu/packages/vim.scm | 16 +- gnu/packages/{qemu.scm => virtualization.scm} | 52 +- gnu/packages/vpn.scm | 6 +- gnu/packages/web-browsers.scm | 4 +- gnu/packages/web.scm | 80 +- gnu/packages/wm.scm | 6 +- gnu/packages/xdisorg.scm | 16 +- gnu/packages/xml.scm | 13 + gnu/services.scm | 5 +- gnu/services/cuirass.scm | 4 + gnu/services/dbus.scm | 10 +- gnu/services/desktop.scm | 22 +- gnu/services/sysctl.scm | 2 +- gnu/system.scm | 25 +- gnu/system/install.scm | 2 +- gnu/system/locale.scm | 49 +- gnu/system/shadow.scm | 4 +- gnu/system/vm.scm | 87 +- gnu/tests/base.scm | 310 +++-- gnu/tests/dict.scm | 165 +-- gnu/tests/install.scm | 2 +- gnu/tests/mail.scm | 388 +++--- gnu/tests/messaging.scm | 198 +-- gnu/tests/networking.scm | 95 +- gnu/tests/nfs.scm | 140 +- gnu/tests/ssh.scm | 268 ++-- gnu/tests/web.scm | 125 +- guix/base32.scm | 10 +- guix/build/syscalls.scm | 9 + guix/download.scm | 51 +- guix/gexp.scm | 46 +- guix/licenses.scm | 7 + guix/profiles.scm | 34 - guix/scripts/environment.scm | 7 +- guix/scripts/package.scm | 25 +- guix/scripts/publish.scm | 35 +- guix/scripts/size.scm | 43 +- guix/scripts/substitute.scm | 28 +- guix/scripts/system.scm | 8 +- guix/store.scm | 10 +- nix/nix-daemon/nix-daemon.cc | 10 +- po/packages/POTFILES.in | 2 +- tests/gexp.scm | 8 + tests/syscalls.scm | 10 + 132 files changed, 5653 insertions(+), 1874 deletions(-) diff --cc gnu/local.mk index 8b3caac,3eccc87..f01ed62 --- a/gnu/local.mk +++ b/gnu/local.mk @@@ -518,9 -522,9 +522,8 @@@ dist_patch_DATA = %D%/packages/patches/awesome-reproducible-png.patch \ %D%/packages/patches/azr3.patch \ %D%/packages/patches/bash-completion-directories.patch \ - %D%/packages/patches/bigloo-gc-shebangs.patch \ %D%/packages/patches/binutils-ld-new-dtags.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ - %D%/packages/patches/binutils-mips-bash-bug.patch \ %D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ @@@ -573,7 -579,10 +577,8 @@@ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/eudev-rules-directory.patch \ - %D%/packages/patches/eudev-conflicting-declaration.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ + %D%/packages/patches/evince-CVE-2017-1000083.patch \ - %D%/packages/patches/expat-CVE-2016-0718-fix-regression.patch \ %D%/packages/patches/exim-CVE-2017-1000369.patch \ %D%/packages/patches/fabric-tests.patch \ %D%/packages/patches/fastcap-mulGlobal.patch \ @@@ -694,8 -705,8 +701,9 @@@ %D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ %D%/packages/patches/ilmbase-fix-tests.patch \ + %D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ + %D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/jbig2dec-CVE-2016-9601.patch \ %D%/packages/patches/jbig2dec-CVE-2017-7885.patch \ @@@ -770,7 -797,7 +778,8 @@@ %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ + %D%/packages/patches/libunistring-gnulib-multi-core.patch \ + %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libxcb-python-3.5-compat.patch \ %D%/packages/patches/libxml2-CVE-2016-4658.patch \ diff --cc gnu/packages/xml.scm index 30f3053,143b8d1..28d11ef --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@@ -55,7 -55,8 +55,8 @@@ (define-public expat (package (name "expat") - (version "2.2.0") + (version "2.2.1") + (replacement expat-2.2.2) (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/expat/expat/" diff --cc gnu/tests/ssh.scm index 0d2b842,05a8d35..41be360 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@@ -37,142 -36,143 +36,143 @@@ SSH-SERVICE must be configured to liste empty-password logins. When SFTP? is true, run an SFTP server test." - (mlet* %store-monad ((os -> (marionette-operating-system - (simple-operating-system - (dhcp-client-service) - ssh-service) - #:imported-modules '((gnu services herd) - (guix combinators)))) - (command (system-qemu-image/shared-store-script - os #:graphic? #f))) - (define test - (with-imported-modules '((gnu build marionette)) - #~(begin - (eval-when (expand load eval) - ;; Prepare to use Guile-SSH. - (set! %load-path - (cons (string-append #+guile-ssh "/share/guile/site/" - (effective-version)) - %load-path))) - - (use-modules (gnu build marionette) - (srfi srfi-26) - (srfi srfi-64) - (ice-9 match) - (ssh session) - (ssh auth) - (ssh channel) - (ssh sftp)) - - (define marionette - ;; Enable TCP forwarding of the guest's port 22. - (make-marionette (list #$command "-net" - "user,hostfwd=tcp::2222-:22"))) - - (define (make-session-for-test) - "Make a session with predefined parameters for a test." - (make-session #:user "root" - #:port 2222 - #:host "localhost" - #:log-verbosity 'protocol)) - - (define (call-with-connected-session proc) - "Call the one-argument procedure PROC with a freshly created and + (define os + (marionette-operating-system + (simple-operating-system (dhcp-client-service) ssh-service) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (define vm + (virtual-machine + (operating-system os) + (port-forwardings '((2222 . 22))))) + + (define test + (with-imported-modules '((gnu build marionette)) + #~(begin + (eval-when (expand load eval) + ;; Prepare to use Guile-SSH. + (set! %load-path - (cons (string-append #+guile2.0-ssh "/share/guile/site/" ++ (cons (string-append #+guile-ssh "/share/guile/site/" + (effective-version)) + %load-path))) + + (use-modules (gnu build marionette) + (srfi srfi-26) + (srfi srfi-64) + (ice-9 match) + (ssh session) + (ssh auth) + (ssh channel) + (ssh sftp)) + + (define marionette + ;; Enable TCP forwarding of the guest's port 22. + (make-marionette (list #$vm))) + + (define (make-session-for-test) + "Make a session with predefined parameters for a test." + (make-session #:user "root" + #:port 2222 + #:host "localhost" + #:log-verbosity 'protocol)) + + (define (call-with-connected-session proc) + "Call the one-argument procedure PROC with a freshly created and connected SSH session object, return the result of the procedure call. The session is disconnected when the PROC is finished." - (let ((session (make-session-for-test))) - (dynamic-wind - (lambda () - (let ((result (connect! session))) - (unless (equal? result 'ok) - (error "Could not connect to a server" - session result)))) - (lambda () (proc session)) - (lambda () (disconnect! session))))) - - (define (call-with-connected-session/auth proc) - "Make an authenticated session. We should be able to connect as + (let ((session (make-session-for-test))) + (dynamic-wind + (lambda () + (let ((result (connect! session))) + (unless (equal? result 'ok) + (error "Could not connect to a server" + session result)))) + (lambda () (proc session)) + (lambda () (disconnect! session))))) + + (define (call-with-connected-session/auth proc) + "Make an authenticated session. We should be able to connect as root with an empty password." - (call-with-connected-session - (lambda (session) - ;; Try the simple authentication methods. Dropbear requires - ;; 'none' when there are no passwords, whereas OpenSSH accepts - ;; 'password' with an empty password. - (let loop ((methods (list (cut userauth-password! <> "") - (cut userauth-none! <>)))) - (match methods - (() - (error "all the authentication methods failed")) - ((auth rest ...) - (match (pk 'auth (auth session)) - ('success - (proc session)) - ('denied - (loop rest))))))))) - - (mkdir #$output) - (chdir #$output) - - (test-begin "ssh-daemon") - - ;; Wait for sshd to be up and running. - (test-eq "service running" - 'running! - (marionette-eval - '(begin - (use-modules (gnu services herd)) - (start-service 'ssh-daemon) - 'running!) - marionette)) - - ;; Check sshd's PID file. - (test-equal "sshd PID" - (wait-for-file #$pid-file marionette) - (marionette-eval - '(begin - (use-modules (gnu services herd) - (srfi srfi-1)) - - (live-service-running - (find (lambda (live) - (memq 'ssh-daemon - (live-service-provision live))) - (current-services)))) - marionette)) - - ;; Connect to the guest over SSH. Make sure we can run a shell - ;; command there. - (test-equal "shell command" - 'hello - (call-with-connected-session/auth - (lambda (session) - ;; FIXME: 'get-server-public-key' segfaults. - ;; (get-server-public-key session) - (let ((channel (make-channel session))) - (channel-open-session channel) - (channel-request-exec channel "echo hello > /root/witness") - (and (zero? (channel-get-exit-status channel)) - (wait-for-file "/root/witness" marionette)))))) - - ;; Connect to the guest over SFTP. Make sure we can write and - ;; read a file there. - (unless #$sftp? - (test-skip 1)) - (test-equal "SFTP file writing and reading" - 'hello - (call-with-connected-session/auth - (lambda (session) - (let ((sftp-session (make-sftp-session session)) - (witness "/root/sftp-witness")) - (call-with-remote-output-file sftp-session witness - (cut display "hello" <>)) - (call-with-remote-input-file sftp-session witness - read))))) - - (test-end) - (exit (= (test-runner-fail-count (test-runner-current)) 0))))) - - (gexp->derivation name test))) + (call-with-connected-session + (lambda (session) + ;; Try the simple authentication methods. Dropbear requires + ;; 'none' when there are no passwords, whereas OpenSSH accepts + ;; 'password' with an empty password. + (let loop ((methods (list (cut userauth-password! <> "") + (cut userauth-none! <>)))) + (match methods + (() + (error "all the authentication methods failed")) + ((auth rest ...) + (match (pk 'auth (auth session)) + ('success + (proc session)) + ('denied + (loop rest))))))))) + + (mkdir #$output) + (chdir #$output) + + (test-begin "ssh-daemon") + + ;; Wait for sshd to be up and running. + (test-eq "service running" + 'running! + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'ssh-daemon) + 'running!) + marionette)) + + ;; Check sshd's PID file. + (test-equal "sshd PID" + (wait-for-file #$pid-file marionette) + (marionette-eval + '(begin + (use-modules (gnu services herd) + (srfi srfi-1)) + + (live-service-running + (find (lambda (live) + (memq 'ssh-daemon + (live-service-provision live))) + (current-services)))) + marionette)) + + ;; Connect to the guest over SSH. Make sure we can run a shell + ;; command there. + (test-equal "shell command" + 'hello + (call-with-connected-session/auth + (lambda (session) + ;; FIXME: 'get-server-public-key' segfaults. + ;; (get-server-public-key session) + (let ((channel (make-channel session))) + (channel-open-session channel) + (channel-request-exec channel "echo hello > /root/witness") + (and (zero? (channel-get-exit-status channel)) + (wait-for-file "/root/witness" marionette)))))) + + ;; Connect to the guest over SFTP. Make sure we can write and + ;; read a file there. + (unless #$sftp? + (test-skip 1)) + (test-equal "SFTP file writing and reading" + 'hello + (call-with-connected-session/auth + (lambda (session) + (let ((sftp-session (make-sftp-session session)) + (witness "/root/sftp-witness")) + (call-with-remote-output-file sftp-session witness + (cut display "hello" <>)) + (call-with-remote-input-file sftp-session witness + read))))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation name test)) (define %test-openssh (system-test