diff --git a/.dir-locals.el b/.dir-locals.el index 4aaeae95c9..04b58d2ce0 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -17,6 +17,7 @@ (eval . (put 'call-with-prompt 'scheme-indent-function 1)) (eval . (put 'test-assert 'scheme-indent-function 1)) (eval . (put 'test-assertm 'scheme-indent-function 1)) + (eval . (put 'test-equalm 'scheme-indent-function 1)) (eval . (put 'test-equal 'scheme-indent-function 1)) (eval . (put 'test-eq 'scheme-indent-function 1)) (eval . (put 'call-with-input-string 'scheme-indent-function 1)) diff --git a/Makefile.am b/Makefile.am index 4b5a29a72d..7c07d1b2b9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,6 +5,7 @@ # Copyright © 2016 Mathieu Lirzin # Copyright © 2016, 2017 Mark H Weaver # Copyright © 2017 Mathieu Othacehe +# Copyright © 2017 Leo Famulari # # This file is part of GNU Guix. # @@ -160,7 +161,6 @@ MODULES = \ guix/scripts/import/gnu.scm \ guix/scripts/import/nix.scm \ guix/scripts/import/hackage.scm \ - guix/scripts/import/stackage.scm \ guix/scripts/import/elpa.scm \ guix/scripts/environment.scm \ guix/scripts/publish.scm \ @@ -185,7 +185,8 @@ MODULES += \ guix/import/stackage.scm \ guix/scripts/import/crate.scm \ guix/scripts/import/gem.scm \ - guix/scripts/import/pypi.scm + guix/scripts/import/pypi.scm \ + guix/scripts/import/stackage.scm endif @@ -224,7 +225,8 @@ AUX_FILES = \ EXAMPLES = \ gnu/system/examples/bare-bones.tmpl \ gnu/system/examples/desktop.tmpl \ - gnu/system/examples/lightweight-desktop.tmpl + gnu/system/examples/lightweight-desktop.tmpl \ + gnu/system/examples/vm-image.tmpl GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go) @@ -571,12 +573,21 @@ BINARY_TARBALLS = \ # Systems supported by GuixSD. GUIXSD_SUPPORTED_SYSTEMS ?= x86_64-linux i686-linux +# Systems for which we build GuixSD VMs. +GUIXSD_VM_SYSTEMS ?= x86_64-linux + # Prefix of the GuixSD installation image file name. GUIXSD_IMAGE_BASE = guixsd-usb-install-$(PACKAGE_VERSION) +# Prefix of the GuixSD VM image file name. +GUIXSD_VM_IMAGE_BASE = guixsd-vm-image-$(PACKAGE_VERSION) + # Size of the installation image (for x86_64 typically). GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB +# Size of the VM image (for x86_64 typically). +GUIXSD_VM_IMAGE_SIZE ?= 2GiB + # The release process works in several phases: # # 0. We assume the developer created a 'vX.Y' tag. @@ -589,7 +600,10 @@ GUIXSD_INSTALLATION_IMAGE_SIZE ?= 950MiB # # This 'release' target takes care of everything and copies the resulting # files to $(releasedir). -release: distcheck +# +# XXX: Depend on 'dist' rather than 'distcheck' to work around the Gettext +# issue described at . +release: dist cd po; git checkout . @if ! git diff-index --quiet HEAD; then \ echo "There are uncommitted changes; stopping." >&2 ; \ @@ -617,6 +631,7 @@ release: distcheck for system in $(GUIXSD_SUPPORTED_SYSTEMS) ; do \ image=`$(top_builddir)/pre-inst-env \ guix system disk-image \ + --system=$$system \ --image-size=$(GUIXSD_INSTALLATION_IMAGE_SIZE) \ gnu/system/install.scm` ; \ if [ ! -f "$$image" ] ; then \ @@ -627,6 +642,20 @@ release: distcheck mv "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz.tmp" \ "$(releasedir)/$(GUIXSD_IMAGE_BASE).$$system.xz" ; \ done + for system in $(GUIXSD_VM_SYSTEMS) ; do \ + image=`$(top_builddir)/pre-inst-env \ + guix system vm-image \ + --system=$$system \ + --image-size=$(GUIXSD_VM_IMAGE_SIZE) \ + gnu/system/examples/vm-image.tmpl` ; \ + if [ ! -f "$$image" ] ; then \ + echo "failed to produced GuixSD VM image for $$system" >&2 ; \ + exit 1 ; \ + fi ; \ + xz < "$$image" > "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" ; \ + mv "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz.tmp" \ + "$(releasedir)/$(GUIXSD_VM_IMAGE_BASE).$$system.xz" ; \ + done @echo @echo "Congratulations! All the release files are now in $(releasedir)." @echo diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 507c6abe0e..b1faa2265a 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -111,7 +111,7 @@ SYSTEM." ;; chain.) (list gcc-4.8 gcc-4.9 gcc-5 glibc binutils gmp mpfr mpc coreutils findutils diffutils patch sed grep - gawk gnu-gettext hello guile-2.0 zlib gzip xz + gawk gnu-gettext hello guile-2.0 guile-2.2 zlib gzip xz %bootstrap-binaries-tarball %binutils-bootstrap-tarball (%glibc-bootstrap-tarball) diff --git a/doc/guix.texi b/doc/guix.texi index 5227ad4ba0..b4a59e793a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -35,7 +35,9 @@ Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* -Copyright @copyright{} 2017 humanitiesNerd +Copyright @copyright{} 2017 humanitiesNerd@* +Copyright @copyright{} 2017 Christopher Allan Webber@* +Copyright @copyright{} 2017 Marius Bakke Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -2892,6 +2894,10 @@ package definition using the @command{guix edit} command more information on how to test package definitions, and @ref{Invoking guix lint}, for information on how to check a definition for style conformance. +@vindex GUIX_PACKAGE_PATH +Lastly, @pxref{Package Modules}, for information +on how to extend the distribution by adding your own package definitions +to @code{GUIX_PACKAGE_PATH}. Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command @@ -3353,23 +3359,8 @@ These build systems can also be used to produce executable programs, or lisp images which contain a set of packages pre-loaded. The build system uses naming conventions. For binary packages, the -package itself as well as its run-time dependencies should begin their -name with the lisp implementation, such as @code{sbcl-} for -@code{asdf-build-system/sbcl}. Beginning the input name with this -prefix will allow the build system to encode its location into the -resulting library, so that the input can be found at run-time. - -If dependencies are used only for tests, it is convenient to use a -different prefix in order to avoid having a run-time dependency on such -systems. For example, - -@example -(define-public sbcl-bordeaux-threads - (package - ... - (native-inputs `(("tests:cl-fiveam" ,sbcl-fiveam))) - ...)) -@end example +package name should be prefixed with the lisp implementation, such as +@code{sbcl-} for @code{asdf-build-system/sbcl}. Additionally, the corresponding source package should be labeled using the same convention as python packages (see @ref{Python Modules}), using @@ -3389,7 +3380,16 @@ expressions to be passed as the @code{#:entry-program} argument. If the system is not defined within its own @code{.asd} file of the same name, then the @code{#:asd-file} parameter should be used to specify -which file the system is defined in. +which file the system is defined in. Furthermore, if the package +defines a system for its tests in a separate file, it will be loaded +before the tests are run if it is specified by the +@code{#:test-asd-file} parameter. If it is not set, the files +@code{-tests.asd}, @code{-test.asd}, @code{tests.asd}, +and @code{test.asd} will be tried if they exist. + +If for some reason the package must be named in a different way than the +naming conventions suggest, the @code{#:asd-system-name} parameter can +be used to specify the name of the system. @end defvr @@ -7315,14 +7315,15 @@ copy the image with: @example dd if=guixsd-usb-install-@value{VERSION}.x86_64 of=/dev/sdX +sync @end example Access to @file{/dev/sdX} usually requires root privileges. @end enumerate Once this is done, you should be able to reboot the system and boot from -the USB stick. The latter usually requires you to get in the BIOS' boot -menu, where you can choose to boot from the USB stick. +the USB stick. The latter usually requires you to get in the BIOS' or +UEFI boot menu, where you can choose to boot from the USB stick. @xref{Installing GuixSD in a VM}, if, instead, you would like to install GuixSD in a virtual machine (VM). @@ -7446,6 +7447,17 @@ ping -c 3 gnu.org Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed. +@cindex installing over SSH +If you want to, you can continue the installation remotely by starting +an SSH server: + +@example +herd start ssh-daemon +@end example + +Make sure to either set a password with @command{passwd}, or configure +OpenSSH public key authentication before logging in. + @subsubsection Disk Partitioning Unless this has already been done, the next step is to partition, and @@ -7465,6 +7477,17 @@ install BIOS-based GRUB (which is the default), make sure a BIOS Boot Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual}). +@cindex EFI, installation +@cindex UEFI, installation +@cindex ESP, EFI system partition +If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} +(ESP) is required. This partition should be mounted at @file{/boot/efi} and +must have the @code{esp} flag set. E.g., for @command{parted}: + +@example +parted /dev/sda set 1 esp on +@end example + Once you are done partitioning the target hard disk drive, you have to create a file system on the relevant partition(s)@footnote{Currently GuixSD only supports ext4 and btrfs file systems. In particular, code @@ -7504,6 +7527,11 @@ root partition): mount LABEL=my-root /mnt @end example +Also mount any other partitions you would like to use on the target +system relative to this path. If you have @file{/boot} on a separate +partition for example, mount it at @file{/mnt/boot} now so it is found +by @code{guix system init} afterwards. + Finally, if you plan to use one or more swap partitions (@pxref{Memory Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure to initialize them with @command{mkswap}. Assuming you have one @@ -7578,7 +7606,8 @@ in particular: @itemize @item Make sure the @code{grub-configuration} form refers to the device you -want to install GRUB on. +want to install GRUB on. You also need to specify the @code{grub-efi} +package if you wish to use native UEFI boot. @item Be sure that your partition labels match the value of their respective @@ -7628,8 +7657,11 @@ good. @subsection Installing GuixSD in a Virtual Machine @cindex virtual machine, GuixSD installation -If you'd like to install GuixSD in a virtual machine (VM) rather than on -your beloved machine, this section is for you. +@cindex virtual private server (VPS) +@cindex VPS (virtual private server) +If you'd like to install GuixSD in a virtual machine (VM) or on a +virtual private server (VPS) rather than on your beloved machine, this +section is for you. To boot a @uref{http://qemu.org/,QEMU} VM for installing GuixSD in a disk image, follow these steps: @@ -7864,7 +7896,7 @@ management, power management, and more, would look like this: @include os-config-desktop.texi @end lisp -A graphical environment with a choice of lightweight window managers +A graphical UEFI system with a choice of lightweight window managers instead of full-blown desktop environments would look like this: @lisp @@ -14617,6 +14649,31 @@ Defaults to @samp{#f}. @end deftypevr + +The @code{(gnu services pm)} module provides an interface to +thermald, a CPU frequency scaling service which helps prevent overheating. + +@defvr {Scheme Variable} thermald-service-type +This is the service type for +@uref{https://01.org/linux-thermal-daemon/, thermald}, the Linux +Thermal Daemon, which is responsible for controlling the thermal state +of processors and preventing overheating. +@end defvr + +@deftp {Data Type} thermald-configuration +Data type representing the configuration of @code{thermald-service-type}. + +@table @asis +@item @code{ignore-cpuid-check?} (default: @code{#f}) +Ignore cpuid check for supported CPU models. + +@item @code{thermald} (default: @var{thermald}) +Package object of thermald. + +@end table +@end deftp + + @node Miscellaneous Services @subsubsection Miscellaneous Services @@ -14906,6 +14963,19 @@ $ export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt" $ export GIT_SSL_CAINFO="$SSL_CERT_FILE" @end example +As another example, R requires the @code{CURL_CA_BUNDLE} environment +variable to point to a certificate bundle, so you would have to run +something like this: + +@example +$ guix package -i nss-certs +$ export CURL_CA_BUNDLE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt" +@end example + +For other applications you may want to look up the required environment +variable in the relevant documentation. + + @node Name Service Switch @subsection Name Service Switch @@ -15224,7 +15294,38 @@ The number of seconds to wait for keyboard input before booting. Set to The @code{grub-theme} object describing the theme to use. @item @code{grub} (default: @code{grub}) -The GRUB package to use. +@cindex EFI, bootloader +@cindex UEFI, bootloader +@cindex BIOS, bootloader +The GRUB package to use. Currently either @code{grub}, for ``legacy'' +x86 BIOS systems, or @code{grub-efi}, for modern systems using the +@dfn{Unified Extensible Firmware Interface} (UEFI). + +@item @code{terminal-outputs} (default: @code{'gfxterm}) +The output terminals used for the GRUB boot menu, as a list of symbols. +These values are accepted: @code{console}, @code{serial}, +@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, +@code{morse}, and @code{pkmodem}. This field corresponds to the GRUB +variable GRUB_TERMINAL_OUTPUT (@pxref{Simple configuration,,, grub,GNU +GRUB manual}). + +@item @code{terminal-inputs} (default: @code{'()}) +The input terminals used for the GRUB boot menu, as a list of symbols. +The default is the native platform terminal as determined by GRUB at +run-time. These values are accepted: @code{console}, @code{serial}, +@code{serial_@{0-3@}}, @code{at_keyboard}, and @code{usb_keyboard}. +This field corresponds to the GRUB variable GRUB_TERMINAL_INPUT +(@pxref{Simple configuration,,, grub,GNU GRUB manual}). + +@item @code{serial-unit} (default: @code{#f}) +The serial unit used by GRUB, as an integer from 0 to 3. The default +value is chosen by GRUB at run-time; currently GRUB chooses 0, which +corresponds to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual}). + +@item @code{serial-speed} (default: @code{#f}) +The speed of the serial interface, as an integer. The default value is +chosen by GRUB at run-time; currently GRUB chooses 9600@tie{}bps +(@pxref{Serial terminal,,, grub,GNU GRUB manual}). @end table @end deftp @@ -15623,17 +15724,21 @@ example graph. @subsection Running GuixSD in a Virtual Machine @cindex virtual machine -One way to run GuixSD in a virtual machine (VM) is to build a GuixSD -virtual machine image using @command{guix system vm-image} -(@pxref{Invoking guix system}). The returned image is in qcow2 format, -which the @uref{http://qemu.org/, QEMU emulator} can efficiently use. +To run GuixSD in a virtual machine (VM), one can either use the +pre-built GuixSD VM image distributed at +@indicateurl{ftp://alpha.gnu.org/guix/guixsd-vm-image-@value{VERSION}.@var{system}.tar.xz} +, or build their own virtual machine image using @command{guix system +vm-image} (@pxref{Invoking guix system}). The returned image is in +qcow2 format, which the @uref{http://qemu.org/, QEMU emulator} can +efficiently use. @cindex QEMU -To run the image in QEMU, copy it out of the store (@pxref{The Store}) -and give yourself permission to write to the copy. When invoking QEMU, -you must choose a system emulator that is suitable for your hardware -platform. Here is a minimal QEMU invocation that will boot the result -of @command{guix system vm-image} on x86_64 hardware: +If you built your own image, you must copy it out of the store +(@pxref{The Store}) and give yourself permission to write to the copy +before you can use it. When invoking QEMU, you must choose a system +emulator that is suitable for your hardware platform. Here is a minimal +QEMU invocation that will boot the result of @command{guix system +vm-image} on x86_64 hardware: @example $ qemu-system-x86_64 \ @@ -15679,7 +15784,7 @@ to your system definition and start the VM using @command{`guix system vm config.scm` -net user}. An important caveat of using @command{-net user} for networking is that @command{ping} will not work, because it uses the ICMP protocol. You'll have to use a different command to check for -network connectivity, like for example @command{curl}. +network connectivity, for example @command{guix download}. @subsubsection Connecting Through SSH diff --git a/gnu.scm b/gnu.scm index 932e4cdd58..913ce61600 100644 --- a/gnu.scm +++ b/gnu.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Joshua S. Grant +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -34,7 +35,8 @@ '((gnu system) (gnu system mapped-devices) (gnu system file-systems) - (gnu system grub) ; 'grub-configuration' + (gnu bootloader) + (gnu bootloader grub) (gnu system pam) (gnu system shadow) ; 'user-account' (gnu system linux-initrd) diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm new file mode 100644 index 0000000000..4e77974d31 --- /dev/null +++ b/gnu/bootloader.scm @@ -0,0 +1,127 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 David Craven +;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Leo Famulari +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu bootloader) + #:use-module (guix discovery) + #:use-module (guix records) + #:use-module (guix ui) + #:use-module (srfi srfi-1) + #:export (bootloader + bootloader? + bootloader-name + bootloader-package + bootloader-installer + bootloader-configuration-file + bootloader-configuration-file-generator + + bootloader-configuration + bootloader-configuration? + bootloader-configuration-bootloader + bootloader-configuration-device + bootloader-configuration-menu-entries + bootloader-configuration-default-entry + bootloader-configuration-timeout + bootloader-configuration-theme + bootloader-configuration-terminal-outputs + bootloader-configuration-terminal-inputs + bootloader-configuration-serial-unit + bootloader-configuration-serial-speed + bootloader-configuration-additional-configuration + + %bootloaders + lookup-bootloader-by-name)) + + +;;; +;;; Bootloader record. +;;; + +;; The record contains fields expressing how the bootloader +;; should be installed. Every bootloader in gnu/bootloader/ directory +;; has to be described by this record. + +(define-record-type* + bootloader make-bootloader + bootloader? + (name bootloader-name) + (package bootloader-package) + (installer bootloader-installer) + (configuration-file bootloader-configuration-file) + (configuration-file-generator bootloader-configuration-file-generator)) + + +;;; +;;; Bootloader configuration record. +;;; + +;; The record contains bootloader independant +;; configuration used to fill bootloader configuration file. + +(define-record-type* + bootloader-configuration make-bootloader-configuration + bootloader-configuration? + (bootloader bootloader-configuration-bootloader) ; + (device bootloader-configuration-device ; string + (default #f)) + (menu-entries bootloader-configuration-menu-entries ; list of + (default '())) + (default-entry bootloader-configuration-default-entry ; integer + (default 0)) + (timeout bootloader-configuration-timeout ; seconds as integer + (default 5)) + (theme bootloader-configuration-theme ; bootloader-specific theme + (default #f)) + (terminal-outputs bootloader-configuration-terminal-outputs ; list of symbols + (default '(gfxterm))) + (terminal-inputs bootloader-configuration-terminal-inputs ; list of symbols + (default '())) + (serial-unit bootloader-configuration-serial-unit ; integer | #f + (default #f)) + (serial-speed bootloader-configuration-serial-speed ; integer | #f + (default #f)) + (additional-configuration bootloader-configuration-additional-configuration ; record + (default #f))) + + +;;; +;;; Bootloaders. +;;; + +(define (bootloader-modules) + "Return the list of bootloader modules." + (all-modules (map (lambda (entry) + `(,entry . "gnu/bootloader")) + %load-path))) + +(define %bootloaders + ;; The list of publically-known bootloaders. + (delay (fold-module-public-variables (lambda (obj result) + (if (bootloader? obj) + (cons obj result) + result)) + '() + (bootloader-modules)))) + +(define (lookup-bootloader-by-name name) + "Return the bootloader called NAME." + (or (find (lambda (bootloader) + (eq? name (bootloader-name bootloader))) + (force %bootloaders)) + (leave (G_ "~a: no such bootloader~%") name))) diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm new file mode 100644 index 0000000000..67b8815d40 --- /dev/null +++ b/gnu/bootloader/extlinux.scm @@ -0,0 +1,120 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 David Craven +;;; Copyright © 2017 Mathieu Othacehe +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu bootloader extlinux) + #:use-module (gnu bootloader) + #:use-module (gnu system) + #:use-module (gnu packages bootloaders) + #:use-module (guix gexp) + #:use-module (guix monads) + #:use-module (guix records) + #:use-module (guix utils) + #:export (extlinux-bootloader)) + +(define* (extlinux-configuration-file config entries + #:key + (system (%current-system)) + (old-entries '())) + "Return the U-Boot configuration file corresponding to CONFIG, a + object, and where the store is available at STORE-FS, a + object. OLD-ENTRIES is taken to be a list of menu entries +corresponding to old generations of the system." + + (define all-entries + (append entries (bootloader-configuration-menu-entries config))) + + (define (boot-parameters->gexp params) + (let ((label (boot-parameters-label params)) + (kernel (boot-parameters-kernel params)) + (kernel-arguments (boot-parameters-kernel-arguments params)) + (initrd (boot-parameters-initrd params))) + #~(format port "LABEL ~a + MENU LABEL ~a + KERNEL ~a + FDTDIR ~a/lib/dtbs + INITRD ~a + APPEND ~a +~%" + #$label #$label + #$kernel #$kernel #$initrd + (string-join (list #$@kernel-arguments))))) + + (define builder + #~(call-with-output-file #$output + (lambda (port) + (let ((timeout #$(bootloader-configuration-timeout config))) + (format port "# This file was generated from your GuixSD configuration. Any changes +# will be lost upon reconfiguration. +UI menu.c32 +PROMPT ~a +TIMEOUT ~a~%" + (if (> timeout 0) 1 0) + ;; timeout is expressed in 1/10s of seconds. + (* 10 timeout)) + #$@(map boot-parameters->gexp all-entries) + + #$@(if (pair? old-entries) + #~((format port "~%") + #$@(map boot-parameters->gexp old-entries) + (format port "~%")) + #~()))))) + + (gexp->derivation "extlinux.conf" builder)) + + + + +;;; +;;; Install procedures. +;;; + +(define dd + #~(lambda (bs count if of) + (zero? (system* "dd" + (string-append "bs=" (number->string bs)) + (string-append "count=" (number->string count)) + (string-append "if=" if) + (string-append "of=" of))))) + +(define install-extlinux + #~(lambda (bootloader device mount-point) + (let ((extlinux (string-append bootloader "/sbin/extlinux")) + (install-dir (string-append mount-point "/boot/extlinux")) + (syslinux-dir (string-append bootloader "/share/syslinux"))) + (for-each (lambda (file) + (install-file file install-dir)) + (find-files syslinux-dir "\\.c32$")) + + (unless (and (zero? (system* extlinux "--install" install-dir)) + (#$dd 440 1 (string-append syslinux-dir "/mbr.bin") device)) + (error "failed to install SYSLINUX"))))) + + + +;;; +;;; Bootloader definitions. +;;; + +(define extlinux-bootloader + (bootloader + (name 'extlinux) + (package syslinux) + (installer install-extlinux) + (configuration-file "/boot/extlinux/extlinux.conf") + (configuration-file-generator extlinux-configuration-file))) diff --git a/gnu/system/grub.scm b/gnu/bootloader/grub.scm similarity index 67% rename from gnu/system/grub.scm rename to gnu/bootloader/grub.scm index 58096429fe..49616b7164 100644 --- a/gnu/system/grub.scm +++ b/gnu/bootloader/grub.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Chris Marusich +;;; Copyright © 2017 Leo Famulari +;;; Copyright © 2017 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +19,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . -(define-module (gnu system grub) +(define-module (gnu bootloader grub) #:use-module (guix store) #:use-module (guix packages) #:use-module (guix derivations) @@ -27,6 +29,7 @@ #:use-module (guix download) #:use-module (gnu artwork) #:use-module (gnu system) + #:use-module (gnu bootloader) #:use-module (gnu system file-systems) #:autoload (gnu packages bootloaders) (grub) #:autoload (gnu packages compression) (gzip) @@ -49,15 +52,10 @@ %background-image %default-theme - grub-configuration - grub-configuration? - grub-configuration-device - grub-configuration-grub + grub-bootloader + grub-efi-bootloader - menu-entry - menu-entry? - - grub-configuration-file)) + grub-configuration)) ;;; Commentary: ;;; @@ -105,21 +103,6 @@ denoting a file name." (color-highlight '((fg . yellow) (bg . black))) (color-normal '((fg . light-gray) (bg . black))))) ;XXX: #x303030 -(define-record-type* - grub-configuration make-grub-configuration - grub-configuration? - (grub grub-configuration-grub ; package - (default (@ (gnu packages bootloaders) grub))) - (device grub-configuration-device) ; string - (menu-entries grub-configuration-menu-entries ; list - (default '())) - (default-entry grub-configuration-default-entry ; integer - (default 0)) - (timeout grub-configuration-timeout ; integer - (default 5)) - (theme grub-configuration-theme ; - (default %default-theme))) - (define-record-type* menu-entry make-menu-entry menu-entry? @@ -138,6 +121,11 @@ denoting a file name." ;;; Background image & themes. ;;; +(define (bootloader-theme config) + "Return user defined theme in CONFIG if defined or %default-theme +otherwise." + (or (bootloader-configuration-theme config) %default-theme)) + (define* (svg->png svg #:key width height) "Build a PNG of HEIGHT x WIDTH from SVG." (gexp->derivation "grub-image.png" @@ -162,7 +150,8 @@ WIDTH/HEIGHT, or #f if none was found." (let* ((ratio (/ width height)) (image (find (lambda (image) (= (grub-image-aspect-ratio image) ratio)) - (grub-theme-images (grub-configuration-theme config))))) + (grub-theme-images + (bootloader-theme config))))) (if image (svg->png (grub-image-file image) #:width width #:height height) @@ -199,13 +188,18 @@ system string---e.g., \"x86_64-linux\"." insmod vbe insmod vga fi - - terminal_output gfxterm " "")) + (define (setup-gfxterm config font-file) + (if (memq 'gfxterm (bootloader-configuration-terminal-outputs config)) + #~(format #f "if loadfont ~a; then + setup_gfxterm +fi~%" #$font-file) + "")) + (define (theme-colors type) - (let* ((theme (grub-configuration-theme config)) + (let* ((theme (bootloader-theme config)) (colors (type theme))) (string-append (symbol->string (assoc-ref colors 'fg)) "/" (symbol->string (assoc-ref colors 'bg))))) @@ -222,9 +216,8 @@ function setup_gfxterm {~a} # Set 'root' to the partition that contains /gnu/store. ~a -if loadfont ~a; then - setup_gfxterm -fi +~a +~a insmod png if background_image ~a; then @@ -236,7 +229,8 @@ else fi~%" #$setup-gfxterm-body #$(grub-root-search store-device font-file) - #$font-file + #$(setup-gfxterm config font-file) + #$(grub-setup-io config) #$(strip-mount-point store-mount-point image) #$(theme-colors grub-theme-color-normal) @@ -247,6 +241,57 @@ fi~%" ;;; Configuration file. ;;; +(define (grub-setup-io config) + "Return GRUB commands to configure the input / output interfaces. The result +is a string that can be inserted in grub.cfg." + (let* ((symbols->string (lambda (list) + (string-join (map symbol->string list) " "))) + (outputs (bootloader-configuration-terminal-outputs config)) + (inputs (bootloader-configuration-terminal-inputs config)) + (unit (bootloader-configuration-serial-unit config)) + (speed (bootloader-configuration-serial-speed config)) + + ;; Respectively, GRUB_TERMINAL_OUTPUT and GRUB_TERMINAL_INPUT, + ;; as documented in GRUB manual section "Simple Configuration + ;; Handling". + (valid-outputs '(console serial serial_0 serial_1 serial_2 serial_3 + gfxterm vga_text mda_text morse spkmodem)) + (valid-inputs '(console serial serial_0 serial_1 serial_2 serial_3 + at_keyboard usb_keyboard)) + + (io (string-append + "terminal_output " + (symbols->string + (map + (lambda (output) + (if (memq output valid-outputs) output #f)) outputs)) "\n" + (if (null? inputs) + "" + (string-append + "terminal_input " + (symbols->string + (map + (lambda (input) + (if (memq input valid-inputs) input #f)) inputs)) "\n")) + ;; UNIT and SPEED are arguments to the same GRUB command + ;; ("serial"), so we process them together. + (if (or unit speed) + (string-append + "serial" + (if unit + ;; COM ports 1 through 4 + (if (and (exact-integer? unit) (<= unit 3) (>= unit 0)) + (string-append " --unit=" (number->string unit)) + #f) + "") + (if speed + (if (exact-integer? speed) + (string-append " --speed=" (number->string speed)) + #f) + "")) + "")))) + (format #f "~a" io))) + (define (grub-root-search device file) "Return the GRUB 'search' command to look for DEVICE, which contains FILE, a gexp. The result is a gexp that can be inserted in the grub.cfg-generation @@ -282,12 +327,13 @@ code." (system (%current-system)) (old-entries '())) "Return the GRUB configuration file corresponding to CONFIG, a - object, and where the store is available at STORE-FS, a - object. OLD-ENTRIES is taken to be a list of menu entries -corresponding to old generations of the system." + object, and where the store is available at +STORE-FS, a object. OLD-ENTRIES is taken to be a list of menu +entries corresponding to old generations of the system." (define all-entries - (append (map boot-parameters->menu-entry entries) - (grub-configuration-menu-entries config))) + (map boot-parameters->menu-entry + (append entries + (bootloader-configuration-menu-entries config)))) (define entry->gexp (match-lambda @@ -326,8 +372,8 @@ corresponding to old generations of the system." (format port " set default=~a set timeout=~a~%" - #$(grub-configuration-default-entry config) - #$(grub-configuration-timeout config)) + #$(bootloader-configuration-default-entry config) + #$(bootloader-configuration-timeout config)) #$@(map entry->gexp all-entries) #$@(if (pair? old-entries) @@ -339,4 +385,64 @@ submenu \"GNU system, old configurations...\" {~%") (gexp->derivation "grub.cfg" builder))) + + +;;; +;;; Install procedures. +;;; + +(define install-grub + #~(lambda (bootloader device mount-point) + ;; Install GRUB on DEVICE which is mounted at MOUNT-POINT. + (let ((grub (string-append bootloader "/sbin/grub-install")) + (install-dir (string-append mount-point "/boot"))) + ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or + ;; root partition. + (setenv "GRUB_ENABLE_CRYPTODISK" "y") + + (unless (zero? (system* grub "--no-floppy" + "--boot-directory" install-dir + device)) + (error "failed to install GRUB"))))) + + + +;;; +;;; Bootloader definitions. +;;; + +(define grub-bootloader + (bootloader + (name 'grub) + (package grub) + (installer install-grub) + (configuration-file "/boot/grub/grub.cfg") + (configuration-file-generator grub-configuration-file))) + +(define* grub-efi-bootloader + (bootloader + (inherit grub-bootloader) + (name 'grub-efi) + (package grub-efi))) + + +;;; +;;; Compatibility macros. +;;; + +(define-syntax grub-configuration + (syntax-rules (grub) + ((_ (grub package) fields ...) + (if (eq? package grub) + (bootloader-configuration + (bootloader grub-bootloader) + fields ...) + (bootloader-configuration + (bootloader grub-efi-bootloader) + fields ...))) + ((_ fields ...) + (bootloader-configuration + (bootloader grub-bootloader) + fields ...)))) + ;;; grub.scm ends here diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index beee56d437..a1d2a9cc7d 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -227,7 +227,11 @@ numeric gid or #f." #:supplementary-groups supplementary-groups #:comment comment #:home home + + ;; Home directories of non-system accounts are created by + ;; 'activate-user-home'. #:create-home? (and create-home? system?) + #:shell shell #:password password) @@ -282,7 +286,10 @@ they already exist." (match-lambda ((name uid group supplementary-groups comment home create-home? shell password system?) - (unless (or (not home) (directory-exists? home)) + ;; The home directories of system accounts are created during + ;; activation, not here. + (unless (or (not home) (not create-home?) system? + (directory-exists? home)) (let* ((pw (getpwnam name)) (uid (passwd:uid pw)) (gid (passwd:gid pw))) diff --git a/gnu/build/install.scm b/gnu/build/install.scm index 5cb6055a0c..9e30c0d23e 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -22,8 +22,7 @@ #:use-module (guix build store-copy) #:use-module (srfi srfi-26) #:use-module (ice-9 match) - #:export (install-grub - install-grub-config + #:export (install-boot-config evaluate-populate-directive populate-root-file-system reset-timestamps @@ -39,36 +38,17 @@ ;;; ;;; Code: -(define (install-grub grub.cfg device mount-point) - "Install GRUB with GRUB.CFG on DEVICE, which is assumed to be mounted on -MOUNT-POINT. - -Note that the caller must make sure that GRUB.CFG is registered as a GC root -so that the fonts, background images, etc. referred to by GRUB.CFG are not -GC'd." - (install-grub-config grub.cfg mount-point) - - ;; Tell 'grub-install' that there might be a LUKS-encrypted /boot or root - ;; partition. - (setenv "GRUB_ENABLE_CRYPTODISK" "y") - - (unless (zero? (system* "grub-install" "--no-floppy" - "--boot-directory" - (string-append mount-point "/boot") - device)) - (error "failed to install GRUB"))) - -(define (install-grub-config grub.cfg mount-point) - "Atomically copy GRUB.CFG into boot/grub/grub.cfg on the MOUNT-POINT. Note -that the caller must make sure that GRUB.CFG is registered as a GC root so -that the fonts, background images, etc. referred to by GRUB.CFG are not GC'd." - (let* ((target (string-append mount-point "/boot/grub/grub.cfg")) +(define (install-boot-config bootcfg bootcfg-location mount-point) + "Atomically copy BOOTCFG into BOOTCFG-LOCATION on the MOUNT-POINT. Note +that the caller must make sure that BOOTCFG is registered as a GC root so +that the fonts, background images, etc. referred to by BOOTCFG are not GC'd." + (let* ((target (string-append mount-point bootcfg-location)) (pivot (string-append target ".new"))) (mkdir-p (dirname target)) - ;; Copy GRUB.CFG instead of just symlinking it, because symlinks won't + ;; Copy BOOTCFG instead of just symlinking it, because symlinks won't ;; work when /boot is on a separate partition. Do that atomically. - (copy-file grub.cfg pivot) + (copy-file bootcfg pivot) (rename-file pivot target))) (define (evaluate-populate-directive directive target) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 1eb9a4c45e..57619764ce 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (gnu build linux-boot) #:use-module (gnu build install) #:use-module (guix records) + #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) @@ -41,7 +43,7 @@ partition-size partition-file-system partition-label - partition-bootable? + partition-flags partition-initializer root-partition-initializer @@ -141,7 +143,7 @@ the #:references-graphs parameter of 'derivation'." (size partition-size) (file-system partition-file-system (default "ext4")) (label partition-label (default #f)) - (bootable? partition-bootable? (default #f)) + (flags partition-flags (default '())) (initializer partition-initializer (default (const #t)))) (define (fold2 proc seed1 seed2 lst) ;TODO: factorize @@ -168,9 +170,10 @@ actual /dev name based on DEVICE." (cons* "mkpart" "primary" "ext2" (format #f "~aB" offset) (format #f "~aB" (+ offset (partition-size part))) - (if (partition-bootable? part) - `("set" ,(number->string index) "boot" "on") - '()))) + (append-map (lambda (flag) + (list "set" (number->string index) + (symbol->string flag) "on")) + (partition-flags part)))) (define (options partitions offset) (let loop ((partitions partitions) @@ -211,10 +214,10 @@ actual /dev name based on DEVICE." (define MS_BIND 4096) ; again! -(define* (format-partition partition type - #:key label) - "Create a file system TYPE on PARTITION. If LABEL is true, use that as the -volume name." +(define* (create-ext-file-system partition type + #:key label) + "Create an ext-family filesystem of TYPE on PARTITION. If LABEL is true, +use that as the volume name." (format #t "creating ~a partition...\n" type) (unless (zero? (apply system* (string-append "mkfs." type) "-F" partition @@ -223,6 +226,28 @@ volume name." '()))) (error "failed to create partition"))) +(define* (create-fat-file-system partition + #:key label) + "Create a FAT filesystem on PARTITION. The number of File Allocation Tables +will be determined based on filesystem size. If LABEL is true, use that as the +volume name." + (format #t "creating FAT partition...\n") + (unless (zero? (apply system* "mkfs.fat" partition + (if label + `("-n" ,label) + '()))) + (error "failed to create FAT partition"))) + +(define* (format-partition partition type + #:key label) + "Create a file system TYPE on PARTITION. If LABEL is true, use that as the +volume name." + (cond ((string-prefix? "ext" type) + (create-ext-file-system partition type #:label label)) + ((or (string-prefix? "fat" type) (string= "vfat" type)) + (create-fat-file-system partition #:label label)) + (else (error "Unsupported file system.")))) + (define (initialize-partition partition) "Format PARTITION, a object with a non-#f 'device' field, mount it, run its initializer, and unmount it." @@ -285,23 +310,65 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." (unless register-closures? (reset-timestamps target)))) -(define (register-grub.cfg-root target bootcfg) +(define (register-bootcfg-root target bootcfg) "On file system TARGET, register BOOTCFG as a GC root." (let ((directory (string-append target "/var/guix/gcroots"))) (mkdir-p directory) - (symlink bootcfg (string-append directory "/grub.cfg")))) + (symlink bootcfg (string-append directory "/bootcfg")))) + +(define (install-efi grub esp config-file) + "Write a self-contained GRUB EFI loader to the mounted ESP using CONFIG-FILE." + (let* ((system %host-type) + ;; Hard code the output location to a well-known path recognized by + ;; compliant firmware. See "3.5.1.1 Removable Media Boot Behaviour": + ;; http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_6.pdf + (grub-mkstandalone (string-append grub "/bin/grub-mkstandalone")) + (efi-directory (string-append esp "/EFI/BOOT")) + ;; Map grub target names to boot file names. + (efi-targets (cond ((string-prefix? "x86_64" system) + '("x86_64-efi" . "BOOTX64.EFI")) + ((string-prefix? "i686" system) + '("i386-efi" . "BOOTIA32.EFI")) + ((string-prefix? "armhf" system) + '("arm-efi" . "BOOTARM.EFI")) + ((string-prefix? "aarch64" system) + '("arm64-efi" . "BOOTAA64.EFI"))))) + ;; grub-mkstandalone requires a TMPDIR to prepare the firmware image. + (setenv "TMPDIR" esp) + + (mkdir-p efi-directory) + (unless (zero? (system* grub-mkstandalone "-O" (car efi-targets) + "-o" (string-append efi-directory "/" + (cdr efi-targets)) + ;; Graft the configuration file onto the image. + (string-append "boot/grub/grub.cfg=" config-file))) + (error "failed to create GRUB EFI image")))) (define* (initialize-hard-disk device #:key - grub.cfg + bootloader-package + bootcfg + bootcfg-location + bootloader-installer + (grub-efi #f) (partitions '())) "Initialize DEVICE as a disk containing all the objects listed in PARTITIONS, and using BOOTCFG as its bootloader configuration file. Each partition is initialized by calling its 'initializer' procedure, passing it a directory name where it is mounted." + + (define (partition-bootable? partition) + "Return the first partition found with the boot flag set." + (member 'boot (partition-flags partition))) + + (define (partition-esp? partition) + "Return the first EFI System Partition." + (member 'esp (partition-flags partition))) + (let* ((partitions (initialize-partition-table device partitions)) (root (find partition-bootable? partitions)) + (esp (find partition-esp? partitions)) (target "/fs")) (unless root (error "no bootable partition specified" partitions)) @@ -311,10 +378,38 @@ passing it a directory name where it is mounted." (display "mounting root partition...\n") (mkdir-p target) (mount (partition-device root) target (partition-file-system root)) - (install-grub grub.cfg device target) + (install-boot-config bootcfg bootcfg-location target) + (when bootloader-installer + (display "installing bootloader...\n") + (bootloader-installer bootloader-package device target)) - ;; Register GRUB.CFG as a GC root. - (register-grub.cfg-root target grub.cfg) + (when esp + ;; Mount the ESP somewhere and install GRUB UEFI image. + (let ((mount-point (string-append target "/boot/efi")) + (grub-config (string-append target "/tmp/grub-standalone.cfg"))) + (display "mounting EFI system partition...\n") + (mkdir-p mount-point) + (mount (partition-device esp) mount-point + (partition-file-system esp)) + + ;; Create a tiny configuration file telling the embedded grub + ;; where to load the real thing. + (call-with-output-file grub-config + (lambda (port) + (format port + "insmod part_msdos~@ + search --set=root --label gnu-disk-image~@ + configfile /boot/grub/grub.cfg~%"))) + + (display "creating EFI firmware image...") + (install-efi grub-efi mount-point grub-config) + (display "done.\n") + + (delete-file grub-config) + (umount mount-point))) + + ;; Register BOOTCFG as a GC root. + (register-bootcfg-root target bootcfg) (umount target))) diff --git a/gnu/local.mk b/gnu/local.mk index 28a283ab70..3ca546913c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -36,6 +36,9 @@ GNU_SYSTEM_MODULES = \ gnu.scm \ %D%/artwork.scm \ + %D%/bootloader.scm \ + %D%/bootloader/grub.scm \ + %D%/bootloader/extlinux.scm \ %D%/packages.scm \ %D%/packages/abduco.scm \ %D%/packages/abiword.scm \ @@ -194,6 +197,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/idris.scm \ %D%/packages/idutils.scm \ %D%/packages/image.scm \ + %D%/packages/image-processing.scm \ %D%/packages/image-viewers.scm \ %D%/packages/imagemagick.scm \ %D%/packages/indent.scm \ @@ -356,6 +360,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/speech.scm \ %D%/packages/spice.scm \ %D%/packages/ssh.scm \ + %D%/packages/sssd.scm \ %D%/packages/stalonetray.scm \ %D%/packages/statistics.scm \ %D%/packages/storage.scm \ @@ -441,7 +446,6 @@ GNU_SYSTEM_MODULES = \ \ %D%/system.scm \ %D%/system/file-systems.scm \ - %D%/system/grub.scm \ %D%/system/install.scm \ %D%/system/linux-container.scm \ %D%/system/linux-initrd.scm \ @@ -497,6 +501,7 @@ dist_patch_DATA = \ %D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/apr-skip-getservbyname-test.patch \ %D%/packages/patches/artanis-fix-Makefile.in.patch \ + %D%/packages/patches/aspell-default-dict-dir.patch \ %D%/packages/patches/ath9k-htc-firmware-binutils.patch \ %D%/packages/patches/ath9k-htc-firmware-gcc.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ @@ -515,7 +520,9 @@ dist_patch_DATA = \ %D%/packages/patches/byobu-writable-status.patch \ %D%/packages/patches/cairo-CVE-2016-9082.patch \ %D%/packages/patches/calibre-drop-unrar.patch \ + %D%/packages/patches/calibre-dont-load-remote-icons.patch \ %D%/packages/patches/calibre-no-updates-dialog.patch \ + %D%/packages/patches/calibre-use-packaged-feedparser.patch \ %D%/packages/patches/cdparanoia-fpic.patch \ %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ @@ -641,12 +648,15 @@ dist_patch_DATA = \ %D%/packages/patches/graphite2-non-linear-classes-even-number.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/gsl-test-i686.patch \ + %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-default-utf8.patch \ %D%/packages/patches/guile-linux-syscalls.patch \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ + %D%/packages/patches/guile-ssh-rexec-bug.patch \ + %D%/packages/patches/guile-ssh-double-free.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ @@ -679,6 +689,9 @@ dist_patch_DATA = \ %D%/packages/patches/jasper-CVE-2017-6850.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/jbig2dec-CVE-2016-9601.patch \ + %D%/packages/patches/jbig2dec-CVE-2017-7885.patch \ + %D%/packages/patches/jbig2dec-CVE-2017-7975.patch \ + %D%/packages/patches/jbig2dec-CVE-2017-7976.patch \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ @@ -834,8 +847,6 @@ dist_patch_DATA = \ %D%/packages/patches/netsurf-system-utf8proc.patch \ %D%/packages/patches/netsurf-y2038-tests.patch \ %D%/packages/patches/netsurf-longer-test-timeout.patch \ - %D%/packages/patches/networkmanager-qt-activeconnection-test-1.patch \ - %D%/packages/patches/networkmanager-qt-activeconnection-test-2.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ninja-zero-mtime.patch \ %D%/packages/patches/node-9077.patch \ @@ -938,7 +949,9 @@ dist_patch_DATA = \ %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-2017-7493.patch \ %D%/packages/patches/qt4-ldflags.patch \ + %D%/packages/patches/qtscript-disable-tests.patch \ %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ %D%/packages/patches/rapicorn-isnan.patch \ %D%/packages/patches/ratpoison-shell.patch \ @@ -961,8 +974,6 @@ dist_patch_DATA = \ %D%/packages/patches/screen-fix-info-syntax-error.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.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 \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index ef7bff10f3..aa6ccc0a73 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 John Darrington ;;; Copyright © 2017 Ben Sturmfels ;;; Copyright © 2017 Ethan R. Jones +;;; Copyright © 2017 Christopher Allan Webber ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,7 +81,8 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages gnome) #:use-module (gnu packages kerberos) - #:use-module (gnu packages gtk)) + #:use-module (gnu packages gtk) + #:use-module (gnu packages xml)) (define-public aide (package @@ -279,17 +281,15 @@ client and server, a telnet client and server, and an rsh client and server.") (define-public shadow (package (name "shadow") - (version "4.4") + (version "4.5") (source (origin (method url-fetch) (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" - "shadow-CVE-2017-2616.patch")) (sha256 (base32 - "0g7hf55ar2pafg5g3ldx0fwzjk36wf4xb21p4ndanbjm3c2a9ab1")))) + "0hdpai78n63l3v3fgr3kkiqzhd0awrpfnnzz4mf7lmxdh61qb37w")))) (build-system gnu-build-system) (arguments '(;; Assume System V `setpgrp (void)', which is the default on GNU @@ -2180,3 +2180,53 @@ navigation, opening files and running tasks. There is no config file and mime associations are hard-coded. The incredible user-friendliness and speed make it a perfect utility on modern distros.") (license license:bsd-2))) + +(define-public thermald + (package + (name "thermald") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/01org/thermal_daemon/archive/v" + version ".tar.gz")) + (sha256 (base32 + "14klz9fnvi9jdlaqwrp61xa5nh051n8ykrs1fh1wxd7j66qf2fn6")))) + (build-system gnu-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after + 'unpack 'autogen.sh-and-fix-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; upstartconfir is hardcoded to /etc/init and the build + ;; system tries to mkdir that. We don't even need upstart + ;; files at all; this is a fast and kludgy workaround + (substitute* "data/Makefile.am" + (("upstartconfdir = /etc/init") + (string-append "upstartconfdir = " + out "/etc/init"))) + ;; Now run autogen + (zero? (system* "sh" "autogen.sh")))))) + #:configure-flags + (let ((out (assoc-ref %outputs "out"))) + (list (string-append "--sysconfdir=" + out "/etc") + (string-append "--with-udev-dir=" + out "/lib/udev") + (string-append "--with-dbus-sys-dir=" + out "/etc/dbus-1/system.d") + "--localstatedir=/var")))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("glib" ,glib "bin") ; for glib-genmarshal, etc. + ("pkg-config" ,pkg-config))) + (inputs + `(("dbus-glib" ,dbus-glib) + ("libxml2" ,libxml2))) + (home-page "https://01.org/linux-thermal-daemon/") + (synopsis "CPU scaling for thermal management") + (description "The Linux Thermal Daemon helps monitor and control temperature +on systems running the Linux kernel.") + (license license:gpl2+))) diff --git a/gnu/packages/aspell.scm b/gnu/packages/aspell.scm index 06ba2ce472..509d428f64 100644 --- a/gnu/packages/aspell.scm +++ b/gnu/packages/aspell.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès ;;; Copyright © 2015, 2016 Alex Kost ;;; Copyright © 2016 John Darrington ;;; Copyright © 2016 Efraim Flashner @@ -26,6 +26,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) + #:use-module (gnu packages) #:use-module (gnu packages perl) #:use-module (gnu packages base)) @@ -40,7 +41,8 @@ version ".tar.gz")) (sha256 (base32 - "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")))) + "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm")) + (patches (search-patches "aspell-default-dict-dir.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -53,6 +55,15 @@ '("ASPELL_CONF" "" = ("${ASPELL_CONF:-\"dict-dir ${GUIX_PROFILE:-$HOME/.guix-profile}/lib/aspell\"}"))))))))) (inputs `(("perl" ,perl))) + + (native-search-paths + ;; This is a Guix-specific environment variable that takes a single + ;; entry, not an actual search path. + (list (search-path-specification + (variable "ASPELL_DICT_DIR") + (separator #f) + (files '("lib/aspell"))))) + (home-page "http://aspell.net/") (synopsis "Spell checker") (description @@ -66,7 +77,8 @@ dictionaries, including personal ones.") ;;; Dictionaries. ;;; ;;; Use 'export ASPELL_CONF="dict-dir $HOME/.guix-profile/lib/aspell"' to use -;;; them. +;;; them, or set the Guix-specific 'ASPELL_DICT_DIR', or just do nothing (as +;;; long as 'HOME' is set, that's fine!). ;;; (define* (aspell-dictionary dict-name full-name diff --git a/gnu/packages/aux-files/linux-libre/4.11-i686.conf b/gnu/packages/aux-files/linux-libre/4.11-i686.conf index 6234a980ae..93c1f1747b 100644 --- a/gnu/packages/aux-files/linux-libre/4.11-i686.conf +++ b/gnu/packages/aux-files/linux-libre/4.11-i686.conf @@ -935,8 +935,7 @@ CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set -CONFIG_SMC=m -CONFIG_SMC_DIAG=m +# CONFIG_SMC is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y diff --git a/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf index d47a5d1226..ea6e5cc899 100644 --- a/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/4.11-x86_64.conf @@ -919,8 +919,7 @@ CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set -CONFIG_SMC=m -CONFIG_SMC_DIAG=m +# CONFIG_SMC is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index d5cb5783ab..5f0e84beed 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -118,7 +118,7 @@ spying and/or modification by the server.") (define-public par2cmdline (package (name "par2cmdline") - (version "0.6.14") + (version "0.7.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/Parchive/par2cmdline/archive/v" @@ -126,21 +126,14 @@ spying and/or modification by the server.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0ykfb7ar0x0flfdgf6i8xphyv5b93dalbjj2jb6hx7sdjax33n1g")) - ;; This test merely needs a file to test recovery on, but - ;; /dev/random is essentially /dev/urandom plus minimum entropy - ;; locking, making the test hang indefinitely. This change is - ;; already upstream: remove on upgrade to future 0.6.15. - ;; https://github.com/Parchive/par2cmdline/commit/27723a678f780da82c79b98592592009c779a4fb - (modules '((guix build utils))) - (snippet - '(substitute* "tests/test20" (("if=/dev/random") "if=/dev/urandom"))))) + "1m9vnv3pg0nds47raq2rd2kfpaad1sc10hv40hll5byksqlbfxyq")))) (native-inputs `(("automake" ,automake) ("autoconf" ,autoconf))) (build-system gnu-build-system) (arguments - `(#:phases + `(#:parallel-tests? #f + #:phases (modify-phases %standard-phases (add-after 'unpack 'autoreconf (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 59a9acd67e..d135a18bf8 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -778,35 +778,98 @@ with the Linux kernel.") ((#:phases original-phases) ;; Add libmachuser.so and libhurduser.so to libc.so's search path. ;; See . - `(alist-cons-after - 'install 'augment-libc.so - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out"))) - (substitute* (string-append out "/lib/libc.so") - (("/[^ ]+/lib/libc.so.0.3") - (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) - #t) - (alist-cons-after - 'pre-configure 'pre-configure-set-pwd - (lambda _ - ;; Use the right 'pwd'. - (substitute* "configure" - (("/bin/pwd") "pwd"))) - (alist-replace - 'build - (lambda _ - ;; Force mach/hurd/libpthread subdirs to build first in order to avoid - ;; linking errors. - ;; See - (let ((-j (list "-j" (number->string (parallel-job-count))))) - (let-syntax ((make (syntax-rules () - ((_ target) - (zero? (apply system* "make" target -j)))))) - (and (make "mach/subdir_lib") - (make "hurd/subdir_lib") - (make "libpthread/subdir_lib") - (zero? (apply system* "make" -j)))))) - ,original-phases)))) + `(modify-phases ,original-phases + ;; TODO: This is almost an exact copy of the phase of the same name + ;; in glibc/linux. The only difference is that the i686 patch is + ;; not applied here. In the next update cycle the patch moves to + ;; the patches field and this overwritten phase won't be needed any + ;; more. + (replace 'pre-configure + (lambda* (#:key inputs native-inputs outputs + #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + ;; FIXME: Normally we would look it up only in INPUTS + ;; but cross-base uses it as a native input. + (bash (or (assoc-ref inputs "static-bash") + (assoc-ref native-inputs "static-bash")))) + ;; Install the rpc data base file under `$out/etc/rpc'. + ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; + (substitute* "sunrpc/Makefile" + (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) + (string-append out "/etc/rpc" suffix "\n")) + (("^install-others =.*$") + (string-append "install-others = " out "/etc/rpc\n"))) + + (substitute* "Makeconfig" + ;; According to + ;; , + ;; linking against libgcc_s is not needed with GCC + ;; 4.7.1. + ((" -lgcc_s") "")) + + ;; Have `system' use that Bash. + (substitute* "sysdeps/posix/system.c" + (("#define[[:blank:]]+SHELL_PATH.*$") + (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" + bash))) + + ;; Same for `popen'. + (substitute* "libio/iopopen.c" + (("/bin/sh") + (string-append bash "/bin/sh"))) + + ;; Same for the shell used by the 'exec' functions for + ;; scripts that lack a shebang. + (substitute* (find-files "." "^paths\\.h$") + (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$") + (string-append "#define _PATH_BSHELL \"" + bash "/bin/sh\"\n"))) + + ;; Nscd uses __DATE__ and __TIME__ to create a string to + ;; make sure the client and server come from the same + ;; libc. Use something deterministic instead. + (substitute* "nscd/nscd_stat.c" + (("static const char compilation\\[21\\] =.*$") + (string-append + "static const char compilation[21] = \"" + (string-take (basename out) 20) "\";\n"))) + + ;; Make sure we don't retain a reference to the + ;; bootstrap Perl. + (substitute* "malloc/mtrace.pl" + (("^#!.*") + ;; The shebang can be omitted, because there's the + ;; "bilingual" eval/exec magic at the top of the file. + "") + (("exec @PERL@") + "exec perl"))))) + (add-after 'install 'augment-libc.so + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/libc.so") + (("/[^ ]+/lib/libc.so.0.3") + (string-append out "/lib/libc.so.0.3" " libmachuser.so" " libhurduser.so")))) + #t)) + (add-after 'pre-configure 'pre-configure-set-pwd + (lambda _ + ;; Use the right 'pwd'. + (substitute* "configure" + (("/bin/pwd") "pwd")) + #t)) + (replace 'build + (lambda _ + ;; Force mach/hurd/libpthread subdirs to build first in order to avoid + ;; linking errors. + ;; See + (let ((-j (list "-j" (number->string (parallel-job-count))))) + (let-syntax ((make (syntax-rules () + ((_ target) + (zero? (apply system* "make" target -j)))))) + (and (make "mach/subdir_lib") + (make "hurd/subdir_lib") + (make "libpthread/subdir_lib") + (zero? (apply system* "make" -j))))))))) ((#:configure-flags original-configure-flags) `(append (list "--host=i586-pc-gnu" diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm index ab5da5ffc5..136f141d8b 100644 --- a/gnu/packages/benchmark.scm +++ b/gnu/packages/benchmark.scm @@ -30,7 +30,7 @@ (define-public fio (package (name "fio") - (version "2.19") + (version "2.20") (source (origin (method url-fetch) (uri (string-append @@ -38,7 +38,7 @@ "fio-" version ".tar.bz2")) (sha256 (base32 - "0dwx2dpbsg3xyd8jzm64gazy6ij4zirlfdrbgcxr1a0z5smcmcw1")))) + "15vgbzlcjd21bi9ahlbs8h9ca4raw5qgi711n802qmagjdjbmlxw")))) (build-system gnu-build-system) (arguments '(#:test-target "test" @@ -78,8 +78,8 @@ (dst (string-append newbin "/" file))) (link src dst) (delete-file src))) - '("fio2gnuplot" "fio_latency2csv.py" - "fiologparser_hist.py" "fiologparser.py")) + '("fio2gnuplot" "fiologparser_hist.py" + "fiologparser.py")) ;; Make sure numpy et.al is found. (wrap-program (string-append newbin "/fiologparser_hist.py") `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 9f5d8141d8..9b4afbfcfb 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -614,7 +614,7 @@ Python.") (define-public python-biom-format (package (name "python-biom-format") - (version "2.1.5") + (version "2.1.6") (source (origin (method url-fetch) @@ -625,14 +625,15 @@ Python.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1n25w3p1rixbpac8iysmzcja6m4ip5r6sz19l8y6wlwi49hxn278")))) + "08cr7wpahk6zb31h4bs7jmzpvxcqv9s13xz40h6y2h656jvdvnpj")))) (build-system python-build-system) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) ("python-future" ,python-future) ("python-click" ,python-click) - ("python-h5py" ,python-h5py))) + ("python-h5py" ,python-h5py) + ("python-pandas" ,python-pandas))) (native-inputs `(("python-nose" ,python-nose))) (home-page "http://www.biom-format.org") @@ -2092,7 +2093,7 @@ identify enrichments with functional annotations of the genome.") (define-public diamond (package (name "diamond") - (version "0.8.38") + (version "0.9.0") (source (origin (method url-fetch) (uri (string-append @@ -2101,7 +2102,7 @@ identify enrichments with functional annotations of the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0q2z6z5f7c0kbbzpjamkcyqg0rc6h5rxfp97qbmb0wxaycr7jajq")))) + "19lvz661mmgikbry0nvnsjc01fdxqbw9rl2868dvjfraxbcx9ras")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target @@ -2121,8 +2122,7 @@ translated DNA query sequences against a protein reference database (BLASTP and BLASTX alignment mode). The speedup over BLAST is up to 20,000 on short reads at a typical sensitivity of 90-99% relative to BLAST depending on the data and settings.") - (license (license:non-copyleft "file://src/COPYING" - "See src/COPYING in the distribution.")))) + (license license:agpl3+))) (define-public discrover (package @@ -2417,7 +2417,7 @@ similarity of community members.") (define-public fasttree (package (name "fasttree") - (version "2.1.9") + (version "2.1.10") (source (origin (method url-fetch) (uri (string-append @@ -2425,7 +2425,7 @@ similarity of community members.") version ".c")) (sha256 (base32 - "0ljvvw8i1als1wbfzvrf15c3ii2vw9db20a259g6pzg34xyyb97k")))) + "0vcjdvy1j4m702vmak4svbfkrpcw63k7wymfksjp9a982zy8kjsl")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target @@ -2551,7 +2551,7 @@ Illumina, Roche 454, and the SOLiD platform.") (define-public fraggenescan (package (name "fraggenescan") - (version "1.20") + (version "1.30") (source (origin (method url-fetch) @@ -2559,7 +2559,7 @@ Illumina, Roche 454, and the SOLiD platform.") (string-append "mirror://sourceforge/fraggenescan/" "FragGeneScan" version ".tar.gz")) (sha256 - (base32 "1zzigqmvqvjyqv4945kv6nc5ah2xxm1nxgrlsnbzav3f5c0n0pyj")))) + (base32 "158dcnwczgcyhwm4qlx19sanrwgdpzf6bn2y57mbpx55lkgz1mzj")))) (build-system gnu-build-system) (arguments `(#:phases @@ -2574,6 +2574,7 @@ Illumina, Roche 454, and the SOLiD platform.") (string-append "system(\"" (which "rm"))) (("system\\(\"mv") (string-append "system(\"" (which "mv"))) + (("\\\"awk") (string-append "\"" (which "awk"))) ;; This script and other programs expect the training files ;; to be in the non-standard location bin/train/XXX. Change ;; this to be share/fraggenescan/train/XXX instead. @@ -2583,10 +2584,7 @@ Illumina, Roche 454, and the SOLiD platform.") "train/\".$FGS_train_file;"))) (substitute* "run_hmm.c" (("^ strcat\\(train_dir, \\\"train/\\\"\\);") - (string-append " strcpy(train_dir, \"" share "/train/\");"))) - (substitute* "post_process.pl" - (("^my \\$dir = substr.*") - (string-append "my $dir = \"" share "\";")))) + (string-append " strcpy(train_dir, \"" share "/train/\");")))) #t)) (replace 'build (lambda _ (and (zero? (system* "make" "clean")) @@ -2598,8 +2596,6 @@ Illumina, Roche 454, and the SOLiD platform.") (share (string-append out "/share/fraggenescan/train"))) (install-file "run_FragGeneScan.pl" bin) (install-file "FragGeneScan" bin) - (install-file "FGS_gff.py" bin) - (install-file "post_process.pl" bin) (copy-recursively "train" share)))) (delete 'check) (add-after 'install 'post-install-check @@ -2607,8 +2603,9 @@ Illumina, Roche 454, and the SOLiD platform.") ;; output files gets created. (lambda* (#:key outputs #:allow-other-keys) (let* ((out (string-append (assoc-ref outputs "out"))) - (bin (string-append out "/bin/"))) - (and (zero? (system* (string-append bin "run_FragGeneScan.pl") + (bin (string-append out "/bin/")) + (frag (string-append bin "run_FragGeneScan.pl"))) + (and (zero? (system* frag ; Test complete genome. "-genome=./example/NC_000913.fna" "-out=./test2" "-complete=1" @@ -2616,7 +2613,13 @@ Illumina, Roche 454, and the SOLiD platform.") (file-exists? "test2.faa") (file-exists? "test2.ffn") (file-exists? "test2.gff") - (file-exists? "test2.out")))))))) + (file-exists? "test2.out") + (zero? (system* ; Test incomplete sequences. + frag + "-genome=./example/NC_000913-fgs.ffn" + "-out=out" + "-complete=0" + "-train=454_30"))))))))) (inputs `(("perl" ,perl) ("python" ,python-2))) ;not compatible with python 3. @@ -2696,6 +2699,46 @@ comment or quality sections.") (supported-systems '("x86_64-linux")) (license license:expat)))) +(define-public gemma + (package + (name "gemma") + (version "0.96") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/xiangzhou/GEMMA/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "055ynn16gd12pf78n4vr2a9jlwsbwzajpdnf2y2yilg1krfff222")))) + (inputs + `(("gsl" ,gsl) + ("lapack" ,lapack) + ("zlib" ,zlib))) + (build-system gnu-build-system) + (arguments + `(#:make-flags '("FORCE_DYNAMIC=1") ; use shared libs + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'bin-mkdir + (lambda _ + (mkdir-p "bin"))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "bin/gemma" + (string-append + out "/bin")))))) + #:tests? #f)) ; no tests included yet + (home-page "https://github.com/xiangzhou/GEMMA") + (synopsis "Tool for genome-wide efficient mixed model association") + (description + "Genome-wide Efficient Mixed Model Association (GEMMA) provides a +standard linear mixed model resolver with application in genome-wide +association studies (GWAS).") + (license license:gpl3))) + (define-public grit (package (name "grit") @@ -4054,7 +4097,7 @@ partial genes, and identifies translation initiation sites.") (define-public roary (package (name "roary") - (version "3.7.0") + (version "3.8.2") (source (origin (method url-fetch) @@ -4063,7 +4106,7 @@ partial genes, and identifies translation initiation sites.") version ".tar.gz")) (sha256 (base32 - "0x2hpb3nfsc6x2nq1788w0fhqfzc7cn2dp4xwyva9m3k6xlz0m43")))) + "03dfr2cd5fp80bcr65923zpdzrasvcxl7c2vgh8373v25a1yfap7")))) (build-system perl-build-system) (arguments `(#:phases @@ -5396,18 +5439,13 @@ Cuffdiff or Ballgown programs.") (define-public taxtastic (package (name "taxtastic") - (version "0.5.7") - ;; Versions after 0.5.4 do not appear to be distributed on PyPI so we - ;; download the package from GitHub. + (version "0.6.4") (source (origin (method url-fetch) - (uri (string-append - "https://github.com/fhcrc/taxtastic/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (pypi-uri "taxtastic" version)) (sha256 (base32 - "1s0h5y1lds1c40jhir5585ffm6yjyn8h5aqimpgv64rhqhfv56xx")))) + "0s79z8kfl853x7l4h8ms05k31q87aw62nrchlk20w9n227j35929")))) (build-system python-build-system) (arguments `(#:python ,python-2 @@ -7904,14 +7942,14 @@ library implementing most of the pipeline's features.") (define-public r-mutationalpatterns (package (name "r-mutationalpatterns") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) (uri (bioconductor-uri "MutationalPatterns" version)) (sha256 (base32 - "00jh1qklj8jb9j7mwvkfybq368h2wg9yc2cwkgb7yb9vsw72r61d")))) + "1s50diwh1j6vg3mgahh6bczvq74mfdbmwjrad4d5lh723gnc5pjg")))) (build-system r-build-system) (propagated-inputs `(("r-biocgenerics" ,r-biocgenerics) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 1fb552de15..7937c67781 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -88,7 +88,9 @@ and BOOTP/TFTP for network booting of diskless machines.") ;; Source files only say GPL2 and GPL3 are allowed. (license (list license:gpl2 license:gpl3)))) -(define-public bind +;; 'bind' is the name of a built-in Guile procedure, which is why we choose a +;; different name here. +(define-public isc-bind (package (name "bind") (version "9.11.1") diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index 0a53e6ca99..1d64e9b69f 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015, 2016 Andreas Enge ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016, 2017 Alex Griffin +;;; Copyright © 2017 Brendan Tildesley ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,7 +20,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages ebook) - #:use-module ((guix licenses) #:select (gpl3 lgpl2.1+)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -27,8 +28,10 @@ #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages databases) + #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gnome) #:use-module (gnu packages glib) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) @@ -38,6 +41,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages qt) #:use-module (gnu packages tls) + #:use-module (gnu packages web) #:use-module (gnu packages xorg)) (define-public chmlib @@ -56,12 +60,12 @@ (home-page "http://www.jedrea.com/chmlib/") (synopsis "Library for CHM files") (description "CHMLIB is a library for dealing with ITSS/CHM format files.") - (license lgpl2.1+))) + (license license:lgpl2.1+))) (define-public calibre (package (name "calibre") - (version "2.76.0") + (version "2.85.1") (source (origin (method url-fetch) @@ -70,33 +74,35 @@ version ".tar.xz")) (sha256 (base32 - "1xfm586n6gm44mkyn25mbiyhj6w9ji9yl6fvmnr4zk1q6qcga3v8")) + "1g8s0kp1gj05yysfgqpp2lgrxvzc0fsny1hwzx5jh9hvqn0b53cc")) ;; Remove non-free or doubtful code, see ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html (modules '((guix build utils))) (snippet '(begin + (delete-file-recursively "src/calibre/ebooks/markdown") (delete-file-recursively "src/unrar") - (delete-file "src/odf/thumbnail.py"))) + (delete-file "src/odf/thumbnail.py") + (delete-file-recursively "resources/fonts/liberation") + (delete-file-recursively "src/chardet") + (substitute* (find-files "." "\\.py") + (("calibre\\.ebooks\\.markdown") "markdown")) + #t)) (patches (search-patches "calibre-drop-unrar.patch" + "calibre-use-packaged-feedparser.patch" + "calibre-dont-load-remote-icons.patch" "calibre-no-updates-dialog.patch")))) (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) + ("font-liberation" ,font-liberation) ("qtbase" ,qtbase) ; for qmake ;; xdg-utils is supposed to be used for desktop integration, but it ;; also creates lots of messages ;; mkdir: cannot create directory '/homeless-shelter': Permission denied + ("python2-flake8" ,python2-flake8) ("xdg-utils" ,xdg-utils))) - ;; FIXME: The following are missing inputs according to the documentation, - ;; but the package can apparently be used without them, - ;; They may need to be added if a deficiency is detected. - ;; BeautifulSoup >= 3.0.5 - ;; dnspython >= 1.6.0 - ;; poppler >= 0.20.2 - ;; libwmf >= 0.2.8 - ;; psutil >= 0.6.1 - ;; python-pygments >= 2.0.1 ; used for ebook editing + ;; Beautifulsoup3 is bundled but obsolete and not packaged, so just leave it bundled. (inputs `(("chmlib" ,chmlib) ("fontconfig" ,fontconfig) @@ -108,16 +114,22 @@ ("libxrender" ,libxrender) ("openssl" ,openssl) ("podofo" ,podofo) + ("poppler" ,poppler) ("python" ,python-2) ("python2-apsw" ,python2-apsw) + ("python2-chardet" ,python2-chardet) ("python2-cssselect" ,python2-cssselect) ("python2-cssutils" ,python2-cssutils) ("python2-dateutil" ,python2-dateutil) ("python2-dbus" ,python2-dbus) + ("python2-dnspython" ,python2-dnspython) + ("python2-feedparser" ,python2-feedparser) ("python2-lxml" ,python2-lxml) + ("python2-markdown" ,python2-markdown) ("python2-mechanize" ,python2-mechanize) ("python2-netifaces" ,python2-netifaces) ("python2-pillow" ,python2-pillow) + ("python2-pygments" ,python2-pygments) ("python2-pyqt" ,python2-pyqt) ("python2-sip" ,python2-sip) ("sqlite" ,sqlite))) @@ -130,6 +142,12 @@ #:use-setuptools? #f #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda _ + (substitute* "src/calibre/linux.py" + ;; We can't use the uninstaller in Guix. Don't build it. + (("self\\.create_uninstaller()") "")) + #t)) (add-before 'build 'configure (lambda* (#:key inputs #:allow-other-keys) (let ((podofo (assoc-ref inputs "podofo")) @@ -137,7 +155,17 @@ (substitute* "setup/build_environment.py" (("sys.prefix") (string-append "'" pyqt "'"))) (setenv "PODOFO_INC_DIR" (string-append podofo "/include/podofo")) - (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib")))))))) + (setenv "PODOFO_LIB_DIR" (string-append podofo "/lib"))))) + (add-after 'install 'install-font-liberation + (lambda* (#:key inputs outputs #:allow-other-keys) + (for-each (lambda (file) + (install-file file (string-append + (assoc-ref outputs "out") + "/share/calibre/fonts/liberation"))) + (find-files (string-append + (assoc-ref inputs "font-liberation") + "/share/fonts/truetype"))) + #t))))) (home-page "http://calibre-ebook.com/") (synopsis "E-book library management software") (description "Calibre is an ebook library manager. It can view, convert @@ -145,4 +173,16 @@ and catalog ebooks in most of the major ebook formats. It can also talk to many ebook reader devices. It can go out to the Internet and fetch metadata for books. It can download newspapers and convert them into ebooks for convenient reading.") - (license gpl3))) ; some files are under various other licenses, see COPYRIGHT + ;; Calibre is largely GPL3+, but includes a number of components covered + ;; by other licenses. See COPYRIGHT for more details. + (license (list license:gpl3+ + license:gpl2+ + license:lgpl2.1+ + license:lgpl2.1 + license:bsd-3 + license:expat + license:zpl2.1 + license:asl2.0 + license:public-domain + license:silofl1.1 + license:cc-by-sa3.0)))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3d9e83713e..4a0d20c9f1 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1156,14 +1156,14 @@ rather than the contents of files.") (define-public emacs-async (package (name "emacs-async") - (version "1.9") + (version "1.9.2") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/async-" version ".tar")) (sha256 (base32 - "1ip5nc8xyln5szvqwp6wqva9xr84pn8ssn3nnphrszr19y4js2bm")))) + "17fnvrj7jww29sav6a6jpizclg4w2962m6h37akpii71gf0vrffw")))) (build-system emacs-build-system) (home-page "https://elpa.gnu.org/packages/async.html") (synopsis "Asynchronous processing in Emacs") @@ -3361,7 +3361,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (define-public emacs-helm (package (name "emacs-helm") - (version "1.9.8") + (version "2.7.0") (source (origin (method url-fetch) (uri (string-append @@ -3370,7 +3370,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "019dpzr6l83k1fgxn40aqxjvrpz4dl5d9vi7fc5wjnifmxaqxia6")))) + "1scdirpclgq3pi1j2c90gqaaqg1pgvasp98f4jqw8c5xbqcr7jdw")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-async" ,emacs-async) @@ -3387,6 +3387,55 @@ considered to be its successor. Helm sets out to clean up the legacy code in not tied in the trap of backward compatibility.") (license license:gpl3+))) +(define-public emacs-helm-swoop + (package + (name "emacs-helm-swoop") + (version "1.7.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ShingoFukuyama/helm-swoop/archive/" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1z34pfi0gsk054pxr906ilaalaw0xz3s536163gf9ykkwmc2356d")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm))) + (home-page "https://github.com/ShingoFukuyama/helm-swoop") + (synopsis "Filter and jump to lines in an Emacs buffer using Helm") + (description + "This package builds on the Helm interface to provide several commands +for search-based navigation of buffers.") + (license license:gpl2+))) + +(define-public emacs-helm-projectile + (package + (name "emacs-helm-projectile") + (version "0.14.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/bbatsov/helm-projectile/archive/v" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19cfmilqh8kbab3b2hmx6lyrj73q6vfmn3p730x95g23iz16mnd5")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-dash" ,emacs-dash) + ("emacs-helm" ,emacs-helm) + ("emacs-projectile" ,emacs-projectile))) + (home-page "https://github.com/bbatsov/helm-projectile") + (synopsis "Helm integration for Projectile") + (description + "This Emacs library provides a Helm interface for Projectile.") + (license license:gpl3+))) + (define-public emacs-cider (package (name "emacs-cider") @@ -3579,14 +3628,14 @@ passive voice.") (define-public emacs-org (package (name "emacs-org") - (version "20170502") + (version "20170515") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "12inz804j55ycprb2m3ay54d1bhwhjssmn5nrfm7cfklyhfsy27s")))) + "0lfapcxil69x1a63cszgq72lqks1z3gpyxw7vcllqlgi7n7a4y6f")))) (build-system emacs-build-system) (home-page "http://orgmode.org/") (synopsis "Outline-based notes management and organizer") @@ -4145,7 +4194,7 @@ jQuery and Bootstrap resources included via osscdn.") (define-public emacspeak (package (name "emacspeak") - (version "45.0") + (version "46.0") (source (origin (method url-fetch) @@ -4154,7 +4203,11 @@ jQuery and Bootstrap resources included via osscdn.") version "/emacspeak-" version ".tar.bz2")) (sha256 (base32 - "0npcr867xbbhwa0i7v26hnk4z2d51522jwcfwc594j74kbv3g6ka")))) + "15x4yfp3wl2fxm1nkx6pz3clw6zyw3argcsqxgcx6pa28sivlg2n")) + (modules '((guix build utils))) + (snippet + ;; Delete the bundled byte-compiled elisp files. + '(for-each delete-file (find-files "lisp" "\\.elc$"))))) (build-system gnu-build-system) (arguments '(#:make-flags (list (string-append "prefix=" @@ -4162,25 +4215,35 @@ jQuery and Bootstrap resources included via osscdn.") #:phases (modify-phases %standard-phases (replace 'configure - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("\\$\\(INSTALL\\) -d \\$\\(libdir\\)/servers/linux-outloud") - "") - (("\\$\\(INSTALL\\) -m 755 \\$\\{OUTLOUD\\}.*$") "") - (("\\*info\\*") "*")) - (substitute* "etc/emacspeak.sh.def" - (("") - (string-append (assoc-ref outputs "out") - "/share/emacs/site-lisp/emacspeak/lisp"))) + (lambda _ + ;; Configure Emacspeak according to etc/install.org. (zero? (system* "make" "config")))) - (add-after 'install 'install-espeak-server + (add-after 'build 'build-espeak + (lambda _ + (zero? (system* "make" "espeak")))) + (replace 'install (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (with-directory-excursion "servers/linux-espeak" - (and (zero? (system* "make")) - (zero? (system* "make" "install" - (string-append "PREFIX=" out)))))))) - (add-after 'install-espeak-server 'wrap-program + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (lisp (string-append out "/share/emacs/site-lisp/emacspeak")) + (info (string-append out "/share/info"))) + ;; According to etc/install.org, the Emacspeak directory should + ;; be copied to its installation destination. + (for-each + (lambda (file) + (copy-recursively file (string-append lisp "/" file))) + '("etc" "info" "lisp" "media" "servers" "sounds" "stumpwm" + "xsl")) + ;; Make sure emacspeak is loaded from the correct directory. + (substitute* "etc/emacspeak.sh" + (("exec emacs.*$") + (string-append "exec emacs -l " lisp + "/lisp/emacspeak-setup.el $CL_ALL"))) + ;; Install the convenient startup script. + (mkdir-p bin) + (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak"))) + #t)) + (add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (emacspeak (string-append out "/bin/emacspeak")) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 362860e17d..7ad93653e9 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -108,7 +108,8 @@ `(("boost" ,boost) ("muparser" ,muparser) ("freetype" ,freetype) - ("qt" ,qt))) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) (native-inputs `(("pkg-config" ,pkg-config) ("which" ,which))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3517f06acf..fc1e3dcf37 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1059,14 +1059,14 @@ reference interpreter, using the Glk API.") (define-public fizmo (package (name "fizmo") - (version "0.7.9") + (version "0.8.4") (source (origin (method url-fetch) (uri (string-append "https://christoph-ender.de/fizmo/source/" name "-" version ".tar.gz")) (sha256 (base32 - "1w7cgyjrhgkadjrazijzhq7zh0pl5bfc6wl7mdpgh020y4kp46d7")))) + "1sd988db2302r7cbfcfghbmg8ck43c6hvnlnlpb0rqxb7pm9cwyy")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1079,12 +1079,13 @@ reference interpreter, using the Glk API.") (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("libjpeg" ,libjpeg) + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libsndfile" ,libsndfile) ("libxml2" ,libxml2) ("ncurses" ,ncurses) - ("sdl" ,sdl))) + ("sdl2" ,sdl2))) (home-page "https://christoph-ender.de/fizmo/") (synopsis "Z-machine interpreter") (description @@ -1410,14 +1411,14 @@ older games.") (define-public gamine (package (name "gamine") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gamine-game/" "gamine-" version ".tar.gz")) (sha256 (base32 - "1iny959i1kl2ab6z5xi4s66mrvrwcarxyvjfp2k1sx532s8knk8h")))) + "08wnk7w84c2413hwny89j2cn89cvfdf67bfc6wl0bf475if0mf4h")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1490,7 +1491,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.7.3.4") + (version "1.7.5.14") (source (origin (method url-fetch) (uri (string-append @@ -1498,7 +1499,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "0mbxzsgjg16pqa3jnxkd7wwvw1lrx455r7fvwjfhzp0yv7acrn10")))) + "1b5q79jkdrck5lq8lvhnpq2mly257r8lylp7b8sp8xn4365f86ch")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1512,7 +1513,6 @@ is programmed in Haskell.") ("curl" ,curl) ("libxml2" ,libxml2) ("mesa" ,mesa) - ("physfs" ,physfs) ("sdl-union" ,(sdl-union)))) (home-page "http://manaplus.org") (synopsis "Client for 'The Mana World' and similar games") @@ -2160,14 +2160,14 @@ and a game metadata scraper.") (define openttd-engine (package (name "openttd-engine") - (version "1.6.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append "http://binaries.openttd.org/releases/" version "/openttd-" version "-source.tar.xz")) (sha256 (base32 - "1ak32fj5xkk2fvmm3g8i7wzmk4bh2ijsp8fzvvw5wj6365p9j24v")) + "1q4r5860dpkkw4fpfz3f8mvdd8xjpnwwzr9zybgmgb255bs0g4yz")) (modules '((guix build utils))) (snippet ;; The DOS port contains proprietary software. @@ -2207,8 +2207,8 @@ and a game metadata scraper.") passengers by land, water and air. It is a re-implementation of Transport Tycoon Deluxe with many enhancements including multiplayer mode, internationalization support, conditional orders and the ability to clone, -autoreplace and autoupdate vehicles. This package only includes the game engine. When you start -it you will be prompted to download a graphics set.") +autoreplace and autoupdate vehicles. This package only includes the game +engine. When you start it you will be prompted to download a graphics set.") (home-page "http://openttd.org/") ;; This package is GPLv2, except for a few files located in ;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 4e8736cd71..1cb651c96b 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -132,6 +132,7 @@ printing, and psresize, for adjusting page sizes.") (name "ghostscript") (replacement ghostscript/fixed) (version "9.14.0") + ;; XXX Try removing the bundled copy of jbig2dec. (source (origin (method url-fetch) (uri (string-append "mirror://gnu/ghostscript/gnu-ghostscript-" diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 81c747ce14..d53d15894f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -51,6 +51,7 @@ #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages admin) + #:use-module (gnu packages aspell) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) #:use-module (gnu packages base) @@ -6130,3 +6131,56 @@ accessibility infrastructure.") via speech and refreshable braille. Orca works with applications and toolkits that support the Assistive Technology Service Provider Interface (AT-SPI).") (license license:lgpl2.1+))) + +(define-public gspell + (package + (name "gspell") + (version "1.3.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1n4kd5i11l79h8bpvx3cz79ww0b4z89y99h4czvyg80qlarn585w")) + (patches (search-patches "gspell-dash-test.patch")))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-before 'check 'pre-check + (lambda* (#:key inputs #:allow-other-keys) + ;; Tests require a running X server. + (system "Xvfb :1 &") + (setenv "DISPLAY" ":1") + + ;; For the missing /etc/machine-id. + (setenv "DBUS_FATAL_WARNINGS" "0") + + ;; Allow Enchant and its Aspell backend to find the en_US + ;; dictionary. + (setenv "ASPELL_DICT_DIR" + (string-append (assoc-ref inputs "aspell-dict-en") + "/lib/aspell")) + #t))))) + (inputs + `(("enchant" ,enchant) + ("iso-codes" ,iso-codes) + ("gtk+" ,gtk+) + ("glib" ,glib))) + (native-inputs + `(("glib" ,glib "bin") + ("pkg-config" ,pkg-config) + ("xmllint" ,libxml2) + + ;; For tests. + ("xorg-server" ,xorg-server) + ("aspell-dict-en" ,aspell-dict-en))) + (home-page "https://wiki.gnome.org/Projects/gspell") + (synopsis "GNOME's alternative spell checker") + (description + "gspell provides a flexible API to add spell-checking to a GTK+ +application. It provides a GObject API, spell-checking to text entries and +text views, and buttons to choose the language.") + (license license:gpl2+))) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 3edb157704..440e7d550f 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -192,16 +192,14 @@ specifications are building blocks of S/MIME and TLS.") (define-public npth (package (name "npth") - (version "1.3") + (version "1.4") (source (origin (method url-fetch) - (uri (string-append - "mirror://gnupg/npth/npth-" - version ".tar.bz2")) + (uri (string-append "mirror://gnupg/npth/npth-" version ".tar.bz2")) (sha256 (base32 - "0am86vblapwz84254qpmhz0chk70g6qzh3wdxcs0gvba8d01ka5w")))) + "1wpijvxg5svj893q9vp5r83d9ipwhpbyphb55m89l5m36qc185c9")))) (build-system gnu-build-system) (home-page "https://www.gnupg.org") (synopsis "Non-preemptive thread library") @@ -217,14 +215,14 @@ compatible to GNU Pth.") (define-public gnupg (package (name "gnupg") - (version "2.1.20") + (version "2.1.21") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/gnupg/gnupg-" version ".tar.bz2")) (sha256 (base32 - "03cnd6gz8f4lf69inskssw57idrswcdimhccdyglmrlv6rlrmkr4")))) + "1p97limv29p01y79mgnzpwixa50lv53wgdl3ymk9idkmpaldisks")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index 9f465b1022..3e96520054 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015, 2016 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017 Clément Lassieur +;;; Copyright © 2017 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,6 +26,7 @@ #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix build-system ant) #:use-module (guix build-system gnu)) (define-public icu4c @@ -75,3 +77,30 @@ C/C++ part.") (patches (search-patches "icu4c-CVE-2017-7867-CVE-2017-7868.patch" "icu4c-reset-keyword-list-iterator.patch")))))) + +(define-public java-icu4j + (package + (name "java-icu4j") + (version "59.1") + (source (origin + (method url-fetch) + (uri (string-append "http://download.icu-project.org/files/icu4j/" + version "/icu4j-" + (string-map (lambda (x) + (if (char=? x #\.) #\_ x)) + version) + "-src.jar")) + (sha256 + (base32 + "0bgxsvgi0qcwj60pvcxrf7a3fbk7aksyxnfwpbzavyfrfzixqh0c")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "icu4j.jar")) + (home-page "http://site.icu-project.org/") + (synopsis "International Components for Unicode") + (description + "ICU is a set of C/C++ and Java libraries providing Unicode and +globalisation support for software applications. This package contains the +Java part.") + (license x11))) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm new file mode 100644 index 0000000000..1753b926c6 --- /dev/null +++ b/gnu/packages/image-processing.scm @@ -0,0 +1,130 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 John Darrington +;;; Copyright © 2017 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages image-processing) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages documentation) + #:use-module (gnu packages gnome) + #:use-module (gnu packages graphics) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages image) + #:use-module (gnu packages maths) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages xml) + #:use-module (gnu packages vtk)) + +;; We use the latest snapshot of this package because the latest release is +;; from 2011 and has known vulnerabilities that cannot easily be fixed by +;; applying patches. +(define-public dcmtk + (package + (name "dcmtk") + (version "3.6.1_20170228") + (source (origin + (method url-fetch) + (uri (string-append "ftp://dicom.offis.de/pub/dicom/offis/" + "software/dcmtk/snapshot/dcmtk-" + version ".tar.gz")) + (sha256 + (base32 + "04cwfx8yrscqcd59mxk2fh6314ckayi9cp68iql5a57pf2pg5qld")))) + (build-system gnu-build-system) + (inputs + `(("libtiff" ,libtiff) + ("libpng" ,libpng) + ("doxygen" ,doxygen) + ("zlib" ,zlib))) + (native-inputs + `(("perl" ,perl))) + (home-page "http://dcmtk.org") + (synopsis "Libraries and programs implementing parts of the DICOM standard") + (description "DCMTK is a collection of libraries and applications +implementing large parts the DICOM standard. It includes software for +examining, constructing and converting DICOM image files, handling offline +media, sending and receiving images over a network connection, as well as +demonstrative image storage and worklist servers.") + (license (license:fsf-free + "file://COPYRIGHT" + "A union of the Apache 2.0 licence and various non-copyleft +licences similar to the Modified BSD licence.")))) + +(define-public mia + (package + (name "mia") + (version "2.4.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/mia/mia/" + (version-major+minor version) + "/mia-" version ".tar.xz")) + (sha256 + (base32 + "124gvf8nkls59mlnx8ynq00n9zrah7a54gsywafx7qmfr0y95ra7")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DMIA_CREATE_NIPYPE_INTERFACES=0" + (string-append "-DCMAKE_INSTALL_LIBDIR=" + (assoc-ref %outputs "out") "/lib") + "-DCMAKE_CXX_FLAGS=-fpermissive"))) + (inputs + `(("boost" ,boost) + ("dcmtk" ,dcmtk) + ("doxygen" ,doxygen) + ("eigen" ,eigen) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("gsl" ,gsl) + ("gts" ,gts) + ("hdf5" ,hdf5) + ("itpp" ,itpp) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("libxml" ,libxml2) + ("libxml++" ,libxml++) + ("maxflow" ,maxflow) + ("niftilib" ,niftilib) + ("nlopt" ,nlopt) + ("openexr" ,openexr) + ("python-lxml" ,python2-lxml) + ("vtk" ,vtk))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python-2))) + (home-page "http://mia.sourceforge.net") + (synopsis "Toolkit for gray scale medical image analysis") + (description "MIA provides a combination of command line tools, plug-ins, +and libraries that make it possible run image processing tasks interactively +in a command shell and to prototype using the shell's scripting language. It +is built around a plug-in structure that makes it easy to add functionality +without compromising the original code base and it makes use of a wide variety +of external libraries that provide additional functionality.") + (license license:gpl3+))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index de8043d236..86902d5680 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -509,7 +509,10 @@ arithmetic ops.") (sha256 (base32 "04akiwab8iy5iy34razcvh9mcja9wy737civ3sbjxk4j143s1b2s")) (patches (search-patches "jbig2dec-ignore-testtest.patch" - "jbig2dec-CVE-2016-9601.patch")))) + "jbig2dec-CVE-2016-9601.patch" + "jbig2dec-CVE-2017-7885.patch" + "jbig2dec-CVE-2017-7975.patch" + "jbig2dec-CVE-2017-7976.patch")))) (build-system gnu-build-system) (synopsis "Decoder of the JBIG2 image compression format") diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 48902bbfd0..bde3ebe402 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -46,14 +46,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.8-4") + (version "6.9.8-6") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "04fb0x8zc9z11127wsnxlzg0jcgs4xwlx8fxy4jac2y3mmmlzhm6")))) + "1sxg2wx3nrzbymh5wcqiv1x401nrz95xkrqgk3x446vx8lq7ln6w")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 13e261438d..e86c904e71 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages ghostscript) ;lcms #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) ;alsa #:use-module (gnu packages wget) @@ -340,12 +341,12 @@ build process and its dependencies, whereas Make uses Makefile format.") (license license:asl2.0))) (define-public icedtea-7 - (let* ((version "2.6.9") + (let* ((version "2.6.10") (drop (lambda (name hash) (origin (method url-fetch) (uri (string-append - "http://icedtea.classpath.org/download/drops/" + "http://icedtea.classpath.org/download/drops" "/icedtea7/" version "/" name ".tar.bz2")) (sha256 (base32 hash)))))) (package @@ -358,7 +359,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "1slmajiakq7sk137vgqq9c93r5s620a46lw2jwbnzxhysjw3wkwf")) + "0am945k2zqrka2xn7lb5grmkad4lwncnhnwk8iq6f269birzsj8w")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -769,25 +770,25 @@ build process and its dependencies, whereas Make uses Makefile format.") (native-inputs `(("openjdk-src" ,(drop "openjdk" - "08a4d1sg5m9l99lc7gafc7dmzmf4d8jvij5pffxv8rf6pk7psk24")) + "02klsxp9hlf5sial6mxpiq53hmrhlrg6x774j7bjjfhb7hpdvadh")) ("corba-drop" ,(drop "corba" - "12br49cfrqgvms0bnaij7fvnakvb6q8dlpqja64rg5q5r3x4gps8")) + "1vbly6khri241xda05gnwkpf2fk41d96ls96ximi084mx0a3w5rd")) ("jaxp-drop" ,(drop "jaxp" - "07v2y3pll6z2wma94qilgffwyn2n4jna01mrhqwkb27whfpjfkmz")) + "0s8zln64vdwdxwlw1vpfzm8xbpyhgsv3nqjmnv7y36qpsszg27a5")) ("jaxws-drop" ,(drop "jaxws" - "18rw64jjpq14v56d0q1xvz8knl0kf02rcday7fvlaxrbbj19km55")) + "0myd66bv8ib8krzgqv754bc564rd8xwpwabvf7my1apyb86vap3n")) ("jdk-drop" ,(drop "jdk" - "1ig7xipi3vzm6cphy5fdraxi72p27xsg2qb51yqx9qwsmlrv1zj4")) + "10b4lfv10vba07zblw0wii7mhrfhf32pf7410x5nz2q0smgszl2h")) ("langtools-drop" ,(drop "langtools" - "0sn9qv9nnhaan2smbhrv54lfhwsjhgd3b3h736p5d2hzpw8kicry")) + "0lvncxb5qzrlqkflrnd0l8vwy155cwj1jb07rkq10z2vx0bq7lq2")) ("hotspot-drop" ,(drop "hotspot" - "16ijxy8br8dla339m4i90wr9xpf7s8z3nrhfyxm7jahr8injpzyl")) + "0q6mdgbbd3681y3n0z1v783irdjhhi73z6sn5csczpyhjm318axb")) ("ant" ,ant) ("attr" ,attr) ("autoconf" ,autoconf) @@ -839,16 +840,16 @@ IcedTea build harness.") (license license:gpl2+)))) (define-public icedtea-8 - (let* ((version "3.3.0") + (let* ((version "3.4.0") (drop (lambda (name hash) (origin (method url-fetch) (uri (string-append - "http://icedtea.classpath.org/download/drops/" + "http://icedtea.classpath.org/download/drops" "/icedtea8/" version "/" name ".tar.xz")) (sha256 (base32 hash)))))) (package (inherit icedtea-7) - (version "3.3.0") + (version "3.4.0") (source (origin (method url-fetch) (uri (string-append @@ -856,7 +857,7 @@ IcedTea build harness.") version ".tar.xz")) (sha256 (base32 - "02vmxa6gc6gizcri1fy797qmmm9y77vgi7gy9pwkk4agcw4zyr5p")) + "16if055973y6yw7n5gczp8iksvc31cy4p5by9lkbniadqj4z665m")) (modules '((guix build utils))) (snippet '(begin @@ -928,31 +929,34 @@ IcedTea build harness.") `(("jdk" ,icedtea-7 "jdk") ("openjdk-src" ,(drop "openjdk" - "0889n19w6rvpzxgmmk9hlgzdh9ya95qkc2ajgpnzr3h69g15nz48")) + "0va5i3zr8y8ncv914rz914jda9d88gq0viww3smdqnln8n78rszi")) + ("aarch32-drop" + ,(drop "aarch32" + "0cway5a5hcfyh4pzl9zz5xr7lil4gsliy6r5iqbaasd2d9alvqiq")) ("corba-drop" ,(drop "corba" - "0qcb72hhlsjgp6h9wd048qgyc88b7lfnxyc51xfyav0nhpfjnj8r")) + "1l9zr97a3kq00bj4i8wcdsjlz3xlfldxd8zhkcxikinwd5n0n8a7")) ("jaxp-drop" ,(drop "jaxp" - "1vyc7dw10x5k45jmi348y8min6sg651ns12zzn30fjzhpfi36nds")) + "0lqxrsr3xlpwm2na6f2rpl7znrz34dkb9dg3zjmympyjy4kqljn7")) ("jaxws-drop" ,(drop "jaxws" - "1dki6p39z1ms94cjvj5hd9q75q75g244c0xib82pma3q74jg6hx4")) + "1b3chckk10dzrpa7cswmcf1jvryaiwkj8lihfqjr5j7l668jwr4h")) ("jdk-drop" ,(drop "jdk" - "17czby3nylcglp7l3d90a4pz1izc1sslifv8hrmynm9hn4m9d3k8")) + "15lq0k2jv2x26x6vqkbljdcxk35i3b60pcsw3j1sdfmlk1xy6wgc")) ("langtools-drop" ,(drop "langtools" - "1h4azc21k58g9gn2y686wrvn9ahgac0ii7jhrrrmb5c1kjs0y2qv")) + "17xkb8ahkg04ri0bp5wblcp1a2lp8j7c83ic5zdbggvgm339k5s8")) ("hotspot-drop" ,(drop "hotspot" - "12bfgwhrjfhgj6a2dsysdwhirg0jx88pi44y7s8a1bdan1mp03r8")) + "0xpx8ykaq0ki6r0dl3dzca2xgp1p82z8mvsxcs2931ib667ncgcp")) ("nashorn-drop" ,(drop "nashorn" - "0bg9r16jffc64fhyczn4jpx7bkfw7w62prw65mh66vshqk4lbh0f")) + "1bnn4731lhlvg8axy4mjxgvh646yl22hp52wipx8cfca4vkn2f1z")) ("shenandoah-drop" ,(drop "shenandoah" - "0abjlsvz669i06mlks28wnh11mm55y5613990pn5j7hfbw8a34q5")) + "0fpxl8zlii1hpm777r875ys2cr5ih3gb6p1nm9jfa6krjrccrxv1")) ,@(fold alist-delete (package-native-inputs icedtea-7) '("gcj" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop" "jdk-drop" "langtools-drop" "hotspot-drop"))))))) @@ -1975,6 +1979,1010 @@ logging implementations. A library that uses the commons-logging API can be used with any logging implementation at runtime.") (license license:asl2.0))) +;; This is the last release of the 1.x series. +(define-public java-mockito-1 + (package + (name "java-mockito") + (version "1.10.19") + (source (origin + (method url-fetch) + (uri (string-append "http://repo1.maven.org/maven2/" + "org/mockito/mockito-core/" version + "/mockito-core-" version "-sources.jar")) + (sha256 + (base32 + "0vmiwnwpf83g2q7kj1rislmja8fpvqkixjhawh7nxnygx6pq11kc")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "mockito.jar" + #:tests? #f ; no tests included + ;; FIXME: patch-and-repack does not support jars, so we have to apply + ;; patches in build phases. + #:phases + (modify-phases %standard-phases + ;; Mockito was developed against a different version of hamcrest, + ;; which does not require matcher implementations to provide an + ;; implementation of the "describeMismatch" method. We add this + ;; simple definition to pass the build with our version of hamcrest. + (add-after 'unpack 'fix-hamcrest-build-error + (lambda _ + (substitute* "src/org/mockito/internal/matchers/LocalizedMatcher.java" + (("public Matcher getActualMatcher\\(\\) .*" line) + (string-append " + public void describeMismatch(Object item, Description description) { + actualMatcher.describeMismatch(item, description); + }" + line))) + #t)) + ;; Mockito bundles cglib. We have a cglib package, so let's use + ;; that instead. + (add-after 'unpack 'use-system-libraries + (lambda _ + (with-directory-excursion "src/org/mockito/internal/creation/cglib" + (substitute* '("CGLIBHacker.java" + "CglibMockMaker.java" + "ClassImposterizer.java" + "DelegatingMockitoMethodProxy.java" + "MethodInterceptorFilter.java" + "MockitoNamingPolicy.java" + "SerializableMockitoMethodProxy.java" + "SerializableNoOp.java") + (("import org.mockito.cglib") "import net.sf.cglib"))) + #t))))) + (inputs + `(("java-junit" ,java-junit) + ("java-objenesis" ,java-objenesis) + ("java-cglib" ,java-cglib) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://mockito.org") + (synopsis "Mockito is a mock library for Java") + (description "Mockito is a mocking library for Java which lets you write +tests with a clean and simple API. It generates mocks using reflection, and +it records all mock invocations, including methods arguments.") + (license license:asl2.0))) + +(define-public java-httpcomponents-httpcore + (package + (name "java-httpcomponents-httpcore") + (version "4.4.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache//httpcomponents/httpcore/" + "source/httpcomponents-core-" + version "-src.tar.gz")) + (sha256 + (base32 + "02bwcf38y4vgwq7kj2s6q7qrmma641r5lacivm16kgxvb2j6h1vy")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "httpcomponents-httpcore.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpcore") #t))))) + (inputs + `(("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-mockito" ,java-mockito-1))) + (home-page "https://hc.apache.org/httpcomponents-core-4.4.x/index.html") + (synopsis "Low level HTTP transport components") + (description "HttpCore is a set of low level HTTP transport components +that can be used to build custom client and server side HTTP services with a +minimal footprint. HttpCore supports two I/O models: blocking I/O model based +on the classic Java I/O and non-blocking, event driven I/O model based on Java +NIO. + +This package provides the blocking I/O model library.") + (license license:asl2.0))) + +(define-public java-httpcomponents-httpcore-nio + (package (inherit java-httpcomponents-httpcore) + (name "java-httpcomponents-httpcore-nio") + (arguments + `(#:jar-name "httpcomponents-httpcore-nio.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpcore-nio") #t))))) + (inputs + `(("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-hamcrest-core" ,java-hamcrest-core) + ,@(package-inputs java-httpcomponents-httpcore))) + (description "HttpCore is a set of low level HTTP transport components +that can be used to build custom client and server side HTTP services with a +minimal footprint. HttpCore supports two I/O models: blocking I/O model based +on the classic Java I/O and non-blocking, event driven I/O model based on Java +NIO. + +This package provides the non-blocking I/O model library based on Java +NIO."))) + +(define-public java-httpcomponents-httpcore-ab + (package (inherit java-httpcomponents-httpcore) + (name "java-httpcomponents-httpcore-ab") + (arguments + `(#:jar-name "httpcomponents-httpcore-ab.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpcore-ab") #t))))) + (inputs + `(("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-commons-cli" ,java-commons-cli) + ("java-hamcrest-core" ,java-hamcrest-core) + ,@(package-inputs java-httpcomponents-httpcore))) + (synopsis "Apache HttpCore benchmarking tool") + (description "This package provides the HttpCore benchmarking tool. It is +an Apache AB clone based on HttpCore."))) + +(define-public java-httpcomponents-httpclient + (package + (name "java-httpcomponents-httpclient") + (version "4.5.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/httpcomponents/httpclient/" + "source/httpcomponents-client-" + version "-src.tar.gz")) + (sha256 + (base32 + "1428399s7qy3cim5wc6f3ks4gl9nf9vkjpfmnlap3jflif7g2pj1")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "httpcomponents-httpclient.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpclient") #t))))) + (inputs + `(("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-codec" ,java-commons-codec) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-mockito" ,java-mockito-1) + ("java-junit" ,java-junit))) + (home-page "https://hc.apache.org/httpcomponents-client-ga/") + (synopsis "HTTP client library for Java") + (description "Although the @code{java.net} package provides basic +functionality for accessing resources via HTTP, it doesn't provide the full +flexibility or functionality needed by many applications. @code{HttpClient} +seeks to fill this void by providing an efficient, up-to-date, and +feature-rich package implementing the client side of the most recent HTTP +standards and recommendations.") + (license license:asl2.0))) + +(define-public java-httpcomponents-httpmime + (package (inherit java-httpcomponents-httpclient) + (name "java-httpcomponents-httpmime") + (arguments + `(#:jar-name "httpcomponents-httpmime.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "httpmime") #t))))) + (inputs + `(("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))))) + +(define-public java-commons-net + (package + (name "java-commons-net") + (version "3.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/net/source/" + "commons-net-" version "-src.tar.gz")) + (sha256 + (base32 + "0n0cmnddk9qdqhjvka8pc6hd9mn2qi3166f1s6xk32h7rfy1adxr")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: MainTest.java tries to read "examples.properties" (which + ;; should be "resources/examples/examples.properties"), but gets "null" + ;; instead. + #:tests? #f + #:jar-name "commons-net.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/net/") + (synopsis "Client library for many basic Internet protocols") + (description "The Apache Commons Net library implements the client side of +many basic Internet protocols. The purpose of the library is to provide +fundamental protocol access, not higher-level abstractions.") + (license license:asl2.0))) + +(define-public java-jsch + (package + (name "java-jsch") + (version "0.1.54") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/jsch/jsch/" + version "/jsch-" version ".zip")) + (sha256 + (base32 + "029rdddyq1mh3ghryh3ki99kba1xkf1d1swjv2vi6lk6zzjy2wdb")))) + (build-system ant-build-system) + (arguments + `(#:build-target "dist" + #:tests? #f ; no tests included + #:phases + (modify-phases %standard-phases + (replace 'install (install-jars "dist"))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://www.jcraft.com/jsch/") + (synopsis "Pure Java implementation of SSH2") + (description "JSch is a pure Java implementation of SSH2. JSch allows you +to connect to an SSH server and use port forwarding, X11 forwarding, file +transfer, etc., and you can integrate its functionality into your own Java +programs.") + (license license:bsd-3))) + +(define-public java-commons-compress + (package + (name "java-commons-compress") + (version "1.13") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/compress/source/" + "commons-compress-" version "-src.tar.gz")) + (sha256 + (base32 + "1vjqvavrn0babffn1kciz6v52ibwq2vwhzlb95hazis3lgllnxc8")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "commons-compress.jar" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-bad-tests + (lambda _ + (with-directory-excursion "src/test/java/org/apache/commons/compress/" + ;; FIXME: These tests really should not fail. Maybe they are + ;; indicative of problems with our Java packaging work. + + ;; This test fails with a null pointer exception. + (delete-file "archivers/sevenz/SevenZOutputFileTest.java") + ;; This test fails to open test resources. + (delete-file "archivers/zip/ExplodeSupportTest.java") + + ;; FIXME: This test adds a dependency on powermock, which is hard to + ;; package at this point. + ;; https://github.com/powermock/powermock + (delete-file "archivers/sevenz/SevenZNativeHeapTest.java")) + #t))))) + (inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-mockito" ,java-mockito-1) + ("java-xz" ,java-xz))) + (home-page "https://commons.apache.org/proper/commons-compress/") + (synopsis "Java library for working with compressed files") + (description "The Apache Commons Compress library defines an API for +working with compressed files such as ar, cpio, Unix dump, tar, zip, gzip, XZ, +Pack200, bzip2, 7z, arj, lzma, snappy, DEFLATE, lz4 and Z files.") + (license license:asl2.0))) + +(define-public java-commons-net + (package + (name "java-commons-net") + (version "3.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/commons/net/source/" + "commons-net-" version "-src.tar.gz")) + (sha256 + (base32 + "0n0cmnddk9qdqhjvka8pc6hd9mn2qi3166f1s6xk32h7rfy1adxr")))) + (build-system ant-build-system) + (arguments + `(;; FIXME: MainTest.java tries to read "examples.properties" (which + ;; should be "resources/examples/examples.properties"), but gets "null" + ;; instead. + #:tests? #f + #:jar-name "commons-net.jar")) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://commons.apache.org/net/") + (synopsis "Client library for many basic Internet protocols") + (description "The Apache Commons Net library implements the client side of +many basic Internet protocols. The purpose of the library is to provide +fundamental protocol access, not higher-level abstractions.") + (license license:asl2.0))) + +(define-public java-osgi-annotation + (package + (name "java-osgi-annotation") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/osgi/org.osgi.annotation/" version "/" + "org.osgi.annotation-" version "-sources.jar")) + (sha256 + (base32 + "1q718mb7gqg726rh6pc2hcisn8v50nv35abbir0jypmffhiii85w")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "osgi-annotation.jar")) + (home-page "http://www.osgi.org") + (synopsis "Annotation module of OSGi framework") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the OSGi annotation module, providing additional services to help dynamic +components.") + (license license:asl2.0))) + +(define-public java-osgi-core + (package + (name "java-osgi-core") + (version "6.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/osgi/org.osgi.core/" version "/" + "org.osgi.core-" version "-sources.jar")) + (sha256 + (base32 + "19bpf5jx32jq9789gyhin35q5v7flmw0p9mk7wbgqpxqfmxyiabv")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "osgi-core.jar")) + (inputs + `(("java-osgi-annotation" ,java-osgi-annotation))) + (home-page "http://www.osgi.org") + (synopsis "Core module of OSGi framework") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the OSGi Core module.") + (license license:asl2.0))) + +(define-public java-osgi-service-event + (package + (name "java-osgi-service-event") + (version "1.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/osgi/org.osgi.service.event/" + version "/org.osgi.service.event-" + version "-sources.jar")) + (sha256 + (base32 + "1nyhlgagwym75bycnjczwbnpymv2iw84zbhvvzk84g9q736i6qxm")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "osgi-service-event.jar")) + (inputs + `(("java-osgi-annotation" ,java-osgi-annotation) + ("java-osgi-core" ,java-osgi-core))) + (home-page "http://www.osgi.org") + (synopsis "OSGi service event module") + (description + "OSGi, for Open Services Gateway initiative framework, is a module system +and service platform for the Java programming language. This package contains +the OSGi @code{org.osgi.service.event} module.") + (license license:asl2.0))) + +(define-public java-eclipse-osgi + (package + (name "java-eclipse-osgi") + (version "3.11.3") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.osgi/" + version "/org.eclipse.osgi-" + version "-sources.jar")) + (sha256 + (base32 + "00cqc6lb29n0zv68b4l842vzkwawvbr7gshfdygsk8sicvcq2c7b")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-osgi.jar")) + (inputs + `(("java-osgi-annotation" ,java-osgi-annotation))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse Equinox OSGi framework") + (description "This package provides an implementation of the OSGi Core +specification.") + (license license:epl1.0))) + +(define-public java-eclipse-equinox-common + (package + (name "java-eclipse-equinox-common") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.common/" + version "/org.eclipse.equinox.common-" + version "-sources.jar")) + (sha256 + (base32 + "12aazpkgw46r1qj0pr421jzwhbmsizd97r37krd7njnbrdgfzksc")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-common.jar")) + (inputs + `(("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Common Eclipse runtime") + (description "This package provides the common Eclipse runtime.") + (license license:epl1.0))) + +(define-public java-eclipse-core-jobs + (package + (name "java-eclipse-core-jobs") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.jobs/" + version "/org.eclipse.core.jobs-" + version "-sources.jar")) + (sha256 + (base32 + "0395b8lh0km8vhzjnchvs1rii1qz48hyvb2wqfaq4yhklbwihq4b")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-jobs.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse jobs mechanism") + (description "This package provides the Eclipse jobs mechanism.") + (license license:epl1.0))) + +(define-public java-eclipse-equinox-registry + (package + (name "java-eclipse-equinox-registry") + (version "3.6.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.registry/" + version "/org.eclipse.equinox.registry-" + version "-sources.jar")) + (sha256 + (base32 + "1i9sgymh2fy5vdgk5y7s3qvrlbgh4l93ddqi3v4zmca7hwrlhf9k")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-registry.jar")) + (inputs + `(("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse extension registry support") + (description "This package provides support for the Eclipse extension +registry.") + (license license:epl1.0))) + +(define-public java-eclipse-equinox-app + (package + (name "java-eclipse-equinox-app") + (version "1.3.400") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.app/" + version "/org.eclipse.equinox.app-" + version "-sources.jar")) + (sha256 + (base32 + "0nhvbp93y203ar7y59gb0mz3w2d3jlqhr0c9hii9bcfpmr7imdab")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-app.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi) + ("java-osgi-service-event" ,java-osgi-service-event))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Equinox application container") + (description "This package provides the Equinox application container for +Eclipse.") + (license license:epl1.0))) + +(define-public java-eclipse-equinox-preferences + (package + (name "java-eclipse-equinox-preferences") + (version "3.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.equinox.preferences/" + version "/org.eclipse.equinox.preferences-" + version "-sources.jar")) + (sha256 + (base32 + "0k7w6c141sqym4fy3af0qkwpy4pdh2vsjpjba6rp5fxyqa24v0a2")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-equinox-preferences.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/equinox/") + (synopsis "Eclipse preferences mechanism") + (description "This package provides the Eclipse preferences mechanism with +the module @code{org.eclipse.equinox.preferences}.") + (license license:epl1.0))) + +(define-public java-eclipse-core-contenttype + (package + (name "java-eclipse-core-contenttype") + (version "3.5.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.contenttype/" + version "/org.eclipse.core.contenttype-" + version "-sources.jar")) + (sha256 + (base32 + "1wcqcv7ijwv5rh748vz3x9pkmjl9w1r0k0026k56n8yjl4rrmspi")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-contenttype.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "http://www.eclipse.org/") + (synopsis "Eclipse content mechanism") + (description "This package provides the Eclipse content mechanism in the +@code{org.eclipse.core.contenttype} module.") + (license license:epl1.0))) + +(define-public java-eclipse-core-runtime + (package + (name "java-eclipse-core-runtime") + (version "3.12.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.runtime/" + version "/org.eclipse.core.runtime-" + version "-sources.jar")) + (sha256 + (base32 + "16mkf8jgj35pgzms7w1gyfq0gfm4ixw6c5xbbxzdj1la56c758ya")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-runtime.jar")) + (inputs + `(("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-equinox-app" ,java-eclipse-equinox-app) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core runtime") + (description "This package provides the Eclipse core runtime with the +module @code{org.eclipse.core.runtime}.") + (license license:epl1.0))) + +(define-public java-eclipse-core-filesystem + (package + (name "java-eclipse-core-filesystem") + (version "1.6.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.filesystem/" + version "/org.eclipse.core.filesystem-" + version "-sources.jar")) + (sha256 + (base32 + "0km1bhwjim4rfy3pkvjhvy31kgsyf2ncx0mlkmbf5n6g57pphdyj")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-filesystem.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core file system") + (description "This package provides the Eclipse core file system with the +module @code{org.eclipse.core.filesystem}.") + (license license:epl1.0))) + +(define-public java-eclipse-core-expressions + (package + (name "java-eclipse-core-expressions") + (version "3.5.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.expressions/" + version "/org.eclipse.core.expressions-" + version "-sources.jar")) + (sha256 + (base32 + "18bw2l875gmygvpagpgk9l24qzbdjia4ag12nw6fi8v8yaq4987f")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-expressions.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core expression language") + (description "This package provides the Eclipse core expression language +with the @code{org.eclipse.core.expressions} module.") + (license license:epl1.0))) + +(define-public java-eclipse-core-variables + (package + (name "java-eclipse-core-variables") + (version "3.3.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.variables/" + version "/org.eclipse.core.variables-" + version "-sources.jar")) + (sha256 + (base32 + "12dirh03zi4n5x5cj07vzrhkmnqy6h9q10h9j605pagmpmifyxmy")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-variables.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Eclipse core variables") + (description "This package provides the Eclipse core variables module +@code{org.eclipse.core.variables}.") + (license license:epl1.0))) + +(define-public java-eclipse-ant-core + (package + (name "java-eclipse-ant-core") + (version "3.4.100") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.ant.core/" + version "/org.eclipse.ant.core-" + version "-sources.jar")) + (sha256 + (base32 + "11g3if794qjlk98mz9zch22rr56sd7z63vn4i7k2icr8cq5bfqg7")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-ant-core.jar")) + (inputs + `(("java-eclipse-equinox-app" ,java-eclipse-equinox-app) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-core-variables" ,java-eclipse-core-variables) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Ant build tool core libraries") + (description "This package provides the ant build tool core libraries with +the module @code{org.eclipse.ant.core}.") + (license license:epl1.0))) + +(define-public java-eclipse-core-resources + (package + (name "java-eclipse-core-resources") + (version "3.11.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.resources/" + version "/org.eclipse.core.resources-" + version "-sources.jar")) + (sha256 + (base32 + "1hrfxrll6cpcagfksk2na1ypvkcnsp0fk6n3vcsrn97qayf9mx9l")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-resources.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-expressions" ,java-eclipse-core-expressions) + ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-ant-core" ,java-eclipse-ant-core) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core resource management") + (description "This package provides the Eclipse core resource management +module @code{org.eclipse.core.resources}.") + (license license:epl1.0))) + +(define-public java-eclipse-compare-core + (package + (name "java-eclipse-compare-core") + (version "3.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.compare.core/" + version "/org.eclipse.compare.core-" + version "-sources.jar")) + (sha256 + (base32 + "10g37r0pbiffyv2wk35c6g5lwzkdipkl0kkjp41v84dln46xm4dg")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-compare-core.jar")) + (inputs + `(("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-osgi" ,java-eclipse-osgi) + ("java-icu4j" ,java-icu4j))) + (home-page "https://www.eclipse.org/") + (synopsis "Eclipse core compare support") + (description "This package provides the Eclipse core compare support +module @code{org.eclipse.compare.core}.") + (license license:epl1.0))) + +(define-public java-eclipse-team-core + (package + (name "java-eclipse-team-core") + (version "3.8.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.team.core/" + version "/org.eclipse.team.core-" + version "-sources.jar")) + (sha256 + (base32 + "02j2jzqgb26zx2d5ahxmvijw6j4r0la90zl5c3i65x6z19ciyam7")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-team-core.jar")) + (inputs + `(("java-eclipse-compare-core" ,java-eclipse-compare-core) + ("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-core-resources" ,java-eclipse-core-resources) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-osgi" ,java-eclipse-osgi))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Eclipse team support core") + (description "This package provides the Eclipse team support core module +@code{org.eclipse.team.core}.") + (license license:epl1.0))) + +(define-public java-eclipse-core-commands + (package + (name "java-eclipse-core-commands") + (version "3.8.1") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.core.commands/" + version "/org.eclipse.core.commands-" + version "-sources.jar")) + (sha256 + (base32 + "0yjn482qndcfrsq3jd6vnhcylp16420f5aqkrwr8spsprjigjcr9")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-core-commands.jar")) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common))) + (home-page "https://www.eclipse.org/platform") + (synopsis "Eclipse core commands") + (description "This package provides Eclipse core commands in the module +@code{org.eclipse.core.commands}.") + (license license:epl1.0))) + +(define-public java-eclipse-text + (package + (name "java-eclipse-text") + (version "3.6.0") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/platform/org.eclipse.text/" + version "/org.eclipse.text-" + version "-sources.jar")) + (sha256 + (base32 + "0scz70vzz5qs5caji9f5q01vkqnvip7dpri1q07l8wbbdcxn4cq1")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-text.jar" + #:phases + (modify-phases %standard-phases + ;; When creating a new category we must make sure that the new list + ;; matches List. By default it seems to be too generic + ;; (ArrayList), so we specialize it to ArrayList. + ;; Without this we get this error: + ;; + ;; [javac] .../src/org/eclipse/jface/text/AbstractDocument.java:376: + ;; error: method put in interface Map cannot be applied to given types; + ;; [javac] fPositions.put(category, new ArrayList<>()); + ;; [javac] ^ + ;; [javac] required: String,List + ;; [javac] found: String,ArrayList + ;; [javac] reason: actual argument ArrayList cannot be converted + ;; to List by method invocation conversion + ;; [javac] where K,V are type-variables: + ;; [javac] K extends Object declared in interface Map + ;; [javac] V extends Object declared in interface Map + ;; + ;; I don't know if this is a good fix. I suspect it is not, but it + ;; seems to work. + (add-after 'unpack 'fix-compilation-error + (lambda _ + (substitute* "src/org/eclipse/jface/text/AbstractDocument.java" + (("Positions.put\\(category, new ArrayList<>\\(\\)\\);") + "Positions.put(category, new ArrayList());")) + #t))))) + (inputs + `(("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-core-commands" ,java-eclipse-core-commands) + ("java-icu4j" ,java-icu4j))) + (home-page "http://www.eclipse.org/platform") + (synopsis "Eclipse text library") + (description "Platform Text is part of the Platform UI project and +provides the basic building blocks for text and text editors within Eclipse +and contributes the Eclipse default text editor.") + (license license:epl1.0))) + +(define-public java-eclipse-jdt-core + (package + (name "java-eclipse-jdt-core") + (version "3.12.3") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "org/eclipse/jdt/org.eclipse.jdt.core/" + version "/org.eclipse.jdt.core-" + version "-sources.jar")) + (sha256 + (base32 + "191xw4lc7mjjkprh4ji5vnpjvr5r4zvbpwkriy4bvsjqrz35vh1j")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests included + #:jar-name "eclipse-jdt-core.jar")) + (inputs + `(("java-eclipse-core-contenttype" ,java-eclipse-core-contenttype) + ("java-eclipse-core-filesystem" ,java-eclipse-core-filesystem) + ("java-eclipse-core-jobs" ,java-eclipse-core-jobs) + ("java-eclipse-core-resources" ,java-eclipse-core-resources) + ("java-eclipse-core-runtime" ,java-eclipse-core-runtime) + ("java-eclipse-equinox-app" ,java-eclipse-equinox-app) + ("java-eclipse-equinox-common" ,java-eclipse-equinox-common) + ("java-eclipse-equinox-preferences" ,java-eclipse-equinox-preferences) + ("java-eclipse-equinox-registry" ,java-eclipse-equinox-registry) + ("java-eclipse-osgi" ,java-eclipse-osgi) + ("java-eclipse-text" ,java-eclipse-text))) + (home-page "https://www.eclipse.org/jdt") + (synopsis "Java development tools core libraries") + (description "This package provides the core libraries of the Eclipse Java +development tools.") + (license license:epl1.0))) + +(define-public java-javax-mail + (package + (name "java-javax-mail") + (version "1.5.6") + (source (origin + (method url-fetch) + (uri (string-append "https://repo1.maven.org/maven2/" + "com/sun/mail/javax.mail/" + version "/javax.mail-" + version "-sources.jar")) + (sha256 + (base32 + "0sdlfgsc2b5s89xv1261y8i0jijcja019k2x1c8ngfn582w4jly9")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; no tests + #:jar-name "javax-mail.jar")) + (home-page "https://javamail.java.net") + (synopsis "Reference implementation of the JavaMail API") + (description + "This package provides versions of the JavaMail API implementation, IMAP, +SMTP, and POP3 service providers, some examples, and documentation for the +JavaMail API.") + ;; GPLv2 only with "classpath exception". + (license license:gpl2))) + +(define-public java-log4j-api + (package + (name "java-log4j-api") + (version "2.4.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://apache/logging/log4j/" version + "/apache-log4j-" version "-src.tar.gz")) + (sha256 + (base32 + "0j5p9gik0jysh37nlrckqbky12isy95cpwg2gv5fas1rcdqbraxd")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; tests require unpackaged software + #:jar-name "log4j-api.jar" + #:make-flags + (list (string-append "-Ddist.dir=" (assoc-ref %outputs "out") + "/share/java")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-dir + (lambda _ (chdir "log4j-api") #t)) + ;; FIXME: The tests require additional software that has not been + ;; packaged yet, such as + ;; * org.apache.maven + ;; * org.apache.felix + (add-after 'enter-dir 'delete-tests + (lambda _ (delete-file-recursively "src/test") #t))))) + (inputs + `(("java-osgi-core" ,java-osgi-core) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-junit" ,java-junit))) + (home-page "http://logging.apache.org/log4j/2.x/") + (synopsis "API module of the Log4j logging framework for Java") + (description + "This package provides the API module of the Log4j logging framework for +Java.") + (license license:asl2.0))) + (define-public java-commons-cli (package (name "java-commons-cli") @@ -2105,49 +3113,30 @@ This is a part of the Apache Commons Project.") (substitute* "lib/cpp/antlr/CharScanner.hpp" (("#include ") (string-append - "#include \n" - "#define EOF (-1)\n" - "#include "))) + "#include \n" + "#define EOF (-1)\n" + "#include "))) (substitute* "configure" - (("/bin/sh") "sh")))))) + (("/bin/sh") "sh")) + #t)))) (build-system gnu-build-system) (arguments - `(#:tests? #f + `(#:tests? #f ; no test target + #:imported-modules ((guix build ant-build-system) + (guix build syscalls) + ,@%gnu-build-system-modules) + #:modules (((guix build ant-build-system) #:prefix ant:) + (guix build gnu-build-system) + (guix build utils)) #:phases (modify-phases %standard-phases (add-after 'install 'strip-jar-timestamps - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (jar1 (string-append out "/lib/antlr.jar")) - (jar2 (string-append out "/share/antlr-2.7.7/antlr.jar"))) - ;; XXX: copied from (guix build ant-build-system) - (define (strip-jar jar dir) - (let ((manifest (string-append dir "/META-INF/MANIFEST.MF"))) - (mkdir-p dir) - (and (with-directory-excursion dir - (zero? (system* "jar" "xf" jar))) - (delete-file jar) - (for-each (lambda (file) - (let ((s (lstat file))) - (unless (eq? (stat:type s) 'symlink) - (utime file 0 0 0 0)))) - (find-files dir #:directories? #t)) - (with-directory-excursion dir - (let* ((files (find-files "." ".*" #:directories? #t))) - (unless (zero? (apply system* - `("zip" "-X" ,jar ,manifest - ,@files))) - (error "'zip' failed")))) - (utime jar 0 0) - #t))) - (strip-jar jar1 "temp1") - (strip-jar jar2 "temp2")))) + (assoc-ref ant:%standard-phases 'strip-jar-timestamps)) (add-after 'configure 'fix-bin-ls (lambda _ - (for-each (lambda (file) - (substitute* file - (("/bin/ls") "ls"))) - (find-files "." "Makefile"))))))) + (substitute* (find-files "." "Makefile") + (("/bin/ls") "ls")) + #t))))) (native-inputs `(("which" ,which) ("zip" ,zip) @@ -2163,9 +3152,9 @@ C++, or Python actions. ANTLR provides excellent support for tree construction, tree walking, and translation.") (license license:public-domain))) -(define-public stringtemplate3 +(define-public java-stringtemplate-3 (package - (name "stringtemplate3") + (name "java-stringtemplate") (version "3.2.1") (source (origin (method url-fetch) @@ -2177,21 +3166,30 @@ tree walking, and translation.") "086yj68np1vqhkj7483diz3km6s6y4gmwqswa7524a0ca6vxn2is")))) (build-system ant-build-system) (arguments - `(#:jar-name "stringtemplate-3.2.1.jar" - #:tests? #f + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:test-dir "test" + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases + (add-before 'check 'fix-tests + (lambda _ + (substitute* "build.xml" + (("\\$\\{test.home\\}/java") + "${test.home}/org")) + #t)) (add-before 'build 'generate-grammar (lambda _ - (let ((dir "src/org/antlr/stringtemplate/language/")) - (for-each (lambda (file) - (display file) - (newline) - (system* "antlr" "-o" dir (string-append dir file))) - '("template.g" "angle.bracket.template.g" "action.g" - "eval.g" "group.g" "interface.g")))))))) + (with-directory-excursion "src/org/antlr/stringtemplate/language/" + (every (lambda (file) + (format #t "~a\n" file) + (zero? (system* "antlr" file))) + '("template.g" "angle.bracket.template.g" "action.g" + "eval.g" "group.g" "interface.g")))))))) (native-inputs - `(("antlr" ,antlr2))) + `(("antlr" ,antlr2) + ("java-junit" ,java-junit))) (home-page "http://www.stringtemplate.org") (synopsis "Template engine to generate formatted text output") (description "StringTemplate is a java template engine (with ports for C#, @@ -2215,9 +3213,9 @@ StringTemplate also powers ANTLR.") ;; only grammar files with the antlr2 syntax. ;; So we build antlr3.1 -> antlr3.3 -> ST4.0.6 -> antlr3-bootstrap -> ST4 -> antlr3. -(define-public stringtemplate4 - (package - (name "stringtemplate4") +(define-public java-stringtemplate + (package (inherit java-stringtemplate-3) + (name "java-stringtemplate") (version "4.0.8") (source (origin (method url-fetch) @@ -2229,36 +3227,36 @@ StringTemplate also powers ANTLR.") "1pri8hqa95rfdkjy55icl5q1m09zwp5k67ib14abas39s4v3w087")))) (build-system ant-build-system) (arguments - `(#:tests? #f - #:jar-name (string-append ,name "-" ,version ".jar") + `(#:jar-name (string-append ,name "-" ,version ".jar") + #:tests? #f ; FIXME: tests fail for unknown reasons + #:test-dir "test" + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1)) #:phases (modify-phases %standard-phases + (add-before 'check 'fix-test-target + (lambda _ + (substitute* "build.xml" + (("\\$\\{test.home\\}/java") "${test.home}/") + (("\\*Test.java") "Test*.java")) + #t)) (add-before 'build 'generate-grammar - (lambda* (#:key inputs #:allow-other-keys) - (chdir "src/org/stringtemplate/v4/compiler/") - (for-each (lambda (file) - (display file) - (newline) - (system* "antlr3" file)) - '("STParser.g" "Group.g" "CodeGenerator.g")) - (chdir "../../../../..")))))) + (lambda _ + (with-directory-excursion "src/org/stringtemplate/v4/compiler/" + (every (lambda (file) + (format #t "~a\n" file) + (zero? (system* "antlr3" file))) + '("STParser.g" "Group.g" "CodeGenerator.g")))))))) (inputs `(("antlr3" ,antlr3-bootstrap) ("antlr2" ,antlr2) - ("stringtemplate" ,stringtemplate3))) - (home-page "http://www.stringtemplate.org") - (synopsis "Template engine to generate formatted text output") - (description "StringTemplate is a java template engine (with ports for C#, -Objective-C, JavaScript, Scala) for generating source code, web pages, emails, -or any other formatted text output. StringTemplate is particularly good at -code generators, multiple site skins, and internationalization / localization. -StringTemplate also powers ANTLR.") - (license license:bsd-3))) + ("java-stringtemplate" ,java-stringtemplate-3) + ("java-junit" ,java-junit))))) -(define stringtemplate4-4.0.6 - (package - (inherit stringtemplate4) - (name "stringtemplate4") +(define java-stringtemplate-4.0.6 + (package (inherit java-stringtemplate) + (name "java-stringtemplate") (version "4.0.6") (source (origin (method url-fetch) @@ -2271,7 +3269,7 @@ StringTemplate also powers ANTLR.") (inputs `(("antlr3" ,antlr3-3.3) ("antlr2" ,antlr2) - ("stringtemplate" ,stringtemplate3))))) + ("java-stringtemplate" ,java-stringtemplate-3))))) (define-public antlr3 (package @@ -2358,12 +3356,12 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;")) ("antlr3" ,antlr3-bootstrap))) (inputs `(("junit" ,java-junit) - ("stringtemplate" ,stringtemplate3) - ("stringtemplate4" ,stringtemplate4))) + ("stringtemplate" ,java-stringtemplate-3) + ("stringtemplate4" ,java-stringtemplate))) (propagated-inputs - `(("stringtemplate" ,stringtemplate3) + `(("stringtemplate" ,java-stringtemplate-3) ("antlr" ,antlr2) - ("stringtemplate4" ,stringtemplate4-4.0.6))) + ("stringtemplate4" ,java-stringtemplate-4.0.6))) (home-page "http://www.antlr3.org") (synopsis "Framework for constructing recognizers, compilers, and translators") (description "ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) @@ -2414,7 +3412,7 @@ tree walking, and translation.") (string-append "#!" (which "sh") "\n" "java -cp " jar "/antlr3-3.3.jar:" (string-concatenate - (find-files (assoc-ref inputs "stringtemplate") + (find-files (assoc-ref inputs "java-stringtemplate") ".*\\.jar")) ":" (string-concatenate @@ -2464,7 +3462,7 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")))) (inputs `(("junit" ,java-junit))) (propagated-inputs - `(("stringtemplate" ,stringtemplate3) + `(("java-stringtemplate" ,java-stringtemplate-3) ("antlr" ,antlr2) ("antlr3" ,antlr3-3.1))))) @@ -2536,4 +3534,48 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;")))) (inputs `(("junit" ,java-junit))) (propagated-inputs - `(("stringtemplate" ,stringtemplate3))))) + `(("stringtemplate" ,java-stringtemplate-3))))) + +(define-public java-asm + (package + (name "java-asm") + (version "5.2") + (source (origin + (method url-fetch) + (uri (string-append "http://download.forge.ow2.org/asm/" + "asm-" version ".tar.gz")) + (sha256 + (base32 + "0kxvmv5275rnjl7jv0442k3wjnq03ngkb7sghs78avf45pzm4qgr")))) + (build-system ant-build-system) + (arguments + `(#:build-target "compile" + #:test-target "test" + ;; The tests require an old version of Janino, which no longer compiles + ;; with the JDK7. + #:tests? #f + ;; We don't need these extra ant tasks, but the build system asks us to + ;; provide a path anyway. + #:make-flags (list (string-append "-Dobjectweb.ant.tasks.path=foo")) + #:phases + (modify-phases %standard-phases + (add-before 'install 'build-jars + (lambda* (#:key make-flags #:allow-other-keys) + ;; We cannot use the "jar" target because it depends on a couple + ;; of unpackaged, complicated tools. + (mkdir "dist") + (zero? (system* "jar" + "-cf" (string-append "dist/asm-" ,version ".jar") + "-C" "output/build/tmp" ".")))) + (replace 'install + (install-jars "dist"))))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "http://asm.ow2.org/") + (synopsis "Very small and fast Java bytecode manipulation framework") + (description "ASM is an all purpose Java bytecode manipulation and +analysis framework. It can be used to modify existing classes or dynamically +generate classes, directly in binary form. The provided common +transformations and analysis algorithms allow to easily assemble custom +complex transformations and code analysis tools.") + (license license:bsd-3))) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 2ec176422c..07943e1e5e 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -44,13 +44,18 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gstreamer) + #:use-module (gnu packages image) #:use-module (gnu packages linux) + #:use-module (gnu packages mp3) + #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages python) #:use-module (gnu packages qt) + #:use-module (gnu packages textutils) #:use-module (gnu packages version-control) + #:use-module (gnu packages video) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -59,7 +64,7 @@ (define-public extra-cmake-modules (package (name "extra-cmake-modules") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -68,7 +73,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1iqakxzr6bcs9wgyi8if1smpq6px0bvlcyddyk0hxhindzl7pn5i")))) + "1r3dyvrv77xrpjlzpa6yazwkknirvx1ccvdyj9x0mlk4vfi05nh5")))) (build-system cmake-build-system) (native-inputs `(("qtbase" ,qtbase))) ; For tests (needs qmake) @@ -240,7 +245,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.") (define-public attica (package (name "attica") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -249,7 +254,7 @@ Phonon-GStreamer is a backend based on the GStreamer multimedia library.") name "-" version ".tar.xz")) (sha256 (base32 - "16vl3gpwqcvfms82grv1bvqlxj085bqssv5ixjx007826pd8qhp5")))) + "0l8gmsmpwzg6nzwwlnsdl6r6qkhnhirpmrkag9xpd2sbmy734x53")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -272,7 +277,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/") (define-public bluez-qt (package (name "bluez-qt") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -281,7 +286,7 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/") name "-" version ".tar.xz")) (sha256 (base32 - "0pl6cp0rgjkh7d06ik35rw7qd96j5sh2flgjx4vi21zl5vf3vgyh")))) + "040gs2a1fx996gqdx2pwxh00szb1vb85055z946nqvqfn01921df")))) (build-system cmake-build-system) (native-inputs `(("dbus" ,dbus) @@ -306,7 +311,7 @@ Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.") (define-public breeze-icons (package (name "breeze-icons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -315,7 +320,7 @@ Bluetooth stack. It is used by the KDE Bluetooth stack, BlueDevil.") name "-" version ".tar.xz")) (sha256 (base32 - "1n51kahzk09v52yhi7k4kqgavqlz3ghqv5cx2ssz2djpyavs18r3")))) + "1znzlggb6yrkw5rr2n75g7cfv9x5p9d55hss09c4i79lxrh1bk4a")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -335,7 +340,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.") (define-public kapidox (package (name "kapidox") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -344,7 +349,7 @@ It is the default icon theme for the KDE Plasma 5 desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1z6hdsppwrmqkcanrppxhqcrjvblg9i02rh3bz5m3pn66wwz0sdw")))) + "190d5z6i71jrvfna6vnlim2p9rgc33s1fxl0zarn276683i1rwvg")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; has no test target @@ -377,7 +382,7 @@ documentation.") (define-public karchive (package (name "karchive") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -386,7 +391,7 @@ documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "1dzvphqnc09mmaydqggpxg6zwwyr56p6l4jdf1rf6ns90fzxy0m4")))) + "0g8jskdar2znviwh9bs3kia093wgfnhl04x4jcg2rvh78ylkpvxw")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -411,7 +416,7 @@ GZip format, via a subclass of QIODevice.") (define-public kcodecs (package (name "kcodecs") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -420,7 +425,7 @@ GZip format, via a subclass of QIODevice.") name "-" version ".tar.xz")) (sha256 (base32 - "0yybkp52i8nm4qjady6jqswn6v70cqbvjqwgrghjnc88b2cly253")))) + "0k51s4qlf0kq6i8f3wrsz5lrkzjqb1j26hrmlmg57vn91r58iash")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -446,7 +451,7 @@ Internet).") (define-public kconfig (package (name "kconfig") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -455,7 +460,7 @@ Internet).") name "-" version ".tar.xz")) (sha256 (base32 - "1pajh1l08b995shp6l75ri9z4vr6wjapvrkmrmv8hksnxvfi97dp")))) + "0blbx6b3fk6p8cv2iywk2avn9w1411bb0g5wwv456a9ggi01988x")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -513,7 +518,7 @@ propagate their changes to their respective configuration files.") (define-public kcoreaddons (package (name "kcoreaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -522,7 +527,7 @@ propagate their changes to their respective configuration files.") name "-" version ".tar.xz")) (sha256 (base32 - "1n1xzvwwji9pwyxrvwp4rmpc7qzp9nlis26xmn81k607jn587ksx")))) + "1ybr4bv8rhp4cxpf8mfsc4dk0klzrfh1z8g2cw6zasmksxmmwi90")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -551,7 +556,7 @@ many more.") (define-public kdbusaddons (package (name "kdbusaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -560,7 +565,7 @@ many more.") name "-" version ".tar.xz")) (sha256 (base32 - "1a15jjsrkza0ll2viyk834pgdxsdgdacm0982xxwl5z937f75609")) + "1skblxfnjhbyiwavsfhksc2ybc2sikw3xr0js6mlfbpmvqzghn6h")) (patches (search-patches "kdbusaddons-kinit-file-name.patch")))) (build-system cmake-build-system) (native-inputs @@ -596,7 +601,7 @@ as well as an API to create KDED modules.") (define-public kdnssd (package (name "kdnssd") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -605,7 +610,7 @@ as well as an API to create KDED modules.") name "-" version ".tar.xz")) (sha256 (base32 - "1xakbs2wm627zn01ni8fyrz64xl5jw4by0pdrb70aad7w37dijrw")))) + "082mdim9wykdap4fmjfayk443rbarsk1p8cn3mspx2nw047yja80")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -623,7 +628,7 @@ infrastructure.") (define-public kguiaddons (package (name "kguiaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -632,7 +637,7 @@ infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "0rbfd0rykmwl9hs1q22pqg2by8vi9y1pgs2ishgnan4sc4w87wjb")))) + "1nmlwvy2jdmh0m6bmahvk68vl2rs9s28c10dkncpi6gvhsdkigqx")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -656,7 +661,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.") (define-public ki18n (package (name "ki18n") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -665,7 +670,7 @@ interfaces in the areas of colors, fonts, text, images, keyboard input.") name "-" version ".tar.xz")) (sha256 (base32 - "068xvw2hy4hlpj85wgjjdj0nc37fygpd8wb1dnpqcvzzy8rc1rsf")))) + "0glvmmy01mp6hnix79aichgwjq842kgf5q5zynkg6mch85y4ary7")))) (build-system cmake-build-system) (propagated-inputs `(("gettext" ,gettext-minimal) @@ -699,7 +704,7 @@ translation scripting.") (define-public kidletime (package (name "kidletime") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -708,7 +713,7 @@ translation scripting.") name "-" version ".tar.xz")) (sha256 (base32 - "0rkxx3bnspjwm4vcy4rdfahk6vcfpkh8fldww0zfdn7s7pigqwch")))) + "0z8x6iz52y2m8llsp2q4qayxswkzay7ksimzy47crfag442bw24g")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -726,7 +731,7 @@ or user activity.") (define-public kitemmodels (package (name "kitemmodels") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -735,7 +740,7 @@ or user activity.") name "-" version ".tar.xz")) (sha256 (base32 - "0lxld7jdixpq23sycv8n4ckzmdr34aycrsf2zffziw6r59f0mzki")))) + "1liq1ppa7xb1dcncv25c2a0xy3l9bvb2a56cff90c0b0vwr239q5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -787,7 +792,7 @@ model to observers (define-public kitemviews (package (name "kitemviews") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -796,7 +801,7 @@ model to observers name "-" version ".tar.xz")) (sha256 (base32 - "1h1zgawdi4vbgymdl5215lx7hpcx9jqxy7vjf5hwgs6b2cls1sws")))) + "054accbis471zj1gbfxbc99062r2hvpb04i6w3r8fa4ml8s6brqk")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -828,7 +833,7 @@ to flat and hierarchical lists.") (define-public kplotting (package (name "kplotting") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -837,7 +842,7 @@ to flat and hierarchical lists.") name "-" version ".tar.xz")) (sha256 (base32 - "0a0pfmdlx84526lb2jvx94i2pf85km57fm2ygis4z5mjgbzsmb6v")))) + "1ffy9b08128ym024wlfgnzk52vpy0mbaa91dhndpr40qcz0i67sh")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -866,7 +871,7 @@ pixel units.") (define-public ksyntaxhighlighting (package (name "ksyntaxhighlighting") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -875,7 +880,7 @@ pixel units.") "syntax-highlighting-" version ".tar.xz")) (sha256 (base32 - "1d9m7x53mwggwmhhba1c7b8v4f8qjql889y674ldpzs2nrk5y7x3")))) + "0ryfwblvzj9rd5jj7l8scmbb49ygzk77ng05hrznsipczin2cjw8")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -914,7 +919,7 @@ integration with a custom editor as well as a ready-to-use (define-public kwayland (package (name "kwayland") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -923,7 +928,7 @@ integration with a custom editor as well as a ready-to-use name "-" version ".tar.xz")) (sha256 (base32 - "1kzvq7qx102rfdv975x5sd37lsl6wn0mzm2m1f9fnnn2rvii3h5d")))) + "1zxb9ram47vbiik8h0czyvacrdiijhnslkpcm61l4r1rb0ybb0ib")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -953,7 +958,7 @@ represented by a QPoint or a QSize.") (define-public kwidgetsaddons (package (name "kwidgetsaddons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -962,7 +967,7 @@ represented by a QPoint or a QSize.") name "-" version ".tar.xz")) (sha256 (base32 - "1aksy326ppdfcx20zl9hxsd8j0br32j6dlx4i1xxbd976csys9b2")))) + "0hw87iig75mfgl5p3ph6zkwap31h357bm7rlyv5d9nnp10bq0hfg")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1001,7 +1006,7 @@ configuration pages, message boxes, and password requests.") (define-public kwindowsystem (package (name "kwindowsystem") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1010,7 +1015,7 @@ configuration pages, message boxes, and password requests.") name "-" version ".tar.xz")) (sha256 (base32 - "1c3kd23c4wwzdhfcyhv41czw3y2kk1492xn6ah9n3r98akrhgar1")))) + "1sp2x7afhw19vmhdp2qyrmljz8h0875xjk95n8c5gzypk7sr0l83")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1041,7 +1046,7 @@ lower level classes for interaction with the X Windowing System.") (define-public modemmanager-qt (package (name "modemmanager-qt") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1050,7 +1055,7 @@ lower level classes for interaction with the X Windowing System.") name "-" version ".tar.xz")) (sha256 (base32 - "0ywyiq1kj4ya5knn0r12j9m1ig9mlyfypnrzihlvipddjrqs7jyd")))) + "1cf5nsc8h7djvr19fm5dphzplh1wm3asvn0a7r71spg0i7lzi89h")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1079,7 +1084,7 @@ messages.") (define-public networkmanager-qt (package (name "networkmanager-qt") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1088,12 +1093,7 @@ messages.") name "-" version ".tar.xz")) (sha256 (base32 - "0bcy7nzfvx2xah3kxklmrjn08qbjddiny7wf7nkxsbc3kkhrxqyd")) - ;; TODO: Remove these patches when updating to 5.33. - (patches - (search-patches - "networkmanager-qt-activeconnection-test-1.patch" - "networkmanager-qt-activeconnection-test-2.patch")))) + "05s0irvkg0g57acriablyha2wb9c7w3xhq223vdddjqpcdx0pnkl")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1123,7 +1123,7 @@ which are used in DBus communication.") (define-public oxygen-icons (package (name "oxygen-icons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1132,7 +1132,7 @@ which are used in DBus communication.") name "5" "-" version ".tar.xz")) (sha256 (base32 - "05v3blgs4qbjl8s6470baahy9a98cfi3mplzp462axcgkqdj1nwf")))) + "0cmxxssir5zbp5nlxq81h2xfd6wrxbbkydyw93dby7r56isl7ga5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1148,7 +1148,7 @@ which are used in DBus communication.") (define-public solid (package (name "solid") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1157,10 +1157,18 @@ which are used in DBus communication.") name "-" version ".tar.xz")) (sha256 (base32 - "1jhymivravgix0sa0szkax50j09l5fl55xi3fbyjxlb4cil114v5")))) + "02kz21p3p1s1rg7gf34fr6ynhji6x97yvsfdpvbfxbhijabbh4ib")))) (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (setenv "DBUS_FATAL_WARNINGS" "0") + (zero? (system* "dbus-launch" "ctest" "."))))))) (native-inputs `(("bison" ,bison) + ("dbus" ,dbus) ("extra-cmake-modules" ,extra-cmake-modules) ("flex" ,flex) ("qttools" ,qttools))) @@ -1177,7 +1185,7 @@ system.") (define-public sonnet (package (name "sonnet") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1186,7 +1194,7 @@ system.") name "-" version ".tar.xz")) (sha256 (base32 - "17sjv48b3z5fgplsy16ilcw6p7mlqjs61ib6jqd1mqzv4xrr27yi")))) + "06gxrh8rb75ydkqxk5dhlmwndnczp264jx588ryfwlf3vlnk99vs")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1203,7 +1211,7 @@ ASpell and HUNSPELL.") (define-public threadweaver (package (name "threadweaver") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1212,7 +1220,7 @@ ASpell and HUNSPELL.") name "-" version ".tar.xz")) (sha256 (base32 - "1qpy2rzqyd4ap5fibkfk87z66ijh2h79cd7f0h506jh2dbx20g0h")))) + "1gylpl283qf1jcfyib4q5xwnpdq13hnd2cp2i7xjazdw2jp40zhr")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1233,7 +1241,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way." (define-public kauth (package (name "kauth") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1242,7 +1250,7 @@ uses a job-based interface to queue tasks and execute them in an efficient way." name "-" version ".tar.xz")) (sha256 (base32 - "00kdq16n9w6nf1bpwzl5lp5c2xq74g8nn6081kvnjcd4ld66ncmq")))) + "06cw1bsp7inh5wglajm8aahy17p35ixgnijb7d74gjqzbj4cv93d")))) (build-system cmake-build-system) (native-inputs `(("dbus" ,dbus) @@ -1280,7 +1288,7 @@ utilities.") (define-public kcompletion (package (name "kcompletion") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1289,7 +1297,7 @@ utilities.") name "-" version ".tar.xz")) (sha256 (base32 - "0fn8imr3m219r38a0rafbnylcpjq4rqhz1w66mx80sc7l10mhcni")))) + "18hvdk5b1nkh6b3vx0jajri57rl266b0qjsiwirh5wmjc81xbpcw")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1317,7 +1325,7 @@ integrated it into your application's other widgets.") (define-public kcrash (package (name "kcrash") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1326,7 +1334,7 @@ integrated it into your application's other widgets.") name "-" version ".tar.xz")) (sha256 (base32 - "1zrkjrpj88ymdy5vbn9db73vxppswvmbn2gkn4gpx773dsmflhz3")))) + "1cshay7dhbqgh62nq85vd9sm20gq9s9f70mdnzjjh1q7cajybkp3")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1355,7 +1363,7 @@ application crashes.") (define-public kdoctools (package (name "kdoctools") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1364,7 +1372,7 @@ application crashes.") name "-" version ".tar.xz")) (sha256 (base32 - "0i7zgg7iw6w0sdr6cv3yf4blcr61i8zczgmyqa964ka6p3ywwjs9")))) + "145jjhsd0whmcj91zbjz2b1jyj4wasw60hbwyd4xvqds8cp0l02h")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1403,7 +1411,7 @@ from DocBook files.") (define-public kfilemetadata (package (name "kfilemetadata") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1412,8 +1420,23 @@ from DocBook files.") name "-" version ".tar.xz")) (sha256 (base32 - "01d91gmrxlax0g13ib841vc4qwmv6r4qdr10wfs77rrxsvw7z08f")))) + "1rvlg6by8daiq5ff3qlxcw9k2iq4qicsj0c8a00xfy3w4h9ip9h5")))) (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Need to check after install and to set QT_PLUGIN_PATH for the test + ;; suite to finds the plugins. + (delete 'check) + (add-after 'install 'check + (assoc-ref %standard-phases 'check)) + (add-before 'check 'check-setup + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (setenv "QT_PLUGIN_PATH" + (string-append out "/lib/plugins:" + (getenv "QT_PLUGIN_PATH")))) + #t))))) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) ("python-2" ,python-2))) @@ -1421,7 +1444,14 @@ from DocBook files.") `(("attr" ,attr) ("karchive" ,karchive) ("ki18n" ,ki18n) - ("qtbase" ,qtbase))) + ("qtbase" ,qtbase) + ;; Required run-time packages + ("catdoc" ,catdoc) + ;; Optional run-time packages + ("exiv2" ,exiv2) + ("ffmpeg" ,ffmpeg) + ("poppler" ,poppler) + ("taglib" ,taglib))) (home-page "https://community.kde.org/Frameworks") (synopsis "Extract metadata from different fileformats") (description "KFileMetaData provides a simple library for extracting the @@ -1433,7 +1463,7 @@ by applications to write metadata.") (define-public kimageformats (package (name "kimageformats") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1442,7 +1472,7 @@ by applications to write metadata.") name "-" version ".tar.xz")) (sha256 (base32 - "05hn8n4sc3rj5c30ki068f76k1gfgvq19zcw5jlqpnn1l5db5fvz")))) + "0q9ng4clqk2dqw43nk1pmq1d61rahc3qr4dmg4y3kjvz3ahnnijw")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1470,7 +1500,7 @@ formats.") (define-public kjobwidgets (package (name "kjobwidgets") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1479,7 +1509,7 @@ formats.") name "-" version ".tar.xz")) (sha256 (base32 - "0lhv3mg2liija0g8x14jpv1mdhb0zjh868p1cs24bs9xrw1l8984")))) + "0lrx761vf947mb2q1l2jgi0wgwj8cz2nn1xg0j38bh99sgddmzpf")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1498,7 +1528,7 @@ asynchronous jobs.") (define-public knotifications (package (name "knotifications") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1507,7 +1537,7 @@ asynchronous jobs.") name "-" version ".tar.xz")) (sha256 (base32 - "06ap7m8c2py49pqrnhadbyl69y3nsyamzahbpwipqgh9k62sy34y")))) + "12z5hza0n5zr6mv3gkwhzb8zkrmk6dvgq8hrzwm8rzkgphjr6pi9")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -1541,7 +1571,7 @@ covers feedback and persistent events.") (define-public kpackage (package (name "kpackage") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1550,7 +1580,7 @@ covers feedback and persistent events.") name "-" version ".tar.xz")) (sha256 (base32 - "070zasl5c58n01fk18mjgccfizymc9griwicxizqjgzzbgvkns3r")))) + "0wdymhcrjggxb7andz36cfk9f240vvbq5yahlxyhfp9z69lriw5q")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1578,7 +1608,7 @@ were traditional plugins.") (define-public kpty (package (name "kpty") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1587,7 +1617,7 @@ were traditional plugins.") name "-" version ".tar.xz")) (sha256 (base32 - "0h4318rc9902cvqj69capb8lh7s84y44jd59d11fyhq21jhy152s")))) + "00k5hhz7nf3nf47xb003ni1chi03imyrfajap6ay4zp90l8fr950")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1614,7 +1644,7 @@ and communicating with them using a pty.") (define-public kunitconversion (package (name "kunitconversion") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1623,7 +1653,7 @@ and communicating with them using a pty.") name "-" version ".tar.xz")) (sha256 (base32 - "0crc8riwafcx6fwhgrc8vfbwmdygd6vlz1fbbgni09gamm8mbcin")))) + "0v4x0flbfavrzfiqh71mdkqgp1fzk4f52msvq6w60i2s3sz7hcsm")))) (build-system cmake-build-system) (arguments `(#:phases @@ -1657,7 +1687,7 @@ gallons).") (define-public baloo (package (name "baloo") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1666,7 +1696,7 @@ gallons).") name "-" version ".tar.xz")) (sha256 (base32 - "0a4qwinkp4gmcbx4j0qxbj5qb40h7594s39za7sc7bymadicasy1")))) + "0z53lnniq9xdk09d73z0p1xs1qmaf71m4znm4hmq956yg4yqa1ya")))) (build-system cmake-build-system) (propagated-inputs `(("kcoreaddons" ,kcoreaddons) @@ -1715,7 +1745,7 @@ maintaining an index of the contents of your files.") (define-public kactivities (package (name "kactivities") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1724,7 +1754,7 @@ maintaining an index of the contents of your files.") name "-" version ".tar.xz")) (sha256 (base32 - "0xin4shaj0zsfsww84mwk5n4ldaqy730jhc369px2j2nq57sg9g7")))) + "0dg6bkdxf4sicij4szmi55npn6chp0sfmw27qi1s582ymqzjgf5m")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1762,7 +1792,7 @@ with other frameworks.") (define-public kactivities-stats (package (name "kactivities-stats") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1771,7 +1801,7 @@ with other frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "1b3z7bcap3vjc0155y0a9xkbd477fklmpj8dr3rs0ccyc6qxxbvw")))) + "1dfaq4hsd9wm1ka45dkxbl9wwr7s5ixbnnghqwxhl7a60imc680r")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -1792,7 +1822,7 @@ by which applications, and what documents have been linked to which activity.") (define-public kbookmarks (package (name "kbookmarks") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1801,7 +1831,7 @@ by which applications, and what documents have been linked to which activity.") name "-" version ".tar.xz")) (sha256 (base32 - "03a024phcjv46afbp5lbmj2p8hb6srfzyaslc6ln6ms473bf5k4w")))) + "0ggn4rz8ch82ph64q6yik9fb1mp6kmsd7n33p769zl1lw7fldn0v")))) (build-system cmake-build-system) (propagated-inputs `(("kwidgetsaddons" ,kwidgetsaddons))) @@ -1835,7 +1865,7 @@ using the XBEL format.") (define-public kcmutils (package (name "kcmutils") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1844,7 +1874,7 @@ using the XBEL format.") name "-" version ".tar.xz")) (sha256 (base32 - "1mr9h7wc22bfrbm92ajsjfcs16c5xpkrxbxzcma3a0s7jhy6qrm9")))) + "1b52lwn7qjqrn06va7j1jswlzs6bx0drs90myf3607k52ffbf4hy")))) (build-system cmake-build-system) (propagated-inputs `(("kconfigwidgets" ,kconfigwidgets) @@ -1874,7 +1904,7 @@ KCModules can be created with the KConfigWidgets framework.") (define-public kconfigwidgets (package (name "kconfigwidgets") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1883,7 +1913,7 @@ KCModules can be created with the KConfigWidgets framework.") name "-" version ".tar.xz")) (sha256 (base32 - "1cq0a3k6pvl9f098ssqqk2rddxh0xn1kk4p5kfyd7w0m3c604zw3")))) + "0h4kappsffrp2qgg8wza1ybgah2dlcgpz591llfvaz31ldsml9hk")))) (build-system cmake-build-system) (propagated-inputs `(("kauth" ,kauth) @@ -1916,7 +1946,7 @@ their settings.") (define-public kdeclarative (package (name "kdeclarative") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1925,7 +1955,7 @@ their settings.") name "-" version ".tar.xz")) (sha256 (base32 - "1y5g3yi1l0g1mkqhhakg265r25zm23qc2fqg55rq0g7l9ss7w7g9")))) + "1mfj32p631zvwz9ldk8536ifb4n825zxbhx69bfllhw2vn1am7z2")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -1976,7 +2006,7 @@ that offer bindings to some of the Frameworks.") (define-public kded (package (name "kded") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -1985,7 +2015,7 @@ that offer bindings to some of the Frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "0pmmsvqwkw86yvxxf9i6lg13vg80m0kmhjjs88lbm60cgvr5jhq6")))) + "0qy4w7bcg60gyf6y6c11kqcshnld55a8w4fzglpwgqfbliyi5yzq")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2009,7 +2039,7 @@ started on demand.") (define-public kdesignerplugin (package (name "kdesignerplugin") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2018,7 +2048,7 @@ started on demand.") name "-" version ".tar.xz")) (sha256 (base32 - "1hapj8x8nky3m6lx2ianmxwprf00jqyjsknjz3pi4vk3i714vhnf")))) + "1jnarg7wrhdjfq73q4wplazxsz927mpf0l6m0i4akq4dlp1b7aah")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2047,7 +2077,7 @@ ini-style description files.") (define-public kdesu (package (name "kdesu") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2056,7 +2086,7 @@ ini-style description files.") name "-" version ".tar.xz")) (sha256 (base32 - "0zsy1hivy5bbczrpkpgj72mlx0km2nm53kpgrj2hfdy3ss0vn3hl")))) + "04mx0d6kf8slgkkgbna3cyv4c491jvlwcwqxc7zikz0i03l341id")))) (build-system cmake-build-system) (propagated-inputs `(("kpty" ,kpty))) @@ -2078,7 +2108,7 @@ with su and ssh respectively.") (define-public kemoticons (package (name "kemoticons") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2087,7 +2117,7 @@ with su and ssh respectively.") name "-" version ".tar.xz")) (sha256 (base32 - "1ncjs9iy6z6rhk83ff7fj1b68rkylnry0h698rh4jvs98gpw8sgj")))) + "02h12qy0w6mcgkczi3md1znnvp7r47l8h416nd080ljpsydalgx8")))) (build-system cmake-build-system) (propagated-inputs `(("kservice" ,kservice))) @@ -2119,7 +2149,7 @@ emoticons coming from different providers.") (define-public kglobalaccel (package (name "kglobalaccel") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2128,7 +2158,7 @@ emoticons coming from different providers.") name "-" version ".tar.xz")) (sha256 (base32 - "0dxwjznnqlgnvn15pl34rxlzk3i21cvzn8xbgqmxakny8qiib9ry")))) + "1i32dq70qxjbfvlw0wqxvqvl6ysydmpg3zbiflff4z1qrmvmpw6a")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2162,7 +2192,7 @@ window does not need focus for them to be activated.") (define-public kiconthemes (package (name "kiconthemes") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2171,7 +2201,7 @@ window does not need focus for them to be activated.") name "-" version ".tar.xz")) (sha256 (base32 - "00azbyk5y3jgdqv03a2nd0627kdkhq1bkghvw7w62kcnih9k8lq5")))) + "0hbl82r6qc8dh9v9n9xjkx966czkq5yjxx2rx7sbilj2p9v3saii")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules) @@ -2210,7 +2240,7 @@ in applications using the KDE Frameworks.") (define-public kinit (package (name "kinit") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2219,7 +2249,7 @@ in applications using the KDE Frameworks.") name "-" version ".tar.xz")) (sha256 (base32 - "0103lflppdw55l9xiqs68lzaq9897m5qnkmy6fp7dm9wfh9aplqn")))) + "08429kjihpaip73wszr3rsii8sdlwgm3kxx7g0hpjhkj9d2jq3m1")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2254,7 +2284,7 @@ makes starting KDE applications faster and reduces memory consumption.") (define-public kio (package (name "kio") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2263,7 +2293,7 @@ makes starting KDE applications faster and reduces memory consumption.") name "-" version ".tar.xz")) (sha256 (base32 - "19da02l0aj0l07x9bbklhvx9slci3v1d8q80jvam4vyzs4qdyjin")))) + "1i23ld5b9gafh2x3lv79jbggbd92xyhk7rg3n765w3bsfpg2ijva")))) (build-system cmake-build-system) (propagated-inputs `(("kbookmarks" ,kbookmarks) @@ -2327,7 +2357,7 @@ KIO enabled infrastructure.") (define-public knewstuff (package (name "knewstuff") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2336,7 +2366,7 @@ KIO enabled infrastructure.") name "-" version ".tar.xz")) (sha256 (base32 - "1i3ldy9wwnjhpgdd2d0bg4304k88riin89zqzdl52lpqa6hjl3fp")))) + "19d53ylwr92dzl9agk4j765zvb897rcm55z7pr6841aj58jk9b82")))) (build-system cmake-build-system) (propagated-inputs `(("attica" ,attica) @@ -2384,7 +2414,7 @@ specification.") (define-public knotifyconfig (package (name "knotifyconfig") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2393,7 +2423,7 @@ specification.") name "-" version ".tar.xz")) (sha256 (base32 - "14qc6wj4j5i45vzqsvl2wlc07c6x30hb2680gwfqsvwgiaszkzv4")))) + "0lwl22vq770jyp45j32s0ss8yiqdwbink6cdhkbapg3pzbiwklyk")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2426,7 +2456,7 @@ notifications which can be embedded in your application.") (define-public kparts (package (name "kparts") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2435,7 +2465,7 @@ notifications which can be embedded in your application.") name "-" version ".tar.xz")) (sha256 (base32 - "0hrx0mdvw301nbdyw5fkvgkw60ya6kmfw6hfzmj48bws8mi33rs5")))) + "1a5n0f7ljdc2bm6vggzwbvpblyxjqn9m9pam70iab964pqqalgp7")))) (build-system cmake-build-system) (propagated-inputs `(("kio" ,kio) @@ -2477,7 +2507,7 @@ widgets with a user-interface defined in terms of actions.") (define-public kpeople (package (name "kpeople") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2486,7 +2516,7 @@ widgets with a user-interface defined in terms of actions.") name "-" version ".tar.xz")) (sha256 (base32 - "1xqi8zr76hajgyv016iaqlmnr5b84s71fbx412q153g92jglp4mk")))) + "0krm74dl80s48nhiygga4dvkvqqimxdx4nczbk4qvj7j1g9p2rsh")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2520,7 +2550,7 @@ to easily extend the contacts collection.") (define-public krunner (package (name "krunner") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2529,7 +2559,7 @@ to easily extend the contacts collection.") name "-" version ".tar.xz")) (sha256 (base32 - "1k4rg9vqr6h5aj7v51fx3i5z9kxlfpacahs81hkwksi6if8ik4kr")))) + "0n527p708k719zgmvvbmp20xmg72f85cll05q05p4h317g7wz6i5")))) (build-system cmake-build-system) (propagated-inputs `(("plasma-framework" ,plasma-framework))) @@ -2575,7 +2605,7 @@ typed.") (define-public kservice (package (name "kservice") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2584,7 +2614,7 @@ typed.") name "-" version ".tar.xz")) (sha256 (base32 - "02xk3ajspprmx964zhwh2l3axm4gns9h0m0pvcb1v5j8pfh9v70q")))) + "0sikwn49s2iq1nj518q55m2p0hvdvwm98cpf0dkjb1z1v6fgjc37")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -2620,7 +2650,7 @@ types or handled by application specific code.") (define-public ktexteditor (package (name "ktexteditor") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2629,7 +2659,7 @@ types or handled by application specific code.") name "-" version ".tar.xz")) (sha256 (base32 - "1sybw8k3f36mcs5qh3b51v7ynbqn4pbiiabkyxfmyi82i09m2jgw")))) + "182a0swfgdqr0faq3ksk6hlfvdi1afd0hpys5vayjjf263m19xxw")))) (build-system cmake-build-system) (propagated-inputs `(("kparts" ,kparts))) @@ -2688,7 +2718,7 @@ library.") (define-public ktextwidgets (package (name "ktextwidgets") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2697,7 +2727,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "1s2fd4n4hfkzscxv0cdfjynjzi1f57pfi9a3fp6rrm5c5645zk7r")))) + "1hri34b373bww5gv14qli2nm77k05pk170nbb2vv2zvzv93g25gw")))) (build-system cmake-build-system) (propagated-inputs `(("ki18n" ,ki18n) @@ -2734,7 +2764,7 @@ It supports rich text as well as plain text.") (define-public kwallet (package (name "kwallet") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2743,7 +2773,7 @@ It supports rich text as well as plain text.") name "-" version ".tar.xz")) (sha256 (base32 - "0psc4n6lck9gbx2nn7mgv33x4z2r0xp1mx1xcsgy8smvalrfv5xa")))) + "08z3ddsam5n5qn2svscp4hgksf6qd1h8lqw1v382p01nnmhxadz5")))) (build-system cmake-build-system) (native-inputs `(("extra-cmake-modules" ,extra-cmake-modules))) @@ -2775,7 +2805,7 @@ the passwords on KDE work spaces.") (define-public kxmlgui (package (name "kxmlgui") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2784,7 +2814,7 @@ the passwords on KDE work spaces.") name "-" version ".tar.xz")) (sha256 (base32 - "1pxi4z7z3bzwcnfwq0pvjsmds401fkisyr353lyxf4rvcpwj3a65")))) + "1v8m6qzjqg3ic14a5ki37bf13kifzcbhly68zcxgs5b92hr953iy")))) (build-system cmake-build-system) (propagated-inputs `(("kconfig" ,kconfig) @@ -2827,7 +2857,7 @@ descriptions for integrating actions from plugins.") (define-public kxmlrpcclient (package (name "kxmlrpcclient") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2836,7 +2866,7 @@ descriptions for integrating actions from plugins.") name "-" version ".tar.xz")) (sha256 (base32 - "1kaczibdfdph5mpg1dldsmqb1six57w7ch3v0v7av5h6j6sx0xaq")))) + "0kp3ab50m5jl2jgw883ip67s6gs0l3saprzrqa9r3hydn2c4s3md")))) (build-system cmake-build-system) (propagated-inputs `(("kio" ,kio))) @@ -2870,7 +2900,7 @@ setUrl, setUserAgent and call.") (define-public plasma-framework (package (name "plasma-framework") - (version "5.32.0") + (version "5.34.0") (source (origin (method url-fetch) (uri (string-append @@ -2879,7 +2909,7 @@ setUrl, setUserAgent and call.") name "-" version ".tar.xz")) (sha256 (base32 - "1hrnmilc30d1kh20cky329i5ji3qyy7m4f8jzax5cgl7nrjca31h")))) + "0waicqskfwc8xpmrym165hwlfv6nzbwc783sac5vrhbyk4bwk8x9")))) (build-system cmake-build-system) (propagated-inputs `(("kpackage" ,kpackage) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 4c80de2369..ffbe5b1a88 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Andy Wingo -;;; Copyright © 2015, 2016 Ricardo Wurmus +;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Theodoros Foradis ;;; @@ -27,12 +27,16 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system ant) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) #:use-module (gnu packages autotools) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) + #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) #:use-module (gnu packages pkg-config) @@ -91,6 +95,100 @@ devices on various operating systems.") version of libusb to run with newer libusb.") (license lgpl2.1+))) +(define-public libusb4java + ;; There is no public release so we take the latest version from git. + (let ((commit "396d642a57678a0d9663b062c980fe100cc0ea1e") + (revision "1")) + (package + (name "libusb4java") + (version (string-append "0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/usb4java/libusb4java.git") + (commit commit))) + (sha256 + (base32 + "0wqgapalhfh9v38ycbl6i2f5lh1wpr6fzwn5dwd0rdacypkd1gml")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; there are no tests + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-JAVA_HOME + (lambda* (#:key inputs #:allow-other-keys) + (setenv "JAVA_HOME" (assoc-ref inputs "jdk")) + #t))))) + (inputs + `(("libusb" ,libusb))) + (native-inputs + `(("jdk" ,icedtea "jdk"))) + (home-page "https://github.com/usb4java/libusb4java/") + (synopsis "JNI bindings to libusb") + (description + "This package provides Java JNI bindings to the libusb library for use +with usb4java.") + (license expat)))) + +(define-public java-usb4java + (package + (name "java-usb4java") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/usb4java/usb4java/" + "archive/usb4java-" version ".tar.gz")) + (sha256 + (base32 + "0gzpsnzwgsdyra3smq288yvxnwrgvdwxr6g8jbknnsk56kv6wc34")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "usb4java.jar" + #:phases + (modify-phases %standard-phases + ;; Usually, native libusb4java libraries for all supported systems + ;; would be included in the jar and extracted at runtime. Since we + ;; build everything from source we cannot just bundle pre-built + ;; binaries for other systems. Instead, we patch the loader to + ;; directly return the appropriate library for this system. The + ;; downside is that the jar will only work on the same architecture + ;; that it was built on. + (add-after 'unpack 'copy-libusb4java + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/main/java/org/usb4java/Loader.java" + (("private static String extractLibrary" line) + (string-append + line "(final String a, final String b) {" + "return \"" + (assoc-ref inputs "libusb4java") "/lib/libusb4java.so" + "\"; }\n" + "private static String _extractLibrary"))) + #t)) + (add-after 'unpack 'disable-broken-tests + (lambda _ + (with-directory-excursion "src/test/java/org/usb4java" + ;; These tests should only be run when USB devices are present. + (substitute* '("LibUsbGlobalTest.java" + "TransferTest.java") + (("this.context = new Context\\(\\);") + "this.context = null;") + (("LibUsb.init") "//")) + (substitute* "DeviceListIteratorTest.java" + (("this.iterator.remove" line) + (string-append "assumeUsbTestsEnabled();" line)))) + #t))))) + (inputs + `(("libusb4java" ,libusb4java) + ("java-commons-lang3" ,java-commons-lang3) + ("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (home-page "http://usb4java.org/") + (synopsis "USB library for Java") + (description + "This package provides a USB library for Java based on libusb and +implementing @code{javax.usb} (JSR-80).") + (license expat))) + (define-public python-pyusb (package (name "python-pyusb") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 75da0d420f..9db748ebee 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -354,8 +354,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.11") -(define %linux-libre-hash "0j1bzzq9iq5i1zm7gnig8v0clr8wq303kvcdsaifc0r0ggz1mx1n") +(define %linux-libre-version "4.11.2") +(define %linux-libre-hash "0vp6hjc7cb6q6bhbg6jcf08r27xbf293cdib2vfng15ygvxpyfij") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -364,14 +364,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.27" - "1b39zijjkv21kya359y4g88w5ff110v95pvc4wfvc83dvik9hny5" + (make-linux-libre "4.9.29" + "0yj4gajdzilxnh9lhb2zl0hs654lagdfx8cp7bv2w4q41bnmc3l9" %intel-compatible-systems #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.67" - "1nadmrd26llc17ipig7bx7rf2gwns94g86a3ilcvgdk17hq5riss" + (make-linux-libre "4.4.69" + "14q5lqsfmwyiilbhffr3bwsm6i3z1jv6y09rg8x3faibcg766wny" %intel-compatible-systems #:configuration-file kernel-config)) @@ -1568,7 +1568,12 @@ UnionFS-FUSE additionally supports copy-on-write.") (exe (string-append out "/bin/unionfs"))) ;; By default, 'unionfs' keeps references to ;; $glibc/share/locale and similar stuff. Remove them. - (remove-store-references exe))) + (remove-store-references exe) + + ;; 'unionfsctl' has references to glibc as well. Since + ;; we don't need it, remove it. + (delete-file (string-append out "/bin/unionfsctl")) + #t)) %standard-phases))) (inputs `(("fuse" ,fuse-static))))) @@ -2859,7 +2864,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.10.2") + (version "4.11") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2867,7 +2872,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "02p63nz78lrr156cmbb759z76cn95hv6mmz7v592lmiq0dkxy2gd")))) + "03mzv89f08gdsqv4ima793g44kdavcfyjialf5dr0zd2ab66hyp1")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of binaries in "out" (~16MiB!) @@ -3320,14 +3325,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.") (define-public mcelog (package (name "mcelog") - (version "149") + (version "150") (source (origin (method url-fetch) (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" "mcelog.git/snapshot/v" version ".tar.gz")) (sha256 (base32 - "08hd8bl9rgss990icb69srarrfwcg8k7py979ak753j92ybbkhdm")) + "1skfiracl3a1afmml8mvnccr4rym4ibv33c342rkyxn0j3088h24")) (file-name (string-append name "-" version ".tar.gz")) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 57d0191b70..64acc75e59 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2016 Federico Beffa ;;; Copyright © 2016, 2017 ng0 -;;; Copyright © 2016 Andy Patterson +;;; Copyright © 2016, 2017 Andy Patterson ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Efraim Flashner ;;; @@ -659,7 +659,7 @@ portable between implementations.") (sha256 (base32 "0f48pcbhqs3wwwzjl5nk57d4hcbib4l9xblxc66b8c2fhvhmhxnv")) (file-name (string-append "fiveam-" version ".tar.gz")))) - (inputs `(("sbcl-alexandria" ,sbcl-alexandria))) + (inputs `(("alexandria" ,sbcl-alexandria))) (build-system asdf-build-system/sbcl) (synopsis "Common Lisp testing framework") (description "FiveAM is a simple (as far as writing and running tests @@ -687,8 +687,8 @@ interactive development model in mind.") (base32 "10ryrcx832fwqdawb6jmknymi7wpdzhi30qzx7cbrk0cpnka71w2")) (file-name (string-append "bordeaux-threads-" version ".tar.gz")))) - (inputs `(("sbcl-alexandria" ,sbcl-alexandria))) - (native-inputs `(("tests:cl-fiveam" ,sbcl-fiveam))) + (inputs `(("alexandria" ,sbcl-alexandria))) + (native-inputs `(("fiveam" ,sbcl-fiveam))) (build-system asdf-build-system/sbcl) (synopsis "Portable shared-state concurrency library for Common Lisp") (description "BORDEAUX-THREADS is a proposed standard for a minimal @@ -749,7 +749,7 @@ thin compatibility layer for gray streams.") (base32 "16grnxvs7vqm5s6myf8a5s7vwblzq1kgwj8i7ahz8vwvihm9gzfi")) (file-name (string-append "flexi-streams-" version ".tar.gz")))) (build-system asdf-build-system/sbcl) - (inputs `(("sbcl-trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (inputs `(("trivial-gray-streams" ,sbcl-trivial-gray-streams))) (synopsis "Implementation of virtual bivalent streams for Common Lisp") (description "Flexi-streams is an implementation of \"virtual\" bivalent streams that can be layered atop real binary or bivalent streams and that can @@ -779,7 +779,7 @@ streams which are similar to string streams.") (base32 "1i7daxf0wnydb0pgwiym7qh2wy70n14lxd6dyv28sy0naa8p31gd")) (file-name (string-append "cl-ppcre-" version ".tar.gz")))) (build-system asdf-build-system/sbcl) - (native-inputs `(("tests:cl-flexi-streams" ,sbcl-flexi-streams))) + (native-inputs `(("flexi-streams" ,sbcl-flexi-streams))) (synopsis "Portable regular expression library for Common Lisp") (description "CL-PPCRE is a portable regular expression library for Common Lisp, which is compatible with perl. It is pretty fast, thread-safe, and @@ -793,6 +793,51 @@ compatible with ANSI-compliant Common Lisp implementations.") (define-public ecl-cl-ppcre (sbcl-package->ecl-package sbcl-cl-ppcre)) +(define sbcl-cl-unicode-base + (let ((revision "1") + (commit "9fcd06fba1ddc9e66aed2f2d6c32dc9b764f03ea")) + (package + (name "sbcl-cl-unicode-base") + (version (string-append "0.1.5-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/edicl/cl-unicode.git") + (commit commit))) + (file-name (string-append "cl-unicode-" version "-checkout")) + (sha256 + (base32 + "1jicprb5b3bv57dy1kg03572gxkcaqdjhak00426s76g0plmx5ki")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:asd-file "cl-unicode.asd" + #:asd-system-name "cl-unicode/base")) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre))) + (home-page "http://weitz.de/cl-unicode/") + (synopsis "Portable Unicode library for Common Lisp") + (description "CL-UNICODE is a portable Unicode library Common Lisp, which +is compatible with perl. It is pretty fast, thread-safe, and compatible with +ANSI-compliant Common Lisp implementations.") + (license license:bsd-2)))) + +(define-public sbcl-cl-unicode + (package + (inherit sbcl-cl-unicode-base) + (name "sbcl-cl-unicode") + (inputs + `(("cl-unicode/base" ,sbcl-cl-unicode-base) + ,@(package-inputs sbcl-cl-unicode-base))) + (native-inputs + `(("flexi-streams" ,sbcl-flexi-streams))) + (arguments '()))) + +(define-public ecl-cl-unicode + (sbcl-package->ecl-package sbcl-cl-unicode)) + +(define-public cl-unicode + (sbcl-package->cl-source-package sbcl-cl-unicode)) + (define-public sbcl-clx (let ((revision "1") (commit "1c62774b03c1cf3fe6e5cb532df8b14b44c96b95")) @@ -822,8 +867,6 @@ compatible with ANSI-compliant Common Lisp implementations.") (substitute* "clx.asd" (("\\(:file \"trapezoid\"\\)") "")))))) (build-system asdf-build-system/sbcl) - (arguments - '(#:special-dependencies '("sb-bsd-sockets"))) (home-page "http://www.cliki.net/portable-clx") (synopsis "X11 client library for Common Lisp") (description "CLX is an X11 client library for Common Lisp. The code was @@ -851,31 +894,27 @@ from other CLXes around the net.") (base32 "1maxp98gh64az3d9vz9br6zdd6rc9fmj2imvax4by85g6kxvdz1i")) (file-name (string-append "stumpwm-" version ".tar.gz")))) (build-system asdf-build-system/sbcl) - (inputs `(("sbcl-cl-ppcre" ,sbcl-cl-ppcre) - ("sbcl-clx" ,sbcl-clx))) - (outputs '("out" "bin")) + (inputs `(("cl-ppcre" ,sbcl-cl-ppcre) + ("clx" ,sbcl-clx))) + (outputs '("out" "lib")) (arguments - '(#:special-dependencies '("sb-posix") - #:phases + '(#:phases (modify-phases %standard-phases (add-after 'create-symlinks 'build-program - (lambda* (#:key lisp outputs inputs #:allow-other-keys) + (lambda* (#:key outputs #:allow-other-keys) (build-program - lisp - (string-append (assoc-ref outputs "bin") "/bin/stumpwm") - #:inputs inputs + (string-append (assoc-ref outputs "out") "/bin/stumpwm") + outputs #:entry-program '((stumpwm:stumpwm) 0)))) (add-after 'build-program 'create-desktop-file - (lambda* (#:key outputs lisp binary? #:allow-other-keys) - (let ((output (or (assoc-ref outputs "bin") - (assoc-ref outputs "out"))) - (xsessions "/share/xsessions")) - (mkdir-p (string-append output xsessions)) - (with-output-to-file - (string-append output xsessions - "/stumpwm.desktop") - (lambda _ - (format #t + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (xsessions (string-append out "/share/xsessions"))) + (mkdir-p xsessions) + (call-with-output-file + (string-append xsessions "/stumpwm.desktop") + (lambda (file) + (format file "[Desktop Entry]~@ Name=stumpwm~@ Comment=The Stump Window Manager~@ @@ -883,7 +922,7 @@ from other CLXes around the net.") TryExec=~@*~a/bin/stumpwm~@ Icon=~@ Type=Application~%" - output))) + out))) #t)))))) (synopsis "Window manager written in Common Lisp") (description "Stumpwm is a window manager written entirely in Common Lisp. @@ -904,11 +943,15 @@ productive, customizable lisp based systems.") (outputs '("out")) (arguments '())))) +;; The slynk that users expect to install includes all of slynk's contrib +;; modules. Therefore, we build the base module and all contribs first; then +;; we expose the union of these as `sbcl-slynk'. The following variable +;; describes the base module. (define sbcl-slynk-boot0 (let ((revision "1") (commit "5706cd45d484a4f25795abe8e643509d31968aa2")) (package - (name "sbcl-slynk") + (name "sbcl-slynk-boot0") (version (string-append "1.0.0-beta-" revision "." (string-take commit 7))) (source (origin @@ -948,19 +991,22 @@ productive, customizable lisp based systems.") (scandir "slynk")))))) (build-system asdf-build-system/sbcl) (arguments - `(#:tests? #f)) ; No test suite + `(#:tests? #f ; No test suite + #:asd-system-name "slynk")) (synopsis "Common Lisp IDE for Emacs") - (description "SLY is a fork of SLIME. It also features a completely -redesigned REPL based on Emacs's own full-featured comint.el, live code -annotations, and a consistent interactive button interface. Everything can be -copied to the REPL. One can create multiple inspectors with independent -history.") + (description "SLY is a fork of SLIME, an IDE backend for Common Lisp. +It also features a completely redesigned REPL based on Emacs's own +full-featured comint.el, live code annotations, and a consistent interactive +button interface. Everything can be copied to the REPL. One can create +multiple inspectors with independent history.") (home-page "https://github.com/joaotavora/sly") (license license:public-domain) (properties `((cl-source-variant . ,(delay cl-slynk))))))) (define-public cl-slynk - (sbcl-package->cl-source-package sbcl-slynk-boot0)) + (package + (inherit (sbcl-package->cl-source-package sbcl-slynk-boot0)) + (name "cl-slynk"))) (define ecl-slynk-boot0 (sbcl-package->ecl-package sbcl-slynk-boot0)) @@ -969,10 +1015,11 @@ history.") (package (inherit sbcl-slynk-boot0) (name "sbcl-slynk-arglists") - (inputs `(("sbcl-slynk" ,sbcl-slynk-boot0))) + (inputs `(("slynk" ,sbcl-slynk-boot0))) (arguments - `(#:asd-file "slynk.asd" - ,@(package-arguments sbcl-slynk-boot0))))) + (substitute-keyword-arguments (package-arguments sbcl-slynk-boot0) + ((#:asd-file _ "") "slynk.asd") + ((#:asd-system-name _ #f) #f))))) (define ecl-slynk-arglists (sbcl-package->ecl-package sbcl-slynk-arglists)) @@ -989,7 +1036,7 @@ history.") (package (inherit sbcl-slynk-arglists) (name "sbcl-slynk-fancy-inspector") - (inputs `(("sbcl-slynk-util" ,sbcl-slynk-util) + (inputs `(("slynk-util" ,sbcl-slynk-util) ,@(package-inputs sbcl-slynk-arglists))))) (define ecl-slynk-fancy-inspector @@ -1067,6 +1114,7 @@ history.") (define-public sbcl-slynk (package (inherit sbcl-slynk-boot0) + (name "sbcl-slynk") (inputs `(("slynk" ,sbcl-slynk-boot0) ("slynk-util" ,sbcl-slynk-util) @@ -1104,12 +1152,15 @@ history.") (prepend-to-source-registry (string-append (assoc-ref %outputs "out") "//")) - (build-image "sbcl" - (string-append - (assoc-ref %outputs "image") - "/bin/slynk") - #:inputs %build-inputs - #:dependencies ',slynk-systems)))))) + + (parameterize ((%lisp-type "sbcl") + (%lisp (string-append (assoc-ref %build-inputs "sbcl") + "/bin/sbcl"))) + (build-image (string-append + (assoc-ref %outputs "image") + "/bin/slynk") + %outputs + #:dependencies ',slynk-systems))))))) (define-public ecl-slynk (package @@ -1138,28 +1189,30 @@ history.") (inherit sbcl-stumpwm) (name "sbcl-stumpwm-with-slynk") (outputs '("out")) - (native-inputs - `(("stumpwm" ,sbcl-stumpwm) + (inputs + `(("stumpwm" ,sbcl-stumpwm "lib") ("slynk" ,sbcl-slynk))) (arguments (substitute-keyword-arguments (package-arguments sbcl-stumpwm) ((#:phases phases) `(modify-phases ,phases (replace 'build-program - (lambda* (#:key lisp inputs outputs #:allow-other-keys) + (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (program (string-append out "/bin/stumpwm"))) - (build-program lisp program - #:inputs inputs + (build-program program outputs #:entry-program '((stumpwm:stumpwm) 0) #:dependencies '("stumpwm" - ,@slynk-systems)) + ,@slynk-systems) + #:dependency-prefixes + (map (lambda (input) (assoc-ref inputs input)) + '("stumpwm" "slynk"))) ;; Remove unneeded file. (delete-file (string-append out "/bin/stumpwm-exec.fasl")) #t))) (delete 'copy-source) (delete 'build) (delete 'check) - (delete 'link-dependencies) + (delete 'create-asd-file) (delete 'cleanup) (delete 'create-symlinks))))))) diff --git a/gnu/packages/logging.scm b/gnu/packages/logging.scm index 2523d65f61..7501f1e5db 100644 --- a/gnu/packages/logging.scm +++ b/gnu/packages/logging.scm @@ -109,6 +109,21 @@ command line.") `(("python-pyyaml" ,python-pyyaml) ("python-sockjs-tornado" ,python-sockjs-tornado) ("python-tornado" ,python-tornado))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-commands.py + (lambda args + (substitute* "tailon/commands.py" + (("self\\.first_in_path\\('grep'\\)") + (string-append"'" (which "grep") "'")) + (("self\\.first_in_path\\('gawk', 'awk'\\)") + (string-append"'" (which "gawk") "'")) + (("self\\.first_in_path\\('gsed', 'sed'\\)") + (string-append"'" (which "sed") "'")) + (("self\\.first_in_path\\('gtail', 'tail'\\)") + (string-append"'" (which "tail") "'"))) + #t))))) (home-page "https://tailon.readthedocs.io/") (synopsis "Webapp for looking at and searching through log files") diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 39d394140b..b4dfef6ec0 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1608,13 +1608,13 @@ maintained.") (define-public khard (package (name "khard") - (version "0.11.3") + (version "0.11.4") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "1v66khq5w17xdbkpb00pf9xbl84dlzx4lq286fvzskb949b3y4yn")))) + "1shhlq6ljbd8095hd82v4mw56rjcfxf1ymmgknbgh8gix02nsxw1")))) (build-system python-build-system) (arguments `(#:phases diff --git a/gnu/packages/mc.scm b/gnu/packages/mc.scm index 3cdc542157..bae12439f1 100644 --- a/gnu/packages/mc.scm +++ b/gnu/packages/mc.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Efraim Flashner -;;; Copyright © 2016 ng0 +;;; Copyright © 2016, 2017 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,7 +30,8 @@ #:use-module (gnu packages ssh) #:use-module (gnu packages pkg-config) #:use-module (gnu packages check) - #:use-module (gnu packages perl)) + #:use-module (gnu packages perl) + #:use-module (gnu packages zip)) (define-public mc (package @@ -51,7 +52,8 @@ ("ncurses" ,ncurses) ("libssh2" ,libssh2) ("glib" ,glib) - ("check" ,check))) + ("check" ,check) + ("unzip" ,unzip))) (arguments `(#:configure-flags '("--with-screen=ncurses" "--enable-aspell") diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index 84d6f8ff78..1e233a852d 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -54,30 +54,35 @@ extensive examples, including parsers for the Javascript and C99 languages.") (license (list gpl3+ lgpl3+)))) (define-public mes - (let ((commit "a437c173b9da1949ad966fd50dd4f26e522a910a") + (let ((commit "d4420bbcc9f994e2cce430cf156f383dc4092bca") (revision "0") - (triplet "i686-unknown-linux-gnu")) + (triplet "i686-unknown-linux-gnu") + (version "0.6")) (package (name "mes") - (version (string-append "0.5-" revision "." (string-take commit 7))) + (version (string-append version "-" revision "." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/janneke/mes") (commit commit))) (file-name (string-append name "-" version)) - ;; TODO: Unbundle nyacc. (sha256 - (base32 "1ynr0hc0k15307sgzv09k3y5rvy46h0wbh7zcblx1f9v7y8k90zv")))) + (base32 "0qqywk3siyhf08v7xac08lqldklrqfndlp495wgy6ii9fn93197k")))) (build-system gnu-build-system) - (supported-systems '("x86_64-linux")) + (supported-systems '("i686-linux" "x86_64-linux")) + (propagated-inputs + `(("nyacc" ,nyacc))) (native-inputs `(("guile" ,guile-2.2) - ;; Use cross-compiler rather than #:system "i686-linux" to get - ;; MesCC 64 bit .go files installed ready for use with Guile. - ("i686-linux-binutils" ,(cross-binutils triplet)) - ("i686-linux-gcc" ,(let ((triplet triplet)) (cross-gcc triplet))) - ("perl" ,perl))) ;build-aux/gitlog-to-changelog + ,@(if (string-prefix? "x86_64-linux" (or (%current-target-system) + (%current-system))) + ;; Use cross-compiler rather than #:system "i686-linux" to get + ;; MesCC 64 bit .go files installed ready for use with Guile. + `(("i686-linux-binutils" ,(cross-binutils triplet)) + ("i686-linux-gcc" ,(cross-gcc triplet))) + '()) + ("perl" ,perl))) ;build-aux/gitlog-to-changelog (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 3002d27a6e..d4a72df1d8 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -786,6 +786,57 @@ session management. NSM clients use a well-specified OSC protocol to communicate with the session management daemon.") (license license:gpl2+))) +(define-public non-mixer + (package (inherit non-sequencer) + (name "non-mixer") + (arguments + (substitute-keyword-arguments (package-arguments non-sequencer) + ((#:configure-flags flags) + `(cons "--project=mixer" + (delete "--project=sequencer" ,flags))))) + (inputs + `(("jack" ,jack-1) + ("liblo" ,liblo) + ("ladspa" ,ladspa) + ("lrdf" ,lrdf) + ("ntk" ,ntk))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://non.tuxfamily.org/wiki/Non%20Mixer") + (synopsis "Modular digital audio mixer") + (description + "The Non Mixer is a powerful, reliable and fast modular digital audio +mixer. It utilizes JACK for inter-application audio I/O and the NTK GUI +toolkit for a fast and lightweight user interface. Non Mixer can be used +alone or in concert with Non Timeline and Non Sequencer to form a complete +studio.") + (license license:gpl2+))) + +(define-public non-timeline + (package (inherit non-sequencer) + (name "non-timeline") + (arguments + (substitute-keyword-arguments (package-arguments non-sequencer) + ((#:configure-flags flags) + `(cons "--project=timeline" + (delete "--project=sequencer" ,flags))))) + (inputs + `(("jack" ,jack-1) + ("liblo" ,liblo) + ("libsndfile" ,libsndfile) + ("ntk" ,ntk))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://non.tuxfamily.org/wiki/Non%20Timeline") + (synopsis "Modular digital audio timeline arranger") + (description + "The Non Timeline is a powerful, reliable and fast modular digital audio +timeline arranger. It utilizes JACK for inter-application audio I/O and the +NTK GUI toolkit for a fast and lightweight user interface. Non Timeline can +be used alone or in concert with Non Mixer and Non Sequencer to form a +complete studio.") + (license license:gpl2+))) + (define-public solfege (package (name "solfege") diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index f0344d7481..61ff3ced06 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -29,7 +29,7 @@ (define-public nano (package (name "nano") - (version "2.8.2") + (version "2.8.4") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.xz")) (sha256 (base32 - "1q5rxkvsv974085xrd2k11ffazadabcb9cnpfra0shmj71xqlgh2")))) + "04bvmimrw40cbcnm3xm5l5lir0qy7cncfkmwrlzg8jiy1x7jdky7")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 8ebf6b0578..3438d370e0 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -52,6 +52,7 @@ #:use-module (gnu packages tls) #:use-module (gnu packages ssh) #:use-module (gnu packages vim) + #:use-module (srfi srfi-1) #:use-module (ice-9 match)) (define (boot-guile-uri arch) @@ -73,8 +74,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.12.0") - (commit "ba2260dbbc5a3c915e2cbd54d93f2f3af2a864c3") - (revision 10)) + (commit "ce92d269fea0a2bfac0ac20414f77127d2f07500") + (revision 11)) (package (name "guix") @@ -90,7 +91,7 @@ (commit commit))) (sha256 (base32 - "0nkwbblsnl7kv2n8jf8c6rl3a7dynaqxizhhni18vbnmvza35c79")) + "17l9r2mdzzv8vfxb3bc5zkdqkl472q979iwsarp7lcqss1jxys7w")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -265,6 +266,18 @@ the Nix package manager.") ;; Alias for backward compatibility. (define-public guix-devel guix) +(define-public guile2.0-guix + (package + (inherit guix) + (name "guile2.0-guix") + (inputs + `(("guile" ,guile-2.0) + ,@(alist-delete "guile" (package-inputs guix)))) + (propagated-inputs + `(("gnutls" ,gnutls) + ("guile-json" ,guile2.0-json) + ("guile-ssh" ,guile2.0-ssh))))) + (define (source-file? file stat) "Return true if FILE is likely a source file, false if it is a typical generated file." diff --git a/gnu/packages/patches/aspell-default-dict-dir.patch b/gnu/packages/patches/aspell-default-dict-dir.patch new file mode 100644 index 0000000000..17a6ff606f --- /dev/null +++ b/gnu/packages/patches/aspell-default-dict-dir.patch @@ -0,0 +1,20 @@ +This patch changes the default value of 'dict-dir' to correspond +to ~/.guix-profile/lib/aspell rather than $prefix/lib/aspell-X.Y. + +This is not strictly necessary for the 'aspell' program itself since +one can simply set "ASPELL_CONF=dict-dir $HOME/.guix-profile/lib/aspell". +However it is necessary for applications that use libaspell since +'ASPELL_CONF' is not honored in this case. See . + +--- a/common/config.cpp ++++ b/common/config.cpp +@@ -1349,6 +1349,9 @@ namespace acommon { + # define REPL ".aspell..prepl" + #endif + ++#undef DICT_DIR ++#define DICT_DIR "<$ASPELL_DICT_DIR|home-dir/.guix-profile/lib/aspell>" ++ + static const KeyInfo config_keys[] = { + // the description should be under 50 chars + {"actual-dict-dir", KeyInfoString, "", 0} diff --git a/gnu/packages/patches/calibre-dont-load-remote-icons.patch b/gnu/packages/patches/calibre-dont-load-remote-icons.patch new file mode 100644 index 0000000000..2168263072 --- /dev/null +++ b/gnu/packages/patches/calibre-dont-load-remote-icons.patch @@ -0,0 +1,45 @@ +From: Martin Pitt +Date: Mon, 14 Nov 2016 22:41:24 +0100 +Subject: content-server: Don't load external URLs for privacy + +Spotted by lintian. +--- + resources/content_server/browse/browse.html | 4 +--- + resources/content_server/index.html | 2 +- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/resources/content_server/browse/browse.html b/resources/content_server/browse/browse.html +index 36f7199..e615707 100644 +--- a/resources/content_server/browse/browse.html ++++ b/resources/content_server/browse/browse.html +@@ -7,7 +7,7 @@ + ..:: calibre {library} ::.. {title} + + +- ++ + + + +@@ -63,8 +63,6 @@ + +- + + + +diff --git a/resources/content_server/index.html b/resources/content_server/index.html +index 51cc33a..e71d0e8 100644 +--- a/resources/content_server/index.html ++++ b/resources/content_server/index.html +@@ -9,7 +9,7 @@ + + + +- ++ + + +