diff --git a/.gitignore b/.gitignore index 0897c95f3e..1fc22d7e93 100644 --- a/.gitignore +++ b/.gitignore @@ -44,11 +44,6 @@ /doc/os-config-desktop.texi /doc/stamp-vti /doc/version.texi -/emacs/Makefile -/emacs/Makefile.in -/emacs/guix-autoloads.el -/emacs/guix-config.el -/emacs/guix-helper.scm /etc/guix-daemon.conf /etc/guix-daemon.service /etc/guix-publish.conf diff --git a/Makefile.am b/Makefile.am index 1d01c1626e..cda49bd9ec 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès # Copyright © 2013 Andreas Enge -# Copyright © 2015 Alex Kost +# Copyright © 2015, 2017 Alex Kost # Copyright © 2016 Mathieu Lirzin # Copyright © 2016, 2017 Mark H Weaver # @@ -196,16 +196,17 @@ endif BUILD_DAEMON_OFFLOAD # Internal modules with test suite support. dist_noinst_DATA = guix/tests.scm guix/tests/http.scm -# Linux-Libre configurations. -KCONFIGS = \ - gnu/packages/linux-libre-4.10-i686.conf \ - gnu/packages/linux-libre-4.10-x86_64.conf \ - gnu/packages/linux-libre-4.9-i686.conf \ - gnu/packages/linux-libre-4.9-x86_64.conf \ - gnu/packages/linux-libre-4.4-i686.conf \ - gnu/packages/linux-libre-4.4-x86_64.conf \ - gnu/packages/linux-libre-4.1-i686.conf \ - gnu/packages/linux-libre-4.1-x86_64.conf +# Auxiliary files for packages. +AUX_FILES = \ + gnu/packages/aux-files/emacs/guix-emacs.el \ + gnu/packages/aux-files/linux-libre/4.10-i686.conf \ + gnu/packages/aux-files/linux-libre/4.10-x86_64.conf \ + gnu/packages/aux-files/linux-libre/4.9-i686.conf \ + gnu/packages/aux-files/linux-libre/4.9-x86_64.conf \ + gnu/packages/aux-files/linux-libre/4.4-i686.conf \ + gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \ + gnu/packages/aux-files/linux-libre/4.1-i686.conf \ + gnu/packages/aux-files/linux-libre/4.1-x86_64.conf # Templates, examples. EXAMPLES = \ @@ -216,7 +217,7 @@ EXAMPLES = \ GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go) nobase_dist_guilemodule_DATA = \ - $(MODULES) $(KCONFIGS) $(EXAMPLES) \ + $(MODULES) $(AUX_FILES) $(EXAMPLES) \ $(MISC_DISTRO_FILES) nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 53fa637f14..a4893f198c 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -259,14 +259,17 @@ valid." ;; prevents known-to-fail cross-builds from i686-linux or armhf-linux to ;; mips64el-linux-gnuabi64. (and (or (string-prefix? "i686-" system) + (string-prefix? "i586-" system) (string-prefix? "armhf-" system)) - (string-suffix? "64" target))) + (string-contains target "64"))) ;x86_64, mips64el, aarch64, etc. (define (same? target) ;; Return true if SYSTEM and TARGET are the same thing. This is so we ;; don't try to cross-compile to 'mips64el-linux-gnu' from ;; 'mips64el-linux'. - (string-contains target system)) + (or (string-contains target system) + (and (string-prefix? "armhf" system) ;armhf-linux + (string-prefix? "arm" target)))) ;arm-linux-gnueabihf (define (pointless? target) ;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM. diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in index fe56da6944..dca2699687 100644 --- a/build-aux/pre-inst-env.in +++ b/build-aux/pre-inst-env.in @@ -1,7 +1,7 @@ #!/bin/sh # GNU Guix --- Functional package management for GNU -# Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +# Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès # # This file is part of GNU Guix. # @@ -45,11 +45,18 @@ export PATH NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots" NIX_SUBSTITUTERS="$abs_top_builddir/nix/scripts/substitute" -NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload" NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'guix-authenticate' -export NIX_ROOT_FINDER NIX_SUBSTITUTERS \ - NIX_BUILD_HOOK NIX_LIBEXEC_DIR +export NIX_ROOT_FINDER NIX_SUBSTITUTERS NIX_LIBEXEC_DIR + +NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload" +if [ -x "$NIX_BUILD_HOOK" ] +then + export NIX_BUILD_HOOK +else + # No offloading support. + unset NIX_BUILD_HOOK +fi # The 'guix-register' program. GUIX_REGISTER="$abs_top_builddir/guix-register" diff --git a/doc/guix.texi b/doc/guix.texi index 8b97920f21..a537433bf6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -443,8 +443,15 @@ Run the daemon, and set it to automatically start on boot. If your host distro uses the systemd init system, this can be achieved with these commands: +@c Versions of systemd that supported symlinked service files are not +@c yet widely deployed, so we should suggest that users copy the service +@c files into place. +@c +@c See this thread for more information: +@c http://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html + @example -# ln -s ~root/.guix-profile/lib/systemd/system/guix-daemon.service \ +# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \ /etc/systemd/system/ # systemctl start guix-daemon && systemctl enable guix-daemon @end example @@ -452,8 +459,8 @@ with these commands: If your host distro uses the Upstart init system: @example -# ln -s ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/ # initctl reload-configuration +# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/ # start guix-daemon @end example @@ -8396,7 +8403,7 @@ other things. @deftp {Data Type} mingetty-configuration This is the data type representing the configuration of Mingetty, which -implements console log-in. +provides the default implementation of virtual console log-in. @table @asis @@ -8423,6 +8430,172 @@ The Mingetty package to use. @end table @end deftp +@deffn {Scheme Procedure} agetty-service @var{config} +Return a service to run agetty according to @var{config}, an +@code{} object, which specifies the tty to run, +among other things. +@end deffn + +@deftp {Data Type} agetty-configuration +This is the data type representing the configuration of agetty, which +implements virtual and serial console log-in. See the @code{agetty(8)} +man page for more information. + +@table @asis + +@item @code{tty} +The name of the console this agetty runs on, as a string---e.g., +@code{"ttyS0"}. This argument is mandatory. + +@item @code{baud-rate} (default: @code{#f}) +A string containing a comma-separated list of one or more baud rates, in +descending order. + +@item @code{term} (default: @code{#f}) +A string containing the value used for the @code{TERM} environment +variable. + +@item @code{eight-bits?} (default: @code{#f}) +When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is +disabled. + +@item @code{auto-login} (default: @code{#f}) +When passed a login name, as a string, the specified user will be logged +in automatically without prompting for their login name or password. + +@item @code{no-reset?} (default: @code{#f}) +When @code{#t}, don't reset terminal cflags (control modes). + +@item @code{host} (default: @code{#f}) +This accepts a string containing the "login_host", which will be written +into the @file{/var/run/utmpx} file. + +@item @code{remote?} (default: @code{#f}) +When set to @code{#t} in conjunction with @var{host}, this will add an +@code{-r} fakehost option to the command line of the login program +specified in @var{login-program}. + +@item @code{flow-control?} (default: @code{#f}) +When set to @code{#t}, enable hardware (RTS/CTS) flow control. + +@item @code{no-issue?} (default: @code{#f}) +When set to @code{#t}, the contents of the @file{/etc/issue} file will +not be displayed before presenting the login prompt. + +@item @code{init-string} (default: @code{#f}) +This accepts a string that will be sent to the tty or modem before +sending anything else. It can be used to initialize a modem. + +@item @code{no-clear?} (default: @code{#f}) +When set to @code{#t}, agetty will not clear the screen before showing +the login prompt. + +@item @code{login-program} (default: (file-append shadow "/bin/login")) +This must be either a gexp denoting the name of a log-in program, or +unset, in which case the default value is the @command{login} from the +Shadow tool suite. + +@item @code{local-line} (default: @code{#f}) +Control the CLOCAL line flag. This accepts one of three symbols as +arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, +the default value chosen by agetty is @code{'auto}. + +@item @code{extract-baud?} (default: @code{#f}) +When set to @code{#t}, instruct agetty to try to extract the baud rate +from the status messages produced by certain types of modems. + +@item @code{skip-login?} (default: @code{#f}) +When set to @code{#t}, do not prompt the user for a login name. This +can be used with @var{login-program} field to use non-standard login +systems. + +@item @code{no-newline?} (default: @code{#f}) +When set to @code{#t}, do not print a newline before printing the +@file{/etc/issue} file. + +@c Is this dangerous only when used with login-program, or always? +@item @code{login-options} (default: @code{#f}) +This option accepts a string containing options that are passed to the +login program. When used with the @var{login-program}, be aware that a +malicious user could try to enter a login name containing embedded +options that could be parsed by the login program. + +@item @code{login-pause} (default: @code{#f}) +When set to @code{#t}, wait for any key before showing the login prompt. +This can be used in conjunction with @var{auto-login} to save memory by +lazily spawning shells. + +@item @code{chroot} (default: @code{#f}) +Change root to the specified directory. This option accepts a directory +path as a string. + +@item @code{hangup?} (default: @code{#f}) +Use the Linux system call @code{vhangup} to do a virtual hangup of the +specified terminal. + +@item @code{keep-baud?} (default: @code{#f}) +When set to @code{#t}, try to keep the existing baud rate. The baud +rates from @var{baud-rate} are used when agetty receives a @key{BREAK} +character. + +@item @code{timeout} (default: @code{#f}) +When set to an integer value, terminate if no user name could be read +within @var{timeout} seconds. + +@item @code{detect-case?} (default: @code{#f}) +When set to @code{#t}, turn on support for detecting an uppercase-only +terminal. This setting will detect a login name containing only +uppercase letters as indicating an uppercase-only terminal and turn on +some upper-to-lower case conversions. Note that this will not support +Unicode characters. + +@item @code{wait-cr?} (default: @code{#f}) +When set to @code{#t}, wait for the user or modem to send a +carriage-return or linefeed character before displaying +@file{/etc/issue} or login prompt. This is typically used with the +@var{init-string} option. + +@item @code{no-hints?} (default: @code{#f}) +When set to @code{#t}, do not print hints about Num, Caps, and Scroll +locks. + +@item @code{no-hostname?} (default: @code{#f}) +By default, the hostname is printed. When this option is set to +@code{#t}, no hostname will be shown at all. + +@item @code{long-hostname?} (default: @code{#f}) +By default, the hostname is only printed until the first dot. When this +option is set to @code{#t}, the fully qualified hostname by +@code{gethostname} or @code{getaddrinfo} is shown. + +@item @code{erase-characters} (default: @code{#f}) +This option accepts a string of additional characters that should be +interpreted as backspace when the user types their login name. + +@item @code{kill-characters} (default: @code{#f}) +This option accepts a string that should be interpreted to mean "ignore +all previous characters" (also called a "kill" character) when the types +their login name. + +@item @code{chdir} (default: @code{#f}) +This option accepts, as a string, a directory path that will be changed +to before login. + +@item @code{delay} (default: @code{#f}) +This options accepts, as an integer, the number of seconds to sleep +before opening the tty and displaying the login prompt. + +@item @code{nice} (default: @code{#f}) +This option accepts, as an integer, the nice value with which to run the +@command{login} program. + +@item @code{extra-options} (default: @code{'()}) +This option provides an "escape hatch" for the user to provide arbitrary +command-line arguments to @command{agetty} as a list of strings. + +@end table +@end deftp + @deffn {Scheme Procedure} kmscon-service-type @var{config} Return a service to run @uref{https://www.freedesktop.org/wiki/Software/kmscon,kmscon} according to @var{config}, a @code{} object, which @@ -8431,7 +8604,7 @@ specifies the tty to run, among other things. @deftp {Data Type} kmscon-configuration This is the data type representing the configuration of Kmscon, which -implements console log-in. +implements virtual console log-in. @table @asis @@ -8616,6 +8789,13 @@ are written. @item @code{lsof} (default: @var{lsof}) The lsof package to use. +@item @code{http-proxy} (default: @code{#f}) +The HTTP proxy used for downloading fixed-output derivations and +substitutes. + +@item @code{tmpdir} (default: @code{#f}) +A directory path where the @command{guix-daemon} will perform builds. + @end table @end deftp diff --git a/etc/guix-daemon.conf.in b/etc/guix-daemon.conf.in index 8f833cb693..09c70cde38 100644 --- a/etc/guix-daemon.conf.in +++ b/etc/guix-daemon.conf.in @@ -9,4 +9,4 @@ stop on runlevel [016] task -exec @bindir@/guix-daemon --build-users-group=guixbuild +exec @localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in index ab0ce090c3..ffe4cf9bd5 100644 --- a/etc/guix-daemon.service.in +++ b/etc/guix-daemon.service.in @@ -6,7 +6,7 @@ Description=Build daemon for GNU Guix [Service] -ExecStart=@bindir@/guix-daemon --build-users-group=guixbuild +ExecStart=@localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale RemainAfterExit=yes StandardOutput=syslog diff --git a/etc/guix-publish.conf.in b/etc/guix-publish.conf.in index 498fa295be..241c594559 100644 --- a/etc/guix-publish.conf.in +++ b/etc/guix-publish.conf.in @@ -9,4 +9,4 @@ stop on runlevel [016] task -exec @bindir@/guix publish --user=nobody --port=8181 +exec @localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix publish --user=nobody --port=8181 diff --git a/etc/guix-publish.service.in b/etc/guix-publish.service.in index fc4e3c21f3..8aaf09e3cd 100644 --- a/etc/guix-publish.service.in +++ b/etc/guix-publish.service.in @@ -6,7 +6,7 @@ Description=Publish the GNU Guix store [Service] -ExecStart=@bindir@/guix publish --user=nobody --port=8181 +ExecStart=@localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix publish --user=nobody --port=8181 Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale RemainAfterExit=yes StandardOutput=syslog diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index f8ab95370c..fe98df95d5 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -106,15 +106,17 @@ takes a bytevector and returns #t when it's a valid superblock." (bytevector-copy! bv start result 0 size) result)) -(define (null-terminated-latin1->string bv) - "Return the volume name of SBLOCK as a string of at most 256 characters, or -#f if SBLOCK has no volume name." - ;; This is a Latin-1, nul-terminated string. - (let ((bytes (take-while (negate zero?) (bytevector->u8-list bv)))) +(define (latin1->string bv terminator) + "Return a string of BV, a latin1 bytevector, or #f. TERMINATOR is a predicate +that takes a number and returns #t when a termination character is found." + (let ((bytes (take-while (negate terminator) (bytevector->u8-list bv)))) (if (null? bytes) #f (list->string (map integer->char bytes))))) +(define null-terminated-latin1->string + (cut latin1->string <> zero?)) + ;;; ;;; Ext2 file systems. @@ -192,6 +194,51 @@ if DEVICE does not contain a btrfs file system." (0 'pass) (_ 'fatal-error))) + +;;; +;;; FAT32 file systems. +;;; + +;; . + +(define-syntax %fat32-endianness + ;; Endianness of fat file systems. + (identifier-syntax (endianness little))) + +(define (fat32-superblock? sblock) + "Return #t when SBLOCK is a fat32 superblock." + (bytevector=? (sub-bytevector sblock 82 8) + (string->utf8 "FAT32 "))) + +(define (read-fat32-superblock device) + "Return the raw contents of DEVICE's fat32 superblock as a bytevector, or +#f if DEVICE does not contain a fat32 file system." + (read-superblock device 0 90 fat32-superblock?)) + +(define (fat32-superblock-uuid sblock) + "Return the Volume ID of a fat superblock SBLOCK as a 4-byte bytevector." + (sub-bytevector sblock 67 4)) + +(define (fat32-uuid->string uuid) + "Convert fat32 UUID, a 4-byte bytevector, to its string representation." + (let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2)) + (low (bytevector-uint-ref uuid 2 %fat32-endianness 2))) + (format #f "~:@(~x-~x~)" low high))) + +(define (fat32-superblock-volume-name sblock) + "Return the volume name of SBLOCK as a string of at most 11 characters, or +#f if SBLOCK has no volume name. The volume name is a latin1 string. +Trailing spaces are trimmed." + (string-trim-right (latin1->string (sub-bytevector sblock 71 11) (lambda (c) #f)) #\space)) + +(define (check-fat32-file-system device) + "Return the health of a fat file system on DEVICE." + (match (status:exit-val + (system* "fsck.vfat" "-v" "-a" device)) + (0 'pass) + (1 'errors-corrected) + (_ 'fatal-error))) + ;;; ;;; LUKS encrypted devices. @@ -307,13 +354,17 @@ partition field reader that returned a value." (list (partition-field-reader read-ext2-superblock ext2-superblock-volume-name) (partition-field-reader read-btrfs-superblock - btrfs-superblock-volume-name))) + btrfs-superblock-volume-name) + (partition-field-reader read-fat32-superblock + fat32-superblock-volume-name))) (define %partition-uuid-readers (list (partition-field-reader read-ext2-superblock ext2-superblock-uuid) (partition-field-reader read-btrfs-superblock - btrfs-superblock-uuid))) + btrfs-superblock-uuid) + (partition-field-reader read-fat32-superblock + fat32-superblock-uuid))) (define read-partition-label (cut read-partition-field <> %partition-label-readers)) @@ -481,6 +532,7 @@ the following: (cond ((string-prefix? "ext" type) check-ext2-file-system) ((string-prefix? "btrfs" type) check-btrfs-file-system) + ((string-suffix? "fat" type) check-fat32-file-system) (else #f))) (if check-procedure diff --git a/gnu/local.mk b/gnu/local.mk index e4114be65b..3356c9e34c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1,6 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès -# Copyright © 2013, 2014, 2015, 2016 Andreas Enge +# Copyright © 2013, 2014, 2015, 2016, 2017 Andreas Enge # Copyright © 2016 Mathieu Lirzin # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver # Copyright © 2016 Chris Marusich @@ -483,7 +483,6 @@ dist_patch_DATA = \ %D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ - %D%/packages/patches/arb-ldconfig.patch \ %D%/packages/patches/artanis-fix-Makefile.in.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ @@ -603,6 +602,7 @@ dist_patch_DATA = \ %D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnucash-price-quotes-perl.patch \ + %D%/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-girepository.patch \ @@ -611,7 +611,6 @@ dist_patch_DATA = \ %D%/packages/patches/grub-gets-undeclared.patch \ %D%/packages/patches/grub-freetype.patch \ %D%/packages/patches/gsl-test-i686.patch \ - %D%/packages/patches/gst-plugins-base-fix-test-on-32bit.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-arm-fixes.patch \ %D%/packages/patches/guile-default-utf8.patch \ @@ -655,6 +654,7 @@ dist_patch_DATA = \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ + %D%/packages/patches/kio-CVE-2017-6410.patch \ %D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kobodeluxe-paths.patch \ %D%/packages/patches/kobodeluxe-enemies-pipe-decl.patch \ @@ -691,7 +691,6 @@ dist_patch_DATA = \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \ - %D%/packages/patches/libssh-0.6.5-CVE-2016-0739.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 \ @@ -749,7 +748,6 @@ dist_patch_DATA = \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mars-install.patch \ %D%/packages/patches/mars-sfml-2.3.patch \ - %D%/packages/patches/matplotlib-setupext-tk.patch \ %D%/packages/patches/maxima-defsystem-mkdir.patch \ %D%/packages/patches/mcron-install.patch \ %D%/packages/patches/mcrypt-CVE-2012-4409.patch \ @@ -767,6 +765,8 @@ dist_patch_DATA = \ %D%/packages/patches/mupdf-build-with-openjpeg-2.1.patch \ %D%/packages/patches/mupdf-mujs-CVE-2016-10132.patch \ %D%/packages/patches/mupdf-mujs-CVE-2016-10133.patch \ + %D%/packages/patches/mupdf-CVE-2017-5896.patch \ + %D%/packages/patches/mupdf-CVE-2017-5991.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/musl-CVE-2016-8859.patch \ %D%/packages/patches/mutt-store-references.patch \ @@ -811,7 +811,6 @@ dist_patch_DATA = \ %D%/packages/patches/patchelf-rework-for-arm.patch \ %D%/packages/patches/patchutils-xfail-gendiff-tests.patch \ %D%/packages/patches/patch-hurd-path-max.patch \ - %D%/packages/patches/pcre2-CVE-2016-3191.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 \ @@ -856,17 +855,24 @@ dist_patch_DATA = \ %D%/packages/patches/python-3-search-paths.patch \ %D%/packages/patches/python-3.4-fix-tests.patch \ %D%/packages/patches/python-3.5-fix-tests.patch \ + %D%/packages/patches/python-dendropy-fix-tests.patch \ %D%/packages/patches/python-file-double-encoding-bug.patch \ %D%/packages/patches/python-fix-tests.patch \ %D%/packages/patches/python-parse-too-many-fields.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ %D%/packages/patches/python-statsmodels-fix-tests.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ + %D%/packages/patches/python-fake-factory-fix-build-32bit.patch \ + %D%/packages/patches/python-faker-fix-build-32bit.patch \ + %D%/packages/patches/python-pandas-skip-failing-tests.patch \ %D%/packages/patches/python-paste-remove-website-test.patch \ %D%/packages/patches/python-paste-remove-timing-test.patch \ + %D%/packages/patches/python-pygit2-disable-network-tests.patch \ + %D%/packages/patches/python-pyopenssl-skip-network-test.patch \ %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \ %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \ + %D%/packages/patches/python2-subprocess32-disable-input-test.patch \ %D%/packages/patches/qemu-CVE-2016-10155.patch \ %D%/packages/patches/qemu-CVE-2017-2615.patch \ %D%/packages/patches/qemu-CVE-2017-5525.patch \ @@ -894,12 +900,12 @@ dist_patch_DATA = \ %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ %D%/packages/patches/scheme48-tests.patch \ %D%/packages/patches/scotch-test-threading.patch \ - %D%/packages/patches/screen-CVE-2017-5618.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/serf-comment-style-fix.patch \ %D%/packages/patches/serf-deflate-buckets-test-fix.patch \ %D%/packages/patches/shadow-4.4-su-snprintf-fix.patch \ + %D%/packages/patches/shadow-CVE-2017-2616.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ %D%/packages/patches/slim-sigusr1.patch \ @@ -925,6 +931,7 @@ dist_patch_DATA = \ %D%/packages/patches/tcsh-fix-autotest.patch \ %D%/packages/patches/tcsh-fix-out-of-bounds-read.patch \ %D%/packages/patches/teensy-loader-cli-help.patch \ + %D%/packages/patches/texlive-texmf-CVE-2016-10243.patch \ %D%/packages/patches/texi2html-document-encoding.patch \ %D%/packages/patches/texi2html-i18n.patch \ %D%/packages/patches/tidy-CVE-2015-5522+5523.patch \ @@ -951,9 +958,9 @@ dist_patch_DATA = \ %D%/packages/patches/unzip-overflow-long-fsize.patch \ %D%/packages/patches/unzip-remove-build-date.patch \ %D%/packages/patches/util-linux-tests.patch \ + %D%/packages/patches/util-linux-CVE-2017-2616.patch \ %D%/packages/patches/upower-builddir.patch \ %D%/packages/patches/valgrind-enable-arm.patch \ - %D%/packages/patches/vdirsyncer-test-suite-slow-machines.patch \ %D%/packages/patches/vim-CVE-2017-5953.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ @@ -973,6 +980,7 @@ dist_patch_DATA = \ %D%/packages/patches/wordnet-CVE-2008-3908-pt2.patch \ %D%/packages/patches/xcb-proto-python3-print.patch \ %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 \ diff --git a/gnu/packages.scm b/gnu/packages.scm index 0aa289d56c..92bab7228a 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013 Mark H Weaver ;;; Copyright © 2014 Eric Bavier -;;; Copyright © 2016 Alex Kost +;;; Copyright © 2016, 2017 Alex Kost ;;; Copyright © 2016 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. @@ -40,8 +40,10 @@ #:use-module (srfi srfi-39) #:export (search-patch search-patches + search-auxiliary-file search-bootstrap-binary %patch-path + %auxiliary-files-path %bootstrap-binaries-path %package-module-path @@ -62,17 +64,27 @@ ;;; ;;; Code: -;; By default, we store patches and bootstrap binaries alongside Guile -;; modules. This is so that these extra files can be found without -;; requiring a special setup, such as a specific installation directory -;; and an extra environment variable. One advantage of this setup is -;; that everything just works in an auto-compilation setting. +;; By default, we store patches, auxiliary files and bootstrap binaries +;; alongside Guile modules. This is so that these extra files can be +;; found without requiring a special setup, such as a specific +;; installation directory and an extra environment variable. One +;; advantage of this setup is that everything just works in an +;; auto-compilation setting. (define %bootstrap-binaries-path (make-parameter (map (cut string-append <> "/gnu/packages/bootstrap") %load-path))) +(define %auxiliary-files-path + (make-parameter + (map (cut string-append <> "/gnu/packages/aux-files") + %load-path))) + +(define (search-auxiliary-file file-name) + "Search the auxiliary FILE-NAME. Return #f if not found." + (search-path (%auxiliary-files-path) file-name)) + (define (search-patch file-name) "Search the patch FILE-NAME. Raise an error if not found." (or (search-path (%patch-path) file-name) @@ -299,8 +311,8 @@ return its return value." ((pkg . pkg*) (unless (null? pkg*) (warning (_ "ambiguous package specification `~a'~%") spec) - (warning (_ "choosing ~a from ~a~%") - (package-full-name pkg) + (warning (_ "choosing ~a@~a from ~a~%") + (package-name pkg) (package-version pkg) (location->string (package-location pkg)))) (when fallback? (warning (_ "deprecated NAME-VERSION syntax; \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index baadbe5c60..3d9226299b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -256,13 +256,11 @@ re-executing them as necessary.") (base32 "05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy")))) (build-system gnu-build-system) - (arguments `(#:configure-flags '("--localstatedir=/var") - - ;; FIXME: `tftp.sh' relies on `netstat' from utils-linux, - ;; which is currently missing. - #:tests? #f)) + (arguments + '(#:configure-flags '("--localstatedir=/var"))) (inputs `(("ncurses" ,ncurses) - ("readline" ,readline))) ; for 'ftp' + ("readline" ,readline))) ;for 'ftp' + (native-inputs `(("netstat" ,net-tools))) ;for tests (home-page "http://www.gnu.org/software/inetutils/") (synopsis "Basic networking utilities") (description @@ -279,7 +277,8 @@ client and server, a telnet client and server, and an rsh client and server.") (uri (string-append "https://github.com/shadow-maint/shadow/releases/" "download/" version "/shadow-" version ".tar.xz")) - (patches (search-patches "shadow-4.4-su-snprintf-fix.patch")) + (patches (search-patches "shadow-4.4-su-snprintf-fix.patch" + "shadow-CVE-2017-2616.patch")) (sha256 (base32 "0g7hf55ar2pafg5g3ldx0fwzjk36wf4xb21p4ndanbjm3c2a9ab1")))) @@ -1701,15 +1700,29 @@ throughput (in the same interval).") (base32 "04q2cn8c83f6z6wn1scla1ilrpi5ssjc64987hvmwfvwvb82bvkp")))) (build-system python-build-system) - (inputs + (arguments + '(#:tests? #f)) + ;; FIXME: 10 test failures. Some require newer pytest (> 2.9.2). + ;; Others need more work. Un-comment the below to run the tests. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; ;; Some tests need write access to $HOME. + ;; (setenv "HOME" "/tmp") + ;; (zero? (system* "py.test" "-v"))))))) + (propagated-inputs `(("python-colorama" ,python-colorama) ("python-decorator" ,python-decorator) ("python-psutil" ,python-psutil) ("python-six" ,python-six))) (native-inputs - ;; Requires setuptools >= 17.1 due to some features used, while our - ;; python currently only includes 12.0. TODO: Remove this input. - `(("python-setuptools" ,python-setuptools))) + `(("python-mock" ,python-mock) + ("python-pytest" ,python-pytest) + ("python-pytest-mock" ,python-pytest-mock) + ;; Requires setuptools >= 17.1 due to some features used, while our + ;; python currently only includes 12.0. TODO: Remove this input. + ("python-setuptools" ,python-setuptools))) (home-page "https://github.com/nvbn/thefuck") (synopsis "Correct mistyped console command") (description @@ -1720,13 +1733,13 @@ a new command using the matched rule, and runs it.") (define-public di (package (name "di") - (version "4.42") + (version "4.43") (source (origin (method url-fetch) (uri (string-append "https://gentoo.com/di/di-" version ".tar.gz")) (sha256 - (base32 "1i6m9zdnidn8268q1lz9fd8payk7s4pgwh5zlam9rr4dy6h6a67n")))) + (base32 "1q25jy51qfzsym9b2w0cqzscq2j492gn60dy6gbp88m8nwm4sdy8")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; Obscure test failures. @@ -1751,14 +1764,14 @@ highly portable. Great for heterogenous networks.") (define-public cbatticon (package (name "cbatticon") - (version "1.6.4") + (version "1.6.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/valr/" name "/archive/" version ".tar.gz")) (sha256 (base32 - "023fvsa4q7rl98rqgwrb1shyzaybdkkbyz5sywd0s5p7ixkksxqx")) + "0xzz1faqgm57bwlkw6sjdfbckf5hck81879zbfk18p7xn9vhvixv")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 544b62a1da..7a84332dd5 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Andreas Enge ;;; Copyright © 2013, 2015, 2017 Ludovic Courtès ;;; Copyright © 2016 Nicolas Goaziou ;;; Copyright © 2014 Mark H Weaver @@ -128,7 +128,7 @@ solve the shortest vector problem.") (define-public pari-gp (package (name "pari-gp") - (version "2.7.6") + (version "2.9.1") (source (origin (method url-fetch) (uri (string-append @@ -136,7 +136,7 @@ solve the shortest vector problem.") version ".tar.gz")) (sha256 (base32 - "04dqi697czd8mmw8aiwzrkgbvkjassqagg6lfy3lkf1k5qi9g9rr")))) + "0rq7wz9df1xs4acdzzb5dapx8vs6m5py39n2wynw2qv4d2b0ylfw")))) (build-system gnu-build-system) (native-inputs `(("texlive" ,texlive-minimal))) (inputs `(("gmp" ,gmp) @@ -168,7 +168,7 @@ PARI is also available as a C library to allow for faster computations.") (define-public gp2c (package (name "gp2c") - (version "0.0.9pl5") + (version "0.0.10") (source (origin (method url-fetch) (uri (string-append @@ -176,7 +176,7 @@ PARI is also available as a C library to allow for faster computations.") version ".tar.gz")) (sha256 (base32 - "1q003mkagc5ib6lqb2xfay7j4ffkwv7xlnznp6wdrq2sbqq4vyak")))) + "1xhpz5p81iw261ay1kip283ggr0ir8ydz8qx3v24z8jfms1r3y70")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (inputs `(("pari-gp" ,pari-gp))) @@ -202,7 +202,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") (define-public giac-xcas (package (name "giac-xcas") - (version "1.2.3-19") + (version "1.2.3-25") (source (origin (method url-fetch) ;; "~parisse/giac" is not used because the maintainer regularly @@ -214,7 +214,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") "source/giac_" version ".tar.gz")) (sha256 (base32 - "0asynsj0xcfdjn0vkyxdgdy3hfpr6gc9f92xxa1rmn7clbqmlk1y")))) + "0d6a42p8111raf7k16yvjajnpj22abiqndy3yzkrb4b8l071r24d")))) (build-system gnu-build-system) (arguments `(#:phases @@ -311,7 +311,7 @@ fast arithmetic.") (define-public arb (package (name "arb") - (version "2.8.1") + (version "2.10.0") (source (origin (method url-fetch) (uri (string-append @@ -320,8 +320,7 @@ fast arithmetic.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04hhcpshfkcq9fr4hixbhpps50yf9drk62xgkvlcaj5kb4nyrx7l")) - (patches (search-patches "arb-ldconfig.patch")))) + "0jwcv9ssvi8axb1y7m2h4ykgyl015cl6g28gfl92l4dgnag585ak")))) (build-system gnu-build-system) (propagated-inputs `(("flint" ,flint))) ; flint.h is included by arf.h diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index f390ce4486..2695530fee 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -21,7 +21,13 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (gnu packages image) + #:use-module (gnu packages compression) + #:use-module (gnu packages gettext) + #:use-module (gnu packages perl) + #:use-module (gnu packages gl) + #:use-module (gnu packages qt) #:use-module (gnu packages maths) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) (define-public cfitsio @@ -107,3 +113,43 @@ systems in a FITS image header.") (description "The GNU Astronomy Utilities (Gnuastro) is a suite of programs for the manipulation and analysis of astronomical data.") (license license:gpl3+))) + +(define-public stellarium + (package + (name "stellarium") + (version "0.15.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/stellarium/" + "Stellarium-sources/" + version "/stellarium-" version ".tar.gz")) + (sha256 + (base32 + "04avigz8i8mi2x6x71bqr9np85n1p9qnvbj2hxr947f1jv22zr8g")))) + (build-system cmake-build-system) + (inputs + `(("qtbase" ,qtbase) + ("qtmultimedia" ,qtmultimedia) + ("qtscript" ,qtscript) + ("qtserialport" ,qtserialport) + ("zlib" ,zlib))) + (native-inputs + `(("gettext" ,gettext-minimal) ; xgettext is used at compile time + ("perl" ,perl) ; For pod2man + ("qtbase" ,qtbase) ; Qt MOC is needed at compile time + ("qttools" ,qttools))) + (arguments + `(#:test-target "tests" + #:phases (modify-phases %standard-phases + (add-before 'check 'set-offscreen-display + (lambda _ + (setenv "QT_QPA_PLATFORM" "offscreen") + (setenv "HOME" "/tmp") + #t))))) + (home-page "http://www.stellarium.org/") + (synopsis "3D sky viewer") + (description "Stellarium is a planetarium. It shows a realistic sky in +3D, just like what you see with the naked eye, binoculars, or a telescope. It +can be used to control telescopes over a serial port for tracking celestial +objects.") + (license license:gpl2+))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 312fdd4e99..2b11a32caf 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Alex Kost @@ -186,7 +186,7 @@ streams from live audio.") (define-public ardour (package (name "ardour") - (version "5.6") + (version "5.8") (source (origin (method git-fetch) (uri (git-reference @@ -203,18 +203,20 @@ streams from live audio.") namespace ARDOUR { const char* revision = \"" version "\" ; }"))))) (sha256 (base32 - "1fgvjmvdyh61qn8azpmh19ac58ps5sl2dywwshr56v0svakhwwh9")) + "1lcvslrcw6g4kp9w0h1jx46x6ilz4nzz0k2yrw4gd545k1rwx0c1")) (file-name (string-append name "-" version)))) (build-system waf-build-system) (arguments `(#:configure-flags '("--cxx11" ; required by gtkmm - "--no-phone-home") ; don't contact ardour.org + "--no-phone-home" ; don't contact ardour.org + "--freedesktop" ; install .desktop file + "--test") ; build unit tests #:phases (modify-phases %standard-phases (add-after 'unpack 'set-rpath-in-LDFLAGS ,(ardour-rpath-phase (version-prefix version 1)))) - #:tests? #f ; no check target + #:test-target "test" #:python ,python-2)) (inputs `(("alsa-lib" ,alsa-lib) @@ -256,6 +258,8 @@ namespace ARDOUR { const char* revision = \"" version "\" ; }"))))) (native-inputs `(("perl" ,perl) ("cppunit" ,cppunit) + ("itstool" ,itstool) + ("gettext" ,gettext-minimal) ("pkg-config" ,pkg-config))) (home-page "http://ardour.org") (synopsis "Digital audio workstation") diff --git a/emacs/guix-emacs.el b/gnu/packages/aux-files/emacs/guix-emacs.el similarity index 85% rename from emacs/guix-emacs.el rename to gnu/packages/aux-files/emacs/guix-emacs.el index 099261a013..2bbd639ffd 100644 --- a/emacs/guix-emacs.el +++ b/gnu/packages/aux-files/emacs/guix-emacs.el @@ -1,6 +1,6 @@ ;;; guix-emacs.el --- Emacs packages installed with Guix -;; Copyright © 2014, 2015, 2016 Alex Kost +;; Copyright © 2014, 2015, 2016, 2017 Alex Kost ;; This file is part of GNU Guix. @@ -19,22 +19,14 @@ ;;; Commentary: -;; This file provides auxiliary code for working with Emacs packages +;; This file provides auxiliary code to autoload Emacs packages ;; installed with Guix. ;;; Code: (require 'cl-lib) -(unless (require 'guix-profiles nil t) - (defvar guix-user-profile (expand-file-name "~/.guix-profile"))) -(defcustom guix-package-enable-at-startup t - "If non-nil, activate Emacs packages installed in a user profile. -Set this variable to nil before requiring `guix-emacs' file to -avoid loading autoloads of Emacs packages installed in -`guix-user-profile'." - :type 'boolean - :group 'guix) +(defvar guix-user-profile (expand-file-name "~/.guix-profile")) (defvar guix-emacs-autoloads nil "List of the last loaded Emacs autoloads.") @@ -92,8 +84,8 @@ profiles. 'Autoload' means add directories with Emacs packages to `load-path' and load 'autoloads' files matching `guix-emacs-autoloads-regexp'." - (interactive (list (if (fboundp 'guix-profile-prompt) - (funcall 'guix-profile-prompt) + (interactive (list (if (fboundp 'guix-read-package-profile) + (funcall 'guix-read-package-profile) guix-user-profile))) (let ((profiles (or profiles (list "/run/current-system/profile" @@ -115,9 +107,6 @@ profiles. (setq guix-emacs-autoloads (append new-autoloads guix-emacs-autoloads)))))))) -(when guix-package-enable-at-startup - (guix-emacs-autoload-packages)) - (provide 'guix-emacs) ;;; guix-emacs.el ends here diff --git a/gnu/packages/linux-libre-4.1-i686.conf b/gnu/packages/aux-files/linux-libre/4.1-i686.conf similarity index 100% rename from gnu/packages/linux-libre-4.1-i686.conf rename to gnu/packages/aux-files/linux-libre/4.1-i686.conf diff --git a/gnu/packages/linux-libre-4.1-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.1-x86_64.conf similarity index 100% rename from gnu/packages/linux-libre-4.1-x86_64.conf rename to gnu/packages/aux-files/linux-libre/4.1-x86_64.conf diff --git a/gnu/packages/linux-libre-4.10-i686.conf b/gnu/packages/aux-files/linux-libre/4.10-i686.conf similarity index 100% rename from gnu/packages/linux-libre-4.10-i686.conf rename to gnu/packages/aux-files/linux-libre/4.10-i686.conf diff --git a/gnu/packages/linux-libre-4.10-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.10-x86_64.conf similarity index 100% rename from gnu/packages/linux-libre-4.10-x86_64.conf rename to gnu/packages/aux-files/linux-libre/4.10-x86_64.conf diff --git a/gnu/packages/linux-libre-4.4-i686.conf b/gnu/packages/aux-files/linux-libre/4.4-i686.conf similarity index 100% rename from gnu/packages/linux-libre-4.4-i686.conf rename to gnu/packages/aux-files/linux-libre/4.4-i686.conf diff --git a/gnu/packages/linux-libre-4.4-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.4-x86_64.conf similarity index 100% rename from gnu/packages/linux-libre-4.4-x86_64.conf rename to gnu/packages/aux-files/linux-libre/4.4-x86_64.conf diff --git a/gnu/packages/linux-libre-4.9-i686.conf b/gnu/packages/aux-files/linux-libre/4.9-i686.conf similarity index 100% rename from gnu/packages/linux-libre-4.9-i686.conf rename to gnu/packages/aux-files/linux-libre/4.9-i686.conf diff --git a/gnu/packages/linux-libre-4.9-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.9-x86_64.conf similarity index 100% rename from gnu/packages/linux-libre-4.9-x86_64.conf rename to gnu/packages/aux-files/linux-libre/4.9-x86_64.conf diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index c2dfc0fbbd..923b0ba9ed 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015, 2016 Leo Famulari ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017 Thomas Danckaert ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,7 +25,6 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix utils) - #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (gnu packages) @@ -43,6 +43,7 @@ #:use-module (gnu packages mcrypt) #:use-module (gnu packages nettle) #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages rsync) @@ -67,6 +68,7 @@ (build-system python-build-system) (native-inputs `(("util-linux" ,util-linux) ;setsid command, for the tests + ("par2cmdline" ,par2cmdline) ("python-pexpect" ,python2-pexpect) ("mock" ,python2-mock))) (propagated-inputs @@ -83,16 +85,18 @@ #:test-target "test" #:phases (modify-phases %standard-phases - (add-before - 'build 'patch-source ; embed gpg store name - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "duplicity/gpginterface.py" - (("self.call = 'gpg'") - (string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'"))))) + (add-before 'build 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + ;; embed gpg store name + (substitute* "duplicity/gpginterface.py" + (("self.call = 'gpg'") + (string-append "self.call = '" (assoc-ref inputs "gnupg") "/bin/gpg'"))) + (substitute* '("testing/functional/__init__.py" + "testing/overrides/bin/lftp") + (("/bin/sh") (which "sh"))) + #t)) (add-before 'check 'check-setup (lambda* (#:key inputs #:allow-other-keys) - (substitute* "testing/functional/__init__.py" - (("/bin/sh") (which "sh"))) (setenv "HOME" (getcwd)) ;gpg needs to write to $HOME (setenv "TZDIR" ;some timestamp checks need TZDIR (string-append (assoc-ref inputs "tzdata") @@ -365,6 +369,42 @@ to a remote location, and only the differences will be transmitted. Finally, rdiff-backup is easy to use and settings have sensible defaults.") (license license:gpl2+))) +(define-public rsnapshot + (package + (name "rsnapshot") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/rsnapshot/rsnapshot/releases/download/" + version "/rsnapshot-" version ".tar.gz")) + (sha256 + (base32 + "05jfy99a0xs6lvsjfp3wz21z0myqhmwl2grn3jr9clijbg282ah4")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (substitute* '("t/cmd-post_pre-exec/conf/pre-true-post-true.conf" + "t/backup_exec/conf/backup_exec_fail.conf" + "t/backup_exec/conf/backup_exec.conf") + (("/bin/true") (which "true")) + (("/bin/false") (which "false"))) + (zero? (system* "make" "test"))))))) + (inputs + `(("perl" ,perl) + ("rsync" ,rsync))) + (home-page "http://rsnapshot.org") + (synopsis "Deduplicating snapshot backup utility based on rsync") + (description "rsnapshot is a filesystem snapshot utility based on rsync. +rsnapshot makes it easy to make periodic snapshots of local machines, and +remote machines over SSH. To reduce the disk space required for each backup, +rsnapshot uses hard links to deduplicate identical files.") + (license license:gpl2+))) + (define-public libchop (package (name "libchop") diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 8d453bdaa1..24afd66825 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -22,6 +22,7 @@ (define-module (gnu packages bash) #:use-module (guix licenses) #:use-module (gnu packages) + #:use-module (gnu packages bootstrap) #:use-module (gnu packages ncurses) #:use-module (gnu packages readline) #:use-module (gnu packages bison) @@ -262,7 +263,7 @@ without modification.") (define-public bash-completion (package (name "bash-completion") - (version "2.4") + (version "2.5") (source (origin (method url-fetch) (uri (string-append @@ -270,7 +271,7 @@ without modification.") version "/" name "-" version ".tar.xz")) (sha256 (base32 - "1xlhd09sb2w3bw8qaypxgkr0782w082mcbx8zf7yzjgy0996pxy0")) + "1kwmii1z1ljx5i4z702ynsr8jgrq64bj9w9hl3n2aa2kcl659fdh")) (patches (search-patches "bash-completion-directories.patch")))) (build-system gnu-build-system) diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index acaeb67079..ff5715d578 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -29,7 +29,7 @@ (define-public fio (package (name "fio") - (version "2.17") + (version "2.18") (source (origin (method url-fetch) (uri (string-append @@ -37,10 +37,10 @@ "fio-" version ".tar.bz2")) (sha256 (base32 - "1kxgad5k2m7y637g3kq8jmhwzlg3c64w9ky7066c5l09bwb6l58h")))) + "08kx2mh556xby9saayrbynwrkmh4v8wwrw759nbv025ch3xbw79n")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; No tests. + '(#:test-target "test" #:phases (modify-phases %standard-phases (add-after diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a448b51c6c..7bf39c6b03 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016, 2017 Ricardo Wurmus -;;; Copyright © 2015, 2016 Ben Woodcroft +;;; Copyright © 2015, 2016, 2017 Ben Woodcroft ;;; Copyright © 2015, 2016 Pjotr Prins ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Roel Janssen @@ -238,7 +238,7 @@ instance, it implements several methods to assess contig-wise read coverage.") (define-public bamtools (package (name "bamtools") - (version "2.3.0") + (version "2.4.1") (source (origin (method url-fetch) (uri (string-append @@ -247,7 +247,7 @@ instance, it implements several methods to assess contig-wise read coverage.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1brry29bw2xr2l9pqn240rkqwayg85b8qq78zk2zs6nlspk4d018")))) + "0jr024kcrhjb82cm69i7p5fcg5375zlc1h3qh2n1v368hcd0qflk")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no "check" target @@ -499,6 +499,9 @@ provides the Ribotaper pipeline.") ("python-matplotlib" ,python2-matplotlib) ("python-scipy" ,python2-scipy) ("python-statsmodels" ,python2-statsmodels))) + (native-inputs + `(("python-mock" ,python2-mock) + ("python-nose" ,python2-nose))) (home-page "http://public.bmi.inf.ethz.ch/user/zhongy/RiboDiff/") (synopsis "Detect translation efficiency changes from ribosome footprints") (description "RiboDiff is a statistical tool that detects the protein @@ -604,6 +607,8 @@ Python.") ("python-future" ,python-future) ("python-click" ,python-click) ("python-h5py" ,python-h5py))) + (native-inputs + `(("python-nose" ,python-nose))) (home-page "http://www.biom-format.org") (synopsis "Biological Observation Matrix (BIOM) format utilities") (description @@ -1602,6 +1607,7 @@ databases.") ("python-scipy" ,python2-scipy))) (native-inputs `(("python-mock" ,python2-mock) ; for tests + ("python-nose" ,python2-nose) ; for tests ("python-pytz" ,python2-pytz))) ; for tests (home-page "https://github.com/YeoLab/clipper") (synopsis "CLIP peak enrichment recognition") @@ -1978,7 +1984,8 @@ accessing bigWig files.") (uri (pypi-uri "DendroPy" version)) (sha256 (base32 - "15c7s3d5gf19ljsxvq5advaa752wfi7pwrdjyhzmg85hccyvp47p")))) + "15c7s3d5gf19ljsxvq5advaa752wfi7pwrdjyhzmg85hccyvp47p")) + (patches (search-patches "python-dendropy-fix-tests.patch")))) (build-system python-build-system) (home-page "http://packages.python.org/DendroPy/") (synopsis "Library for phylogenetics and phylogenetic computing") @@ -2030,6 +2037,7 @@ trees (phylogenies) and characters.") ("python-pybigwig" ,python2-pybigwig))) (native-inputs `(("python-mock" ,python2-mock) ;for tests + ("python-nose" ,python2-nose) ;for tests ("python-pytz" ,python2-pytz))) ;for tests (home-page "https://github.com/fidelram/deepTools") (synopsis "Tools for normalizing and visualizing deep-sequencing data") @@ -2047,7 +2055,7 @@ identify enrichments with functional annotations of the genome.") (define-public diamond (package (name "diamond") - (version "0.8.34") + (version "0.8.36") (source (origin (method url-fetch) (uri (string-append @@ -2056,7 +2064,7 @@ identify enrichments with functional annotations of the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0jvr34g346gbz7z1zb9bs0vplivm9p4cxk0lbzklvdpa7g236p39")))) + "092smzzjcg51n3x4h84k52ijpz9m40ri838j9k2i463ribc3c8rh")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target @@ -2969,28 +2977,10 @@ data. It also provides the bgzip, htsfile, and tabix utilities.") "1k3x44biak00aiv3hpm1yd6nn4hhp7n0qnbs3zh2q9sw7qr1qj5r")))) (build-system python-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after - 'install 'wrap-program - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (python-version (string-take (string-take-right - (assoc-ref inputs "python") 5) 3)) - (path (string-join - (map (lambda (name) - (string-append (assoc-ref inputs name) - "/lib/python" python-version - "/site-packages")) - '("python-scipy" - "python-numpy" - "python-matplotlib")) - ":"))) - (wrap-program (string-append out "/bin/idr") - `("PYTHONPATH" ":" prefix (,path)))) - #t))))) - (inputs + `(#:tests? #f)) ; FIXME: "ImportError: No module named 'utility'" + (propagated-inputs `(("python-scipy" ,python-scipy) + ("python-sympy" ,python-sympy) ("python-numpy" ,python-numpy) ("python-matplotlib" ,python-matplotlib))) (native-inputs @@ -3679,6 +3669,9 @@ the phenotype as it models the data.") (build-system python-build-system) (arguments `(#:python ,python-2 + ;; FIXME: Tests fail with "No such file or directory: + ;; pbtools/pbtranscript/modified_bx_intervals/intersection_unique.so" + #:tests? #f #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-directory diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 61f1f1ab3f..048fe26f1a 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -170,6 +170,7 @@ successful, or false to signal an error." ((string=? system "i686-gnu") "/lib/ld.so.1") ((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1") ((string=? system "powerpc-linux") "/lib/ld.so.1") + ((string=? system "alpha-linux") "/lib/ld-linux.so.2") ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 4726abffde..1e9a93ca93 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -84,13 +84,13 @@ data units.") (define-public khal (package (name "khal") - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) (uri (pypi-uri "khal" version)) (sha256 (base32 - "1ryh5c7408w8gpql5s9mkxkvz1ngnds3xm43p7r96ynx8prr9swp")))) + "1iva6cw2x3p2jzjj6bsyx7lc7yxin4fsd37j9c96j07x16p4imyl")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -112,7 +112,8 @@ data units.") "/share/zoneinfo/Zulu")) (zero? (system* "py.test" "tests"))))))) (native-inputs - `(("python-pytest" ,python-pytest) + ;; XXX Uses tmpdir_factory, introduced in pytest 2.8. + `(("python-pytest" ,python-pytest-2.9.2) ("python-pytest-cov" ,python-pytest-cov) ("python-setuptools-scm" ,python-setuptools-scm) ;; Required for tests @@ -125,7 +126,7 @@ data units.") `(("sqlite" ,sqlite))) (propagated-inputs `(("python-configobj" ,python-configobj) - ("python-dateutil-2" ,python-dateutil-2) + ("python-dateutil" ,python-dateutil) ("python-icalendar" ,python-icalendar) ("python-tzlocal" ,python-tzlocal) ("python-urwid" ,python-urwid) diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 293bf16ade..14e430646a 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2017 John Darrington ;;; ;;; This file is part of GNU Guix. ;;; @@ -496,3 +497,27 @@ session, and it can create M3U playlists.") (synopsis "Command-line program to extract audio CDs") (description "RipIT is used to extract audio from CDs.") (license gpl2))) + +(define-public ccd2cue + (package + (name "ccd2cue") + (version "0.5") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/ccd2cue/ccd2cue-" version + ".tar.gz")) + (sha256 + (base32 + "1icrkg25hwx4gsn3dski2172ia4ywjh8m1sa17zmjclnrgdwy9c7")))) + (build-system gnu-build-system) + (synopsis "CCD to CUE sheet conversion") + (description + "GNU ccd2cue is a preprocessor for CD burning software that allows +the conversion of the proprietary CCD format to the CUE format, which +is well-supported by free software. These files are commonly +distributed with CD images and are used to describe how tracks are +laid out on the image.") + (home-page "http://www.gnu.org/software/ccd2cue") + (license gpl3+))) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index b27577bbec..246e5ca14a 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -73,7 +73,7 @@ (define-public nss-certs (package (name "nss-certs") - (version "3.27.1") + (version "3.29.2") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -84,7 +84,7 @@ "nss-" version ".tar.gz"))) (sha256 (base32 - "0sraxk26swlgl7rl742rkfp5k251v5z3lqw9k8ikin0cjfhkfdpx")))) + "149807rmzb76hnh48rw4m9jw83iw0168njzchz0hmbsgc8mk0i5w")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 9ad03cd558..372f1c4fea 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -201,7 +201,7 @@ normally do not detect. The goal is to detect only real errors in the code (define-public googletest (package (name "googletest") - (version "1.7.0") + (version "1.8.0") (source (origin (method url-fetch) @@ -210,46 +210,10 @@ normally do not detect. The goal is to detect only real errors in the code (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1k0nf1l9cb3prdmsvaajl5i31bx86c1mw0d5jgzykz7rzm36afpp")))) - (build-system gnu-build-system) + "1n5p1m2m3fjrjdj752lf92f9wq3pl5cbsfrb49jqbg52ghkz99jq")))) + (build-system cmake-build-system) (native-inputs - `(("python-2" ,python-2) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'configure 'autoconf - (lambda _ - (zero? (system* "autoreconf" "-vfi")))) - (add-before 'autoconf 'generate-headers - (lambda _ - (begin - (delete-file "include/gtest/gtest-param-test.h") - (system* "python2" "scripts/pump.py" - "include/gtest/gtest-param-test.h.pump") - (delete-file "include/gtest/internal/gtest-tuple.h") - (system* "python2" "scripts/pump.py" - "include/gtest//internal/gtest-tuple.h.pump") - (delete-file - "include/gtest/internal/gtest-param-util-generated.h") - (system* - "python2" "scripts/pump.py" - "include/gtest/internal/gtest-param-util-generated.h.pump") - (delete-file "include/gtest/internal/gtest-type-util.h") - (system* "python2" "scripts/pump.py" - "include/gtest/internal/gtest-type-util.h.pump")))) - (replace 'install - (lambda _ - (let ((out (assoc-ref %outputs "out"))) - (begin - (install-file "lib/.libs/libgtest_main.a" - (string-append out "/lib")) - (install-file "lib/.libs/libgtest.a" - (string-append out "/lib")) - (copy-recursively "include" - (string-append out "/include"))))))))) + `(("python-2" ,python-2))) (home-page "https://github.com/google/googletest/") (synopsis "Test discovery and XUnit test framework") (description "Google Test features an XUnit test framework, automated test diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 81e95c70e5..4e6a248e8e 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -945,7 +945,7 @@ well as bzip2.") (define-public snappy (package (name "snappy") - (version "1.1.3") + (version "1.1.4") (source (origin (method url-fetch) (uri (string-append @@ -953,7 +953,7 @@ well as bzip2.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1wzf8yif5ym2gj52db6v5m1pxnmn258i38x7llk9x346y2nq47ig")))) + "0mq0nz8gbi1sp3y6xcg0a6wbvnd6gc717f3vh2xrjmfj5w9gwjqk")))) (build-system gnu-build-system) (home-page "https://github.com/google/snappy") (synopsis "Fast compressor/decompressor") @@ -1128,3 +1128,21 @@ or junctions, and always follows hard links.") ;; libzpaq.cpp contains a mix of public-domain and ;; expat-licenced (or ‘MIT’) code. license:expat)))) + +(define-public unrar + (package + (name "unrar") + (version "0.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "http://download.gna.org/unrar/unrar-" version ".tar.gz")) + (sha256 + (base32 + "1fgmjaxffj3shyxgy765jhxwz1cq88hk0fih1bsdzyvymyyz6mz7")))) + (build-system gnu-build-system) + (home-page "http://download.gna.org/unrar") + (synopsis "RAR archive extraction tool") + (description "Unrar is a simple command-line program to list and extract +RAR archives.") + (license license:gpl2+))) diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index ec982ef65b..22e18389e7 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -40,14 +40,14 @@ (define-public curl (package (name "curl") - (version "7.52.1") + (version "7.53.0") (source (origin (method url-fetch) (uri (string-append "https://curl.haxx.se/download/curl-" version ".tar.lzma")) (sha256 (base32 - "0r937wplchjxifxqqcjxd9rzp6l9rqqdfjn41x1y4djrh95nsa24")))) + "1k0i31xygb804c61llhin5wbpcscg4gfqmbxcfkpdr1alwh7igrq")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 877eac9559..4b637f0c70 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2016, 2017 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Jan Nieuwenhuizen @@ -252,7 +252,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (define-public leveldb (package (name "leveldb") - (version "1.19") + (version "1.20") (source (origin (method url-fetch) (uri (string-append "https://github.com/google/leveldb" @@ -260,7 +260,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00jjgs9xlwycfkg0xd7n1rj6v9zrx7xc7hann6zalrjyhap18ykx")))) + "0r36bcrj6b2afsp4aw1gjai3jbs1c7734pxpc1jz7hh9nasyiazm")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "CC=gcc") @@ -553,7 +553,7 @@ types are supported, as is encryption.") (define-public rocksdb (package (name "rocksdb") - (version "5.1.2") + (version "5.1.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/facebook/rocksdb" @@ -561,7 +561,7 @@ types are supported, as is encryption.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1qdbs13al7g45xc2j44wzx0ywrg32q1gsdhk5j6j4952xg91rfmh")) + "0ddyj8lh5jk6vx675pdg4jhgs7c12ckw5j31rz85jlrds68ygrry")) (modules '((guix build utils))) (snippet '(begin @@ -1203,6 +1203,37 @@ and B+ Tree data storage models. It is a fast key-value lightweight database and supports many programming languages. It is a NoSQL database.") (license license:gpl3+))) +(define-public tokyocabinet + (package + (name "tokyocabinet") + (version "1.4.48") + (source + (origin + (method url-fetch) + (uri (string-append "http://fallabs.com/tokyocabinet/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "140zvr0n8kvsl0fbn2qn3f2kh3yynfwnizn4dgbj47m975yg80x0")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--enable-pthread" "--enable-off64" "--enable-fastest" + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") "/lib")))) + (inputs + `(("zlib" ,zlib))) + (home-page "http://fallabs.com/tokyocabinet/") + (synopsis "Tokyo Cabinet is a modern implementation of the DBM database") + (description + "Tokyo Cabinet is a library of routines for managing a database. +The database is a simple data file containing records, each is a pair of a +key and a value. Every key and value is serial bytes with variable length. +Both binary data and character string can be used as a key and a value. +There is neither concept of data tables nor data types. Records are +organized in hash table, B+ tree, or fixed-length array.") + (license license:lgpl2.1+))) + (define-public wiredtiger (package (name "wiredtiger") diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 546597c617..7901e1c1d8 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -55,15 +55,13 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.14.1") + (version "0.15.0") (source (origin (method url-fetch) (uri (pypi-uri name version)) - (patches - (search-patches "vdirsyncer-test-suite-slow-machines.patch")) (sha256 (base32 - "044f01fjd8dpz4y9dm3qcc1a8cihcxxbr1sz6y6fkvglpb6k85y5")))) + "08aa5yxcj7ziz2r0hz4p554q8hgpfl2bh8r6r85f4g24mg6arxsj")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm index ec9632faca..93895278d6 100644 --- a/gnu/packages/disk.scm +++ b/gnu/packages/disk.scm @@ -302,14 +302,14 @@ and can dramatically shorten the lifespan of the drive if left unchecked.") (define-public gparted (package (name "gparted") - (version "0.28.0") + (version "0.28.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gparted/gparted/gparted-" version "/gparted-" version ".tar.gz")) (sha256 - (base32 "1w9xsph6fpr7l96b3bxl1bgs94cfp9iisg694h8w3fahihwldzdr")))) + (base32 "0cyk8lpimm6wani8khw0szwqkgw5wpq2mfnfxkbgfm2774a1z2bn")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; Tests require a network connection. diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm index 9a3c66c45e..185fbf8e62 100644 --- a/gnu/packages/django.scm +++ b/gnu/packages/django.scm @@ -106,6 +106,10 @@ to the @dfn{don't repeat yourself} (DRY) principle.") (base32 "0906hms6y6znjhpd0g4wmzv9vcla4brkdpsm4zha9zdj8g5vq2hd")))) (build-system python-build-system) + (arguments + ;; FIXME: Upstream uses a 'runtests.py' script that is not + ;; present in the pypi tarball. + '(#:tests? #f)) (propagated-inputs `(("python-django" ,python-django))) (home-page "https://github.com/alsoicode/django-simple-math-captcha") @@ -131,7 +135,8 @@ with arguments to the field constructor.") "1mmc7zsz3dlhs6sx4sppkj1vgshabi362r1a8b8wpj1qfximpqcb")))) (build-system python-build-system) (arguments - `(#:phases + `(#:tests? #f ; FIXME: How to run tests? + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-setuppy (lambda _ @@ -163,6 +168,12 @@ useful tools for testing Django applications and projects.") (base32 "0f78hmk8c903zwfzlsiw7ivgag81ymmb5hi73rzxbhnlg2v0l3fx")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "runtests.py"))))))) (native-inputs `(("python-django" ,python-django) ("python-mock" ,python-mock))) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 5444579059..808be203c2 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -43,44 +43,6 @@ #:use-module (guix build-system cmake) #:use-module (srfi srfi-1)) -(define-public stellarium - (package - (name "stellarium") - (version "0.14.2") - (source (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/stellarium/" - "Stellarium-sources/" - version "/stellarium-" version ".tar.gz")) - (sha256 (base32 - "1xxil0rv61zc08znfv83cpsc47y1gjl2f3njhz0pn5zd8jpaa15a")))) - (build-system cmake-build-system) - (inputs - `(("qtbase" ,qtbase) - ("zlib" ,zlib) - ("qtserialport" ,qtserialport) - ("qtscript" ,qtscript) - ("gettext" ,gettext-minimal))) - (native-inputs - `(("qtbase" ,qtbase) ;Qt MOC is needed at compile time - ("qttools" ,qttools) - ("perl" ,perl))) ;for 'pod2man' - (arguments - `(#:test-target "tests" - #:phases (modify-phases %standard-phases - (add-before 'check 'set-offscreen-display - (lambda _ - (setenv "QT_QPA_PLATFORM" "offscreen") - (setenv "HOME" "/tmp") - #t))))) - (home-page "http://www.stellarium.org/") - (synopsis "3D sky viewer") - (description "Stellarium is a planetarium. It shows a realistic sky in -3D, just like what you see with the naked eye, binoculars, or a telescope. It -can be used to control telescopes over a serial port for tracking celestial -objects.") - (license license:gpl2+))) - (define-public gcompris (package (name "gcompris") diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 863624fc0f..1daf8e4e68 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -133,22 +133,20 @@ (("/bin/pwd") "pwd")))) (add-after 'install 'install-site-start - ;; Copy guix-emacs.el from Guix and add it to site-start.el. This - ;; way, Emacs packages provided by Guix and installed in + ;; Use 'guix-emacs' in "site-start.el". This way, Emacs packages + ;; provided by Guix and installed in ;; ~/.guix-profile/share/emacs/site-lisp/guix.d/PACKAGE-VERSION are ;; automatically found. (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((guix-src (assoc-ref inputs "guix-src")) - (out (assoc-ref outputs "out")) - (lisp-dir (string-append out "/share/emacs/site-lisp")) - (unpack (assoc-ref %standard-phases 'unpack))) - (mkdir "guix") - (with-directory-excursion "guix" - (apply unpack (list #:source guix-src)) - (install-file "emacs/guix-emacs.el" lisp-dir)) + (let* ((out (assoc-ref outputs "out")) + (lisp-dir (string-append out "/share/emacs/site-lisp"))) + (copy-file (assoc-ref inputs "guix-emacs.el") + (string-append lisp-dir "/guix-emacs.el")) (with-output-to-file (string-append lisp-dir "/site-start.el") (lambda () - (display "(require 'guix-emacs nil t)"))) + (display + (string-append "(when (require 'guix-emacs nil t)\n" + " (guix-emacs-autoload-packages))\n")))) #t)))))) (inputs `(("gnutls" ,gnutls) @@ -175,13 +173,13 @@ ("libsm" ,libsm) ("alsa-lib" ,alsa-lib) ("dbus" ,dbus) - ("guix-src" ,(package-source guix)) ;; multilingualization support ("libotf" ,libotf) ("m17n-lib" ,m17n-lib))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("guix-emacs.el" ,(search-auxiliary-file "emacs/guix-emacs.el")) + ("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) (native-search-paths @@ -1326,7 +1324,7 @@ type, for example: packages, buffers, files, etc.") (define-public emacs-guix (package (name "emacs-guix") - (version "0.2.2") + (version "0.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/alezost/guix.el" @@ -1334,7 +1332,7 @@ type, for example: packages, buffers, files, etc.") "/emacs-guix-" version ".tar.gz")) (sha256 (base32 - "1i47yh24xvgmnc778765g3j9ip0xb2y85v6w83r4qmkigk9rl2ck")))) + "1327zp140c7acckk0ajl88cgwr0lk9j3mb67nsq2janxrkwmj6br")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -3834,3 +3832,23 @@ mode-line.") (description "Emacs minor mode for redisplaying parts of the buffer as pretty symbols.") (license license:gpl3+))) + +(define-public emacs-yasnippet + (package + (name "emacs-yasnippet") + (version "0.11.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/joaotavora/yasnippet/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "15di6mkkf09b7qddpsrm0qln02hji3sx8blya5jxssi9wxxx9iq5")))) + (build-system emacs-build-system) + (home-page "http://github.com/joaotavora/yasnippet") + (synopsis "Yet another snippet extension for Emacs") + (description + "YASnippet is a template system for Emacs. It allows you to type an +abbreviation and automatically expand it into function templates.") + (license license:gpl3+))) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 70de5e53b8..3e1f87d749 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -30,12 +30,14 @@ #:use-module (guix build utils) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module ((gnu packages base) #:prefix base:) #:use-module (gnu packages bison) #:use-module (gnu packages cross-base) #:use-module (gnu packages dejagnu) #:use-module (gnu packages flex) #:use-module (gnu packages gcc) #:use-module (gnu packages gdb) + #:use-module (gnu packages guile) #:use-module (gnu packages libftdi) #:use-module (gnu packages libusb) #:use-module (gnu packages perl) @@ -719,3 +721,54 @@ toolchain, the loader, the Openspin compiler, the Spin2cpp tool, and the Spin simulator.") (home-page (package-home-page propeller-gcc)) (license (package-license propeller-gcc)))) + +(define-public binutils-vc4 + (let ((commit "708acc851880dbeda1dd18aca4fd0a95b2573b36")) + (package + (name "binutils-vc4") + (version (string-append "2.23.51-0." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/puppeh/binutils-vc4.git") + (commit commit))) + (sha256 + (base32 + "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--target=vc4-elf" + "--disable-werror" + "--enable-cgen-maint") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-cgen + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (string-append (assoc-ref inputs "cgen") + "/cgen") "cgen") + #t)) + (add-after 'unpack-cgen 'fix-cgen-guile + (lambda _ + (substitute* "opcodes/Makefile.in" + (("guile\\{,-\\}1.8") "guile")) + (zero? (system* "which" "guile"))))))) + (native-inputs + `(("cgen" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/puppeh/cgen.git") + (commit "d8e2a9eb70425f180fdd5bfd032884b0855f2032"))) + (sha256 + (base32 + "14b3h2ji740s8zq5vwm4qdcxs4aa4wxi6wb9di3bv1h39x14nyr9")))) + ("texinfo" ,texinfo) + ("flex" ,flex) + ("bison" ,bison) + ("guile-1.8" ,guile-1.8) + ("which" ,base:which))) + (synopsis "Binutils for VC4") + (description "This package provides @code{binutils} for VideoCore IV, +the Raspberry Pi chip.") + (license license:gpl3+) + (home-page "https://github.com/puppeh/vc4-toolchain/")))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 734efcdc73..23446bafa8 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -750,3 +750,27 @@ electrical diagrams), gerbview (viewing Gerber files) and others.") (description "This package provides Kicad component, footprint and 3D render model libraries.") (license license:lgpl2.0+)))) + +(define-public linsmith + (package + (name "linsmith") + (version "0.99.30") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/linsmith/linsmith/linsmith-" + version "/linsmith-" version ".tar.gz")) + (sha256 + (base32 + "18qslhr2r45rhpj4v6bjcqx189vs0bflvsj271wr7w8kvh69qwvn")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("gtk" ,gtk+-2) + ("libgnome" ,libgnomeui))) + (home-page "http://jcoppens.com/soft/linsmith/index.en.php") + (synopsis "Smith Charting program") + (description "LinSmith is a Smith Charting program, mainly designed for +educational use. As such, there is an emphasis on capabilities that improve +the 'showing the effect of'-style of operation.") + (license license:gpl2+))) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index a34578afe7..b9a55333df 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -197,7 +197,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.21.5") + (version "0.21.6") (source (origin (method url-fetch) (uri @@ -205,7 +205,7 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1fslq70z4s6v9ipahnk8s5fgqnqq4njv4rlqv951r1bh1xk5lx7h")))) + "0gan3c8jbvhcmvb2fpbprr3m6db0afg1dnrb87nbqb399nsi81zd")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-mount-eeze"))) @@ -253,7 +253,17 @@ embedded systems.") (lambda _ (setenv "CFLAGS" (string-append "-I" (assoc-ref %build-inputs "python-dbus") - "/include/dbus-1.0"))))))) + "/include/dbus-1.0")) + #t)) + (add-before 'check 'set-environment + (lambda _ + ;; Some tests require write access to HOME. + (setenv "HOME" "/tmp") + #t))) + ;; FIXME: Some tests require a running D-Bus server or a network + ;; connection and should be disabled. Other test failures looks + ;; legitimate. Disabled for now, needs work! + #:tests? #f)) (native-inputs `(("pkg-config" ,pkg-config) ("python-cython" ,python-cython))) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index ee90c38eb7..234e40c281 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -24,7 +24,6 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system python) diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index d89bd49b74..46c658b667 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -401,7 +401,7 @@ and returns a sequence of positioned glyphids from the font.") (define-public potrace (package (name "potrace") - (version "1.13") + (version "1.14") (source (origin (method url-fetch) @@ -409,7 +409,7 @@ and returns a sequence of positioned glyphids from the font.") "/potrace-" version ".tar.gz")) (sha256 (base32 - "115p2vgyq7p2mf4nidk2x3aa341nvv2v8ml056vbji36df5l6lk2")))) + "0znr9i0ljb818qiwm22zw63g11a4v08gc5xkh0wbdp6g259vcwnv")))) (build-system gnu-build-system) (native-inputs `(("ghostscript" ,ghostscript))) ;for tests (inputs `(("zlib" ,zlib))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 36b5962cd0..20a104f623 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -88,14 +88,14 @@ freedesktop.org project.") (define-public libinput (package (name "libinput") - (version "1.6.0") + (version "1.6.3") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" name "-" version ".tar.xz")) (sha256 (base32 - "0cjq4mjqx8c7iiign330s34dvpw38rlv8byaxlx68p3kim8lylxp")))) + "18bx2fz04mf41nf3021pr9k3f741zvc6i8pzvypc6ycffac2gnkl")))) (build-system gnu-build-system) (native-inputs `(("cairo" ,cairo) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 7380fcfc3b..49e7214991 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright © 2017 Rene Saavedra ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,12 +27,21 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages libidn) #:use-module (gnu packages ncurses) - #:use-module (gnu packages readline) + #:use-module (gnu packages nettle) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) #:use-module (gnu packages tls) - #:use-module (gnu packages compression)) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages xml)) (define-public lftp (package @@ -159,3 +169,66 @@ maintaining a web page or other FTP archive. It synchronizes a set of local files to a remote server by performing uploads and remote deletes as required.") (license gpl2+))) + +(define-public libfilezilla + (package + (name "libfilezilla") + (version "0.9.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.filezilla-project.org/" + name "/" name "-" version ".tar.bz2")) + (sha256 + (base32 + "0340v5xs48f28q2d16ldb9359dkzlhl4l449mgyv3qabnlz2pl21")))) + (build-system gnu-build-system) + (native-inputs + `(("cppunit" ,cppunit))) + (home-page "https://lib.filezilla-project.org") + (synopsis "Cross-platform C++ library used by Filezilla client") + (description + "This package provides some basic functionality to build high-performing, +platform-independent programs.") + (license gpl2+))) + +(define-public filezilla + (package + (name "filezilla") + (version "3.24.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://sourceforge.net/projects/" name + "/files/FileZilla_Client/" version + "/FileZilla_" version "_src" ".tar.bz2")) + (sha256 + (base32 + "0ahcld3g6jj92nakm5i58wgmcv6f4l9yisw3aqbc2ry0gs679pg6")))) + (build-system gnu-build-system) + (arguments + ;; Don't let filezilla phone home to check for updates. + '(#:configure-flags '("--disable-autoupdatecheck"))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("pugixml" ,pugixml) + ("xdg-utils" ,xdg-utils))) + (inputs + `(("dbus" ,dbus) + ("gnutls" ,gnutls) + ("gtk+" ,gtk+) + ("libfilezilla" ,libfilezilla) + ("libidn" ,libidn) + ("nettle" ,nettle) + ("sqlite" ,sqlite) + ("wxwidgets" ,wxwidgets))) + (home-page "https://filezilla-project.org") + (synopsis "Full-featured graphical FTP/FTPS/SFTP client") + (description + "Filezilla client supports FTP, FTP over SSL/TLS (FTPS), +SSH File Transfer Protocol (SFTP), HTTP/1.1, SOCKS5, FTP-Proxy, IPv6 +and others features such as bookmarks, drag and drop, filename filters, +directory comparison and more.") + (license gpl2+) + (properties '((upstream-name . "FileZilla"))))) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 619c2f1bc2..908ce48347 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -526,18 +526,16 @@ interface (API).") (define-public python-pygame (package (name "python-pygame") - (version "1.9.1") + (version "1.9.3") (source (origin (method url-fetch) - (uri (string-append "http://pygame.org/ftp/pygame-" - version "release.tar.gz")) + (uri (pypi-uri "pygame" version)) (sha256 (base32 - "0cyl0ww4fjlf289pjxa53q4klyn55ajvkgymw0qrdgp4593raq52")))) + "1hlydiyygl444bq5m5g8n3jsxsgrdyxlm42ipmfbw36wkf0j243m")))) (build-system python-build-system) (arguments - `(#:python ,python-2 - #:tests? #f ; Tests require pygame to be installed first. + `(#:tests? #f ; Tests require pygame to be installed first. #:phases (modify-phases %standard-phases ;; Set the paths to the dependencies manually because @@ -553,6 +551,7 @@ interface (API).") (smpeg-ref (assoc-ref inputs "libsmpeg")) (png-ref (assoc-ref inputs "libpng")) (jpeg-ref (assoc-ref inputs "libjpeg")) + (freetype-ref (assoc-ref inputs "freetype")) (v4l-ref (assoc-ref inputs "v4l-utils")) (out-ref (assoc-ref outputs "out"))) (substitute* "Setup.in" @@ -582,9 +581,14 @@ interface (API).") (("JPEG = -ljpeg") (string-append "JPEG = -I" jpeg-ref "/include -L" jpeg-ref "/lib -ljpeg"))) + + (substitute* "Setup.in" + (("FREETYPE = -lfreetype") + (string-append "FREETYPE = -I" freetype-ref "/include/freetype2 -L" + freetype-ref "/lib -lfreetype"))) + (substitute* "Setup.in" (("^pypm") "#pypm")) - (substitute* "src/movie.c") ;; Create a path to a header file provided by v4l-utils. (system* "mkdir" "linux") (system* "ln" "--symbolic" @@ -592,7 +596,8 @@ interface (API).") "linux/videodev.h") (system* "ln" "--symbolic" "Setup.in" "Setup"))))))) (inputs - `(("sdl" ,sdl) + `(("freetype" ,freetype) + ("sdl" ,sdl) ("sdl-image" ,sdl-image) ("sdl-mixer" ,sdl-mixer) ("sdl-ttf" ,sdl-ttf) @@ -619,3 +624,6 @@ to create fully featured games and multimedia programs in the python language.") license:psfl license:public-domain license:lgpl2.1+)))) + +(define-public python2-pygame + (package-with-python2 python-pygame)) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1d6a12a0f6..550652eefd 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -175,6 +175,49 @@ You may even apply photos to the faces instead of colors. The game is scriptable with Guile.") (license license:gpl3+))) +(define-public gnushogi + (package + (name "gnushogi") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnushogi/gnushogi-" + version ".tar.gz")) + (sha256 + (base32 + "0a9bsl2nbnb138lq0h14jfc5xvz7hpb2bcsj4mjn6g1hcsl4ik0y")))) + (arguments `(#:tests? #f)) ;; No check target. + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/gnushogi/") + (synopsis "The game of Shogi (Japanese chess)") + (description "GNU Shogi is a program that plays the game Shogi (Japanese +Chess). It is similar to standard chess but this variant is far more complicated.") + (license license:gpl3+))) + +(define-public xshogi + (package + (name "xshogi") + (version "1.4.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gnushogi/xshogi-" + version ".tar.gz")) + (sha256 + (base32 + "1dns0nhymak44by18sv48m4xb2skiwbi2i3nb9hl6w9iwd2i2brf")))) + (build-system gnu-build-system) + (inputs + `(("libxaw" ,libxaw) + ("libxt" ,libxt))) + (home-page "http://www.gnu.org/software/gnushogi/") + (synopsis "User interface for gnushogi") + (description "A graphical user interface for the package @code{gnushogi}.") + ;; Contains a copy of GPLv3 but the licence notices simply + ;; state "GNU General Public Licence" without specifying a version. + (license license:gpl1+))) + (define-public abbaye (package (name "abbaye") @@ -840,15 +883,15 @@ using the curses.h library for screen control.") (define-public glulxe (package (name "glulxe") - (version "0.5.2") + (version "0.5.4") (source (origin (method url-fetch) (uri (string-append "http://www.ifarchive.org/if-archive/programming/" - "glulx/interpreters/glulxe/glulxe-052.tar.gz")) + "glulx/interpreters/glulxe/glulxe-054.tar.gz")) (sha256 (base32 - "19iw6kl8ncqcy9pv4gsqfh3xsa1n94zd234rqavvmxccnf3nj19g")))) + "0vipydg6ra90yf9b3ipgppwxyb2xdhcxwvirgjy0v20wlf56zhhz")))) (build-system gnu-build-system) (inputs `(("glk" ,glkterm))) (arguments @@ -873,7 +916,7 @@ using the curses.h library for screen control.") playing interactive fiction. It was designed by Andrew Plotkin to relieve some of the restrictions in the venerable Z-machine format. This is the reference interpreter, using Glk API.") - (license (license:fsf-free "file://README")))) + (license license:expat))) (define-public fizmo (package @@ -2574,7 +2617,7 @@ tactics.") (define-public starfighter (package (name "starfighter") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) (uri (string-append @@ -2583,18 +2626,8 @@ tactics.") name "-" version "-src.tar.gz")) (sha256 (base32 - "1qb5nk0b3d0ia5zszmg4a3ydf4fiy39fmymb66vwkqn4djajdhzq")))) + "1646hpjq8bz2fkfkja1dah511hn7zd2r7da4w9c9blhad3p5732v")))) (build-system gnu-build-system) - (arguments - '(#:tests? #f ; no check target - #:make-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "PREFIX=" out) - (string-append "BINDIR=" out "/bin/"))) - #:phases - (modify-phases %standard-phases - ;; no configure script - (delete 'configure)))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 7b3182fd8b..a6403e67a9 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -59,7 +59,8 @@ focus on accuracy and performance. It uses the International Color Consortium standard (ICC), approved as ISO 15076-1.") (license license:x11) - (home-page "http://www.littlecms.com/"))) + (home-page "http://www.littlecms.com/") + (properties '((cpe-name . "little_cms_color_engine"))))) (define-public libpaper (package diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b673b3d402..cfd8b24290 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5606,7 +5606,7 @@ functionality and behavior.") (define-public arc-theme (package (name "arc-theme") - (version "20161119") + (version "20170302") (source (origin (method url-fetch) (uri (string-append "https://github.com/horst3180/arc-theme" @@ -5614,7 +5614,7 @@ functionality and behavior.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1kbhaxmydyip3vdw4kf8rk776jcd9wf0w7z6h2i4naxdn4rsnw54")))) + "0igxpngnkf1wpsg872a9jg3c9f5z8afm312yfbillz16mk8w39cw")))) (build-system gnu-build-system) (arguments '(#:phases @@ -5639,7 +5639,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (define-public moka-icon-theme (package (name "moka-icon-theme") - (version "5.3.1") + (version "5.3.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/moka-project" @@ -5648,7 +5648,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1lnk7p8dsd9xh6cgz5krvlcr457w8yl4m6p6s5c2g5narsjswzrm")))) + "062rab0ggmgb3y0d6b3k5d47wsadi28cdnyyr2vqbjhza01dglci")))) (build-system gnu-build-system) (arguments '(#:phases @@ -5674,7 +5674,7 @@ simple and consistent.") (define-public arc-icon-theme (package (name "arc-icon-theme") - (version "20160605") + (version "20161122") (source (origin (method url-fetch) (uri (string-append "https://github.com/horst3180/arc-icon-theme" @@ -5682,7 +5682,7 @@ simple and consistent.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1npf0ki0j0llrw9wbffhxxa1cdms0q7b8xlg9m943dd9g7pgdm2p")))) + "1ya1cqvv8q847c0rpcg6apzky87q3h04y8jz5nmi52qk6kg8si0b")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index a4514a7f41..bcd4675813 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -184,16 +184,14 @@ and support for SSL3 and TLS.") (define-public gnurl (package (name "gnurl") - (version "7.52.1") + (version "7.53.1") (source (origin (method url-fetch) - (uri (let ((version-with-underscores - (string-join (string-split version #\.) "_"))) - (string-append "https://gnunet.org/sites/default/files/" - name "-" version-with-underscores ".tar.bz2"))) + (uri (string-append "https://gnunet.org/sites/default/files/" + name "-" version ".tar.bz2")) (sha256 (base32 - "1gn6mvab2vhfj9637ykg1zjzb23fngfnyd24wlgxmjhf49pn334h")))) + "1ah2304cm6y7d201vdph170mrwxmg6r72v2zsxzjn0jk68d8kb6d")))) (build-system gnu-build-system) (outputs '("out" "doc")) ; 1.5 MiB of man3 pages diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index fb0423c606..1b59cf7ecf 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -217,14 +217,15 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.18") + (version "2.1.19") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) + (patches (search-patches "gnupg-2.1-fix-Y2038-test-failure.patch")) (sha256 (base32 - "157rrv3ly9j2k0acz43nhiba5hfl6h7048jvj55wwqjmgsmnyk6h")))) + "1w4vccmb5l50lm4yrz9vkdj7whbfvzx543r55362kkj1aqgyvk26")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -243,7 +244,11 @@ compatible to GNU Pth.") ("sqlite" ,sqlite) ("zlib" ,zlib))) (arguments - `(#:configure-flags '("--enable-gpg2-is-gpg") + `(#:configure-flags '("--enable-gpg2-is-gpg" + ;; Otherwise, the test suite looks for the `gpg` + ;; executable in its installation directory in + ;; /gnu/store before it has been installed. + "--enable-gnupg-builddir-envvar") #:phases (modify-phases %standard-phases (add-before 'configure 'patch-paths @@ -259,11 +264,27 @@ compatible to GNU Pth.") (("/usr/bin/env gpgscm") (string-append (getcwd) "/tests/gpgscm/gpgscm"))) #t)) - ;; If this variable is undefined, /bin/pwd is invoked. - (add-before 'check 'set-gnupg-home - (lambda _ - (setenv "GNUPGHOME" (getcwd)) - #t))))) + (add-before 'build 'patch-test-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ((coreutils (assoc-ref inputs "coreutils")) + (cat (string-append coreutils "/bin/cat")) + (pwd (string-append coreutils "/bin/pwd")) + (true (string-append coreutils "/bin/true")) + (false (string-append coreutils "/bin/false"))) + (substitute* '("tests/inittests" + "tests/pkits/inittests" + "tests/Makefile" + "tests/pkits/common.sh" + "tests/pkits/Makefile" + ) + (("/bin/pwd") pwd)) + (substitute* "common/t-exectool.c" + (("/bin/cat") cat)) + (substitute* "common/t-exectool.c" + (("/bin/true") true)) + (substitute* "common/t-exectool.c" + (("/bin/false") false)) + #t)))))) (home-page "https://gnupg.org/") (synopsis "GNU Privacy Guard") (description diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 9279c46b5d..e6e24f6650 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -152,7 +152,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.12") + (version "4.13.1") (source (origin (method url-fetch) (uri (string-append @@ -160,7 +160,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "1pk98bmc5xzbl62q5wf2d6mryf0v95z6rsmxz27nclwiaqg0mcg0")))) + "1arkg08l6zlp8v44shqbk2c8qzwd913lgh60fb3yfxls6d8ifk2y")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) @@ -186,7 +186,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.27.1") + (version "3.29.2") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -197,7 +197,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0sraxk26swlgl7rl742rkfp5k251v5z3lqw9k8ikin0cjfhkfdpx")) + "149807rmzb76hnh48rw4m9jw83iw0168njzchz0hmbsgc8mk0i5w")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch")))) (build-system gnu-build-system) @@ -303,7 +303,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "45.5.1-gnu1") + (version "45.7.0-gnu1") (source (origin (method url-fetch) @@ -312,68 +312,43 @@ standards.") "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1sbfgsibmb8wfmb2g40gmqwq3nikmrgzksf51ydrz7gnafyfaqw1")) + "1mn73liylqzxk441f28wk326yglqs8zcwqs4zz51s8i2id2jsnv3")) (patches (list (search-patch "icecat-avoid-bundled-libraries.patch") (search-patch "icecat-binutils.patch") - (mozilla-patch "icecat-CVE-2016-9897.patch" "2e5438a92617" "0pyjbzyy04759ldpcar8q8cccv67j1jkxsg46rkq7a3rbhmwmw4p") - (mozilla-patch "icecat-CVE-2016-9899.patch" "7391f60fb790" "1hydggpmmm2cs9lb15micnkxn4wl4cda9g74hkn3zmks805vjz3h") - (mozilla-patch "icecat-CVE-2016-9893-pt1.patch" "744e01001e6e" "0z2fq765kap3ll9as5rvjpnbj3pw26074alw7df0zi215qz47nxr") - (mozilla-patch "icecat-CVE-2016-9904-pt1.patch" "8ae673f34a5b" "1rlbihckl9afa0y91lqs7gpnv6a7zxzrmxjv95y3yrl03kibqp76") - (mozilla-patch "icecat-CVE-2016-9904-pt2.patch" "409c23c144fe" "05kgs16y8s5pxmg2dxp93247zagnj6zgj3209qpm5hz3an7gr13h") - (mozilla-patch "icecat-CVE-2016-9900.patch" "994d9bd0e28d" "007wifyx3b2ln4fwv1i8n24yz5ngjf4mkzd7sqr5bpd3q88ff293") - (mozilla-patch "icecat-CVE-2016-9893-pt2.patch" "0fc43af8982e" "0pc8q9knzq2knj723mwkay1lnzbzysb07ygxnc16mcb6f7vl2mw8") - (mozilla-patch "icecat-CVE-2016-9893-pt3.patch" "19f9a4643d77" "0w5yxj1l0hvs66q9agjp4m5sfby7fj05lx33gaqf899bw4hn4vcf") - (mozilla-patch "icecat-CVE-2016-9893-pt4.patch" "c58442c414f5" "1z1w1v8xagkhrwgp51ij1k2gx0ripslia09vm78812n7gcwddaas") - (mozilla-patch "icecat-CVE-2016-9898.patch" "5054047b7328" "0xlw8irymfp3bcaa5jpf7clf7bq6qxp3i8zapp8jya8lzr1nf868") - (mozilla-patch "icecat-bug-881832-pt1.patch" "1123263318a3" "1qkxwva3zrcs1zhga8ncmndq03988dx75i896g53gbvpskj06915") - (mozilla-patch "icecat-bug-881832-pt2.patch" "dc87c0a39adf" "01rapf14f3r2wk0cjd16dn1rll4ipgs33cnjmjck48nvk67ikz6h") - (mozilla-patch "icecat-bug-881832-pt3.patch" "f20e5f488368" "15ql9ywifb3gm2g1057k63f821dbs3wqsh3zhndprzf3dn6aha4i") - (mozilla-patch "icecat-bug-881832-pt4.patch" "7950c4d5bd7c" "0jhkg5hq5yfy7rh21k1mpbsbr81ql85aazym30zy3n2cf28xxhd7") - (mozilla-patch "icecat-bug-881832-pt5.patch" "972734ec21b6" "073i4v1f1ydy49i57pvzscz95sjr5bbk9s5sajxvmmcsmwhpjdfy") - (mozilla-patch "icecat-CVE-2016-9905-pt1.patch" "aebd3687e05e" "1qz6hdgflcrqyg7fv66cbg23v4b7q5bc2yxzrgjxs4j1d7jy1s0s") - (mozilla-patch "icecat-CVE-2016-9905-pt2.patch" "63d8e5cd27cb" "11fsgyngy7v59ma30xdbmycwf4izwikzvaljngm3ks4534inpl4a") - (mozilla-patch "icecat-bug-1279202.patch" "e560997291af" "1hn35slasfcj3ryka4fsarx4l9r99z0iwj67fmbv6zxz4z133kks") - (mozilla-patch "icecat-CVE-2016-9902.patch" "21c615b65048" "0ibgsxa36x9ajn2jqbhxxvrfvj6x6iyspsmzzn4brdz11n93skhr") - (mozilla-patch "icecat-CVE-2016-9901.patch" "c15e5afc0430" "17gj32agqs94548z8lvz0l6zz3kbwajn8as0y4iw5nb6jsll4c66") - (mozilla-patch "icecat-CVE-2016-9893-pt5.patch" "46163fb1cb34" "1yikayczfgfla3aka0159apq3149d52sgvlca0sivx4myd0lvjm7") - (mozilla-patch "icecat-CVE-2016-9893-pt6.patch" "cde2a37100f5" "100abggnhwyw84almxrkxqfpyfkd4pqkcrh5y9g4d3jd2h16asvl") - (mozilla-patch "icecat-CVE-2016-9893-pt7.patch" "9b78ab1e6d07" "19ib6bp96xk000ll40b8qxvizkncyzclz2rsb9w5fa42qs9978ff") - (mozilla-patch "icecat-CVE-2016-9893-pt8.patch" "78ebf9c9dfb0" "1shgr4rk6r2zxr1qqk1j3qnnqzqxnbi093qhlrfh8q5q1ivqf6k1") - (mozilla-patch "icecat-CVE-2016-9893-pt9.patch" "a46a9f16823c" "0dwkyz3kcqnfcbhbfh2lss7s0yh87rgzb871qxx3x4ynyqph9mnz") - (mozilla-patch "icecat-CVE-2017-5376.patch" "6bc7cc7a33a6" "1wggcqv84n8mp7xps7hy4rwy61fkh45imfqzc0b46s3w5hyhypn2") - (mozilla-patch "icecat-CVE-2016-9893-pt10.patch" "778f65148b40" "0j2a153sk0654vv2lnxjib4lwml3mlqn6vs46c2pp82iba8nyfrm") - (mozilla-patch "icecat-CVE-2016-9895.patch" "94bd2b43c766" "10h0qpr6m9cqyqxxnkbb6mzb3cagavzlynkxgd7a4izyq1bv28rk") - (mozilla-patch "icecat-CVE-2016-9893-pt11.patch" "893de7431d51" "11gyik8mwipl6ipypkvdq519pw7ccbg0g0bnvxb7271n44cqqcq5") - (mozilla-patch "icecat-CVE-2017-5383-pt1.patch" "b21dee058b2c" "005khpimffqzas7slajid4dd2c15nyk7rjk6fsps87bgnx0gx0s4") - (mozilla-patch "icecat-bug-1258410-pt1.patch" "cd23c5d74be8" "1myzkpzg6pmjacjz8az06m9kz84in1mwsiaw5sgx47pm02598wm5") - (mozilla-patch "icecat-bug-1258410-pt2.patch" "b83594617d15" "171cqflc9jh47az96im1whwhyq4ayicspqsczsmn2x5ll9lqw5fq") - (mozilla-patch "icecat-CVE-2017-5380.patch" "d6c6f5e4e641" "10x9f46ylm2q3i669hj1csd6agdm8w7xa0iln691z8ayg2hcrxdz") - (mozilla-patch "icecat-CVE-2017-5373-pt1.patch" "122f5fbfc563" "05pp2f4pg4j8a8pdgjhfrc8g2chhkhsarn9n8sbyag0fy3ig1cvd") - (mozilla-patch "icecat-CVE-2017-5390.patch" "297c675ddadc" "1jc1b5i69vq1fvz3qfnnv52c9cj17bjbmfyzmqlw5ywna0wfvabz") - (mozilla-patch "icecat-CVE-2017-5373-pt2.patch" "3cff736e3bb6" "1nxqwnl9zksvkfkmis7zica4xrhwfndjyy2sxc1dvrh9rshk1swq") - (mozilla-patch "icecat-CVE-2017-5373-pt3.patch" "2732280adabc" "0zrpq3aybaw2yy38vs6883a4nw01x4kxn3lfqn9yhcgjvngmmyia") - (mozilla-patch "icecat-CVE-2017-5373-pt4.patch" "81c9fdbd96e8" "0scv1zyi4vbsjdsyj4w70n5jd50baq0dzw3qpxqf1n69nfb9k214") - (mozilla-patch "icecat-CVE-2017-5373-pt5.patch" "a386ca6a3013" "1m1scz2pxzmg9wya8is5dcr3mgvkx3g1xlykgigmw2mqs5zcdg9s") - (mozilla-patch "icecat-CVE-2017-5373-pt6.patch" "0521b0e4707c" "1mv057p4hcvapibpbd9apryag19aiqdzafc6df2angl97m4mcbjx") - (mozilla-patch "icecat-bug-1290037.patch" "bf0dd9ae6807" "02iw5ngsvvij95arnn69a744d6si27g1x41ixg16l51dbn900b3r") - (mozilla-patch "icecat-bug-1322666.patch" "576f03e362c5" "0m88xs0jwhzx2lg12cvimxjknp7rpsvvhxxblhiqqjwnqip0pyc0") - (mozilla-patch "icecat-bug-1304266.patch" "4d82e7314a72" "1rrrw4rw0xv7c2myiypcqh1fk47rk3fvic79zh6m04bl3knclr1r") - (mozilla-patch "icecat-CVE-2017-5373-pt7.patch" "0617dd4b444d" "1ipags2cl2p521pm0qx110h5di2mgif6h1r3g8l9b0rc5m9b1y2j") - (mozilla-patch "icecat-CVE-2017-5375.patch" "ead08c2a6c57" "1nnnwdr7411xpz6n9j869g6sz447cq6xsmds9cw6d24iprcinp5m") - (mozilla-patch "icecat-CVE-2017-5378-pt1.patch" "c5e67d41bdd0" "05kwn5zv381lsiw9vbzm8fh6s1lddx47l8f4pwg487h9dj7vbdfq") - (mozilla-patch "icecat-CVE-2017-5373-pt8.patch" "2ce94f2ea797" "1yrnjqpafjns68z99s1m6jins3agid7c1z3v9qgk5xzfcddl31pn") - (mozilla-patch "icecat-CVE-2017-5373-pt9.patch" "e4ac8a66d3db" "1ggbh6nk005plm7kvp7qznbnlpidqkipxc5hlaqbjc3m0z9mypzl") - (mozilla-patch "icecat-CVE-2017-5386.patch" "8c171b75a0c6" "1cplkgwkhqvb62q7s8cya2drjdswnlicv5d9a60fxvnp6m7a3z02") - (mozilla-patch "icecat-CVE-2017-5383-pt2.patch" "79a31d8153bf" "0dzwk2hc741c0jr8xya4y8q59lk8mcgnvfdrdk0vzq1gby16b9zi") - (mozilla-patch "icecat-CVE-2017-5378-pt2.patch" "747085a1cd93" "0rpc8hl0jka4akdjnlwya4x9v4pqa1r5vc4pkmxsgvqpp2vkq4m2") - (mozilla-patch "icecat-bug-1331606.patch" "f0329536734b" "1br5shyfwp009y623wgjq60vhcp5k5zpzkgy4r3s5yrm5xyfcprf") - (mozilla-patch "icecat-bug-1328642.patch" "237c1ca6e035" "0808g5j17var6wv6ivj08i43fwkga9abmmgmz5w3hb8mhajkjw58") - (mozilla-patch "icecat-CVE-2017-5396.patch" "910ad552cbf5" "1qss3gc6n4myzwvwanc09xvyiq3hwhixn2xvpbk9xkfz2apdlfa6") - (mozilla-patch "icecat-bug-1312827.patch" "5c894801eb1e" "03xyjwx9rfx5w7q6wq9if83fcfgrlvvbyxpsawzxxgybnizyy7g8") - (mozilla-patch "icecat-bug-1191841.patch" "83ee87b301bd" "1kd9z4py372a2f1jg7jwvwri43vipf0k7lcvsg7b0cqr5p70zwcg") - (mozilla-patch "icecat-bug-1234317.patch" "eb6f18dbfe8d" "1dh3263fvg3dxav09g6fn41ax4q1jmwp5fk6pl6shn16mrfha1qq"))) + (mozilla-patch "icecat-CVE-2017-5398-pt01.patch" "1a39a54b5fea" "0k3sbf2w2yng2rpv6wl9zrm5cbsgq3pslr19xwrk8sk753as79fp") + (mozilla-patch "icecat-CVE-2017-5402.patch" "9828c3bb7b73" "0zgks0v9sqhwwkmry4daswvjwk6aqln6abx0iac1vwqqpg6swff6") + (mozilla-patch "icecat-CVE-2017-5398-pt02.patch" "fa3268a1147e" "1jyd1hvp42pz5l15agmb1jhw74b38x8xnj9ih5v4pskv41bgmyg5") + (mozilla-patch "icecat-CVE-2017-5400.patch" "347c10e4d6d1" "1w6yrm97l477q4ripbj0nimc87p4jscabvihpncxqbq9xzc4km7p") + (mozilla-patch "icecat-CVE-2017-5410.patch" "fe4a2cda54ad" "0spcs93hpz13d8670jgvww80f0ynrbhwbh62fkv27lpr6wmqwqh1") + (mozilla-patch "icecat-CVE-2017-5401.patch" "c38f8546be5f" "1sa22w9kzgynsn4c6zh4d66byskk5kffzbvlzrhyzvqjddypf9p8") + (mozilla-patch "icecat-CVE-2017-5398-pt03.patch" "41c80ecafa99" "0r33arr5wcgl00zgncasiyl65bmm6jy45clxnbb75nzjmsd1zx1s") + (mozilla-patch "icecat-CVE-2017-5405.patch" "381552c888b4" "1sjhh390cx1jqx74lxk6qd8f8ccppqgagqfhc9pnbm2m67hxvkj9") + (mozilla-patch "icecat-CVE-2017-5407.patch" "4ba337cdb998" "0vyknizid2z9nvl31m08c7fknizhv8dh8m54apm39k8lx77vf70p") + (mozilla-patch "icecat-CVE-2017-5398-pt04.patch" "886650fac531" "18fsr5dmav96ja0dah7mj34n8mjpckp0bbc32zjyaj5qx0m4h5cw") + (mozilla-patch "icecat-CVE-2017-5409.patch" "0a22becb23cd" "19fshrq4qkj5s0mjrads6by84gy7rsq3k57gha6sw6rvx8chjaz6") + (mozilla-patch "icecat-CVE-2017-5398-pt05.patch" "a0ead6ef09eb" "1hpsq81hhhq2a2dcq2dfndiwx93vvp5rfq0cgv6kwk2bsrq77wqq") + (mozilla-patch "icecat-CVE-2017-5398-pt06.patch" "d3fede027d06" "1aw02p367cm0ayijdiiawlb7qhab6jwqwkakj317yd1cjnmkalwr") + (mozilla-patch "icecat-CVE-2017-5398-pt07.patch" "ffca0f060bb4" "0qwisfp7idjj5nc1vp1afrf5lj66l2gp7rllkjmrqpz6cyfc708v") + (mozilla-patch "icecat-CVE-2017-5398-pt08.patch" "4aa65b44dcb9" "07j6dz2b7hp1bkfvkxwgpn2wc3hqrgjgwpaz96fcpz8yadg2fssw") + (mozilla-patch "icecat-bug-1318914.patch" "30e2382d800f" "0w8zky5i7zc5q943x37rdvi4wbcing0q7w9fcgvnnh5li2sbrsy8") + (mozilla-patch "icecat-CVE-2017-5408.patch" "403d2300adc2" "06r4j48rc1fd9gvmvqy68mlqah5xfxpkvwmxk0gnqc364kpq9slk") + (mozilla-patch "icecat-CVE-2017-5398-pt09.patch" "546ab5e99568" "05rdb9bm3n4lj0zq5a95xnwsb0vzirb9mbc2wf9xbi4xlamsgvvw") + (mozilla-patch "icecat-bug-1311380.patch" "ef6eeb7f8846" "1w19is5blbrwf3wlmy6wzgabih8sxp2kmkffqcj2g4jypfwyqn73") + (mozilla-patch "icecat-CVE-2017-5398-pt10.patch" "eec69810d80e" "1r20abhw7b38igsrdpkhcfwx9i9gmcxikv4y3sjr4wkbp684f7av") + (mozilla-patch "icecat-CVE-2017-5398-pt11.patch" "fec35ce6e68b" "1imdfrs8dxz44rhsmvydh29w5j64cij6g5ggrmhvz3386xvlil2v") + (mozilla-patch "icecat-CVE-2017-5398-pt12.patch" "725e2a217722" "06gfhi2ich279rjnxi15fb4igimsxnv5w6bx4g91js8wbvp2r3v0") + (mozilla-patch "icecat-CVE-2017-5398-pt13.patch" "d905a2e3a4d9" "1ibxi2s0czj47b739zmmjzbln8lpn27hdg4b17w58vhbhzkq31cx") + (mozilla-patch "icecat-CVE-2017-5398-pt14.patch" "0032560ae945" "0md3p5cix6nzbj5m199awc9gk52pygy5s9lx3a38vh3xvd92lsbj") + (mozilla-patch "icecat-CVE-2017-5398-pt15.patch" "91dda1e79ad8" "0b5h8fhagczfqkdgby982w6qgkw9y11zxxpdbn89rwmjpyp9nghx") + (mozilla-patch "icecat-CVE-2017-5404.patch" "556dd9e4a9e3" "0mbdx4xn1xs67n47ys9m42lc5ny96rz21ala848yajpdlxsz680g") + (mozilla-patch "icecat-bug-1341137-pt1.patch" "e86e0423dad1" "0dk1v7lcs61nx76qxcibha3ygqri15ldcvwwsrsayff9fq6k0v4y") + (mozilla-patch "icecat-bug-1341137-pt2.patch" "9aebee8b8cb9" "0m7p5iprhhwdv89aqqg7fla5szw6v7x2sll4ns0zg60pk4vm6izq") + (mozilla-patch "icecat-bug-1341137-pt3.patch" "69f3d44bdb48" "1ad7rw6nmg3c49ylqxlqqkb6cm2f0ygfzrigs6b60a2zkjqhbl0h") + (mozilla-patch "icecat-bug-1341137-pt4.patch" "22546e2cee64" "0gbwxa3p7qkq53hwnvxcqhx8h34qmnjdxy0h3ajik4mw76vrna9s") + (mozilla-patch "icecat-bug-1341137-pt5.patch" "e5083d8a855a" "1247vbpqzf007nigbxxqd6nwgr1dxd4p8cd0dr45afqh19vhlapj") + (mozilla-patch "icecat-bug-1339122.patch" "b0d156c7445e" "026jp5bb565yvhkmmicgygcn1lmak85p0466yl1vnjlx1rc8n724"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index e3e009300f..5a1cf53336 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -98,7 +98,7 @@ arrays of data.") (define-public gstreamer (package (name "gstreamer") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) @@ -107,7 +107,7 @@ arrays of data.") version ".tar.xz")) (sha256 (base32 - "0gdnxg5igbhnpjhrzp31w1ww95j805byqd6mj3x29wli54dxrfc5")))) + "062jidnw17hkpva6ddygp80gyasyigfkpm1y7w56rk56a2pzbhjh")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -146,7 +146,7 @@ This package provides the core library and elements.") (define-public gst-plugins-base (package (name "gst-plugins-base") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) @@ -154,9 +154,11 @@ This package provides the core library and elements.") name "-" version ".tar.xz")) (sha256 (base32 - "040pifl4cgsqqz2si4s1y5khj3zwm39w21siagxwp805swbrcag6")) - (patches - (search-patches "gst-plugins-base-fix-test-on-32bit.patch")))) + "1dsyjf6rncsbg4rfj40cvf1wwpjj9h3j3c7bh4zp7jylnfv4blpn")) +; (patches +; (search-patches "gst-plugins-base-fix-test-on-32bit.patch")) + + )) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -203,7 +205,7 @@ for the GStreamer multimedia library.") (define-public gst-plugins-good (package (name "gst-plugins-good") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) @@ -212,7 +214,7 @@ for the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "0mar8ss8bvpz699ql4kgndvna8qsv7kj372py4435ffl6hzfj1sf")))) + "0zjdwxn83sp9wjp9rxjbyk8kf284g9av7l2v6rjldi586hacd1la")))) (build-system gnu-build-system) (inputs `(("aalib" ,aalib) @@ -268,14 +270,14 @@ developers consider to have good quality code and correct functionality.") (define-public gst-plugins-bad (package (name "gst-plugins-bad") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1rwla1p57yzygb68z2xk5l5kvqzj5w3nxq0davkwk139zd8r6294")))) + "0rk9rlzf2b0hjw5hwbadz53yh4ls7vm3w3cshsa3n8isdd8axp93")))) (outputs '("out" "doc")) (build-system gnu-build-system) (arguments @@ -345,7 +347,7 @@ par compared to the rest.") (define-public gst-plugins-ugly (package (name "gst-plugins-ugly") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) @@ -353,7 +355,7 @@ par compared to the rest.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "1lkb8kznc9wxmhbp7k67b50y27nz8jp2x2flb91xzydz7b89f5f9")))) + "0ngsiwcsz3jd08id4mc0qiy2q1n7h2kkvdnh3r1vm725m1ycg1k3")))) (build-system gnu-build-system) (inputs `(("gst-plugins-base" ,gst-plugins-base) @@ -384,7 +386,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") (define-public gst-libav (package (name "gst-libav") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) (uri (string-append @@ -392,7 +394,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.") name "-" version ".tar.xz")) (sha256 (base32 - "1aajayv63ardkbmcg7pnh2d87r067325a5wzinwihaw6n5jw2sws")))) + "12r68ri03mgbbwsxyn6yklgfsq32rwvyq83zw0aq7m73fp5gx83c")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-system-libav") @@ -422,7 +424,7 @@ compression formats through the use of the libav library.") (define-public python-gst (package (name "python-gst") - (version "1.10.3") + (version "1.10.4") (source (origin (method url-fetch) (uri (string-append @@ -430,7 +432,7 @@ compression formats through the use of the libav library.") "gst-python-" version ".tar.xz")) (sha256 (base32 - "1s5437bnk0j5hfg2gwfwq4b68l6vj1lfskxh73v6ikp0vw32vymx")))) + "04l2hvvz9b0f3nyds1k3yfk5di8a91fpr6maj19c11mwp1s82l2r")))) (build-system gnu-build-system) (arguments ;; XXX: Factorize python-sitedir with python-build-system. diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 0b12f3e1f8..8fdd85add9 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Adonay "adfeno" Felipe Nogueira ;;; Copyright © 2016 Amirouche ;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2017 Andy Wingo ;;; ;;; This file is part of GNU Guix. ;;; @@ -219,7 +220,7 @@ without requiring the source code to be rewritten.") (define-public guile-next (package (inherit guile-2.0) (name "guile-next") - (version "2.1.5") + (version "2.1.7") (replacement #f) (source (origin (method url-fetch) @@ -227,7 +228,7 @@ without requiring the source code to be rewritten.") version ".tar.xz")) (sha256 (base32 - "0r9y4hw17dlxahik4zsccfb2f3p2a07wqndfm251bgmam9hln6gi")) + "0qf2664bglv5rrj4c99cc7gry7v9x0sqdyzgfg8zi8gm5wbcmqda")) (modules '((guix build utils))) ;; Remove the pre-built object files. Instead, build everything @@ -428,22 +429,18 @@ more.") (define-public guile-reader (package (name "guile-reader") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-reader/guile-reader-" version ".tar.gz")) (sha256 (base32 - "020wz5w8z6g79nbqifg2n496wxwkcjzh8xizpv6mz0hczpl155ma")))) + "0592s2s8ampqmqwilc4fvcild6rb9gy79di6vxv5kcdmv23abkgx")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config) ("gperf" ,gperf))) (inputs `(("guile" ,guile-2.0))) - (arguments `(#:configure-flags - (let ((out (assoc-ref %outputs "out"))) - (list (string-append "--with-guilemoduledir=" - out "/share/guile/site/2.0"))))) (synopsis "Framework for building readers for GNU Guile") (description "Guile-Reader is a simple framework for building readers for GNU Guile. @@ -460,6 +457,9 @@ many readers as needed).") (home-page "http://www.nongnu.org/guile-reader/") (license license:gpl3+))) +(define-public guile2.2-reader + (package-for-guile-2.2 guile-reader)) + (define-public guile-ncurses (package (name "guile-ncurses") @@ -617,32 +617,29 @@ The library is shipped with documentation in Info format and usage examples.") (define-public guile-lib (package (name "guile-lib") - (version "0.2.3") + (version "0.2.5") (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/guile-lib/guile-lib-" - version ".tar.gz")) - (sha256 - (base32 - "0pwdd52vakni1fabaiav8v0ad7xp3bx8x3brijbr1mpgamm9dxqc")))) + (method url-fetch) + (uri (string-append "mirror://savannah/guile-lib/guile-lib-" + version ".tar.gz")) + (sha256 + (base32 + "1qbk485djgxqrbfjvk4b7w7y4x9xygf2qb8dqnl7885kajasx8qg")))) (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (add-before 'configure 'patch-module-dir - (lambda _ - (substitute* "src/Makefile.in" - (("^moddir = ([[:graph:]]+)") - "moddir = $(datadir)/guile/site/@GUILE_EFFECTIVE_VERSION@\n") - (("^godir = ([[:graph:]]+)") - "godir = \ + '(#:make-flags + '("GUILE_AUTO_COMPILE=0") ;to prevent guild errors + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-module-dir + (lambda _ + (substitute* "src/Makefile.in" + (("^moddir = ([[:graph:]]+)") + "moddir = $(datadir)/guile/site/@GUILE_EFFECTIVE_VERSION@\n") + (("^godir = ([[:graph:]]+)") + "godir = \ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) - #t)) - (replace 'check - (lambda _ - ;; Work around a harmless test failure involving - ;; two-spaces-after-period rendering. - (zero? (system* "make" "check" ;"-C" "unit-tests" - "XFAIL_TESTS=texinfo.serialize.scm"))))))) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("guile" ,guile-2.0))) (home-page "http://www.nongnu.org/guile-lib/") @@ -1052,6 +1049,10 @@ interface for reading articles in any format.") (home-page "http://haunt.dthompson.us") (license license:gpl3+))) +(define-public guile2.2-haunt + (package-for-guile-2.2 + (package (inherit haunt) (name "guile2.2-haunt")))) + (define-public guile-config (package (name "guile-config") @@ -1641,6 +1642,38 @@ library for GNU Guile based on the actor model. Note that 8sync is only available for Guile 2.2 (guile-next in Guix).") (license license:lgpl3+))) +(define-public guile-fibers + (package + (name "guile-fibers") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://wingolog.org/pub/fibers/fibers-" + version ".tar.gz")) + (sha256 + (base32 + "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0")))) + (build-system gnu-build-system) + (native-inputs + `(("texinfo" ,texinfo) + ("pkg-config" ,pkg-config))) + (inputs + `(("guile" ,guile-next))) + (synopsis "Lightweight concurrency facility for Guile") + (description + "Fibers is a Guile library that implements a a lightweight concurrency +facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is +like a \"goroutine\" from the Go language: a lightweight thread-like +abstraction. Systems built with Fibers can scale up to millions of concurrent +fibers, tens of thousands of concurrent socket connections, and many parallel +cores. The Fibers library also provides Concurrent ML-like channels for +communication between fibers. + +Note that Fibers makes use of some Guile 2.1/2.2-specific features and +is not available for Guile 2.0.") + (home-page "https://github.com/wingo/fibers") + (license license:lgpl3+))) + (define-public guile-git (let ((revision "0") (commit "969514aa7224217bc3c1a4c5312a9469ac5f13d5")) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 05d39ba877..05b9472395 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -43,7 +43,7 @@ (define-public feh (package (name "feh") - (version "2.18") + (version "2.18.2") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -51,7 +51,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "036lgv81d0vmrnmh1z1x360nr5avb2sk5jb1h3g5n6jijm8vzblx")))) + "09f5rfzls4h5jcrp7ylwbiljp5qzc2nbw9p2csv0pnlaixj69gil")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete 'configure %standard-phases) @@ -212,7 +212,7 @@ your images. Among its features are: (define-public catimg (package (name "catimg") - (version "2.2.1") + (version "2.2.2") (source (origin (method url-fetch) @@ -221,10 +221,10 @@ your images. Among its features are: (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "14g90zwh2d3s13hgyxypx2vc0rj1g58l6zcxhgc84wsyxfxd6xpb")))) + "1abkhrhw4r221lwn2vb8in3vmp6gxn3qlv34cqndr55v5gdpb9qz")))) (build-system cmake-build-system) (arguments - `(#:tests? #f ; No check target + `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases (replace 'configure @@ -234,20 +234,22 @@ your images. Among its features are: (substitute* "catimg" ;; By replacing "convert", we also replace the "convert" ;; in the message 'The version of convert is too old, don't - ;; expect good results :('. This should not happen, but in + ;; expect good results :('. This should not happen, but in ;; practice this error message should not affect us. (("convert") convert)) #t))) (replace 'build (lambda _ - (zero? (system* "cmake" "-D" - (string-append "CMAKE_INSTALL_PREFIX=" - (assoc-ref %outputs "out")) - ".")) - (zero? (system* "make")))) + (let* ((out (assoc-ref %outputs "out")) + (man (string-append out "/share/man/man1"))) + (zero? (system* "cmake" + (string-append "-DCMAKE_INSTALL_PREFIX=" out) + (string-append "-DMAN_OUTPUT_PATH=" man) + ".")) + (zero? (system* "make"))))) (add-before 'install 'install-script (lambda* (#:key outputs #:allow-other-keys) - ;; The bashscript lacks an file extension, we have to rename + ;; The bash script lacks an file extension. We have to rename ;; it so that the C program and the bash script can be happy ;; side by side. (let* ((out (assoc-ref outputs "out")) @@ -257,7 +259,7 @@ your images. Among its features are: (string-append bin "/catimg.sh")) #t)))))) (inputs - `(("imagemagick" ,imagemagick))) ; For the bash script version + `(("imagemagick" ,imagemagick))) ; for the bash script version (home-page "https://github.com/posva/catimg") (synopsis "Render images in the terminal") (description diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index cbdc1b39dc..fd2eefab0d 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -868,14 +868,14 @@ convert, manipulate, filter and display a wide variety of image formats.") (define-public jasper (package (name "jasper") - (version "2.0.10") + (version "2.0.12") (source (origin (method url-fetch) (uri (string-append "https://www.ece.uvic.ca/~frodo/jasper" "/software/jasper-" version ".tar.gz")) (sha256 (base32 - "1s022mfxyw8jw60fgyj60lbm9h6bc4nk2751b0in8qsjwcl59n2l")))) + "1njdbxv7d4anzrd476wjww2qsi96dd8vfnp4hri0srrqxpszl92v")))) (build-system cmake-build-system) (inputs `(("libjpeg" ,libjpeg))) (synopsis "JPEG-2000 library") diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index a58e83d725..74483965dd 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.7-7") + (version "6.9.7-9") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "02x463z31j449pfm8czb7jlpkd3nx4a3yyjxq3bhpjfq13i20d62")))) + "1fqvi6h96mfbyw292awiwsqs449sjmw6i9ib53c66nnq1zchw7l3")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") @@ -162,11 +162,12 @@ script.") (license (package-license imagemagick)))) (define-public graphicsmagick - (let ((changeset "56c8cae") ; 3e01b - (revision "1")) + (let ((changeset "6156b4c2992d855ece6079653b3b93c3229fc4b8") ; fix CVE-2017-6335 + (revision "2")) (package (name "graphicsmagick") - (version (string-append "1.3.25-" revision "." changeset)) + (version (string-append "1.3.25-" revision "." + (string-take changeset 7))) (source (origin (method hg-fetch) (uri (hg-reference @@ -179,7 +180,7 @@ script.") ;; "/GraphicsMagick-" version ".tar.xz")) (sha256 (base32 - "1s9apvkn0kxr6i4i5wlkfw1prja02rgk689n3cf822zc0dkycxdh")))) + "08yfsn8mrqkwpax43vv1crfr55rcf004wwpzsinr5c6m0asqr08b")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e7479e1b08..1d18a0b066 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Leo Famulari -;;; Copyright © 2016 Roel Janssen +;;; Copyright © 2016, 2017 Roel Janssen +;;; Copyright © 2017 Carlo Zancanaro ;;; ;;; This file is part of GNU Guix. ;;; @@ -334,454 +335,6 @@ and is best suited to building Java projects. Ant uses XML to describe the build process and its dependencies, whereas Make uses Makefile format.") (license license:asl2.0))) -(define-public icedtea-6 - (package - (name "icedtea") - (version "1.13.13") - (source (origin - (method url-fetch) - (uri (string-append - "http://icedtea.wildebeest.org/download/source/icedtea6-" - version ".tar.xz")) - (sha256 - (base32 - "0bg9sb4f7qbq77c0zf9m17p47ga0kf0r9622g9p12ysg26jd1ksg")) - (modules '((guix build utils))) - (snippet - '(substitute* "Makefile.in" - ;; link against libgcj to avoid linker error - (("-o native-ecj") - "-lgcj -o native-ecj") - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) - (build-system gnu-build-system) - (outputs '("out" ; Java Runtime Environment - "jdk" ; Java Development Kit - "doc")) ; all documentation - (arguments - `(;; There are many failing tests and many are known to fail upstream. - ;; - ;; * Hotspot VM tests: - ;; FAILED: compiler/7082949/Test7082949.java - ;; FAILED: compiler/7088020/Test7088020.java - ;; FAILED: runtime/6929067/Test6929067.sh - ;; FAILED: serviceability/sa/jmap-hashcode/Test8028623.java - ;; => Test results: passed: 161; failed: 4 - ;; - ;; * langtools tests: - ;; FAILED: com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java - ;; FAILED: tools/javac/6627362/T6627362.java - ;; FAILED: tools/javac/7003595/T7003595.java - ;; FAILED: tools/javac/7024568/T7024568.java - ;; FAILED: tools/javap/4111861/T4111861.java - ;; FAILED: tools/javap/ListTest.java - ;; FAILED: tools/javap/OptionTest.java - ;; FAILED: tools/javap/T4884240.java - ;; FAILED: tools/javap/T4975569.java - ;; --> fails because of insignificant whitespace differences - ;; in output of javap - ;; FAILED: tools/javap/T6868539.java - ;; => Test results: passed: 1,445; failed: 10 - ;; - ;; * JDK tests: - ;; Tests are incomplete because of a segfault after this test: - ;; javax/crypto/spec/RC5ParameterSpec/RC5ParameterSpecEquals.java - ;; A bug report has already been filed upstream: - ;; http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2188 - ;; - ;; The tests require xvfb-run, a wrapper script around Xvfb, which - ;; has not been packaged yet. Without it many AWT tests fail, so I - ;; made no attempts to make a list of failing JDK tests. At least - ;; 222 tests are failing of which at least 132 are AWT tests. - #:tests? #f - - ;; The DSOs use $ORIGIN to refer to each other, but (guix build - ;; gremlin) doesn't support it yet, so skip this phase. - #:validate-runpath? #f - - #:modules ((guix build utils) - (guix build gnu-build-system) - (ice-9 popen) - (ice-9 rdelim) - (srfi srfi-19)) - - #:configure-flags - (let* ((gcjdir (assoc-ref %build-inputs "gcj")) - (ecj (string-append gcjdir "/share/java/ecj.jar")) - (jdk (string-append gcjdir "/lib/jvm/")) - (gcj (string-append gcjdir "/bin/gcj"))) - `("--enable-bootstrap" - "--enable-nss" - "--without-rhino" - "--disable-downloading" - "--disable-tests" ;they are run in the check phase instead - "--with-openjdk-src-dir=./openjdk.src" - ,(string-append "--with-javac=" jdk "/bin/javac") - ,(string-append "--with-ecj-jar=" ecj) - ,(string-append "--with-gcj=" gcj) - ,(string-append "--with-jdk-home=" jdk) - ,(string-append "--with-java=" jdk "/bin/java"))) - #:phases - (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (begin - (chdir (string-append "icedtea6-" ,version)) - (mkdir "openjdk.src") - (with-directory-excursion "openjdk.src" - (copy-file (assoc-ref inputs "openjdk6-src") - "openjdk6-src.tar.xz") - (zero? (system* "tar" "xvf" "openjdk6-src.tar.xz"))))))) - (add-after 'unpack 'patch-patches - (lambda _ - ;; shebang in patches so that they apply cleanly - (substitute* '("patches/jtreg-jrunscript.patch" - "patches/hotspot/hs23/drop_unlicensed_test.patch") - (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)) - (add-after 'unpack 'patch-paths - (lambda _ - ;; buildtree.make generates shell scripts, so we need to replace - ;; the generated shebang - (substitute* '("openjdk.src/hotspot/make/linux/makefiles/buildtree.make") - (("/bin/sh") (which "bash"))) - - (let ((corebin (string-append - (assoc-ref %build-inputs "coreutils") "/bin/")) - (binbin (string-append - (assoc-ref %build-inputs "binutils") "/bin/")) - (grepbin (string-append - (assoc-ref %build-inputs "grep") "/bin/"))) - (substitute* '("openjdk.src/jdk/make/common/shared/Defs-linux.gmk" - "openjdk.src/corba/make/common/shared/Defs-linux.gmk") - (("UNIXCOMMAND_PATH = /bin/") - (string-append "UNIXCOMMAND_PATH = " corebin)) - (("USRBIN_PATH = /usr/bin/") - (string-append "USRBIN_PATH = " corebin)) - (("DEVTOOLS_PATH *= */usr/bin/") - (string-append "DEVTOOLS_PATH = " corebin)) - (("COMPILER_PATH *= */usr/bin/") - (string-append "COMPILER_PATH = " - (assoc-ref %build-inputs "gcc") "/bin/")) - (("DEF_OBJCOPY *=.*objcopy") - (string-append "DEF_OBJCOPY = " (which "objcopy")))) - - ;; fix path to alsa header - (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" - (("ALSA_INCLUDE=/usr/include/alsa/version.h") - (string-append "ALSA_INCLUDE=" - (assoc-ref %build-inputs "alsa-lib") - "/include/alsa/version.h"))) - - ;; fix hard-coded utility paths - (substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk" - "openjdk.src/corba/make/common/shared/Defs-utils.gmk") - (("ECHO *=.*echo") - (string-append "ECHO = " (which "echo"))) - (("^GREP *=.*grep") - (string-append "GREP = " (which "grep"))) - (("EGREP *=.*egrep") - (string-append "EGREP = " (which "egrep"))) - (("CPIO *=.*cpio") - (string-append "CPIO = " (which "cpio"))) - (("READELF *=.*readelf") - (string-append "READELF = " (which "readelf"))) - (("^ *AR *=.*ar") - (string-append "AR = " (which "ar"))) - (("^ *TAR *=.*tar") - (string-append "TAR = " (which "tar"))) - (("AS *=.*as") - (string-append "AS = " (which "as"))) - (("LD *=.*ld") - (string-append "LD = " (which "ld"))) - (("STRIP *=.*strip") - (string-append "STRIP = " (which "strip"))) - (("NM *=.*nm") - (string-append "NM = " (which "nm"))) - (("^SH *=.*sh") - (string-append "SH = " (which "bash"))) - (("^FIND *=.*find") - (string-append "FIND = " (which "find"))) - (("LDD *=.*ldd") - (string-append "LDD = " (which "ldd"))) - (("NAWK *=.*(n|g)awk") - (string-append "NAWK = " (which "gawk"))) - (("XARGS *=.*xargs") - (string-append "XARGS = " (which "xargs"))) - (("UNZIP *=.*unzip") - (string-append "UNZIP = " (which "unzip"))) - (("ZIPEXE *=.*zip") - (string-append "ZIPEXE = " (which "zip"))) - (("SED *=.*sed") - (string-append "SED = " (which "sed")))) - - ;; Some of these timestamps cause problems as they are more than - ;; 10 years ago, failing the build process. - (substitute* - "openjdk.src/jdk/src/share/classes/java/util/CurrencyData.properties" - (("AZ=AZM;2005-12-31-20-00-00;AZN") "AZ=AZN") - (("MZ=MZM;2006-06-30-22-00-00;MZN") "MZ=MZN") - (("RO=ROL;2005-06-30-21-00-00;RON") "RO=RON") - (("TR=TRL;2004-12-31-22-00-00;TRY") "TR=TRY"))))) - (add-before 'configure 'set-additional-paths - (lambda* (#:key inputs #:allow-other-keys) - (let* ((gcjdir (assoc-ref %build-inputs "gcj")) - (gcjlib (string-append gcjdir "/lib")) - ;; Get target-specific include directory so that - ;; libgcj-config.h is found when compiling hotspot. - (gcjinclude (let* ((port (open-input-pipe "gcj -print-file-name=include")) - (str (read-line port))) - (close-pipe port) - str))) - (setenv "CPATH" - (string-append gcjinclude ":" - (assoc-ref %build-inputs "libxrender") - "/include/X11/extensions" ":" - (assoc-ref %build-inputs "libxtst") - "/include/X11/extensions" ":" - (assoc-ref %build-inputs "libxinerama") - "/include/X11/extensions" ":" - (or (getenv "CPATH") ""))) - (setenv "ALT_CUPS_HEADERS_PATH" - (string-append (assoc-ref %build-inputs "cups") - "/include")) - (setenv "ALT_FREETYPE_HEADERS_PATH" - (string-append (assoc-ref %build-inputs "freetype") - "/include")) - (setenv "ALT_FREETYPE_LIB_PATH" - (string-append (assoc-ref %build-inputs "freetype") - "/lib"))))) - (add-before 'check 'fix-test-framework - (lambda _ - ;; Fix PATH in test environment - (substitute* "src/jtreg/com/sun/javatest/regtest/Main.java" - (("PATH=/bin:/usr/bin") - (string-append "PATH=" (getenv "PATH")))) - (substitute* "src/jtreg/com/sun/javatest/util/SysEnv.java" - (("/usr/bin/env") (which "env"))) - #t)) - (add-before 'check 'fix-hotspot-tests - (lambda _ - (with-directory-excursion "openjdk.src/hotspot/test/" - (substitute* "jprt.config" - (("PATH=\"\\$\\{path4sdk\\}\"") - (string-append "PATH=" (getenv "PATH"))) - (("make=/usr/bin/make") - (string-append "make=" (which "make")))) - (substitute* '("runtime/6626217/Test6626217.sh" - "runtime/7110720/Test7110720.sh") - (("/bin/rm") (which "rm")) - (("/bin/cp") (which "cp")) - (("/bin/mv") (which "mv")))) - #t)) - (add-before 'check 'fix-jdk-tests - (lambda _ - (with-directory-excursion "openjdk.src/jdk/test/" - (substitute* "com/sun/jdi/JdbReadTwiceTest.sh" - (("/bin/pwd") (which "pwd"))) - (substitute* "com/sun/jdi/ShellScaffold.sh" - (("/bin/kill") (which "kill"))) - (substitute* "start-Xvfb.sh" - ;;(("/usr/bin/X11/Xvfb") (which "Xvfb")) - (("/usr/bin/nohup") (which "nohup"))) - (substitute* "javax/security/auth/Subject/doAs/Test.sh" - (("/bin/rm") (which "rm"))) - (substitute* "tools/launcher/MultipleJRE.sh" - (("echo \"#!/bin/sh\"") - (string-append "echo \"#!" (which "rm") "\"")) - (("/usr/bin/zip") (which "zip"))) - (substitute* "com/sun/jdi/OnThrowTest.java" - (("#!/bin/sh") (string-append "#!" (which "sh")))) - (substitute* "java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java" - (("/usr/bin/uptime") (which "uptime"))) - (substitute* "java/lang/ProcessBuilder/Basic.java" - (("/usr/bin/env") (which "env")) - (("/bin/false") (which "false")) - (("/bin/true") (which "true")) - (("/bin/cp") (which "cp")) - (("/bin/sh") (which "sh"))) - (substitute* "java/lang/ProcessBuilder/FeelingLucky.java" - (("/bin/sh") (which "sh"))) - (substitute* "java/lang/ProcessBuilder/Zombies.java" - (("/usr/bin/perl") (which "perl")) - (("/bin/ps") (which "ps")) - (("/bin/true") (which "true"))) - (substitute* "java/lang/Runtime/exec/ConcurrentRead.java" - (("/usr/bin/tee") (which "tee"))) - (substitute* "java/lang/Runtime/exec/ExecWithDir.java" - (("/bin/true") (which "true"))) - (substitute* "java/lang/Runtime/exec/ExecWithInput.java" - (("/bin/cat") (which "cat"))) - (substitute* "java/lang/Runtime/exec/ExitValue.java" - (("/bin/sh") (which "sh")) - (("/bin/true") (which "true")) - (("/bin/kill") (which "kill"))) - (substitute* "java/lang/Runtime/exec/LotsOfDestroys.java" - (("/usr/bin/echo") (which "echo"))) - (substitute* "java/lang/Runtime/exec/LotsOfOutput.java" - (("/usr/bin/cat") (which "cat"))) - (substitute* "java/lang/Runtime/exec/SleepyCat.java" - (("/bin/cat") (which "cat")) - (("/bin/sleep") (which "sleep")) - (("/bin/sh") (which "sh"))) - (substitute* "java/lang/Runtime/exec/StreamsSurviveDestroy.java" - (("/bin/cat") (which "cat"))) - (substitute* "java/rmi/activation/CommandEnvironment/SetChildEnv.java" - (("/bin/chmod") (which "chmod"))) - (substitute* "java/util/zip/ZipFile/Assortment.java" - (("/bin/sh") (which "sh")))) - #t)) - (replace 'check - (lambda _ - ;; The "make check-*" targets always return zero, so we need to - ;; check for errors in the associated log files to determine - ;; whether any tests have failed. - (use-modules (ice-9 rdelim)) - (let* ((error-pattern (make-regexp "^(Error|FAILED):.*")) - (checker (lambda (port) - (let loop () - (let ((line (read-line port))) - (cond - ((eof-object? line) #t) - ((regexp-exec error-pattern line) #f) - (else (loop))))))) - (run-test (lambda (test) - (system* "make" test) - (call-with-input-file - (string-append "test/" test ".log") - checker)))) - (or #t ; skip tests - (and (run-test "check-hotspot") - (run-test "check-langtools") - (run-test "check-jdk")))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc (string-append (assoc-ref outputs "doc") - "/share/doc/icedtea")) - (jre (assoc-ref outputs "out")) - (jdk (assoc-ref outputs "jdk"))) - (copy-recursively "openjdk.build/docs" doc) - (copy-recursively "openjdk.build/j2re-image" jre) - (copy-recursively "openjdk.build/j2sdk-image" jdk)))) - ;; By default IcedTea only generates an empty keystore. In order to - ;; be able to use certificates in Java programs we need to generate a - ;; keystore from a set of certificates. For convenience we use the - ;; certificates from the nss-certs package. - (add-after 'install 'install-keystore - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((keystore "cacerts") - (certs-dir (string-append (assoc-ref inputs "nss-certs") - "/etc/ssl/certs")) - (keytool (string-append (assoc-ref outputs "jdk") - "/bin/keytool"))) - (define (extract-cert file target) - (call-with-input-file file - (lambda (in) - (call-with-output-file target - (lambda (out) - (let loop ((line (read-line in 'concat)) - (copying? #f)) - (cond - ((eof-object? line) #t) - ((string-prefix? "-----BEGIN" line) - (display line out) - (loop (read-line in 'concat) #t)) - ((string-prefix? "-----END" line) - (display line out) - #t) - (else - (when copying? (display line out)) - (loop (read-line in 'concat) copying?))))))))) - (define (import-cert cert) - (format #t "Importing certificate ~a\n" (basename cert)) - (let ((temp "tmpcert")) - (extract-cert cert temp) - (let ((port (open-pipe* OPEN_WRITE keytool - "-import" - "-alias" (basename cert) - "-keystore" keystore - "-storepass" "changeit" - "-file" temp))) - (display "yes\n" port) - (when (not (zero? (status:exit-val (close-pipe port)))) - (error "failed to import" cert))) - (delete-file temp))) - - ;; This is necessary because the certificate directory contains - ;; files with non-ASCII characters in their names. - (setlocale LC_ALL "en_US.utf8") - (setenv "LC_ALL" "en_US.utf8") - - (for-each import-cert (find-files certs-dir "\\.pem$")) - (mkdir-p (string-append (assoc-ref outputs "out") - "/lib/security")) - (mkdir-p (string-append (assoc-ref outputs "jdk") - "/jre/lib/security")) - (install-file keystore - (string-append (assoc-ref outputs "out") - "/lib/security")) - (install-file keystore - (string-append (assoc-ref outputs "jdk") - "/jre/lib/security")) - #t)))))) - (native-inputs - `(("ant" ,ant) - ("alsa-lib" ,alsa-lib) - ("attr" ,attr) - ("autoconf" ,autoconf) - ("automake" ,automake) - ("coreutils" ,coreutils) - ("diffutils" ,diffutils) ;for tests - ("gawk" ,gawk) - ("grep" ,grep) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config) - ("cups" ,cups) - ("wget" ,wget) - ("which" ,which) - ("cpio" ,cpio) - ("zip" ,zip) - ("unzip" ,unzip) - ("fastjar" ,fastjar) - ("libxslt" ,libxslt) ;for xsltproc - ("mit-krb5" ,mit-krb5) - ("nss" ,nss) - ("nss-certs" ,nss-certs) - ("libx11" ,libx11) - ("libxcomposite" ,libxcomposite) - ("libxt" ,libxt) - ("libxtst" ,libxtst) - ("libxi" ,libxi) - ("libxinerama" ,libxinerama) - ("libxrender" ,libxrender) - ("libjpeg" ,libjpeg) - ("libpng" ,libpng) - ("giflib" ,giflib) - ("perl" ,perl) - ("procps" ,procps) ;for "free", even though I'm not sure we should use it - ("openjdk6-src" - ,(origin - (method url-fetch) - (uri "https://java.net/downloads/openjdk6/openjdk-6-src-b41-04_jan_2017.tar.xz") - (sha256 - (base32 - "058szix0j280g14jzajvsixx1j2dxmc10r848f5swpy6rr8x8d4f")))) - ("lcms" ,lcms) - ("zlib" ,zlib) - ("gtk" ,gtk+-2) - ("fontconfig" ,fontconfig) - ("freetype" ,freetype) - ("gcj" ,gcj))) - (home-page "http://icedtea.classpath.org") - (synopsis "Java development kit") - (description - "The OpenJDK built with the IcedTea build harness.") - ;; IcedTea is released under the GPL2 + Classpath exception, which is the - ;; same license as both GNU Classpath and OpenJDK. - (license license:gpl2+))) - (define-public icedtea-7 (let* ((version "2.6.9") (drop (lambda (name hash) @@ -791,7 +344,8 @@ build process and its dependencies, whereas Make uses Makefile format.") "http://icedtea.classpath.org/download/drops/" "/icedtea7/" version "/" name ".tar.bz2")) (sha256 (base32 hash)))))) - (package (inherit icedtea-6) + (package + (name "icedtea") (version version) (source (origin (method url-fetch) @@ -810,6 +364,10 @@ build process and its dependencies, whereas Make uses Makefile format.") ;; do not leak information about the build host (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + (build-system gnu-build-system) + (outputs '("out" ; Java Runtime Environment + "jdk" ; Java Development Kit + "doc")) ; all documentation (arguments `(;; There are many test failures. Some are known to ;; fail upstream, others relate to not having an X @@ -820,110 +378,390 @@ build process and its dependencies, whereas Make uses Makefile format.") ;; langtools: passed: 1,934; failed: 26 ;; jdk: unknown #:tests? #f + + ;; The DSOs use $ORIGIN to refer to each other, but (guix build + ;; gremlin) doesn't support it yet, so skip this phase. + #:validate-runpath? #f + ;; Apparently, the C locale is needed for some of the tests. #:locale "C" - ,@(substitute-keyword-arguments (package-arguments icedtea-6) - ((#:modules modules) - `((ice-9 match) - (srfi srfi-26) - ,@modules)) - ((#:configure-flags flags) - ;; TODO: package pcsc and sctp, and add to inputs - `(append '("--disable-system-pcsc" - "--disable-system-sctp") - ,flags)) - ((#:phases phases) - `(modify-phases ,phases - (replace 'unpack - (lambda* (#:key source inputs #:allow-other-keys) - (let ((target (string-append "icedtea-" ,version)) - (unpack (lambda* (name #:optional dir) - (let ((dir (or dir - (string-drop-right name 5)))) - (mkdir dir) - (zero? (system* "tar" "xvf" - (assoc-ref inputs name) - "-C" dir - "--strip-components=1")))))) - (mkdir target) - (and - (zero? (system* "tar" "xvf" source - "-C" target "--strip-components=1")) - (chdir target) - (unpack "openjdk-src" "openjdk.src") - (with-directory-excursion "openjdk.src" - (for-each unpack - (filter (cut string-suffix? "-drop" <>) - (map (match-lambda - ((name . _) name)) - inputs)))) - #t)))) - (replace - 'set-additional-paths - (lambda* (#:key inputs #:allow-other-keys) - (let (;; Get target-specific include directory so that - ;; libgcj-config.h is found when compiling hotspot. - (gcjinclude (let* ((port (open-input-pipe "gcj -print-file-name=include")) - (str (read-line port))) - (close-pipe port) - str))) - (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" - (("ALSA_INCLUDE=/usr/include/alsa/version.h") - (string-append "ALSA_INCLUDE=" - (assoc-ref inputs "alsa-lib") - "/include/alsa/version.h"))) - (setenv "CC" "gcc") - (setenv "CPATH" - (string-append gcjinclude ":" - (assoc-ref inputs "libxcomposite") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxrender") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxtst") - "/include/X11/extensions" ":" - (assoc-ref inputs "libxinerama") - "/include/X11/extensions" ":" - (or (getenv "CPATH") ""))) - (setenv "ALT_OBJCOPY" (which "objcopy")) - (setenv "ALT_CUPS_HEADERS_PATH" - (string-append (assoc-ref inputs "cups") - "/include")) - (setenv "ALT_FREETYPE_HEADERS_PATH" - (string-append (assoc-ref inputs "freetype") - "/include")) - (setenv "ALT_FREETYPE_LIB_PATH" - (string-append (assoc-ref inputs "freetype") - "/lib"))))) - (add-after - 'unpack 'fix-x11-extension-include-path - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk" - (((string-append "\\$\\(firstword \\$\\(wildcard " - "\\$\\(OPENWIN_HOME\\)" - "/include/X11/extensions\\).*$")) - (string-append (assoc-ref inputs "libxrender") - "/include/X11/extensions" - " -I" (assoc-ref inputs "libxtst") - "/include/X11/extensions" - " -I" (assoc-ref inputs "libxinerama") - "/include/X11/extensions")) - (("\\$\\(wildcard /usr/include/X11/extensions\\)\\)") "")) - #t)) - (replace - 'fix-test-framework - (lambda _ - ;; Fix PATH in test environment - (substitute* "test/jtreg/com/sun/javatest/regtest/Main.java" - (("PATH=/bin:/usr/bin") - (string-append "PATH=" (getenv "PATH")))) - (substitute* "test/jtreg/com/sun/javatest/util/SysEnv.java" - (("/usr/bin/env") (which "env"))) - (substitute* "openjdk.src/hotspot/test/test_env.sh" - (("/bin/rm") (which "rm")) - (("/bin/cp") (which "cp")) - (("/bin/mv") (which "mv"))) - #t)) - (delete 'patch-patches)))))) + + #:modules ((guix build utils) + (guix build gnu-build-system) + (ice-9 match) + (ice-9 popen) + (ice-9 rdelim) + (srfi srfi-19) + (srfi srfi-26)) + + #:configure-flags + (let* ((gcjdir (assoc-ref %build-inputs "gcj")) + (ecj (string-append gcjdir "/share/java/ecj.jar")) + (jdk (string-append gcjdir "/lib/jvm/")) + (gcj (string-append gcjdir "/bin/gcj"))) + ;; TODO: package pcsc and sctp, and add to inputs + `("--disable-system-pcsc" + "--disable-system-sctp" + "--enable-bootstrap" + "--enable-nss" + "--without-rhino" + "--disable-downloading" + "--disable-tests" ;they are run in the check phase instead + "--with-openjdk-src-dir=./openjdk.src" + ,(string-append "--with-javac=" jdk "/bin/javac") + ,(string-append "--with-ecj-jar=" ecj) + ,(string-append "--with-gcj=" gcj) + ,(string-append "--with-jdk-home=" jdk) + ,(string-append "--with-java=" jdk "/bin/java"))) + + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source inputs #:allow-other-keys) + (let ((target (string-append "icedtea-" ,version)) + (unpack (lambda* (name #:optional dir) + (let ((dir (or dir + (string-drop-right name 5)))) + (mkdir dir) + (zero? (system* "tar" "xvf" + (assoc-ref inputs name) + "-C" dir + "--strip-components=1")))))) + (mkdir target) + (and + (zero? (system* "tar" "xvf" source + "-C" target "--strip-components=1")) + (chdir target) + (unpack "openjdk-src" "openjdk.src") + (with-directory-excursion "openjdk.src" + (for-each unpack + (filter (cut string-suffix? "-drop" <>) + (map (match-lambda + ((name . _) name)) + inputs)))) + #t)))) + (add-after 'unpack 'fix-x11-extension-include-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk" + (((string-append "\\$\\(firstword \\$\\(wildcard " + "\\$\\(OPENWIN_HOME\\)" + "/include/X11/extensions\\).*$")) + (string-append (assoc-ref inputs "libxrender") + "/include/X11/extensions" + " -I" (assoc-ref inputs "libxtst") + "/include/X11/extensions" + " -I" (assoc-ref inputs "libxinerama") + "/include/X11/extensions")) + (("\\$\\(wildcard /usr/include/X11/extensions\\)\\)") "")) + #t)) + (add-after 'unpack 'patch-paths + (lambda _ + ;; buildtree.make generates shell scripts, so we need to replace + ;; the generated shebang + (substitute* '("openjdk.src/hotspot/make/linux/makefiles/buildtree.make") + (("/bin/sh") (which "bash"))) + + (let ((corebin (string-append + (assoc-ref %build-inputs "coreutils") "/bin/")) + (binbin (string-append + (assoc-ref %build-inputs "binutils") "/bin/")) + (grepbin (string-append + (assoc-ref %build-inputs "grep") "/bin/"))) + (substitute* '("openjdk.src/jdk/make/common/shared/Defs-linux.gmk" + "openjdk.src/corba/make/common/shared/Defs-linux.gmk") + (("UNIXCOMMAND_PATH = /bin/") + (string-append "UNIXCOMMAND_PATH = " corebin)) + (("USRBIN_PATH = /usr/bin/") + (string-append "USRBIN_PATH = " corebin)) + (("DEVTOOLS_PATH *= */usr/bin/") + (string-append "DEVTOOLS_PATH = " corebin)) + (("COMPILER_PATH *= */usr/bin/") + (string-append "COMPILER_PATH = " + (assoc-ref %build-inputs "gcc") "/bin/")) + (("DEF_OBJCOPY *=.*objcopy") + (string-append "DEF_OBJCOPY = " (which "objcopy")))) + + ;; fix path to alsa header + (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" + (("ALSA_INCLUDE=/usr/include/alsa/version.h") + (string-append "ALSA_INCLUDE=" + (assoc-ref %build-inputs "alsa-lib") + "/include/alsa/version.h"))) + + ;; fix hard-coded utility paths + (substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk" + "openjdk.src/corba/make/common/shared/Defs-utils.gmk") + (("ECHO *=.*echo") + (string-append "ECHO = " (which "echo"))) + (("^GREP *=.*grep") + (string-append "GREP = " (which "grep"))) + (("EGREP *=.*egrep") + (string-append "EGREP = " (which "egrep"))) + (("CPIO *=.*cpio") + (string-append "CPIO = " (which "cpio"))) + (("READELF *=.*readelf") + (string-append "READELF = " (which "readelf"))) + (("^ *AR *=.*ar") + (string-append "AR = " (which "ar"))) + (("^ *TAR *=.*tar") + (string-append "TAR = " (which "tar"))) + (("AS *=.*as") + (string-append "AS = " (which "as"))) + (("LD *=.*ld") + (string-append "LD = " (which "ld"))) + (("STRIP *=.*strip") + (string-append "STRIP = " (which "strip"))) + (("NM *=.*nm") + (string-append "NM = " (which "nm"))) + (("^SH *=.*sh") + (string-append "SH = " (which "bash"))) + (("^FIND *=.*find") + (string-append "FIND = " (which "find"))) + (("LDD *=.*ldd") + (string-append "LDD = " (which "ldd"))) + (("NAWK *=.*(n|g)awk") + (string-append "NAWK = " (which "gawk"))) + (("XARGS *=.*xargs") + (string-append "XARGS = " (which "xargs"))) + (("UNZIP *=.*unzip") + (string-append "UNZIP = " (which "unzip"))) + (("ZIPEXE *=.*zip") + (string-append "ZIPEXE = " (which "zip"))) + (("SED *=.*sed") + (string-append "SED = " (which "sed")))) + + ;; Some of these timestamps cause problems as they are more than + ;; 10 years ago, failing the build process. + (substitute* + "openjdk.src/jdk/src/share/classes/java/util/CurrencyData.properties" + (("AZ=AZM;2005-12-31-20-00-00;AZN") "AZ=AZN") + (("MZ=MZM;2006-06-30-22-00-00;MZN") "MZ=MZN") + (("RO=ROL;2005-06-30-21-00-00;RON") "RO=RON") + (("TR=TRL;2004-12-31-22-00-00;TRY") "TR=TRY"))) + #t)) + (add-before 'configure 'set-additional-paths + (lambda* (#:key inputs #:allow-other-keys) + (let ( ;; Get target-specific include directory so that + ;; libgcj-config.h is found when compiling hotspot. + (gcjinclude (let* ((port (open-input-pipe "gcj -print-file-name=include")) + (str (read-line port))) + (close-pipe port) + str))) + (substitute* "openjdk.src/jdk/make/common/shared/Sanity.gmk" + (("ALSA_INCLUDE=/usr/include/alsa/version.h") + (string-append "ALSA_INCLUDE=" + (assoc-ref inputs "alsa-lib") + "/include/alsa/version.h"))) + (setenv "CC" "gcc") + (setenv "CPATH" + (string-append gcjinclude ":" + (assoc-ref inputs "libxcomposite") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxrender") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxtst") + "/include/X11/extensions" ":" + (assoc-ref inputs "libxinerama") + "/include/X11/extensions" ":" + (or (getenv "CPATH") ""))) + (setenv "ALT_OBJCOPY" (which "objcopy")) + (setenv "ALT_CUPS_HEADERS_PATH" + (string-append (assoc-ref inputs "cups") + "/include")) + (setenv "ALT_FREETYPE_HEADERS_PATH" + (string-append (assoc-ref inputs "freetype") + "/include")) + (setenv "ALT_FREETYPE_LIB_PATH" + (string-append (assoc-ref inputs "freetype") + "/lib"))) + #t)) + (add-before 'check 'fix-test-framework + (lambda _ + ;; Fix PATH in test environment + (substitute* "test/jtreg/com/sun/javatest/regtest/Main.java" + (("PATH=/bin:/usr/bin") + (string-append "PATH=" (getenv "PATH")))) + (substitute* "test/jtreg/com/sun/javatest/util/SysEnv.java" + (("/usr/bin/env") (which "env"))) + (substitute* "openjdk.src/hotspot/test/test_env.sh" + (("/bin/rm") (which "rm")) + (("/bin/cp") (which "cp")) + (("/bin/mv") (which "mv"))) + #t)) + (add-before 'check 'fix-hotspot-tests + (lambda _ + (with-directory-excursion "openjdk.src/hotspot/test/" + (substitute* "jprt.config" + (("PATH=\"\\$\\{path4sdk\\}\"") + (string-append "PATH=" (getenv "PATH"))) + (("make=/usr/bin/make") + (string-append "make=" (which "make")))) + (substitute* '("runtime/6626217/Test6626217.sh" + "runtime/7110720/Test7110720.sh") + (("/bin/rm") (which "rm")) + (("/bin/cp") (which "cp")) + (("/bin/mv") (which "mv")))) + #t)) + (add-before 'check 'fix-jdk-tests + (lambda _ + (with-directory-excursion "openjdk.src/jdk/test/" + (substitute* "com/sun/jdi/JdbReadTwiceTest.sh" + (("/bin/pwd") (which "pwd"))) + (substitute* "com/sun/jdi/ShellScaffold.sh" + (("/bin/kill") (which "kill"))) + (substitute* "start-Xvfb.sh" + ;;(("/usr/bin/X11/Xvfb") (which "Xvfb")) + (("/usr/bin/nohup") (which "nohup"))) + (substitute* "javax/security/auth/Subject/doAs/Test.sh" + (("/bin/rm") (which "rm"))) + (substitute* "tools/launcher/MultipleJRE.sh" + (("echo \"#!/bin/sh\"") + (string-append "echo \"#!" (which "rm") "\"")) + (("/usr/bin/zip") (which "zip"))) + (substitute* "com/sun/jdi/OnThrowTest.java" + (("#!/bin/sh") (string-append "#!" (which "sh")))) + (substitute* "java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java" + (("/usr/bin/uptime") (which "uptime"))) + (substitute* "java/lang/ProcessBuilder/Basic.java" + (("/usr/bin/env") (which "env")) + (("/bin/false") (which "false")) + (("/bin/true") (which "true")) + (("/bin/cp") (which "cp")) + (("/bin/sh") (which "sh"))) + (substitute* "java/lang/ProcessBuilder/FeelingLucky.java" + (("/bin/sh") (which "sh"))) + (substitute* "java/lang/ProcessBuilder/Zombies.java" + (("/usr/bin/perl") (which "perl")) + (("/bin/ps") (which "ps")) + (("/bin/true") (which "true"))) + (substitute* "java/lang/Runtime/exec/ConcurrentRead.java" + (("/usr/bin/tee") (which "tee"))) + (substitute* "java/lang/Runtime/exec/ExecWithDir.java" + (("/bin/true") (which "true"))) + (substitute* "java/lang/Runtime/exec/ExecWithInput.java" + (("/bin/cat") (which "cat"))) + (substitute* "java/lang/Runtime/exec/ExitValue.java" + (("/bin/sh") (which "sh")) + (("/bin/true") (which "true")) + (("/bin/kill") (which "kill"))) + (substitute* "java/lang/Runtime/exec/LotsOfDestroys.java" + (("/usr/bin/echo") (which "echo"))) + (substitute* "java/lang/Runtime/exec/LotsOfOutput.java" + (("/usr/bin/cat") (which "cat"))) + (substitute* "java/lang/Runtime/exec/SleepyCat.java" + (("/bin/cat") (which "cat")) + (("/bin/sleep") (which "sleep")) + (("/bin/sh") (which "sh"))) + (substitute* "java/lang/Runtime/exec/StreamsSurviveDestroy.java" + (("/bin/cat") (which "cat"))) + (substitute* "java/rmi/activation/CommandEnvironment/SetChildEnv.java" + (("/bin/chmod") (which "chmod"))) + (substitute* "java/util/zip/ZipFile/Assortment.java" + (("/bin/sh") (which "sh")))) + #t)) + (replace 'check + (lambda _ + ;; The "make check-*" targets always return zero, so we need to + ;; check for errors in the associated log files to determine + ;; whether any tests have failed. + (use-modules (ice-9 rdelim)) + (let* ((error-pattern (make-regexp "^(Error|FAILED):.*")) + (checker (lambda (port) + (let loop () + (let ((line (read-line port))) + (cond + ((eof-object? line) #t) + ((regexp-exec error-pattern line) #f) + (else (loop))))))) + (run-test (lambda (test) + (system* "make" test) + (call-with-input-file + (string-append "test/" test ".log") + checker)))) + (or #t ; skip tests + (and (run-test "check-hotspot") + (run-test "check-langtools") + (run-test "check-jdk")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/icedtea")) + (jre (assoc-ref outputs "out")) + (jdk (assoc-ref outputs "jdk"))) + (copy-recursively "openjdk.build/docs" doc) + (copy-recursively "openjdk.build/j2re-image" jre) + (copy-recursively "openjdk.build/j2sdk-image" jdk)) + #t)) + ;; By default IcedTea only generates an empty keystore. In order to + ;; be able to use certificates in Java programs we need to generate a + ;; keystore from a set of certificates. For convenience we use the + ;; certificates from the nss-certs package. + (add-after 'install 'install-keystore + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((keystore "cacerts") + (certs-dir (string-append (assoc-ref inputs "nss-certs") + "/etc/ssl/certs")) + (keytool (string-append (assoc-ref outputs "jdk") + "/bin/keytool"))) + (define (extract-cert file target) + (call-with-input-file file + (lambda (in) + (call-with-output-file target + (lambda (out) + (let loop ((line (read-line in 'concat)) + (copying? #f)) + (cond + ((eof-object? line) #t) + ((string-prefix? "-----BEGIN" line) + (display line out) + (loop (read-line in 'concat) #t)) + ((string-prefix? "-----END" line) + (display line out) + #t) + (else + (when copying? (display line out)) + (loop (read-line in 'concat) copying?))))))))) + (define (import-cert cert) + (format #t "Importing certificate ~a\n" (basename cert)) + (let ((temp "tmpcert")) + (extract-cert cert temp) + (let ((port (open-pipe* OPEN_WRITE keytool + "-import" + "-alias" (basename cert) + "-keystore" keystore + "-storepass" "changeit" + "-file" temp))) + (display "yes\n" port) + (when (not (zero? (status:exit-val (close-pipe port)))) + (format #t "failed to import ~a\n" cert))) + (delete-file temp))) + + ;; This is necessary because the certificate directory contains + ;; files with non-ASCII characters in their names. + (setlocale LC_ALL "en_US.utf8") + (setenv "LC_ALL" "en_US.utf8") + + (for-each import-cert (find-files certs-dir "\\.pem$")) + (mkdir-p (string-append (assoc-ref outputs "out") + "/lib/security")) + (mkdir-p (string-append (assoc-ref outputs "jdk") + "/jre/lib/security")) + + ;; The cacerts files we are going to overwrite are chmod'ed as + ;; read-only (444) in icedtea-8 (which derives from this + ;; package). We have to change this so we can overwrite them. + (chmod (string-append (assoc-ref outputs "out") + "/lib/security/" keystore) #o644) + (chmod (string-append (assoc-ref outputs "jdk") + "/jre/lib/security/" keystore) #o644) + + (install-file keystore + (string-append (assoc-ref outputs "out") + "/lib/security")) + (install-file keystore + (string-append (assoc-ref outputs "jdk") + "/jre/lib/security")) + #t)))))) (native-inputs `(("openjdk-src" ,(drop "openjdk" @@ -946,11 +784,55 @@ build process and its dependencies, whereas Make uses Makefile format.") ("hotspot-drop" ,(drop "hotspot" "16ijxy8br8dla339m4i90wr9xpf7s8z3nrhfyxm7jahr8injpzyl")) - ,@(fold alist-delete (package-native-inputs icedtea-6) - '("openjdk6-src")))) + ("ant" ,ant) + ("attr" ,attr) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("coreutils" ,coreutils) + ("diffutils" ,diffutils) ;for tests + ("gawk" ,gawk) + ("grep" ,grep) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ("wget" ,wget) + ("which" ,which) + ("cpio" ,cpio) + ("zip" ,zip) + ("unzip" ,unzip) + ("fastjar" ,fastjar) + ("libxslt" ,libxslt) ;for xsltproc + ("nss-certs" ,nss-certs) + ("perl" ,perl) + ("procps" ,procps) ;for "free", even though I'm not sure we should use it + ("gcj" ,gcj))) (inputs - `(("libxcomposite" ,libxcomposite) - ,@(package-inputs icedtea-6)))))) + `(("alsa-lib" ,alsa-lib) + ("cups" ,cups) + ("libx11" ,libx11) + ("libxcomposite" ,libxcomposite) + ("libxt" ,libxt) + ("libxtst" ,libxtst) + ("libxi" ,libxi) + ("libxinerama" ,libxinerama) + ("libxrender" ,libxrender) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("mit-krb5" ,mit-krb5) + ("nss" ,nss) + ("giflib" ,giflib) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("lcms" ,lcms) + ("zlib" ,zlib) + ("gtk" ,gtk+-2))) + (home-page "http://icedtea.classpath.org") + (synopsis "Java development kit") + (description + "This package provides the Java development kit OpenJDK built with the +IcedTea build harness.") + ;; IcedTea is released under the GPL2 + Classpath exception, which is the + ;; same license as both GNU Classpath and OpenJDK. + (license license:gpl2+)))) (define-public icedtea-8 (let* ((version "3.3.0") @@ -973,10 +855,15 @@ build process and its dependencies, whereas Make uses Makefile format.") "02vmxa6gc6gizcri1fy797qmmm9y77vgi7gy9pwkk4agcw4zyr5p")) (modules '((guix build utils))) (snippet - '(substitute* "Makefile.am" - ;; do not leak information about the build host - (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") - "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + '(begin + (substitute* "acinclude.m4" + ;; Do not embed build time + (("(DIST_ID=\"Custom build).*$" _ prefix) + (string-append prefix "\"\n")) + ;; Do not leak information about the build host + (("DIST_NAME=\"\\$build_os\"") + "DIST_NAME=\"guix\"")) + #t)))) (arguments (substitute-keyword-arguments (package-arguments icedtea-7) ((#:configure-flags flags) @@ -1023,9 +910,6 @@ build process and its dependencies, whereas Make uses Makefile format.") (find-files "openjdk.src/jdk/src/solaris/native" "\\.c|\\.h")) #t))) - ;; FIXME: This phase is needed but fails with this version of - ;; IcedTea. - (delete 'install-keystore) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") @@ -1074,13 +958,13 @@ build process and its dependencies, whereas Make uses Makefile format.") (define-public java-xz (package (name "java-xz") - (version "1.5") + (version "1.6") (source (origin (method url-fetch) (uri (string-append "http://tukaani.org/xz/xz-java-" version ".zip")) (sha256 (base32 - "0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1")))) + "1z3p1ri1gvl07inxn0agx44ck8n7wrzfmvkz8nbq3njn8r9wba8x")))) (build-system ant-build-system) (arguments `(#:tests? #f ; There are no tests to run. diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm index 52b9216827..fcc9cc8082 100644 --- a/gnu/packages/jemalloc.scm +++ b/gnu/packages/jemalloc.scm @@ -27,7 +27,7 @@ (define-public jemalloc (package (name "jemalloc") - (version "4.4.0") + (version "4.5.0") (source (origin (method url-fetch) (uri (string-append @@ -35,7 +35,7 @@ version "/jemalloc-" version ".tar.bz2")) (sha256 (base32 - "0cxhhybcbi02szavlxzwhvmqvddi7kgy71qxz2nz3lhqjwzadbm7")))) + "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl")))) (build-system gnu-build-system) (home-page "http://jemalloc.net/") (synopsis "General-purpose scalable concurrent malloc implementation") diff --git a/gnu/packages/jrnl.scm b/gnu/packages/jrnl.scm index ef1f52956c..f26de0d4ab 100644 --- a/gnu/packages/jrnl.scm +++ b/gnu/packages/jrnl.scm @@ -48,7 +48,7 @@ ("python-pytz" ,python-pytz) ("python-tzlocal" ,python-tzlocal) ("python-six" ,python-six) - ("python-dateutil" , python-dateutil-2) + ("python-dateutil" ,python-dateutil) ("python-parsedatetime" ,python-parsedatetime))) (home-page "http://maebert.github.io/jrnl/") (synopsis "Personal journal application") diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 86a5853366..8bb05453da 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -2202,6 +2202,7 @@ makes starting KDE applications faster and reduces memory consumption.") "mirror://kde/stable/frameworks/" (version-major+minor version) "/" name "-" version ".tar.xz")) + (patches (search-patches "kio-CVE-2017-6410.patch")) (sha256 (base32 "1hqc88c2idi9fkb7jy82csb0i740lghv0p2fg1gaglcarjdz7nia")))) diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index aef56bb202..03cfd0ee7b 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -39,7 +39,7 @@ (define-public kdevelop (package (name "kdevelop") - (version "5.0.3") + (version "5.0.4") (source (origin (method url-fetch) @@ -48,7 +48,7 @@ version ".tar.xz")) (sha256 (base32 - "00gn2c66pyd9qaa0zhn2lqam0zsg7fbyi13hk32wclxq73y8v98p")))) + "0max4g1i8xf5g7a8zm60qkr2j8w5bsqzxz914z43fj5ipnr4448r")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -148,15 +148,15 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).") (define-public kdevplatform (package (name "kdevplatform") - (version "5.0.3") + (version "5.0.4") (source (origin (method url-fetch) - (uri (string-append "https://github.com/KDE/kdevplatform/archive/v" - version ".tar.gz")) + (uri (string-append "mirror://kde/stable/kdevelop" + "/" version "/src/kdevplatform-" + version ".tar.xz")) (sha256 (base32 - "1k40wg08iwyswnpbs4bfh4yq38pp0qi78shjh4pf7yfa2kbid30j")) - (file-name (string-append name "-" version ".tar.gz")))) + "0wfl5azblnpmc7hydfvm7450343m1v7cr2g9gw0qs1432gbzraq1")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index b7f593712b..614e2d6d0c 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -77,7 +77,7 @@ and freshness without requiring additional information from the user.") (define-public ldc-bootstrap (package (name "ldc") - (version "0.17.2") + (version "0.17.3") (source (origin (method url-fetch) (uri (string-append @@ -86,7 +86,7 @@ and freshness without requiring additional information from the user.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0iksl6cvhsiwnlh15b7s9v8f3grxk27jn0vja9n4sad7fvfwmmlc")))) + "135rgwwk82ccqp4n3fhqz4696jmvip90fg5ql2kccq5h1r71gb82")))) (build-system cmake-build-system) (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (arguments @@ -140,7 +140,7 @@ and freshness without requiring additional information from the user.") version ".tar.gz")) (sha256 (base32 - "07hh3ic3r755mq9hn9gfr0wlc5y8cr91xz2ydb6gqy4zy8jgp5s9")) + "0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl")) (patches (search-patches "ldc-disable-tests.patch")))) ("druntime-src" ,(origin @@ -150,7 +150,7 @@ and freshness without requiring additional information from the user.") version ".tar.gz")) (sha256 (base32 - "1m1dhday9dl3s04njmd29z7ism2xn2ksb9qlrwzykdgz27b3dk6x")))) + "0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs")))) ("dmd-testsuite-src" ,(origin (method url-fetch) @@ -159,7 +159,7 @@ and freshness without requiring additional information from the user.") version ".tar.gz")) (sha256 (base32 - "0n7gvalxwfmia4gag53r9qhcnk2cqrw3n4icj1yri0zkgc27pm60")))))) + "196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x")))))) (home-page "http://wiki.dlang.org/LDC") (synopsis "LLVM compiler for the D programming language") (description @@ -181,7 +181,7 @@ latest DMD frontend and uses LLVM as backend.") (package (inherit ldc-bootstrap) (name "ldc") - (version "1.1.0") + (version "1.1.1") ;; Beta version needed to compile various scientific tools that require ;; the newer beta versions, and won't compile successfully with the ;; older stable version. @@ -193,7 +193,7 @@ latest DMD frontend and uses LLVM as backend.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "10zkrmx9bcmhfxvgykm3fkjamzc8js96wm032bv0fyil5c9ja2y1")))) + "0yjiwg8pnlm2286bwdkwasaqw6ys7lymrqvhh5xyb1adha1ndcav")))) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index bc830f6215..551fbf7206 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -26,10 +26,13 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (gnu packages base) - #:use-module (gnu packages python) + #:use-module (guix build-system perl) #:use-module (gnu packages autotools) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages base) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages tls)) (define-public libevent (package @@ -149,3 +152,78 @@ resolution, asynchronous file system operations, and threading primitives.") ;; A few files fall under other non-copyleft licenses; see 'LICENSE' for ;; details. (license x11))) + +(define-public perl-anyevent + (package + (name "perl-anyevent") + (version "7.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/" + "AnyEvent-" version ".tar.gz")) + (sha256 + (base32 + "1b84ilkbrfbzqapv25x8z6gva92skbrf2srybdabb1wnxx6ky454")))) + (build-system perl-build-system) + (native-inputs + `(("perl-canary-stability" ,perl-canary-stability))) + (propagated-inputs + `(("perl-async-interrupt" ,perl-async-interrupt) + ("perl-ev" ,perl-ev) + ("perl-guard" ,perl-guard) + ("perl-json" ,perl-json) + ("perl-json-xs" ,perl-json-xs) + ("perl-net-ssleay" ,perl-net-ssleay) + ("perl-task-weaken" ,perl-task-weaken))) + (home-page "http://search.cpan.org/dist/AnyEvent") + (synopsis + "API for I/O, timer, signal, child process and completion events") + (description + "This module allows using a variety of events without forcing module +authors to pick a specific event loop, and without noticable overhead. +Currently supported event loops are EV, Event, Glib/Gtk2, Tk, Qt, +@code{Event::Lib}, Irssi, @code{IO::Async} and POE (and thus also WxWidgets +and Prima). It also comes with a very fast Pure Perl event loop that does +not rely on XS.") + (license (package-license perl)))) + +(define-public perl-ev + (package + (name "perl-ev") + (version "4.22") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-" + version ".tar.gz")) + (sha256 + (base32 + "14d9115q8f2ca2q3vbcalm55zqsbx8xjq5aj098laj9f9rrzirra")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Drop bundled libev. + (delete-file-recursively "libev") + #t)))) + (build-system perl-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-libev + ;; This package requires the libev *sources* in order + ;; to build. Unpack system libev here... + (lambda* (#:key inputs #:allow-other-keys) + (mkdir "./libev") + (zero? (system* "tar" "-xf" (assoc-ref inputs "libev-source") + "-C" "./libev" "--strip-components=1"))))))) + (native-inputs + `(("libev-source" ,(package-source libev)) + ("perl-canary-stability" ,perl-canary-stability))) + (propagated-inputs + `(("perl-common-sense" ,perl-common-sense))) + (home-page "http://search.cpan.org/dist/EV") + (synopsis "Perl interface to libev") + (description + "This module provides an interface to @code{libev}, a high performance +full-featured event loop. It can be used through the @code{AnyEvent} module +and still be faster than other event loops currently supported in Perl.") + (license (package-license perl)))) diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm index e70b276fd7..5f816dc54b 100644 --- a/gnu/packages/lighting.scm +++ b/gnu/packages/lighting.scm @@ -36,7 +36,7 @@ (define-public ola (package (name "ola") - (version "0.10.2") + (version "0.10.3") (source (origin (method url-fetch) (uri (string-append @@ -45,7 +45,7 @@ (patches (search-patches "ola-readdir-r.patch")) (sha256 (base32 - "09zx1c8nkj29shfdzkahrh9397m3mwnsy0gj7jrb63f89f3n2vlq")))) + "1yf1yy9n64n73zjq2bwc0gik0dd3n05297hdrrma2qvb0imzm5h1")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c1e495675f..53b0f2a678 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice -;;; Copyright © 2016 Alex Kost +;;; Copyright © 2016, 2017 Alex Kost ;;; Copyright © 2016 Raymond Nicholson ;;; Copyright © 2016 Mathieu Lirzin ;;; Copyright © 2016 Nicolas Goaziou @@ -107,6 +107,7 @@ ((string-prefix? "mips" arch) "mips") ((string-prefix? "arm" arch) "arm") ((string-prefix? "aarch64" arch) "arm64") + ((string-prefix? "alpha" arch) "alpha") (else arch)))) (define-public (system->defconfig system) @@ -204,11 +205,10 @@ defconfig. Return the appropiate make target if applicable, otherwise return (define* (kernel-config arch #:key variant) "Return the absolute file name of the Linux-Libre build configuration file for ARCH and optionally VARIANT, or #f if there is no such configuration." - (let* ((name (string-append "linux-libre-" - (if variant (string-append variant "-") "") + (let* ((name (string-append (if variant (string-append variant "-") "") (if (string=? "i386" arch) "i686" arch) ".conf")) - (file (string-append "gnu/packages/" name))) - (search-path %load-path file))) + (file (string-append "linux-libre/" name))) + (search-auxiliary-file file))) (define %default-extra-linux-options `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html @@ -348,8 +348,8 @@ It has been modified to remove all non-free binary blobs.") (define %intel-compatible-systems '("x86_64-linux" "i686-linux")) -(define %linux-libre-version "4.10") -(define %linux-libre-hash "167zzgkivpqsp07did25wjqsswddzp3gifcdkq7xk00llxlmspla") +(define %linux-libre-version "4.10.1") +(define %linux-libre-hash "0mvwrjny1bjqyjqjxff9m97j48ybfdw8qpdazr5rwk12234v4k3d") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -358,14 +358,14 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.11" - "1gypfg2984zr4z7hihnl3bbpxnk1mrqbynb6xd8ad2v2z04aw13q" + (make-linux-libre "4.9.13" + "16miggwcwfpm7kx0yz256x887rky9wgmp1grg850lf8sdkiz0a1p" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.50" - "0c157kk0vgrb1fsyy4q3czqdg4npgql82n6p303afy8ylh2w6d3l" + (make-linux-libre "4.4.52" + "1fzcq9bbsxiij2fh6kgwrp417sy2j5gnbzs0wwlmznj7mvysl7qg" %intel-compatible-systems #:configuration-file kernel-config)) @@ -373,7 +373,17 @@ It has been modified to remove all non-free binary blobs.") (make-linux-libre "4.1.38" "165kmzglhg63hn7y4q7r6cb2dpsljxiq1czvgyx0bkd1vd2bcvsa" %intel-compatible-systems - #:configuration-file kernel-config)) + #:configuration-file kernel-config + #:patches + (list %boot-logo-patch + (origin + (method url-fetch) + (uri "\ +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4") + (file-name "linux-libre-CVE-2017-6074.patch") + (sha256 + (base32 + "1x40slfz1qxgiaznyy13bwlh34450pkyyrkljpyjlx6c4mrzb1jj")))))) (define-public linux-libre-arm-generic (make-linux-libre %linux-libre-version @@ -821,17 +831,25 @@ images more compressible.") (define-public strace (package (name "strace") - (version "4.7") + (version "4.16") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/strace/strace/" version "/strace-" version ".tar.xz")) (sha256 (base32 - "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764")))) + "1vzhmpcy989i4k12q4cc438yal2ghhm6x7ychscjbhcf2yspqj4q")))) (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* "strace.c" + (("/bin/sh") (which "sh"))) + #t))))) (native-inputs `(("perl" ,perl))) - (home-page "http://strace.sourceforge.net/") + (home-page "https://strace.io/") (synopsis "System call tracer for Linux") (description "strace is a system call tracer, i.e. a debugging tool which prints out a @@ -1022,7 +1040,7 @@ packet filter.") (define-public iproute (package (name "iproute2") - (version "4.9.0") + (version "4.10.0") (source (origin (method url-fetch) (uri (string-append @@ -1030,7 +1048,7 @@ packet filter.") version ".tar.xz")) (sha256 (base32 - "1i0n071hiqxw1gisngw2jln3kcp9sh47n6fj5hdwqrvp7w20zwy0")))) + "1a59y1zkddvr7z0lh2y9iasbh9wpfc1n39p56xcd6jkhzk0y3c92")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no test suite @@ -1039,6 +1057,7 @@ packet filter.") (string-append "BASH_COMPDIR=" out "/etc/bash_completion.d") (string-append "LIBDIR=" out "/lib") + (string-append "HDRDIR=" out "/include") (string-append "SBINDIR=" out "/sbin") (string-append "CONFDIR=" out "/etc") (string-append "DOCDIR=" out "/share/doc/" @@ -1075,10 +1094,10 @@ allows a system administrator to make use of all iproute2 features, including traffic control. iproute2 is usually shipped in a package called iproute or iproute2 and -consists of several tools, of which the most important are ip and tc. ip -controls IPv4 and IPv6 configuration and tc stands for traffic control. Both -tools print detailed usage messages and are accompanied by a set of -manpages.") +consists of several tools, of which the most important are @command{ip} and +@command{tc}. @command{ip} controls IPv4 and IPv6 configuration and +@command{tc} stands for traffic control. Both tools print detailed usage +messages and are accompanied by a set of manpages.") (license license:gpl2+))) (define-public net-tools @@ -2318,14 +2337,14 @@ about ACPI devices.") (define-public acpid (package (name "acpid") - (version "2.0.23") + (version "2.0.28") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/acpid2/acpid-" version ".tar.xz")) (sha256 (base32 - "1vl7c6vc724v4jwki17czgj6lnrknnj1a6llm8gkl32i2gnam5j3")))) + "043igasvp1l6nv5rzh4sksmymay2qn20anl4zm4zvwnkn1a3l34q")))) (build-system gnu-build-system) (home-page "https://sourceforge.net/projects/acpid2/") (synopsis "Daemon for delivering ACPI events to user-space programs") @@ -3209,7 +3228,7 @@ of flash storage.") (define-public libseccomp (package (name "libseccomp") - (version "2.3.1") + (version "2.3.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/seccomp/libseccomp/" @@ -3217,7 +3236,7 @@ of flash storage.") "/libseccomp-" version ".tar.gz")) (sha256 (base32 - "0asnlkzqms520r0dra08dzcz5hh6hs7lkajfw9wij3vrd0hxsnzz")))) + "18dwfxzsw3agiy2dxbflrkhmjgvlji0wwkk636nabh2ng41qrp1x")))) (build-system gnu-build-system) (native-inputs `(("which" ,which))) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 80161de01b..647c64dcc7 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Federico Beffa -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2017 Ricardo Wurmus ;;; @@ -37,16 +37,27 @@ #:use-module (guix build-system asdf) #:use-module (guix build-system trivial) #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages bdw-gc) #:use-module (gnu packages libffi) #:use-module (gnu packages libffcall) #:use-module (gnu packages readline) + #:use-module (gnu packages sdl) #:use-module (gnu packages libsigsegv) + #:use-module (gnu packages linux) #:use-module (gnu packages admin) #:use-module (gnu packages ed) + #:use-module (gnu packages gl) + #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) + #:use-module (gnu packages gettext) #:use-module (gnu packages m4) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages version-control) + #:use-module (gnu packages xorg) #:use-module (ice-9 match) #:use-module (srfi srfi-1)) @@ -530,6 +541,69 @@ The core is 12 builtin special forms and 33 builtin functions.") (home-page "https://github.com/JeffBezanson/femtolisp") (license license:bsd-3)))) +(define-public lush2 + (package + (name "lush2") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/lush/lush2/lush-" + version ".tar.gz")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "src/unix.c" + (("\\{ \"LUSH_DATE\", __DATE__ \\},") "") + (("\\{ \"LUSH_TIME\", __TIME__ \\},") "")) + (substitute* "src/main.c" + (("\" \\(built \" __DATE__ \"\\)\"") "")))) + (sha256 + (base32 + "02pkfn3nqdkm9fm44911dbcz0v3r0l53vygj8xigl6id5g3iwi4k")))) + (build-system gnu-build-system) + (arguments + `(;; We have to add these LIBS so that they are found. + #:configure-flags (list "LIBS=-lz" + "X_EXTRA_LIBS=-lfontconfig" + "--with-x") + #:tests? #f)) ; No make check. + (native-inputs `(("intltool" ,intltool))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("sdl" ,sdl) + ("sdl-image" ,sdl-image) + ("sdl-mixer" ,sdl-mixer) + ("sdl-net" ,sdl-net) + ("sdl-ttf" ,sdl-ttf) + ("lapack" ,lapack) + ("libxft" ,libxft) + ("fontconfig" ,fontconfig) + ("gsl" ,gsl) + ("openblas" ,openblas) + ("glu" ,glu) + ("mesa" ,mesa) + ("mesa-utils" ,mesa-utils) + ("binutils" ,binutils) + ("libiberty" ,libiberty) + ("readline" ,readline) + ("zlib" ,zlib) + ("gettext-minimal" ,gettext-minimal))) + (synopsis "Lisp Universal Shell") + (description + "Lush is an object-oriented Lisp interpreter/compiler with features +designed to please people who want to prototype large numerical +applications. Lush includes an extensive library of +vector/matrix/tensor manipulation, numerous numerical libraries +(including GSL, LAPACK, and BLAS), a set of graphic functions, a +simple GUI toolkit, and interfaces to various graphic and multimedia +libraries such as OpenGL, SDL, Video4Linux, and ALSA (video/audio +grabbing), and others. Lush is an ideal frontend script language for +programming projects written in C or other languages. Lush also has +libraries for Machine Learning, Neural Nets and statistical estimation.") + (home-page "http://lush.sourceforge.net/") + (license license:lgpl2.1+))) + (define-public sbcl-alexandria (let ((revision "1") (commit "926a066611b7b11cb71e26c827a271e500888c30")) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index 5016732b7a..e3ab3561cb 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -283,18 +283,6 @@ communication. It takes an already established TCP connection and creates a secure session between the peers.") (license (package-license lua-5.1)))) -(define-public lua5.1-sec-0.5 - (package - (inherit lua5.1-sec) - (version "0.5.1") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/brunoos/luasec/archive/" - "luasec-" version ".tar.gz")) - (sha256 - (base32 - "01llf5bcrjmqqy6m65avqkajz7h79rvkka6rd131kwr10n75yp3d")))))) - (define-public lua-lgi (package (name "lua-lgi") diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 8f1f8ee53b..7bad833b38 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -504,20 +504,21 @@ and a QP solver.") (define-public dlib (package (name "dlib") - (version "19.1") + (version "19.3") (source (origin (method url-fetch) (uri (string-append "http://dlib.net/files/dlib-" version ".tar.bz2")) (sha256 (base32 - "0p2pvcdalc6jhb6r99ybvjd9x74sclr0ngswdg9j2xl5pj7knbr4")) + "0gfy83av717qymv53yv7ki6mgh6mdw4xcxxbjk8lrs72f8qvnrcw")) (modules '((guix build utils))) (snippet '(begin ;; Delete ~13MB of bundled dependencies. (delete-file-recursively "dlib/external") - (delete-file-recursively "docs/dlib/external"))))) + (delete-file-recursively "docs/dlib/external") + #t)))) (build-system cmake-build-system) (arguments `(#:phases @@ -532,8 +533,7 @@ and a QP solver.") (add-after 'disable-asserts 'disable-failing-tests (lambda _ ;; One test times out on MIPS, so we need to disable it. - ;; The rest is known to fail on non-x86_64 platforms in the current release. - ;; Some have been fixed in git; this list should be readjusted next update. + ;; Others are flaky on some platforms. (let* ((system ,(or (%current-target-system) (%current-system))) (disabled-tests (cond @@ -541,17 +541,16 @@ and a QP solver.") '("object_detector" ; timeout "data_io")) ((string-prefix? "armhf" system) - '("learning_to_track" "max_cost_assignment")) + '("learning_to_track")) ((string-prefix? "i686" system) - '("optimization" "matrix2" "mpc")) + '("optimization")) (else '())))) - ;; The following test fails due a bug in openblas < 0.2.18. - (append! disabled-tests '("empirical_map")) (for-each (lambda (test) (substitute* "dlib/test/makefile" - (((string-append "SRC \\+= " test "\\.cpp")) "")) #t) - disabled-tests)))) + (((string-append "SRC \\+= " test "\\.cpp")) ""))) + disabled-tests) + #t))) (replace 'check (lambda _ ;; No test target, so we build and run the unit tests here. @@ -562,7 +561,9 @@ and a QP solver.") (zero? (system* "./dtest" "--runall"))))))) (add-after 'install 'delete-static-library (lambda* (#:key outputs #:allow-other-keys) - (delete-file (string-append (assoc-ref outputs "out") "/lib/libdlib.a"))))))) + (delete-file (string-append (assoc-ref outputs "out") + "/lib/libdlib.a")) + #t))))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a9b2cb3ec9..b70597b84d 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2015 Andreas Enge -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Al McElrath ;;; Copyright © 2016 Leo Famulari @@ -214,14 +214,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.7.2") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-" version ".tar.gz")) (sha256 (base32 - "1yazrl82s9fxmamnlvwmsxhwrxnwv6kwakgfmawda8ndhwb50lqm")) + "1axdcylyv0p194y6lj1jx127g5yc74zqzzxdc014cjw02bd1x125")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs @@ -254,7 +254,7 @@ operating systems.") (package (inherit mutt) (name "neomutt") - (version "20170113") + (version "20170225") (source (origin (method url-fetch) @@ -263,10 +263,12 @@ operating systems.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0cqr77q263b5qcmdw6g0qixdpk6gmzgzpa03v226nr55v2ips9jg")))) + "00ll35g9pcanzrxsjp09vrmq6flml249dipcznrq2z4jy2zd386p")))) (inputs `(("cyrus-sasl" ,cyrus-sasl) ("gdbm" ,gdbm) + ("lmdb" ,lmdb) + ("tokyocabinet" ,tokyocabinet) ("gpgme" ,gpgme) ("ncurses" ,ncurses) ("gnutls" ,gnutls) @@ -289,10 +291,11 @@ operating systems.") "--enable-gpgme" ;; database, implies header caching - "--without-tokyocabinet" + ;; neomutt supports building multiple backends + "--with-tokyocabinet" "--without-qdbm" "--without-bdb" - "--without-lmdb" + "--with-lmdb" "--with-gdbm" "--with-gnutls" @@ -659,14 +662,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.23.5") + (version "0.23.7") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "0ry2k9sdwd1vw8cf6svch8wk98523s07mwxvsf7b8kghqnrr89n6")))) + "04w90c43zk23pys6prkqb14al408qypifcfj2qznqpwlf46v26zi")))) (build-system gnu-build-system) (arguments '(#:make-flags (list "V=1") ; Verbose test output. @@ -1509,7 +1512,11 @@ maintained.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (doc (string-append out "/share/doc/khard"))) - (copy-recursively "misc/khard" doc))))))) + (copy-recursively "misc/khard" doc) + #t)))) + ;; FIXME: check phase fails with + ;; "Config file /tmp/.config/khard/khard.conf not available" + #:tests? #f)) (propagated-inputs `(("python-vobject" ,python-vobject) ("python-pyyaml" ,python-pyyaml) @@ -1951,3 +1958,38 @@ installation on systems where resources are limited. Its features include: @item Rich and customisable texts for automated operations. @end enumerate\n") (license license:expat))) + +(define-public blists + (package + (name "blists") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://download.openwall.net/pub/projects/" + "blists/blists-" version ".tar.gz")) + (sha256 + (base32 + "1gp51kmb8yv8d693wcpdslmwlbw5w2kgz4kxhrcaf7y89w8wy4qd")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "bindex" bin) + (install-file "bit" bin) + #t)))))) + (home-page "http://www.openwall.com/blists/") + (synopsis "Web interface to mailing list archives") + (description + "Blists is a web interface to mailing list archives that works off +indexed mbox files. There are two programs: @code{bindex} and @code{bit}. +@code{bindex} generates or updates the index file (incremental updates +are supported). @code{bit} is a CGI/SSI program that generates web pages +on the fly. Both programs are written in C and are very fast.") + (license license:expat))) diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm index 69c560c1b0..3763292fe4 100644 --- a/gnu/packages/man.scm +++ b/gnu/packages/man.scm @@ -202,7 +202,7 @@ automatically.") (define-public txt2man (package (name "txt2man") - (version "1.5.6") + (version "1.6.0") (source (origin (method url-fetch) @@ -211,7 +211,7 @@ automatically.") version ".tar.gz")) (sha256 (base32 - "0sjq687jknq65wbnjh2siq8hc09ydpnlmrkrnwl66mrhd4n9g7fz")))) + "168cj96974n2z0igin6j1ic1m45zyic7nm5ark7frq8j78rrx4zn")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target diff --git a/gnu/packages/markdown.scm b/gnu/packages/markdown.scm index ae54b0b172..4a020198e4 100644 --- a/gnu/packages/markdown.scm +++ b/gnu/packages/markdown.scm @@ -104,7 +104,7 @@ convert it to structurally valid XHTML (or HTML).") (define-public cmark (package (name "cmark") - (version "0.26.1") + (version "0.27.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/jgm/cmark/archive/" @@ -112,7 +112,7 @@ convert it to structurally valid XHTML (or HTML).") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1mpmcy4bbmc8m058zqs9dwx49lcfi7bdnfszsr9y66cwgylia1mm")))) + "1da62ispca9aal2a36gaj87175rv5013pl7x740vk32y6lclr6v6")))) (build-system cmake-build-system) (arguments '(#:test-target "test")) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 18536c43ee..9533f5f0a8 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -83,6 +83,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages readline) #:use-module (gnu packages tbb) + #:use-module (gnu packages scheme) #:use-module (gnu packages shells) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) @@ -142,14 +143,14 @@ interactive dialogs to guide them.") (define-public coda (package (name "coda") - (version "2.17.3") + (version "2.18") (source (origin (method url-fetch) (uri (string-append "https://github.com/stcorp/coda/releases/download/" version "/coda-" version ".tar.gz")) (sha256 - (base32 "04b9l3wzcix0mnfq77mwnil6cbr8h2mki8myvy0lzn236qcwaq1h")) + (base32 "11asla1ap8vd73farqjlpb179sfiy0biydcwxjfcakrp9sf8v9bs")) (patches (search-patches "coda-use-system-libs.patch")) (modules '((guix build utils))) (snippet @@ -923,7 +924,7 @@ can solve two kinds of problems: (define-public octave (package (name "octave") - (version "4.2.0") + (version "4.2.1") (source (origin (method url-fetch) @@ -931,7 +932,7 @@ can solve two kinds of problems: version ".tar.lz")) (sha256 (base32 - "19vvliwxgip0af812vny5xy5r8kacyj7v62203mh4z2n3p14b78i")))) + "09zhhch79jw3ynw39vizx0i2cbd2bjz3sp38pjdzraqrbivpwp92")))) (build-system gnu-build-system) (inputs `(("lapack" ,lapack) @@ -2008,7 +2009,9 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "16.12.2") + ;; Versions 16.12.0 to 16.12.2 have a bug which causes output lines to + ;; overlap. See + (version "16.04.2") (source (origin (method url-fetch) @@ -2016,7 +2019,7 @@ point numbers.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "0y22zhyhyxj2cbhzvs9c4pxr44i55ryfy5xi96d39bg2nbgs9h22")))) + "1fpqzk1921isiqrpgpf433ldq41924qs9sy99fl1zn5661b2l73n")))) (build-system gnu-build-system) (inputs `(("wxwidgets" ,wxwidgets) @@ -2956,3 +2959,54 @@ algorithm for LCS. It is a fast program to compute the approximate Longest Commons Subsequence of a set of strings.") (home-page "https://github.com/gdv/Reduce-Expand-for-LCS") (license license:gpl3+)))) + +(define-public jacal + (package + (name "jacal") + (version "1c4") + (source (origin + (method url-fetch) + (uri (string-append + "http://groups.csail.mit.edu/mac/ftpdir/scm/jacal-" + version ".zip")) + (sha256 (base32 + "055zrn12a1dmy0dqkwrkq3fklbhg3yir6vn0lacp4mvbg8573a3q")) + (patches (search-patches "jacal-fix-texinfo.patch")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + ;; Don't use upstream's script - it really doesn't fit into + ;; Guix's functional paradigm. + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Makefile" + (("^install: install-script") "install: ")))) + (add-after 'install 'post-install + ;; Instead, we provide our own simplified script. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((wrapper (string-append (assoc-ref outputs "out") + "/bin/jacal"))) + (format (open wrapper (logior O_WRONLY O_CREAT)) + (string-append "#!~a\nexec ~a/bin/scm -ip1 " + "-e '(slib:load \"~a/lib/jacal/math\") " + "(math)' \"$@\"\n") + (which "bash") + (assoc-ref inputs "scm") + (assoc-ref outputs "out")) + (chmod wrapper #o555)))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (zero? (system* "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out"))))))))) + (inputs `(("scm" ,scm))) + (native-inputs `(("unzip" ,unzip) + ("texinfo" ,texinfo))) + (synopsis "Symbolic mathematics system") + (description "GNU JACAL is an interactive symbolic mathematics program based on +Scheme. It manipulate and simplify a range of mathematical expressions such +as equations, scalars, vectors, and matrices.") + (home-page "http://www.gnu.org/software/jacal") + (license license:gpl3+))) + diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 9345e24263..0ffc031c85 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -495,14 +495,14 @@ end-to-end encryption support; XML console.") (define-public prosody (package (name "prosody") - (version "0.9.10") + (version "0.9.12") (source (origin (method url-fetch) (uri (string-append "https://prosody.im/downloads/source/" "prosody-" version ".tar.gz")) (sha256 (base32 - "0bv6s5c0iizz015hh1lxlwlw1iwvisywajm2rcrbdfyrskzfwdj8")))) + "139yxqpinajl32ryrybvilh54ddb1q6s0ajjhlcs4a0rnwia6n8s")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -572,8 +572,7 @@ end-to-end encryption support; XML console.") ("lua5.1-expat" ,lua5.1-expat) ("lua5.1-socket" ,lua5.1-socket) ("lua5.1-filesystem" ,lua5.1-filesystem) - ;; See . - ("lua5.1-sec" ,lua5.1-sec-0.5))) + ("lua5.1-sec" ,lua5.1-sec))) (home-page "https://prosody.im/") (synopsis "Jabber (XMPP) server") (description "Prosody is a modern XMPP communication server. It aims to diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index e60bd5c5c1..78c2b2f73b 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -230,7 +230,7 @@ pre-defined or user-specifiable output format.") (define-public libmp3splt (package (name "libmp3splt") - (version "0.8.1a") + (version "0.9.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/mp3splt/libmp3splt/" @@ -238,7 +238,7 @@ pre-defined or user-specifiable output format.") version ".tar.gz")) (sha256 (base32 - "0d20r1bd4fgp9kp7w3qixjgll34czck9dgw59mx2kbhb0mhh00d8")))) + "1p1mn2hsmj5cp40fnc8g1yfvk72p8pjxi866gjdkgjsqrr7xdvih")))) (build-system gnu-build-system) (inputs `(("libid3tag" ,libid3tag) ("libmad" ,libmad) @@ -263,7 +263,7 @@ This package contains the library.") (define-public mp3splt (package (name "mp3splt") - (version "2.5.1") + (version "2.6.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/mp3splt/mp3splt/" @@ -271,8 +271,9 @@ This package contains the library.") version ".tar.gz")) (sha256 (base32 - "106dnka56prlc9nsfh300f8841am2lmkwlzgl9lkr25mgnc35wwh")))) + "1aiv20gypb6r84qabz8gblk8vi42cg3x333vk2pi3fyqvl82phry")))) (build-system gnu-build-system) + (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("libmp3splt" ,libmp3splt))) (synopsis "Utility for splitting mp3 and ogg vorbis files") (description diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 730d981e67..87b6d5b9b3 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -2061,6 +2061,8 @@ detailed track info including timbre, pitch, rhythm and loudness information. (base32 "0bml11gfkxqd3i2jxkn5k2xllc4rvxjcyhs8an05gcyy1zp2bwvb")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires unpackaged python-flaky. (native-inputs `(("python-coverage" ,python-coverage) ("python-mock" ,python-mock) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 5fafe78e2e..571770b459 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012 Nikita Karetnikov -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2017 Efraim Flashner ;;; Copyright © 2016 Rene Saavedra ;;; ;;; This file is part of GNU Guix. @@ -29,7 +29,7 @@ (define-public nano (package (name "nano") - (version "2.7.4") + (version "2.7.5") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.gz")) (sha256 (base32 - "135wzlv77p9za8679j2jpfkpvainvyagrhkdxngp71ynabgc5zr3")))) + "01yrh66rph0vn9q9r2d2jji5yzaakxrj75j9fsm0g41m8qpy4sr2")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) @@ -45,7 +45,8 @@ (home-page "https://www.nano-editor.org/") (synopsis "Small, user-friendly console text editor") (description - "GNU Nano is a small and simple text editor. In addition to basic -editing, it supports interactive search and replace, go to line and column -number, auto-indentation and more.") + "GNU nano is a small and simple text editor for use in a terminal. Besides +basic editing, it supports: undo/redo, syntax highlighting, spell checking, +justifying, auto-indentation, bracket matching, interactive search-and-replace +(with regular expressions), and the editing of multiple files.") (license gpl3+))) ; some files are under GPLv2+ diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index a10fbfed92..95253687cd 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2016 Benz Schenk +;;; Copyright © 2016, 2017 Pjotr Prins ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,7 +81,7 @@ (description "GNU MAC Changer is a utility for viewing and changing MAC addresses of networking devices. New addresses may be set explicitly or randomly. They can include MAC addresses of the same or other hardware vendors -or, more generally, MAC addresses of the same category of hardware.") +or, more generally, MAC addresses of the same category of hardware.") (license license:gpl2+))) (define-public miredo @@ -430,7 +431,7 @@ and up to 1 Mbit/s downstream.") (define-public whois (package (name "whois") - (version "5.2.14") + (version "5.2.15") (source (origin (method url-fetch) @@ -438,7 +439,7 @@ and up to 1 Mbit/s downstream.") name "_" version ".tar.xz")) (sha256 (base32 - "1lmh7168yby1ma8r1svgvmv9hbgjyniy9c64r6lby3zdmd0sy7d4")))) + "123ingf699javzh8qm6ny10nl28zbjzasa4k5pcn0qzw1dlnnnks")))) (build-system gnu-build-system) ;; TODO: unbundle mkpasswd binary + its po files. (arguments @@ -469,7 +470,7 @@ which can be used to encrypt a password with @code{crypt(3)}.") (define-public wireshark (package (name "wireshark") - (version "2.2.4") + (version "2.2.5") (synopsis "Network traffic analyzer") (source (origin @@ -478,7 +479,7 @@ which can be used to encrypt a password with @code{crypt(3)}.") version ".tar.bz2")) (sha256 (base32 - "049r5962yrajhhz9r4dsnx403dab50d6091y2mw298ymxqszp9s2")))) + "1j4sc3pmy8l6k41007spglcqiabjlzc7f85pn3jmjr9ksv9qipbm")))) (build-system glib-or-gtk-build-system) (inputs `(("bison" ,bison) ("c-ares" ,c-ares) @@ -1006,14 +1007,14 @@ that block port 22.") (define-public iperf (package (name "iperf") - (version "3.1.3") + (version "3.1.7") (source (origin (method url-fetch) (uri (string-append "http://downloads.es.net/pub/iperf" "/iperf-" version ".tar.gz")) (sha256 (base32 - "1gwmhm29zlp5grrpglmqj7vgx19s6xy33hk6hpbn8jnpn5lxpn30")))) + "0kvk8d0a3dcxc8fisyprbn01y8akxj4sx8ld5dh508p9dx077vx4")))) (build-system gnu-build-system) (synopsis "TCP, UDP and SCTP bandwidth measurement tool") (description @@ -1119,3 +1120,24 @@ IPFIX, RSPAN, CLI, LACP, 802.1ag).") license:gpl2 ; datapath license:bsd-2 license:bsd-3 license:asl2.0)))) ; all other + +(define-public speedtest-cli + (package + (name "speedtest-cli") + (version "1.0.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/sivel/speedtest-cli/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1ir9fqwr7cl9kfq7dgh9vkydkwf59wsx0cwbzbffw8i313xhzxa1")))) + (build-system python-build-system) + (home-page "https://github.com/sivel/speedtest-cli") + (synopsis "Internet bandwidth tester") + (description + "Command line interface for testing internet bandwidth using +speedtest.net.") + (license license:asl2.0))) diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index e2672668d8..51566b65e3 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages openstack) + #:use-module (gnu packages gnupg) #:use-module (gnu packages python) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) @@ -64,10 +65,16 @@ To do this Bandit processes each file, builds an AST from it, and runs appropriate plugins against the AST nodes. Once Bandit has finished scanning all the files it generates a report.") + (properties `((python2-variant . ,(delay python2-bandit)))) (license asl2.0))) (define-public python2-bandit - (package-with-python2 python-bandit)) + (package (inherit (package-with-python2 + (strip-python2-variant python-bandit))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) (define-public python-debtcollector (package @@ -81,6 +88,8 @@ all the files it generates a report.") (base32 "0g4dfskaiy47rhsh4gh66l5vmdsrgq0qk68pl3ix1cj3ffvfndzv")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ;FIXME: Requires packaging python-doc8. (propagated-inputs `(("python-six" ,python-six) ("python-wrapt" ,python-wrapt))) @@ -113,6 +122,9 @@ manner.") (base32 "1a310k3dv04jg7zvmk37h2ql7y9kf4hvdxb74bjlwdxgmy6h4wap")))) (build-system python-build-system) + (arguments + ;; TODO: Requires unpackaged 'eventlet'. + '(#:tests? #f)) (propagated-inputs `(("python-flake8-2.2.4" ,python-flake8-2.2.4) ("python-mccabe-0.2.1" ,python-mccabe-0.2.1) @@ -146,9 +158,14 @@ guidelines}.") (base32 "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx")))) (build-system python-build-system) + (arguments + ;; TODO: Resolve dependency cycle and re-enable. + '(#:tests? #f)) (native-inputs `(("python-fixtures" ,python-fixtures) + ; TODO re-add ("python-oslosphinx" ,python-oslosphinx) ("python-pbr" ,python-pbr) + ("python-sphinx" ,python-sphinx) ("python-testtools" ,python-testtools))) (home-page "http://www.openstack.org/") (synopsis "Mock object framework for Python") @@ -234,14 +251,14 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python-requests-mock (package (name "python-requests-mock") - (version "1.0.0") + (version "1.3.0") (source (origin (method url-fetch) (uri (pypi-uri "requests-mock" version)) (sha256 (base32 - "0gcjjwsckhqixyffflc54i59x41jnbb37bli077vabii1bjmkin6")))) + "0jr997dvk6zbmhvbpcv3rajrgag69mcsm1ai3w3rgk2jdh6rg1mx")))) (build-system python-build-system) (propagated-inputs `(("python-requests" ,python-requests) @@ -260,10 +277,16 @@ tested on Python version 3.2, 2.7 and 2.6.") (description "This module provides a building block to stub out the HTTP requests portions of your testing code.") + (properties `((python2-variant . ,(delay python2-requests-mock)))) (license asl2.0))) (define-public python2-requests-mock - (package-with-python2 python-requests-mock)) + (package (inherit (package-with-python2 + (strip-python2-variant python-requests-mock))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) (define-public python-stevedore (package @@ -282,10 +305,13 @@ portions of your testing code.") (native-inputs `(("python-pbr" ,python-pbr) ;; Tests + ("python-discover" ,python-discover) ("python-docutils" ,python-docutils) ("python-mock" ,python-mock) + ("python-oslosphinx" ,python-oslosphinx) ("python-oslotest" ,python-oslotest) - ("python-sphinx" ,python-sphinx))) + ("python-sphinx" ,python-sphinx) + ("python-testrepository" ,python-testrepository))) (home-page "https://github.com/dreamhost/stevedore") (synopsis "Manage dynamic plugins for Python applications") (description @@ -297,10 +323,16 @@ mechanism by building on top of setuptools entry points. The code for managing entry points tends to be repetitive, though, so stevedore provides manager classes for implementing common patterns for using dynamically loaded extensions.") + (properties `((python2-variant . ,(delay python2-stevedore)))) (license asl2.0))) (define-public python2-stevedore - (package-with-python2 python-stevedore)) + (package (inherit (package-with-python2 + (strip-python2-variant python-stevedore))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) (define-public python-tempest-lib (package @@ -315,7 +347,8 @@ extensions.") "1cpp2vwmawpd29hjsklsps181lq2ah91cl412qvpnz228nf9sqn5")))) (build-system python-build-system) (arguments - `(#:phases + `(#:tests? #f ; FIXME: Requires oslo.log >= 1.14.0. + #:phases (modify-phases %standard-phases (add-before 'check 'pre-check @@ -362,6 +395,8 @@ common features used in Tempest.") (base32 "13r778jfb0fhna37c2pd1f2xipnsbd7zli7qhn96acrzymrwj5k1")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires packaging python-argparse. (propagated-inputs `(("python-netaddr" ,python-netaddr) ("python-six" ,python-six) @@ -395,11 +430,19 @@ common features used in Tempest.") (base32 "0kvha0rs9295njyl2z6n6zm5dapi5mrl5zwjm0m6ldqrvccyf8c3")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires python-mock >= 1.2. (native-inputs `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) ;; Tests. - ("python-oslotest" ,python-oslotest))) + ("python-coverage" ,python-coverage) + ("python-hacking" ,python-hacking) + ("python-mock" ,python-mock) + ("python-os-client-config" ,python-os-client-config) + ("python-oslotest" ,python-oslotest) + ("python-oslosphinx" ,python-oslosphinx) + ("python-sphinx" ,python-sphinx))) (home-page "http://launchpad.net/oslo") (synopsis "Oslo context library") (description @@ -423,6 +466,8 @@ pipeline and used by various modules such as logging.") (base32 "0bpb1c20sm8my650gl824nzaip83bfn8hr91s65k5ncmyh8hb6pl")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Circular dependency on python-oslo.config. (propagated-inputs `(("python-babel" ,python-babel) ("python-six" ,python-six))) @@ -459,6 +504,8 @@ in an application or library.") (base32 "1fhy6yvbd565nv4x4i3ppyrlbmz3yy9d0xsvw5nkqsa7g43nmf8z")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires oslo.utils >= 3.2.0. (propagated-inputs `(("python-debtcollector" ,python-debtcollector) ("python-oslo.config" ,python-oslo.config) @@ -496,6 +543,8 @@ handlers and support for context specific logging (like resource id’s etc).") (base32 "00s03krhf833gs76aw5ns32w9m1i4hx6x6d9g82m0j5wyqk0sci4")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires python-oslo.utils >= 3.2.0. (propagated-inputs `(("python-iso8601" ,python-iso8601) ("python-netaddr" ,python-netaddr) @@ -520,18 +569,74 @@ in transmittable and storable formats, such as JSON and MessagePack.") (define-public python2-oslo.serialization (package-with-python2 python-oslo.serialization)) +(define-public python-reno + (package + (name "python-reno") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "reno" version)) + (sha256 + (base32 "1i2wnn5fnm3jm5774pahg000q0lma5i913hml91bbbm2mybphndd")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'init-git + (lambda _ + ;; reno expects a git repo + (zero? (system* "git" "init"))))))) + (propagated-inputs + `(("python-babel" ,python-babel) + ("python-dulwich" ,python-dulwich) + ("python-pyyaml" ,python-pyyaml) + ("python-six" ,python-six))) + (native-inputs + `(("python-testtools" ,python-testtools) + ("python-pbr" ,python-pbr) + ("python-testscenarios" ,python-testscenarios) + ("python-testrepository" ,python-testrepository) + ("python-mock" ,python-mock) + ("python-oslotest" ,python-oslotest) + ("gnupg" ,gnupg) + ("git" ,git))) + (home-page "http://docs.openstack.org/developer/reno/") + (synopsis "Release notes manager") + (description "Reno is a tool for storing release notes in a git repository +and building documentation from them.") + (properties `((python2-variant . ,(delay python2-reno)))) + (license asl2.0))) + +(define-public python2-reno + (package (inherit (package-with-python2 + (strip-python2-variant python-reno))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) + (define-public python-oslosphinx (package (name "python-oslosphinx") - (version "4.3.0") + (version "4.10.0") (source (origin (method url-fetch) (uri (pypi-uri "oslosphinx" version)) (sha256 (base32 - "0cz8ym4i1n4rgljlqhyhfkpgdmid7nkb909k8r8nk186m9cmpla2")))) + "09mxqyabi68f3s3arvdhlhq0mn38vf74jbsfcg84151hcj6czhnl")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Note: Upstream tests would have also built the release notes. + ;; That only would work if we were in a git checkout. + ;; Therefore, we don't do it here. + (zero? (system* "python" "setup.py" "build_sphinx"))))))) (propagated-inputs `(("python-requests" ,python-requests))) (native-inputs @@ -581,10 +686,16 @@ from the OpenStack project.") (description "The Oslo Test framework provides common fixtures, support for debugging, and better support for mocking results.") + (properties `((python2-variant . ,(delay python2-oslotest)))) (license asl2.0))) (define-public python2-oslotest - (package-with-python2 python-oslotest)) + (package (inherit (package-with-python2 + (strip-python2-variant python-oslotest))) + (arguments + `(#:python ,python-2 + ;; FIXME: 'subunit.run discover: error: no such option: --list' + #:tests? #f)))) (define-public python-oslo.utils (package @@ -603,6 +714,8 @@ and better support for mocking results.") ;; phase. (delete-file "oslo_utils/tests/test_netutils.py"))))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires oslo.config >= 2.7.0. (propagated-inputs `(("python-debtcollector" ,python-debtcollector) ("python-oslo.i18n" ,python-oslo.i18n) @@ -616,6 +729,8 @@ and better support for mocking results.") `(("python-babel" ,python-babel) ("python-pbr" ,python-pbr) ;; Tests. + ("python-bandit" ,python-bandit) + ("python-oslo.config" ,python-oslo.config) ("python-oslotest" ,python-oslotest) ("python-mock" ,python-mock) ("python-mox3" ,python-mox3) @@ -643,6 +758,8 @@ handling.") (base32 "1w4csvkah67rfpxylxnvs2s3594i0f9isy8pf4gnsqs5zirvjaa4")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Many tests are failing. (native-inputs `(("python-sphinx" ,python-sphinx) ;; and some packages for the tests @@ -749,6 +866,10 @@ permanence.") (define-public python2-swiftclient (let ((swiftclient (package-with-python2 python-swiftclient))) (package (inherit swiftclient) + (arguments + `(#:python ,python-2 + ;; FIXME: subunit.run discover: error: no such option: --list + #:tests? #f)) (propagated-inputs `(("python2-futures" ,python2-futures) ("python2-requests" ,python2-requests) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8291740998..c608f397dc 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -219,9 +219,9 @@ the Nix package manager.") ;; ;; Note: use a very short commit id; with a longer one, the limit on ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "d9da3a757d3081403081577c4e07763c9b809043")) + (let ((commit "1162418ee88f155f6b14fd8926479c2176e40e76")) (package (inherit guix-0.12.0) - (version (string-append "0.12.0-4." (string-take commit 4))) + (version (string-append "0.12.0-5." (string-take commit 4))) (source (origin (method git-fetch) (uri (git-reference @@ -231,7 +231,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "17w9jdzm3lvfbchx7qrlkczp2jsfsi6v8cpfqh290cip5gxgz9bn")) + "16pxqbywhayazdgg9l19frigncmyq20j5fvaq4zgvm0iidndhfja")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.12.0) @@ -445,13 +445,13 @@ transactions from C or Python.") (define-public diffoscope (package (name "diffoscope") - (version "63") + (version "77") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "12q5d2nszql1g4jf2ss863v0wpvvhrkaivqzhy6af9m9zwvw0p0k")))) + "0wrb6pl88611frxj19kq3vikhbld40fy1ncrskb1iayxsmbfcbn9")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -464,12 +464,7 @@ transactions from C or Python.") (("'python-magic',") "")))) (add-after 'unpack 'embed-tool-references (lambda* (#:key inputs #:allow-other-keys) - (substitute* "diffoscope/difference.py" - (("@tool_required\\('colordiff'\\)") "") - (("\\[\"colordiff\"") - (string-append "[\"" (which "colordiff") "\""))) - (substitute* "diffoscope/comparators/utils.py" - (("@tool_required\\('xxd'\\)") "") + (substitute* "diffoscope/comparators/utils/compare.py" (("\\['xxd',") (string-append "['" (which "xxd") "',"))) (substitute* "diffoscope/comparators/elf.py" diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 0a3b4b64e7..811173cae4 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -32,6 +32,7 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages aidc) #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages glib) @@ -282,7 +283,7 @@ any X11 window.") (define-public password-store (package (name "password-store") - (version "1.6.5") + (version "1.7") (source (origin (method url-fetch) (uri @@ -290,7 +291,7 @@ any X11 window.") name "-" version ".tar.xz")) (sha256 (base32 - "05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik")))) + "002mw7j0m33bw483rllzhcf41wp3ixka8yma6kqrfaj57jyw66hn")))) (build-system gnu-build-system) (arguments '(#:phases @@ -302,7 +303,7 @@ any X11 window.") (let ((out (assoc-ref outputs "out")) (path (map (lambda (pkg) (string-append (assoc-ref inputs pkg) "/bin")) - '("coreutils" "getopt" "git" "gnupg" "pwgen" + '("coreutils" "getopt" "git" "gnupg" "qrencode" "sed" "tree" "which" "xclip")))) (wrap-program (string-append out "/bin/pass") `("PATH" ":" prefix (,(string-join path ":")))) @@ -325,7 +326,7 @@ any X11 window.") `(("getopt" ,util-linux) ("git" ,git) ("gnupg" ,gnupg) - ("pwgen" ,pwgen) + ("qrencode" ,qrencode) ("sed" ,sed) ("tree" ,tree) ("which" ,which) diff --git a/gnu/packages/patches/arb-ldconfig.patch b/gnu/packages/patches/arb-ldconfig.patch deleted file mode 100644 index 478ec5a6f0..0000000000 --- a/gnu/packages/patches/arb-ldconfig.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -u -r arb-2.8.1.orig/configure arb-2.8.1/configure ---- arb-2.8.1.orig/configure 2015-12-31 17:30:01.000000000 +0100 -+++ arb-2.8.1/configure 2016-01-20 16:41:41.336726596 +0100 -@@ -647,6 +647,7 @@ - echo "ARB_SHARED=$SHARED" >> Makefile - echo "ARB_LIB=$ARB_LIB" >> Makefile - echo "ARB_LIBNAME=$ARB_LIBNAME" >> Makefile -+echo "ARB_MAJOR=$ARB_MAJOR" >> Makefile - echo "ARB_SOLIB=$ARB_SOLIB" >> Makefile - echo "EXEEXT=$EXEEXT" >> Makefile - echo "PREFIX=$PREFIX" >> Makefile -diff -u -r arb-2.8.1.orig/Makefile.in arb-2.8.1/Makefile.in ---- arb-2.8.1.orig/Makefile.in 2015-12-31 17:30:01.000000000 +0100 -+++ arb-2.8.1/Makefile.in 2016-01-20 16:30:32.575298517 +0100 -@@ -101,6 +101,7 @@ - $(LDCONFIG) -n "$(CURDIR)"; \ - fi - ln -sf "$(ARB_LIB)" "$(ARB_LIBNAME)"; \ -+ ln -sf "$(ARB_LIB)" "$(ARB_LIBNAME).$(ARB_MAJOR)"; \ - - libarb.a: $(OBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces - $(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) static || exit $$?;)) diff --git a/gnu/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch b/gnu/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch new file mode 100644 index 0000000000..b3a198c499 --- /dev/null +++ b/gnu/packages/patches/gnupg-2.1-fix-Y2038-test-failure.patch @@ -0,0 +1,67 @@ +Fix a Y2038 test failure on systems where time_t is a signed 32-bit value: + +https://bugs.gnupg.org/gnupg/issue2988 + +Patch copied from upstream source repository: + +https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=commit;h=de3838372ae3cdecbd83eea2c53c8e2656d93052 + +From de3838372ae3cdecbd83eea2c53c8e2656d93052 Mon Sep 17 00:00:00 2001 +From: Justus Winter +Date: Tue, 7 Mar 2017 12:18:59 +0100 +Subject: [PATCH] tests: Avoid overflowing signed 32 bit time_t. + +* tests/openpgp/quick-key-manipulation.scm: Use expiration times in +the year 2038 instead of 2105 to avoid overflowing 32 bit time_t. +time_t is used internally to parse the expiraton time from the iso +timestamp. + +GnuPG-bug-id: 2988 +Signed-off-by: Justus Winter +--- + tests/openpgp/quick-key-manipulation.scm | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +diff --git a/tests/openpgp/quick-key-manipulation.scm b/tests/openpgp/quick-key-manipulation.scm +index 10f0bfe21..08ef62613 100755 +--- a/tests/openpgp/quick-key-manipulation.scm ++++ b/tests/openpgp/quick-key-manipulation.scm +@@ -125,8 +125,13 @@ + (default default never) + (rsa "sign auth encr" "seconds=600") ;; GPGME uses this + (rsa "auth,encr" "2") ;; "without a letter, days is assumed" +- (rsa "sign" "2105-01-01") ;; "last year GnuPG can represent is 2105" +- (rsa "sign" "21050101T115500") ;; "last year GnuPG can represent is 2105" ++ ;; Sadly, the timestamp is truncated by the use of time_t on ++ ;; systems where time_t is a signed 32 bit value. ++ (rsa "sign" "2038-01-01") ;; unix millennium ++ (rsa "sign" "20380101T115500") ;; unix millennium ++ ;; Once fixed, we can use later timestamps: ++ ;; (rsa "sign" "2105-01-01") ;; "last year GnuPG can represent is 2105" ++ ;; (rsa "sign" "21050101T115500") ;; "last year GnuPG can represent is 2105" + (rsa sign "2d") + (rsa1024 sign "2w") + (rsa2048 encr "2m") +@@ -157,7 +162,8 @@ + (lambda (subkey) + (assert (= 1 (:alg subkey))) + (assert (string-contains? (:cap subkey) "s")) +- (assert (time-matches? 4260207600 ;; 2105-01-01 ++ (assert (time-matches? 2145916800 ;; 2038-01-01 ++ ;; 4260207600 ;; 2105-01-01 + (string->number (:expire subkey)) + ;; This is off by 12h, but I guess it just + ;; choses the middle of the day. +@@ -165,7 +171,8 @@ + (lambda (subkey) + (assert (= 1 (:alg subkey))) + (assert (string-contains? (:cap subkey) "s")) +- (assert (time-matches? 4260254100 ;; UTC 2105-01-01 11:55:00 ++ (assert (time-matches? 2145959700 ;; UTC 2038-01-01 11:55:00 ++ ;; 4260254100 ;; UTC 2105-01-01 11:55:00 + (string->number (:expire subkey)) + (minutes->seconds 5)))) + (lambda (subkey) +-- +2.12.0 + diff --git a/gnu/packages/patches/gst-plugins-base-fix-test-on-32bit.patch b/gnu/packages/patches/gst-plugins-base-fix-test-on-32bit.patch deleted file mode 100644 index 4c6c7ed06e..0000000000 --- a/gnu/packages/patches/gst-plugins-base-fix-test-on-32bit.patch +++ /dev/null @@ -1,32 +0,0 @@ -This fixes a test failure on i686. - -Patch copied from upstream source repository: - -https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=5e2e111627871c566ffc6607eda8f4ef4699d040 - -From 5e2e111627871c566ffc6607eda8f4ef4699d040 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Thu, 2 Feb 2017 14:56:39 +0200 -Subject: [PATCH] multifdsink: Make sure to use a 64 bit integer for the - units-max property - ---- - tests/check/elements/multifdsink.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/check/elements/multifdsink.c b/tests/check/elements/multifdsink.c -index af138cc92..951b1b9fa 100644 ---- a/tests/check/elements/multifdsink.c -+++ b/tests/check/elements/multifdsink.c -@@ -869,7 +869,7 @@ GST_START_TEST (test_client_kick) - gint i, initial_buffers = 3, num_buffers = 0; - - sink = setup_multifdsink (); -- g_object_set (sink, "units-max", initial_buffers, NULL); -+ g_object_set (sink, "units-max", (gint64) initial_buffers, NULL); - - fail_if (pipe (pfd1) == -1); - fail_if (pipe (pfd2) == -1); --- -2.11.0 - diff --git a/gnu/packages/patches/jacal-fix-texinfo.patch b/gnu/packages/patches/jacal-fix-texinfo.patch new file mode 100644 index 0000000000..83e44a3164 --- /dev/null +++ b/gnu/packages/patches/jacal-fix-texinfo.patch @@ -0,0 +1,92 @@ +Fix the broken Texinfo in the Jacal package documentation + +--- jacal/jacal.texi,orig 2017-02-23 20:35:55.303980444 +0100 ++++ jacal/jacal.texi 2017-02-23 20:53:14.539024674 +0100 +@@ -343,7 +343,7 @@ + + With the standard input grammar, the precedence of @samp{-} as a prefix + behaves strangely. @code{a^-b*c} becomes @code{a^(-b*c)} while +-@code{@result{a^b*c} (a^b)*c}. ++@code{a^b*c @result{} (a^b)*c}. + + Using @code{divide} to divide a polynomial by an integer does not work. + +@@ -675,8 +675,9 @@ + e1: --------- + a + @end example ++@end deffn + +-@deffnx Command suchthat var exp ++@deffn Command suchthat var exp + + If an expression rather than an equation is given to @code{suchthat}, it + is as though the equation @code{@var{exp}=0} was given. +@@ -688,8 +689,9 @@ + e2: --------- + a + @end example ++@end deffn + +-@deffnx Operator | var exp_or_eqn ++@deffn Operator | var exp_or_eqn + + An alternative infix notation is also available for @code{suchthat}. + +@@ -857,8 +859,9 @@ + + Returns the degree of polynomial or equation @var{poly} in variable + @var{var}. ++@end deffn + +-@deffnx Operator degree poly ++@deffn Operator degree poly + + Returns the total-degree, the degree of its highest degree monomial, + of polynomial or equation @var{poly}. +@@ -1016,10 +1019,12 @@ + Returns @var{poly1} reduced with respect to @var{poly2} (or @var{eqn}) + and @var{var}. If @var{poly2} is univariate, the third argument is not + needed. ++@end deffn + +-@deffnx Command mod poly1 n ++@deffn Command mod poly1 n + Returns @var{poly1} with all the coefficients taken modulo @var{n}. +-@deffnx Command mod poly1 ++@end deffn ++@deffn Command mod poly1 + Returns @var{poly1} with all the coefficients taken modulo the + current modulus. + +@@ -1220,8 +1225,9 @@ + e1: -1 2 3 5 + @end group + @end example ++@end deffn + +-@deffnx Command factor polyratio ++@deffn Command factor polyratio + Given a univariate ratio of polynomials @var{polyratio}, returns a + matrix of factors and exponents. + +@@ -2028,7 +2034,7 @@ + formed from the pair-wise products of components of the inputs. For + example, for the input tensors @code{x[a,b]} and @code{y[c]} + @example +-@result{z:tmult(x,y);} z[a,b,c] = x[a,b]*y[c] ++z:tmult(x,y); @result{} z[a,b,c] = x[a,b]*y[c] + @end example + + With an additional argument, @code{tmult} will produce the inner product +@@ -2464,8 +2470,9 @@ + If you do not wish to return to Jacal but really want to terminate the + session and return to the operating system, then after typing + @code{qed();}, type @code{(slib:exit)} or use @code{quit}. ++@end deffn + +-@deffnx Command quit ++@deffn Command quit + Exit directly from Jacal to the operating system. You will not be able + to continue your Jacal session. + diff --git a/gnu/packages/patches/kio-CVE-2017-6410.patch b/gnu/packages/patches/kio-CVE-2017-6410.patch new file mode 100644 index 0000000000..748636f806 --- /dev/null +++ b/gnu/packages/patches/kio-CVE-2017-6410.patch @@ -0,0 +1,53 @@ +Fix CVE-2017-6410, "Information Leak when accessing https when using a +malicious PAC file": + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6410 +https://www.kde.org/info/security/advisory-20170228-1.txt + +Patch copied from upstream source repository: + +https://cgit.kde.org/kio.git/commit/?id=f9d0cb47cf94e209f6171ac0e8d774e68156a6e4 + +From f9d0cb47cf94e209f6171ac0e8d774e68156a6e4 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Tue, 28 Feb 2017 19:00:48 +0100 +Subject: Sanitize URLs before passing them to FindProxyForURL + +Remove user/password information +For https: remove path and query + +Thanks to safebreach.com for reporting the problem + +CCMAIL: yoni.fridburg@safebreach.com +CCMAIL: amit.klein@safebreach.com +CCMAIL: itzik.kotler@safebreach.com +--- + src/kpac/script.cpp | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/kpac/script.cpp b/src/kpac/script.cpp +index a0235f7..2485c54 100644 +--- a/src/kpac/script.cpp ++++ b/src/kpac/script.cpp +@@ -754,9 +754,16 @@ QString Script::evaluate(const QUrl &url) + } + } + ++ QUrl cleanUrl = url; ++ cleanUrl.setUserInfo(QString()); ++ if (cleanUrl.scheme() == QLatin1String("https")) { ++ cleanUrl.setPath(QString()); ++ cleanUrl.setQuery(QString()); ++ } ++ + QScriptValueList args; +- args << url.url(); +- args << url.host(); ++ args << cleanUrl.url(); ++ args << cleanUrl.host(); + + QScriptValue result = func.call(QScriptValue(), args); + if (result.isError()) { +-- +cgit v0.11.2 + diff --git a/gnu/packages/patches/libssh-0.6.5-CVE-2016-0739.patch b/gnu/packages/patches/libssh-0.6.5-CVE-2016-0739.patch deleted file mode 100644 index a5fdd7ffff..0000000000 --- a/gnu/packages/patches/libssh-0.6.5-CVE-2016-0739.patch +++ /dev/null @@ -1,77 +0,0 @@ -Fix CVE-2016-0739 (Weak Diffie-Hellman secret generation in -dh_generate_x() and dh_generate_y()). - -"Due to a byte/bit confusion, the DH secret was too short. This file was -completely reworked and will be commited in a future version." -Source: -https://git.libssh.org/projects/libssh.git/commit/?id=f8d0026c65fc8a55748ae481758e2cf376c26c86 - -This patch was created by upstream for libssh-0.7.3, but applied without -modification to libssh-0.6.3 by Debian. In Guix, we apply it without -modification to libssh-0.6.5. - -References: -https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2016-0739 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0739 -https://security-tracker.debian.org/tracker/CVE-2016-0739 - ---- - src/dh.c | 22 +++++++++++++++++----- - 1 file changed, 17 insertions(+), 5 deletions(-) - -diff --git a/src/dh.c b/src/dh.c -index e489a1d..d27b66e 100644 ---- a/src/dh.c -+++ b/src/dh.c -@@ -227,15 +227,21 @@ void ssh_crypto_finalize(void) { - } - - int dh_generate_x(ssh_session session) { -+ int keysize; -+ if (session->next_crypto->kex_type == SSH_KEX_DH_GROUP1_SHA1) { -+ keysize = 1023; -+ } else { -+ keysize = 2047; -+ } - session->next_crypto->x = bignum_new(); - if (session->next_crypto->x == NULL) { - return -1; - } - - #ifdef HAVE_LIBGCRYPT -- bignum_rand(session->next_crypto->x, 128); -+ bignum_rand(session->next_crypto->x, keysize); - #elif defined HAVE_LIBCRYPTO -- bignum_rand(session->next_crypto->x, 128, 0, -1); -+ bignum_rand(session->next_crypto->x, keysize, -1, 0); - #endif - - /* not harder than this */ -@@ -248,15 +254,21 @@ int dh_generate_x(ssh_session session) { - - /* used by server */ - int dh_generate_y(ssh_session session) { -- session->next_crypto->y = bignum_new(); -+ int keysize; -+ if (session->next_crypto->kex_type == SSH_KEX_DH_GROUP1_SHA1) { -+ keysize = 1023; -+ } else { -+ keysize = 2047; -+ } -+ session->next_crypto->y = bignum_new(); - if (session->next_crypto->y == NULL) { - return -1; - } - - #ifdef HAVE_LIBGCRYPT -- bignum_rand(session->next_crypto->y, 128); -+ bignum_rand(session->next_crypto->y, keysize); - #elif defined HAVE_LIBCRYPTO -- bignum_rand(session->next_crypto->y, 128, 0, -1); -+ bignum_rand(session->next_crypto->y, keysize, -1, 0); - #endif - - /* not harder than this */ --- -cgit v0.12 - diff --git a/gnu/packages/patches/matplotlib-setupext-tk.patch b/gnu/packages/patches/matplotlib-setupext-tk.patch deleted file mode 100644 index 37c3d686e0..0000000000 --- a/gnu/packages/patches/matplotlib-setupext-tk.patch +++ /dev/null @@ -1,34 +0,0 @@ -Use 'pkg-config' instead of heuristics to find 'tk' flags. - ---- matplotlib-1.4.3/setupext.py.orig 2015-12-01 14:21:19.554417453 +0100 -+++ matplotlib-1.4.3/setupext.py 2015-12-02 10:39:47.282363530 +0100 -@@ -1457,7 +1457,7 @@ - p = subprocess.Popen( - '. %s ; eval echo ${%s}' % (file, varname), - shell=True, -- executable="/bin/sh", -+ executable="sh", - stdout=subprocess.PIPE) - result = p.communicate()[0] - return result.decode('ascii') -@@ -1601,8 +1601,19 @@ - # of distros. - - # Query Tcl/Tk system for library paths and version string -+ def getoutput(s): -+ ret = os.popen(s).read().strip() -+ return ret - try: -- tcl_lib_dir, tk_lib_dir, tk_ver = self.query_tcltk() -+ pkg_config_libs = getoutput('pkg-config --libs-only-L tk').split() -+ # drop '-L' part of strings -+ pkg_config_libs = [s[2:] for s in pkg_config_libs] -+ pkg_config_ver = getoutput('pkg-config --modversion tk') -+ tk_ver = re.match(r"(\d+.\d+)[\d.]*", pkg_config_ver).group(1) -+ tcl_lib_dir = next(s for s in pkg_config_libs -+ if re.match(r".*-tcl-.*", s)) + '/tcl' + tk_ver -+ tk_lib_dir = next(s for s in pkg_config_libs -+ if re.match(r".*-tk-.*", s)) + '/tk' + tk_ver - except: - tk_ver = '' - result = self.hardcoded_tcl_config() diff --git a/gnu/packages/patches/mupdf-CVE-2017-5896.patch b/gnu/packages/patches/mupdf-CVE-2017-5896.patch new file mode 100644 index 0000000000..1537ecc896 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2017-5896.patch @@ -0,0 +1,63 @@ +Fix CVE-2017-5896: + +https://bugs.ghostscript.com/show_bug.cgi?id=697515 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5896 +http://www.openwall.com/lists/oss-security/2017/02/10/1 +https://security-tracker.debian.org/tracker/CVE-2017-5896 +https://blogs.gentoo.org/ago/2017/02/09/mupdf-use-after-free-in-fz_subsample_pixmap-pixmap-c/ + +Patch lifted from upstream source repository: + +http://git.ghostscript.com/?p=mupdf.git;h=2c4e5867ee699b1081527bc6c6ea0e99a35a5c27 + +From 2c4e5867ee699b1081527bc6c6ea0e99a35a5c27 Mon Sep 17 00:00:00 2001 +From: Robin Watts +Date: Thu, 9 Feb 2017 07:12:16 -0800 +Subject: [PATCH] bug 697515: Fix out of bounds read in fz_subsample_pixmap + +Pointer arithmetic for final special case was going wrong. +--- + source/fitz/pixmap.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/source/fitz/pixmap.c b/source/fitz/pixmap.c +index a8317127..f1291dc2 100644 +--- a/source/fitz/pixmap.c ++++ b/source/fitz/pixmap.c +@@ -1104,6 +1104,7 @@ fz_subsample_pixmap_ARM(unsigned char *ptr, int w, int h, int f, int factor, + "@STACK:r1,<9>,factor,n,fwd,back,back2,fwd2,divX,back4,fwd4,fwd3,divY,back5,divXY\n" + "ldr r4, [r13,#4*22] @ r4 = divXY \n" + "ldr r5, [r13,#4*11] @ for (nn = n; nn > 0; n--) { \n" ++ "ldr r8, [r13,#4*17] @ r8 = back4 \n" + "18: @ \n" + "mov r14,#0 @ r14= v = 0 \n" + "sub r5, r5, r1, LSL #8 @ for (xx = x; xx > 0; x--) { \n" +@@ -1120,7 +1121,7 @@ fz_subsample_pixmap_ARM(unsigned char *ptr, int w, int h, int f, int factor, + "mul r14,r4, r14 @ r14= v *= divX \n" + "mov r14,r14,LSR #16 @ r14= v >>= 16 \n" + "strb r14,[r9], #1 @ *d++ = r14 \n" +- "sub r0, r0, r8 @ s -= back2 \n" ++ "sub r0, r0, r8 @ s -= back4 \n" + "subs r5, r5, #1 @ n-- \n" + "bgt 18b @ } \n" + "21: @ \n" +@@ -1249,6 +1250,7 @@ fz_subsample_pixmap(fz_context *ctx, fz_pixmap *tile, int factor) + x += f; + if (x > 0) + { ++ int back4 = x * n - 1; + div = x * y; + for (nn = n; nn > 0; nn--) + { +@@ -1263,7 +1265,7 @@ fz_subsample_pixmap(fz_context *ctx, fz_pixmap *tile, int factor) + s -= back5; + } + *d++ = v / div; +- s -= back2; ++ s -= back4; + } + } + } +-- +2.12.0 + diff --git a/gnu/packages/patches/mupdf-CVE-2017-5991.patch b/gnu/packages/patches/mupdf-CVE-2017-5991.patch new file mode 100644 index 0000000000..1fa6dc3466 --- /dev/null +++ b/gnu/packages/patches/mupdf-CVE-2017-5991.patch @@ -0,0 +1,101 @@ +Fix CVE-2017-5991: + +https://bugs.ghostscript.com/show_bug.cgi?id=697500 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5991 +https://security-tracker.debian.org/tracker/CVE-2017-5991 + +Patch lifted from upstream source repository: + +http://git.ghostscript.com/?p=mupdf.git;h=1912de5f08e90af1d9d0a9791f58ba3afdb9d465 + +From 1912de5f08e90af1d9d0a9791f58ba3afdb9d465 Mon Sep 17 00:00:00 2001 +From: Robin Watts +Date: Thu, 9 Feb 2017 15:49:15 +0000 +Subject: [PATCH] Bug 697500: Fix NULL ptr access. + +Cope better with errors during rendering - avoid letting the +gstate stack get out of sync. + +This avoids us ever getting into the situation of popping +a clip when we should be popping a mask or a group. This was +causing an unexpected case in the painting. +--- + source/pdf/pdf-op-run.c | 26 ++++++++++++++++++-------- + 1 file changed, 18 insertions(+), 8 deletions(-) + +diff --git a/source/pdf/pdf-op-run.c b/source/pdf/pdf-op-run.c +index a3ea895d..f1eac8d3 100644 +--- a/source/pdf/pdf-op-run.c ++++ b/source/pdf/pdf-op-run.c +@@ -1213,6 +1213,7 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf + pdf_run_processor *pr = (pdf_run_processor *)proc; + pdf_gstate *gstate = NULL; + int oldtop = 0; ++ int oldbot = -1; + fz_matrix local_transform = *transform; + softmask_save softmask = { NULL }; + int gparent_save; +@@ -1232,16 +1233,17 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf + fz_var(cleanup_state); + fz_var(gstate); + fz_var(oldtop); ++ fz_var(oldbot); + + gparent_save = pr->gparent; + pr->gparent = pr->gtop; ++ oldtop = pr->gtop; + + fz_try(ctx) + { + pdf_gsave(ctx, pr); + + gstate = pr->gstate + pr->gtop; +- oldtop = pr->gtop; + + pdf_xobject_bbox(ctx, xobj, &xobj_bbox); + pdf_xobject_matrix(ctx, xobj, &xobj_matrix); +@@ -1302,12 +1304,25 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf + + doc = pdf_get_bound_document(ctx, xobj->obj); + ++ oldbot = pr->gbot; ++ pr->gbot = pr->gtop; ++ + pdf_process_contents(ctx, (pdf_processor*)pr, doc, resources, xobj->obj, NULL); + } + fz_always(ctx) + { ++ /* Undo any gstate mismatches due to the pdf_process_contents call */ ++ if (oldbot != -1) ++ { ++ while (pr->gtop > pr->gbot) ++ { ++ pdf_grestore(ctx, pr); ++ } ++ pr->gbot = oldbot; ++ } ++ + if (cleanup_state >= 3) +- pdf_grestore(ctx, pr); /* Remove the clippath */ ++ pdf_grestore(ctx, pr); /* Remove the state we pushed for the clippath */ + + /* wrap up transparency stacks */ + if (transparency) +@@ -1341,13 +1356,8 @@ pdf_run_xobject(fz_context *ctx, pdf_run_processor *proc, pdf_xobject *xobj, pdf + pr->gstate[pr->gparent].ctm = gparent_save_ctm; + pr->gparent = gparent_save; + +- if (gstate) +- { +- while (oldtop < pr->gtop) +- pdf_grestore(ctx, pr); +- ++ while (oldtop < pr->gtop) + pdf_grestore(ctx, pr); +- } + + pdf_unmark_obj(ctx, xobj->obj); + } +-- +2.12.0 + diff --git a/gnu/packages/patches/nss-pkgconfig.patch b/gnu/packages/patches/nss-pkgconfig.patch index e611f69bea..a33e05fcf2 100644 --- a/gnu/packages/patches/nss-pkgconfig.patch +++ b/gnu/packages/patches/nss-pkgconfig.patch @@ -221,5 +221,5 @@ Later adapted to apply cleanly to nss-3.21. RELEASE = nss --DIRS = coreconf lib cmd external_tests -+DIRS = coreconf lib cmd external_tests config +-DIRS = coreconf lib cmd gtests ++DIRS = coreconf lib cmd gtests config diff --git a/gnu/packages/patches/pcre2-CVE-2016-3191.patch b/gnu/packages/patches/pcre2-CVE-2016-3191.patch deleted file mode 100644 index 80f9d3d4f1..0000000000 --- a/gnu/packages/patches/pcre2-CVE-2016-3191.patch +++ /dev/null @@ -1,179 +0,0 @@ -Fixes CVE-2016-3191 (remote execution of arbitrary code or denial of -service (stack-based buffer overflow) via a crafted regular expression). - -See . - -This is svn r489 at , omitting the -changes to 'testdata/testoutput8-16-4', which does not exist in the -source tarball. - -git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@489 6239d852-aaf2-0410-a92c-79f79f948069 ---- - ChangeLog | 4 ++++ - src/pcre2_compile.c | 16 ++++++++++++++-- - testdata/testinput8 | 2 ++ - testdata/testoutput8-16-2 | 3 +++ - testdata/testoutput8-16-3 | 3 +++ - testdata/testoutput8-16-4 | 3 +++ - testdata/testoutput8-32-2 | 3 +++ - testdata/testoutput8-32-3 | 3 +++ - testdata/testoutput8-32-4 | 3 +++ - testdata/testoutput8-8-2 | 3 +++ - testdata/testoutput8-8-3 | 3 +++ - testdata/testoutput8-8-4 | 3 +++ - 12 files changed, 47 insertions(+), 2 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 3ce0207..65e333e 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -58,6 +58,10 @@ some head-scratching the next time this happens. - assertion, caused pcre2test to output a very large number of spaces when the - callout was taken, making the program appearing to loop. - -+12. A pattern that included (*ACCEPT) in the middle of a sufficiently deeply -+nested set of parentheses of sufficient size caused an overflow of the -+compiling workspace (which was diagnosed, but of course is not desirable). -+ - - Version 10.21 12-January-2016 - ----------------------------- -diff --git a/src/pcre2_compile.c b/src/pcre2_compile.c -index e33d620..887fbfd 100644 ---- a/src/pcre2_compile.c -+++ b/src/pcre2_compile.c -@@ -5901,10 +5901,22 @@ for (;; ptr++) - goto FAILED; - } - cb->had_accept = TRUE; -+ -+ /* In the first pass, just accumulate the length required; -+ otherwise hitting (*ACCEPT) inside many nested parentheses can -+ cause workspace overflow. */ -+ - for (oc = cb->open_caps; oc != NULL; oc = oc->next) - { -- *code++ = OP_CLOSE; -- PUT2INC(code, 0, oc->number); -+ if (lengthptr != NULL) -+ { -+ *lengthptr += CU2BYTES(1) + IMM2_SIZE; -+ } -+ else -+ { -+ *code++ = OP_CLOSE; -+ PUT2INC(code, 0, oc->number); -+ } - } - setverb = *code++ = - (cb->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT; -diff --git a/testdata/testinput8 b/testdata/testinput8 -index ca3b1b9..7e2a1f0 100644 ---- a/testdata/testinput8 -+++ b/testdata/testinput8 -@@ -182,4 +182,6 @@ - - /((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+ - # End of testinput8 -diff --git a/testdata/testoutput8-16-2 b/testdata/testoutput8-16-2 -index 05669bb..a5e8dec 100644 ---- a/testdata/testoutput8-16-2 -+++ b/testdata/testoutput8-16-2 -@@ -1027,4 +1027,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 186 at offset 490: regular expression is too complicated -+ - # End of testinput8 -diff --git a/testdata/testoutput8-16-3 b/testdata/testoutput8-16-3 -index 31884e1..36133b3 100644 ---- a/testdata/testoutput8-16-3 -+++ b/testdata/testoutput8-16-3 -@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 -diff --git a/testdata/testoutput8-32-2 b/testdata/testoutput8-32-2 -index babd0c7..99c4fad 100644 ---- a/testdata/testoutput8-32-2 -+++ b/testdata/testoutput8-32-2 -@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 -diff --git a/testdata/testoutput8-32-3 b/testdata/testoutput8-32-3 -index babd0c7..99c4fad 100644 ---- a/testdata/testoutput8-32-3 -+++ b/testdata/testoutput8-32-3 -@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 -diff --git a/testdata/testoutput8-32-4 b/testdata/testoutput8-32-4 -index babd0c7..99c4fad 100644 ---- a/testdata/testoutput8-32-4 -+++ b/testdata/testoutput8-32-4 -@@ -1023,4 +1023,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 -diff --git a/testdata/testoutput8-8-2 b/testdata/testoutput8-8-2 -index 6a9aa0a..6dc1f42 100644 ---- a/testdata/testoutput8-8-2 -+++ b/testdata/testoutput8-8-2 -@@ -1026,4 +1026,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 -diff --git a/testdata/testoutput8-8-3 b/testdata/testoutput8-8-3 -index 2fe1168..ae14946 100644 ---- a/testdata/testoutput8-8-3 -+++ b/testdata/testoutput8-8-3 -@@ -1024,4 +1024,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 -diff --git a/testdata/testoutput8-8-4 b/testdata/testoutput8-8-4 -index 91993b2..6c79956 100644 ---- a/testdata/testoutput8-8-4 -+++ b/testdata/testoutput8-8-4 -@@ -1022,4 +1022,7 @@ Capturing subpattern count = 10 - May match empty string - Subject length lower bound = 0 - -+/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ -+Failed: error 114 at offset 509: missing closing parenthesis -+ - # End of testinput8 --- -2.8.3 - diff --git a/gnu/packages/patches/python-dendropy-fix-tests.patch b/gnu/packages/patches/python-dendropy-fix-tests.patch new file mode 100644 index 0000000000..30ab618ff1 --- /dev/null +++ b/gnu/packages/patches/python-dendropy-fix-tests.patch @@ -0,0 +1,41 @@ +This patch fixes two test failures. It was downloaded from: +https://github.com/jeetsukumaran/DendroPy/commit/93f984bba7a6c588a28ca87f4e557ce283809453 + +From 93f984bba7a6c588a28ca87f4e557ce283809453 Mon Sep 17 00:00:00 2001 +From: jeetsukumaran +Date: Tue, 21 Feb 2017 16:41:01 -0500 +Subject: [PATCH] Update to Python 3 container and iteration semantics + +--- + dendropy/dataio/newickreader.py | 3 ++- + dendropy/datamodel/treemodel.py | 3 +++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/dendropy/dataio/newickreader.py b/dendropy/dataio/newickreader.py +index 6dcf3c5..f978729 100644 +--- a/dendropy/dataio/newickreader.py ++++ b/dendropy/dataio/newickreader.py +@@ -303,7 +303,8 @@ def tree_iter(self, + taxon_symbol_map_fn=taxon_symbol_mapper.require_taxon_for_symbol) + yield tree + if tree is None: +- raise StopIteration ++ # raise StopIteration ++ return + + def _read(self, + stream, +diff --git a/dendropy/datamodel/treemodel.py b/dendropy/datamodel/treemodel.py +index 0ecfe31..73146f0 100644 +--- a/dendropy/datamodel/treemodel.py ++++ b/dendropy/datamodel/treemodel.py +@@ -772,6 +772,9 @@ def __hash__(self): + def __eq__(self, other): + return self is other + ++ def __lt__(self, other): ++ return id(self) < id(other) ++ + ########################################################################### + ### Basic Structure + diff --git a/gnu/packages/patches/python-fake-factory-fix-build-32bit.patch b/gnu/packages/patches/python-fake-factory-fix-build-32bit.patch new file mode 100644 index 0000000000..cb60896fad --- /dev/null +++ b/gnu/packages/patches/python-fake-factory-fix-build-32bit.patch @@ -0,0 +1,36 @@ +These tests fail on 32-bit due to an overflow. + +Upstream bug URL: https://github.com/joke2k/faker/issues/408 + +diff --git a/faker/tests/__init__.py b/faker/tests/__init__.py +index 6026772..58b6b83 100644 +--- a/faker/tests/__init__.py ++++ b/faker/tests/__init__.py +@@ -384,7 +384,6 @@ class FactoryTestCase(unittest.TestCase): + provider = Provider + # test century + self.assertTrue(self._datetime_to_time(provider.date_time_this_century(after_now=False)) <= self._datetime_to_time(datetime.datetime.now())) +- self.assertTrue(self._datetime_to_time(provider.date_time_this_century(before_now=False, after_now=True)) >= self._datetime_to_time(datetime.datetime.now())) + # test decade + self.assertTrue(self._datetime_to_time(provider.date_time_this_decade(after_now=False)) <= self._datetime_to_time(datetime.datetime.now())) + self.assertTrue(self._datetime_to_time(provider.date_time_this_decade(before_now=False, after_now=True)) >= self._datetime_to_time(datetime.datetime.now())) +@@ -413,8 +412,6 @@ class FactoryTestCase(unittest.TestCase): + + # ensure all methods provide timezone aware datetimes + with self.assertRaises(TypeError): +- provider.date_time_this_century(before_now=False, after_now=True, tzinfo=utc) >= datetime.datetime.now() +- with self.assertRaises(TypeError): + provider.date_time_this_decade(after_now=False, tzinfo=utc) <= datetime.datetime.now() + with self.assertRaises(TypeError): + provider.date_time_this_year(after_now=False, tzinfo=utc) <= datetime.datetime.now() +@@ -423,7 +420,6 @@ class FactoryTestCase(unittest.TestCase): + + # test century + self.assertTrue(provider.date_time_this_century(after_now=False, tzinfo=utc) <= datetime.datetime.now(utc)) +- self.assertTrue(provider.date_time_this_century(before_now=False, after_now=True, tzinfo=utc) >= datetime.datetime.now(utc)) + # test decade + self.assertTrue(provider.date_time_this_decade(after_now=False, tzinfo=utc) <= datetime.datetime.now(utc)) + self.assertTrue(provider.date_time_this_decade(before_now=False, after_now=True, tzinfo=utc) >= datetime.datetime.now(utc)) +-- +2.11.1 + diff --git a/gnu/packages/patches/python-faker-fix-build-32bit.patch b/gnu/packages/patches/python-faker-fix-build-32bit.patch new file mode 100644 index 0000000000..466b289012 --- /dev/null +++ b/gnu/packages/patches/python-faker-fix-build-32bit.patch @@ -0,0 +1,36 @@ +These tests fail on 32-bit due to an overflow. + +Upstream bug URL: https://github.com/joke2k/faker/issues/408 + +diff --git a/tests/__init__.py b/tests/__init__.py +index 6026772..58b6b83 100644 +--- a/tests/__init__.py ++++ b/tests/__init__.py +@@ -384,7 +384,6 @@ class FactoryTestCase(unittest.TestCase): + provider = Provider + # test century + self.assertTrue(self._datetime_to_time(provider.date_time_this_century(after_now=False)) <= self._datetime_to_time(datetime.datetime.now())) +- self.assertTrue(self._datetime_to_time(provider.date_time_this_century(before_now=False, after_now=True)) >= self._datetime_to_time(datetime.datetime.now())) + # test decade + self.assertTrue(self._datetime_to_time(provider.date_time_this_decade(after_now=False)) <= self._datetime_to_time(datetime.datetime.now())) + self.assertTrue(self._datetime_to_time(provider.date_time_this_decade(before_now=False, after_now=True)) >= self._datetime_to_time(datetime.datetime.now())) +@@ -413,8 +412,6 @@ class FactoryTestCase(unittest.TestCase): + + # ensure all methods provide timezone aware datetimes + with self.assertRaises(TypeError): +- provider.date_time_this_century(before_now=False, after_now=True, tzinfo=utc) >= datetime.datetime.now() +- with self.assertRaises(TypeError): + provider.date_time_this_decade(after_now=False, tzinfo=utc) <= datetime.datetime.now() + with self.assertRaises(TypeError): + provider.date_time_this_year(after_now=False, tzinfo=utc) <= datetime.datetime.now() +@@ -423,7 +420,6 @@ class FactoryTestCase(unittest.TestCase): + + # test century + self.assertTrue(provider.date_time_this_century(after_now=False, tzinfo=utc) <= datetime.datetime.now(utc)) +- self.assertTrue(provider.date_time_this_century(before_now=False, after_now=True, tzinfo=utc) >= datetime.datetime.now(utc)) + # test decade + self.assertTrue(provider.date_time_this_decade(after_now=False, tzinfo=utc) <= datetime.datetime.now(utc)) + self.assertTrue(provider.date_time_this_decade(before_now=False, after_now=True, tzinfo=utc) >= datetime.datetime.now(utc)) +-- +2.11.1 + diff --git a/gnu/packages/patches/python-pandas-skip-failing-tests.patch b/gnu/packages/patches/python-pandas-skip-failing-tests.patch new file mode 100644 index 0000000000..31fc912d00 --- /dev/null +++ b/gnu/packages/patches/python-pandas-skip-failing-tests.patch @@ -0,0 +1,59 @@ +These tests fail on 32bit architectures. + +Upstream bug URL: https://github.com/pandas-dev/pandas/issues/14866 + +--- a/pandas/tests/test_base.py 2017-03-08 17:49:44.422282717 +0100 ++++ b/pandas/tests/test_base.py 2017-03-08 17:50:59.476701799 +0100 +@@ -363,30 +363,6 @@ + self.assertFalse(result.iat[0]) + self.assertFalse(result.iat[1]) + +- def test_ndarray_compat_properties(self): +- +- for o in self.objs: +- +- # check that we work +- for p in ['shape', 'dtype', 'flags', 'T', 'strides', 'itemsize', +- 'nbytes']: +- self.assertIsNotNone(getattr(o, p, None)) +- self.assertTrue(hasattr(o, 'base')) +- +- # if we have a datetimelike dtype then needs a view to work +- # but the user is responsible for that +- try: +- self.assertIsNotNone(o.data) +- except ValueError: +- pass +- +- self.assertRaises(ValueError, o.item) # len > 1 +- self.assertEqual(o.ndim, 1) +- self.assertEqual(o.size, len(o)) +- +- self.assertEqual(Index([1]).item(), 1) +- self.assertEqual(Series([1]).item(), 1) +- + def test_ops(self): + for op in ['max', 'min']: + for o in self.objs: +--- a/pandas/tools/tests/test_tile.py 2017-03-08 17:47:39.762261841 +0100 ++++ b/pandas/tools/tests/test_tile.py 2017-03-08 17:48:26.831780495 +0100 +@@ -271,19 +271,6 @@ + np.array([0, 0, 1, 1], dtype=np.int8)) + tm.assert_numpy_array_equal(bins, np.array([0, 1.5, 3])) + +- def test_single_bin(self): +- # issue 14652 +- expected = Series([0, 0]) +- +- s = Series([9., 9.]) +- result = cut(s, 1, labels=False) +- tm.assert_series_equal(result, expected) +- +- s = Series([-9., -9.]) +- result = cut(s, 1, labels=False) +- tm.assert_series_equal(result, expected) +- +- + def curpath(): + pth, _ = os.path.split(os.path.abspath(__file__)) + return pth diff --git a/gnu/packages/patches/python-pbr-fix-man-page-support.patch b/gnu/packages/patches/python-pbr-fix-man-page-support.patch new file mode 100644 index 0000000000..b9036f5b01 --- /dev/null +++ b/gnu/packages/patches/python-pbr-fix-man-page-support.patch @@ -0,0 +1,28 @@ +See: https://bugs.launchpad.net/oslosphinx/+bug/1661861 +diff -ur orig/pbr-1.10.0/pbr/builddoc.py pbr-1.10.0/pbr/builddoc.py +--- orig/pbr-1.10.0/pbr/builddoc.py 2016-05-23 21:38:18.000000000 +0200 ++++ pbr-1.10.0/pbr/builddoc.py 2017-02-18 14:01:37.424434317 +0100 +@@ -138,7 +138,8 @@ + sphinx_config.init_values(warnings.warn) + else: + sphinx_config.init_values() +- if self.builder == 'man' and len(sphinx_config.man_pages) == 0: ++ if self.builder == 'man' and len( ++ getattr(sphinx_config, 'man_pages', '')) == 0: + return + app = application.Sphinx( + self.source_dir, self.config_dir, +diff -ur orig/pbr-1.10.0/pbr/util.py pbr-1.10.0/pbr/util.py +--- orig/pbr-1.10.0/pbr/util.py 2016-05-23 21:38:18.000000000 +0200 ++++ pbr-1.10.0/pbr/util.py 2017-02-18 15:36:32.951196795 +0100 +@@ -211,7 +211,9 @@ + parser.read(path) + config = {} + for section in parser.sections(): +- config[section] = dict(parser.items(section)) ++ config[section] = dict() ++ for k, value in parser.items(section): ++ config[section][k.replace('-', '_')] = value + + # Run setup_hooks, if configured + setup_hooks = has_get_option(config, 'global', 'setup_hooks') diff --git a/gnu/packages/patches/python-pygit2-disable-network-tests.patch b/gnu/packages/patches/python-pygit2-disable-network-tests.patch new file mode 100644 index 0000000000..e46d244807 --- /dev/null +++ b/gnu/packages/patches/python-pygit2-disable-network-tests.patch @@ -0,0 +1,64 @@ +Disable tests trying to look up remote servers. + +diff --git a/test/test_credentials.py b/test/test_credentials.py +index 92482d9..9a281e5 100644 +--- a/test/test_credentials.py ++++ b/test/test_credentials.py +@@ -68,39 +68,5 @@ class CredentialCreateTest(utils.NoRepoTestCase): + self.assertEqual((username, None, None, None), cred.credential_tuple) + + +-class CredentialCallback(utils.RepoTestCase): +- def test_callback(self): +- class MyCallbacks(pygit2.RemoteCallbacks): +- @staticmethod +- def credentials(url, username, allowed): +- self.assertTrue(allowed & GIT_CREDTYPE_USERPASS_PLAINTEXT) +- raise Exception("I don't know the password") +- +- url = "https://github.com/github/github" +- remote = self.repo.create_remote("github", url) +- +- self.assertRaises(Exception, lambda: remote.fetch(callbacks=MyCallbacks())) +- +- def test_bad_cred_type(self): +- class MyCallbacks(pygit2.RemoteCallbacks): +- @staticmethod +- def credentials(url, username, allowed): +- self.assertTrue(allowed & GIT_CREDTYPE_USERPASS_PLAINTEXT) +- return Keypair("git", "foo.pub", "foo", "sekkrit") +- +- url = "https://github.com/github/github" +- remote = self.repo.create_remote("github", url) +- self.assertRaises(TypeError, lambda: remote.fetch(callbacks=MyCallbacks())) +- +-class CallableCredentialTest(utils.RepoTestCase): +- +- def test_user_pass(self): +- credentials = UserPass("libgit2", "libgit2") +- callbacks = pygit2.RemoteCallbacks(credentials=credentials) +- +- url = "https://bitbucket.org/libgit2/testgitrepository.git" +- remote = self.repo.create_remote("bb", url) +- remote.fetch(callbacks=callbacks) +- + if __name__ == '__main__': + unittest.main() +diff --git a/test/test_repository.py b/test/test_repository.py +index cfdf01e..c0d8de4 100644 +--- a/test/test_repository.py ++++ b/test/test_repository.py +@@ -538,13 +538,6 @@ class CloneRepositoryTest(utils.NoRepoTestCase): + self.assertTrue('refs/remotes/custom_remote/master' in repo.listall_references()) + self.assertIsNotNone(repo.remotes["custom_remote"]) + +- def test_clone_with_credentials(self): +- repo = clone_repository( +- "https://bitbucket.org/libgit2/testgitrepository.git", +- self._temp_dir, callbacks=pygit2.RemoteCallbacks(credentials=pygit2.UserPass("libgit2", "libgit2"))) +- +- self.assertFalse(repo.is_empty) +- + def test_clone_with_checkout_branch(self): + # create a test case which isolates the remote + test_repo = clone_repository('./test/data/testrepo.git', diff --git a/gnu/packages/patches/python-pyopenssl-skip-network-test.patch b/gnu/packages/patches/python-pyopenssl-skip-network-test.patch new file mode 100644 index 0000000000..a24eaf69a0 --- /dev/null +++ b/gnu/packages/patches/python-pyopenssl-skip-network-test.patch @@ -0,0 +1,50 @@ +This test tries connecting to an external server which is not supported +in the build environment. See discussion at: + +https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00650.html + +diff --git a/tests/test_ssl.py b/tests/test_ssl.py +index ee849fd..60048b8 100644 +--- a/tests/test_ssl.py ++++ b/tests/test_ssl.py +@@ -1180,40 +1180,6 @@ class ContextTests(TestCase, _LoopbackMixin): + TypeError, context.load_verify_locations, None, None, None + ) + +- @pytest.mark.skipif( +- platform == "win32", +- reason="set_default_verify_paths appears not to work on Windows. " +- "See LP#404343 and LP#404344." +- ) +- def test_set_default_verify_paths(self): +- """ +- :py:obj:`Context.set_default_verify_paths` causes the +- platform-specific CA certificate locations to be used for +- verification purposes. +- """ +- # Testing this requires a server with a certificate signed by one +- # of the CAs in the platform CA location. Getting one of those +- # costs money. Fortunately (or unfortunately, depending on your +- # perspective), it's easy to think of a public server on the +- # internet which has such a certificate. Connecting to the network +- # in a unit test is bad, but it's the only way I can think of to +- # really test this. -exarkun +- +- # Arg, verisign.com doesn't speak anything newer than TLS 1.0 +- context = Context(SSLv23_METHOD) +- context.set_default_verify_paths() +- context.set_verify( +- VERIFY_PEER, +- lambda conn, cert, errno, depth, preverify_ok: preverify_ok) +- +- client = socket() +- client.connect(("encrypted.google.com", 443)) +- clientSSL = Connection(context, client) +- clientSSL.set_connect_state() +- clientSSL.do_handshake() +- clientSSL.send(b"GET / HTTP/1.0\r\n\r\n") +- self.assertTrue(clientSSL.recv(1024)) +- + def test_set_default_verify_paths_signature(self): + """ + :py:obj:`Context.set_default_verify_paths` takes no arguments and diff --git a/gnu/packages/patches/python-statsmodels-fix-tests.patch b/gnu/packages/patches/python-statsmodels-fix-tests.patch index 3315ddbd5f..f910b4b5a5 100644 --- a/gnu/packages/patches/python-statsmodels-fix-tests.patch +++ b/gnu/packages/patches/python-statsmodels-fix-tests.patch @@ -1,196 +1,28 @@ -This patch fixes a couple of test failures introduced by changes to the pandas -package. It was extracted from this pull request: +This drops a test that fails with numpy 1.12. -https://github.com/statsmodels/statsmodels/pull/2675 +Upstream bug URL: https://github.com/statsmodels/statsmodels/issues/3541 - -From c9ef60a7bc4407766ab9e9f12c8a6b89013046ee Mon Sep 17 00:00:00 2001 -From: Ralf Gommers -Date: Tue, 20 Oct 2015 07:34:11 +0200 -Subject: [PATCH 1/4] MAINT: fix use of old_behavior kw for numpy.correlate. - Was removed in 1.10.0 - -Numpy PR that removed it: https://github.com/numpy/numpy/pull/5991 - -Closes gh-2667. ---- - statsmodels/tsa/ar_model.py | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/statsmodels/tsa/ar_model.py b/statsmodels/tsa/ar_model.py -index 087a9e0..02984bd 100644 ---- a/statsmodels/tsa/ar_model.py -+++ b/statsmodels/tsa/ar_model.py -@@ -261,10 +261,8 @@ def _presample_varcov(self, params): - - Vpinv = np.zeros((p, p), dtype=params.dtype) - for i in range(1, p1): -- Vpinv[i-1, i-1:] = np.correlate(params0, params0[:i], -- old_behavior=False)[:-1] -- Vpinv[i-1, i-1:] -= np.correlate(params0[-i:], params0, -- old_behavior=False)[:-1] -+ Vpinv[i-1, i-1:] = np.correlate(params0, params0[:i],)[:-1] -+ Vpinv[i-1, i-1:] -= np.correlate(params0[-i:], params0,)[:-1] - - Vpinv = Vpinv + Vpinv.T - np.diag(Vpinv.diagonal()) - return Vpinv - -From f1dc8979b09bc1736149993f895943b3158ee2db Mon Sep 17 00:00:00 2001 -From: Ralf Gommers -Date: Wed, 21 Oct 2015 22:05:52 +0200 -Subject: [PATCH 2/4] MAINT: fix graphics module for changes in recent pandas - versions. - ---- - statsmodels/graphics/tests/test_mosaicplot.py | 2 +- - statsmodels/graphics/tests/test_tsaplots.py | 6 +++--- - statsmodels/graphics/tsaplots.py | 2 +- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/statsmodels/graphics/tests/test_mosaicplot.py b/statsmodels/graphics/tests/test_mosaicplot.py -index cb9bbbe..e41020e 100644 ---- a/statsmodels/graphics/tests/test_mosaicplot.py -+++ b/statsmodels/graphics/tests/test_mosaicplot.py -@@ -113,7 +113,7 @@ def test_mosaic(): - # sort by the marriage quality and give meaningful name - # [rate_marriage, age, yrs_married, children, - # religious, educ, occupation, occupation_husb] -- datas = datas.sort(['rate_marriage', 'religious']) -+ datas = datas.sort_values(by=['rate_marriage', 'religious']) - num_to_desc = {1: 'awful', 2: 'bad', 3: 'intermediate', - 4: 'good', 5: 'wonderful'} - datas['rate_marriage'] = datas['rate_marriage'].map(num_to_desc) -diff --git a/statsmodels/graphics/tests/test_tsaplots.py b/statsmodels/graphics/tests/test_tsaplots.py -index 511f18f..365be82 100644 ---- a/statsmodels/graphics/tests/test_tsaplots.py -+++ b/statsmodels/graphics/tests/test_tsaplots.py -@@ -1,4 +1,4 @@ --from statsmodels.compat.python import lmap, lzip, map -+from statsmodels.compat.python import lmap, map - import numpy as np - import pandas as pd - from numpy.testing import dec -@@ -51,8 +51,8 @@ def test_plot_month(): - dta = sm.datasets.elnino.load_pandas().data - dta['YEAR'] = dta.YEAR.astype(int).apply(str) - dta = dta.set_index('YEAR').T.unstack() -- dates = lmap(lambda x : pd.datetools.parse('1 '+' '.join(x)), -- dta.index.values) -+ dates = lmap(lambda x : pd.datetools.parse_time_string('1 '+' '.join(x))[0], -+ dta.index.values) - - # test dates argument - fig = month_plot(dta.values, dates=dates, ylabel='el nino') -diff --git a/statsmodels/graphics/tsaplots.py b/statsmodels/graphics/tsaplots.py -index 3d04692..94626c9 100644 ---- a/statsmodels/graphics/tsaplots.py -+++ b/statsmodels/graphics/tsaplots.py -@@ -200,7 +200,7 @@ def seasonal_plot(grouped_x, xticklabels, ylabel=None, ax=None): - ticks = [] - for season, df in grouped_x: - df = df.copy() # or sort balks for series. may be better way -- df.sort() -+ df.sort_values(inplace=True) - nobs = len(df) - x_plot = np.arange(start, start + nobs) - ticks.append(x_plot.mean()) - -From 4cfbef6af137629c6953f1f025d9cfc781874256 Mon Sep 17 00:00:00 2001 -From: Ralf Gommers -Date: Wed, 21 Oct 2015 22:15:25 +0200 -Subject: [PATCH 3/4] MAINT: work around pandas breaking backwards compat for - pandas.version - ---- - setup.py | 5 ++++- - statsmodels/tools/testing.py | 6 ++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/setup.py b/setup.py -index 0002840..74aefb8 100644 ---- a/setup.py -+++ b/setup.py -@@ -134,7 +134,10 @@ def check_dependency_versions(min_versions): - (spversion, min_versions['scipy'])) - - try: -- from pandas.version import short_version as pversion -+ import pandas -+ #FIXME: this will break for pandas 1.0.0. Needs elaborate parsing now, -+ # due to pandas removing version.short_version -+ pversion = pandas.__version__[:6] - except ImportError: - install_requires.append('pandas') - else: -diff --git a/statsmodels/tools/testing.py b/statsmodels/tools/testing.py -index e207e44..643f79f 100644 ---- a/statsmodels/tools/testing.py -+++ b/statsmodels/tools/testing.py -@@ -16,10 +16,8 @@ def strip_rc(version): - - - def is_pandas_min_version(min_version): -- '''check whether pandas is at least min_version -- ''' -- from pandas.version import short_version as pversion -- return StrictVersion(strip_rc(pversion)) >= min_version -+ '''check whether pandas is at least min_version ''' -+ return StrictVersion((pandas.__version__[:6])) >= min_version - - - # local copies, all unchanged - -From c894c3f4882d570efb517950069d83afa9794db8 Mon Sep 17 00:00:00 2001 -From: Ralf Gommers -Date: Mon, 26 Oct 2015 20:47:51 +0100 -Subject: [PATCH 4/4] BUG: fix use of Series.sort_values for older pandas. - -Some failing tests in the previous commits because older ``pandas`` versions -don't have ``Series.sort_values``. That method was only added in pandas 0.17, -in https://github.com/pydata/pandas/pull/10726 ---- - statsmodels/graphics/tests/test_mosaicplot.py | 6 +++++- - statsmodels/graphics/tsaplots.py | 6 +++++- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/statsmodels/graphics/tests/test_mosaicplot.py b/statsmodels/graphics/tests/test_mosaicplot.py -index e41020e..2a873e7 100644 ---- a/statsmodels/graphics/tests/test_mosaicplot.py -+++ b/statsmodels/graphics/tests/test_mosaicplot.py -@@ -113,7 +113,11 @@ def test_mosaic(): - # sort by the marriage quality and give meaningful name - # [rate_marriage, age, yrs_married, children, - # religious, educ, occupation, occupation_husb] -- datas = datas.sort_values(by=['rate_marriage', 'religious']) -+ if pandas.__version__ < '0.17.0': -+ datas = datas.sort(['rate_marriage', 'religious']) -+ else: -+ datas = datas.sort_values(by=['rate_marriage', 'religious']) -+ - num_to_desc = {1: 'awful', 2: 'bad', 3: 'intermediate', - 4: 'good', 5: 'wonderful'} - datas['rate_marriage'] = datas['rate_marriage'].map(num_to_desc) -diff --git a/statsmodels/graphics/tsaplots.py b/statsmodels/graphics/tsaplots.py -index 94626c9..217724f 100644 ---- a/statsmodels/graphics/tsaplots.py -+++ b/statsmodels/graphics/tsaplots.py -@@ -2,6 +2,7 @@ - - - import numpy as np -+import pandas - - from statsmodels.graphics import utils - from statsmodels.tsa.stattools import acf, pacf -@@ -200,7 +201,10 @@ def seasonal_plot(grouped_x, xticklabels, ylabel=None, ax=None): - ticks = [] - for season, df in grouped_x: - df = df.copy() # or sort balks for series. may be better way -- df.sort_values(inplace=True) -+ if pandas.__version__ < '0.17.0': -+ df.sort() -+ else: -+ df.sort_values(inplace=True) - nobs = len(df) - x_plot = np.arange(start, start + nobs) - ticks.append(x_plot.mean()) +--- a/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:19.947343331 +0000 ++++ b/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:37.759328845 +0000 +@@ -1329,21 +1329,6 @@ + res = mod.fit(start_params=-np.ones(4), method='newton', disp=0) + assert_(not res.mle_retvals['converged']) + +-def test_issue_339(): +- # make sure MNLogit summary works for J != K. +- data = sm.datasets.anes96.load() +- exog = data.exog +- # leave out last exog column +- exog = exog[:,:-1] +- exog = sm.add_constant(exog, prepend=True) +- res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0) +- # strip the header from the test +- smry = "\n".join(res1.summary().as_text().split('\n')[9:]) +- cur_dir = os.path.dirname(os.path.abspath(__file__)) +- test_case_file = os.path.join(cur_dir, 'results', 'mn_logit_summary.txt') +- test_case = open(test_case_file, 'r').read() +- np.testing.assert_equal(smry, test_case[:-1]) +- + def test_issue_341(): + data = sm.datasets.anes96.load() + exog = data.exog diff --git a/gnu/packages/patches/python2-subprocess32-disable-input-test.patch b/gnu/packages/patches/python2-subprocess32-disable-input-test.patch new file mode 100644 index 0000000000..05b4eef1ba --- /dev/null +++ b/gnu/packages/patches/python2-subprocess32-disable-input-test.patch @@ -0,0 +1,18 @@ +This test tries to send a KeyboardInterrupt, which does +not work in the build environment. + +--- a/test_subprocess32.py 2017-03-06 22:21:49.334045485 +0100 ++++ b/test_subprocess32.py 2017-03-06 22:22:02.490439949 +0100 +@@ -1299,12 +1299,6 @@ + getattr(p, method)(*args) + return p + +- def test_send_signal(self): +- p = self._kill_process('send_signal', signal.SIGINT) +- _, stderr = p.communicate() +- self.assertIn('KeyboardInterrupt', stderr) +- self.assertNotEqual(p.wait(), 0) +- + def test_kill(self): + p = self._kill_process('kill') + _, stderr = p.communicate() diff --git a/gnu/packages/patches/screen-CVE-2017-5618.patch b/gnu/packages/patches/screen-CVE-2017-5618.patch deleted file mode 100644 index 1b95e428c8..0000000000 --- a/gnu/packages/patches/screen-CVE-2017-5618.patch +++ /dev/null @@ -1,40 +0,0 @@ -Fixes CVE-2017-5618 (privilege escalation via opening the logfile when -screen is installed setuid root): - -https://savannah.gnu.org/bugs/?50142 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5618 - -This patch reverts the upstream commit that introduced the bug: - -https://git.savannah.gnu.org/cgit/screen.git/commit/?id=5460f5d28c01a9a58e021eb1dffef2965e629d58 - -From f55b0cc29a0ac2a1c54e8a5e886b7393edd4a76c Mon Sep 17 00:00:00 2001 -From: Leo Famulari -Date: Sat, 11 Feb 2017 22:40:24 -0500 -Subject: [PATCH] Revert "adding permissions check for the logfile name" - -This reverts commit 5460f5d28c01a9a58e021eb1dffef2965e629d58. ---- - src/screen.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/src/screen.c b/src/screen.c -index 64650e9..283c305 100644 ---- a/src/screen.c -+++ b/src/screen.c -@@ -673,12 +673,6 @@ int main(int ac, char** av) - Panic(0, "-L: logfile name can not start with \"-\" symbol"); - if (strlen(screenlogfile) > PATH_MAX) - Panic(0, "-L: logfile name too long. (max. %d char)", PATH_MAX); -- -- FILE *w_check; -- if ((w_check = fopen(screenlogfile, "w")) == NULL) -- Panic(0, "-L: logfile name access problem"); -- else -- fclose(w_check); - } - nwin_options.Lflag = 1; - break; --- -2.11.1 - diff --git a/gnu/packages/patches/shadow-CVE-2017-2616.patch b/gnu/packages/patches/shadow-CVE-2017-2616.patch new file mode 100644 index 0000000000..f88aac40bc --- /dev/null +++ b/gnu/packages/patches/shadow-CVE-2017-2616.patch @@ -0,0 +1,72 @@ +Fix CVE-2017-2616: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2616 +http://seclists.org/oss-sec/2017/q1/490 +http://seclists.org/oss-sec/2017/q1/474 + +Patch copied from upstream source repository: + +https://github.com/shadow-maint/shadow/commit/08fd4b69e84364677a10e519ccb25b71710ee686 + +From 08fd4b69e84364677a10e519ccb25b71710ee686 Mon Sep 17 00:00:00 2001 +From: Tobias Stoeckmann +Date: Thu, 23 Feb 2017 09:47:29 -0600 +Subject: [PATCH] su: properly clear child PID + +If su is compiled with PAM support, it is possible for any local user +to send SIGKILL to other processes with root privileges. There are +only two conditions. First, the user must be able to perform su with +a successful login. This does NOT have to be the root user, even using +su with the same id is enough, e.g. "su $(whoami)". Second, SIGKILL +can only be sent to processes which were executed after the su process. +It is not possible to send SIGKILL to processes which were already +running. I consider this as a security vulnerability, because I was +able to write a proof of concept which unlocked a screen saver of +another user this way. +--- + src/su.c | 19 +++++++++++++++++-- + 1 file changed, 17 insertions(+), 2 deletions(-) + +diff --git a/src/su.c b/src/su.c +index f20d230..d86aa86 100644 +--- a/src/su.c ++++ b/src/su.c +@@ -379,11 +379,13 @@ static void prepare_pam_close_session (void) + /* wake child when resumed */ + kill (pid, SIGCONT); + stop = false; ++ } else { ++ pid_child = 0; + } + } while (!stop); + } + +- if (0 != caught) { ++ if (0 != caught && 0 != pid_child) { + (void) fputs ("\n", stderr); + (void) fputs (_("Session terminated, terminating shell..."), + stderr); +@@ -393,9 +395,22 @@ static void prepare_pam_close_session (void) + snprintf (wait_msg, sizeof wait_msg, _(" ...waiting for child to terminate.\n")); + + (void) signal (SIGALRM, kill_child); ++ (void) signal (SIGCHLD, catch_signals); + (void) alarm (2); + +- (void) wait (&status); ++ sigemptyset (&ourset); ++ if ((sigaddset (&ourset, SIGALRM) != 0) ++ || (sigprocmask (SIG_BLOCK, &ourset, NULL) != 0)) { ++ fprintf (stderr, _("%s: signal masking malfunction\n"), Prog); ++ kill_child (0); ++ } else { ++ while (0 == waitpid (pid_child, &status, WNOHANG)) { ++ sigsuspend (&ourset); ++ } ++ pid_child = 0; ++ (void) sigprocmask (SIG_UNBLOCK, &ourset, NULL); ++ } ++ + (void) fputs (_(" ...terminated.\n"), stderr); + } + diff --git a/gnu/packages/patches/texlive-texmf-CVE-2016-10243.patch b/gnu/packages/patches/texlive-texmf-CVE-2016-10243.patch new file mode 100644 index 0000000000..3a9ae993f6 --- /dev/null +++ b/gnu/packages/patches/texlive-texmf-CVE-2016-10243.patch @@ -0,0 +1,18 @@ +Fix CVE-2016-10243: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10243 + +Patch adapted from upstream commit: + +https://www.tug.org/svn/texlive?view=revision&revision=42605 + +--- trunk/Master/texmf-dist/web2c/texmf.cnf 2016/11/29 23:10:33 42604 ++++ trunk/Master/texmf-dist/web2c/texmf.cnf 2016/11/29 23:27:53 42605 +@@ -568,7 +568,6 @@ extractbb,\ + gregorio,\ + kpsewhich,\ + makeindex,\ +-mpost,\ + repstopdf,\ + + % we'd like to allow: diff --git a/gnu/packages/patches/util-linux-CVE-2017-2616.patch b/gnu/packages/patches/util-linux-CVE-2017-2616.patch new file mode 100644 index 0000000000..2c82fb06d2 --- /dev/null +++ b/gnu/packages/patches/util-linux-CVE-2017-2616.patch @@ -0,0 +1,65 @@ +Fix CVE-2017-2616: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-2616 +http://seclists.org/oss-sec/2017/q1/474 + +Patch copied from upstream source repository: + +https://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=dffab154d29a288aa171ff50263ecc8f2e14a891 + +From b018571132cb8c9fece3d75ed240cc74cdb5f0f7 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 1 Feb 2017 11:58:09 +0100 +Subject: [PATCH] su: properly clear child PID +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Reported-by: Tobias Stöckmann +Signed-off-by: Karel Zak +--- + login-utils/su-common.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/login-utils/su-common.c b/login-utils/su-common.c +index 0ea4e40bd..b1720f037 100644 +--- a/login-utils/su-common.c ++++ b/login-utils/su-common.c +@@ -376,6 +376,9 @@ create_watching_parent (void) + } + else + status = WEXITSTATUS (status); ++ ++ /* child is gone, don't use the PID anymore */ ++ child = (pid_t) -1; + } + else if (caught_signal) + status = caught_signal + 128; +@@ -385,7 +388,7 @@ create_watching_parent (void) + else + status = 1; + +- if (caught_signal) ++ if (caught_signal && child != (pid_t)-1) + { + fprintf (stderr, _("\nSession terminated, killing shell...")); + kill (child, SIGTERM); +@@ -395,9 +398,12 @@ create_watching_parent (void) + + if (caught_signal) + { +- sleep (2); +- kill (child, SIGKILL); +- fprintf (stderr, _(" ...killed.\n")); ++ if (child != (pid_t)-1) ++ { ++ sleep (2); ++ kill (child, SIGKILL); ++ fprintf (stderr, _(" ...killed.\n")); ++ } + + /* Let's terminate itself with the received signal. + * +-- +2.11.1 + diff --git a/gnu/packages/patches/vdirsyncer-test-suite-slow-machines.patch b/gnu/packages/patches/vdirsyncer-test-suite-slow-machines.patch deleted file mode 100644 index 03093e8330..0000000000 --- a/gnu/packages/patches/vdirsyncer-test-suite-slow-machines.patch +++ /dev/null @@ -1,42 +0,0 @@ -Fix test failures caused by some build machines running more slowly than -expected, which manifest like this: - ------- -> raise FailedHealthCheck(message) -E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.08 seconds (1 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g.average_size or max_leaves parameters). -E See http://hypothesis.readthedocs.org/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slowto the suppress_health_check settings for this test. - -/gnu/store/b8d1r8bilvm3jkncgrpvmg3dni9cgcr1-python-hypothesis-3.1.0/lib/python3.5/site-packages/hypothesis/core.py:296: FailedHealthCheck ------- - -Patch copied from upstream source repository: - -https://github.com/pimutils/vdirsyncer/commit/10490a12f13f03495e0945eb9d45d7aed9ab0a6c - -From 10490a12f13f03495e0945eb9d45d7aed9ab0a6c Mon Sep 17 00:00:00 2001 -From: Markus Unterwaditzer -Date: Sat, 18 Feb 2017 15:45:06 +0100 -Subject: [PATCH] Unconditionally disable HealthCheck.too_slow - ---- - tests/conftest.py | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tests/conftest.py b/tests/conftest.py -index e0a07d5..3afd7cd 100644 ---- a/tests/conftest.py -+++ b/tests/conftest.py -@@ -26,10 +26,12 @@ def benchmark(): - else: - del pytest_benchmark - -+ -+settings.suppress_health_check = [HealthCheck.too_slow] -+ - settings.register_profile("ci", settings( - max_examples=1000, - verbosity=Verbosity.verbose, -- suppress_health_check=[HealthCheck.too_slow] - )) - settings.register_profile("deterministic", settings( - derandomize=True, diff --git a/gnu/packages/patches/vim-CVE-2017-5953.patch b/gnu/packages/patches/vim-CVE-2017-5953.patch index 7b66f1bf16..070f98c2cb 100644 --- a/gnu/packages/patches/vim-CVE-2017-5953.patch +++ b/gnu/packages/patches/vim-CVE-2017-5953.patch @@ -3,20 +3,28 @@ Fix CVE-2017-5953: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5953 https://groups.google.com/forum/#!topic/vim_dev/t-3RSdEnrHY -Patch adapted from upstream commit, correcting the transcription error -in the bounds check: +This change is adapted from the upstream source repository: -https://github.com/vim/vim/commit/399c297aa93afe2c0a39e2a1b3f972aebba44c9d +https://github.com/vim/vim/commit/6d3c8586fc81b022e9f06c611b9926108fb878c7 diff --git a/src/spellfile.c b/src/spellfile.c -index c7d87c6..8b1a3a6 100644 +index c7d87c6..00ef019 100644 --- a/src/spellfile.c +++ b/src/spellfile.c +@@ -1585,7 +1585,7 @@ spell_read_tree( + int prefixtree, /* TRUE for the prefix tree */ + int prefixcnt) /* when "prefixtree" is TRUE: prefix count */ + { +- int len; ++ long len; + int idx; + char_u *bp; + idx_T *ip; @@ -1595,6 +1595,9 @@ spell_read_tree( len = get4c(fd); if (len < 0) return SP_TRUNCERROR; -+ if (len >= 0x3fffffff) ++ if (len >= LONG_MAX / (long)sizeof(int)) + /* Invalid length, multiply with sizeof(int) would overflow. */ + return SP_FORMERROR; if (len > 0) diff --git a/gnu/packages/patches/wxwidgets-fix-windowGTK.patch b/gnu/packages/patches/wxwidgets-fix-windowGTK.patch new file mode 100644 index 0000000000..1255835d01 --- /dev/null +++ b/gnu/packages/patches/wxwidgets-fix-windowGTK.patch @@ -0,0 +1,18 @@ +This patch allow Filezilla client to resize window. +The patch was adapted from upstream source repository: +'' + +--- a/src/gtk/toplevel.cpp 2014-10-06 16:33:44.000000000 -0500 ++++ b/src/gtk/toplevel.cpp 2017-02-16 21:33:27.779907810 -0600 +@@ -1216,8 +1216,9 @@ + int hints_mask = GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE; + hints.min_width = 1; + hints.min_height = 1; +- hints.max_width = INT_MAX; +- hints.max_height = INT_MAX; ++ // using INT_MAX for size will lead to integer overflow with HiDPI scaling ++ hints.max_width = INT_MAX / 16; ++ hints.max_height = INT_MAX / 16; + const int decorSize_x = m_decorSize.left + m_decorSize.right; + const int decorSize_y = m_decorSize.top + m_decorSize.bottom; + if (minSize.x > decorSize_x) diff --git a/gnu/packages/pciutils.scm b/gnu/packages/pciutils.scm index 8422a5c574..7c9856468d 100644 --- a/gnu/packages/pciutils.scm +++ b/gnu/packages/pciutils.scm @@ -30,7 +30,7 @@ (define-public pciutils (package (name "pciutils") - (version "3.5.2") + (version "3.5.4") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "1z2y4f3cyvm7a0dyan0n6jpb3p9pvh35lrim0058slj0kwd1969s")))) + "0rpy7kkb2y89wmbcbfjjjxsk2x89v5xxhxib4vpl131ip5m3qab4")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index 9ca950b967..011a30dd38 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -72,16 +73,15 @@ POSIX regular expression API.") (define-public pcre2 (package (name "pcre2") - (version "10.21") + (version "10.23") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pcre/pcre2/" version "/pcre2-" version ".tar.bz2")) - (patches (search-patches "pcre2-CVE-2016-3191.patch")) (sha256 (base32 - "1q6lrj9b08l1q39vxipb0fi88x6ybvkr6439h8bjb9r8jd81fsn6")))) + "0vn5g0mkkp99mmzpissa06hpyj6pk9s4mlwbjqrjvw3ihy8rpiyz")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) ("readline" ,readline) @@ -94,7 +94,14 @@ POSIX regular expression API.") "--enable-unicode-properties" "--enable-pcre2-16" "--enable-pcre2-32" - "--enable-jit"))) + "--enable-jit") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda _ + (substitute* "RunGrepTest" + (("/bin/echo") (which "echo"))) + #t))))) (synopsis "Perl Compatible Regular Expressions") (description "The PCRE library is a set of functions that implement regular expression diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 2e26ba9ad4..ef63f58f64 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -11,6 +11,7 @@ ;;; Coypright © 2016 Julien Lepiller ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Alex Vong ;;; ;;; This file is part of GNU Guix. ;;; @@ -438,14 +439,14 @@ interaction.") (define-public podofo (package (name "podofo") - (version "0.9.3") + (version "0.9.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/podofo/podofo/" version "/podofo-" version ".tar.gz")) (sha256 (base32 - "1n12lbq9x15vqn7dc0hsccp56l5jdff1xrhvlfqlbklxx0qiw9pc")))) + "012kgfx5j5n6w4zkc1d290d2cwjk60jhzsjlr2x19g3yi75q2jc5")))) (build-system cmake-build-system) (inputs ; TODO: Add cppunit for tests `(("lua" ,lua-5.1) @@ -632,6 +633,10 @@ using a stylus.") (base32 "0rz2pg04wnzjjm2f5a8ik9v8s54mv4xrjhv5liqjijqv6awh12gl")))) (build-system python-build-system) + (arguments + '(;; FIXME: There is one test failure, but it does not cause the + ;; build to fail. No time to investigate right now. + #:test-target "tests")) (propagated-inputs `(("python-pillow" ,python-pillow))) (home-page "http://www.reportlab.com") diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index eee688354a..840e0b763e 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Raoul J.P. Bonnal +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,7 +37,8 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) - #:use-module (gnu packages perl-web)) + #:use-module (gnu packages perl-web) + #:use-module (gnu packages pkg-config)) ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -206,6 +208,31 @@ explicitly alias the class to another name or, if you prefer, you can do so implicitly.") (license (package-license perl)))) +(define-public perl-any-moose + (package + (name "perl-any-moose") + (version "0.27") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/" + "Any-Moose-" version ".tar.gz")) + (sha256 + (base32 + "0dc55mpayrixwx8dwql0vj0jalg4rlb3k64rprc84bl0z8vkx9m8")))) + (build-system perl-build-system) + (native-inputs + `(("perl-mouse" ,perl-mouse) + ("perl-moose" ,perl-moose))) + (home-page "http://search.cpan.org/dist/Any-Moose") + (synopsis "Transparently use Moose or Mouse modules") + (description + "This module facilitates using @code{Moose} or @code{Mouse} modules +without changing the code. By default, Mouse will be provided to libraries, +unless Moose is already loaded, or explicitly requested by the end-user. End +users can force the decision of which backend to use by setting the environment +variable ANY_MOOSE to be Moose or Mouse.") + (license (package-license perl)))) + (define-public perl-appconfig (package (name "perl-appconfig") @@ -268,6 +295,39 @@ manipulate, read, and write Zip archive files.") list manipulation routines.") (license (package-license perl)))) +(define-public perl-async-interrupt + (package + (name "perl-async-interrupt") + (version "1.21") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/" + "Async-Interrupt-" version ".tar.gz")) + (sha256 + (base32 + "092zs7b72f8q109c3z829nqfgwqghp3nhw44c0gcyhacbb4wgpk3")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-common-sense" ,perl-common-sense))) + (home-page "http://search.cpan.org/dist/Async-Interrupt") + (synopsis "Allow C/XS libraries to interrupt perl asynchronously") + (description + "@code{Async::Interrupt} implements a single feature only of interest +to advanced perl modules, namely asynchronous interruptions (think \"UNIX +signals\", which are very similar). + +Sometimes, modules wish to run code asynchronously (in another thread, +or from a signal handler), and then signal the perl interpreter on +certain events. One common way is to write some data to a pipe and use +an event handling toolkit to watch for I/O events. Another way is to +send a signal. Those methods are slow, and in the case of a pipe, also +not asynchronous - it won't interrupt a running perl interpreter. + +This module implements asynchronous notifications that enable you to +signal running perl code from another thread, asynchronously, and +sometimes even without using a single syscall.") + (license (package-license perl)))) + (define-public perl-autovivification (package (name "perl-autovivification") @@ -562,6 +622,25 @@ code or from an external program. Optionally, output can be teed so that it is captured while being passed through to the original file handles.") (license asl2.0))) +(define-public perl-canary-stability + (package + (name "perl-canary-stability") + (version "2012") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/" + "Canary-Stability-" version ".tar.gz")) + (sha256 + (base32 + "01vih43hvpqy67m6a6fwmlswli91mqpv8n8ccglvlkc33l8hn97x")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Canary-Stability") + (synopsis "Check compatibility with the installed perl version") + (description + "This module is used by Schmorp's modules during configuration stage +to test the installed perl for compatibility with his modules.") + (license (package-license perl)))) + (define-public perl-carp-assert (package (name "perl-carp-assert") @@ -1290,6 +1369,28 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated Password Generator\".") (license (package-license perl)))) +(define-public perl-cwd-guard + (package + (name "perl-cwd-guard") + (version "0.05") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/K/KA/KAZEBURO/" + "Cwd-Guard-" version ".tar.gz")) + (sha256 + (base32 + "0xwf4rmii55k3lp19mpbh00mbgby7rxdk2lk84148bjhp6i7rz3s")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-test-requires" ,perl-test-requires))) + (home-page "http://search.cpan.org/dist/Cwd-Guard") + (synopsis "Temporarily change working directory") + (description + "@code{Cwd::Guard} changes the current directory using a limited scope. +It returns to the previous working directory when the object is destroyed.") + (license (package-license perl)))) + (define-public perl-czplib (package (name "perl-czplib") @@ -2097,6 +2198,27 @@ the appropriate objects.") particular command is available.") (license (package-license perl)))) +(define-public perl-devel-checkcompiler + (package + (name "perl-devel-checkcompiler") + (version "0.07") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/S/SY/SYOHEX/" + "Devel-CheckCompiler-" version ".tar.gz")) + (sha256 + (base32 + "1db973a4dbyknjxq608hywil5ai6vplnayshqxrd7m5qnjbpd2vn")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build-tiny" ,perl-module-build-tiny))) + (home-page "http://search.cpan.org/dist/Devel-CheckCompiler") + (synopsis "Check compiler availability") + (description "@code{Devel::CheckCompiler} is a tiny module to check +whether a compiler is available. It can test for a C99 compiler, or +you can tell it to compile a C source file with optional linker flags.") + (license (package-license perl)))) + (define-public perl-devel-globaldestruction (package (name "perl-devel-globaldestruction") @@ -2603,6 +2725,29 @@ By itself it is not a particularly interesting module by any measure, however it ties together a family of modern toolchain modules.") (license (package-license perl)))) +(define-public perl-extutils-depends + (package + (name "perl-extutils-depends") + (version "0.405") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/" + "ExtUtils-Depends-" version ".tar.gz")) + (sha256 + (base32 + "0b4ab9qmcihsfs2ajhn5qzg7nhazr68v3r0zvb7076smswd41mla")))) + (build-system perl-build-system) + (native-inputs + `(("perl-test-number-delta" ,perl-test-number-delta))) + (home-page "http://search.cpan.org/dist/ExtUtils-Depends") + (synopsis "Easily build XS extensions that depend on XS extensions") + (description + "This module tries to make it easy to build Perl extensions that use +functions and typemaps provided by other perl extensions. This means that a +perl extension is treated like a shared library that provides also a C and an +XS interface besides the perl one.") + (license (package-license perl)))) + (define-public perl-extutils-helpers (package (name "perl-extutils-helpers") @@ -2645,6 +2790,29 @@ C code in your Perl programs, there isn't a clear method to compile standard, self-contained C libraries. This module main goal is to help in that task.") (license (package-license perl)))) +(define-public perl-extutils-pkgconfig + (package + (name "perl-extutils-pkgconfig") + (version "1.15") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/X/XA/XAOC/" + "ExtUtils-PkgConfig-" version ".tar.gz")) + (sha256 + (base32 + "1cxh6w8vmyqmhl6afys2q6z6jkp1m6zvacpk70196zmk48p1kcv9")))) + (build-system perl-build-system) + (propagated-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://search.cpan.org/dist/ExtUtils-PkgConfig") + (synopsis "Simplistic interface to pkg-config") + (description + "@code{ExtUtils::PkgConfig} is a very simplistic interface to the +@command{pkg-config} utility, intended for use in the @file{Makefile.PL} +of perl extensions which bind libraries that @command{pkg-config} knows. +It is really just boilerplate code that you would have written yourself.") + (license lgpl2.1+))) + (define-public perl-file-changenotify (package (name "perl-file-changenotify") @@ -3953,6 +4121,50 @@ replacement. Whereas Module::Build has over 6,700 lines of code; this module has less than 120, yet supports the features needed by most distributions.") (license (package-license perl)))) +(define-public perl-module-build-xsutil + (package + (name "perl-module-build-xsutil") + (version "0.16") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/H/HI/HIDEAKIO/" + "Module-Build-XSUtil-" version ".tar.gz")) + (sha256 + (base32 + "1nrs0b6hmwl3sw3g50b9857qgp5cbbbpl716zwn30h9vwjj2yxhm")))) + (build-system perl-build-system) + (native-inputs + `(("perl-capture-tiny" ,perl-capture-tiny) + ("perl-cwd-guard" ,perl-cwd-guard) + ("perl-file-copy-recursive" ,perl-file-copy-recursive) + ("perl-module-build" ,perl-module-build))) + (propagated-inputs + `(("perl-devel-checkcompiler" ,perl-devel-checkcompiler))) + (home-page "http://search.cpan.org/dist/Module-Build-XSUtil") + (synopsis "Module::Build class for building XS modules") + (description + "@code{Module::Build::XSUtil} is subclass of @code{Module::Build} +for support building XS modules. + +This is a list of a new parameters in the @code{Module::Build::new} method: + +@enumerate +@item @code{needs_compiler_c99}: This option checks C99 compiler availability. +@item @code{needs_compiler_cpp}: This option checks C++ compiler availability. +Can also pass @code{extra_compiler_flags} and @code{extra_linker_flags} for C++. +@item @code{generate_ppport_h}: Generate @file{ppport.h} by @code{Devel::PPPort}. +@item @code{generate_xshelper_h}: Generate @file{xshelper.h} which is a helper +header file to include @file{EXTERN.h}, @file{perl.h}, @file{XSUB.h} and +@file{ppport.h}, and defines some portability stuff which are not supported by +@file{ppport.h}. + +It is ported from @code{Module::Install::XSUtil}. +@item @code{cc_warnings}: Toggle compiler warnings. Enabled by default. +@item @code{-g options}: Invoke @file{Build.PL} with @code{-g} to enable +debug options. +@end enumerate") + (license (package-license perl)))) + (define-public perl-module-find (package (name "perl-module-find") @@ -4732,6 +4944,62 @@ own set of Moose-like types. These custom types can then be used to describe fields in Moo-based classes.") (license (package-license perl)))) +(define-public perl-mouse + (package + (name "perl-mouse") + (version "2.4.9") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/S/SY/SYOHEX/Mouse-v" + version + ".tar.gz")) + (sha256 + (base32 + "1y20sl97x1h4y1iid47hj0w1hb2887dchh4nfffgmqpyggkslh4n")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build) + ("perl-module-build-xsutil" ,perl-module-build-xsutil) + ("perl-test-exception" ,perl-test-exception) + ("perl-test-fatal" ,perl-test-fatal) + ("perl-test-leaktrace" ,perl-test-leaktrace) + ("perl-test-output" ,perl-test-output) + ("perl-test-requires" ,perl-test-requires) + ("perl-try-tiny" ,perl-try-tiny))) + (home-page "https://github.com/gfx/p5-Mouse") + (synopsis "Fast Moose-compatible object system for perl5") + (description + "Mouse is a @code{Moose} compatible object system that implements a +subset of the functionality for reduced startup time.") + (license (package-license perl)))) + +(define-public perl-mousex-nativetraits + (package + (name "perl-mousex-nativetraits") + (version "1.09") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/G/GF/GFUJI/" + "MouseX-NativeTraits-" version ".tar.gz")) + (sha256 + (base32 + "0pnbchkxfz9fwa8sniyjqp0mz75b3k2fafq9r09znbbh51dbz9gq")))) + (build-system perl-build-system) + (native-inputs + `(("perl-any-moose" ,perl-any-moose) + ("perl-test-fatal" ,perl-test-fatal))) + (propagated-inputs + `(("perl-mouse" ,perl-mouse))) + (home-page "http://search.cpan.org/dist/MouseX-NativeTraits") + (synopsis "Extend attribute interfaces for Mouse") + (description + "While @code{Mouse} attributes provide a way to name your accessors, +readers, writers, clearers and predicates, @code{MouseX::NativeTraits} +provides commonly used attribute helper methods for more specific types +of data.") + (license (package-license perl)))) + (define-public perl-mozilla-ca (package (name "perl-mozilla-ca") @@ -6445,6 +6713,29 @@ including a stack trace of what was going on when it occurred.") "Test-NoWarnings-" version)) (license lgpl2.1))) +(define-public perl-test-number-delta + (package + (name "perl-test-number-delta") + (version "1.06") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/" + "Test-Number-Delta-" version ".tar.gz")) + (sha256 + (base32 + "0jfhzhpzkc23mkrlbnv085ykpfncmy99hvppbzjnrpvgks8k0m2k")))) + (build-system perl-build-system) + (home-page "http://search.cpan.org/dist/Test-Number-Delta") + (synopsis + "Compare the difference between numbers against a given tolerance") + (description + "At some point or another, most programmers find they need to compare +floating-point numbers for equality. The typical idiom is to test if the +absolute value of the difference of the numbers is within a desired tolerance, +usually called epsilon. This module provides such a function for use with +@code{Test::More}.") + (license asl2.0))) + (define-public perl-test-output (package (name "perl-test-output") @@ -7492,6 +7783,30 @@ attribute names.") ;; modification, are permitted under any circumstances. No warranty. (license public-domain))) +(define-public perl-xs-object-magic + (package + (name "perl-xs-object-magic") + (version "0.04") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/F/FL/FLORA/" + "XS-Object-Magic-" version ".tar.gz")) + (sha256 + (base32 + "03fghj7hq0fiicmfdxhmzfm4mzv7s097pgkd32ji7jnljvhm9six")))) + (build-system perl-build-system) + (native-inputs + `(("perl-extutils-depends" ,perl-extutils-depends) + ("perl-test-fatal" ,perl-test-fatal))) + (home-page "http://search.cpan.org/dist/XS-Object-Magic") + (synopsis "Opaque, extensible XS pointer backed objects using sv_magic") + (description + "This way of associating structs with Perl space objects is designed to +supersede Perl's builtin @code{T_PTROBJ} with something that is extensible +(structs can be associated with any data type) and opaque (the C pointer is +neither visible nor modifiable from Perl space).") + (license (package-license perl)))) + (define-public perl-yaml (package (name "perl-yaml") diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index ce71d2a441..c782ecf47f 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2017 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) + #:use-module (gnu packages glib) #:use-module (gnu packages graphics) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) @@ -263,3 +265,38 @@ overlapping images, as well as some command line tools.") multi-resolution spline. Enfuse merges different exposures of the same scene to produce an image that looks much like a tone-mapped image.") (license license:gpl2+))) + +(define-public lensfun + (package + (name "lensfun") + (version "0.3.2") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/lensfun/" + version "/lensfun-" version ".tar.gz")) + (sha256 + (base32 + "0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; There are no tests to run. + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("glib" ,glib))) + (home-page "https://sourceforge.net/projects/lensfun/") + (synopsis "Library to correct optical lens defects with a lens database") + (description "Digital photographs are not ideal. Of course, the better is +your camera, the better the results will be, but in any case if you look +carefully at shots taken even by the most expensive cameras equipped with the +most expensive lenses you will see various artifacts. It is very hard to make +ideal cameras, because there are a lot of factors that affect the final image +quality, and at some point camera and lens designers have to trade one factor +for another to achieve the optimal image quality, within the given design +restrictions and budget. But we all want ideal shots, don't we? So that's +what's Lensfun is all about: rectifying the defects introduced by your +photographic equipment.") + ;; The libraries are licensed under the LGPL3, the programs are + ;; licensed GPL3, and the database is license CC-BY-SA 3.0. See the + ;; README.md file for this clarification. + (license (list license:lgpl3 license:gpl3 license:cc-by-sa3.0)))) diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index bf993c66a7..6d84bf2db6 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -173,14 +173,14 @@ colors, styles, options and details.") (define-public asymptote (package (name "asymptote") - (version "2.39") + (version "2.40") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asymptote/" version "/asymptote-" version ".src.tgz")) (sha256 (base32 - "187q81yw06x4gv2spfn0hcs1064ym3a8l6mdgawymfhqd60yhrs3")))) + "08hy8hgh217df9kwznr22mg8vxxh3rbmbxgx3nqhxyggc9xqy544")))) (build-system gnu-build-system) ;; Note: The 'asy' binary retains a reference to docdir for use with its ;; "help" command in interactive mode, so adding a "doc" output is not diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4161cd3480..8326de679d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -33,7 +33,7 @@ ;;; Copyright © 2016 Arun Isaac ;;; Copyright © 2016, 2017 Julien Lepiller ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice -;;; Copyright © 2016 Thomas Danckaert +;;; Copyright © 2016, 2017 Thomas Danckaert ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Frederick M. Muriithi ;;; @@ -69,6 +69,7 @@ #:use-module (gnu packages ghostscript) #:use-module (gnu packages gl) #:use-module (gnu packages glib) + #:use-module (gnu packages graphviz) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) @@ -77,6 +78,7 @@ #:use-module (gnu packages libevent) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) + #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages networking) @@ -87,8 +89,10 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) + #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages sdl) + #:use-module (gnu packages shells) #:use-module (gnu packages statistics) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) @@ -444,6 +448,9 @@ instead of @command{python3}."))) (base32 "1w4r09fvn6kd80m5mx4ws1wz100brkaq6hzzpwrns8cgjzjpl6c6")))) (build-system python-build-system) + (arguments + ;; FIXME: some tests does not return and times out. + '(#:tests? #f)) (home-page "https://www.github.com/giampaolo/psutil") (synopsis "Library for retrieving information on running processes") (description @@ -462,14 +469,14 @@ pidof, tty, taskset, pmap.") (define-public python-passlib (package (name "python-passlib") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (pypi-uri "passlib" version)) (sha256 (base32 - "1vdbqsa1a31s98fxkinl052q8nnpvbxnb83qanxfpi2p6c2zdr0b")))) + "1q2khqpj9rlcgdmkypjdq1kswvhjf72bq0zk2cv669cc2dj8z51x")))) (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) @@ -544,6 +551,14 @@ John the Ripper).") (base32 "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj")))) (build-system python-build-system) + (arguments + '(;; FIXME: One test fails with "EOFError not raised by connect". + #:tests? #f)) + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "python" "test.py"))))))) (propagated-inputs `(("python-pycrypto" ,python-pycrypto) ("python-ecdsa" ,python-ecdsa))) @@ -819,14 +834,14 @@ concepts.") (define-public python-netcdf4 (package (name "python-netcdf4") - (version "1.2.6") + (version "1.2.7") (source (origin (method url-fetch) (uri (pypi-uri "netCDF4" version)) (sha256 (base32 - "1qcymsfxsdfr4sx0vl7ih5d14z66k6c9sjy4gb6rjaksk5387zvg")))) + "1fllizmnpw0zkzzm4j9pgamarlzfn3kmv9zrm0w65q1y31h9ni0c")))) (build-system python-build-system) (native-inputs `(("python-cython" ,python-cython))) @@ -1010,6 +1025,40 @@ etc.). The package is structured to make adding new modules easy.") "python" (package-inputs pycrypto))))))) +(define-public python-eventlet + (package + (name "python-eventlet") + (version "0.20.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "eventlet" version)) + (sha256 + (base32 + "0f3q55mq4n021wb7qa53pz3ix6i2py64sap66vsaqm2scjw83m9s")))) + (build-system python-build-system) + (propagated-inputs + `(("python-greenlet" ,python-greenlet))) + (home-page "http://eventlet.net") + (synopsis "Concurrent networking library for Python") + (description + "Eventlet is a concurrent networking library for Python that +allows you to change how you run your code, not how you write it. +It uses @code{epoll} or @code{libevent} for highly scalable non-blocking I/O. +Coroutines ensure that the developer uses a blocking style of programming +that is similar to threading, but provide the benefits of non-blocking I/O. +The event dispatch is implicit, which means you can easily use @code{Eventlet} +from the Python interpreter, or as a small part of a larger application.") + (license license:expat))) + +(define-public python2-eventlet + (let ((base (package-with-python2 + (strip-python2-variant python-eventlet)))) + (package (inherit base) + (propagated-inputs + `(("python2-enum34" ,python2-enum34) + ,@(package-propagated-inputs base)))))) + (define-public python-keyring (package (name "python-keyring") @@ -1052,6 +1101,9 @@ password storage.") (base32 "0snmb8xffb3vsma0z67i0h0w2g2dy0p3gsgh9gi4i0kgc5l8spqh")))) (build-system python-build-system) + (native-inputs + `(("python-py" ,python-py) + ("python-pytest" ,python-pytest))) (home-page "http://pypi.python.org/pypi/six/") (synopsis "Python 2 and 3 compatibility utilities") (description @@ -1065,7 +1117,7 @@ Python file, so it can be easily copied into your project.") (define-public python2-six (package-with-python2 python-six)) -(define-public python-dateutil-2 +(define-public python-dateutil (package (name "python-dateutil") (version "2.5.3") @@ -1086,29 +1138,6 @@ Python file, so it can be easily copied into your project.") datetime module, available in Python 2.3+.") (license license:bsd-3))) -(define-public python2-dateutil-2 - (package-with-python2 python-dateutil-2)) - -(define-public python-dateutil - (package - (name "python-dateutil") - (version "1.5") ; last version for python < 3 - (source - (origin - (method url-fetch) - (uri (string-append "http://labix.org/download/python-dateutil/" - "python-dateutil-" version ".tar.gz")) - (sha256 - (base32 - "0fqfglhy5khbvsipr3x7m6bcaqljh8xl5cw33vbfxy7qhmywm2n0")))) - (build-system python-build-system) - (home-page "https://dateutil.readthedocs.io/en/stable/") - (synopsis "Extensions to the standard datetime module") - (description - "The dateutil module provides powerful extensions to the standard -datetime module, available in Python 2.3+.") - (license license:psfl))) - (define-public python2-dateutil (package-with-python2 python-dateutil)) @@ -1140,21 +1169,20 @@ datetime module, available in Python 2.3+.") (define-public python-pandas (package (name "python-pandas") - (version "0.18.1") + (version "0.19.2") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/11/09/" - "e66eb844daba8680ddff26335d5b4fead77f60f957678243549a8dd4830d/" - "pandas-" version ".tar.gz")) + (uri (pypi-uri "pandas" version)) (sha256 - (base32 "1ckpxrvvjj6zxmn68icd9hib8qcpx9b35f6izxnr25br5ilq7r6j")))) + (base32 "0540cnbwy2hc4hv2sxfs8i47xi91qzvzxfn80dl785ibiicly3vg")) + (patches + (search-patches "python-pandas-skip-failing-tests.patch")))) (build-system python-build-system) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-pytz" ,python-pytz) - ("python-dateutil" ,python-dateutil-2))) + ("python-dateutil" ,python-dateutil))) (native-inputs `(("python-nose" ,python-nose) ("python-cython" ,python-cython))) @@ -1298,6 +1326,15 @@ Python 3.3+.") (base32 "16rmxy9y0qhqqna2v49i7nzwm09as699rbyvh4raw7w602w55c3k")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'delete-failing-test + (lambda _ + ;; XXX: These tests require locales that are unavailable + ;; in the build environment. + (delete-file "test/test_DateTimeParserGenerator.py") + #t))))) (inputs `(("icu4c" ,icu4c))) (home-page "http://pyicu.osafoundation.org/") @@ -1730,6 +1767,12 @@ standard library.") (base32 "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56")))) (build-system python-build-system) + (arguments + ;; FIXME: "ImportError: 'test' module incorrectly imported from + ;; '/gnu/store/...-python-pytest-mimimal-3.0.5/lib/python3.5/site-packages'. + ;; Expected '/tmp/guix-build-python-py-1.4.31.drv-0/py-1.4.31/py'. + ;; Is this module globally installed?" + '(#:tests? #f)) (home-page "http://pylib.readthedocs.org/") (synopsis "Python library for parsing, I/O, instrospection, and logging") (description @@ -1928,6 +1971,15 @@ same arguments.") (for-each delete-file (find-files "." "\\.pyc$")) #t)))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ;FIXME: Some tests are failing. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (delete 'check) + ;; (add-after 'install 'check + ;; (lambda* (#:key inputs outputs #:allow-other-keys) + ;; (add-installed-pythonpath inputs outputs) + ;; (zero? (system* "py.test" "-v"))))) (native-inputs `(("unzip" ,unzip) ("python-setuptools-scm" ,python-setuptools-scm))) @@ -1980,17 +2032,36 @@ subprocess and see the output as well as any file modifications.") (define-public python-testtools (package (name "python-testtools") - (version "1.0.0") + (version "1.4.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/t/testtools/testtools-" - version ".tar.gz")) + (uri (pypi-uri "testtools" version)) (sha256 (base32 - "1dyml28ykpl5jb9khdmcdvhy1cxqingys6qvj2k04fzlaj6z3bbx")))) + "1vw8yljnd75d396hhw6s2hrf4cclzy845ifd5am0lxsl235z3i8c")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-module-imports + (lambda _ + (substitute* "setup.py" + (("'unittest2>=0.8.0',") "")) + (substitute* '("testtools/testcase.py" + "testtools/testsuite.py" + "testtools/run.py" + "testtools/tests/test_run.py" + "testtools/tests/test_testsuite.py" + "testtools/tests/test_deferredruntest.py") + ;; unittest2 is a backport of Python2.7 features to Python 2.4. + (("import unittest2 as unittest") "import unittest") + (("import unittest2") "import unittest as unittest2") + (("from unittest2 import") "from unittest import")) + (substitute* "testtools/tests/test_testresult.py" + ;; NUL in source code is not allowed (raises ValueError). + (("\\x00\\x04") "\\x04")) + #t))))) (propagated-inputs `(("python-mimeparse" ,python-mimeparse) ("python-extras" ,python-extras))) @@ -2106,7 +2177,8 @@ protocol.") (uri (pypi-uri "pbr" version)) (sha256 (base32 - "177kd9kbv1hvf2ban7l3x9ymzbi1md4hkaymwbgnz7ihf312hr0q")))) + "177kd9kbv1hvf2ban7l3x9ymzbi1md4hkaymwbgnz7ihf312hr0q")) + (patches (search-patches "python-pbr-fix-man-page-support.patch")))) (build-system python-build-system) (arguments `(#:tests? #f)) @@ -2161,10 +2233,18 @@ from git information. (base32 "0djxvdwm8s60dbfn7bhf40x6g818p3b3mlwijm1c3bqg7msn271y")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "testtools.run" + "fixtures.test_suite"))))))) (propagated-inputs `(("python-six" ,python-six))) (native-inputs - `(("python-pbr-minimal" ,python-pbr-minimal) + `(("python-mock" ,python-mock) + ("python-pbr-minimal" ,python-pbr-minimal) ("python-testtools" ,python-testtools))) (home-page "https://launchpad.net/python-fixtures") (synopsis "Python test fixture library") @@ -2190,6 +2270,9 @@ Python tests.") (base32 "1ssqb07c277010i6gzzkbdd46gd9mrj0bi0i8vn560n2k2y4j93m")))) (build-system python-build-system) + (arguments + ;; FIXME: Many tests are failing. + '(#:tests? #f)) (propagated-inputs `(("python-fixtures" ,python-fixtures) ("python-subunit" ,python-subunit) @@ -2219,6 +2302,9 @@ have failed since the last commit or what tests are currently failing.") (base32 "01rbr4br4lsk0lwn8fb96zwd2xr4f0mg1w7iq3j11i8f5ig2nqs1")))) (build-system python-build-system) + (arguments + ;; FIXME: 95 tests failed, 539 passed, 6 skipped, 2 errors. + '(#:tests? #f)) (home-page "http://nedbatchelder.com/code/coverage") (synopsis "Code coverage measurement for Python") (description @@ -2394,7 +2480,12 @@ is used by the Requests library to verify HTTPS requests.") (substitute* "click/_unicodefun.py" (("'locale'") (string-append "'" glibc "/bin/locale'")))) - #t))))) + #t)) + (replace 'check + (lambda _ + (zero? (system* "make" "test"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "http://click.pocoo.org") (synopsis "Command line library for Python") (description @@ -2446,19 +2537,18 @@ installed with a newer @code{pip} or with wheel's own command line utility.") (define-public python-requests (package (name "python-requests") - (version "2.9.1") + (version "2.13.0") (source (origin (method url-fetch) (uri (pypi-uri "requests" version)) (sha256 (base32 - "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5")))) + "1s0wg4any4dsv5l3hqjxqk2zgb7pdbqhy9rhc8kh3aigfq4ws8jp")))) + ;; TODO: unbundle urllib3 and chardet. (build-system python-build-system) - (native-inputs - `(("python-py" ,python-py) - ("python-pytest" ,python-pytest) - ("python-pytest-cov" ,python-pytest-cov) - ("python-wheel" ,python-wheel))) + (arguments + ;; FIXME: Some tests require network access. + '(#:tests? #f)) (home-page "http://python-requests.org/") (synopsis "Python HTTP library") (description @@ -2618,6 +2708,35 @@ somewhat intelligeble.") (define-public python2-pyjwt (package-with-python2 python-pyjwt)) +(define-public python-pykka + (package + (name "python-pykka") + (version "1.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Pykka" version)) + (sha256 + (base32 + "049w3r0mdnnw7xv19jiq7rvls9k7xs73x05b4qs5d6z4vvmgyiz8")))) + (build-system python-build-system) + (native-inputs + `(("python-mock" ,python-mock) + ("python-nose" ,python-nose) + ("python-gevent" ,python-gevent) + ("python-eventlet" ,python-eventlet))) + (home-page "https://www.pykka.org/") + (synopsis "Pykka is a Python implementation of the actor model") + (description + "Pykka is a Python implementation of the actor model. +The actor model introduces some simple rules to control the sharing +of state and cooperation between execution units, which makes it +easier to build concurrent applications.") + (license license:asl2.0))) + +(define-public python2-pykka + (package-with-python2 python-pykka)) + (define-public python-oauthlib (package (name "python-oauthlib") @@ -2631,6 +2750,7 @@ somewhat intelligeble.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose) + ("python-mock" ,python-mock) ("python-cryptography" ,python-cryptography) ("python-pyjwt" ,python-pyjwt) ("python-blinker" ,python-blinker))) @@ -2647,7 +2767,6 @@ OAuth request-signing logic.") (package (inherit base) (native-inputs `(("python2-unittest2" ,python2-unittest2) - ("python2-mock" ,python2-mock) ,@(package-native-inputs base)))))) (define-public python-itsdangerous @@ -2794,15 +2913,26 @@ written in pure Python.") (base32 "0nmqsfmiw4arjxqkmf9z66ml950pcdjk6aq4gin4sywmzdjw5fzp")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Python 3 tests are failing. (home-page "http://defunkt.io/pystache/") (synopsis "Python logic-less template engine") (description "Pystache is a Python implementation of the framework agnostic, logic-free templating system Mustache.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-pystache)))))) (define-public python2-pystache - (package-with-python2 python-pystache)) + (package (inherit (package-with-python2 + (strip-python2-variant python-pystache))) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "test_pystache.py"))))))))) (define-public python-joblib (package @@ -2899,6 +3029,9 @@ reStructuredText.") (base32 "10axnp2wpjnq9g8wg53fx0c70dfxqrz498jyz8mrdx9a3flwir48")))) (build-system python-build-system) + (arguments + ;; FIXME: Tests require sphinx, which depends on this. + '(#:tests? #f)) (home-page "http://pygments.org/") (synopsis "Syntax highlighting") (description @@ -2911,30 +3044,56 @@ reStructuredText.") (define-public python-sphinx (package (name "python-sphinx") - (version "1.2.3") + (version "1.5.1") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/S/Sphinx/Sphinx-" - version ".tar.gz")) + (uri (pypi-uri "Sphinx" version)) (sha256 (base32 - "011xizm3jnmf4cvs5i6kgf6c5nn046h79i8j0vd0f27yw9j3p4wl")))) + "1i8p9idnli4gr0y4x67yakbdk5w6a0xjzhrg6bg51y9d1fi7fslf")))) (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Requires Internet access. + (delete-file "tests/test_build_linkcheck.py") + (zero? (system* "make" "test"))))))) (propagated-inputs - `(("python-jinja2" ,python-jinja2) + `(("python-imagesize" ,python-imagesize) + ("python-sphinx-alabaster-theme" + ,python-sphinx-alabaster-theme) + ("python-babel" ,python-babel) + ("python-snowballstemmer" ,python-snowballstemmer) ("python-docutils" ,python-docutils) - ("python-pygments" ,python-pygments))) + ("python-jinja2" ,python-jinja2) + ("python-pygments" ,python-pygments) + ("python-requests" ,python-requests) + ("python-six" ,python-six))) + (native-inputs + `(("graphviz" ,graphviz) + ("python-html5lib" ,python-html5lib) + ("python-mock" ,python-mock) + ("python-nose" ,python-nose))) (home-page "http://sphinx-doc.org/") (synopsis "Python documentation generator") (description "Sphinx is a tool that makes it easy to create documentation for Python projects or other documents consisting of multiple reStructuredText sources.") - (license license:bsd-3))) + (license license:bsd-3) + (properties `((python2-variant . ,(delay python2-sphinx)))))) (define-public python2-sphinx - (package-with-python2 python-sphinx)) + (let ((base (package-with-python2 (strip-python2-variant python-sphinx)))) + (package + (inherit base) + (native-inputs `(("python2-mock" ,python2-mock) + ("python2-enum34" ,python2-enum34) + ,@(package-native-inputs base))) + (propagated-inputs `(("python2-pytz" ,python2-pytz) + ,@(package-propagated-inputs base)))))) (define-public python-sphinx-rtd-theme (package @@ -2950,6 +3109,9 @@ sources.") (base32 "19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g")))) (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. + (propagated-inputs + `(("python-sphinx" ,python-sphinx))) (home-page "https://github.com/snide/sphinx_rtd_theme/") (synopsis "ReadTheDocs.org theme for Sphinx") (description "A theme for Sphinx used by ReadTheDocs.org.") @@ -2971,7 +3133,7 @@ sources.") "0bh4lnj2p1nh0wf5pgxgfbrp27xhb1rinahkb5j7s3qprq6qn0sr")))) (build-system python-build-system) (propagated-inputs - `(("python-dateutil" ,python-dateutil-2) + `(("python-dateutil" ,python-dateutil) ("python-six" ,python-six))) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm))) @@ -3065,7 +3227,7 @@ interested parties to subscribe to events, or \"signals\".") ("python-blinker" ,python-blinker) ("python-unidecode" ,python-unidecode) ("python-six" ,python-six) - ("python-dateutil-2" ,python-dateutil-2))) + ("python-dateutil" ,python-dateutil))) (home-page "http://getpelican.com/") (arguments `(;; XXX Requires a lot more packages to do unit tests :P @@ -3106,11 +3268,20 @@ and is very extensible.") (build-system python-build-system) (arguments `(#:phases - (alist-cons-before - 'check 'set-HOME - ;; some tests require access to "$HOME" - (lambda _ (setenv "HOME" "/tmp")) - %standard-phases))) + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + ;; Running tests from the source directory requires + ;; an "inplace" build with paths relative to CWD. + ;; http://scikit-learn.org/stable/developers/advanced_installation.html#testing + ;; Use the installed version instead. + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + ;; some tests require access to "$HOME" + (setenv "HOME" "/tmp") + ;; Step out of the source directory just to be sure. + (chdir "..") + (zero? (system* "nosetests" "-v" "sklearn"))))))) (inputs `(("openblas" ,openblas))) (native-inputs @@ -3142,6 +3313,9 @@ mining and data analysis.") (sha256 (base32 "0jz416fqvpahqyffw8plmszzfj669w8wvf3y9clnr5lr6a7md3kn")))) (build-system python-build-system) + (arguments + ;; TODO: Some tests require running X11 server. Disable them? + '(#:tests? #f)) ;; See DEPENDS.txt for the list of build and run time requiremnts (propagated-inputs `(("python-matplotlib" ,python-matplotlib) @@ -3277,24 +3451,26 @@ between language specification and implementation aspects.") ;; This version of numpy is missing the documentation and is only used to ;; build matplotlib which is required to build numpy's documentation. -(define python-numpy-bootstrap +(define-public python-numpy (package - (name "python-numpy-bootstrap") - (version "1.10.4") + (name "python-numpy") + (version "1.12.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/numpy/NumPy/" version - "/numpy-" version ".tar.gz")) + (uri (string-append + "https://github.com/numpy/numpy/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1bjjhvncraka5s6i4lg644jrxij6bvycxy7an20gcz3a0m11iygp")))) + "025d4j4aakcp8w5i5diqh812cbbjgac7jszx1j56ivrbi1i8vv7d")))) (build-system python-build-system) (inputs `(("openblas" ,openblas) ("lapack" ,lapack))) (native-inputs - `(("python-nose" ,python-nose) + `(("python-cython" ,python-cython) + ("python-nose" ,python-nose) ("gfortran" ,gfortran))) (arguments `(#:phases @@ -3343,8 +3519,8 @@ and Fortran code, useful linear algebra, Fourier transform, and random number capabilities.") (license license:bsd-3))) -(define python2-numpy-bootstrap - (package-with-python2 python-numpy-bootstrap)) +(define-public python2-numpy + (package-with-python2 python-numpy)) (define-public python-munch (package @@ -3370,14 +3546,14 @@ objects.") (define-public python2-fastlmm (package (name "python2-fastlmm") - (version "0.2.26") + (version "0.2.21") (source (origin (method url-fetch) (uri (pypi-uri "fastlmm" version ".zip")) (sha256 (base32 - "0yxrx9xzai4fyrsi7c2p31kxvpq9czmv1p0wax5ic07m6izbszxg")))) + "1q8c34rpmwkfy3r4d5172pzdkpfryj561897z9r3x22gq7813x1m")))) (build-system python-build-system) (arguments `(#:python ,python-2)) ; only Python 2.7 is supported @@ -3391,7 +3567,8 @@ objects.") (native-inputs `(("unzip" ,unzip) ("python2-cython" ,python2-cython) - ("python2-mock" ,python2-mock))) + ("python2-mock" ,python2-mock) + ("python2-nose" ,python2-nose))) (home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/fastlmm/") (synopsis "Perform genome-wide association studies on large data sets") (description @@ -3400,69 +3577,83 @@ Models, is a program for performing both single-SNP and SNP-set genome-wide association studies (GWAS) on extremely large data sets.") (license license:asl2.0))) -(define-public python-numpy - (package (inherit python-numpy-bootstrap) - (name "python-numpy") - (outputs '("out" "doc")) - (inputs - `(("which" ,which) - ,@(package-inputs python-numpy-bootstrap))) - (propagated-inputs - `(("python-matplotlib" ,python-matplotlib) - ("python-pyparsing" ,python-pyparsing) - ,@(package-propagated-inputs python-numpy-bootstrap))) +(define-public python-numpy-documentation + (package + (name "python-numpy-documentation") + (version (package-version python-numpy)) + (source (package-source python-numpy)) + (build-system python-build-system) (native-inputs - `(("pkg-config" ,pkg-config) + `(("python-matplotlib" ,python-matplotlib) + ("python-numpy" ,python-numpy) + ("pkg-config" ,pkg-config) ("python-sphinx" ,python-sphinx) ("python-numpydoc" ,python-numpydoc) ("texlive" ,texlive) ("texinfo" ,texinfo) ("perl" ,perl) - ,@(package-native-inputs python-numpy-bootstrap))) + ("scipy-sphinx-theme" + ,(origin ; The build script expects scipy-sphinx-theme as a git submodule + (method git-fetch) + (uri (git-reference + (url "https://github.com/scipy/scipy-sphinx-theme.git") + (commit "c466764e22"))) + (sha256 + (base32 + "0q2y87clwlsgc7wvlsn9pzyssybcq10plwhq2w1ydykfsyyqbmkl")))) + ,@(package-native-inputs python-numpy))) (arguments - `(,@(substitute-keyword-arguments - (package-arguments python-numpy-bootstrap) - ((#:phases phases) - `(alist-cons-after - 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make installed package available for building the - ;; documentation - (add-installed-pythonpath inputs outputs) - (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append - data "/doc/" ,name "-" - ,(package-version python-numpy-bootstrap))) - (info (string-append data "/info")) - (html (string-append doc "/html")) - (pyver ,(string-append "PYVER="))) - (with-directory-excursion "doc" - (mkdir-p html) - (system* "make" "html" pyver) - (system* "make" "latex" "PAPER=a4" pyver) - (system* "make" "-C" "build/latex" - "all-pdf" "PAPER=a4" pyver) - ;; FIXME: Generation of the info file fails. - ;; (system* "make" "info" pyver) - ;; (mkdir-p info) - ;; (copy-file "build/texinfo/numpy.info" - ;; (string-append info "/numpy.info")) - (for-each (lambda (file) - (copy-file (string-append "build/latex" file) - (string-append doc file))) - '("/numpy-ref.pdf" "/numpy-user.pdf")) - (with-directory-excursion "build/html" - (for-each (lambda (file) - (let* ((dir (dirname file)) - (tgt-dir (string-append html "/" dir))) - (unless (equal? "." dir) - (mkdir-p tgt-dir)) - (install-file file html))) - (find-files "." ".*")))))) - ,phases))))))) + `(#:tests? #f ; we're only generating the documentation + #:phases + (modify-phases %standard-phases + (delete 'build) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((data (string-append (assoc-ref outputs "out") "/share")) + (doc (string-append + data "/doc/" ,name "-" + ,(package-version python-numpy))) + (info-reader (string-append data "/info")) + (html (string-append doc "/html")) + (scipy-sphinx-theme "scipy-sphinx-theme") + (sphinx-theme-checkout (assoc-ref inputs scipy-sphinx-theme)) + (pyver ,(string-append "PYVER="))) + (with-directory-excursion "doc" + (copy-recursively sphinx-theme-checkout scipy-sphinx-theme) + (mkdir-p html) + (system* "make" "html" pyver) + (system* "make" "latex" "PAPER=a4" pyver) + (system* "make" "-C" "build/latex" + "all-pdf" "PAPER=a4" pyver) + ;; FIXME: Generation of the info file fails. + ;; (system* "make" "info" pyver) + ;; (mkdir-p info) + ;; (copy-file "build/texinfo/numpy.info" + ;; (string-append info "/numpy.info")) + (for-each (lambda (file) + (copy-file (string-append "build/latex" file) + (string-append doc file))) + '("/numpy-ref.pdf" "/numpy-user.pdf")) + (with-directory-excursion "build/html" + (for-each (lambda (file) + (let* ((dir (dirname file)) + (tgt-dir (string-append html "/" dir))) + (unless (equal? "." dir) + (mkdir-p tgt-dir)) + (install-file file html))) + (find-files "." ".*"))))) + #t))))) + (home-page (package-home-page python-numpy)) + (synopsis "Documentation for the python-numpy package") + (description (package-description python-numpy)) + (license (package-license python-numpy)))) -(define-public python2-numpy - (package-with-python2 python-numpy)) +(define-public python2-numpy-documentation + (let ((numpy-documentation (package-with-python2 python-numpy-documentation))) + (package + (inherit numpy-documentation) + (native-inputs `(("python2-functools32" ,python2-functools32) + ,@(package-native-inputs numpy-documentation)))))) (define-public python-pygit2 (package @@ -3474,7 +3665,9 @@ association studies (GWAS) on extremely large data sets.") (uri (pypi-uri "pygit2" version)) (sha256 (base32 - "0wf5rp0fvrw7j3j18dvwjq6xqlbm611wd55aphrfpps0v1gxh3ny")))) + "0wf5rp0fvrw7j3j18dvwjq6xqlbm611wd55aphrfpps0v1gxh3ny")) + (patches + (search-patches "python-pygit2-disable-network-tests.patch")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six) @@ -3635,29 +3828,60 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the (define-public python2-cycler (package-with-python2 python-cycler)) +(define-public python-colorspacious + (package + (name "python-colorspacious") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/njsmith/colorspacious/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 "1vflh5jm32qb0skza2i8pjacv09w6gq84fqpp2nj77s0rbmzgr4k")))) + (build-system python-build-system) + (propagated-inputs + `(("python-numpy" ,python-numpy))) + (native-inputs + `(("python-nose" ,python-nose))) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "nosetests" "--all-modules" "-v" "colorspacious"))))))) + (home-page "https://github.com/njsmith/colorspacious") + (synopsis "Python library for colorspace conversions") + (description "@code{colorspacious} is a Python library that lets you +convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.") + (license license:expat))) + +(define-public python2-colorspacious + (package-with-python2 python-colorspacious)) + (define-public python-matplotlib (package (name "python-matplotlib") - (version "1.4.3") + (version "2.0.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/matplotlib/matplotlib" - "/matplotlib-" version - "/matplotlib-" version ".tar.gz")) + (uri (string-append + "https://github.com/matplotlib/matplotlib/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av")) - (patches (search-patches "matplotlib-setupext-tk.patch")))) + "0w3k5m5qb3wsd7yhvmg042xddvligklvcq2visk2c5wnph3hhsln")))) (build-system python-build-system) - (outputs '("out" "doc")) (propagated-inputs ; the following packages are all needed at run time - `(("python-pyparsing" ,python-pyparsing) + `(("python-cycler" ,python-cycler) + ("python-pyparsing" ,python-pyparsing) ("python-pygobject" ,python-pygobject) ("gobject-introspection" ,gobject-introspection) ("python-tkinter" ,python "tk") - ("python-dateutil" ,python-dateutil-2) - ("python-numpy" ,python-numpy-bootstrap) + ("python-dateutil" ,python-dateutil) + ("python-numpy" ,python-numpy) ("python-pillow" ,python-pillow) ("python-pytz" ,python-pytz) ("python-six" ,python-six) @@ -3684,75 +3908,34 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the ("glib" ,glib) ;; FIXME: Add backends when available. ;("python-wxpython" ,python-wxpython) - ;("python-pyqt" ,python-pyqt) + ("python-pyqt" ,python-pyqt) ("tcl" ,tcl) ("tk" ,tk))) (native-inputs `(("pkg-config" ,pkg-config) - ("python-sphinx" ,python-sphinx) - ("python-numpydoc" ,python-numpydoc) ("python-nose" ,python-nose) - ("python-mock" ,python-mock) - ("texlive" ,texlive) - ("texinfo" ,texinfo))) + ("python-mock" ,python-mock))) (arguments `(#:phases - (alist-cons-before - 'build 'configure-environment - (lambda* (#:key outputs inputs #:allow-other-keys) - (let ((cairo (assoc-ref inputs "cairo")) - (gtk+ (assoc-ref inputs "gtk+"))) - ;; Setting these directories in the 'basedirlist' of 'setup.cfg' - ;; has not effect. - (setenv "LD_LIBRARY_PATH" - (string-append cairo "/lib:" gtk+ "/lib")) - (setenv "HOME" (getcwd)) - (call-with-output-file "setup.cfg" - (lambda (port) - (format port "[directories]~% + (modify-phases %standard-phases + (add-before 'build 'configure-environment + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((cairo (assoc-ref inputs "cairo")) + (gtk+ (assoc-ref inputs "gtk+"))) + ;; Setting these directories in the 'basedirlist' of 'setup.cfg' + ;; has not effect. + (setenv "LD_LIBRARY_PATH" + (string-append cairo "/lib:" gtk+ "/lib")) + (setenv "HOME" (getcwd)) + (call-with-output-file "setup.cfg" + (lambda (port) + (format port "[directories]~% basedirlist = ~a,~a~% [rc_options]~% backend = TkAgg~%" (assoc-ref inputs "tcl") - (assoc-ref inputs "tk")))))) - (alist-cons-after - 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append data "/doc/" ,name "-" ,version)) - (info (string-append data "/info")) - (html (string-append doc "/html"))) - ;; Make installed package available for building the - ;; documentation - (add-installed-pythonpath inputs outputs) - (with-directory-excursion "doc" - ;; Produce pdf in 'A4' format. - (substitute* (find-files "." "conf\\.py") - (("latex_paper_size = 'letter'") - "latex_paper_size = 'a4'")) - (mkdir-p html) - (mkdir-p info) - ;; The doc recommends to run the 'html' target twice. - (system* "python" "make.py" "html") - (system* "python" "make.py" "html") - (copy-recursively "build/html" html) - (system* "python" "make.py" "latex") - (system* "python" "make.py" "texinfo") - (symlink (string-append html "/_images") - (string-append info "/matplotlib-figures")) - (with-directory-excursion "build/texinfo" - (substitute* "matplotlib.texi" - (("@image\\{([^,]*)" all file) - (string-append "@image{matplotlib-figures/" file))) - (symlink (string-append html "/_images") - "./matplotlib-figures") - (system* "makeinfo" "--no-split" - "-o" "matplotlib.info" "matplotlib.texi")) - (copy-file "build/texinfo/matplotlib.info" - (string-append info "/matplotlib.info")) - (copy-file "build/latex/Matplotlib.pdf" - (string-append doc "/Matplotlib.pdf"))))) - %standard-phases)))) + (assoc-ref inputs "tk"))))) + #t))))) (home-page "http://matplotlib.org") (synopsis "2D plotting library for Python") (description @@ -3772,11 +3955,78 @@ toolkits.") ;; of those automatically rewritten by package-with-python2. (propagated-inputs `(("python2-pycairo" ,python2-pycairo) + ("python2-functools32" ,python2-functools32) ("python2-pygobject-2" ,python2-pygobject-2) + ("python2-subprocess32" ,python2-subprocess32) ("python2-tkinter" ,python-2 "tk") ,@(fold alist-delete (package-propagated-inputs matplotlib) '("python-pycairo" "python-pygobject" "python-tkinter"))))))) +(define-public python-matplotlib-documentation + (package + (name "python-matplotlib-documentation") + (version (package-version python-matplotlib)) + (source (package-source python-matplotlib)) + (build-system python-build-system) + (native-inputs + `(("python-matplotlib" ,python-matplotlib) + ("python-colorspacious" ,python-colorspacious) + ("python-sphinx" ,python-sphinx) + ("python-numpydoc" ,python-numpydoc) + ("python-ipython" ,python-ipython) + ("python-mock" ,python-mock) + ("graphviz" ,graphviz) + ("texlive" ,texlive) + ("texinfo" ,texinfo) + ,@(package-native-inputs python-matplotlib))) + (arguments + `(#:tests? #f ; we're only generating documentation + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (chdir "doc") + ;; Produce pdf in 'A4' format. + (substitute* "conf.py" + (("latex_paper_size = 'letter'") "") + ;; latex_paper_size is deprecated -> set paper size using + ;; latex_elements + (("latex_elements\\['pointsize'\\] = '11pt'" match) + ;; insert at a point where latex_elements{} is defined: + (string-append match "\nlatex_elements['papersize'] = 'a4paper'"))) + (zero? (system* "python" "make.py" "html" "latex" "texinfo")))) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((data (string-append (assoc-ref outputs "out") "/share")) + (doc (string-append data "/doc/python-matplotlib-" ,version)) + (info (string-append data "/info")) + (html (string-append doc "/html"))) + (mkdir-p html) + (mkdir-p info) + (copy-recursively "build/html" html) + (symlink (string-append html "/_images") + (string-append info "/matplotlib-figures")) + (with-directory-excursion "build/texinfo" + (substitute* "matplotlib.texi" + (("@image\\{([^,]*)" all file) + (string-append "@image{matplotlib-figures/" file))) + (symlink (string-append html "/_images") + "./matplotlib-figures") + (system* "makeinfo" "--no-split" + "-o" "matplotlib.info" "matplotlib.texi")) + (copy-file "build/texinfo/matplotlib.info" + (string-append info "/matplotlib.info")) + (copy-file "build/latex/Matplotlib.pdf" + (string-append doc "/Matplotlib.pdf"))) + #t))))) + (home-page (package-home-page python-matplotlib)) + (synopsis "Documentation for the python-matplotlib package") + (description (package-description python-matplotlib)) + (license (package-license python-matplotlib)))) + +(define-public python2-matplotlib-documentation + (package-with-python2 python-matplotlib-documentation)) + (define-public python2-pysnptools (package (name "python2-pysnptools") @@ -3820,6 +4070,16 @@ operators such as union, intersection, and difference.") (base32 "0nhan2qvrw7b7gg5zddwa22kybdv3x1g26vkd7q8lvnkgzrs4dga")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + (lambda* (#:key outputs inputs #:allow-other-keys) + ;; It's easier to run tests after install. + ;; Make installed package available for running the tests + (add-installed-pythonpath inputs outputs) + (zero? (system* "python" "-m" "rpy2.tests" "-v"))))))) (propagated-inputs `(("python-six" ,python-six))) (inputs @@ -3840,23 +4100,23 @@ functions.") (define-public python2-rpy2 (let ((rpy2 (package-with-python2 python-rpy2))) (package (inherit rpy2) - (native-inputs + (propagated-inputs `(("python2-singledispatch" ,python2-singledispatch) - ,@(package-native-inputs rpy2)))))) + ,@(package-propagated-inputs rpy2)))))) (define-public python-scipy (package (name "python-scipy") - (version "0.16.0") + (version "0.18.1") (source (origin (method url-fetch) -; http://downloads.sourceforge.net/project/scipy/scipy/0.16.1/scipy-0.16.1.tar.gz - (uri (string-append "mirror://sourceforge/scipy/scipy/" version - "/scipy-" version ".tar.xz")) + (uri (string-append "https://github.com/scipy/scipy/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0wa0a4skpda3gx7lb12yn19nhbairlyxrvda2lz2bcawk3x5qzz2")))) + "17slsrfawjp7if6qrlx03zhgp05350ginxx8ddpw9zqx43x905sn")))) (build-system python-build-system) (propagated-inputs `(("python-numpy" ,python-numpy) @@ -3866,22 +4126,22 @@ functions.") `(("lapack" ,lapack) ("openblas" ,openblas))) (native-inputs - `(("python-nose" ,python-nose) + `(("python-cython" ,python-cython) + ("python-nose" ,python-nose) ("python-sphinx" ,python-sphinx) ("python-numpydoc" ,python-numpydoc) ("gfortran" ,gfortran) - ("texlive" ,texlive) ("perl" ,perl))) (outputs '("out" "doc")) (arguments `(#:phases - (alist-cons-before - 'build 'configure-openblas - (lambda* (#:key inputs #:allow-other-keys) - (call-with-output-file "site.cfg" - (lambda (port) - (format port - "[blas] + (modify-phases %standard-phases + (add-before 'build 'configure-openblas + (lambda* (#:key inputs #:allow-other-keys) + (call-with-output-file "site.cfg" + (lambda (port) + (format port + "[blas] libraries = openblas library_dirs = ~a/lib include_dirs = ~a/include @@ -3891,62 +4151,59 @@ include_dirs = ~a/include library_dirs = ~a/lib atlas_libs = openblas " - (assoc-ref inputs "openblas") - (assoc-ref inputs "openblas") - (assoc-ref inputs "openblas")))) - #t) - (alist-cons-after - 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append data "/doc/" ,name "-" ,version)) - (html (string-append doc "/html")) - (pyver ,(string-append "PYVER="))) - ;; Make installed package available for building the - ;; documentation + (assoc-ref inputs "openblas") + (assoc-ref inputs "openblas") + (assoc-ref inputs "openblas")))) + #t)) + (add-after 'install 'install-doc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((data (string-append (assoc-ref outputs "doc") "/share")) + (doc (string-append data "/doc/" ,name "-" ,version)) + (html (string-append doc "/html")) + (pyver ,(string-append "PYVER="))) + ;; Make installed package available for building the + ;; documentation + (add-installed-pythonpath inputs outputs) + (with-directory-excursion "doc" + ;; Fix generation of images for mathematical expressions. + (substitute* (find-files "source" "conf\\.py") + (("pngmath_use_preview = True") + "pngmath_use_preview = False")) + (mkdir-p html) + (system* "make" "html" pyver) + (with-directory-excursion "build/html" + (for-each (lambda (file) + (let* ((dir (dirname file)) + (tgt-dir (string-append html "/" dir))) + (install-file file html))) + (find-files "." ".*"))))) + #t)) + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "scipy/integrate/tests/test_quadpack.py" + (("libm.so") "libm.so.6")) + #t)) + ;; Tests can only be run after the library has been installed and not + ;; within the source directory. + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) (add-installed-pythonpath inputs outputs) - (with-directory-excursion "doc" - ;; Fix generation of images for mathematical expressions. - (substitute* (find-files "source" "conf\\.py") - (("pngmath_use_preview = True") - "pngmath_use_preview = False")) - (mkdir-p html) - (system* "make" "html" pyver) - (system* "make" "latex" "PAPER=a4" pyver) - (system* "make" "-C" "build/latex" "all-pdf" "PAPER=a4" pyver) - (copy-file "build/latex/scipy-ref.pdf" - (string-append doc "/scipy-ref.pdf")) - (with-directory-excursion "build/html" - (for-each (lambda (file) - (let* ((dir (dirname file)) - (tgt-dir (string-append html "/" dir))) - (install-file file html))) - (find-files "." ".*")))))) - ;; Tests can only be run after the library has been installed and not - ;; within the source directory. - (alist-cons-after - 'install 'check - (lambda _ - (with-directory-excursion "/tmp" - (zero? (system* "python" "-c" "import scipy; scipy.test()")))) - (alist-delete - 'check - (alist-cons-after - 'unpack 'fix-tests - (lambda _ - (substitute* "scipy/integrate/tests/test_quadpack.py" - (("libm.so") "libm.so.6")) - #t) - %standard-phases))))))) + (with-directory-excursion "/tmp" + (zero? (system* "python" "-c" + "import scipy; scipy.test('full')"))) + #t))))) (home-page "http://www.scipy.org/") (synopsis "The Scipy library provides efficient numerical routines") (description "The SciPy library is one of the core packages that make up the SciPy stack. It provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization.") + (properties `((python2-variant . ,(delay python2-scipy)))) (license license:bsd-3))) (define-public python2-scipy - (package-with-python2 python-scipy)) + (package-with-python2 + (strip-python2-variant python-scipy))) (define-public python-socksipy-branch (package @@ -4134,11 +4391,22 @@ both of which are installed automatically if you install this library.") (base32 "1wghyvk73cmq3iqyg3fczw128fv2pan2v76m0xg1bw05h8fhvnk3")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Many tests require a running database server. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "py.test" "sqlalchemy_utils" "tests"))))) (propagated-inputs `(("python-six" ,python-six) ("python-sqlalchemy" ,python-sqlalchemy))) (native-inputs - `(("python-pytest" ,python-pytest))) + `(("python-dateutil" ,python-dateutil) + ("python-flexmock" ,python-flexmock) + ("python-psycopg2" ,python-psycopg2) + ("python-pytest" ,python-pytest) + ("python-pytz" ,python-pytz))) (home-page "https://github.com/kvesteri/sqlalchemy-utils") (synopsis "Various utility functions for SQLAlchemy") (description @@ -4429,16 +4697,18 @@ a front-end for C compilers or analysis tools.") `(("python-cffi" ,python-cffi) ; used at run time ("python-six" ,python-six))) (arguments - `(#:phases - (alist-cons-after - 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc (string-append (assoc-ref outputs "out") "/share" - "/doc/" ,name "-" ,version))) - (mkdir-p doc) - (copy-file "README.md" - (string-append doc "/README.md")))) - %standard-phases))) + `(;; FIXME: Tests cannot load libxcb.so.1 + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "out") "/share" + "/doc/" ,name "-" ,version))) + (mkdir-p doc) + (copy-file "README.md" + (string-append doc "/README.md")) + #t)))))) (home-page "https://github.com/tych0/xcffib") (synopsis "XCB Python bindings") (description @@ -4475,25 +4745,27 @@ support for Python 3 and PyPy. It is based on cffi.") (propagated-inputs `(("python-xcffib" ,python-xcffib))) ; used at run time (arguments - `(#:phases - (alist-cons-after - 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((data (string-append (assoc-ref outputs "doc") "/share")) - (doc (string-append data "/doc/" ,name "-" ,version)) - (html (string-append doc "/html"))) - (setenv "LD_LIBRARY_PATH" - (string-append (assoc-ref inputs "cairo") "/lib" ":" - (assoc-ref inputs "gdk-pixbuf") "/lib")) - (setenv "LANG" "en_US.UTF-8") - (mkdir-p html) - (for-each (lambda (file) - (copy-file (string-append "." file) - (string-append doc file))) - '("/README.rst" "/CHANGES" "/LICENSE")) - (system* "python" "setup.py" "build_sphinx") - (copy-recursively "docs/_build/html" html))) - %standard-phases))) + `(;; FIXME: Tests cannot find 'libcairo.so.2'. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((data (string-append (assoc-ref outputs "doc") "/share")) + (doc (string-append data "/doc/" ,name "-" ,version)) + (html (string-append doc "/html"))) + (setenv "LD_LIBRARY_PATH" + (string-append (assoc-ref inputs "cairo") "/lib" ":" + (assoc-ref inputs "gdk-pixbuf") "/lib")) + (setenv "LANG" "en_US.UTF-8") + (mkdir-p html) + (for-each (lambda (file) + (copy-file (string-append "." file) + (string-append doc file))) + '("/README.rst" "/CHANGES" "/LICENSE")) + (system* "python" "setup.py" "build_sphinx") + (copy-recursively "docs/_build/html" html) + #t)))))) (home-page "https://github.com/SimonSapin/cairocffi") (synopsis "Python bindings and object-oriented API for Cairo") (description @@ -4574,6 +4846,8 @@ Python language binding specification.") (sha256 (base32 "1gzjg2k6f14i1msm2b0ax8d9ds1hvk6qd5nlaivg8m4cxqp4cp1x")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Requires python-cherrypy. (propagated-inputs `(("python-psutil" ,python-psutil) ("python-drmaa" ,python-drmaa) @@ -4592,21 +4866,39 @@ cluster without needing to write any wrapper code yourself.") (define-public python-pexpect (package (name "python-pexpect") - (version "3.3") + (version "4.2.1") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p/" - "pexpect/pexpect-" version ".tar.gz")) + (uri (pypi-uri "pexpect" version)) (sha256 - (base32 "1fp5gm976z7ghm8jw57463rj19cv06c8zw842prgyg788f6n3snz")))) + (base32 "14ls7k99pwvl21zqv65kzrhccv50j89m5ij1hf0slmsvlxjj84rx")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases + (add-before 'check 'prepare-tests + (lambda _ + (substitute* (find-files "tests") + (("/bin/ls") (which "ls")) + (("/bin/echo") (which "echo")) + (("/bin/which") (which "which")) + ;; Many tests try to use the /bin directory which + ;; is not present in the build environment. + ;; Use one that's non-empty and unlikely to change. + (("/bin'") "/dev'")) + ;; XXX: Socket connection test gets "Connection reset by peer". + ;; Why does it not work? Delete for now. + (delete-file "tests/test_socket.py") + #t)) (replace 'check (lambda _ (zero? (system* "nosetests"))))))) (native-inputs - `(("python-nose" ,python-nose))) + `(("python-nose" ,python-nose) + ("python-pytest" ,python-pytest) + ("man-db" ,man-db) + ("which" ,which))) + (propagated-inputs + `(("python-ptyprocess" ,python-ptyprocess))) (home-page "http://pexpect.readthedocs.org/") (synopsis "Controlling interactive console applications") (description @@ -4622,13 +4914,13 @@ child application and control it as if a human were typing commands.") (define-public python-setuptools-scm (package (name "python-setuptools-scm") - (version "1.11.1") + (version "1.15.0") (source (origin (method url-fetch) (uri (pypi-uri "setuptools_scm" version)) (sha256 (base32 - "1gqr73i150yzj3mz32854vj93x07yr52kn8fdckwa41ll8wgficc")))) + "0bwyc5markib0i7i2qlyhdzxhiywzxbkfiapldma8m91m82jvwfs")))) (build-system python-build-system) (home-page "https://github.com/pypa/setuptools_scm/") (synopsis "Manage Python package versions in SCM metadata") @@ -4911,20 +5203,26 @@ installing @code{kernelspec}s for use with Jupyter frontends.") (build-system python-build-system) (arguments `(#:tests? #f ; this package does not even have a setup.py + #:modules ((guix build python-build-system) + (guix build utils) + (srfi srfi-1)) + #:imported-modules (,@%python-build-system-modules + (srfi srfi-1)) #:phases (modify-phases %standard-phases (delete 'install) (replace 'build - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((dir (string-append - (assoc-ref outputs "out") - "/lib/python" - (string-take (string-take-right - (assoc-ref inputs "python") 5) 3) - "/site-packages/testpath"))) - (mkdir-p dir) - (copy-recursively "testpath" dir)) - #t))))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((version (last + (string-split (assoc-ref inputs "python") #\-))) + (x.y (string-join (take (string-split version #\.) 2) + ".")) + (dir (string-append + (assoc-ref outputs "out") + "/lib/python" x.y "/site-packages/testpath"))) + (mkdir-p dir) + (copy-recursively "testpath" dir)) + #t))))) (home-page "https://github.com/takluyver/testpath") (synopsis "Test utilities for code working with files and commands") (description @@ -4939,17 +5237,18 @@ tools for mocking system commands and recording calls to those.") (define-public python-ipython (package (name "python-ipython") - (version "4.0.3") + (version "5.2.2") (source (origin (method url-fetch) (uri (pypi-uri "ipython" version ".tar.gz")) (sha256 - (base32 "1h2gp1p06sww9rzfkfzqy489bh47gj3910y2b1wdk3dcx1cqz4is")))) + (base32 "1qhjwa9cyz1np7rhv3p4ip13lkgbqsad62l24xkwiq1ic2gwiqbf")))) (build-system python-build-system) (outputs '("out" "doc")) (propagated-inputs `(("python-pyzmq" ,python-pyzmq) + ("python-prompt-toolkit" ,python-prompt-toolkit) ("python-terminado" ,python-terminado) ("python-matplotlib" ,python-matplotlib) ("python-numpy" ,python-numpy) @@ -4962,16 +5261,19 @@ tools for mocking system commands and recording calls to those.") ("python-jsonschema" ,python-jsonschema) ("python-traitlets" ,python-traitlets) ("python-ipykernel" ,python-ipykernel) + ("python-nbformat" ,python-nbformat) ("python-pygments" ,python-pygments))) (inputs `(("readline" ,readline) ("which" ,which))) (native-inputs - `(("pkg-config" ,pkg-config) + `(("graphviz" ,graphviz) + ("pkg-config" ,pkg-config) ("python-requests" ,python-requests) ;; for tests ("python-testpath" ,python-testpath) ("python-nose" ,python-nose) ("python-sphinx" ,python-sphinx) + ("python-shpinx-rtd-theme" ,python-sphinx-rtd-theme) ("texlive" ,texlive) ("texinfo" ,texinfo))) (arguments @@ -4985,15 +5287,16 @@ tools for mocking system commands and recording calls to those.") (html (string-append doc "/html")) (man1 (string-append data "/man/man1")) (info (string-append data "/info")) - (examples (string-append doc "/examples"))) + (examples (string-append doc "/examples")) + (python-arg (string-append "PYTHON=" (which "python")))) (setenv "LANG" "en_US.utf8") ;; Make installed package available for running the tests (add-installed-pythonpath inputs outputs) (with-directory-excursion "docs" ;; FIXME: pdf fails to build ;;(system* "make" "pdf" "PAPER=a4") - (system* "make" "html") - (system* "make" "info")) + (system* "make" python-arg "html") + (system* "make" python-arg "info")) (copy-recursively "docs/man" man1) (copy-recursively "examples" examples) (copy-recursively "docs/build/html" html) @@ -5043,10 +5346,12 @@ computing.") (let ((ipython (package-with-python2 (strip-python2-variant python-ipython)))) (package (inherit ipython) - ;; FIXME: some tests are failing - (arguments - `(#:tests? #f ,@(package-arguments ipython))) ;; FIXME: add pyreadline once available. + (propagated-inputs + `(("python2-backports-shutil-get-terminal-size" + ,python2-backports-shutil-get-terminal-size) + ("python2-pathlib2" ,python2-pathlib2) + ,@(package-propagated-inputs ipython))) (native-inputs `(("python2-mock" ,python2-mock) ,@(package-native-inputs ipython)))))) @@ -5322,13 +5627,12 @@ implementation of D-Bus.") `(("sqlite" ,sqlite))) (arguments `(#:phases - ;; swap check and install phases - (alist-cons-after - 'install 'check - (assoc-ref %standard-phases 'check) - (alist-delete - 'check - %standard-phases)))) + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (zero? (system* "python" "setup.py" "test"))))))) (home-page "https://github.com/rogerbinns/apsw/") (synopsis "Another Python SQLite Wrapper") (description "APSW is a Python wrapper for the SQLite @@ -5400,7 +5704,8 @@ screen-scraping projects. It offers Pythonic idioms for navigating, searching, and modifying a parse tree, providing a toolkit for dissecting a document and extracting what you need. It automatically converts incoming documents to Unicode and outgoing documents to UTF-8.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-beautifulsoup4)))))) (define-public python2-beautifulsoup4 (package @@ -5477,6 +5782,7 @@ another XPath engine to find the matching elements in an XML or HTML document.") (base32 "102hy2qisvjxp5s0v9lvwqi4f2dk0dhns40vjgn008yxc7k0h3cr")))) (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. (home-page "https://github.com/puiterwijk/python-openid-cla/") (synopsis "Implementation of the OpenID CLA extension for python-openid") (description "@code{openid-cla} is an implementation of the OpenID @@ -5498,6 +5804,7 @@ contributor license agreement extension for python-openid.") (base32 "05zrh78alav24rxkbqlpbad6d3x2nljk6z6j7kflxf3vdqa7w969")))) (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. (home-page "https://github.com/puiterwijk/python-openid-teams/") (synopsis "Implementation of the OpenID teams extension for python-openid") (description @@ -5564,17 +5871,18 @@ of the structure, dynamics, and functions of complex networks.") (define-public snakemake (package (name "snakemake") - (version "3.2.1") + (version "3.9.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/s/snakemake/snakemake-" - version ".tar.gz")) + (uri (pypi-uri "snakemake" version)) (sha256 - (base32 "0fi4b63sj60hvi7rfydvmz2icl4wj74djw5sn2gl8hxd02qw4b91")))) + (base32 "1d48ql0010v9ls6mac7fz6j391gm4h74a64hqgw89s0vfqgdyzdl")))) (build-system python-build-system) - (home-page "https://bitbucket.org/johanneskoester/snakemake") + (arguments + ;; TODO: Package missing test dependencies. + '(#:tests? #f)) + (home-page "https://bitbucket.org/snakemake/snakemake/wiki/Home") (synopsis "Python-based execution environment for make-like workflows") (description "Snakemake aims to reduce the complexity of creating workflows by @@ -5593,6 +5901,8 @@ Python style, together with a fast and comfortable execution environment.") (sha256 (base32 "0pawrqc3mxpwd5g9pvi9gba02637bh5c8ldpp8izfwpfn52469zs")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; Tests requires a running X11 server. (propagated-inputs `(("python-pandas" ,python-pandas) ("python-matplotlib" ,python-matplotlib) @@ -5614,10 +5924,40 @@ and statistical routines from scipy and statsmodels.") (propagated-inputs `(("python2-pytz" ,python2-pytz) ,@(package-propagated-inputs base)))))) +(define-public python-mpmath + (package + (name "python-mpmath") + (version "0.19") + (source (origin + (method url-fetch) + (uri (string-append "http://mpmath.org/files/mpmath-" + version ".tar.gz")) + (sha256 + (base32 + "08ijsr4ifrqv3cjc26mkw0dbvyygsa99in376hr4b96ddm1gdpb8")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? + (system* "python" "mpmath/tests/runtests.py" "-local"))))))) + (home-page "http://mpmath.org") + (synopsis "Arbitrary-precision floating-point arithmetic in python") + (description + "@code{mpmath} can be used as an arbitrary-precision substitute for +Python's float/complex types and math/cmath modules, but also does much +more advanced mathematics.") + (license license:bsd-3))) + +(define-public python2-mpmath + (package-with-python2 python-mpmath)) + (define-public python-sympy (package (name "python-sympy") - (version "0.7.6") + (version "1.0") (source (origin (method url-fetch) @@ -5625,8 +5965,10 @@ and statistical routines from scipy and statsmodels.") "https://github.com/sympy/sympy/releases/download/sympy-" version "/sympy-" version ".tar.gz")) (sha256 - (base32 "19yp0gy4i7p4g6l3b8vaqkj9qj7yqb5kqy0qgbdagpzgkdz958yz")))) + (base32 "1bpzjwr9hrr7w88v4vgnj9lr6vxcldc94si13n8xpr1rv08d5b1y")))) (build-system python-build-system) + (propagated-inputs + `(("python-mpmath" ,python-mpmath))) (home-page "http://www.sympy.org/") (synopsis "Python library for symbolic mathematics") (description @@ -5744,6 +6086,17 @@ It is written entirely in Python.") (sha256 (base32 "1gzgwayl6hmc9jfcl88bni4jcsk2jcca9dn1rvrfsvnijcjx7hn9")))) (build-system python-build-system) + (arguments + '(;; FIXME: Two tests error out with: + ;; AssertionError: b'Error in atexit._run_exitfuncs:\nFileNotF[44 chars]ry\n' != b'' + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; ;; 'setup.py test' hits an AssertionError on BSD-specific + ;; ;; "tornado/platform/kqueue.py". This is the supported method: + ;; (zero? (system* "python" "-m" "tornado.test"))))) + #:tests? #f)) (native-inputs `(("python-certifi" ,python-certifi))) (propagated-inputs @@ -5791,6 +6144,36 @@ connection to each user.") (define-public python2-backports-abc (package-with-python2 python-backports-abc)) +(define-public python2-backports-shutil-get-terminal-size + (package + (name "python2-backports-shutil-get-terminal-size") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "backports.shutil_get_terminal_size" version)) + (sha256 + (base32 + "107cmn7g3jnbkp826zlj8rrj19fam301qvaqf0f3905f5217lgki")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "py.test" "-v"))))))) + (native-inputs + `(("python2-pytest" ,python2-pytest))) + (home-page "https://github.com/chrippa/backports.shutil_get_terminal_size") + (synopsis "Backport of Python 3.3's @code{shutil.get_terminal_size}") + (description + "This package provides a backport of the @code{get_terminal_size +function} from Python 3.3's @code{shutil}. +Unlike the original version it is written in pure Python rather than C, +so it might be a tiny bit slower.") + (license license:expat))) + (define-public python-waf (package (name "python-waf") @@ -5953,7 +6336,10 @@ complexity of Python source code.") ".tar.gz")) (sha256 (base32 - "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m")))))) + "12b9bbdbwnspxgak14xg58c130x2n0blxzlms5jn2dszn8qj3d0m")))) + (arguments + ;; XXX Tests not compatible with Python 3.5. + '(#:tests? #f)))) (define-public python2-pep8-1.5.7 (package-with-python2 python-pep8-1.5.7)) @@ -5972,7 +6358,10 @@ complexity of Python source code.") ".tar.gz")) (sha256 (base32 - "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z")))))) + "0sbpq6pqm1i9wqi41mlfrsc5rk92jv4mskvlyxmnhlbdnc80ma1z")))) + (arguments + ;; XXX Tests not compatible with Python 3.5. + '(#:tests? #f)))) (define-public python2-pyflakes-0.8.1 (package-with-python2 python-pyflakes-0.8.1)) @@ -6040,7 +6429,10 @@ complexity of Python source code.") (for-each delete-file-recursively (find-files "." "__pycache__" #:directories? #t)) (for-each delete-file (find-files "." "\\.pyc$")) - #t)))))) + #t)))) + (arguments + ;; XXX Fails with Python 3.5. + '(#:tests? #f)))) (define-public python2-flake8-2.2.4 (package-with-python2 python-flake8-2.2.4)) @@ -6057,6 +6449,20 @@ complexity of Python source code.") (base32 "02gn2wxvh9vnf7m7dld7ca4l60mg5c370hv3swwppkngwaqmcw67")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append (getcwd) "/build/lib:" + (getenv "PYTHONPATH"))) + (zero? (system* "py.test" "-v"))))))) + (native-inputs + `(("python-flake8" ,python-flake8) + ("python-mock" ,python-mock) + ("python-pycodestyle" ,python-pycodestyle) + ("python-pytest" ,python-pytest))) (home-page "https://gitlab.com/pycqa/flake8-polyfill") (synopsis "Polyfill package for Flake8 plugins") (description @@ -6329,6 +6735,9 @@ from an XML-based format.") (base32 "0g6n288l83sfwavxh1aryi0aqvsr3sp7v6f903mckwqa4scpky62")))) (build-system python-build-system) + (arguments + ;; FIXME: Some tests need network access. + '(#:tests? #f)) (synopsis "Tool and library for manipulating LilyPond files") (description "This package provides a Python library to parse, manipulate or create documents in LilyPond format. A command line program ly is also @@ -6497,6 +6906,8 @@ and MAC network addresses.") (base32 "0c7gh3lsdjds262h0v1sqc66l7hqgfwbakn96qrhdbl0i3vm5yz8")))) (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://bitbucket.org/micktwomey/pyiso8601") (synopsis "Module to parse ISO 8601 dates") (description @@ -6909,13 +7320,25 @@ message digests and key derivation functions.") (uri (pypi-uri "pyOpenSSL" version)) (sha256 (base32 - "0vji4yrfshs15xpczbhzhasnjrwcarsqg87n98ixnyafnyxs6ybp")))) + "0vji4yrfshs15xpczbhzhasnjrwcarsqg87n98ixnyafnyxs6ybp")) + (patches + (search-patches "python-pyopenssl-skip-network-test.patch")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (zero? (system* "py.test" "-v"))))))) (propagated-inputs `(("python-cryptography" ,python-cryptography) ("python-six" ,python-six))) (inputs `(("openssl" ,openssl))) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/pyca/pyopenssl") (synopsis "Python wrapper module around the OpenSSL library") (description @@ -7230,9 +7653,19 @@ functions to find and load entry points.") (base32 "0brclbb18l4nmd5qy3dl9wn05rjdh1fz4rmzdlfqacj12rcdvdgp")))) (build-system python-build-system) - ;; The "bdist_egg" target is disabled by default, causing the installation - ;; to fail. - (arguments `(#:configure-flags (list "bdist_egg"))) + (arguments + `(;; The "bdist_egg" target is disabled by default, causing the installation + ;; to fail. + #:configure-flags (list "bdist_egg") + ;; FIXME: 5 failures, 40 errors. + #:tests? #f)) + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "py.test" "-v"))))) + (native-inputs + `(("python-pytest" ,python-pytest))) (propagated-inputs `(("python-bleach" ,python-bleach) ("python-entrypoints" ,python-entrypoints) @@ -7333,7 +7766,8 @@ interactive computing.") (propagated-inputs `(("python-notebook" ,python-notebook))) (native-inputs - `(("python-nose" ,python-nose))) + `(("python-certifi" ,python-certifi) + ("python-nose" ,python-nose))) (home-page "http://ipython.org") (synopsis "IPython HTML widgets for Jupyter") (description "This package provides interactive HTML widgets for Jupyter @@ -7614,6 +8048,8 @@ forms, HTTP servers, regular expressions, and more.") (base32 "1r7iqknhh55y45f64mz5hghgvzx34h1i11k350s0avx6q8gznja1")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. (native-inputs `(("python-six" ,python-six) ;("python-zope-interface" ,python-zope-interface) @@ -7674,8 +8110,11 @@ internationalized messages within program source text.") (base32 "1p943jdxb587dh7php4vx04qvn7b2877hr4qs5zyckvp5afhhank")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.event. (propagated-inputs `(("python-zope-event" ,python-zope-event) + ("python-zope-exceptions", python-zope-exceptions) ("python-zope-interface" ,python-zope-interface))) (native-inputs `(("python-zope-testing" ,python-zope-testing) @@ -7703,6 +8142,8 @@ defining data schemas.") (base32 "1x9dfqypgympnlm25p9m43xh4qv3p7d75vksv9pzqibrb4cggw5n")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. (propagated-inputs `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) ("python-zope-schema" ,python-zope-schema))) @@ -7728,6 +8169,8 @@ Markup Language.") (base32 "0pqwwmvm1prhwv1ziv9lp8iirz7xkwb6n2kyj36p2h0ppyyhjnm4")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. (propagated-inputs `(("python-zope-interface" ,python-zope-interface))) (home-page "http://pypi.python.org/pypi/zope.proxy") @@ -7755,6 +8198,8 @@ brokering, etc.) for which the proxy is responsible.") (base32 "1nj9da4ksiyv3h8n2vpzwd0pb03mdsh7zy87hfpx72b6p2zcwg74")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.interface. (propagated-inputs `(("python-zope-proxy" ,python-zope-proxy) ("python-zope-schema" ,python-zope-schema))) @@ -7780,12 +8225,15 @@ Zope3, which are are special objects that have a structural location.") (base32 "14zmf684amc0x32kq05yxnhfqd1cmyhafkw05gn81rn90zjv6ssy")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Tests can't find zope.testrunner. (propagated-inputs `(("python-zope-i18nmessageid" ,python-zope-i18nmessageid) ("python-zope-proxy" ,python-zope-proxy) ("python-zope-schema" ,python-zope-schema))) - (native-inputs - `(("python-zope-component" ,python-zope-component) + (native-inputs + `(("python-six" ,python-six) + ("python-zope-component" ,python-zope-component) ("python-zope-configuration" ,python-zope-configuration) ("python-zope-location" ,python-zope-location) ("python-zope-testrunner" ,python-zope-testrunner) @@ -8259,6 +8707,8 @@ minimal and fast API targetting the following uses: (base32 "0k3vypszmgmaipgw9xscvgm79h2zd6p6ci8gdp5sxl6g5kbqr9fy")))) (build-system python-build-system) + ;; TODO: Tests require packaging 'hiredis'. + (arguments '(#:tests? #f)) (home-page "https://github.com/benjolitz/trollius-redis") (synopsis "Port of asyncio-redis to trollius") (description "@code{trollius-redis} is a Redis client for Python @@ -8389,7 +8839,7 @@ processes across test runs.") "086jslw8cg2hni79j267p1dy6d27m7q5hi39ni2clh9waqbdf5v3")))) (build-system python-build-system) (propagated-inputs - `(("python-dateutil-2" ,python-dateutil-2) + `(("python-dateutil" ,python-dateutil) ("python-pytz" ,python-pytz))) (synopsis "Python library for parsing iCalendar files") (description "The icalendar package is a parser/generator of iCalendar @@ -8407,6 +8857,7 @@ files for use with Python.") (sha256 (base32 "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p")))) + (arguments '(#:tests? #f)) ; No tests. (build-system python-build-system) (propagated-inputs `(("python-sphinx" ,python-sphinx))) @@ -8447,6 +8898,14 @@ Blog, News or Announcements section to a Sphinx website.") (base32 "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "py.test" "-v"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) (propagated-inputs `(("python-args" ,python-args))) (home-page "https://github.com/kennethreitz/clint") @@ -8516,6 +8975,17 @@ with a new public API, and RPython support.") (base32 "1msqv747iz12r73mz4qvsmlwkddwjvrahlrk7ysrcz07h7dsscxs")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + ;; Tests require write access to HOME. + (setenv "HOME" "/tmp") + (zero? (system* "nosetests"))))))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) (propagated-inputs `(("python-astor" ,python-astor) ("python-clint" ,python-clint) @@ -8586,6 +9056,47 @@ authenticated session objects providing things like keep-alive.") 3.2.3 for use with older versions of Python and PyPy.") (license license:expat))) +(define-public python2-subprocess32 + (package + (name "python2-subprocess32") + (version "3.2.7") + (source (origin + (method url-fetch) + (uri (pypi-uri "subprocess32" version)) + (sha256 + (base32 + "14350dhhlhyz5gqzi3lihn9m6lvskx5mcb20srx1kgsk9i50li8y")) + (patches + (search-patches "python2-subprocess32-disable-input-test.patch")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* '("subprocess32.py" + "test_subprocess32.py") + (("/bin/sh") (which "sh"))) + #t)) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For some reason this package fails to import + ;; _posixsubprocess.so when PYTHONPATH is set to the build + ;; directory. Running tests after install is easier. + (add-installed-pythonpath inputs outputs) + (zero? (system* "python" "test_subprocess32.py"))))))) + (home-page "https://github.com/google/python-subprocess32") + (synopsis "Backport of the subprocess module from Python 3.2") + (description + "This is a backport of the @code{subprocess} standard library module +from Python 3.2 and 3.3 for use on Python 2. It includes bugfixes and some +new features. On POSIX systems it is guaranteed to be reliable when used +in threaded applications. It includes timeout support from Python 3.3 but +otherwise matches 3.2’s API.") + (license license:psfl))) + (define-public python2-futures (package (name "python2-futures") @@ -8790,6 +9301,8 @@ servers.") (base32 "0g9xvl69y7nr3w7ag4fsp6sm4fqf6vrqjw7504x2hzrrsh3ampq8")))) (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose))) (synopsis "JSON Matching Expressions") (description "JMESPath (pronounced “james path”) is a Python library that allows one to declaratively specify how to extract elements from a JSON @@ -8812,8 +9325,11 @@ document.") (base32 "1hqvqwhgfcch4knm1l02ynx7qd1igxk3pj34c1x2b0r79jca524n")))) (build-system python-build-system) + (arguments + ;; FIXME: Many tests are failing. + '(#:tests? #f)) (propagated-inputs - `(("python-dateutil" ,python-dateutil-2) + `(("python-dateutil" ,python-dateutil) ("python-docutils" ,python-docutils) ("python-jmespath" ,python-jmespath))) (native-inputs @@ -8849,12 +9365,9 @@ interface to the Amazon Web Services (AWS) API.") ("python-s3transfer" ,python-s3transfer) ("python-docutils" ,python-docutils) ("python-rsa" ,python-rsa))) - (native-inputs - `(("python-mock" ,python-mock) - ("python-nose" ,python-nose) - ("python-sphinx" ,python-sphinx) - ("python-tox" ,python-tox) - ("python-wheel" ,python-wheel))) + (arguments + ;; FIXME: The 'pypi' release does not contain tests. + '(#:tests? #f)) (home-page "https://aws.amazon.com/cli/") (synopsis "Command line client for AWS") (description "AWS CLI provides a unified command line interface to the @@ -8872,7 +9385,7 @@ Amazon Web Services (AWS) API.") (base32 "0qyqq9akm4vshhn8cngjc1qykcvsn7cz6dlm6njfsgpbraqrmbbw")))) (build-system python-build-system) - (propagated-inputs + (native-inputs `(("python-flake8" ,python-flake8) ("python-pytest" ,python-pytest))) (synopsis "Library for property based testing") @@ -8889,7 +9402,8 @@ seamlessly into your existing Python unit testing work flow.") (strip-python2-variant python-hypothesis)))) (package (inherit hypothesis) (native-inputs - `(("python2-enum34" ,python2-enum34)))))) + `(("python2-enum34" ,python2-enum34) + ,@(package-native-inputs hypothesis)))))) (define-public python-pytest-subtesthack (package @@ -9011,7 +9525,8 @@ available in Django, but is a standalone package.") `(("python-markupsafe" ,python-markupsafe))) (native-inputs `(("python-mock" ,python-mock) - ("python-nose" ,python-nose))) + ("python-nose" ,python-nose) + ("python-pytest" ,python-pytest))) (home-page "http://www.makotemplates.org/") (synopsis "Templating language for Python") (description "Mako is a templating language for Python that compiles @@ -9355,6 +9870,10 @@ RabbitMQ messaging server is the most popular implementation.") (strip-python2-variant python-kombu)))) (package (inherit kombu) + (arguments `(;; FIXME: 'TestTransport.test_del_sync' fails on python2. + ;; It works fine on the python3 variant. + #:tests? #f + ,@(package-arguments kombu))) (native-inputs `(("python2-unittest2" ,python2-unittest2) ,@(package-native-inputs kombu)))))) @@ -9501,6 +10020,9 @@ programmatically interfacing with your system's $EDITOR.") (base32 "098as6z1s0gb4dh5xcr1fd2vpm91zj93jzvgawspxf5s4hqs0xhp")))) (build-system python-build-system) + (arguments + ;; FIXME: Many tests are failing and the upstream is gone. + '(#:tests? #f)) (propagated-inputs `(("python-sphinx" ,python-sphinx))) (synopsis "Sphinx extension to include program output") @@ -9523,6 +10045,7 @@ commands into documents, helping you to keep your command examples up to date.") (base32 "08ycivzf7bh4a1zcyp31hbyqs1b2c9r26raa3vxjwwmbfqr3iw4f")))) (build-system python-build-system) + (arguments '(#:tests? #f)) ; No tests. (propagated-inputs `(("python-sphinx" ,python-sphinx) ("python-zope-interface" ,python-zope-interface))) @@ -9578,7 +10101,7 @@ introspection of @code{zope.interface} instances in code.") '(;; The test suite relies on some non-portable Windows interfaces. #:tests? #f)) (propagated-inputs - `(("python-dateutil-2" ,python-dateutil-2) + `(("python-dateutil" ,python-dateutil) ("python-pyicu" ,python-pyicu))) (synopsis "Parse and generate vCard and vCalendar files") (description "Vobject is intended to be a full featured Python package for @@ -9653,6 +10176,16 @@ presume or force a developer to use a particular tool or library.") (base32 "04l5743j2dici46038sqlzvf0xzpg8rf7s9ld2x24xv7f4idg990")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'drop-failing-test + (lambda _ + ;; FIXME: This file tries resolving an external server, which + ;; fails. Try to patch out the offending section instead of + ;; deleting the whole thing. + (delete-file "tests/test_recaptcha.py") + #t))))) (propagated-inputs `(("python-flask-babel" ,python-flask-babel) ("python-babel" ,python-babel) @@ -10264,6 +10797,8 @@ to occurences in strings and comments.") (base32 "0i283z1pivmir61z8kbiycigc94l61v33ygzkhczf1ifq7cppyds")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; TODO: Requires many libraries not in Guix. (home-page "https://github.com/ultrabug/py3status") (synopsis "Extensible i3status wrapper written in Python") (description "py3status is an i3status wrapper which extends i3status @@ -10407,6 +10942,72 @@ to provide a high-level synchronous API on top of the libev event loop.") (define-public python2-gevent (package-with-python2 python-gevent)) +(define-public python-geventhttpclient + (package + (name "python-geventhttpclient") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "geventhttpclient" version)) + (sha256 + (base32 + "07d0q3wzmml75227r6y6mrl5a0zpf4v9gj0ni5rhbyzmaj4az1xx")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Delete pre-compiled files. + (for-each delete-file (find-files "src/geventhttpclient" + ".*\\.pyc")) + #t)))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-network-tests + (lambda _ + (delete-file "src/geventhttpclient/tests/test_client.py") + #t)) + (delete 'check) + (add-after 'install 'check + (lambda* (#:key inputs outputs #:allow-other-keys) + (add-installed-pythonpath inputs outputs) + (zero? (system* "py.test" "src/geventhttpclient/tests" "-v"))))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (propagated-inputs + `(("python-certifi" ,python-certifi) + ("python-gevent" ,python-gevent) + ("python-six" ,python-six))) + (home-page "https://github.com/gwik/geventhttpclient") + (synopsis "HTTP client library for gevent") + (description "@code{python-geventhttpclient} is a high performance, +concurrent HTTP client library for python using @code{gevent}.") + (license license:expat))) + +(define-public python2-geventhttpclient + (package-with-python2 python-geventhttpclient)) + +(define-public python-fastimport + (package + (name "python-fastimport") + (version "0.9.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "fastimport" version)) + (sha256 + (base32 "1aqjsin4rmqm7ln4j0p73fzxifws6c6ikgyhav7r137m2ixsxl43")))) + (build-system python-build-system) + (home-page "https://github.com/jelmer/python-fastimport") + (synopsis "VCS fastimport parser and generator in Python") + (description "This package provides a parser for and generator of the Git +@url{https://www.kernel.org/pub/software/scm/git/docs/git-fast-import.html,fastimport} +format.") + (license license:gpl2+))) + +(define-public python2-fastimport + (package-with-python2 python-fastimport)) + (define-public python-twisted (package (name "python-twisted") @@ -10418,6 +11019,13 @@ to provide a high-level synchronous API on top of the libev event loop.") (base32 "0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: Some tests are failing. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "./bin/trial" "twisted"))))) (propagated-inputs `(("python-zope-interface" ,python-zope-interface))) (home-page "https://twistedmatrix.com/") @@ -10487,18 +11095,12 @@ It uses LR parsing and does extensive error checking.") (uri (pypi-uri "tabulate" version)) (sha256 (base32 - "1inqhspd4frxnp08c32yndr0lc4px1xfkqah184i5w09gkhvi843")) - ;; Fix tests - (modules '((guix build utils))) - (snippet '(substitute* '("test/test_cli.py" - "test/test_input.py" - "test/test_output.py" - "test/test_regression.py") - (("from common") "from nose.tools"))))) + "1inqhspd4frxnp08c32yndr0lc4px1xfkqah184i5w09gkhvi843")))) (build-system python-build-system) - (native-inputs - `(;; For testing - ("python-nose" ,python-nose))) + (arguments + ;; FIXME: The pypi release tarball is missing a 'test/common.py' + ;; and the latest release is not tagged in the upstream repository. + '(#:tests? #f)) (home-page "https://bitbucket.org/astanin/python-tabulate") (synopsis "Pretty-print tabular data") (description @@ -10656,7 +11258,7 @@ objects, patterned after the Mocha library for Ruby.") ("python-chai" ,python-chai) ("python-simplejson" ,python-simplejson))) (propagated-inputs - `(("python-dateutil" ,python-dateutil-2))) + `(("python-dateutil" ,python-dateutil))) (home-page "https://github.com/crsmithdev/arrow/") (synopsis "Dates and times for Python") (description @@ -10679,6 +11281,8 @@ datetime type.") (base32 "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq")))) (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "http://github.com/jpvanhal/inflection") (synopsis "Python string transformation library") (description @@ -10836,6 +11440,55 @@ parsing UK postcodes.") (define-public python2-ukpostcodeparser (package-with-python2 python-ukpostcodeparser)) +(define-public python-faker + (package + (name "python-faker") + (version "0.7.9") + (source (origin + (method url-fetch) + (uri (pypi-uri "Faker" version)) + (sha256 + (base32 + "1fh2p2yz0fsdr4fqwxgddwbvfb6qn6vp8yx0qwqzra27yq5d1wsm")) + (patches + (search-patches "python-faker-fix-build-32bit.patch")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "." "\\.pyc$")) + #t)))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "-v" "tests"))))))) + (native-inputs + `(;; For testing + ("python-email-validator" ,python-email-validator) + ("python-mock" ,python-mock) + ("python-ukpostcodeparser" ,python-ukpostcodeparser))) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-six" ,python-six))) + (home-page "https://github.com/joke2k/faker") + (synopsis "Python package that generates fake data") + (description + "Faker is a Python package that generates fake data such as names, +addresses, and phone numbers.") + (license license:expat) + (properties `((python2-variant . ,(delay python2-faker)))))) + +(define-public python2-faker + (let ((base (package-with-python2 (strip-python2-variant + python-faker)))) + (package + (inherit base) + (propagated-inputs + `(("python2-ipaddress" ,python2-ipaddress) + ,@(package-propagated-inputs base)))))) + (define-public python-fake-factory (package (name "python-fake-factory") @@ -10845,15 +11498,24 @@ parsing UK postcodes.") (uri (pypi-uri "fake-factory" version)) (sha256 (base32 - "0vs0dkmg0dlaxf8w6q2i3k0i03gmp56ablldv7ci9x3nbadkn71g")))) + "0vs0dkmg0dlaxf8w6q2i3k0i03gmp56ablldv7ci9x3nbadkn71g")) + (patches + (search-patches + "python-fake-factory-fix-build-32bit.patch")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest" "-v" "faker.tests"))))))) (native-inputs `(;; For testing ("python-email-validator" ,python-email-validator) ("python-mock" ,python-mock) ("python-ukpostcodeparser" ,python-ukpostcodeparser))) (propagated-inputs - `(("python-dateutil" ,python-dateutil-2) + `(("python-dateutil" ,python-dateutil) ("python-six" ,python-six))) (home-page "https://github.com/joke2k/faker") (synopsis "Python package that generates fake data") @@ -10861,13 +11523,15 @@ parsing UK postcodes.") "Faker is a Python package that generates fake data such as names, addresses, and phone numbers.") (license license:expat) - (properties `((python2-variant . ,(delay python2-fake-factory)))))) + (properties `((python2-variant . ,(delay python2-fake-factory)) + (superseded . ,python-faker))))) (define-public python2-fake-factory (let ((base (package-with-python2 (strip-python2-variant python-fake-factory)))) (package (inherit base) + (properties `((superseded . ,python2-faker))) (propagated-inputs `(("python2-ipaddress" ,python2-ipaddress) ,@(package-propagated-inputs base)))))) @@ -10883,6 +11547,8 @@ addresses, and phone numbers.") (base32 "1f5m28vkh4ksq3d80d8mmd2z8wxvc3mgy2pmrv2751dm2xgznm4w")))) (build-system python-build-system) + (native-inputs + `(("python-unidecode" ,python-unidecode))) (propagated-inputs `(("python-pyyaml" ,python-pyyaml))) (home-page "https://github.com/mk-fg/pretty-yaml") @@ -10932,7 +11598,7 @@ mocks, stubs and fakes.") `(("python-arrow" ,python-arrow) ("python-blinker" ,python-blinker) ("python-cleo" ,python-cleo) - ("python-fake-factory" ,python-fake-factory) + ("python-faker" ,python-faker) ("python-inflection" ,python-inflection) ("python-lazy-object-proxy" ,python-lazy-object-proxy) ("python-pyaml" ,python-pyaml) @@ -10997,6 +11663,11 @@ characters, mouse support, and auto suggestions.") (base32 "0c8x962ynpx001fdvp07m2q5jk4igkxbj3rmnydavphvlgxijk1v")))) (build-system python-build-system) + (arguments + ;; FIXME: One test fails (use "py.test" instead of 'setup.py test'). + '(#:tests? #f)) + (native-inputs + `(("python-pytest" ,python-pytest))) (home-page "https://github.com/davidhalter/jedi") (synopsis "Autocompletion for Python that can be used for text editors") @@ -11018,6 +11689,8 @@ characters, mouse support, and auto suggestions.") (base32 "1mmbiyzf0n8hm7z2a562x7w5cbl6jc0zsk6vp40q1z4cyblv1k13")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: No tests in pypi tarball. (propagated-inputs `(("python-docopt" ,python-docopt) ("python-jedi" ,python-jedi) @@ -11123,6 +11796,13 @@ relays publish about themselves.") (base32 "0k1nfdrxxkdlv4zgaqsdv8li0pj3gbh2pyxw8q2bsg6f9490amyn")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: 3/49 tests are failing. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "python" "test/run_all_tests.py" "loop://"))))))) (home-page "https://github.com/pyserial/pyserial") (synopsis "Python Serial Port Bindings") @@ -11442,7 +12122,7 @@ List. Forked from and using the same API as the publicsuffix package.") ("python-coverage" ,python-coverage))) (propagated-inputs `(("python-six" ,python-six) - ("python-dateutil-2" ,python-dateutil-2))) + ("python-dateutil" ,python-dateutil))) (arguments `(#:phases (modify-phases %standard-phases ;; The tests are normally executed via `make test`, but the PyPi @@ -11879,6 +12559,8 @@ English stemmer.") (base32 "0zm9ap4p5dzln8f1m2immadaxv2xpg8jg4w53y52rhfl7pdb58vy")))) (build-system python-build-system) + ;; FIXME: The 'pypi' release archive does not contain tests. + (arguments '(#:tests? #f)) (native-inputs `(("python-sphinx" ,python-sphinx))) (home-page "https://bitbucket.org/ecollins/cloud_sptheme") @@ -12093,7 +12775,7 @@ useful as a validator for JSON data.") "1k5mjg9iqbjfslb5prrsfz7dhlvi6s35p1jxq8dm87w1b7dn5i2g")))) (build-system python-build-system) (propagated-inputs - `(("python-dateutil-2" ,python-dateutil-2))) + `(("python-dateutil" ,python-dateutil))) (home-page "https://bitbucket.org/nielsenb/aniso8601") (synopsis @@ -12290,10 +12972,7 @@ python-axolotl.") (lambda _ (for-each delete-file-recursively '("axolotl/tests" "build/lib/axolotl/tests")) - #t))) - ;; Prevent creation of the egg. This works around - ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 - #:configure-flags '("--root=/"))) + #t))))) (propagated-inputs `(("python-axolotl-curve25519" ,python-axolotl-curve25519) ("python-dateutil" ,python-dateutil) @@ -12321,6 +13000,12 @@ asynchronous messaging environments.") (base32 "17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "test3.py"))))))) (home-page "http://github.com/gfxmonk/termstyle") (synopsis "Console text coloring for Python") (description "This package provides console text coloring for Python.") @@ -12371,6 +13056,13 @@ asynchronous messaging environments.") (base32 "11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4")))) (build-system python-build-system) + (arguments + '(#:tests? #f)) ; FIXME: 35/882 tests failing. + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; (zero? (system* "nosetests"))))))) (propagated-inputs `(("python-aniso8601" ,python-aniso8601) ("python-flask" ,python-flask) @@ -12451,6 +13143,9 @@ specs from your Flask-Restful projects.") (base32 "11bwiw6j0nilgz81xnw6f1npyga3prp8asjqrm87cdr3ria5l03x")))) (build-system python-build-system) + (native-inputs + `(("python-pexpect" ,python-pexpect) + ("tcsh" ,tcsh))) (home-page "https://github.com/kislyuk/argcomplete") (synopsis "Shell tab completion for Python argparse") (description "argcomplete provides extensible command line tab completion @@ -12532,6 +13227,52 @@ Features: @end enumerate") (license (license:x11-style "file://LICENSE")))) +(define-public python-dulwich + (package + (name "python-dulwich") + (version "0.16.3") + (source + (origin + (method url-fetch) + (uri (list (string-append "https://www.dulwich.io/releases/" + "dulwich-" version ".tar.gz") + (pypi-uri "dulwich" version))) + (sha256 + (base32 "0fl47vzfgc3w3rmhn8naii905cjqcp0vc68iyvymxp7567hh6als")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda* (#:key inputs #:allow-other-keys) + ;; The tests use Popen with a custom environment which doesn't + ;; include PATH. + (substitute* "dulwich/tests/compat/utils.py" + (("'git'") (string-append "'" + (which "git") + "'"))) + (substitute* '("dulwich/tests/test_repository.py" + "dulwich/tests/test_hooks.py") + (("#!/bin/sh") (string-append "#!" (which "sh")))) + (setenv "TEST_RUNNER" "unittest") + (setenv "PYTHONHASHSEED" "random") + #t))))) + (propagated-inputs + `(("python-fastimport" ,python-fastimport))) + (native-inputs + `(("python-mock" ,python-mock) + ("python-geventhttpclient" ,python-geventhttpclient) + ("git" ,git))) + (home-page "https://www.dulwich.io/") + (synopsis "Git implementation in Python") + (description "Dulwich is an implementation of the Git file formats and +protocols written in pure Python.") + ;; Can be used with either license. + (license (list license:asl2.0 license:gpl2+)))) + +(define-public python2-dulwich + (package-with-python2 python-dulwich)) + (define-public python-pbkdf2 (package (name "python-pbkdf2") @@ -12544,6 +13285,15 @@ Features: (base32 "0yb99rl2mbsaamj571s1mf6vgniqh23v98k4632150hjkwv9fqxc")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "PYTHONPATH" + (string-append (getcwd) "/build/lib:" + (getenv "PYTHONPATH"))) + (zero? (system* "python" "test/test_pbkdf2.py"))))))) (propagated-inputs `(("python-pycrypto" ,python-pycrypto))) ; optional (home-page "http://www.dlitz.net/software/python-pbkdf2/") @@ -12573,6 +13323,9 @@ a file-like object from which an arbitrarly-sized key can be read.") (base32 "0kljfrfq0c2rmxf8am57333ia41kd0snbm2rnqbdy816hgpcq5a1")))) (build-system python-build-system) + (arguments + ;; FIXME: Tests require packaging 'pymaging'. + '(#:tests? #f)) (propagated-inputs `(("python-lxml" ,python-lxml) ; for SVG output ("python-pillow" ,python-pillow) ; for PNG output diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 9afcd83049..3aa4128be0 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -207,23 +207,29 @@ server and embedded PowerPC, and S390 guests.") (define-public libosinfo (package (name "libosinfo") - (version "0.3.1") + (version "1.0.0") (source (origin (method url-fetch) - (uri (string-append "https://fedorahosted.org/releases/l/i/libosinfo/libosinfo-" + (uri (string-append "https://releases.pagure.org/libosinfo/libosinfo-" version ".tar.gz")) (sha256 (base32 - "151qrzmafxww5yfamrr7phk8217xmihfhazpb597vdv87na75cjh")))) + "0srrs2m6irqd4f867g8ls6jp2dq3ql0l9d0fh80d55sivvn2bd7p")))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:configure-flags + (list (string-append "--with-usb-ids-path=" + (assoc-ref %build-inputs "usb.ids")) + (string-append "--with-pci-ids-path=" + (assoc-ref %build-inputs "pci.ids"))) + #:phases (modify-phases %standard-phases - (add-after 'unpack 'copy-ids - (lambda* (#:key inputs #:allow-other-keys) - (copy-file (assoc-ref inputs "pci.ids") "data/pci.ids") - (copy-file (assoc-ref inputs "usb.ids") "data/usb.ids") + ;; This odd test fails for unknown reasons. + (add-after 'unpack 'disable-broken-test + (lambda _ + (substitute* "test/Makefile.in" + (("test-isodetect\\$\\(EXEEXT\\)") "")) #t))))) (inputs `(("libsoup" ,libsoup) @@ -240,18 +246,18 @@ server and embedded PowerPC, and S390 guests.") ("pci.ids" ,(origin (method url-fetch) - (uri "https://raw.githubusercontent.com/pciutils/pciids/f9477789526f9d380bc57aa92e357c521738d5dd/pci.ids") + (uri "https://github.com/pciutils/pciids/raw/ad02084f0bc143e3c15e31a6152a3dfb1d7a3156/pci.ids") (sha256 (base32 - "0g6dbwlamagxqxvng67xng3w2x56c0np4md1v1p1jn32qw518az0")))) + "0kfhpj5rnh24hz2714qhfmxk281vwc2w50sm73ggw5d15af7zfsw")))) ("usb.ids" ,(origin (method url-fetch) - (uri "http://linux-usb.cvs.sourceforge.net/viewvc/linux-usb/htdocs/usb.ids?revision=1.539") + (uri "http://linux-usb.cvs.sourceforge.net/viewvc/linux-usb/htdocs/usb.ids?revision=1.551") (file-name "usb.ids") (sha256 (base32 - "0w9ila7662lzpx416lqy69zx6gfwq2xiigwd5fdyqcrg3dj07m80")))))) + "17rg5i0wbyk289gr8v4kgvnc9q5bidz7ldcvv9x58l083wn16hq3")))))) (home-page "https://libosinfo.org/") (synopsis "Operating system information database") (description "libosinfo is a GObject based library API for managing diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 1dd23c28e3..97e6b881cc 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -315,6 +315,18 @@ ideal (e.g. in LV2 implementations or embedded applications).") (base32 "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w")))) (build-system python-build-system) + (arguments + '(;; FIXME: Three test failures. Try uncommenting the below next update. + #:tests? #f)) + ;; #:phases + ;; (modify-phases %standard-phases + ;; (replace 'check + ;; (lambda _ + ;; ;; Run tests from the build directory so python3 only + ;; ;; sees the installed 2to3 version. + ;; (zero? (system* "nosetests" "--where=./build/src"))))) + (native-inputs + `(("python-nose" ,python-nose))) (propagated-inputs `(("python-html5lib" ,python-html5lib) ("python-isodate" ,python-isodate) @@ -329,12 +341,4 @@ powerful language for representing information.") "See LICENSE in the distribution.")))) (define-public python2-rdflib - (let ((base (package-with-python2 python-rdflib))) - (package - (inherit base) - (inputs - (append (package-inputs base) - `(("python2-nose" ,python2-nose)))) - (arguments - `(#:python ,python-2 - #:tests? #f))))) ; 3 tests fail, also outside Guix + (package-with-python2 python-rdflib)) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index f04cba706d..11f4716033 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -27,7 +27,7 @@ (define-public re2 (package (name "re2") - (version "2017-01-01") + (version "2017-03-01") (source (origin (method url-fetch) (uri @@ -37,7 +37,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0yij1ajh66h3pj3kfz7y0ldrsww8rlpjzaavyr5lchl98as1jq74")))) + "1s3kdcrz2mwi30k6pz9jkv5vk8b704bz65xgcr67wbn2pn3hpnqr")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 59370447b2..4d839bcdf1 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -426,13 +426,13 @@ expectations and mocks frameworks.") (define-public bundler (package (name "bundler") - (version "1.14.4") + (version "1.14.5") (source (origin (method url-fetch) (uri (rubygems-uri "bundler" version)) (sha256 (base32 - "1hafmb7p41pm40a2z7f4x5zpgrb72xvgwlvkxnflmzqkvq2prkfv")))) + "0635s6naz9hn4iqbvkhnm1by4j4spvv13mb7nzwwimnpbqgx663i")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; avoid dependency cycles @@ -1020,26 +1020,6 @@ features.") (home-page "https://github.com/chneukirchen/bacon") (license license:expat))) -(define-public ruby-arel - (package - (name "ruby-arel") - (version "6.0.0") - (source (origin - (method url-fetch) - (uri (rubygems-uri "arel" version)) - (sha256 - (base32 - "18wnfnzr2i5p3fygsddjbi1cimws6823nbk8drxidmnj8jz7h0ar")))) - (build-system ruby-build-system) - (arguments - '(#:tests? #f)) ; no test suite - (synopsis "SQL AST manager for Ruby") - (description "Arel is a SQL AST manager for Ruby. It simplifies the -generation of complex SQL queries and adapts to various relational database -implementations.") - (home-page "https://github.com/rails/arel") - (license license:expat))) - (define-public ruby-connection-pool (package (name "ruby-connection-pool") @@ -1854,8 +1834,9 @@ net/http library.") (arguments '(#:tests? #f)) ; no tests (home-page "https://github.com/rails/arel") (synopsis "SQL AST manager for Ruby") - (description "Arel is a SQL AST manager for Ruby. It simplifies the -generation of complex SQL queries and is compatible with various RDBMSes.") + (description "Arel is an SQL @dfn{Abstract Syntax Tree} (AST) manager for +Ruby. It simplifies the generation of complex SQL queries and adapts to +various relational database implementations.") (license license:expat))) (define-public ruby-minitar @@ -1992,14 +1973,14 @@ extract comments.") (define-public ruby-coderay (package (name "ruby-coderay") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) (uri (rubygems-uri "coderay" version)) (sha256 (base32 - "059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s")))) + "1x6z923iwr1hi04k6kz5a6llrixflz8h5sskl9mhaaxy9jx2x93r")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; missing test files @@ -2012,14 +1993,14 @@ for select languages.") (define-public ruby-pry (package (name "ruby-pry") - (version "0.10.1") + (version "0.10.4") (source (origin (method url-fetch) (uri (rubygems-uri "pry" version)) (sha256 (base32 - "1j0r5fm0wvdwzbh6d6apnp7c0n150hpm9zxpm5xvcgfqr36jaj8z")))) + "05xbzyin63aj2prrv8fbq2d5df2mid93m81hz5bvf2v4hnzs42ar")))) (build-system ruby-build-system) (arguments '(#:tests? #f)) ; no tests diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index af416c502a..e1dba9bed7 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016, 2017 ng0 +;;; Copyright © 2017 John Darrington ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,8 +26,8 @@ (define-module (gnu packages scheme) #:use-module (gnu packages) #:use-module ((guix licenses) - #:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3 - cc-by-sa4.0)) + #:select (gpl2+ lgpl2.0+ lgpl2.1+ lgpl3+ asl2.0 bsd-3 + cc-by-sa4.0 non-copyleft)) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -57,6 +58,7 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages tls) #:use-module (gnu packages gl) + #:use-module (gnu packages zip) #:use-module (ice-9 match)) (define (mit-scheme-source-directory system version) @@ -844,3 +846,100 @@ metalinguistic abstraction, recursion, interpreters, and modular programming.") "String pattern-matching library for scheme48 based on the SRE regular-expression notation.") (license bsd-3)))) + +(define-public slib + (package + (name "slib") + (version "3b5") + (source (origin + (method url-fetch) + (uri (string-append "http://groups.csail.mit.edu/mac/ftpdir/scm/slib-" + version ".zip")) + (sha256 + (base32 + "0q0p2d53p8qw2592yknzgy2y1p5a9k7ppjx0cfrbvk6242c4mdpq")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There is no check target. + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-bin-share + (lambda* (#:key inputs outputs #:allow-other-keys) + (delete-file-recursively + (string-append (assoc-ref outputs "out") "/bin")))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (zero? (system* "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out"))))))))) + (native-inputs `(("unzip" ,unzip) + ("texinfo" ,texinfo))) + (home-page "http://people.csail.mit.edu/jaffer/SLIB/") + (synopsis "Compatibility and utility library for Scheme") + (description "SLIB is a portable Scheme library providing compatibility and +utility functions for all standard Scheme implementations.") + (license (non-copyleft + "http://people.csail.mit.edu/jaffer/SLIB_COPYING.txt" + "Or see COPYING in the distribution.")))) + +(define-public scm + (package + (name "scm") + (version "5f2") + (source (origin + (method url-fetch) + (uri (string-append + "http://groups.csail.mit.edu/mac/ftpdir/scm/scm-" + version ".zip")) + (sha256 + (base32 + "050ijb51jm1cij9g3r89zl9rawsrikhbb5y8zb7lspb7bsxq5w99")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (zero? (system* "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")))))) + (add-before 'build 'pre-build + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + (("ginstall-info") "install-info")))) + (replace 'build + (lambda* (#:key inputs outputs #:allow-other-keys) + (setenv "SCHEME_LIBRARY_PATH" + (string-append (assoc-ref inputs "slib") + "/lib/slib/")) + (and + (zero? (system* "make" "scmlit" "CC=gcc")) + (zero? (system* "make" "all"))))) + (add-after 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((req + (string-append (assoc-ref outputs "out") + "/lib/scm/require.scm"))) + (and + (delete-file req) + (format (open req (logior O_WRONLY O_CREAT)) + "(define (library-vicinity) ~s)\n" + (string-append (assoc-ref inputs "slib") + "/lib/slib/")) + + ;; We must generate the slibcat file + (zero? (system* + (string-append + (assoc-ref outputs "out") + "/bin/scm") + "-br" "new-catalog"))))))))) + (inputs `(("slib" ,slib))) + (native-inputs `(("unzip" ,unzip) + ("texinfo" ,texinfo))) + (home-page "http://people.csail.mit.edu/jaffer/SCM") + (synopsis "Scheme implementation conforming to R5RS and IEEE P1178") + (description "GNU SCM is an implementation of Scheme. This +implementation includes Hobbit, a Scheme-to-C compiler, which can +generate C files whose binaries can be dynamically or statically +linked with a SCM executable.") + (license lgpl3+))) diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 57e6cb595e..f5c914e88a 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -35,15 +35,13 @@ (define-public screen (package (name "screen") - (version "4.5.0") + (version "4.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/screen/screen-" version ".tar.gz")) - (patches (search-patches "screen-CVE-2017-5618.patch")) - (patch-flags '("-p2")) (sha256 - (base32 "1c7grw03a9iwvqbxfd6hmjb681rp8gb55zsxm7b3apqqcb1sghq1")))) + (base32 "0bbv16gpxrh64sn4bvjy3qjy7jsxjlqlilyysin02fwnvla23nwp")))) (build-system gnu-build-system) (native-inputs `(("makeinfo" ,texinfo))) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index eb3e69bb86..0cbd3a53e1 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -333,14 +333,14 @@ ksh, and tcsh.") (define-public xonsh (package (name "xonsh") - (version "0.5.3") + (version "0.5.5") (source (origin (method url-fetch) (uri (pypi-uri "xonsh" version)) (sha256 (base32 - "1pb1am26wl21g798lpl091j95900py7jj4g98rs9qkhywiln4z4q")) + "1wa5g1gxk4aw8jazp3fqmr7mlkdmnva83x28i9xd3s99lv0qb3dd")) (modules '((guix build utils))) (snippet `(begin diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index e775174e23..363a5e8fc5 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -66,7 +66,7 @@ (source (origin (method git-fetch) (uri (git-reference - (url "http://cgit.freedesktop.org/spice/usbredir") + (url "https://anongit.freedesktop.org/git/spice/usbredir.git") (commit commit))) (sha256 (base32 diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 2e502fe7fc..eaa832269d 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -56,15 +56,15 @@ (define-public libssh (package (name "libssh") - (version "0.7.3") + (version "0.7.4") (source (origin (method url-fetch) (uri (string-append - "https://red.libssh.org/attachments/download/195/libssh-" + "https://red.libssh.org/attachments/download/210/libssh-" version ".tar.xz")) (sha256 (base32 - "165g49i4kmm3bfsjm0n8hm21kadv79g9yjqyq09138jxanz4dvr6")))) + "03bcp9ksqp0s1pmwfmzhcknvkxay5k0mjzzxp3rjlifbng1vxq9r")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DWITH_GCRYPT=ON") @@ -79,7 +79,7 @@ client and server implementations. With libssh, you can remotely execute programs, transfer files, and use a secure and transparent tunnel for your remote applications.") - (home-page "http://www.libssh.org") + (home-page "https://www.libssh.org") (license license:lgpl2.1+))) (define-public libssh2 diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 133ce41c43..e02c342c6f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -102,7 +102,7 @@ be output in text, PostScript, PDF or HTML.") (define-public r (package (name "r") - (version "3.3.2") + (version "3.3.3") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -110,7 +110,7 @@ be output in text, PostScript, PDF or HTML.") version ".tar.gz")) (sha256 (base32 - "0k2i9qdd83g09fcpls2198q4ykxkii5skczb514gnx7mx4hsv56j")))) + "0v7wpj89b0i3ad3fi1wak5c93hywmbxv8sdnixhq8l17782nidss")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -131,8 +131,19 @@ be output in text, PostScript, PDF or HTML.") (add-after 'unpack 'build-recommended-packages-reproducibly (lambda _ (substitute* "src/library/Recommended/Makefile.in" - (("INSTALL_OPTS =.*" line) - (string-append line " --built-timestamp=1970-01-01"))) + (("INSTALL_OPTS =(.*)" line rest ) + (string-append "INSTALL_OPTS = --built-timestamp=1970-01-01" + rest))) + ;; Ensure that gzipped files are reproducible + (substitute* '("src/library/grDevices/Makefile.in" + "doc/manual/Makefile.in") + (("R_GZIPCMD\\)" line) + (string-append line " -n"))) + ;; This library is installed using "install_package_description", + ;; so we need to pass the "builtStamp" argument. + (substitute* "src/library/tools/Makefile.in" + (("(install_package_description\\(.*\"')\\)\"" line prefix) + (string-append prefix ", builtStamp='1970-01-01')\""))) #t)) (add-before 'configure 'set-default-pager ;; Set default pager to "cat", because otherwise it is "false", @@ -159,11 +170,7 @@ be output in text, PostScript, PDF or HTML.") "--with-ICU" "--enable-R-shlib" "--enable-BLAS-shlib" - "--with-system-zlib" - "--with-system-bzlib" - "--with-system-pcre" - "--with-system-tre" - "--with-system-xz"))) + "--with-system-tre"))) ;; R has some support for Java. When the JDK is available at configure ;; time environment variables pointing to the JDK will be recorded under ;; $R_HOME/etc and ./tools/getsp.java will be compiled which is used by "R @@ -346,24 +353,6 @@ functions of regression coefficients, and 'epredict' methods that handle non-estimable cases correctly.") (license license:gpl2+))) -(define-public r-gtable - (package - (name "r-gtable") - (version "0.1.2") - (source - (origin - (method url-fetch) - (uri (cran-uri "gtable" version)) - (sha256 - (base32 "0k9hfj6r5y238gqh92s3cbdn34biczx3zfh79ix5xq0c5vkai2xh")))) - (build-system r-build-system) - (home-page "https://cran.r-project.org/web/packages/gtable") - (synopsis "R library to arrange grobs in tables") - (description - "Gtable is a collection of tools to make it easier to work with -\"tables\" of grobs.") - (license license:gpl2+))) - (define-public r-pheatmap (package (name "r-pheatmap") @@ -1068,22 +1057,6 @@ from knitr Rmarkdown.") the execution time of R expressions.") (license license:bsd-2))) -(define-public r-codetools - (package - (name "r-codetools") - (version "0.2-14") - (source (origin - (method url-fetch) - (uri (cran-uri "codetools" version)) - (sha256 - (base32 - "0y9r4m2b8xgavr89sc179knzwpz54xljbc1dinpq2q07i4xn0397")))) - (build-system r-build-system) - (home-page "https://cran.r-project.org/web/packages/codetools/index.html") - (synopsis "Code analysis tools for R") - (description "This package provides code analysis tools for R.") - (license license:gpl3+))) - (define-public r-pryr (package (name "r-pryr") @@ -1471,15 +1444,14 @@ building design matrices.") (define-public python-statsmodels (package (name "python-statsmodels") - (version "0.6.1") + (version "0.8.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/" - "s/statsmodels/statsmodels-" version ".tar.gz")) + (uri (pypi-uri "statsmodels" version)) (sha256 (base32 - "0xn67sqr0cc1lmlhzm71352hrb4hw7g318p5ff5q97pc98vl8kmy")) + "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6")) (patches (search-patches "python-statsmodels-fix-tests.patch")))) (build-system python-build-system) (arguments @@ -1491,7 +1463,9 @@ building design matrices.") (lambda _ ;; Set the matplotlib backend to Agg to avoid problems using the ;; GTK backend without a display. - (substitute* (find-files "statsmodels/graphics/tests" "\\.py") + (substitute* (append (find-files "statsmodels/graphics/tests" "\\.py") + '("statsmodels/tsa/vector_ar/tests/test_var.py" + "statsmodels/duration/tests/test_survfunc.py")) (("import matplotlib\\.pyplot as plt" line) (string-append "import matplotlib;matplotlib.use('Agg');" line))) @@ -2246,11 +2220,11 @@ variety of formats.") "0vz7073m0a2q12qzzihrfh5c2kx5jqi5l7z470fxmwqghdllh7l0")))) (properties `((upstream-name . "gtable"))) (build-system r-build-system) - (home-page "http://cran.r-project.org/web/packages/gtable") - (synopsis "Arrange grobs in tables") + (home-page "https://cran.r-project.org/web/packages/gtable") + (synopsis "R library to arrange grobs in tables") (description - "This package provides tools to make it easier to work with tables of -grobs.") + "Gtable is a collection of tools to make it easier to work with +\"tables\" of grobs.") (license license:gpl2+))) (define-public r-gridextra @@ -2568,7 +2542,7 @@ data.") (base32 "0h7sjmvvsi35041jp47cxhsqzgf1y8jrw6fxii7n26i8g7nrh1sf")))) (build-system r-build-system) - (home-page "http://cran.r-project.org/web/packages/codetools") + (home-page "https://cran.r-project.org/web/packages/codetools") (synopsis "Code analysis tools for R") (description "This package provides code analysis tools for R to check R code for possible problems.") diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index e30a0883a3..ca4cbec91f 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -47,6 +47,33 @@ #:use-module (gnu packages base) #:use-module (gnu packages libbsd)) +(define-public blind + (package + (name "blind") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://dl.suckless.org/tools/blind-" + version ".tar.gz")) + (sha256 + (base32 + "1b36k8fg2gmabm69jckqja49i8y4rcbccgvv2wija15ciszrm1x9")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags (list + "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; no configure script + (synopsis "Command line video editing utilities") + (home-page "http://tools.suckless.org/blind/") + (description + "Blind is a collection of command line video editing utilities. It uses +a custom raw video format with a simple container.") + (license license:isc))) + (define-public dwm (package (name "dwm") @@ -255,11 +282,20 @@ drawing.") (string-append "PREFIX=" %output)) #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + ;; Use the right file name for dmenu and xprop. + (add-before 'build 'set-dmenu-and-xprop-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "config.def.h" + (("dmenu") (string-append (assoc-ref inputs "dmenu") "/bin/dmenu")) + (("xprop") (string-append (assoc-ref inputs "xprop") "/bin/xprop"))) + #t))))) (inputs - `(("glib-networking" ,glib-networking) + `(("dmenu" ,dmenu) + ("glib-networking" ,glib-networking) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) - ("webkitgtk" ,webkitgtk/gtk+-2))) + ("webkitgtk" ,webkitgtk/gtk+-2) + ("xprop" ,xprop))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "http://surf.suckless.org/") diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index b0cefe4056..87261825c5 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Lukas Gradl ;;; Copyright © 2016 Francesco Frassinelli -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -354,7 +354,7 @@ address of one of the participants.") (string-append "CONFIG+=" (string-join (list "no-update" - "no-server" + "no-ice" "no-embed-qt-translations" "no-bundled-speex" "pch" @@ -378,6 +378,8 @@ address of one of the participants.") (replace 'install ; install phase does not exist (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) + (etc (string-append out "/etc/murmur")) + (dbus (string-append out "/etc/dbus-1/system.d/")) (bin (string-append out "/bin")) (services (string-append out "/share/services")) (applications (string-append out "/share/applications")) @@ -391,6 +393,12 @@ address of one of the participants.") (install-file "icons/mumble.svg" icons) (install-file "man/mumble-overlay.1" man) (install-file "man/mumble.1" man) + (install-file "release/murmurd" bin) + (install-file "scripts/murmur.ini.system" etc) + (rename-file (string-append etc "/murmur.ini.system") + (string-append etc "/murmur.ini")) + (install-file "scripts/murmur.conf" dbus) + (install-file "man/murmurd.1" man) (for-each (lambda (file) (install-file file lib)) (find-files "." "\\.so\\.")) (for-each (lambda (file) (install-file file lib)) @@ -414,7 +422,9 @@ address of one of the participants.") (synopsis "Low-latency, high quality voice chat software") (description "Mumble is an low-latency, high quality voice chat -software primarily intended for use while gaming.") +software primarily intended for use while gaming. +Mumble consists of two applications for separate usage: +@code{mumble} for the client, and @code{murmur} for the server.") (home-page "https://wiki.mumble.info/wiki/Main_Page") (license (list license:bsd-3 ;; The bundled celt is bsd-2. Remove after 1.3.0. diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index e90ee6847f..d0d99932c4 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -166,6 +166,9 @@ insert mode and command mode where keybindings have different functions.") (string-append "'" ncurses "/bin/tput'")))) #t))))) (inputs `(("ncurses" ,ncurses))) + (native-inputs + ;; For tests. + `(("python-requests" ,python-requests))) (home-page "https://asciinema.org") (synopsis "Terminal session recorder") (description diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 7c84ed7194..404fd03393 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -72,6 +72,8 @@ (origin (method url-fetch) (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-texmf.tar.xz") + (patches (search-patches "texlive-texmf-CVE-2016-10243.patch")) + (patch-flags '("-p2")) (sha256 (base32 "1dv8vgfzpczqw82hv9g7a8djhhyzywljmrarlcyy6g2qi5q51glr")))) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index d2bc12ab40..9796c18c7d 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -4,10 +4,9 @@ ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 David Thompson -;;; Copyright © 2015, 2016 Leo Famulari ;;; Copyright © 2015, 2016, 2017 Leo Famulari ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2016 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. @@ -33,6 +32,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system cmake) #:use-module (gnu packages compression) #:use-module (gnu packages) #:use-module (gnu packages guile) @@ -431,7 +431,7 @@ required structures.") (define-public libressl (package (name "libressl") - (version "2.5.0") + (version "2.5.1") (source (origin (method url-fetch) @@ -440,7 +440,7 @@ required structures.") version ".tar.gz")) (sha256 (base32 - "1bkfvapi4z826slycmicvs7hwgk4l82gd8w6nqvznldbammvyll6")))) + "1kc709scgd76vk7fld4jnb4wb5lxdv1cj8zsgyjb33xp4jlf06pp")))) (build-system gnu-build-system) (native-search-paths ;; FIXME: These two variables must designate a single file or directory @@ -469,13 +469,13 @@ security, and applying best practice development processes.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.11.1") + (version "0.12.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "0kk95iqxygrg0cd66kq8kbyalg2x5pz9hn1175cgwgf1vy72adfv")))) + "1pzv8fcfwdqzvvpyhgjz412is0b98yj9495k8sidzzqgbdmvlp50")))) (build-system python-build-system) (arguments `(#:phases @@ -526,7 +526,7 @@ security, and applying best practice development processes.") (uri (pypi-uri name version)) (sha256 (base32 - "1wis5kgqcsrs60kkcmbrbx8z9yasmwa6lg9ir5im232hdm4285vc")))) + "1dw86gb8lyap5ckjawmli1hxgbchw2g62g1lqfvxyqjv0df94waa")))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -756,3 +756,31 @@ then ported to the GNU / Linux environment.") ;; acme-client is distributed under the ISC license, but the files 'jsmn.h' ;; and 'jsmn.c' are distributed under the Expat license. (license (list license:isc license:expat)))) + +;; The "-apache" variant is the upstreamed prefered variant. A "-gpl" +;; variant exists in addition to the "-apache" one. +(define-public mbedtls-apache + (package + (name "mbedtls-apache") + (version "2.4.0") + (source + (origin + (method url-fetch) + ;; XXX: The download links on the website are script redirection links + ;; which effectively lead to the format listed in the uri here. + (uri (string-append "https://tls.mbed.org/download/mbedtls-" + version "-apache.tgz")) + (sha256 + (base32 + "03bzbfidigljva6xj49k38q3kwlbj75lrky4a0ainylzsfg5bhy1")))) + (build-system cmake-build-system) + (native-inputs + `(("perl" ,perl))) + (synopsis "Small TLS library") + (description + "@code{mbed TLS}, formerly known as PolarSSL, makes it trivially easy +for developers to include cryptographic and SSL/TLS capabilities in their +(embedded) products, facilitating this functionality with a minimal +coding footprint.") + (home-page "https://tls.mbed.org") + (license license:asl2.0))) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 9339dcdd70..e48017e640 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -40,14 +40,14 @@ (define-public tor (package (name "tor") - (version "0.2.9.9") + (version "0.2.9.10") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "0hqdk5p6dw4bpn7c8gmhyi8jjkhc37112pfw5nx4gl0g4lmmscik")))) + "0h8kpn42mgpkzmnga143hi8nh0ai65ypxh7qhkwbb15j3wz2h4fn")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-expensive-hardening" diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index d2ddfeef00..7f352d0b0b 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -112,14 +112,14 @@ as well as the classic centralized workflow.") (define-public git (package (name "git") - (version "2.11.1") + (version "2.12.0") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "05b4jw86w77c3pyh3nm6aw31vhxwzvhnx2x0bcfqmm15wg57k9y0")))) + "09r0lcjj5v2apj39f0ziqzjq2bi1jpnhszc9q4n0ab86g5j7c88q")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -132,7 +132,7 @@ as well as the classic centralized workflow.") version ".tar.xz")) (sha256 (base32 - "0cfa3c2r7d86ksswxdl0jqdka9mai3446gg8380921gf779nwj39")))))) + "0ws7h04ijqr2l0pp9qbds65v9cd70v0qfpnhqncn9zqfspw5d0wb")))))) (inputs `(("curl" ,curl) ("expat" ,expat) @@ -592,7 +592,7 @@ also walk each side of a merge and test those changes individually.") (define-public gitolite (package (name "gitolite") - (version "3.6.5") + (version "3.6.6") (source (origin (method url-fetch) (uri (string-append @@ -601,7 +601,7 @@ also walk each side of a merge and test those changes individually.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0xpqg04gyr4dhdhxx5lbk61lwwd5ml32530bigg2qy663icngwqm")))) + "07q33f86694s0x3k9lcmy1vzfw9appdrlmmb9j3bz4qkrxqdnwb9")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests @@ -617,6 +617,17 @@ also walk each side of a merge and test those changes individually.") (substitute* (find-files "." ".*") ((" perl -") (string-append " " perl " -")))))) + (add-before 'install 'fix-hooks-shebangs + (lambda* (#:key inputs #:allow-other-keys) + (let ((perl (string-append (assoc-ref inputs "perl") + "/bin/perl"))) + ;; The files in 'lib/Gitolite/Hooks' keep references to + ;; '/usr/bin/perl', without this fix it is impossible to + ;; to run gitolite in production. + (substitute* (find-files "src/lib/Gitolite/Hooks" ".*") + (("/usr/bin/perl") + perl)) + #t))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((output (assoc-ref outputs "out")) @@ -1211,7 +1222,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") `(;; for the tests ("python2-six" ,python2-six))) (propagated-inputs - `(("python2-dateutil" ,python2-dateutil-2) + `(("python2-dateutil" ,python2-dateutil) ("python2-futures" ,python2-futures) ("python2-rauth" ,python2-rauth) ("python2-swiftclient" ,python2-swiftclient))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 561de0412f..9f73a7ad59 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -220,14 +220,14 @@ television and DVD. It is also known as AC-3.") (define-public libx264 (package (name "libx264") - (version "20161205-2245") + (version "20170224-2245") (source (origin (method url-fetch) (uri (string-append "https://download.videolan.org/pub/x264/snapshots/" "x264-snapshot-" version ".tar.bz2")) (sha256 (base32 - "0jjzdwag59kqlk09bb2pykm1ss8bw3p9q7bsks2kjgdwbj121a44")))) + "0paw8vzsy2qh5jf6xg2i1risjwyvmxgfnivly4gh0bib62cp4vib")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -268,7 +268,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public x265 (package (name "x265") - (version "2.1") + (version "2.3") (source (origin (method url-fetch) @@ -276,7 +276,7 @@ H.264 (MPEG-4 AVC) video streams.") "x265_" version ".tar.gz")) (sha256 (base32 - "0hx6sr9l7586gs4qds2sj0i1m5brxkaqq3cwmibhfb559fpvkz48")) + "07z4ydxg0lk6j43h0wlh2xddb91cy4y4mny2ln71d4278b1hllj7")) (modules '((guix build utils))) (snippet '(delete-file-recursively "source/compat/getopt")))) @@ -299,7 +299,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.") (define-public libass (package (name "libass") - (version "0.13.4") + (version "0.13.6") (source (origin (method url-fetch) (uri (string-append @@ -307,7 +307,7 @@ designed to encode video or images into an H.265 / HEVC encoded bitstream.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "1dlzkjybnpl2fkvyjq0qblb7qw12cs893bs7zj3rvf8ij342yjnq")))) + "0b9cj5xfsa7zwlk5m146fhv102v51iqs3rapq0n2xrz30k8p9a7q")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -842,7 +842,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.23.0") + (version "0.24.0") (source (origin (method url-fetch) (uri (string-append @@ -850,7 +850,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1629v5l0rmphxra7chmfm7bnn59zc1mp529b9m2zqzaqf1czxvla")) + "059zblcj98fhrns1rwa66mf4km68czpam4nnk8q9qny31bx58654")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs @@ -980,7 +980,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2017.02.16") + (version "2017.03.02") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -988,7 +988,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1c2rx8hj960wg2sffpvg2513rl9grkwcpn4xk612ibfq4m7h3991")))) + "0f86qnppxnbh2c8bmpf0c1xhwk5vqjdzz7pqh9sydhscv8r0209g")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1495,7 +1495,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "17.0.2") + (version "18.0.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/jp9000/obs-studio" @@ -1503,7 +1503,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "02cfhpkcsq718zwhwwsm48gjggf95qr38hqpi0kwrvsy18ll0msm")))) + "0pxrzzp8z7kmwfdp49rwrk0j3lpya6garvbbzzfvldwhyam9az5d")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no tests diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index cdb32ac7eb..82403feb1d 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. @@ -23,6 +23,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) @@ -158,6 +159,340 @@ configuration files.") ("tcl" ,tcl) ,@(package-inputs vim))))) +(define-public vim-neocomplete + (package + (name "vim-neocomplete") + (version "2.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/Shougo/neocomplete.vim/" + "archive/ver." version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1307gbrdwam2akq9w2lpijc41740i4layk2qkd9sjkqxfch5lni2")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (autoload (string-append vimfiles "/autoload")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin"))) + (copy-recursively "autoload" autoload) + (copy-recursively "doc" doc) + (copy-recursively "plugin" plugin) + #t)))))) + (synopsis "Next generation completion framework for Vim") + (description + "@code{neocomplete}, an abbreviation of 'neo-completion with cache', +is a plugin for Vim. +It provides keyword completion system by maintaining a cache of keywords in +the current buffer. Neocomplete can be customized easily and has many more +features than Vim's built-in completion.") + (home-page "https://github.com/Shougo/neocomplete.vim/") + (license license:expat))) + +;; There are no release tarballs. +(define-public vim-neosnippet-snippets + (let ((commit "8e2b1c0cab9ed9a832b3743dbb65e9966a64331a") + (revision "1")) + (package + (name "vim-neosnippet-snippets") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shougo/neosnippet-snippets") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "151wpvbj6jb9jdkbhj3b77f5sq7y328spvwfbqyj1y32rg4ifmc6")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles"))) + (copy-recursively "neosnippets" + (string-append vimfiles "/neosnippets")) + #t)))))) + (synopsis "Snippets for neosnippet") + (description + "@code{neosnippet-snippets} provides standard snippets for the Vim plugin +@code{neosnippet}. Snippets are small templates for commonly used code that +you can fill in on the fly.") + (home-page "https://github.com/Shougo/neosnippet-snippets") + (license license:expat)))) + +;; The released tarball is too old for our Vim. +(define-public vim-neosnippet + (let ((commit "1bd7e23c79b73da16eb0c9469b25c376d3594583") + (revision "1")) + (package + (name "vim-neosnippet") + (version (string-append "4.2-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shougo/neosnippet.vim/") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0k80syscmpnj38ks1fq02ds59g0r4jlg9ll7z4qc048mgi35alw5")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (autoload (string-append vimfiles "/autoload")) + (doc (string-append vimfiles "/doc")) + (ftdetect (string-append vimfiles "/ftdetect")) + (ftplugin (string-append vimfiles "/ftplugin")) + (indent (string-append vimfiles "/indent")) + (plugin (string-append vimfiles "/plugin")) + (rplugin (string-append vimfiles "/rplugin")) + (syntax (string-append vimfiles "/syntax"))) + (copy-recursively "autoload" autoload) + (copy-recursively "doc" doc) + (copy-recursively "ftdetect" ftdetect) + (copy-recursively "ftplugin" ftplugin) + (copy-recursively "indent" indent) + (copy-recursively "plugin" plugin) + (copy-recursively "rplugin" rplugin) + (copy-recursively "syntax" syntax) + #t)))))) + (synopsis "Snippet support for Vim") + (description + "@code{neosnippet}, is a plugin for Vim which adds snippet support to Vim. +Snippets are small templates for commonly used code that you can fill in on +the fly. To use snippets can increase your productivity in Vim a lot. +The functionality of this plug-in is quite similar to plug-ins like +@code{snipMate.vim} or @code{snippetsEmu.vim}. But since you can choose +snippets with the neocomplcache / neocomplete interface, you might have less +trouble using them, because you do not have to remember each snippet name.") + (home-page "https://github.com/Shougo/neosnippet.vim/") + (license license:expat)))) + +(define-public vim-scheme + (let ((commit "93827987c10f2d5dc519166a761f219204926d5f") + (revision "1")) + (package + (name "vim-scheme") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://git.foldling.org/vim-scheme.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1ynjr1109dxgj0lz261gmzz3wf5ap1m6j6hnvl3lcyv66a4y8pjv")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (after (string-append vimfiles "/after")) + (syntax (string-append vimfiles "/syntax")) + (ftplugin (string-append vimfiles "/ftplugin"))) + (copy-recursively "after" after) + (copy-recursively "ftplugin" ftplugin) + (copy-recursively "syntax" syntax) + #t)))))) + (synopsis "Scheme syntax for Vim") + (description + "@code{vim-scheme} provides Scheme support for Vim (R7RS and CHICKEN).") + (home-page "http://foldling.org/git/vim-scheme.git/") + (license license:public-domain)))) + +(define-public vim-luna + (let ((commit "633619953dcf8577168e255230f96b05f28d6371") + (revision "1")) + (package + (name "vim-luna") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/notpratheek/vim-luna") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0ka3qbhsh8lix1vyj4678j7dnchkd8khhirrnn3aylxxf8fpqyg8")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (colors (string-append vimfiles "/colors"))) + (copy-recursively "colors" colors) + #t)))))) + (synopsis "Dark color theme for Vim") + (description + "@code{vim-luna} is a dark color theme for Vim.") + (home-page "https://github.com/notpratheek/vim-luna") + (license license:expat)))) + +;; There are no tarball releases. +(define-public vim-context-filetype + (let ((commit "5e85f8cae26806f391aefe2661791a6de53bcea2") + (revision "1")) + (package + (name "vim-context-filetype") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Shougo/context_filetype.vim") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0alvrfhmd91zkd9h83s8wvgyq4iakcf6rybsyjd369qbgpcqky89")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (doc (string-append vimfiles "/doc")) + (autoload (string-append vimfiles "/autoload"))) + (copy-recursively "doc" doc) + (copy-recursively "autoload" autoload) + #t)))))) + (synopsis "Context filetype library for Vim") + (description + "@code{vim-context-filetype} is context filetype library for Vim script.") + (home-page "https://github.com/Shougo/context_filetype.vim") + (license license:expat)))) ; ??? check again + +(define-public vim-airline + (package + (name "vim-airline") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/vim-airline/vim-airline/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "053sfq3jmgdc5y7zbg6jrk7r2hp0raj3y3mxa2h1c1bnkb6wvcaz")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (autoload (string-append vimfiles "/autoload")) + (doc (string-append vimfiles "/doc")) + (t (string-append vimfiles "/t")) + (plugin (string-append vimfiles "/plugin"))) + (copy-recursively "autoload" autoload) + (copy-recursively "doc" doc) + (copy-recursively "plugin" plugin) + (copy-recursively "t" t) + #t)))))) + (synopsis "Statusline for Vim") + (description + "@code{vim-airline} is an extensible statusline for Vim. +It can be extended and costumized with themes, works with unicode fonts +and powerline symbols, etc.") + (home-page "https://github.com/vim-airline/vim-airline") + (license license:expat))) + +;; There are no tarball releases. +(define-public vim-airline-themes + (let ((commit "6026eb78bf362cb3aa875aff8487f65728d0f7d8") + (revision "1")) + (package + (name "vim-airline-themes") + (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vim-airline/vim-airline-themes") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "13ijkavh1r0935cn2rjsfbdd1q3ka8bi26kw0bdkrqlrqxwvpss8")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (vimfiles (string-append out "/share/vim/vimfiles")) + (doc (string-append vimfiles "/doc")) + (plugin (string-append vimfiles "/plugin")) + (autoload (string-append vimfiles "/autoload"))) + (copy-recursively "doc" doc) + (copy-recursively "autoload" autoload) + (copy-recursively "plugin" plugin) + #t)))))) + (synopsis "Collection of themes for Vim-airline") + (description + "@code{vim-airline-themes} is a collection of themes for @code{vim-airline}.") + (home-page "https://github.com/vim-airline/vim-airline-themes") + (license license:expat)))) + (define-public neovim (package (name "neovim") diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 8c7f07a263..efb46f73d4 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -248,6 +248,14 @@ DNS domain name queries.") (base32 "0a92lk8790dpp9j64vb6p4sazax0x3nby01lnfll7mxs1hx6n27q")))) (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-paths + (lambda _ + (substitute* "sshoot/tests/test_manager.py" + (("/bin/sh") (which "sh"))) + #t))))) (inputs `(("python-argcomplete" ,python-argcomplete) ("python-prettytable" ,python-prettytable) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index b5bb887352..dab30df13d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -130,14 +130,14 @@ and its related documentation.") (define-public nginx (package (name "nginx") - (version "1.11.9") + (version "1.11.10") (source (origin (method url-fetch) (uri (string-append "https://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "0j2pcara9ir2xj3m2mjzf7wz46mdy51c0kal61cp0ldm2qgvf8nw")))) + "0gak6pcsn1m8fsz0g95z4b72nn12ivy35vlxrmagfcvnn2mkr2vp")))) (build-system gnu-build-system) (inputs `(("pcre" ,pcre) ("openssl" ,openssl) @@ -4365,7 +4365,7 @@ used to start services with both privileged and non-privileged port numbers.") (define-public tidy-html (package (name "tidy-html") - (version "5.2.0") + (version "5.4.0") (source (origin (method url-fetch) @@ -4374,7 +4374,7 @@ used to start services with both privileged and non-privileged port numbers.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0kbwzh15dlapp3s3vff2qgz0yfcf8hwsnx5q4igwa6pimhak8lw0")))) + "0yhbgbjl45b4sjxwc394cjra6iy02q1pi66p28zy70lr6jvm9mx2")))) (build-system cmake-build-system) (outputs '("out" "static")) ; 1.0MiB of .a files @@ -4410,6 +4410,61 @@ developers can integrate into their applications to make use of the functions of Tidy.") (license l:bsd-3))) +(define-public hiawatha + (package + (name "hiawatha") + (version "10.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.hiawatha-webserver.org/files/" + "hiawatha-" version ".tar.gz")) + (modules '((guix build utils))) + (snippet + ;; We use our packaged mbedtls, so delete the included copy. + '(delete-file-recursively "mbedtls")) + (sha256 + (base32 + "0m2llzm72s29c32abnj03532m85fawvi8ybjpx6s3mgvx2yvq3p4")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No tests included + #:configure-flags (list (string-append "-DUSE_SYSTEM_MBEDTLS=on") + (string-append "-DENABLE_TOMAHAWK=on") + (string-append "-DWEBROOT_DIR=" + (assoc-ref %outputs "out") + "/share/hiawatha/html")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-empty-dirs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + ;; The directories in "var" are empty, remove them. + (delete-file-recursively (string-append out "/var")) + #t))) + (add-after 'install 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Make sure 'hiawatha' finds 'mbedtls'. + (let* ((out (assoc-ref outputs "out")) + (sbin (string-append out "/sbin")) + (mbed (assoc-ref inputs "mbedtls-apache"))) + (wrap-program (string-append sbin "/hiawatha") + `("PATH" ":" prefix (,mbed))))))))) + (inputs + ;; TODO: package "hiawatha-monitor", an optional dependency of "hiawatha" + `(("mbedtls-apache" ,mbedtls-apache) ;Hiawatha includes this version. + ("zlib" ,zlib) + ("libxslt" ,libxslt) + ("libxml2" ,libxml2))) + (home-page "https://www.hiawatha-webserver.org") + (synopsis "Webserver with focus on security") + (description + "Hiawatha has been written with security in mind. This resulted in a +highly secure webserver in both code and features. Hiawatha can stop SQL +injections, XSS and CSRF attacks and exploit attempts. Via a specially +crafted monitoring tool, you can keep track of all your webservers.") + (license l:gpl2))) + (define-public qutebrowser (package (name "qutebrowser") diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 7b73353387..d28e2dd4e4 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -40,6 +40,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages openldap) #:use-module (gnu packages perl) + #:use-module (gnu packages pulseaudio) #:use-module (gnu packages pkg-config) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) @@ -99,6 +100,7 @@ ("libXcomposite" ,libxcomposite) ("ncurses" ,ncurses) ("openal" ,openal) + ("pulseaudio" ,pulseaudio) ("unixodbc" ,unixodbc) ("zlib" ,zlib))) (arguments diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7ae8e4b7f8..7d76a2d202 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016 doncatnip ;;; Copyright © 2016 Ivan Vilata i Balaguer ;;; Copyright © 2017 Mekeor Melire +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +38,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system haskell) + #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (gnu packages haskell) #:use-module (gnu packages base) @@ -232,6 +234,31 @@ from scratch. i3 is primarily targeted at advanced users and developers.") (license license:bsd-3))) +(define-public perl-anyevent-i3 + (package + (name "perl-anyevent-i3") + (version "0.16") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/M/MS/MSTPLBG/" + "AnyEvent-I3-" version ".tar.gz")) + (sha256 + (base32 + "1qwva5vmmn929l6k9wzhp4h80ad4qm4m1g2dyv4nlas624003hig")))) + (build-system perl-build-system) + (propagated-inputs + `(("perl-anyevent" ,perl-anyevent) + ("perl-json-xs" ,perl-json-xs))) + (home-page "http://search.cpan.org/dist/AnyEvent-I3") + (synopsis + "Communicate with the i3 window manager through perl") + (description + "This module connects to the i3 window manager using the UNIX socket +based IPC interface it provides (if enabled in the configuration file). +You can then subscribe to events or send messages and receive their replies.") + ;; Can be used with either license. + (license (list license:gpl3+ (package-license perl))))) + (define-public python-i3-py (package (name "python-i3-py") diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 5285037ffe..52fa8184dd 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2016 Danny Milosavljevic +;;; Copyright © 2017 Rene Saavedra ;;; ;;; This file is part of GNU Guix. ;;; @@ -50,7 +51,9 @@ "releases/download/v" version "/wxWidgets-" version ".tar.bz2")) (sha256 - (base32 "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l")))) + (base32 "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l")) + (patches (search-patches + "wxwidgets-fix-windowGTK.patch")))) (build-system glib-or-gtk-build-system) (inputs `(("glu" ,glu) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 1b91404dbe..783bce0d56 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -16,6 +16,8 @@ ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Marius Bakke ;;; Copyright © 2016 Petter +;;; Copyright © 2017 Mekeor Melire +;;; Copyright © 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,6 +38,7 @@ #:use-module ((guix licenses) #:prefix license:) #: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) @@ -51,6 +54,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages maths) #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) @@ -437,7 +441,7 @@ of the screen selected by mouse.") (define-public slop (package (name "slop") - (version "4.3.21") + (version "5.3.37") (source (origin (method url-fetch) (uri (string-append @@ -446,15 +450,14 @@ of the screen selected by mouse.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0z0p4a3p5mc6fjh5f8js9ppb0maxyvfxpiw2n6nqc5nim1kv6bim")))) + "1p2ih123zkj8rxz8acsxpaim1kq57f4rbq7zqsibafn5rkw5c5is")))) (build-system cmake-build-system) - (arguments '(#:tests? #f)) ; no "check" target + (arguments + '(#:tests? #f)) ; no "check" target (inputs - `(("libx11" ,libx11) - ("libxrandr" ,libxrandr) + `(("glm" ,glm) ("libxext" ,libxext) - ("imlib2" ,imlib2) - ("glew" ,glew) + ("libxrender" ,libxrender) ("mesa" ,mesa))) (home-page "https://github.com/naelstrof/slop") (synopsis "Select a region and print its bounds to stdout") @@ -469,7 +472,7 @@ selection's dimensions to stdout.") (define-public maim (package (name "maim") - (version "3.4.47") + (version "4.4.61") (source (origin (method url-fetch) (uri (string-append @@ -478,27 +481,20 @@ selection's dimensions to stdout.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0kfp7k55bxc5h6h0wv8bwmsc5ny66h9ra2z4dzs4yzszq16544pv")))) + "14jksv05xyydbpb9v8k3jgq7sl72bh356iapymg02vwg519i1d5k")))) (build-system cmake-build-system) (arguments - '(#:tests? #f ; no "check" target - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-source - (lambda* (#:key inputs #:allow-other-keys) - (let ((slop (string-append (assoc-ref inputs "slop") - "/bin/slop"))) - ;; "slop" command is hardcoded in the source; replace it - ;; with the full file name. - (substitute* "src/main.cpp" - (("^( +slopcommand.*)\"slop\"" all front) - (string-append front "\"" slop "\""))))))))) + '(#:tests? #f)) ; no "check" target (inputs - `(("libx11" ,libx11) - ("libxrandr" ,libxrandr) + `(("glm" ,glm) + ("libjpeg" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libxcomposite" ,libxcomposite) ("libxfixes" ,libxfixes) - ("imlib2" ,imlib2) - ("slop" ,slop))) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("slop" ,slop) + ("zlib" ,zlib))) (home-page "https://github.com/naelstrof/maim") (synopsis "Screenshot utility for X Window System") (description @@ -694,9 +690,47 @@ compact configuration syntax.") ;; This sets the destination when installing the necessary terminal ;; capability data, which are not provided by 'ncurses'. See ;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html - '(#:make-flags (list (string-append "TERMINFO=" + `(#:make-flags (list (string-append "TERMINFO=" (assoc-ref %outputs "out") - "/share/terminfo")))) + "/share/terminfo")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-desktop-urxvt + (lambda* (#:key outputs #:allow-other-keys) + (let* ((output (assoc-ref outputs "out")) + (desktop (string-append output "/share/applications"))) + (mkdir-p desktop) + (with-output-to-file + (string-append desktop "/urxvt.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=rxvt-unicode~@ + Comment=~@ + Exec=~a/bin/urxvt~@ + TryExec=~@*~a/bin/urxvt~@ + Icon=~@ + Type=Application~%" + output))) + #t))) + (add-after 'install 'install-desktop-urxvtc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((output (assoc-ref outputs "out")) + (desktop (string-append output "/share/applications"))) + (mkdir-p desktop) + (with-output-to-file + (string-append desktop "/urxvtc.desktop") + (lambda _ + (format #t + "[Desktop Entry]~@ + Name=rxvt-unicode~@ + Comment=Rxvt clone with XFT and unicode support~@ + Exec=~a/bin/urxvtc~@ + TryExec=~@*~a/bin/urxvtc~@ + Icon=~@ + Type=Application~%" + output))) + #t)))))) (inputs `(("libXft" ,libxft) ("libX11" ,libx11))) @@ -971,7 +1005,8 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (native-inputs `(("pkg-config" ,pkg-config))) (arguments - `(#:phases + `(#:parallel-tests? #f ; May fail in some circumstances. + #:phases (modify-phases %standard-phases (add-before 'configure 'adjust-tests (lambda _ @@ -1032,6 +1067,57 @@ border, and background. It also supports multihead setups, customized mouse actions, a built-in clock, a battery monitor and a system tray.") (license license:gpl2))) +(define-public dzen + (let ((commit "488ab66019f475e35e067646621827c18a879ba1") + (revision "1")) + (package + (name "dzen") + (version (string-append "0.9.5-" ; Taken from `config.mk`. + revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/robm/dzen.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "0y47d6ii87vf4a517gi4fh0yl06f8b085sra77immnsasbq9pxnw")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No test suite. + #:make-flags ; Replacement for `config.mk`. + (list + (string-append "VERSION = " ,version) + (string-append "PREFIX = " %output) + "MANPREFIX = ${PREFIX}/share/man" + "INCS = -I." + "LIBS = -lc -lX11 -lXinerama -lXpm $(shell pkg-config --libs xft)" + "CFLAGS = -Wall -Os ${INCS} -DVERSION=\\\"${VERSION}\\\"\ + -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT $(shell pkg-config --cflags xft)" + "LDFLAGS = ${LIBS}" + "CC = gcc" + "LD = ${CC}") + #:phases + (modify-phases %standard-phases + (delete 'configure) ; No configuration script. + ;; Use own make-flags instead of `config.mk`. + (add-before 'build 'dont-include-config-mk + (lambda _ + (substitute* "Makefile" (("include config.mk") "")) + #t))))) + (inputs + `(("libx11" ,libx11) + ("libxft" ,libxft) + ("libxpm" ,libxpm) + ("libxinerama" ,libxinerama))) + (native-inputs `(("pkg-config" ,pkg-config))) + (synopsis "General purpose messaging, notification and menuing program for X11") + (description "Dzen is a general purpose messaging, notification and menuing +program for X11. It was designed to be fast, tiny and scriptable in any language.") + (home-page "https://github.com/robm/dzen") + (license license:expat)))) + (define-public xcb-util-xrm (package (name "xcb-util-xrm") diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 7636fafd6a..a818cb8d4e 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -13,7 +13,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016 ng0 ;;; Copyright © 2016 Tobias Geerinckx-Rice -;;; Copyright © 2016 Marius Bakke +;;; Copyright © 2016, 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -221,6 +221,34 @@ the @code{Graph} class and write it out in a specific file format.") @code{XML::Atom} implements the feed format as well as a client for the API.") (license (package-license perl)))) +(define-public perl-xml-descent + (package + (name "perl-xml-descent") + (version "1.04") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/A/AN/ANDYA/" + "XML-Descent-" version ".tar.gz")) + (sha256 + (base32 + "0l5xmw2hd95ypppz3lyvp4sn02ccsikzjwacli3ydxfdz1bbh4d7")))) + (build-system perl-build-system) + (native-inputs + `(("perl-module-build" ,perl-module-build))) + (propagated-inputs + `(("perl-test-differences" ,perl-test-differences) + ("perl-xml-tokeparser" ,perl-xml-tokeparser))) + (home-page "http://search.cpan.org/dist/XML-Descent") + (synopsis "Recursive descent XML parsing") + (description + "The conventional models for parsing XML are either @dfn{DOM} +(a data structure representing the entire document tree is created) or +@dfn{SAX} (callbacks are issued for each element in the XML). + +XML grammar is recursive - so it's nice to be able to write recursive +parsers for it. @code{XML::Descent} allows such parsers to be created.") + (license (package-license perl)))) + (define-public perl-xml-parser (package (name "perl-xml-parser") @@ -252,6 +280,29 @@ as extra arguments to the parse methods, in which case they override options given at XML::Parser creation time.") (home-page "http://search.cpan.org/dist/XML-Parser"))) +(define-public perl-xml-tokeparser + (package + (name "perl-xml-tokeparser") + (version "0.05") + (source (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/P/PO/PODMASTER/" + "XML-TokeParser-" version ".tar.gz")) + (sha256 + (base32 + "1hnpwb3lh6cbgwvjjgqzcp6jm4mp612qn6ili38adc9nhkwv8fc5")))) + (build-system perl-build-system) + (propagated-inputs `(("perl-xml-parser" ,perl-xml-parser))) + (home-page "http://search.cpan.org/dist/XML-TokeParser") + (synopsis "Simplified interface to XML::Parser") + (description + "@code{XML::TokeParser} provides a procedural (\"pull mode\") interface +to @code{XML::Parser} in much the same way that Gisle Aas' +@code{HTML::TokeParser} provides a procedural interface to @code{HTML::Parser}. +@code{XML::TokeParser} splits its XML input up into \"tokens\", each +corresponding to an @code{XML::Parser} event.") + (license (package-license perl)))) + (define-public perl-libxml (package (name "perl-libxml") @@ -735,7 +786,9 @@ the form of functions.") "0fcgggry5x5bn0zhb09ij9hb0p45nb0sv0d9fw3cm1cf62hp9n80")))) (build-system cmake-build-system) (arguments - `(#:tests? #f)) ; no tests + `(#:configure-flags '("-DCMAKE_CXX_FLAGS=-shared -fPIC" + "-DCMAKE_C_FLAGS=-shared -fPIC") + #:tests? #f)) ; no tests (home-page "http://pugixml.org") (synopsis "Light-weight, simple and fast XML parser for C++ with XPath support") (description @@ -779,9 +832,11 @@ code for classes that correspond to data structures defined by XMLSchema.") (source (origin (method url-fetch) - (uri (string-append - "https://fedorahosted.org/releases/x/m/xmlto/xmlto-" - version ".tar.bz2")) + ;; The old source on fedorahosted.org is offline permanently: + ;; + (uri (string-append "mirror://debian/pool/main/x/xmlto/" + "xmlto_" version ".orig.tar.bz2")) + (file-name (string-append name "-" version ".tar.bz2")) (sha256 (base32 "0xhj8b2pwp4vhl9y16v3dpxpsakkflfamr191mprzsspg4xdyc0i")))) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index bd8f38c398..18354271ee 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 David Craven ;;; Copyright © 2016, 2017 John Darrington +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -1721,7 +1722,7 @@ features and to query screensaver info on specific windows.") (define-public sessreg (package (name "sessreg") - (version "1.1.0") + (version "1.1.1") (source (origin (method url-fetch) @@ -1731,7 +1732,7 @@ features and to query screensaver info on specific windows.") ".tar.bz2")) (sha256 (base32 - "0z013rskwmdadd8cdlxvh4asmgim61qijyzfbqmr1q1mg1jpf4am")))) + "1qd66mg2bnppqz4xgdjzif2488zl82vx2c26ld3nb8pnyginm9vq")))) (build-system gnu-build-system) (inputs `(("xproto" ,xproto))) @@ -5670,6 +5671,61 @@ provides DEC VT102/VT220 (VTxxx) and Tektronix 4014 compatible terminals for programs that cannot use the window system directly.") (license license:x11))) +(define-public perl-x11-xcb + (package + (name "perl-x11-xcb") + (version "0.16") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://cpan/authors/id/M/MS/MSTPLBG/" + "X11-XCB-" version ".tar.gz")) + (sha256 + (base32 + "14mnvr1001py2z1n43l18yaw0plwvjg5pcsyc7k81sa0amw8ahzw")))) + (build-system perl-build-system) + (arguments + '(;; Disable parallel build to prevent a race condition. + #:parallel-build? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-Makefile + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "Makefile" + ;; XXX: Without this hack, attempts at using XCB.so fails with + ;; an error such as "XCB.so: undefined symbol: xcb_xinerama_id" + (("^LDDLFLAGS = ") + (string-append "LDDLFLAGS = " + "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm "))) + #t))) + ;; Tests require a running X11 server. + #:tests? #f)) + (native-inputs + `(("perl-extutils-depends" ,perl-extutils-depends) + ("perl-extutils-pkgconfig" ,perl-extutils-pkgconfig) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-exception" ,perl-test-exception))) + (propagated-inputs + `(("perl-data-dump" ,perl-data-dump) + ("perl-mouse" ,perl-mouse) + ("perl-mousex-nativetraits" ,perl-mousex-nativetraits) + ("perl-try-tiny" ,perl-try-tiny) + ("perl-xml-descent" ,perl-xml-descent) + ("perl-xml-simple" ,perl-xml-simple) + ("perl-xs-object-magic" ,perl-xs-object-magic))) + (inputs + `(("libxcb" ,libxcb) + ("xcb-proto" ,xcb-proto) + ("xcb-util" ,xcb-util) + ("xcb-util-wm" ,xcb-util-wm))) + (home-page "http://search.cpan.org/dist/X11-XCB") + (synopsis "Perl bindings for libxcb") + (description + "These bindings wrap @code{libxcb} (a C library to speak with X11, +in many cases better than @code{Xlib}), and provides an object oriented +interface to its methods (using @code{Mouse}).") + (license (package-license perl)))) + (define-public perl-x11-protocol (package (name "perl-x11-protocol") diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 57601eab85..5298a11f63 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016, 2017 Leo Famulari ;;; Copyright © 2016 David Craven ;;; Copyright © 2016 Ricardo Wurmus ;;; @@ -38,6 +38,7 @@ #:select (canonical-package glibc)) #:use-module (gnu packages bash) #:use-module (gnu packages package-management) + #:use-module (gnu packages linux) #:use-module (gnu packages lsof) #:use-module (gnu packages terminals) #:use-module ((gnu build file-systems) @@ -74,6 +75,11 @@ login-service-type login-service + agetty-configuration + agetty-configuration? + agetty-service + agetty-service-type + mingetty-configuration mingetty-configuration? mingetty-service @@ -730,6 +736,222 @@ Return a service that sets up Unicode support in @var{tty} and loads the message of the day, among other things." (service login-service-type config)) +(define-record-type* + agetty-configuration make-agetty-configuration + agetty-configuration? + (agetty agetty-configuration-agetty ; + (default util-linux)) + (tty agetty-configuration-tty) ;string + (term agetty-term ;string | #f + (default #f)) + (baud-rate agetty-baud-rate ;string | #f + (default #f)) + (auto-login agetty-auto-login ;list of strings | #f + (default #f)) + (login-program agetty-login-program ;gexp + (default (file-append shadow "/bin/login"))) + (login-pause? agetty-login-pause? ;Boolean + (default #f)) + (eight-bits? agetty-eight-bits? ;Boolean + (default #f)) + (no-reset? agetty-no-reset? ;Boolean + (default #f)) + (remote? agetty-remote? ;Boolean + (default #f)) + (flow-control? agetty-flow-control? ;Boolean + (default #f)) + (host agetty-host ;string | #f + (default #f)) + (no-issue? agetty-no-issue? ;Boolean + (default #f)) + (init-string agetty-init-string ;string | #f + (default #f)) + (no-clear? agetty-no-clear? ;Boolean + (default #f)) + (local-line agetty-local-line ;always | never | auto + (default #f)) + (extract-baud? agetty-extract-baud? ;Boolean + (default #f)) + (skip-login? agetty-skip-login? ;Boolean + (default #f)) + (no-newline? agetty-no-newline? ;Boolean + (default #f)) + (login-options agetty-login-options ;string | #f + (default #f)) + (chroot agetty-chroot ;string | #f + (default #f)) + (hangup? agetty-hangup? ;Boolean + (default #f)) + (keep-baud? agetty-keep-baud? ;Boolean + (default #f)) + (timeout agetty-timeout ;integer | #f + (default #f)) + (detect-case? agetty-detect-case? ;Boolean + (default #f)) + (wait-cr? agetty-wait-cr? ;Boolean + (default #f)) + (no-hints? agetty-no-hints? ;Boolean + (default #f)) + (no-hostname? agetty-no hostname? ;Boolean + (default #f)) + (long-hostname? agetty-long-hostname? ;Boolean + (default #f)) + (erase-characters agetty-erase-characters ;string | #f + (default #f)) + (kill-characters agetty-kill-characters ;string | #f + (default #f)) + (chdir agetty-chdir ;string | #f + (default #f)) + (delay agetty-delay ;integer | #f + (default #f)) + (nice agetty-nice ;integer | #f + (default #f)) + ;; "Escape hatch" for passing arbitrary command-line arguments. + (extra-options agetty-extra-options ;list of strings + (default '())) +;;; XXX Unimplemented for now! +;;; (issue-file agetty-issue-file ;file-like +;;; (default #f)) + ) + +(define agetty-shepherd-service + (match-lambda + (($ agetty tty term baud-rate auto-login + login-program login-pause? eight-bits? no-reset? remote? flow-control? + host no-issue? init-string no-clear? local-line extract-baud? + skip-login? no-newline? login-options chroot hangup? keep-baud? timeout + detect-case? wait-cr? no-hints? no-hostname? long-hostname? + erase-characters kill-characters chdir delay nice extra-options) + (list + (shepherd-service + (documentation "Run agetty on a tty.") + (provision (list (symbol-append 'term- (string->symbol tty)))) + + ;; Since the login prompt shows the host name, wait for the 'host-name' + ;; service to be done. Also wait for udev essentially so that the tty + ;; text is not lost in the middle of kernel messages (see also + ;; mingetty-shepherd-service). + (requirement '(user-processes host-name udev)) + + (start #~(make-forkexec-constructor + (list #$(file-append util-linux "/sbin/agetty") + #$@extra-options + #$@(if eight-bits? + #~("--8bits") + #~()) + #$@(if no-reset? + #~("--noreset") + #~()) + #$@(if remote? + #~("--remote") + #~()) + #$@(if flow-control? + #~("--flow-control") + #~()) + #$@(if host + #~("--host" #$host) + #~()) + #$@(if no-issue? + #~("--noissue") + #~()) + #$@(if init-string + #~("--init-string" #$init-string) + #~()) + #$@(if no-clear? + #~("--noclear") + #~()) +;;; FIXME This doesn't work as expected. According to agetty(8), if this option +;;; is not passed, then the default is 'auto'. However, in my tests, when that +;;; option is selected, agetty never presents the login prompt, and the +;;; term-ttyS0 service respawns every few seconds. + #$@(if local-line + #~(#$(match local-line + ('auto "--local-line=auto") + ('always "--local-line=always") + ('never "-local-line=never"))) + #~()) + #$@(if extract-baud? + #~("--extract-baud") + #~()) + #$@(if skip-login? + #~("--skip-login") + #~()) + #$@(if no-newline? + #~("--nonewline") + #~()) + #$@(if login-options + #~("--login-options" #$login-options) + #~()) + #$@(if chroot + #~("--chroot" #$chroot) + #~()) + #$@(if hangup? + #~("--hangup") + #~()) + #$@(if keep-baud? + #~("--keep-baud") + #~()) + #$@(if timeout + #~("--timeout" #$(number->string timeout)) + #~()) + #$@(if detect-case? + #~("--detect-case") + #~()) + #$@(if wait-cr? + #~("--wait-cr") + #~()) + #$@(if no-hints? + #~("--nohints?") + #~()) + #$@(if no-hostname? + #~("--nohostname") + #~()) + #$@(if long-hostname? + #~("--long-hostname") + #~()) + #$@(if erase-characters + #~("--erase-chars" #$erase-characters) + #~()) + #$@(if kill-characters + #~("--kill-chars" #$kill-characters) + #~()) + #$@(if chdir + #~("--chdir" #$chdir) + #~()) + #$@(if delay + #~("--delay" #$(number->string delay)) + #~()) + #$@(if nice + #~("--nice" #$(number->string nice)) + #~()) + #$@(if auto-login + (list "--autologin" auto-login) + '()) + #$@(if login-program + #~("--login-program" #$login-program) + #~()) + #$@(if login-pause? + #~("--login-pause") + #~()) + #$tty + #$@(if baud-rate + #~(#$baud-rate) + #~()) + #$@(if term + #~(#$term) + #~())))) + (stop #~(make-kill-destructor))))))) + +(define agetty-service-type + (service-type (name 'agetty) + (extensions (list (service-extension shepherd-root-service-type + agetty-shepherd-service))))) + +(define* (agetty-service config) + "Return a service to run agetty according to @var{config}, which specifies +the tty to run, among other things." + (service agetty-service-type config)) + (define-record-type* mingetty-configuration make-mingetty-configuration mingetty-configuration? @@ -1114,7 +1336,11 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (log-file guix-configuration-log-file ;string (default "/var/log/guix-daemon.log")) (lsof guix-configuration-lsof ; - (default lsof))) + (default lsof)) + (http-proxy guix-http-proxy ;string | #f + (default #f)) + (tmpdir guix-tmpdir ;string | #f + (default #f))) (define %default-guix-configuration (guix-configuration)) @@ -1125,7 +1351,7 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) (($ guix build-group build-accounts authorize-key? keys use-substitutes? substitute-urls extra-options - log-file lsof) + log-file lsof http-proxy tmpdir) (list (shepherd-service (documentation "Run the Guix daemon.") (provision '(guix-daemon)) @@ -1142,7 +1368,13 @@ failed to register hydra.gnu.org public key: ~a~%" status)))))))) ;; Add 'lsof' (for the GC) to the daemon's $PATH. #:environment-variables - (list (string-append "PATH=" #$lsof "/bin")) + (list (string-append "PATH=" #$lsof "/bin") + #$@(if http-proxy + (list (string-append "http_proxy=" http-proxy)) + '()) + #$@(if tmpdir + (list (string-append "TMPDIR=" tmpdir)) + '())) #:log-file #$log-file)) (stop #~(make-kill-destructor))))))) diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 9f59d6eac6..34723dc11c 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -49,8 +49,9 @@ ;;; ;;; Code: -(define (id ctx . parts) - (datum->syntax ctx (apply symbol-append (map syntax->datum parts)))) +(define-syntax-rule (id ctx parts ...) + "Assemble PARTS into a raw (unhygienic) identifier." + (datum->syntax ctx (symbol-append (syntax->datum parts) ...))) (define-syntax define-maybe (lambda (x) @@ -94,21 +95,21 @@ "" doc)) #'(doc ...) #'(target ...)))) #`(begin - (define common-fields + (define #,(id #'stem #'common-fields) '(#,@(filter-map (make-pred #f) #'(field ...) #'(target ...)))) - (define-configuration prosody-configuration + (define-configuration #,(id #'stem #'prosody-configuration) #,@(filter-map (make-pred 'global) #'((field (field-type def) doc) ...) #'(target ...))) - (define-configuration virtualhost-configuration + (define-configuration #,(id #'stem #'virtualhost-configuration) #,@(filter-map (make-pred 'virtualhost) #'((field (new-field-type new-def) new-doc) ...) #'(target ...))) - (define-configuration int-component-configuration + (define-configuration #,(id #'stem #'int-component-configuration) #,@(filter-map (make-pred 'int-component) #'((field (new-field-type new-def) new-doc) ...) #'(target ...))) - (define-configuration ext-component-configuration + (define-configuration #,(id #'stem #'ext-component-configuration) #,@(filter-map (make-pred 'ext-component) #'((field (new-field-type new-def) new-doc) ...) #'(target ...))))))))) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 58c35c9f5e..c1d42e70ce 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -38,7 +38,6 @@ openssh-configuration openssh-configuration? openssh-service-type - openssh-service dropbear-configuration dropbear-configuration? @@ -261,6 +260,8 @@ The other options should be self-descriptive." (define-record-type* openssh-configuration make-openssh-configuration openssh-configuration? + (openssh openssh-configuration-openssh ;package + (default openssh)) (pid-file openssh-configuration-pid-file (default "/var/run/sshd.pid")) (port-number openssh-configuration-port-number ;integer @@ -298,7 +299,8 @@ The other options should be self-descriptive." (mkdir-p (dirname #$(openssh-configuration-pid-file config))) ;; Generate missing host keys. - (system* (string-append #$openssh "/bin/ssh-keygen") "-A"))) + (system* (string-append #$(openssh-configuration-openssh config) + "/bin/ssh-keygen") "-A"))) (define (openssh-config-file config) "Return the sshd configuration file corresponding to CONFIG." @@ -343,7 +345,7 @@ The other options should be self-descriptive." (openssh-configuration-pid-file config)) (define openssh-command - #~(list (string-append #$openssh "/sbin/sshd") + #~(list (string-append #$(openssh-configuration-openssh config) "/sbin/sshd") "-D" "-f" #$(openssh-config-file config))) (list (shepherd-service diff --git a/gnu/system.scm b/gnu/system.scm index 1006c842c9..c8d4d014ed 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -97,6 +97,8 @@ operating-system-locale-directory operating-system-boot-script + system-linux-image-file-name + boot-parameters boot-parameters? boot-parameters-label @@ -255,9 +257,10 @@ from the initrd." (define* (system-linux-image-file-name #:optional (system (%current-system))) "Return the basename of the kernel image file for SYSTEM." ;; FIXME: Evaluate the conditional based on the actual current system. - (if (string-prefix? "mips" (%current-system)) - "vmlinuz" - "bzImage")) + (cond + ((string-prefix? "arm" (%current-system)) "zImage") + ((string-prefix? "mips" (%current-system)) "vmlinuz") + (else "bzImage"))) (define (operating-system-kernel-file os) "Return an object representing the absolute file name of the kernel image of diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl index 131c43af77..389ec8574b 100644 --- a/gnu/system/examples/lightweight-desktop.tmpl +++ b/gnu/system/examples/lightweight-desktop.tmpl @@ -4,7 +4,7 @@ (use-modules (gnu) (gnu system nss)) (use-service-modules desktop) -(use-package-modules wm ratpoison certs) +(use-package-modules wm ratpoison certs suckless) (operating-system (host-name "antelope") @@ -33,8 +33,8 @@ ;; Add a bunch of window managers; we can choose one at ;; the log-in screen with F1. - (packages (cons* ratpoison i3-wm xmonad ;window managers - nss-certs ;for HTTPS access + (packages (cons* ratpoison i3-wm i3status dmenu ;window managers + nss-certs ;for HTTPS access %base-packages)) ;; Use the "desktop" services, which include the X11 diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm index b18b8be6d7..1f2cd08ff0 100644 --- a/gnu/system/grub.scm +++ b/gnu/system/grub.scm @@ -255,7 +255,7 @@ code." "" (match device ;; Preferably refer to DEVICE by its UUID or label. This is more - ;; efficient and less ambiguous, see <>. + ;; efficient and less ambiguous, see . ((? bytevector? uuid) (format #f "search --fs-uuid --set ~a" (uuid->string device))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 8a35f7fbc5..5c6e7f684a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -141,7 +141,8 @@ made available under the /xchg CIFS share." (gnu build vm)) (let ((inputs '#$(list qemu coreutils)) - (linux (string-append #$linux "/bzImage")) + (linux (string-append #$linux "/" + #$(system-linux-image-file-name))) (initrd (string-append #$initrd "/initrd")) (loader #$loader) (graphs '#$(match references-graphs @@ -364,7 +365,7 @@ of the GNU system as described by OS." (check? #f) (create-mount-point? #t))))) -(define (virtualized-operating-system os mappings) +(define* (virtualized-operating-system os mappings #:optional (full-boot? #f)) "Return an operating system based on OS suitable for use in a virtualized environment with the store shared with the host. MAPPINGS is a list of to realize in the virtualized OS." @@ -380,6 +381,15 @@ environment with the store shared with the host. MAPPINGS is a list of (string-prefix? "/dev/" source))))) (operating-system-file-systems os))) + (define virtual-file-systems + (cons (file-system + (mount-point "/") + (device "/dev/vda1") + (type "ext4")) + + (append (map mapping->file-system mappings) + user-file-systems))) + (operating-system (inherit os) (initrd (lambda (file-systems . rest) (apply base-initrd file-systems @@ -390,17 +400,16 @@ environment with the store shared with the host. MAPPINGS is a list of ;; Disable swap. (swap-devices '()) - (file-systems (cons* (file-system - (mount-point "/") - (device "/dev/vda1") - (type "ext4")) - - (file-system (inherit - (mapping->file-system %store-mapping)) - (needed-for-boot? #t)) - - (append (map mapping->file-system mappings) - user-file-systems))))) + ;; XXX: When FULL-BOOT? is true, do not add a 9p mount for /gnu/store + ;; since that would lead the bootloader config to look for the kernel and + ;; initrd in it. + (file-systems (if full-boot? + virtual-file-systems + (cons + (file-system + (inherit (mapping->file-system %store-mapping)) + (needed-for-boot? #t)) + virtual-file-systems))))) (define* (system-qemu-image/shared-store os @@ -433,25 +442,26 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc." (define* (common-qemu-options image shared-fs) "Return the a string-value gexp with the common QEMU options to boot IMAGE, with '-virtfs' options for the host file systems listed in SHARED-FS." - (define (virtfs-option fs) - #~(string-append "-virtfs local,path=\"" #$fs - "\",security_model=none,mount_tag=\"" - #$(file-system->mount-tag fs) - "\" ")) - #~(string-append - ;; Only enable kvm if we see /dev/kvm exists. + (define (virtfs-option fs) + #~(format #f "-virtfs local,path=~s,security_model=none,mount_tag=~s" + #$fs #$(file-system->mount-tag fs))) + + #~(;; Only enable kvm if we see /dev/kvm exists. ;; This allows users without hardware virtualization to still use these ;; commands. - #$(if (file-exists? "/dev/kvm") - " -enable-kvm " - "") - " -no-reboot -net nic,model=virtio \ - " #$@(map virtfs-option shared-fs) " \ - -vga std \ - -drive file=" #$image - ",if=virtio,cache=writeback,werror=report,readonly \ - -m 256")) + #$@(if (file-exists? "/dev/kvm") + '("-enable-kvm") + '()) + + "-no-reboot" + "-net nic,model=virtio" + + #$@(map virtfs-option shared-fs) + "-vga std" + (format #f "-drive file=~a,if=virtio,cache=writeback,werror=report,readonly" + #$image) + "-m 256")) (define* (system-qemu-image/shared-store-script os #:key @@ -472,31 +482,37 @@ When FULL-BOOT? is true, the returned script runs everything starting from the bootloader; otherwise it directly starts the operating system kernel. The DISK-IMAGE-SIZE parameter specifies the size in bytes of the root disk image; it is mostly useful when FULL-BOOT? is true." - (mlet* %store-monad ((os -> (virtualized-operating-system os mappings)) + (mlet* %store-monad ((os -> (virtualized-operating-system os mappings full-boot?)) (os-drv (operating-system-derivation os)) (image (system-qemu-image/shared-store os #:full-boot? full-boot? #:disk-image-size disk-image-size))) + (define kernel-arguments + #~(list "--root=/dev/vda1" + (string-append "--system=" #$os-drv) + (string-append "--load=" #$os-drv "/boot") + #$@(if graphic? #~() #~("console=ttyS0")) + #+@(operating-system-kernel-arguments os))) + + (define qemu-exec + #~(list (string-append #$qemu "/bin/" #$(qemu-command (%current-system))) + #$@(if full-boot? + #~() + #~("-kernel" #$(operating-system-kernel-file os) + "-initrd" #$(file-append os-drv "/initrd") + (format #f "-append ~s" + (string-join #$kernel-arguments " ")))) + #$@(common-qemu-options image + (map file-system-mapping-source + (cons %store-mapping mappings))))) + (define builder #~(call-with-output-file #$output (lambda (port) - (display - (string-append "#!" #$bash "/bin/sh -exec " #$qemu "/bin/" #$(qemu-command (%current-system)) - -#$@(if full-boot? - #~() - #~(" -kernel " #$(operating-system-kernel os) "/bzImage \ - -initrd " #$os-drv "/initrd \ - -append \"" #$(if graphic? "" "console=ttyS0 ") - "--system=" #$os-drv " --load=" #$os-drv "/boot --root=/dev/vda1 " - (string-join (list #+@(operating-system-kernel-arguments os))) "\" ")) -#$(common-qemu-options image - (map file-system-mapping-source - (cons %store-mapping mappings))) -" \"$@\"\n") - port) + (format port "#!~a~% exec ~a \"$@\"~%" + #$(file-append bash "/bin/sh") + (string-join #$qemu-exec " ")) (chmod port #o555)))) (gexp->derivation "run-vm.sh" builder))) diff --git a/guix/build-system/cargo.scm b/guix/build-system/cargo.scm index 3582f0e328..578c4446a4 100644 --- a/guix/build-system/cargo.scm +++ b/guix/build-system/cargo.scm @@ -29,7 +29,8 @@ #:use-module (guix build-system gnu) #:use-module (ice-9 match) #:use-module (srfi srfi-26) - #:export (cargo-build-system + #:export (%cargo-build-system-modules + cargo-build-system crate-url crate-url? crate-uri)) diff --git a/guix/build/python-build-system.scm b/guix/build/python-build-system.scm index 3f280b0ac0..dd07986b94 100644 --- a/guix/build/python-build-system.scm +++ b/guix/build/python-build-system.scm @@ -137,11 +137,15 @@ ;; (given with `package_dir`). This will by copied to the output, too, ;; so we need to remove. (let ((before (find-files "build" "\\.egg-info$" #:directories? #t))) - (call-setuppy test-target '() use-setuptools?) - (let* ((after (find-files "build" "\\.egg-info$" #:directories? #t)) - (inter (lset-difference eqv? after before))) - (for-each delete-file-recursively inter))) - #t)) + (if (call-setuppy test-target '() use-setuptools?) + (let* ((after (find-files "build" "\\.egg-info$" #:directories? #t)) + (inter (lset-difference eqv? after before))) + (for-each delete-file-recursively inter) + #t) + #f)) + (begin + (format #t "test suite not run~%") + #t))) (define (get-python-version python) (let* ((version (last (string-split python #\-))) diff --git a/guix/download.scm b/guix/download.scm index 813f51f489..dda18ff04d 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -103,8 +103,8 @@ "http://mirror.csclub.uwaterloo.ca/nongnu/" "http://nongnu.askapache.com/" "http://savannah.c3sl.ufpr.br/" - "http://www.centervenus.com/mirrors/nongnu/" - "http://download.savannah.gnu.org/releases-noredirect/") + "http://download.savannah.gnu.org/releases-noredirect/" + "http://download-mirror.savannah.gnu.org/releases/") (sourceforge ; https://sourceforge.net/p/forge/documentation/Mirrors/ "http://downloads.sourceforge.net/project/" "http://ufpr.dl.sourceforge.net/project/" diff --git a/guix/gexp.scm b/guix/gexp.scm index 1f7fbef0a0..d11ed177fe 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -68,6 +68,9 @@ file-append-base file-append-suffix + load-path-expression + gexp-modules + gexp->derivation gexp->file gexp->script diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index 9e49c53635..cad279fb50 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -268,7 +268,7 @@ resulting archive to the standard output port." (let ((system (assoc-ref opts 'system))) (format #t "~a\n" (build-docker-image file #:system system)))) - (_ + (x ;; TODO: Remove this restriction. (leave (_ "only a single item can be exported to Docker~%"))))) (format diff --git a/guix/ui.scm b/guix/ui.scm index 6247944068..3a0a6501d1 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -635,16 +635,17 @@ report what is prerequisites are available for download." (define (right-arrow port) "Return either a string containing the 'RIGHT ARROW' character, or an ASCII replacement if PORT is not Unicode-capable." - (with-fluids ((%default-port-encoding (port-encoding port))) - (let ((arrow "→")) - (catch 'encoding-error - (lambda () - (call-with-output-string - (lambda (port) - (set-port-conversion-strategy! port 'error) - (display arrow port)))) - (lambda (key . args) - "->"))))) + (let ((encoding (port-encoding port)) + (arrow "→")) + (catch 'encoding-error + (lambda () + (call-with-output-string + (lambda (port) + (set-port-encoding! port encoding) + (set-port-conversion-strategy! port 'error) + (display arrow port)))) + (lambda (key . args) + "->")))) (define* (show-manifest-transaction store manifest transaction #:key dry-run?) @@ -687,7 +688,7 @@ replacement if PORT is not Unicode-capable." "The following packages will be removed:~%~{~a~%~}~%" len) remove)))) - (_ #f)) + (x #f)) (match downgrade (((($ name old-version) . ($ _ new-version output item)) ..1) @@ -705,7 +706,7 @@ replacement if PORT is not Unicode-capable." "The following packages will be downgraded:~%~{~a~%~}~%" len) downgrade)))) - (_ #f)) + (x #f)) (match upgrade (((($ name old-version) . ($ _ new-version output item)) ..1) @@ -723,7 +724,7 @@ replacement if PORT is not Unicode-capable." "The following packages will be upgraded:~%~{~a~%~}~%" len) upgrade)))) - (_ #f)) + (x #f)) (match install ((($ name version output item _) ..1) (let ((len (length name)) @@ -739,7 +740,7 @@ replacement if PORT is not Unicode-capable." "The following packages will be installed:~%~{~a~%~}~%" len) install)))) - (_ #f)))) + (x #f)))) (define-syntax with-error-handling (syntax-rules () @@ -820,7 +821,7 @@ converted to a space; sequences of more than one line break are preserved." (match (string-fold maybe-break `(,column 0 ()) str) - ((_ _ chars) + ((column newlines chars) (list->string (reverse chars))))) @@ -1024,7 +1025,7 @@ DURATION-RELATION with the current time." (valid-generations (iota n 1))) ((lst ..1) (valid-generations lst)) - (_ #f))) + (x #f))) (define (filter-by-duration duration) (define (time-at-midnight time) diff --git a/guix/utils.scm b/guix/utils.scm index 72dc0687a4..b72e3f233f 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -43,7 +43,7 @@ #:use-module (ice-9 regex) #:use-module (ice-9 match) #:use-module (ice-9 format) - #:use-module ((ice-9 iconv) #:select (bytevector->string)) + #:use-module ((ice-9 iconv) #:prefix iconv:) #:use-module (system foreign) #:re-export (memoize) ; for backwards compatibility #:export (bytevector->base16-string @@ -326,7 +326,7 @@ This procedure returns #t on success." (seek in 0 SEEK_SET) ; read from the beginning of the file. (let* ((pre-bv (get-bytevector-n in start)) ;; The expression in string form. - (str (bytevector->string + (str (iconv:bytevector->string (get-bytevector-n in (- end start)) (port-encoding in))) (post-bv (get-bytevector-all in)) diff --git a/nix/local.mk b/nix/local.mk index eb70d266fb..9e0c457bec 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -190,7 +190,7 @@ nodist_systemdservice_DATA = etc/guix-daemon.service etc/guix-publish.service etc/guix-%.service: etc/guix-%.service.in \ $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ - $(SED) -e 's|@''bindir''@|$(bindir)|' < \ + $(SED) -e 's|@''localstatedir''@|$(localstatedir)|' < \ "$<" > "$@.tmp"; \ mv "$@.tmp" "$@" @@ -201,7 +201,7 @@ nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf etc/guix-%.conf: etc/guix-%.conf.in \ $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ - $(SED) -e 's|@''bindir''@|$(bindir)|' < \ + $(SED) -e 's|@''localstatedir''@|$(localstatedir)|' < \ "$<" > "$@.tmp"; \ mv "$@.tmp" "$@" diff --git a/nix/scripts/list-runtime-roots.in b/nix/scripts/list-runtime-roots.in index 993eb169c1..a6938087b5 100644 --- a/nix/scripts/list-runtime-roots.in +++ b/nix/scripts/list-runtime-roots.in @@ -1,7 +1,7 @@ #!@GUILE@ -ds !# ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -133,6 +133,9 @@ or the empty list." (define %file-rx (make-regexp "^n/(.*)$")) + ;; We're going to read it all. + (setvbuf pipe _IOFBF 16384) + (let loop ((line (read-line pipe)) (roots '())) (cond ((eof-object? line) diff --git a/tests/cran.scm b/tests/cran.scm index f92934c468..c162d45d8a 100644 --- a/tests/cran.scm +++ b/tests/cran.scm @@ -126,7 +126,8 @@ Date/Publication: 2015-07-14 14:15:16 "This is a long description spanning multiple lines: \ and it could confuse the parser that there is a colon : on the \ lines. And: this line continues the description.") - ('license 'gpl3+))) + ('license 'gpl3+)) + #t) (x (begin (format #t "~s\n" x) diff --git a/tests/hash.scm b/tests/hash.scm index 8039549971..86501dca2d 100644 --- a/tests/hash.scm +++ b/tests/hash.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2013, 2014, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +67,7 @@ In Guile <= 2.0.9, CBIPs were always fully buffered, so the (let-values (((port get) (open-sha256-port))) (put-bytevector port (string->utf8 "hello world")) + (force-output port) (get))) (test-assert "port-sha256" diff --git a/tests/nar.scm b/tests/nar.scm index 4f4b304b1d..28ead8b783 100644 --- a/tests/nar.scm +++ b/tests/nar.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +186,7 @@ (lambda () (let-values (((port get-hash) (open-sha256-port))) (write-file input port) + (close-port port) (get-hash))) (lambda () (rm-rf input))))) diff --git a/tests/ui.scm b/tests/ui.scm index 058207e8b9..cfe417d497 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -248,9 +248,12 @@ Second line" 24)) (lambda () (show-manifest-transaction store m t))))) (string-match "guile\t1.8.8 -> 2.0.9" - (with-fluids ((%default-port-encoding "ISO-8859-1")) - (with-error-to-string - (lambda () - (show-manifest-transaction store m t))))))))) + (with-error-to-string + (lambda () + ;; In Guile 2.2, %DEFAULT-PORT-ENCODING doesn't + ;; influence the encoding of string ports. + (set-port-encoding! (current-error-port) + "ISO-8859-1") + (show-manifest-transaction store m t)))))))) (test-end "ui")